From 2bd4df3d5bd37d550003b30f5bb486f8a42e8811 Mon Sep 17 00:00:00 2001 From: officiallyanee Date: Tue, 10 Mar 2026 02:29:13 +0530 Subject: [PATCH 1/3] feat: add implementation of math/base/special/fresnelf --- 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: na - task: lint_c_src status: passed - task: lint_c_examples status: passed - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: passed - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: skipped - task: lint_license_headers status: passed --- --- .../math/base/special/fresnelf/LICENSE | 196 ++++++++++++ .../math/base/special/fresnelf/README.md | 233 ++++++++++++++ .../special/fresnelf/benchmark/benchmark.js | 74 +++++ .../fresnelf/benchmark/benchmark.native.js | 61 ++++ .../fresnelf/benchmark/c/native/Makefile | 146 +++++++++ .../fresnelf/benchmark/c/native/benchmark.c | 137 ++++++++ .../math/base/special/fresnelf/binding.gyp | 170 ++++++++++ .../math/base/special/fresnelf/docs/repl.txt | 62 ++++ .../special/fresnelf/docs/types/index.d.ts | 111 +++++++ .../base/special/fresnelf/docs/types/test.ts | 113 +++++++ .../base/special/fresnelf/examples/c/Makefile | 123 +++++++ .../special/fresnelf/examples/c/example.c | 32 ++ .../base/special/fresnelf/examples/index.js | 34 ++ .../math/base/special/fresnelf/include.gypi | 53 ++++ .../stdlib/math/base/special/fresnelf.h | 38 +++ .../math/base/special/fresnelf/lib/assign.js | 163 ++++++++++ .../math/base/special/fresnelf/lib/index.js | 70 ++++ .../math/base/special/fresnelf/lib/main.js | 61 ++++ .../math/base/special/fresnelf/lib/native.js | 65 ++++ .../base/special/fresnelf/lib/polyval_cn.js | 52 +++ .../base/special/fresnelf/lib/polyval_fn.js | 52 +++ .../base/special/fresnelf/lib/polyval_gn.js | 52 +++ .../base/special/fresnelf/lib/polyval_sn.js | 52 +++ .../math/base/special/fresnelf/manifest.json | 87 +++++ .../math/base/special/fresnelf/package.json | 66 ++++ .../base/special/fresnelf/scripts/evalpoly.js | 193 +++++++++++ .../math/base/special/fresnelf/src/Makefile | 70 ++++ .../math/base/special/fresnelf/src/addon.c | 41 +++ .../math/base/special/fresnelf/src/main.c | 209 ++++++++++++ .../special/fresnelf/test/fixtures/c/Makefile | 123 +++++++ .../fresnelf/test/fixtures/c/huge.json | 1 + .../fresnelf/test/fixtures/c/large.json | 1 + .../fresnelf/test/fixtures/c/medium.json | 1 + .../special/fresnelf/test/fixtures/c/runner.c | 196 ++++++++++++ .../fresnelf/test/fixtures/c/small.json | 1 + .../base/special/fresnelf/test/test.assign.js | 300 ++++++++++++++++++ .../math/base/special/fresnelf/test/test.js | 40 +++ .../base/special/fresnelf/test/test.main.js | 242 ++++++++++++++ .../base/special/fresnelf/test/test.native.js | 243 ++++++++++++++ 39 files changed, 3964 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/LICENSE create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/include/stdlib/math/base/special/fresnelf.h create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/assign.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_cn.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_fn.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_gn.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_sn.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/scripts/evalpoly.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/huge.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/large.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/medium.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/runner.c create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/small.json create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.assign.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/LICENSE b/lib/node_modules/@stdlib/math/base/special/fresnelf/LICENSE new file mode 100644 index 000000000000..3e825d2f4fbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/LICENSE @@ -0,0 +1,196 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +DEPENDENCIES & ATTRIBUTION + +The library links against the following external libraries or contains +implementations from the following external libraries, which have their own +licenses: + +* Cephes + +Copyright (c) 1984-2000 Stephen L. Moshier + +Some software in this archive may be from the book _Methods and Programs for +Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) +or from the Cephes Mathematical Library, a commercial product. In either event, +it is copyrighted by the author. What you see here may be used freely but it +comes with no support or guarantee. + +Stephen L. Moshier +moshier@na-net.ornl.gov diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/README.md b/lib/node_modules/@stdlib/math/base/special/fresnelf/README.md new file mode 100644 index 000000000000..00b6162dcead --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/README.md @@ -0,0 +1,233 @@ + + +# fresnelf + +> Compute the [Fresnel integrals][fresnel-integral] S(x) and C(x) for single-precision floating-point numbers. + +
+ +The [Fresnel integrals][fresnel-integral] are defined as + + + +```math +\begin{align} S(x) &= \int_0^x \sin\left(\frac{\pi}{2} t^2\right)\,\mathrm{d}t, \\ C(x) &= \int_0^x \cos\left(\frac{\pi}{2} t^2\right)\,\mathrm{d}t. \end{align} +``` + + + + + +Some sources define the Fresnel integrals using t2 for the argument of the sine and cosine. To get these functions, multiply the computed integrals by `√(π/2)` and multiply the argument `x` by `√(2/π)`. + +
+ + + +
+ +## Usage + +```javascript +var fresnelf = require( '@stdlib/math/base/special/fresnelf' ); +``` + +#### fresnelf( x ) + +Simultaneously computes the [Fresnel integrals][fresnel-integral] S(x) and C(x) for a single-precision floating-point number. + +```javascript +var v = fresnelf( 0.0 ); +// returns [ ~0.0, ~0.0 ] + +v = fresnelf( 1.0 ); +// returns [ ~0.438, ~0.780 ] + +v = fresnelf( Infinity ); +// returns [ ~0.5, ~0.5 ] + +v = fresnelf( -Infinity ); +// returns [ ~-0.5, ~-0.5 ] + +v = fresnelf( NaN ); +// returns [ NaN, NaN ] +``` + +#### fresnelf.assign( x, out, stride, offset ) + +Simultaneously computes the [Fresnel integrals][fresnel-integral] S(x) and C(x) and assigns results to a provided output array. + +```javascript +var Float32Array = require( '@stdlib/array/float32' ); + +var out = new Float32Array( 2 ); + +var v = fresnelf.assign( 0.0, out, 1, 0 ); +// returns [ ~0.0, ~0.0 ] + +var bool = ( v === out ); +// returns true +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var fresnelf = require( '@stdlib/math/base/special/fresnelf' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, 0.0, 10.0, opts ); + +var y; +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( fresnelf( x[ i ] ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/fresnelf.h" +``` + +#### stdlib_base_fresnelf( x, &S, &C ) + +Simultaneously computes the [Fresnel integrals][fresnel-integral] S(x) and C(x) for a single-precision floating-point number. + +```c +float S; +float C; + +stdlib_base_fresnelf( 4.0f, &S, &C ); +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. +- **S**: `[out] float*` destination for S(x). +- **C**: `[out] float*` destination for C(x). + +```c +void stdlib_base_fresnelf( const float x, float *S, float *C ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/fresnelf.h" +#include + +int main( void ) { + const float x[] = { 0.0f, 1.57f, 3.14f, 6.28f }; + + float S; + float C; + int i; + for ( i = 0; i < 4; i++ ) { + stdlib_base_fresnelf( x[ i ], &S, &C ); + printf( "x: %f => S(x): %f, C(x): %f\n", x[ i ], S, C ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.js new file mode 100644 index 000000000000..7372b83e19c9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.js @@ -0,0 +1,74 @@ +/** +* @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 randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; +var fresnelf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu()*20.0 ) - 10.0; + y = fresnelf( x ); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( format( '%s:assign', pkg ), function benchmark( b ) { + var x; + var y; + var i; + + y = [ 0.0, 0.0 ]; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu()*20.0 ) - 10.0; + fresnelf.assign( x, y, 1, 0 ); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..edfb09e9e067 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/benchmark.native.js @@ -0,0 +1,61 @@ +/** +* @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 randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var fresnelf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( fresnelf instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s:native', pkg ), opts, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu() * 20.0 ) - 10.0; + y = fresnelf( x ); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y[0] ) || isnanf( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..85101cdb5fec --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/benchmark/c/native/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 "stdlib/math/base/special/fresnelf.h" +#include +#include +#include +#include +#include + +#define NAME "fresnelf" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec / 1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 100 ]; + double t; + float C; + float S; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 20.0f * rand_float() ) - 10.0f; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + stdlib_base_fresnelf( x[ i%100 ], &S, &C ); + if ( C != C || S != S ) { + printf( "unexpected results\n" ); + break; + } + } + elapsed = tic() - t; + if ( C != C || S != S ) { + printf( "unexpected results\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/fresnelf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/fresnelf/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/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/fresnelf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/repl.txt new file mode 100644 index 000000000000..92dd0a370dbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/repl.txt @@ -0,0 +1,62 @@ + +{{alias}}( x ) + Computes the Fresnel integrals S(x) and C(x) for a single-precision + floating-point number. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: Array + S(x) and C(x). + + Examples + -------- + > var y = {{alias}}( 0.0 ) + [ ~0.0, ~0.0 ] + > y = {{alias}}( 1.0 ) + [ ~0.438, ~0.780 ] + > y = {{alias}}( {{alias:@stdlib/constants/float32/pinf}} ) + [ ~0.5, ~0.5 ] + > y = {{alias}}( {{alias:@stdlib/constants/float32/ninf}} ) + [ ~-0.5, ~-0.5 ] + > y = {{alias}}( NaN ) + [ NaN, NaN ] + + +{{alias}}.assign( x, out, stride, offset ) + Computes the Fresnel integrals S(x) and C(x) and assigns results to a + provided output array. + + Parameters + ---------- + x: number + Input value. + + out: Array + Destination array. + + stride: integer + Output array stride. + + offset: integer + Output array index offset. + + Returns + ------- + out: Array + S(x) and C(x). + + Examples + -------- + > var out = new {{alias:@stdlib/array/float32}}( 2 ); + > var v = {{alias}}.assign( 0.0, out, 1, 0 ) + [ ~0.0, ~0.0 ] + > var bool = ( v === out ) + true + + See Also + -------- diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/index.d.ts new file mode 100644 index 000000000000..3ad72c1c47e9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/index.d.ts @@ -0,0 +1,111 @@ +/* +* @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 + +/// + +import { Collection } from '@stdlib/types/array'; + +/** +* Interface describing `fresnelf`. +*/ +interface Fresnelf { + /** + * Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number. + * + * @param x - input value + * @returns S(x) and C(x) + * + * @example + * var v = fresnelf( 0.0 ); + * // returns [ 0.0, 0.0 ] + * + * @example + * var v = fresnelf( 1.0 ); + * // returns [ ~0.438, ~0.780 ] + * + * @example + * var v = fresnelf( Infinity ); + * // returns [ ~0.5, ~0.5 ] + * + * @example + * var v = fresnelf( -Infinity ); + * // returns [ ~-0.5, ~-0.5 ] + * + * @example + * var v = fresnelf( NaN ); + * // returns [ NaN, NaN ] + */ + ( x: number ): Array; + + /** + * Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number and assigns results to a provided output array. + * + * @param x - input value + * @param out - output array + * @param stride - output array stride + * @param offset - output array index offset + * @returns output array + * + * @example + * var Float32Array = require( '@stdlib/array/float32' ); + * + * var out = new Float32Array( 2 ); + * + * var v = fresnelf.assign( 0.0, out, 1, 0 ); + * // returns [ ~0.0, ~0.0 ] + * + * var bool = ( v === out ); + * // returns true + */ + assign( x: number, out: Collection, stride: number, offset: number ): Collection; +} + +/** +* Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number. +* +* @param x - input value +* @returns S(x) and C(x) +* +* @example +* var v = fresnelf( 0.0 ); +* // returns [ 0.0, 0.0 ] +* +* @example +* var v = fresnelf( 1.0 ); +* // returns [ ~0.438, ~0.780 ] +* +* @example +* var v = fresnelf( Infinity ); +* // returns [ ~0.5, ~0.5 ] +* +* @example +* var v = fresnelf( -Infinity ); +* // returns [ ~-0.5, ~-0.5 ] +* +* @example +* var v = fresnelf( NaN ); +* // returns [ NaN, NaN ] +*/ +declare var fresnelf: Fresnelf; + + +// EXPORTS // + +export = fresnelf; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/test.ts new file mode 100644 index 000000000000..b8e4c85338e2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/docs/types/test.ts @@ -0,0 +1,113 @@ +/* +* @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 fresnelf = require( './index' ); + + +// TESTS // + +// The function returns a collection... +{ + fresnelf( 1.0 ); // $ExpectType number[] +} + +// The compiler throws an error if the function is provided an argument which is not a number... +{ + fresnelf( true ); // $ExpectError + fresnelf( false ); // $ExpectError + fresnelf( null ); // $ExpectError + fresnelf( undefined ); // $ExpectError + fresnelf( '5' ); // $ExpectError + fresnelf( [] ); // $ExpectError + fresnelf( {} ); // $ExpectError + fresnelf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + fresnelf(); // $ExpectError + fresnelf( 1.0, 2.0 ); // $ExpectError +} + +// Attached to the main export is an `assign` method which returns an array-like object containing numbers... +{ + const out = [ 0.0, 0.0 ]; + + fresnelf.assign( 0.0, out, 1, 0 ); // $ExpectType Collection +} + +// The compiler throws an error if the `assign` method is provided a first argument which is not a number... +{ + const out = [ 0.0, 0.0 ]; + + fresnelf.assign( true, out, 1, 0 ); // $ExpectError + fresnelf.assign( false, out, 1, 0 ); // $ExpectError + fresnelf.assign( '5', out, 1, 0 ); // $ExpectError + fresnelf.assign( null, out, 1, 0 ); // $ExpectError + fresnelf.assign( [], out, 1, 0 ); // $ExpectError + fresnelf.assign( {}, out, 1, 0 ); // $ExpectError + fresnelf.assign( ( x: number ): number => x, out, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the `assign` method is provided a second argument which is not an array-like object... +{ + fresnelf.assign( 1.0, 1, 1, 0 ); // $ExpectError + fresnelf.assign( 1.0, true, 1, 0 ); // $ExpectError + fresnelf.assign( 1.0, false, 1, 0 ); // $ExpectError + fresnelf.assign( 1.0, null, 1, 0 ); // $ExpectError + fresnelf.assign( 1.0, {}, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the `assign` method is provided a third argument which is not a number... +{ + const out = [ 0.0, 0.0 ]; + + fresnelf.assign( 1.0, out, '5', 0 ); // $ExpectError + fresnelf.assign( 1.0, out, true, 0 ); // $ExpectError + fresnelf.assign( 1.0, out, false, 0 ); // $ExpectError + fresnelf.assign( 1.0, out, null, 0 ); // $ExpectError + fresnelf.assign( 1.0, out, [], 0 ); // $ExpectError + fresnelf.assign( 1.0, out, {}, 0 ); // $ExpectError + fresnelf.assign( 1.0, out, ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the `assign` method is provided a fourth argument which is not a number... +{ + const out = [ 0.0, 0.0 ]; + + fresnelf.assign( 1.0, out, 1, '5' ); // $ExpectError + fresnelf.assign( 1.0, out, 1, true ); // $ExpectError + fresnelf.assign( 1.0, out, 1, false ); // $ExpectError + fresnelf.assign( 1.0, out, 1, null ); // $ExpectError + fresnelf.assign( 1.0, out, 1, [] ); // $ExpectError + fresnelf.assign( 1.0, out, 1, {} ); // $ExpectError + fresnelf.assign( 1.0, out, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `assign` method is provided an unsupported number of arguments... +{ + const out = [ 0.0, 0.0 ]; + + fresnelf.assign(); // $ExpectError + fresnelf.assign( 1.0 ); // $ExpectError + fresnelf.assign( 1.0, out ); // $ExpectError + fresnelf.assign( 1.0, out, 1 ); // $ExpectError + fresnelf.assign( 1.0, out, 1, 0, 1 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile new file mode 100644 index 000000000000..b7add0f6664e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile @@ -0,0 +1,123 @@ +#/ +# @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 := @ +endif + +# Specify the path to Cephes: +CEPHES ?= + +# Specify a list of Cephes source files: +CEPHES_SRC ?= + +# Determine the OS: +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate [position independent code][1]: +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := runner.out + + +# TARGETS # + +# Default target. +# +# This target is the default target. + +all: $(c_targets) + +.PHONY: all + + +# Compile C source. +# +# This target compiles C source files. + +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $(CEPHES_SRC) $< -lm + + +# Generate test fixtures. +# +# This target generates test fixtures. + +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + + +# Perform clean-up. +# +# This target removes generated files. + +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean + + +# Remove fixtures. +# +# This target removes fixture data. + +clean-fixtures: + $(QUIET) -rm -f *.json + +.PHONY: clean-fixtures diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/example.c new file mode 100644 index 000000000000..d1ce9a19daf4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/example.c @@ -0,0 +1,32 @@ +/** +* @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/fresnelf.h" +#include + +int main( void ) { + const float x[] = { 0.0f, 1.57f, 3.14f, 6.28f }; + + float C; + float S; + int i; + for ( i = 0; i < 4; i++ ) { + stdlib_base_fresnelf( x[ i ], &S, &C ); + printf( "x: %f => S(x): %f, C(x): %f\n", x[ i ], S, C ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/index.js new file mode 100644 index 000000000000..e2b1bcfba43e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/index.js @@ -0,0 +1,34 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var fresnelf = require( './../lib' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, 0.0, 10.0, opts ); + +var y; +var i; +for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[ i ] ); + console.log( 'fresnelf(%d) = [ %d, %d ]', x[ i ], y[ 0 ], y[ 1 ] ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/include.gypi b/lib/node_modules/@stdlib/math/base/special/fresnelf/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/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': [ + ' 36974.0 ) { + out[ offset ] = 0.5; + out[ offset+stride ] = 0.5; + } else { + // Asymptotic power series auxiliary functions for large arguments... + t = float64ToFloat32( PI * x2 ); + u = float64ToFloat32( 1.0 / float64ToFloat32( t * t ) ); + t = float64ToFloat32( 1.0 / t ); + f = float64ToFloat32( 1.0 - float64ToFloat32( u * polyF( u ) ) ); + g = float64ToFloat32( t * polyG( u ) ); + t = float64ToFloat32( HALF_PI * x2 ); + sincosf( t, sc, 1, 0 ); + t = float64ToFloat32( PI * xa ); + out[ offset+stride ] = float64ToFloat32( 0.5 + ( float64ToFloat32( float64ToFloat32( f * sc[0] ) - float64ToFloat32( g * sc[1] ) ) / t ) ); + out[ offset ] = float64ToFloat32( 0.5 - ( float64ToFloat32( float64ToFloat32( f * sc[1] ) + float64ToFloat32( g * sc[0] ) ) / t ) ); + } + if ( x < 0.0 ) { + out[ offset ] = -out[ offset ]; + out[ offset+stride ] = -out[ offset+stride ]; + } + return out; +} + + +// EXPORTS // + +module.exports = fresnelf; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/index.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/index.js new file mode 100644 index 000000000000..c21348c8affd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/index.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'; + +/** +* Compute the Fresnel integrals S(x) and C(x) for single-precision floating-point numbers. +* +* @module @stdlib/math/base/special/fresnelf +* +* @example +* var fresnelf = require( '@stdlib/math/base/special/fresnelf' ); +* +* var v = fresnelf( 0.0 ); +* // returns [ 0.0, 0.0 ] +* +* v = fresnelf( 1.0 ); +* // returns [ ~0.438, ~0.780 ] +* +* v = fresnelf( Infinity ); +* // returns [ ~0.5, ~0.5 ] +* +* v = fresnelf( -Infinity ); +* // returns [ ~-0.5, ~-0.5 ] +* +* v = fresnelf( NaN ); +* // returns [ NaN, NaN ] +* +* @example +* var fresnelf = require( '@stdlib/math/base/special/fresnelf' ); +* +* var out = new Float32Array( 2 ); +* +* var v = fresnelf.assign( 0.0, out, 1, 0 ); +* // returns [ ~0.0, ~0.0 ] +* +* var bool = ( v === out ); +* // returns true +*/ + +// MODULES // + +var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var main = require( './main.js' ); +var assign = require( './assign.js' ); + + +// MAIN // + +setReadOnly( main, 'assign', assign ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/main.js new file mode 100644 index 000000000000..486e9f9e566e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/main.js @@ -0,0 +1,61 @@ +/** +* @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 computeFresnelf = require( './assign.js' ); + + +// MAIN // + +/** +* Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number. +* +* @param {number} x - input value +* @returns {Array} S(x) and C(x) +* +* @example +* var v = fresnelf( 0.0 ); +* // returns [ 0.0, 0.0 ] +* +* @example +* var v = fresnelf( 1.0 ); +* // returns [ ~0.438, ~0.780 ] +* +* @example +* var v = fresnelf( Infinity ); +* // returns [ ~0.5, ~0.5 ] +* +* @example +* var v = fresnelf( -Infinity ); +* // returns [ ~-0.5, ~-0.5 ] +* +* @example +* var v = fresnelf( NaN ); +* // returns [ NaN, NaN ] +*/ +function fresnelf( x ) { + return computeFresnelf( x, [ 0.0, 0.0 ], 1, 0 ); +} + + +// EXPORTS // + +module.exports = fresnelf; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/native.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/native.js new file mode 100644 index 000000000000..8505e31f8865 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/native.js @@ -0,0 +1,65 @@ +/** +* @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 Float32Array = require( '@stdlib/array/float32' ); +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number. +* +* @private +* @param {number} x - input value +* @returns {Float32Array} S(x) and C(x) +* +* @example +* var v = fresnelf( 0.0 ); +* // returns [ 0.0, 0.0 ] +* +* @example +* var v = fresnelf( 1.0 ); +* // returns [ ~0.438, ~0.780 ] +* +* @example +* var v = fresnelf( Infinity ); +* // returns [ ~0.5, ~0.5 ] +* +* @example +* var v = fresnelf( -Infinity ); +* // returns [ ~-0.5, ~-0.5 ] +* +* @example +* var v = fresnelf( NaN ); +* // returns [ NaN, NaN ] +*/ +function fresnelf( x ) { + var out = new Float32Array( 2 ); + addon( x, out ); + return out; +} + + +// EXPORTS // + +module.exports = fresnelf; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_cn.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_cn.js new file mode 100644 index 000000000000..61a6c75c332b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_cn.js @@ -0,0 +1,52 @@ +/** +* @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'; + +// MODULES // + +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// 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 1.0; + } + return float64ToFloat32(1.0 + float64ToFloat32(x * float64ToFloat32(-0.24673981964588165 + float64ToFloat32(x * float64ToFloat32(0.028184890747070312 + float64ToFloat32(x * float64ToFloat32(-0.001604381832294166 + float64ToFloat32(x * float64ToFloat32(0.00005387223427533172 + float64ToFloat32(x * float64ToFloat32(-0.0000011572313951546676 + float64ToFloat32(x * 1.4168024975447224e-8)))))))))))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_fn.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_fn.js new file mode 100644 index 000000000000..862e6d05eb2b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_fn.js @@ -0,0 +1,52 @@ +/** +* @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'; + +// MODULES // + +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// 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 2.999401807785034; + } + return float64ToFloat32(2.999401807785034 + float64ToFloat32(x * float64ToFloat32(-103.28775787353516 + float64ToFloat32(x * float64ToFloat32(8560.515625 + float64ToFloat32(x * float64ToFloat32(-873235.6875 + float64ToFloat32(x * float64ToFloat32(73438488.0 + float64ToFloat32(x * float64ToFloat32(-4158143232.0 + float64ToFloat32(x * float64ToFloat32(135594237952.0 + float64ToFloat32(x * -1903009857536.0)))))))))))))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_gn.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_gn.js new file mode 100644 index 000000000000..f8b136432dbf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_gn.js @@ -0,0 +1,52 @@ +/** +* @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'; + +// MODULES // + +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// 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.9999842047691345; + } + return float64ToFloat32(0.9999842047691345 + float64ToFloat32(x * float64ToFloat32(-14.934393882751465 + float64ToFloat32(x * float64ToFloat32(860.2931518554688 + float64ToFloat32(x * float64ToFloat32(-77877.8984375 + float64ToFloat32(x * float64ToFloat32(6492611.5 + float64ToFloat32(x * float64ToFloat32(-377938784.0 + float64ToFloat32(x * float64ToFloat32(12783506432.0 + float64ToFloat32(x * -186084392960.0)))))))))))))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_sn.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_sn.js new file mode 100644 index 000000000000..3132d1d1afc5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/lib/polyval_sn.js @@ -0,0 +1,52 @@ +/** +* @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'; + +// MODULES // + +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// 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.5235987901687622; + } + return float64ToFloat32(0.5235987901687622 + float64ToFloat32(x * float64ToFloat32(-0.0922805592417717 + float64ToFloat32(x * float64ToFloat32(0.007244727574288845 + float64ToFloat32(x * float64ToFloat32(-0.00031206931453198195 + float64ToFloat32(x * float64ToFloat32(0.000008424748557445128 + float64ToFloat32(x * float64ToFloat32(-1.5227547578433587e-7 + float64ToFloat32(x * 1.64762947729713e-9)))))))))))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json new file mode 100644 index 000000000000..3f732b5fa78c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json @@ -0,0 +1,87 @@ +{ + "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/napi/argv", + "@stdlib/napi/argv-float", + "@stdlib/napi/argv-float32array", + "@stdlib/napi/export", + "@stdlib/math/base/special/absf", + "@stdlib/math/base/special/sincosf", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/half-pi" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/special/absf", + "@stdlib/math/base/special/sincosf", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/half-pi" + ] + }, + { + "task": "examples", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/special/absf", + "@stdlib/math/base/special/sincosf", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/half-pi" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/package.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/package.json new file mode 100644 index 000000000000..d7ae722f25cd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/package.json @@ -0,0 +1,66 @@ +{ + "name": "@stdlib/math/base/special/fresnelf", + "version": "0.0.0", + "description": "Compute the Fresnel integrals S(x) and C(x) 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", + "fresnel", + "integral", + "float32", + "single" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/scripts/evalpoly.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/scripts/evalpoly.js new file mode 100644 index 000000000000..7e8a9ea4dc11 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/scripts/evalpoly.js @@ -0,0 +1,193 @@ +/** +* @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... + +// S(x) for small x: +var SN = [ + 5.235987735681432e-1, + -9.228055941124598e-2, + 7.244727626597022e-3, + -3.120693124703272e-4, + 8.424748808502400e-6, + -1.522754752581096e-7, + 1.647629463788700e-9 +]; + +// C(x) for small x: +var CN = [ + 9.999999760004487e-1, + -2.467398198317899e-1, + 2.818489036795073e-2, + -1.604381798862293e-3, + 5.387223446683264e-5, + -1.157231412229871e-6, + 1.416802502367354e-8 +]; + +// Auxiliary function f(x): +var FN = [ + 2.999401847870011e0, + -1.032877601091159e2, + 8.560515466275470e3, + -8.732356681548485e5, + 7.343848463587323e7, + -4.158143148511033e9, + 1.355942388050252e11, + -1.903009855649792e12 +]; + +// Auxiliary function g(x): +var GN = [ + 9.999841934744914e-1, + -1.493439396592284e1, + 8.602931494734327e2, + -7.787789623358162e4, + 6.492611570598858e6, + -3.779387713202229e8, + 1.278350673393208e10, + -1.860843997624650e11 +]; + +// 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 = { + 'encoding': 'utf8' + }; + + fpath = resolve( __dirname, '..', 'lib', 'polyval_sn.js' ); + str = header + compile( SN, { + 'dtype': 'float32' + }); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_cn.js' ); + str = header + compile( CN, { + 'dtype': 'float32' + }); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_fn.js' ); + str = header + compile( FN, { + 'dtype': 'float32' + }); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_gn.js' ); + str = header + compile( GN, { + 'dtype': 'float32' + }); + writeFileSync( fpath, str, opts ); + + copts = { + 'dtype': 'float', + 'name': '' + }; + + fpath = resolve( __dirname, '..', 'src', 'main.c' ); + file = readFileSync( fpath, opts ); + + copts.name = 'polyval_sn'; + str = compileC( SN, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_cn'; + str = compileC( CN, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_fn'; + str = compileC( FN, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_gn'; + str = compileC( GN, copts ); + file = insert( file, copts.name, str ); + + writeFileSync( fpath, file, opts ); +} + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/fresnelf/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/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/fresnelf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/fresnelf/src/addon.c new file mode 100644 index 000000000000..182f0d688a5e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/src/addon.c @@ -0,0 +1,41 @@ +/** +* @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/fresnelf.h" +#include "stdlib/napi/argv.h" +#include "stdlib/napi/argv_float.h" +#include "stdlib/napi/argv_float32array.h" +#include "stdlib/napi/export.h" +#include + +/** +* Receives JavaScript callback invocation data. +* +* @param env environment under which the function is invoked +* @param info callback data +* @return Node-API value +*/ +static napi_value addon( napi_env env, napi_callback_info info ) { + STDLIB_NAPI_ARGV( env, info, argv, argc, 2 ); + STDLIB_NAPI_ARGV_FLOAT( env, x, argv, 0 ); + STDLIB_NAPI_ARGV_FLOAT32ARRAY( env, y, ylen, argv, 1 ); + stdlib_base_fresnelf( x, &y[ 0 ], &y[ 1 ] ); + return NULL; +} + +STDLIB_NAPI_MODULE_EXPORT_FCN( addon ) diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/src/main.c b/lib/node_modules/@stdlib/math/base/special/fresnelf/src/main.c new file mode 100644 index 000000000000..5d52b5701b9b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/src/main.c @@ -0,0 +1,209 @@ +/** +* @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 according to project conventions. +* +* ```text +* Copyright 1984, 1987, 1989 by Stephen L. Moshier +* +* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee. +* +* Stephen L. Moshier +* moshier@na-net.ornl.gov +* ``` +*/ + +#include "stdlib/math/base/special/fresnelf.h" +#include "stdlib/constants/float32/half_pi.h" +#include "stdlib/constants/float32/pi.h" +#include "stdlib/math/base/assert/is_nanf.h" +#include "stdlib/math/base/special/absf.h" +#include "stdlib/math/base/special/sincosf.h" + +/* Begin auto-generated functions. The following functions are auto-generated. Do not edit directly. */ + +// BEGIN: polyval_sn + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_sn( const float x ) { + return 0.5235987735681432f + (x * (-0.09228055941124598f + (x * (0.007244727626597022f + (x * (-0.0003120693124703272f + (x * (0.0000084247488085024f + (x * (-1.522754752581096e-7f + (x * 1.6476294637887e-9f))))))))))); +} + +// END: polyval_sn + +// BEGIN: polyval_cn + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_cn( const float x ) { + return 0.9999999760004487f + (x * (-0.2467398198317899f + (x * (0.02818489036795073f + (x * (-0.001604381798862293f + (x * (0.00005387223446683264f + (x * (-0.000001157231412229871f + (x * 1.416802502367354e-8f))))))))))); +} + +// END: polyval_cn + +// BEGIN: polyval_fn + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_fn( const float x ) { + return 2.999401847870011f + (x * (-103.2877601091159f + (x * (8560.51546627547f + (x * (-873235.6681548485f + (x * (73438484.63587323f + (x * (-4158143148.511033f + (x * (135594238805.0252f + (x * -1903009855649.792f))))))))))))); +} + +// END: polyval_fn + +// BEGIN: polyval_gn + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_gn( const float x ) { + return 0.9999841934744914f + (x * (-14.93439396592284f + (x * (860.2931494734327f + (x * (-77877.89623358162f + (x * (6492611.570598858f + (x * (-377938771.3202229f + (x * (12783506733.93208f + (x * -186084399762.465f))))))))))))); +} + +// END: polyval_gn + +/* End auto-generated functions. */ + +/** +* Computes the Fresnel integrals S(x) and C(x) for a single-precision floating-point number. +* +* ## Method +* +* Evaluates the Fresnel integrals +* +* ```tex +* \begin{align*} +* \operatorname{S}(x) &= \int_0^x \sin\left(\frac{\pi}{2} t^2\right)\,\mathrm{d}t, \\ +* \operatorname{C}(x) &= \int_0^x \cos\left(\frac{\pi}{2} t^2\right)\,\mathrm{d}t. +* \end{align*} +* ``` +* +* The integrals are evaluated by a power series for small \\( x \\). For larger \\( x \\), auxiliary functions \\( f(x) \\) and \\( g(x) \\) are employed such that +* +* ```tex +* \begin{align*} +* \operatorname{C}(x) &= \frac{1}{2} + f(x) \sin\left( \frac{\pi}{2} x^2 \right) - g(x) \cos\left( \frac{\pi}{2} x^2 \right), \\ +* \operatorname{S}(x) &= \frac{1}{2} - f(x) \cos\left( \frac{\pi}{2} x^2 \right) - g(x) \sin\left( \frac{\pi}{2} x^2 \right). +* \end{align*} +* ``` +* +* ## Notes +* +* - Relative error on test interval \\( [0,10] \\): +* +* | arithmetic | function | # trials | peak | rms | +* |:----------:|:--------:|:--------:|:-------:|:-------:| +* | IEEE | S(x) | 30000 | 1.1e-6 | 1.9e-7 | +* | IEEE | C(x) | 30000 | 1.1e-6 | 2.0e-7 | +* +* @param x input value +* @param S destination for S(x) +* @param C destination for C(x) +* +* @example +* float x = 0.0f; +* +* float S; +* float C; +* stdlib_base_fresnelf( x, &S, &C ); +*/ +void stdlib_base_fresnelf( const float x, float *S, float *C ) { + float xa; + float x2; + float f; + float g; + float t; + float u; + float s; + float c; + + if ( stdlib_base_is_nanf( x ) ) { + *S = 0.0f / 0.0f; + *C = 0.0f / 0.0f; + return; + } + xa = stdlib_base_absf( x ); + x2 = xa * xa; + if ( x2 < 2.5625f ) { + t = x2 * x2; + *S = xa * x2 * polyval_sn( t ); + *C = xa * polyval_cn( t ); + } else if ( xa > 36974.0f ) { + *S = 0.5f; + *C = 0.5f; + } else { + // Asymptotic power series auxiliary functions for large arguments... + x2 = xa * xa; + t = STDLIB_CONSTANT_FLOAT32_PI * x2; + u = 1.0f / ( t * t ); + t = 1.0f / t; + f = 1.0f - ( u * polyval_fn( u ) ); + g = t * polyval_gn( u ); + t = STDLIB_CONSTANT_FLOAT32_HALF_PI * x2; + stdlib_base_sincosf( t, &s, &c ); + t = STDLIB_CONSTANT_FLOAT32_PI * xa; + *C = 0.5f + ( ( ( f * s ) - ( g * c ) ) / t ); + *S = 0.5f - ( ( ( f * c ) + ( g * s ) ) / t ); + } + if ( x < 0.0f ) { + *S = -*S; + *C = -*C; + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/Makefile b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/Makefile new file mode 100644 index 000000000000..b7add0f6664e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/Makefile @@ -0,0 +1,123 @@ +#/ +# @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 := @ +endif + +# Specify the path to Cephes: +CEPHES ?= + +# Specify a list of Cephes source files: +CEPHES_SRC ?= + +# Determine the OS: +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate [position independent code][1]: +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := runner.out + + +# TARGETS # + +# Default target. +# +# This target is the default target. + +all: $(c_targets) + +.PHONY: all + + +# Compile C source. +# +# This target compiles C source files. + +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $(CEPHES_SRC) $< -lm + + +# Generate test fixtures. +# +# This target generates test fixtures. + +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + + +# Perform clean-up. +# +# This target removes generated files. + +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean + + +# Remove fixtures. +# +# This target removes fixture data. + +clean-fixtures: + $(QUIET) -rm -f *.json + +.PHONY: clean-fixtures diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/huge.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/huge.json new file mode 100644 index 000000000000..59815487c0ca --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/huge.json @@ -0,0 +1 @@ +{"x":[41170.9531,40220.2266,41369.7383,41173.4531,42200.2461,59542.3125,47673.2812,44815.875,40382.4141,47232.0078,48373.6797,56414.5195,58809.2031,46292.0742,50878.0078,46675.668,57931.3906,52913.1094,50609.1172,47392.4258,44517.3477,43064.0977,58269.8242,40932.0195,44432.2109,52157.1094,44526.1719,51355.0117,43664.4453,48334.8398,43671.8438,52664.6992,55605.0391,53925.1953,40773.7812,44914.0703,50786.9727,56628.1445,49256.4375,52917.1953,59295.2109,54590.2422,58170.207,46697.8867,51409.4883,59301.4375,59274.8164,51839.8789,52814.9297,40536.082,49936.9961,51076.0391,54981.0078,45803.9961,47744.9844,49949.9531,48844.293,46043.8242,58557.7539,40146.7461,46364.9102,55066.3203,59667.3164,48572.7305,41881.3672,40112.8906,57362.3516,49055.125,49470.3867,48782.4648,46900.3086,53459.8906,40398.1094,51039.8203,46259.7812,48148.7266,55650.0234,49913.1797,50788.7109,45899.3945,51107.1133,57270.6289,47480.6133,46679.5391,43043.8125,57326.1016,59759.7539,42202.9805,45481.0664,40289.8555,51599.7734,57407.7695,52396.1367,41868.0352,56080.0977,58192.3945,59577.2695,55157.0273,44159.9922,56987.1758,43443.7969,59909.1641,53290.1133,46930.1758,55449.7891,44621.3555,51113.8828,50987.4648,46280.8242,41786.8203,51114.6523,43975.0078,47978.7344,58594.793,42662.5742,49894.8047,41990.0781,47253.6133,51505.6289,55108.4336,47463.1758,53611.125,42198.4219,48861.6953,58497.7109,51056.0156,58481.2539,54418.5938,53329.8047,53991.8203,40500.7266,55693.7695,45175.0547,57171.5742,42646.2656,55801.8906,42404.3086,49229.1914,55007.4453,50094.6133,40148.168,50234.5547,52166.3789,40339.4766,45610.082,48678.75,43735.2734,58737.3438,58555.1016,55578.5469,48645.7969,49886.4453,41453.0625,41607.2188,52519.7188,58900.5039,40768.3789,54156.5195,48611.3047,50181.9492,48039.6016,41580.6133,45366.0586,47343.6641,44944.8125,47443.1719,57404.8594,43480.0781,49646.0938,41919.5273,41483.8516,59100.6836,45209.0078,47781.5117,43888.3945,52219.8945,59758.668,43945.4688,51498.1289,49082.1328,43399.0195,47340.9922,40027.0859,55246.4375,46891.293,41950.9297,49295.7617,53840.6172,59258.9062,44408.457,52932.918,43537.6992,58085.0977,56224.0117,56967.0312,44922.9609,40205.3516,51356.5273,49161.9727,45294.832,50251.0234,48929.4922,57987.8047,41058.3359,47428.9453,58275.1562,50547.5469,52613.832,40674.6914,59515.7539,41296.3086,47069.1289,50831.0195,56957.7539,48987.875,59222.2969,49123.4102,57165.4883,40371.1172,57355.6836,56941.7578,40132.2109,42093.5977,47068.4922,40162.582,52537.2266,53148.9805,54881.4648,52791.4062,45140.2383,51972.9688,49705.5312,40839.1055,42858.0391,55071.6875,49835.0703,58060.6836,45910.4805,57455.7852,59359.9219,42219.9922,51434.6875,42762.8008,54377.8789,49007.8828,55502.9141,57450.7422,54631.6484,54125.5547,48216.6016,56434.5977,56265.6562,56856.6953,50487.7734,48025.9258,51742.0625,48834.1016,54725.6953,54790.5898,45428.6406,59188.125,54826.7812,53732.8789,48510.043,48270.1797,56890.625,40727.2148,42269.1602,57804.1094,53691.2148,48240.957,45753.3945,57324.0312,44983.2852,54041.3672,53231.8945,48428.6523,40380.332,52263.3203,49643.9883,46498.6328,42500.7617,50309.2812,48095.9414,48507.7422,49644.543,55814.0469,46668.4766,57100.0781,41001.9648,40039.7461,48005.6602,51138.9414,52186.3789,56440.0898,48568.2891,47222.5,48536.6797,55951.8047,41986.6523,49685.8164,49520.4062,49488.3906,51379.7969,40264.2734,41628.2812,46541.7734,47609.0234,44827.3164,52722.0117,58867.3672,43875.0938,48672.6484,41193.0859,52221.8008,51838.957,57339.0664,57713.8086,55972.8867,56305.1719,41045.75,55908.9492,41720.8828,42858.8164,48131.3945,44311.3906,41549.7227,46212.6172,55489.5078,52174.9648,44630.1797,59410.4297,51089.293,57719.4766,51254.5508,55214.6562,52704.4922,44421.043,44486.7227,48335.2148,49988.8203,42075.0195,54884.7969,48792.6758,58521.7852,55631.7227,42378.5039,55495.7188,56557.4414,40941.2266,59162.0352,56320.793,43539.668,51231.1797,42433.6016,41515.4883,50788.6797,45353.8945,42923.2812,51579.6719,59566.418,52803.0938,41588.5234,58316.3516,42888.9883,55243.4922,57386.2188,50195.0547,48278.6406,59123.1484,42720.0312,55592.0742,55976.6211,59080.3242,43013.6914,51086.168,45256.0391,58214.7539,55385.7461,48237.1562,41866.4297,49097.9062,48513.9922,54668.4688,52962.207,55832.2891,53296.3906,52424.9375,45911.2852,51001.3516,59702.1289,53687.4375,44737.0117,54986.625,40179.207,51947.8438,47400.2812,56498.1094,43708.2266,44181.1914,53296.7227,58017.0352,52291.6719,46116.1641,54394.3906,46533.9102,55454.8281,49305.8008,42596.7031,42815.7422,44168.2891,56402.5156,57094.3984,45540.2969,55761.1367,57424.5078,53673.8125,55774.0742,54902.4023,44684.6875,55570.3789,51384.2695,55435.1406,58406.5977,59652.5,59569.1211,58244.5586,56294.0391,53938.0781,57284.9648,48377.3555,58213.8789,40645.7188,52597.7227,49914.7148,56612.4453,45354.3945,51316.1211,50072.9219,55601.8359,40031.5664,50518.5781,45768.5859,52594.5273,56188.5664,41265.9102,56162.8047,48236.5,50852.2266,53337.8984,50031.9609,47164.8125,58973.6523,50190.1875,46467.0977,52531.5938,58493.4258,58995.0352,49558.4375,48638.6992,50586.1211,40964.0352,42550.9766,54271.7578,45449.0781,42686.6914,55194.6055,55763.4883,56935.1484,49043.4766,53682.6445,44228.4062,46806.0391,49126.6406,51424.7695,56071.7773,58381.8203,43268.3672,51457.1211,59857.3047,41747.3555,47780.8672,53003.3203,46833.3906,48764.4531,44168.9883,48168.9922,56266.6016,52805.8984,48715.4766,40999.9219,45672.9062,44531.8789,47272.332,46073.082,50257.8516,43747.6523,46785.5625,44946.5547,56746.3516,55929.7148,50703.2266,49124.0391,47699.1562,59710.9336,41670.9297,43327.3164,42212.3906,43641.6602,45358.3477,57762.3086,51155.7695,55011.4844,57997.6016,45674.8984,58018.8789,43267.9727,44789.3672,54923.3203,56237.0547,56214.4727,56627.7344,42365.0039,48633.2227,58584.8047,54803.0781,55306.9766,44375.9609,46743.1289,51763.6484,51617.6211,57357.2852,43895.6172,53643.8203,51711.1289,48949.8359,59872.8867,43595.7539,53866.3281,51389.0664,56027.1758,48780,45457.8047,49302.6055,48871.8086,48515.2539,55873.5469,46706.9141,43116.457,58309.8281,53288.6719,42689.0938,55566.3086,42920.6016,46541.2656,59056.9922,50855.457,47674.3438,42695.2148,58459.4258,47590.5625,54600.0586,43168.3867,51070.3711,59717.8164,57323.6914,59314.8008,43852.168,43409.1328,57311.1055,47725.6211,44503.8477,56169.3555,58361.5,41699.9414,50938.6094,45211.2578,45617.7812,58063.6602,55925.832,45475.4453,45844.0508,40926.0664,44397.4375,47718.1328,58643.1523,55444.7969,40699.9805,44565.3984,50678.0977,46781.2188,51976.7734,53655.5742,49259.8008,49506.2266,51164.6445,44208.6914,55468.0898,52174.0312,48943.7852,58221.6523,51342.0156,45260.0625,45880.6055,55317.4961,41180.2148,55869.0234,50700.5039,43363.8828,56774.9062,55840.4844,51041.5859,55911.5469,45366.6641,57534.2227,57667.9961,46021.0977,56568.6328,49044.5664,52023.4297,57773.4062,57654.3906,57364.7969,50134.9531,58166.5703,45558.1367,55577.7578,55412.3438,55271.2266,43525.8672,59272.1523,47053.3242,45191.5234,53967.7148,55384.0586,59904.6016,56658.0625,52046.8164,50825.4102,42681.625,50053.4141,47735.3477,47980.2656,44334.3125,46770.9766,59790.5469,59716.9492,42799.3594,48856.8086,56383.1328,51321.3086,57216.5703,58888.4492,58164.1836,45450.4961,46505.6172,59929.7969,40113.1641,41919.6484,43509.1602,58449.5,40754.2852,57262.6523,53394.0898,54478.1328,53964.4531,40556.8984,59822.0352,48909.7422,46066.6328,41909.7539,57239.3555,41817.1992,41693.2109,57766.9609,49333.3711,45977.2461,59561.0078,41842.6836,49953.3867,46580.2031,53460.7344,54580.1172,48034.957,43552.0234,58879.7812,52505.5898,41475.5391,59396.8633,43075.5352,50538.2031,55573.5078,43925.1914,50699.0391,58728.1953,44756.1445,56519.3867,41329.3203,41856.9648,50019.125,51432.1953,40889.5312,50380.7305,48964.6484,48875.0859,43555.7617,41676.2227,52256.3164,51899.2383,50460.375,47558.3594,53361.543,47460.6289,50753.9297,41270.5508,54117.3555,50375.3008,57663.9492,57976.9219,58100.2031,50140.2305,46873.457,42202.5547,58317.4336,41121.6133,50936.2617,45769.0195,59888.3867,44145.6055,55201.9844,59739.75,45991.0781,52055.5156,57038.4258,44793.4922,44243.1953,55364.9531,58786.3242,41749.2109,58995.5586,58317.5547,43100.4297,48950.6172,53018.6836,44987.7422,49013.9141,56842.6562,54500.5156,50146.0898,45358.7656,44790.2344,49458.7656,53478.707,56643.0664,59998.75,58989.0156,48392.4414,51727.8203,49509.832,51763.7539,53410.0156,42141.5273,52626.5078,53697.0352,46063.8398,54982.6875,54030.8906,57193.2109,46329.1953,54756.0938,45672.9648,45517.5312,53141.3711,47007.3594,52655.4688,40453.5312,42505.4883,49745.5195,52968.793,46519.0664,45926.543,47375.6758,42997.0547,51486.625,55682.5312,56285.6328,52654.7383,48195.0898,54867.918,45129.3672,49267.1602,53195.1055,50152.9961,41393.3008,57191.0234,49526.1602,46199.6172,56981.6602,50791.168,47173.4727,44571.1992,48170.3984,59854.3398,51914.8281,52483.9336,57459.5234,42194.3984,41244.3672,54100.2461,42865.957,48109.4766,55972.8711,56026.8672,43562.0039,46583.6914,52122.1914,57655.8555,41942.7266,51404.8398,41120.3906,50432.4297,57810.1289,54841.0898,54183.9883,50282.7227,41705.0391,56623.7344,55115.6758,49142.5586,58956.9922,50160.5039,47576.7578,42533.9648,48351.168,58065.6016,48563.0469,59098.0508,40934.4531,45360.207,49020.2031,42558.5898,42219.9062,49932.4922,55399.7422,43492.3359,55701.5625,56159.3633,50424.5195,44888.0117,52831.8008,44064.4648,51480.1484,46876.9023,40078.2422,54999.2422,52255.0312,50315.832,58178.9922,54312.918,57200.7266,52628.6367,49489.0547,42568.8438,54578.4688,40333.2109,40289.3789,43617.6602,42017.6445,50528.0312,44598.4883,46774.6602,41718.2578,58773.1914,41032.293,49755.6797,43702.6055,49674.9648,47151.2891,51733.6133,46834.6484,49928.207,43394.1719,45857.0586,59607.3477,40658.6172,49388.7773,57169.3047,44485.6719,50700.6836,46413.8203,57050.9453,55234.5469,46997.9961,55303.9648,53761.5781,50821.1602,51248.1602,47830.4492,46390.1836,59804.1641,48583.625,44968.7891,50405.8633,51363.9727,54300.2969,45081.5469,45541.3008,52656.8594,43832.3047,49555.4727,58851.875,43469.875,58155.3203,56428.7578,58112.3398,54101.9883,52124.2109,51607.4258,46021.4688,42853.0508,51257.6875,47985.0469,44656.3398,59090.6875,57212.2344,46020.8828,52956.9219,46986.0938,55279.3438,59910.5273,56229.6719,52079.4883,59985.4609,55677.0312,43852.7695,53500.1406,56873.625,55003.8438,49637.9453,44934.5859,55577.9844,59146.3047,51949.9492,42825.0898,41250.0938,50302.293,50619.3203,58954.1133,41740.4766,52219.8281,58638.7148,40887.9844,44376.5234,56248.2539,44407.3477,54281.4258,47942.5078,49705.4531,59575.6172,47397.5234,50148.4727,45357.7734,48117.875,57139.4414,42572.9414,43440.0312,56608.2344,54613.5664,50187.4102,59798.7734,57962.4062,54181.3867,46604.3828,59832.4375,43768.9922,45421.4219,57811.9375,45254.8281,57920.9805,57901.0898,43636.7031,42074.3516,43651.2969,47343.8438,47978.625,56751.3672,40251.957,54617.2148,51538.0078,59258.5156,57858.8828,54219.5312,47667.7656,52135.6953,44633.7109,58782.3633,55165.4375,45478.3945,55366.3398,42065.0781],"S":[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],"C":[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/large.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/large.json new file mode 100644 index 000000000000..bdbc1e6ad80d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/large.json @@ -0,0 +1 @@ +{"x":[28011.0312,2505.12646,10252.8994,28514.1152,13898.1475,11267.7656,13169.0342,35765.5234,23045.4141,25830.9062,12879.8486,5794.32178,19126.8047,20950.2305,25779.002,25505.0254,29881.1035,17018.834,27243.377,6065.95312,12188.4561,559.493347,16347.6504,29800.9688,34506.0898,20877.5469,21009.1992,21326.0273,36522.6523,26960.252,4199.33936,18935.6699,16489.5293,17606.3828,20195.2793,21677.4023,5575.39111,26855.8535,19475.1523,12828.1455,21773.6816,1315.22498,33615.7891,28033.9414,18830.2852,15186.3232,17179.9258,6093.08203,25663.4844,1378.37378,25644.041,6432.1665,9345.00977,35019.8594,27512.4766,30339.2578,10745.5674,12365.3799,24272.1094,30890.2266,15745.7207,16375.3506,16008.1514,2277.19653,14227.9824,23856.7656,19200.6133,7802.2334,27305.9609,25499.9922,19027.6426,13633.1221,18621.2363,4662.04492,15424.0332,30086.3887,1174.00659,20031.9023,4375.33936,27123.7441,23404.8887,20368.4355,18934.0508,26162.5488,18982.3477,26683.5215,36075.0469,26106.4609,34999.3203,14192.8486,23336.0781,6897.79688,18121.4219,11314.5674,25425.8066,25919.7656,31421.2969,18177.3574,29617.2227,6709.03564,16686.4531,8728.68945,965.55719,19557.4824,32245.873,12597.5029,17014.3105,24974.9316,7018.69922,22103.4805,13269.6318,30370.2656,15700.9883,2012.74719,31258.1758,5213.83105,34171.0625,31665.543,30340.8672,920.466309,36047.7773,10261.5996,27236.6582,3756.86841,30669.4258,28941.1328,555.888184,29501.8789,22420.8516,735.239685,20276.5469,23212.877,1171.31116,11603.9229,21377.2168,11922.2021,24127.2637,30125.2363,27224.8926,27277.4355,25415.7812,4884.37256,27910.6621,11758.4297,218.699371,3938.39307,21095.4375,32688.7637,7909.46777,22818.4375,8985.05762,32482.2656,3369.74902,13999.7051,21990.377,29738.3496,14471.5146,23989.0137,29518.2422,2425.49976,36270.0547,21924.9062,35556.4609,12315.377,31949.502,9343.96875,17530.9414,5957.44922,32207.207,26455.4961,1565.68799,2754.16748,29235.498,6953.85742,1623.09351,8870.54492,25271.1211,7207.49463,24119.6543,12798.9355,10181.6992,11789.1885,938.028992,36240.7344,8519.47559,24516.4805,8256.79102,34351.4141,2376.80664,29090.9238,10737.4912,24113.1582,14281.8145,6779.87891,27410.3223,9583.23828,19772.8203,995.733276,10504.5693,17936.3223,34570.6016,35780.8008,21747.0312,32750.4863,12846.3145,32153,341.750702,7173.84131,11603.1514,8424.80371,18907.9688,30260.127,8227.42578,20148.3457,7175.75293,6849.87305,23870.752,33051.3789,18349.5332,10405.0869,5227.93311,13070.7832,6876.30664,25661.3945,3136.4624,1691.37378,13393.4199,9097.86523,11044.4619,21142.6074,14264.6357,13045.9541,32057.0879,10766.5996,33976.8281,11926.7988,27648.1543,24526.5098,29370.9648,34536.7031,19129.502,29414.5703,29933.4277,11439.3809,21412.3242,12006.5547,3792.47583,2282.2583,25554.1406,7290.38477,16079.3584,19121.8848,12003.1387,20130.3379,36379.7969,22679.709,356.646118,36283.0742,19532.8477,23817.5156,23232.9785,7154.0376,10615.7744,6430.396,16455.4238,34347.207,5414.51514,14752.8262,32269.6934,7324.00195,27979.7383,29647.2559,32135.0488,30492.916,12200.6514,21151.8652,22339.8223,3206.14648,29810.1328,4124.5415,15485.3105,27537.7148,12031.915,24424.9551,18676.9238,18787.4805,33230.582,6581.79639,16804.998,9982.25586,15177.5283,16863.5449,35290.1836,35458.0664,17882.002,6523.06934,25359.5859,19118.7773,33527.6797,22099.1875,14864.4316,27501.8594,36251.9609,12854.0176,14123.374,35605.8203,30670.123,3770.69824,4994.83594,3949.83667,29063.5117,29385.9844,28865.1523,14115.4502,13044.3594,5256.21631,9073.29297,3671.73438,997.573547,4561.75781,26053.2949,26400.7539,3374.58105,21470.6992,34431.5508,21768.3223,21841.6113,36800.9453,21354.7148,2483.18115,10148.9199,13959.4766,9567.2334,8892.76465,29983.1738,36341.7578,10227.3711,5045.16504,1746.83826,23760.3652,21441.5742,24275.8379,19837.1602,13046.0703,34008.7656,32523.9258,2959.03784,6426.90381,31513.4238,17925.4004,35371.6562,3640.08374,22138.0684,4637.95166,16089.4609,4541.33838,14724.8809,5044.32373,24479.623,15645.3115,24937.7891,9607.23926,17555.9766,21114.957,28877.8926,6998.15576,8689.48535,5792.38574,23464.2363,22246.3652,18004.6895,3682.71875,1243.77881,12758.373,29044.0371,33913.4062,15334.3418,34439.6211,9905.11035,9150.76074,15110.2754,29599.5898,5333.75635,21735.4199,21957.4863,30035.1621,25190.6582,19142.7285,30456.3477,24394.3457,20429.5859,14239.1943,27930.1406,7269.96924,4811.54688,20734.9551,21202.5391,25976.2754,22502.5664,9833.8623,28496,4431.61426,14233.2627,1987.03064,4643.68555,1842.32397,6176.6709,29376.2578,12845.0225,10428.5684,31142.084,8329.63184,4894.80225,18836.543,9780.1748,11133.7842,10591.5068,4166.43066,18930.627,5507.93799,36242.0391,30423.9805,33523.4922,25453.4688,11475.9062,8438.30469,24595.332,6111.74219,7426.99023,25874.2656,4183.04199,3136.44971,1482.44055,4788.7876,6949.89258,8732.69043,31338.7344,31725.8105,10822.4336,13692.3057,17750.4258,7514.67188,24629.3965,25529.6758,1705.42163,28257.1055,8496.1123,584.596558,32653.7129,8787.24707,26449.2305,6892.47559,2425.27124,32426.4355,23702.1738,2102.09448,21124.0762,34647.3125,34513.3789,32750.5176,13362.876,11970.2236,20014.4824,6574.14404,35694.3086,6099.72217,26646.2461,36449.0078,6035.93213,23846.1094,24458.8184,34700.2695,2778.27319,28776.9824,7152.18945,16428.1465,18406.25,4949.62695,18454.9766,12667.54,14194.4639,13607.0732,23282.416,26845.7832,34596.5,28609.8281,147.972061,32033.4297,18740.3594,15603.0107,14592.1943,24260.4863,19936.4844,23106.1465,14126.6875,17548.0117,34728.1289,28484.2598,28344.9414,9825.10254,28772.3672,3341.854,24519.4297,20974.8281,33601.6289,11262.7314,2294.21802,5322.53857,17565.082,26635.3301,452.675446,27836.7441,23079.127,2479.53662,22641.7188,25583.3145,18296.2578,36827.6914,28407.0684,21553.7188,28587.9414,1013.33838,11410.6143,17295.7617,35565.418,15372.1289,5806.82031,7961.57471,13625.0771,30892.791,21997.7969,6935.29297,21470.4512,30242.209,2075.5415,17326.0586,28542.6797,14644.3643,16107.4629,12114.4873,11043.0137,33684.9961,11224.2305,18933.8496,22791.9121,5657.71729,9347.19141,34838.293,36381.75,18653.6562,33325.6055,18177.8008,186.167282,10266.5664,36968.3984,33418.9258,1021.54462,1839.89661,2252.00854,33368.75,5794.36328,19827.4805,34731.5,11388.293,10848.7568,13614.6709,3482.91821,35515.0273,16520.6504,24418.25,16575.3301,21622.1172,35072.0156,19161.7754,18705.1504,13813.4297,25458.3613,19955.7812,15573.7256,1736.22437,29737.7148,3803.22534,35458.2852,21496.4863,25357.668,23761.5273,4107.86523,30196.1523,2328.20728,23486.0078,19411.1387,6292.02783,13905.6973,27527.4688,24177.4102,24805.8418,4349.02734,27375.9707,22199.0781,34448.2812,7991.61865,2354.41333,21454.0957,13480.5703,35795.2578,6582.58789,30113.2324,9858.28809,33431.0781,20900.541,1880.31348,17826.752,36669.582,25891.834,4454.49658,30091.7852,18107.5957,175.027939,7412.44775,2702.8894,15483.6777,100.231041,3983.15552,35958.1523,15778.9697,22082.7656,33873.6992,11708.0342,1293.05469,29732.2559,22682.3867,8492.58203,14995.0225,9934.12207,17419.1484,7560.11816,14102.9336,23912.6406,36460.9141,21736.8418,8986.26562,15923.9756,25589.2852,7976.71875,10044.8799,35257.4102,899.358032,13139.4434,17783.1855,5024.63574,25444.502,8235.61621,10317.3271,5145.03809,21024.793,25265.6914,26568.877,26639.2246,29029.4316,9668.50488,14814.5303,36868.0312,5824.33545,7351.12305,4464.02441,5856.44873,30849.9395,2358.1377,10305.2217,22928.8887,21682.2383,13074.666,35266.9258,13323.7607,18270.2617,5499.79736,10039.543,19306.7324,21409.1211,31921.0996,11317.3467,35261.7773,542.862244,31813.4219,8383.99023,33553.2617,9549.0498,35139.4219,8967.55762,33353.3086,4367.95605,13652.8945,19077.3359,717.393372,15317.6592,12175.8818,10458.7158,21597.7168,30566.6387,34395.0195,34609.8828,32267.3105,4140.99414,33893.8867,19118.6621,31609.1895,5019.03906,5123.25146,23590.4824,5404.22119,26103.5664,23245.4375,32189.9902,32052.6406,9730.39941,22627.0938,998.466125,19564.2559,35455.6211,13638.4551,34510.4492,20378.2031,35582.7109,11018.4844,27005.1523,21397.2578,16914.5156,7000.21436,6422.33936,28540.8418,20640.5645,20324.1699,12429.8154,1055.40332,17808.7012,28254.3516,35942.9258,17984.3633,30770.3516,29022.5801,5163.60254,1178.01135,13594.4121,31741.3262,13471.2725,27022.8574,23970.4395,12358.1191,12860.29,8941.74316,5090.72656,30041.0137,12870.957,3849.18677,33601.3906,7277.41699,19371.791,8659.56348,19101.8789,7625.50391,6855.18555,2536.33716,18590.209,36278.6328,18626.5117,19547.5703,13130.416,13544.9805,12151.7402,10300.8203,22700.4297,16758.3262,36781.0234,18396.9023,32198.9102,34497.8867,30469.043,16536.8379,1531.02063,10068.4727,26185.8867,5639.52539,35450.1328,32044.6309,22646.6465,34631.6992,30204.6172,33971.625,35099.4805,1390.85583,14189.6504,6449.7666,10161.8828,10589.7041,10732.8672,20148.4316,8629.91602,172.705841,5257.94531,1267.39783,4120.58691,22770.0762,7359.97021,5670.67822,5939.32715,22619.4688,20354.9902,14194.9658,22035.6777,16799.3418,25542.1504,27015.5254,11379.1895,5345.40918,33217.2656,4056.99829,23350.9609,35809.3516,22239.0078,4965.27246,23285.4922,4821.12891,34287.4219,33015.2578,1200.47913,22479.3574,25345.377,1531.74561,22252.3926,8686.5293,29854.1367,6267.72998,11128.9229,2618.95703,6007.0625,17975.5469,30072.4668,25293.7188,18268.0566,5311.69092,19610.2148,33558.0391,16129.1924,8600.22949,17456.5469,9272.31055,29994.6621,8180.7959,10774.792,24176.3965,7794.52832,8422.18652,11795.9199,3468.45581,13684.6914,391.515656,32367.6855,31876.9902,7413.80957,25587.709,18364.8438,9600.75781,19252.6953,35025.0469,4069.39526,10471.8438,21001.793,7441.06348,4292.34131,33354.918,31447.8867,22611.6973,354.115509,30624.3262,8386.43066,823.668274,31575.748,32928.8438,23786.832,23774.4629,242.309784,32028.4512,8792.46777,3573.50098,9270.22754,31857.793,16667.332,19223.4004,22035.75,18010.5195,27905.5938,302.41098,9705.29102,6233.87939,32173.9453,20511.7305,30549.1855,36068.0273,18776.0547,25548.4883,22935.6992,25527.4434,1070.30188,10098.0332,6794.53467,15619.6865,36749.7344,8739.90918,5175.43213,15642.0605,7179.96338,3869.8811,12676.4209,15983.1865,25183.9551,17114.4336,11557.9717,23424.2852,14467.3672,28044.8379,17588.5625,15682.541,23819.5742,20977.375,2672.20898,16059.5039,17266.4531,22336.6016,22810.1758,17620.4824,35948.9531,8632.4375,5691.20508,19082.6309,15994.8125,36191.9492,36638.2656,15790.4229,30226.0117,24797.9902,19847.793,7362.49902,11288.4502,28945.3594,34700.5391,7280.72461,1217.01794,5464.76611,11242.2656,27050.6855,12369.4004,18090.0137,36535.8984,28299.2656,16503.9062,1136.97131,24420.9043,24321.1035,6267.31396,4146.11035,9261.27051,28795.2715,19552.1562,16472.0938,19562.4883,5783.6499,24133.3633,22002.0918,5386.95459,30886.9102,33749.2773,22306.0879,26183.8008,7458.50439,2444.16333,18088.6797,14109.6348,25917.5586,31223.666,15183.666,9393.17285,33307.5,8803.61328,6547.38037,28350.7754,34166.5859,30118.2656,20708.5742,20337.666,18030.8945,1619.35229,19737.1875,28951.1836,21984.041,33857.9961,5935.87549,1477.15625,26594.7461,18931.1992,15106.4541],"S":[0.500008702,0.500013351,0.500006557,0.500005901,0.500021994,0.499971777,0.499977171,0.500003994,0.499986231,0.49998796,0.500017047,0.500044465,0.50000447,0.500011504,0.500010252,0.500010371,0.499991447,0.499981731,0.49999693,0.500051141,0.500007629,0.499846011,0.499990523,0.500005484,0.500001371,0.499987245,0.49998948,0.500014544,0.50000596,0.499990076,0.500000179,0.499989778,0.500004113,0.499990672,0.500015259,0.499985665,0.499967664,0.499993563,0.499995142,0.49997735,0.500009894,0.499897003,0.500009358,0.500007033,0.499992073,0.500007033,0.500011265,0.499953955,0.500005245,0.500194728,0.500006855,0.500032187,0.499977559,0.500006139,0.500003636,0.50001049,0.500029147,0.499974489,0.499986917,0.499993205,0.500018597,0.49998346,0.500019729,0.499869615,0.499983698,0.499986917,0.499984801,0.500013769,0.500001907,0.499991655,0.500007868,0.499989986,0.49998939,0.500049174,0.499979436,0.500008941,0.499803632,0.500005066,0.500047266,0.499997824,0.499994844,0.499991089,0.49999848,0.500000358,0.500015259,0.500006676,0.499998391,0.49998787,0.499992669,0.499996513,0.499999106,0.500046074,0.500006676,0.500014424,0.49999243,0.500012219,0.500005543,0.499992043,0.49999842,0.500047326,0.499982297,0.500033379,0.499845952,0.500014305,0.500006855,0.499978215,0.500018597,0.500005603,0.500043392,0.499985725,0.500018895,0.499997646,0.499993473,0.499939889,0.499990612,0.500044465,0.50000453,0.500007272,0.499989808,0.500322342,0.500007272,0.499977738,0.500011623,0.499921829,0.499990106,0.500010908,0.499491304,0.499990165,0.500006258,0.500256479,0.499992996,0.499989092,0.500267029,0.500021398,0.500006378,0.499982655,0.4999924,0.499992847,0.50001049,0.499991298,0.49998787,0.499978542,0.499989897,0.500011265,0.500887692,0.499926299,0.500010908,0.500003636,0.500010431,0.500010312,0.500035286,0.500009775,0.499947667,0.499982476,0.500000894,0.499996811,0.500019014,0.499992758,0.500005901,0.500031233,0.499996126,0.500014484,0.500006139,0.500013173,0.499992996,0.500021815,0.500017107,0.499991268,0.499993324,0.499991506,0.499975413,0.500076056,0.499991059,0.49996832,0.499876738,0.500022948,0.499987572,0.499956459,0.500009,0.50000298,0.499988377,0.499987006,0.500284076,0.500003278,0.499970764,0.499996334,0.499998957,0.500006139,0.500103891,0.500001252,0.500007808,0.499991685,0.49999544,0.500008941,0.500001729,0.500011027,0.500010252,0.499884069,0.500018358,0.499984175,0.500003457,0.500008583,0.499986887,0.500003397,0.49997583,0.499998301,0.5007056,0.500011683,0.499978065,0.499962807,0.500013769,0.499991715,0.500034869,0.50001049,0.499956995,0.500038326,0.499988526,0.499990374,0.500015557,0.500030518,0.499946982,0.499980569,0.500045121,0.499994248,0.499910831,0.500129938,0.499981374,0.500027478,0.500021815,0.499988854,0.500016153,0.500019312,0.500008285,0.500029206,0.49999693,0.49997589,0.499989539,0.499998152,0.499989212,0.499999553,0.500011146,0.49999249,0.500007689,0.499995142,0.499989748,0.500007331,0.499993533,0.499938041,0.500011623,0.500038743,0.50001967,0.499983907,0.500025511,0.49999842,0.500002146,0.500011742,0.499331832,0.499992609,0.500015378,0.500012755,0.499995023,0.499956042,0.500024796,0.499955505,0.50001508,0.500009179,0.500035226,0.500009418,0.499990225,0.500029981,0.499999404,0.500002325,0.500004649,0.499990433,0.499975741,0.499997765,0.5000121,0.49995169,0.500009656,0.500036776,0.500015497,0.500010908,0.49997589,0.5000121,0.500006616,0.500015259,0.49999702,0.500020504,0.500018477,0.500031888,0.50000453,0.499984652,0.499993622,0.500001788,0.499991953,0.500006795,0.499991477,0.50001049,0.499997318,0.499992847,0.500000119,0.500009477,0.499996424,0.500020325,0.499977499,0.499994695,0.499994606,0.500050724,0.499937952,0.500064731,0.500009954,0.49998948,0.500003874,0.499979198,0.499994844,0.500002205,0.499991179,0.500034094,0.500023246,0.500015199,0.499987811,0.499993652,0.500028074,0.499999255,0.499993503,0.500010312,0.499992639,0.499993563,0.500014901,0.499995947,0.499999702,0.50002265,0.500027657,0.49998036,0.499993563,0.500003397,0.499969721,0.500020206,0.499817848,0.499987245,0.499997795,0.499993801,0.500004113,0.499975592,0.500003994,0.499990225,0.500059664,0.499982446,0.49999094,0.499998033,0.500000894,0.500060737,0.500010073,0.500065029,0.500018597,0.500039518,0.500014961,0.499964744,0.499996424,0.499979794,0.500003755,0.500025213,0.50001353,0.500012636,0.500008941,0.500039399,0.50003624,0.500047565,0.500005901,0.499987334,0.50001502,0.500080347,0.500232995,0.499989152,0.499990165,0.499991566,0.500020504,0.500009179,0.50000447,0.499998271,0.499979019,0.499991655,0.499945372,0.499995291,0.500006139,0.500006974,0.500006437,0.500016034,0.500003397,0.499989837,0.499988854,0.500022352,0.499998271,0.500036001,0.499946505,0.500014961,0.500003695,0.500008523,0.500009596,0.499973059,0.500001311,0.499936819,0.499984443,0.5,0.499965042,0.500157833,0.500045359,0.500003338,0.500019431,0.499993384,0.499993205,0.500036955,0.500008821,0.500005364,0.499988943,0.499975055,0.500002027,0.499928743,0.500009894,0.500056505,0.500006676,0.499989837,0.500009179,0.499987841,0.499974072,0.499970734,0.499987066,0.499974221,0.500000715,0.499989301,0.499972522,0.500056565,0.500213206,0.500047565,0.500021219,0.500003576,0.499996066,0.500000298,0.499981105,0.500011921,0.500016212,0.499969095,0.500009656,0.499988258,0.499999434,0.500010908,0.49997285,0.500111043,0.499990582,0.50003612,0.500000656,0.50002563,0.499959052,0.500006795,0.499999046,0.500018179,0.499986053,0.500003338,0.500004947,0.499990314,0.49998045,0.499989659,0.499984652,0.499957532,0.500006139,0.500042975,0.499996543,0.500000179,0.499954313,0.500008047,0.499992758,0.499991596,0.500112891,0.500011027,0.500028789,0.50001049,0.499984652,0.50000298,0.499991953,0.499981105,0.499979675,0.500014126,0.500005662,0.500005245,0.500003695,0.500010669,0.498037577,0.500009775,0.500015378,0.500015795,0.499982387,0.499987036,0.499984264,0.499987125,0.499984801,0.499998271,0.499993056,0.499988884,0.500002265,0.500027955,0.50000447,0.499990582,0.499996573,0.500008285,0.500009358,0.499973178,0.499932766,0.499990255,0.499996543,0.499988228,0.499919713,0.500002563,0.50000459,0.500128269,0.49999097,0.500000596,0.499982715,0.499997199,0.499994963,0.500004709,0.500007153,0.500132978,0.49997434,0.500008941,0.500006616,0.499987125,0.499972552,0.499964088,0.500023246,0.499989808,0.500009537,0.500014186,0.49999848,0.500008643,0.499915361,0.500000298,0.499988854,0.499980062,0.500005007,0.500020087,0.500026941,0.499991328,0.499981105,0.50001651,0.499997169,0.499946058,0.500012279,0.500006735,0.499999106,0.499988794,0.500009537,0.500004888,0.501569927,0.500022411,0.500005186,0.500002146,0.50019002,0.499861389,0.500081599,0.499990731,0.499952644,0.500010788,0.4999924,0.500000417,0.500025928,0.499978513,0.499916464,0.500004768,0.500019252,0.499993324,0.499990195,0.499988616,0.500008881,0.500016451,0.500016212,0.499978006,0.499987662,0.500007093,0.499992609,0.499955922,0.499989688,0.499967188,0.50000602,0.500013471,0.500007272,0.499987364,0.499988288,0.500008583,0.500070453,0.499997705,0.499998778,0.499958485,0.500017345,0.499991685,0.499987543,0.500012636,0.500061035,0.500010371,0.500010848,0.49999103,0.500024259,0.500123858,0.500014663,0.499984562,0.499991119,0.500032604,0.500008702,0.499989152,0.500009179,0.50001055,0.500001073,0.500013232,0.49999997,0.499989182,0.499964684,0.500010312,0.500009775,0.500615895,0.500006318,0.49999103,0.499983966,0.502910137,0.499950022,0.499996692,0.500019133,0.500009775,0.500008941,0.50001812,0.500180185,0.500005603,0.499985963,0.499983817,0.50001508,0.500023127,0.500012994,0.499958664,0.500009716,0.500011325,0.499993622,0.49999845,0.49996531,0.50000602,0.500011683,0.499960214,0.500022888,0.500000358,0.499954134,0.499986708,0.499999523,0.500007272,0.500012457,0.50000757,0.500017047,0.499965638,0.499985248,0.499994129,0.499988645,0.500002801,0.500010848,0.499971181,0.50000459,0.500006914,0.500040948,0.499999225,0.500069797,0.499946266,0.500003994,0.500132143,0.499969125,0.499995708,0.499986142,0.500009477,0.499997973,0.499989927,0.500014365,0.500055432,0.499994248,0.500015795,0.499986827,0.50000751,0.499986827,0.499992728,0.499648273,0.499990016,0.500028968,0.499994487,0.50003159,0.499997556,0.499973446,0.500008225,0.499927223,0.499976724,0.499995768,0.500170946,0.499991238,0.500007987,0.500014901,0.49999392,0.49999398,0.500007331,0.500008404,0.500006914,0.499931872,0.499993265,0.500015378,0.500008404,0.500062704,0.500061214,0.500004053,0.500011563,0.499989271,0.500009954,0.500002325,0.500009418,0.500025928,0.499994338,0.500176311,0.50001359,0.499992311,0.499991715,0.500008821,0.499985605,0.500008523,0.500017345,0.500001729,0.499985129,0.500002742,0.500040829,0.499985397,0.50001049,0.500003934,0.500015557,0.500010371,0.499711484,0.499988228,0.500000656,0.500006616,0.500012577,0.499990553,0.500008643,0.499940485,0.50009048,0.49999249,0.49999398,0.499999851,0.500005603,0.499987006,0.499987483,0.499980003,0.499964654,0.500030279,0.500010073,0.499982893,0.49998343,0.500007868,0.500013947,0.500000954,0.499963343,0.500006974,0.500040531,0.500030279,0.500123143,0.500016451,0.500008762,0.500016749,0.499984324,0.500005126,0.499996632,0.499983132,0.500024438,0.500008643,0.500018418,0.499995112,0.499994516,0.50000757,0.50000912,0.499992996,0.499998331,0.499813795,0.500000715,0.49999845,0.499943674,0.500007749,0.500006676,0.500011921,0.49999094,0.499993861,0.499996305,0.500006557,0.499774516,0.500021219,0.499975562,0.500019968,0.499970019,0.499997973,0.500000179,0.499963552,0.499144077,0.49994427,0.500136077,0.499930769,0.499987632,0.5000332,0.500054181,0.499953717,0.499992132,0.500015616,0.499977589,0.499990404,0.499990433,0.500004292,0.500011146,0.499972075,0.499942094,0.500009418,0.499990582,0.500012577,0.499999017,0.500013769,0.500016212,0.500008941,0.500063598,0.499992311,0.499992847,0.500246882,0.500013411,0.499999374,0.499854177,0.500010133,0.499974668,0.499992192,0.500018716,0.499971986,0.499894857,0.499959707,0.499998808,0.49999091,0.499987423,0.500009179,0.50003469,0.499984592,0.499990523,0.50001812,0.500009596,0.500002503,0.499985397,0.500006974,0.500022531,0.499987036,0.500012994,0.499962181,0.49996382,0.499982774,0.500091732,0.500020623,0.499446213,0.500008643,0.500009954,0.5000211,0.500012398,0.500015795,0.500014126,0.500013471,0.49999091,0.500014365,0.500030339,0.500003278,0.4999578,0.499987453,0.500002265,0.500009239,0.499986798,0.500855625,0.499991685,0.49997443,0.500254452,0.499990076,0.49999994,0.500007808,0.499989033,0.501311779,0.500009477,0.500008762,0.499986619,0.499968797,0.500009418,0.499995232,0.500013888,0.500009716,0.500017345,0.499990016,0.499148309,0.49997741,0.499949217,0.500009775,0.499984741,0.499995917,0.499997824,0.499988317,0.500010192,0.499997467,0.499988467,0.500284016,0.49997589,0.499953151,0.499995649,0.500008583,0.499965996,0.499952674,0.499988884,0.499995112,0.50000453,0.499980927,0.499998748,0.499996811,0.499984086,0.500025988,0.499994457,0.499978453,0.500001431,0.500010908,0.499979943,0.499987245,0.499984831,0.500011683,0.499999523,0.499983728,0.49998951,0.50000304,0.500008702,0.500005186,0.500022352,0.499944061,0.499984652,0.500013292,0.49999547,0.500006855,0.500002563,0.50000602,0.499990284,0.499985039,0.499994457,0.499975115,0.499990731,0.499998003,0.499991357,0.499868691,0.499941766,0.500001371,0.499989241,0.500000596,0.500010967,0.50000608,0.500006199,0.499989063,0.499734223,0.500011981,0.499994099,0.500050604,0.499942154,0.500034332,0.500004649,0.499983758,0.500012815,0.49998641,0.499945819,0.499988973,0.500001788,0.49999994,0.50000596,0.499991685,0.500010192,0.5000121,0.499986649,0.500020027,0.500008643,0.499977767,0.50000912,0.499989808,0.499979049,0.500005484,0.499992371,0.499988258,0.499952853,0.499988824,0.49999243,0.499995857,0.499991626,0.499997288,0.500013947,0.500184715,0.500016093,0.500007093,0.499997467,0.500007212,0.500046253,0.500138462,0.500008166,0.500015736,0.499985218],"C":[0.500007331,0.499873638,0.499969661,0.500009477,0.499993533,0.499998897,0.500007927,0.500007987,0.500001073,0.500002682,0.499982119,0.500032246,0.499983966,0.499990076,0.500006855,0.500006914,0.499993622,0.499995977,0.499988735,0.499988228,0.500024974,0.500547707,0.499982983,0.499990821,0.50000912,0.500008345,0.500010908,0.499996632,0.500006318,0.499993593,0.500075817,0.499986649,0.499981135,0.500015497,0.499996096,0.500003159,0.499952942,0.500009954,0.499984384,0.499989837,0.500010729,0.500218987,0.500001252,0.500008881,0.500014901,0.500019729,0.499985307,0.500024676,0.500011265,0.499875844,0.500010371,0.500037551,0.50002563,0.499993324,0.499989003,0.499999583,0.500005364,0.499996483,0.499999017,0.500007749,0.499992013,0.499989808,0.500002563,0.500050366,0.500015318,0.500002623,0.500006616,0.499961615,0.499988496,0.500009298,0.500014782,0.5000211,0.499986619,0.499952644,0.500001788,0.500005662,0.49981305,0.50001508,0.499944717,0.500011563,0.499987423,0.499987155,0.500016749,0.500012159,0.500006914,0.499990106,0.499991328,0.500001132,0.499994636,0.499977857,0.49998638,0.500002384,0.500016272,0.49997586,0.499990016,0.500001192,0.499991536,0.500015616,0.499989361,0.499996901,0.499992847,0.500014603,0.500291467,0.499992251,0.499992877,0.500012755,0.500002265,0.499988556,0.499986768,0.499998182,0.500014782,0.500010192,0.499980807,0.49985373,0.500003934,0.500041842,0.500008106,0.499993056,0.499997526,0.499874711,0.499994963,0.500021636,0.49999854,0.500032663,0.499996841,0.500001609,0.499737084,0.50000447,0.499987274,0.500348806,0.499985963,0.500008285,0.500050366,0.499982804,0.500013471,0.499979705,0.499989212,0.499992222,0.500005126,0.500007808,0.500003099,0.500061512,0.499994695,0.499975383,0.501153469,0.50003314,0.499989569,0.49999097,0.499961138,0.500009358,0.500003219,0.499998987,0.500078619,0.499985516,0.500014424,0.500010192,0.499988943,0.499988884,0.499991,0.500127435,0.500007868,0.499998689,0.499993473,0.499977767,0.500007093,0.500026166,0.500006139,0.500052691,0.499992728,0.499991477,0.499798179,0.499912977,0.500006199,0.499966949,0.500152528,0.499972433,0.499997944,0.499992609,0.500009656,0.499975294,0.500029027,0.500023663,0.499814421,0.499991834,0.500023246,0.500012457,0.499961466,0.500006914,0.49991551,0.499989122,0.50002861,0.499989748,0.500021815,0.499953926,0.500011504,0.499968678,0.499987572,0.500297904,0.50002408,0.500007987,0.499991447,0.500002205,0.500006497,0.49999088,0.500005484,0.500009775,0.500607967,0.500042796,0.499983519,0.500006557,0.499990284,0.499993533,0.500016809,0.499988168,0.499989152,0.500026226,0.500006795,0.500000238,0.499992311,0.500002503,0.499970078,0.500014663,0.499989569,0.500010967,0.500048459,0.500136137,0.500014782,0.500021636,0.500018835,0.500010133,0.499984622,0.499985099,0.499994516,0.499995261,0.500008821,0.500011444,0.499995202,0.499987155,0.500000954,0.500009179,0.499987662,0.500007808,0.499992669,0.499972612,0.499989241,0.499974519,0.500083685,0.499875039,0.49999553,0.499979883,0.500002146,0.499995798,0.500007272,0.499984264,0.500008464,0.499992281,0.500591695,0.500004709,0.500005424,0.500004053,0.500012755,0.500006795,0.499983132,0.500021696,0.4999879,0.50000149,0.499952942,0.500019431,0.500001311,0.499968529,0.500011384,0.49998951,0.500008762,0.500004172,0.499990433,0.499985129,0.49999246,0.499913275,0.50000453,0.49993214,0.49998647,0.500003755,0.499989092,0.499995202,0.499984294,0.499992609,0.50000912,0.500043809,0.500004053,0.499999762,0.499979526,0.500010967,0.500006378,0.499991208,0.499984115,0.500048339,0.500009179,0.499987096,0.49999088,0.500012517,0.500021398,0.500006676,0.500007987,0.500014126,0.49999848,0.499992788,0.500008881,0.500067472,0.499985486,0.499951988,0.49999547,0.499997467,0.499989659,0.499991268,0.499976158,0.499939471,0.500033975,0.500079691,0.500318229,0.499931902,0.499999195,0.499989748,0.500090063,0.499985188,0.499993414,0.499989629,0.499987423,0.500005782,0.499999166,0.50012815,0.500031352,0.500002384,0.499981523,0.500029922,0.500008464,0.500008106,0.500007212,0.499940246,0.499995142,0.499995917,0.499985307,0.499988467,0.499984503,0.500000298,0.499991536,0.500000298,0.500089467,0.500046313,0.49999553,0.499982357,0.49999103,0.499937117,0.499989748,0.500021935,0.500006735,0.499942094,0.500015616,0.499947667,0.500012517,0.499997705,0.500012219,0.500021517,0.49998793,0.500008225,0.499993593,0.499977261,0.500005484,0.500027537,0.500012219,0.499993324,0.500009358,0.500031829,0.500105858,0.499977529,0.499995142,0.499995887,0.499996871,0.499999017,0.499968171,0.49996525,0.500001729,0.500006795,0.500024021,0.500013888,0.500013113,0.500007987,0.499989122,0.500004351,0.499990135,0.499991804,0.499989122,0.500000596,0.499988735,0.500024915,0.499961078,0.499996603,0.500014544,0.500008821,0.500010371,0.499982059,0.499988914,0.500034153,0.499983937,0.499839813,0.500058949,0.500070274,0.500024498,0.500010312,0.499984592,0.499970198,0.500007629,0.500009775,0.499935567,0.499983996,0.499969393,0.499986053,0.499970019,0.500027537,0.49998641,0.50001204,0.500005722,0.500002503,0.500002384,0.49999702,0.500009835,0.500023842,0.499999732,0.50004524,0.500042856,0.50000608,0.50007093,0.500084281,0.499974638,0.500046432,0.500040591,0.499963731,0.500009358,0.500010014,0.499977469,0.499980032,0.500007689,0.500028968,0.500008583,0.499995828,0.499813348,0.500002801,0.500025809,0.500533044,0.499997526,0.499997169,0.50001204,0.499961585,0.500124693,0.500007093,0.500013411,0.500150323,0.500005662,0.500008583,0.500007808,0.499999344,0.49998641,0.499975502,0.500004113,0.499976754,0.500006497,0.500029624,0.499988556,0.499991268,0.500026345,0.500010669,0.500010788,0.500003695,0.499980479,0.500000954,0.499966055,0.499983728,0.500007987,0.499935746,0.499984741,0.49998343,0.499990553,0.500018656,0.499987572,0.49998939,0.500008404,0.500003099,0.499118894,0.499998152,0.500007212,0.500012934,0.500012875,0.499998033,0.499997288,0.499995112,0.50001663,0.49998194,0.49999401,0.499998897,0.499989003,0.499983609,0.499989867,0.500094771,0.500012517,0.500012696,0.500001609,0.499991119,0.500121355,0.500059009,0.499982208,0.500001967,0.499301434,0.499988854,0.499987006,0.500004947,0.500010788,0.500012457,0.500002086,0.500008166,0.500010014,0.500014007,0.500008523,0.499715418,0.499989063,0.500016093,0.49999395,0.500016212,0.500047445,0.500017583,0.500002265,0.499998569,0.499989092,0.500043631,0.500014722,0.50000596,0.500127912,0.499981642,0.499999523,0.500008643,0.500019133,0.500016928,0.500010252,0.500003755,0.49997884,0.500003219,0.499986321,0.500015914,0.499968231,0.500006199,0.499991298,0.500012875,0.499999493,0.499983191,0.499322683,0.500021458,0.500006855,0.500009298,0.500246942,0.499896497,0.499884605,0.500002205,0.500027835,0.499988109,0.499994904,0.499972045,0.500013769,0.500009239,0.499962956,0.50000757,0.499999553,0.500011206,0.50001651,0.499990672,0.499998063,0.500002503,0.499994874,0.499993145,0.500002086,0.499985725,0.500019073,0.49982205,0.500002861,0.499922991,0.500006676,0.49999392,0.500010192,0.500004411,0.500076592,0.499993891,0.500117183,0.499986649,0.500016332,0.500028908,0.500014961,0.499991953,0.499995708,0.500002086,0.499959588,0.500005305,0.499990612,0.499997735,0.49996838,0.499945879,0.499997854,0.500017881,0.499999523,0.500035703,0.49999398,0.500030398,0.500002503,0.499989003,0.499830723,0.500011981,0.500008702,0.499994159,0.500062108,0.499997675,0.499985397,0.49828884,0.500042498,0.499882579,0.499987125,0.498728573,0.500062346,0.500008225,0.500006378,0.50001055,0.499997109,0.500020266,0.499832273,0.49999088,0.499999553,0.500033796,0.500014901,0.499977827,0.499987125,0.500007927,0.500020385,0.500006974,0.49999404,0.500014544,0.500007212,0.500019073,0.500004292,0.499996841,0.500021875,0.49999097,0.500350952,0.499979734,0.500017881,0.500062943,0.499998987,0.499962091,0.499974281,0.500051439,0.499996603,0.499988854,0.499996185,0.499988377,0.499998599,0.500015914,0.500020981,0.500005126,0.50003618,0.499956697,0.499985367,0.500008106,0.500009537,0.500027478,0.500000179,0.499986798,0.499995112,0.500022411,0.499991208,0.499978334,0.500009835,0.500016689,0.499968827,0.499995232,0.500006855,0.500006557,0.500024855,0.499994665,0.499530852,0.500000417,0.500024557,0.499992281,0.50001061,0.500008702,0.499976456,0.499995172,0.500003576,0.499998659,0.499983847,0.500409424,0.500018835,0.500024915,0.499973476,0.499986589,0.499991506,0.499994397,0.499996275,0.500007033,0.500035644,0.499993443,0.499993652,0.499994427,0.499990672,0.50001061,0.500012875,0.499942243,0.500005782,0.499990612,0.499990374,0.499996901,0.500019908,0.500012875,0.499734402,0.49999103,0.500004649,0.499978185,0.500002742,0.50000608,0.499997318,0.499976873,0.499988347,0.500000119,0.500018597,0.499979943,0.500047386,0.500003815,0.499985099,0.50000155,0.500023425,0.500087917,0.500013411,0.500011265,0.499994099,0.500012457,0.499995798,0.499993294,0.500016093,0.499745399,0.499977827,0.499991983,0.499976367,0.499989659,0.499997228,0.499977499,0.499985397,0.500004113,0.500054717,0.500003219,0.499982148,0.499918997,0.499994755,0.500041425,0.499983609,0.499997467,0.49998486,0.499989957,0.499964774,0.500024319,0.499995232,0.500000477,0.499996662,0.499995619,0.499976307,0.500023246,0.499979973,0.499981135,0.500011027,0.499995351,0.499992847,0.500016391,0.500006318,0.499998659,0.500007749,0.500019193,0.500092447,0.49996838,0.49998793,0.500003695,0.49999544,0.499992669,0.499992549,0.49999845,0.499991417,0.499991387,0.500006258,0.500039101,0.499992639,0.500042856,0.49997586,0.499997944,0.499970406,0.500015795,0.499994308,0.498367727,0.499976367,0.50021106,0.500034273,0.500006497,0.500027716,0.499985427,0.500027001,0.499988317,0.499999762,0.500000179,0.499989212,0.500016332,0.500011683,0.500003755,0.49999842,0.500013947,0.500001907,0.499922097,0.499994665,0.499991179,0.500003815,0.499937981,0.500010312,0.500017703,0.500005186,0.499993533,0.499903232,0.50000453,0.499987453,0.500148058,0.499989927,0.500026464,0.499992728,0.500047207,0.500005722,0.500060976,0.500034392,0.499982327,0.500005424,0.499999851,0.499985188,0.500048876,0.500005126,0.500000596,0.499992192,0.499964267,0.50001806,0.500031054,0.500008047,0.49996829,0.499973446,0.500002027,0.500015378,0.500010908,0.500020742,0.499998122,0.500010788,0.500595272,0.499995351,0.499999076,0.499962598,0.499998778,0.499992818,0.500029981,0.499990433,0.500000298,0.49992311,0.500002205,0.500014782,0.500006974,0.499926895,0.500009298,0.500004113,0.499995142,0.500275552,0.499993771,0.499971956,0.500290871,0.499998182,0.500009656,0.500010848,0.499992341,0.499929726,0.49999702,0.500035107,0.500088036,0.499985635,0.500003278,0.499981523,0.50000906,0.500010729,0.499996573,0.499994487,0.500618458,0.500023782,0.500005305,0.50000149,0.499997169,0.500009596,0.500008583,0.500012279,0.499992847,0.500013649,0.499995232,0.499911815,0.499979705,0.500000775,0.500019908,0.499998868,0.500012994,0.499960721,0.499982953,0.499955952,0.500082135,0.499983668,0.500019848,0.499987781,0.499990404,0.499990821,0.499987602,0.4999955,0.499988735,0.500014424,0.50000304,0.499995977,0.50000006,0.500118554,0.499980181,0.500008702,0.500009656,0.500013649,0.499984175,0.499992818,0.500029325,0.500000119,0.499993473,0.499985188,0.50000757,0.499994636,0.500019968,0.500008643,0.500008404,0.500005782,0.499957114,0.499986738,0.500005901,0.500008941,0.499957144,0.5002262,0.50000006,0.500028253,0.499995232,0.500025749,0.499986261,0.499993742,0.499990612,0.500015855,0.499911964,0.499994874,0.499988317,0.499995947,0.500050485,0.499998242,0.499989986,0.499998838,0.500014424,0.500009,0.499990404,0.499992758,0.499985635,0.500059068,0.500008404,0.50000447,0.500010014,0.499998897,0.499959469,0.499871314,0.500015318,0.499996156,0.499991745,0.499999821,0.500000536,0.500033438,0.499994248,0.500034213,0.499988139,0.499999046,0.500005424,0.499990284,0.499987125,0.499984592,0.500010848,0.500067294,0.500001371,0.500008404,0.499985754,0.50000602,0.50002712,0.499834895,0.500008762,0.499994069,0.50001502]} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/medium.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/medium.json new file mode 100644 index 000000000000..a375bc63fa15 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/medium.json @@ -0,0 +1 @@ +{"x":[94.7286072,63.7050819,21.3430252,32.2276306,89.8052979,27.6560173,24.6662254,85.2397308,64.2164612,66.091835,85.4810715,70.4483414,45.2399826,88.4155426,70.0613098,20.4045925,10.0036201,70.845871,66.5877838,50.9092445,61.6911354,12.9042435,41.6253319,86.9574203,43.375351,69.5282898,61.8787079,15.3963823,77.0021515,35.1543884,49.836132,25.8778038,18.2620773,90.7520294,99.3177567,63.4743271,12.9703207,72.1838379,53.8490639,61.2405891,90.6151657,49.1052513,71.9734802,28.2842464,53.3548241,34.5198555,95.2407913,31.9870167,95.7935944,52.9256516,21.4378853,96.5292511,87.1440201,29.566885,10.6307144,80.4227142,14.5353966,96.4049301,67.7236633,61.6060181,22.3384075,21.6138649,84.2164078,55.1668396,69.029892,55.4553108,57.3808899,20.655756,91.2750778,70.2014008,34.9827347,44.803669,45.2344131,84.7987061,31.870121,21.1099873,75.5475845,68.3267746,28.1095009,86.3825836,12.030077,19.5006199,26.9180984,42.4870682,80.1692581,74.7283859,69.9727631,62.2872391,41.6055298,24.1438866,36.288166,25.2198563,30.1327076,70.4216309,46.4288559,89.7859344,62.1426048,40.7663078,49.3516388,72.967514,85.0854568,81.2784195,86.4160995,35.3997612,33.8195572,25.2964859,58.0178833,16.5865345,99.8862076,77.5153809,20.9998703,24.8139629,48.2596283,79.5882187,29.2211018,49.0535469,12.9769526,93.6389313,19.5438786,33.9658127,53.3843842,81.3502197,33.1772041,29.2524204,35.4218025,44.256485,28.7310982,93.5674896,78.7657242,65.4906769,61.8267441,42.0700722,91.7063065,27.8110466,20.2696018,81.2026443,72.8346329,11.6426086,77.3172073,20.307642,90.54673,68.9165878,41.1301498,44.4171715,29.3544254,39.8162422,11.6006603,92.2931366,80.6922989,45.4105835,75.6985092,84.839592,89.0017014,21.6648369,40.9082413,94.7862549,42.5972328,41.6854439,17.2589684,61.470211,79.8754044,85.9781265,54.396595,83.5585098,67.8460846,49.183773,41.7083015,41.4241295,35.3390083,92.7206726,66.3537216,77.012207,24.1786079,79.877594,32.6759758,65.0851974,86.9142838,38.3146744,64.7600021,21.3329945,43.6295586,21.9964046,33.5676384,21.3427887,28.2535572,77.5472336,16.3855114,51.3022385,96.6919174,31.1208305,27.7766132,71.5551453,17.3193836,86.8812866,23.7306366,20.8158989,82.8211441,94.9773407,14.0968304,15.4236135,84.6750031,22.7061405,82.1051025,30.4739647,45.9293098,63.9274712,68.9685745,14.835412,98.7727203,83.1074677,47.2221642,12.8654566,19.7243824,97.702034,88.0407257,70.3971634,85.0932007,31.4395504,74.5244827,63.0737228,30.0285892,30.4986115,10.1416254,50.3032608,46.8789177,93.9704895,12.0215511,56.214901,43.885128,87.3559494,81.448494,64.8521347,39.8623276,66.1604538,68.8485718,67.995079,33.3207817,12.3400269,98.8337402,28.6974354,67.8092728,60.4292221,43.9240112,20.8621655,50.4196091,22.3944016,62.7220116,58.8340302,53.5241127,89.7939758,17.3435249,42.6333733,19.0728226,36.9290047,85.7501144,92.1701965,84.5134354,97.3268967,83.1952057,81.8085098,85.5816269,50.3848267,67.7885666,72.4533463,83.4183502,52.1388359,27.4270325,46.1399269,93.7586746,52.0487938,44.060009,56.5835991,30.4980621,90.9340591,98.726265,22.3294621,51.2632828,72.0220795,35.1113701,46.8350449,76.5938492,12.8129559,37.35392,27.3382034,83.1870499,34.7381783,74.5984879,46.7763824,80.6565704,75.0063629,61.9353218,66.9644699,81.8736267,10.0247812,66.5015259,41.1788216,52.4670868,54.2986641,57.6657715,38.6694336,87.2132111,22.4201775,45.922821,44.8221664,86.1792755,15.0521278,51.1191101,78.8978577,36.3245392,96.5728531,99.9999924,99.9182968,76.745491,41.4804344,81.692627,27.9100418,64.0660934,58.8542061,32.6523552,28.1455231,61.8061638,56.2383118,77.2930756,64.7217865,99.0671616,81.8605347,59.9299812,23.2004299,19.6309357,57.1406059,32.1670418,61.4464264,40.0928841,71.083847,16.2429943,86.017662,88.8635559,39.8865395,23.0860329,76.966713,69.5701904,46.2505302,62.6524658,59.9907494,54.4704742,65.30513,93.2346802,65.2533493,33.0745277,13.5696945,65.8642731,40.914032,12.1750116,25.4254169,64.9650803,48.14608,61.1593819,75.7335434,43.6575775,42.9079475,43.8649254,17.7945194,62.4803734,47.6349106,19.9725876,39.2736168,71.6648254,60.758522,88.4683685,57.8674202,97.7084198,15.4217157,52.7809792,19.9118996,99.2960892,59.4563522,72.8834076,21.4513435,52.7485771,15.3412304,50.0596542,92.6179276,49.5559731,87.2660065,99.745903,59.4372101,21.1855869,86.169281,27.1232109,69.7910995,69.0645294,97.5873871,51.1854782,24.3411999,22.5266552,35.4999428,97.5667191,63.8160706,86.6987381,15.6597433,93.3060913,95.4454727,52.0000839,35.4008102,51.4225464,48.7742004,87.9525146,27.8767548,44.6289253,78.3276749,83.2802124,70.5464935,74.9426727,71.5028458,38.25877,25.1634388,71.9237747,92.8842087,24.9188042,10.3436584,25.8675575,26.0336666,27.8247242,70.1446228,70.7006989,56.5733986,39.1064453,52.0270653,38.8741837,18.4279366,88.339386,50.0608864,23.2997379,68.684166,94.7783279,89.4115219,69.4834518,28.3521938,25.3311977,11.4467115,24.8872395,19.8174877,42.5073204,60.501976,96.7455292,32.0944939,12.14748,12.7036209,89.7554474,89.7716522,92.1901169,59.2661133,25.5318508,53.8343124,83.2976913,94.2947845,62.4757195,59.4015846,52.4577713,77.8003159,39.9081039,25.5212803,56.166729,44.2383842,84.5348358,97.0334091,10.430007,37.125061,50.9109383,90.14077,85.917923,32.5320435,76.0519791,85.5600739,48.0665054,73.7631073,46.5286674,57.3670082,57.3004227,18.2380161,46.3319092,80.3917313,33.8310051,37.7073021,26.6471176,78.0963821,65.8605347,68.0811234,39.4581947,23.8809185,26.5919533,50.9679298,57.9862328,24.6185112,93.3192596,46.8151855,12.8068695,25.0556831,60.8555183,98.688797,22.623312,40.0212898,37.8206635,41.88937,24.6581173,38.9935226,44.1624146,67.7238235,64.2079697,13.3914537,40.1592827,17.0392666,58.9625893,54.200985,35.9084167,32.7446632,49.5388412,69.2752609,39.3020859,10.1497917,97.5426331,19.0782795,38.6538925,95.9963989,41.4342194,24.8865757,98.6940308,20.4797859,13.7696486,96.4860306,80.6753082,29.8351364,19.1314869,32.910656,49.3759651,31.8709717,35.4334183,59.4305573,89.4071884,86.6484375,70.3421249,60.1849365,78.2049866,91.1796722,86.8042145,78.3727646,31.0555038,99.8461075,33.5154266,43.7536125,36.9552612,77.0970001,99.2651291,78.9682007,48.5748634,67.7498474,51.7420845,19.2221317,26.3692341,87.7024612,55.3021812,93.7877579,90.8232422,36.2049522,66.6227036,97.7859802,58.9644051,84.7602158,14.932889,27.0659714,97.7764511,78.8688202,88.2889786,12.9104929,56.6593552,43.7893295,97.2700348,27.3832664,30.571413,63.7252731,90.6853943,59.453064,17.6295547,79.928566,79.3980942,73.7558594,14.6742144,89.5208206,16.4472847,99.5195007,34.2925568,54.9795837,71.8585892,77.3591385,95.0182724,72.0736694,92.0595856,25.4104462,83.3798676,35.4544754,53.3689499,91.9767532,73.2864838,45.9377136,25.1592331,91.2244263,28.9057751,59.3528595,43.5499306,33.6837387,82.603157,31.2250423,69.3020935,40.2044983,56.9917755,50.7594795,64.6183167,70.0393906,11.95893,83.728447,43.9583969,58.7616653,97.272995,77.1655502,81.3957443,78.2829056,50.7905426,46.6074829,31.9803181,73.2051697,29.2437382,69.5059586,46.6344299,34.8754005,40.8833885,37.1316681,71.9560852,95.8862457,80.0363693,91.2073517,11.9490499,97.6816101,14.8376808,46.8962173,24.7195587,81.643425,11.0420771,64.1805725,92.932106,19.8934402,59.0513802,16.5734558,60.0865402,44.5042763,53.3286819,45.1839561,46.7805252,60.3197899,94.6970291,72.9126587,63.0672302,11.002883,35.4486122,44.8644676,77.1214905,60.9121132,59.8877945,34.172699,20.5446854,24.5458374,41.8874702,82.7478943,33.9160614,27.2503891,47.3004303,68.3338852,57.6698112,16.5569286,52.2951202,44.1059608,18.89715,54.3929291,21.9533215,29.4620972,49.4461708,41.7813683,99.4425125,90.2934189,41.4945869,49.5235405,82.1466293,98.3951416,37.1096497,61.8974037,59.6729279,22.8919849,55.5890388,54.9851646,75.6677246,17.4337807,29.5356445,25.5634365,44.6697044,43.7159386,33.7927551,24.8216267,87.0852661,32.0884399,90.4028778,81.2040634,96.7776871,32.5671196,35.5672913,59.4832306,74.7008057,56.3761406,53.7836418,41.66819,87.2628708,47.098938,11.8362827,92.4118729,96.3563461,61.1768799,99.8093719,46.0470581,62.8894234,82.5719528,46.740284,13.9066515,59.0891724,21.7089138,61.7229233,97.229805,71.3201981,28.6488209,60.7475929,84.7614899,36.3585129,37.5455475,98.0186005,98.6429825,62.5334663,39.958168,56.941597,17.4155235,82.696579,71.3490524,63.5287933,28.3737755,28.0362206,24.7542839,35.2708855,27.771843,81.3749313,88.4643936,81.0280304,18.1670971,24.4006805,32.2323151,78.5295715,56.5362778,45.2613869,88.1192322,39.9425049,63.7032318,80.2188873,98.8056107,95.8918304,84.0518799,79.9334641,71.7787704,85.7753601,66.5198517,79.1554565,45.6989746,62.6731606,47.804615,82.1439285,52.9982834,72.1695251,83.2260132,59.5827026,36.5313759,62.8287468,52.6888123,90.8775253,48.6317253,33.3927383,51.7629585,10.0035238,69.2258148,18.2656403,60.6075478,71.1138229,70.0860977,77.073761,68.7218628,98.3789597,35.1722755,80.4492416,10.466342,17.8131332,15.3277445,93.409256,29.3193512,80.3220596,32.8295212,35.7932091,76.4346161,36.6271553,52.5871315,91.8976059,93.0755157,90.2607574,32.558918,77.7165222,71.5518646,52.1296272,52.6529884,28.7877426,55.5751038,90.7993774,85.1559601,96.2835464,97.5791473,92.6592102,23.3833332,33.6601219,45.6839066,79.4305573,79.3556137,79.8144226,50.9030571,47.6805649,67.2688904,68.2386398,76.7801895,84.6542816,34.4921875,80.2199173,26.2367344,20.7997208,80.893631,99.2667923,16.9529514,48.243927,85.7004242,67.0187988,95.0329437,48.7317886,95.1366577,81.8702927,43.946106,32.2112579,84.5834274,13.7443075,30.5740738,18.4600182,87.5286484,13.9141979,95.9186172,84.1808929,88.2112274,56.0776749,77.5093613,99.8469391,47.5711937,29.0442276,46.3336601,19.8014278,42.5851555,18.7188873,28.3533554,44.8381119,84.1221466,90.9285965,96.9253006,83.5358734,47.5155334,83.5696564,75.2466965,51.2671738,47.3590393,63.3435059,64.3023758,70.076683,98.8687134,76.5187378,10.3781929,66.2915268,21.7159901,90.6486053,71.0049133,39.5496712,31.3149643,50.6313591,71.2669296,33.2946472,23.1393661,73.3464508,63.8901749,72.1869812,16.6340904,89.1681061,28.2667656,29.5065117,75.933876,80.7060318,96.2393265,74.3914185,76.6429214,27.5706196,29.3902435,11.8412285,85.5243912,78.4744263,29.6761951,47.8178368,34.3631172,70.9165955,85.2260742,14.5443001,66.0532532,67.0322571,51.1959229,19.8569202,75.2711105,11.5765543,47.155262,58.4357224,19.203167,67.6318893,49.2195244,12.5020418,31.8230324,39.6910133,66.8658218,43.8191833,59.0176201,79.1965866,17.1046963,78.6448669,14.3438215,26.6134548,52.3297119,85.4632263,40.4607086,43.151474,86.8418427,80.8041306,35.0707054,83.37677,73.2998657,90.8102798,88.3338623,47.1533508,26.3782883,59.8999062,57.7837563,41.5871506,75.2762222,97.4790955,31.17943,22.6763496,31.3971634,82.140419,84.0070267,46.0913963,88.1099625,64.2133331,13.4793816,77.9617996,53.8940964,98.0741348,41.9727325,75.6895828,24.8538761,89.0990601,37.929493,70.9825363,23.5334034,35.9065628,91.6036148,11.9951954,63.2542992,95.0136642,84.639801,61.1298294,29.0208092,12.7341223,62.3905373,67.7481995,23.955265,16.1437302,37.6772575,61.6875801,43.1748047,28.9030247,13.1473866],"S":[0.502408624,0.504310608,0.489059836,0.505552411,0.499955863,0.497401625,0.489832699,0.503572106,0.495408803,0.495285571,0.499920785,0.500220239,0.503619611,0.501676798,0.497255504,0.486659408,0.468375653,0.499038577,0.504754066,0.494218618,0.504897714,0.516933739,0.496191889,0.502937794,0.504506826,0.504390121,0.499796003,0.501548469,0.502057552,0.491262943,0.494606316,0.510591865,0.512380242,0.496513307,0.496796161,0.49992311,0.477016211,0.50308615,0.494645327,0.50415796,0.499402881,0.496826589,0.495756686,0.488746077,0.502392948,0.492370814,0.50098753,0.497387946,0.497353196,0.501168132,0.488232166,0.503254056,0.503623486,0.510236263,0.500484467,0.49621129,0.490775645,0.503269374,0.503350616,0.497642279,0.499908715,0.496366113,0.496955037,0.496756613,0.500906706,0.497462422,0.496506602,0.507849157,0.49924168,0.495775878,0.491384059,0.496111929,0.506836951,0.501044512,0.491069615,0.512617528,0.497327834,0.496965975,0.511036217,0.503673911,0.488785177,0.48516205,0.492807627,0.501759827,0.499318004,0.496305406,0.495647043,0.495446265,0.499759406,0.50151062,0.497697383,0.487404585,0.489441723,0.498561919,0.494219512,0.502562463,0.504576564,0.507695556,0.494877517,0.495991409,0.497211039,0.503758073,0.496613473,0.502002358,0.491236389,0.487537265,0.505448639,0.496629417,0.501242042,0.497768998,0.49985972,0.488288701,0.499914557,0.503606319,0.510675609,0.505993366,0.480158031,0.496857941,0.516258895,0.508185446,0.505878091,0.503816366,0.496007234,0.490274817,0.504029632,0.503887475,0.507530987,0.500662208,0.495966494,0.500220597,0.503365815,0.507455528,0.503461599,0.507488608,0.503515124,0.503838599,0.499209017,0.479242861,0.504104733,0.487316966,0.501545548,0.503246248,0.493165195,0.498712897,0.509519637,0.503994584,0.517026961,0.503446579,0.498504579,0.506883204,0.503847837,0.503481388,0.501639366,0.507964134,0.505362988,0.497394174,0.505078316,0.506669641,0.518067479,0.503128767,0.496046513,0.496554613,0.500097811,0.503806531,0.49932915,0.499558568,0.493952304,0.49233222,0.497832865,0.50066191,0.50136292,0.500772417,0.492342114,0.496890962,0.491191,0.495150983,0.503623426,0.491694272,0.504793406,0.497753888,0.494540721,0.485975713,0.503125131,0.489221931,0.510316432,0.503216028,0.485927582,0.493844658,0.501617908,0.492835552,0.491403967,0.495656878,0.48165679,0.496901482,0.497016609,0.506967843,0.498034388,0.498458564,0.509626806,0.520313501,0.503663659,0.48908031,0.501473367,0.494716078,0.504911184,0.502107084,0.497675955,0.478751153,0.49678731,0.500886023,0.506703258,0.518002272,0.501285017,0.50287354,0.499048114,0.495793343,0.49914366,0.492251605,0.504217386,0.504516542,0.509562552,0.510087967,0.507298052,0.50501281,0.505691588,0.502564073,0.481762379,0.494429588,0.507171512,0.499643773,0.503810108,0.504666269,0.500062704,0.501527727,0.495466828,0.497675747,0.508679092,0.476573616,0.496825993,0.491650194,0.504638851,0.495340675,0.503478229,0.494617671,0.506167769,0.510189056,0.505058706,0.503468812,0.498435766,0.500230968,0.494251698,0.506070197,0.484369755,0.492029846,0.500477195,0.498217911,0.502572596,0.49777928,0.502451122,0.497876912,0.49649018,0.50346154,0.497936577,0.503045678,0.502137363,0.504589796,0.489222199,0.498843729,0.501590967,0.50073719,0.503121018,0.505027354,0.510214925,0.500017703,0.500629067,0.508297563,0.493834794,0.498768747,0.497309774,0.504965425,0.502347887,0.476044148,0.49595204,0.49349907,0.496208012,0.503626227,0.499562502,0.493202657,0.502712905,0.504233181,0.494862199,0.495580971,0.49828428,0.477345645,0.503623605,0.493138999,0.498080999,0.494977474,0.502819955,0.495977253,0.503556788,0.507150471,0.498974651,0.500296414,0.500761569,0.513334036,0.501580536,0.499197096,0.494081736,0.502896428,0.496816903,0.497241616,0.504062176,0.495751321,0.503429234,0.500532925,0.496296406,0.494811893,0.509377718,0.489092529,0.49484989,0.502184093,0.503875673,0.499306053,0.50285542,0.500891984,0.495690286,0.512595177,0.508968532,0.5004282,0.50423485,0.49552694,0.494945943,0.499391794,0.481064945,0.499778956,0.498534799,0.500800967,0.499232143,0.495943755,0.495425344,0.498800725,0.502528071,0.500913501,0.499700963,0.498205334,0.49847883,0.504878044,0.509555995,0.477072209,0.504770041,0.507763028,0.475536972,0.509499967,0.496331841,0.506594896,0.496150434,0.496720433,0.507288754,0.501066446,0.492898166,0.490517288,0.495161861,0.500886202,0.502400279,0.506428301,0.495685518,0.495771706,0.501867533,0.497042328,0.50032711,0.519895554,0.505821705,0.488402724,0.497113824,0.499514282,0.495633006,0.485625833,0.504812956,0.489089429,0.506351054,0.503409505,0.493908793,0.498063207,0.501200259,0.498202622,0.496004641,0.500834465,0.489821136,0.501426935,0.504562259,0.498526692,0.493797988,0.490661889,0.490825981,0.491693974,0.498681903,0.496424258,0.498188883,0.507087171,0.503408492,0.503227651,0.493879259,0.503009319,0.494391501,0.500791728,0.496928662,0.50202018,0.493450433,0.498595238,0.496929914,0.498657495,0.496581346,0.497715771,0.492398918,0.503877938,0.500205338,0.497666955,0.498926848,0.500513077,0.502500772,0.511306882,0.510793507,0.495858818,0.502709448,0.49634096,0.5038535,0.501748443,0.497445166,0.486215323,0.496499747,0.506291866,0.502613664,0.503351986,0.500358641,0.502811193,0.495432913,0.489097029,0.510907769,0.498879254,0.492904752,0.493443102,0.501492262,0.496216267,0.497073978,0.509879053,0.479812652,0.514107823,0.496460885,0.500279427,0.499904841,0.496039689,0.487771869,0.505783379,0.502677321,0.497585744,0.498307675,0.496509254,0.494178891,0.499292612,0.495904356,0.493727714,0.502561331,0.500391603,0.503676057,0.497744292,0.489806086,0.507814348,0.493792623,0.501884758,0.503649354,0.508470774,0.495862842,0.497482359,0.505424201,0.499975801,0.49911046,0.50023067,0.497183949,0.490295261,0.503628969,0.501039684,0.493741542,0.508178174,0.511876166,0.499712586,0.503954232,0.499709934,0.499353856,0.511895895,0.497542173,0.505692005,0.504425704,0.512849867,0.497530907,0.494139165,0.475152224,0.48800081,0.496965319,0.497797102,0.486527264,0.507106483,0.506790042,0.503242493,0.487099111,0.494179904,0.50632292,0.503237724,0.502500117,0.488226205,0.497173756,0.516140044,0.496738642,0.505414486,0.505370021,0.490817219,0.506351471,0.499552786,0.495809197,0.499196827,0.50205642,0.483323693,0.5080809,0.498454541,0.497562557,0.493465275,0.497762471,0.490451306,0.518747866,0.502521634,0.497233003,0.510429323,0.516634345,0.498320103,0.50644505,0.490721643,0.493384749,0.494644493,0.503023505,0.496337026,0.495476037,0.504957438,0.495931894,0.503187537,0.500161707,0.503646433,0.49214536,0.501199305,0.495906293,0.506025672,0.50761956,0.495885491,0.502487957,0.495971859,0.49524194,0.504688025,0.502295613,0.511520505,0.493916839,0.496710837,0.504994035,0.496692121,0.499243081,0.50273782,0.502901554,0.503216684,0.498339176,0.496637702,0.500325382,0.492598087,0.496963322,0.496378839,0.500316441,0.511890233,0.505073488,0.505182922,0.502165794,0.511272609,0.505972564,0.499299616,0.496598661,0.50267607,0.505564153,0.497538179,0.496007025,0.495712548,0.489204288,0.503553569,0.513414979,0.496869296,0.490722686,0.502177358,0.496198505,0.496815532,0.497529209,0.502516687,0.500175118,0.511075437,0.496373862,0.500276983,0.49447149,0.496861547,0.500621617,0.506300092,0.499735892,0.503442407,0.491698444,0.501959562,0.495669991,0.50562495,0.498348385,0.499950349,0.50155288,0.493607402,0.494441807,0.495740652,0.496372938,0.503294349,0.499390066,0.502880931,0.493770838,0.49943319,0.503267229,0.502812922,0.501593173,0.496161014,0.4945122,0.493721694,0.503944635,0.500017464,0.496701509,0.499438047,0.502412856,0.491825581,0.49493137,0.503147244,0.503870785,0.503199041,0.503819883,0.501174867,0.509086847,0.502897739,0.479186922,0.497352034,0.498863399,0.503320932,0.528630972,0.498873144,0.497156084,0.485231996,0.499446601,0.509286344,0.504322052,0.496079117,0.494050831,0.505632102,0.494607329,0.503862917,0.49752301,0.495983303,0.503429711,0.502802193,0.494767308,0.498024225,0.496254444,0.504708707,0.503465295,0.491270214,0.515359998,0.509201407,0.504842162,0.498729467,0.508368909,0.507109463,0.503341377,0.50339663,0.505267859,0.518818557,0.502066135,0.503631592,0.502679527,0.503507435,0.514450848,0.489198953,0.499231845,0.506691277,0.49907729,0.499457031,0.507298231,0.496068627,0.496147722,0.50262928,0.50168556,0.497746944,0.498822868,0.486126274,0.505585432,0.496833354,0.503421187,0.481833875,0.490847617,0.508650601,0.495971918,0.499051332,0.509390593,0.487377107,0.496454507,0.50859946,0.498305112,0.5038715,0.503263712,0.494469851,0.500451088,0.504928946,0.495969415,0.505147994,0.497150362,0.492888242,0.501080036,0.505972505,0.473413765,0.496564299,0.497839004,0.502988517,0.503158331,0.494003654,0.499369174,0.503777921,0.496478856,0.513275981,0.496014476,0.493829727,0.504663408,0.502750635,0.5027861,0.495824367,0.504775763,0.497387618,0.508717537,0.507350862,0.497239798,0.502491176,0.503950417,0.495891273,0.504787028,0.491707593,0.501614928,0.502101839,0.495042235,0.501246512,0.511341393,0.49553597,0.490989149,0.495201409,0.503841758,0.503586531,0.502953827,0.517481565,0.492451102,0.501208007,0.50067538,0.495202363,0.49580586,0.499996036,0.495280176,0.50493288,0.499563783,0.502095044,0.498761863,0.498381048,0.502128959,0.495765686,0.502241254,0.499182105,0.503201604,0.494340897,0.494956344,0.502846241,0.49677822,0.498308748,0.496604204,0.502395093,0.505278766,0.505749404,0.496699929,0.494049758,0.501468062,0.500459194,0.498882771,0.496355444,0.468364835,0.495657831,0.514610171,0.502197981,0.501221359,0.495479226,0.496530324,0.502138913,0.502555549,0.501258671,0.496074915,0.522890151,0.508289278,0.501990139,0.5014956,0.490981251,0.496676087,0.509108484,0.502126157,0.503845155,0.5065943,0.503608346,0.500915766,0.499719858,0.499973744,0.490306407,0.496005774,0.496137708,0.504305124,0.494783372,0.495511979,0.496576577,0.497630715,0.497205943,0.502256393,0.502884448,0.503130138,0.504612446,0.5000543,0.499790013,0.501318216,0.501896083,0.503424585,0.498815209,0.504225075,0.500766337,0.496766388,0.498735726,0.5032143,0.508292317,0.498565406,0.489817858,0.491556555,0.496299446,0.50316453,0.488919348,0.495509803,0.497645617,0.496539325,0.498665422,0.502144575,0.500085771,0.501518846,0.497120589,0.507663369,0.5031901,0.496554196,0.503621817,0.493948162,0.501467705,0.518588841,0.497258395,0.502977073,0.501225889,0.497466564,0.496337414,0.501920223,0.499806106,0.4914805,0.502039254,0.484107584,0.505246997,0.513817072,0.488879144,0.50535208,0.497480094,0.496499747,0.50227046,0.503537714,0.506087124,0.496249914,0.504207671,0.494572759,0.501273274,0.495932609,0.501564205,0.501791596,0.499886662,0.499235958,0.472563744,0.503023624,0.488364249,0.500928223,0.503987312,0.492258519,0.494377136,0.495321006,0.500173986,0.493603855,0.491401106,0.496127397,0.504969299,0.500272393,0.491105139,0.500272632,0.499826938,0.505865455,0.504180789,0.502623379,0.503307223,0.504242182,0.50405705,0.488728136,0.489774287,0.474612981,0.502934694,0.503781497,0.494778752,0.504359603,0.497467965,0.501141787,0.497426033,0.483681172,0.499756217,0.502312839,0.500220537,0.514319777,0.503882647,0.527487934,0.494425446,0.502213538,0.493924737,0.504676163,0.504110575,0.477310419,0.495531768,0.495529592,0.49971509,0.492866248,0.49932605,0.496029466,0.488363713,0.500097454,0.520424366,0.489143968,0.504928112,0.496281803,0.500849366,0.5073542,0.502616048,0.50183171,0.509052753,0.496637791,0.49911961,0.502451003,0.500723302,0.495709747,0.488445073,0.494685978,0.500324547,0.505334795,0.50294435,0.503143847,0.490098536,0.513233304,0.50954771,0.499704242,0.501061082,0.494521379,0.498035133,0.497396529,0.520914733,0.504073977,0.496333301,0.502160013,0.50681144,0.499429166,0.511543572,0.501900315,0.504426301,0.50306654,0.512992799,0.503789186,0.4988074,0.473908365,0.500837266,0.497300208,0.496289372,0.498832613,0.510392785,0.524243653,0.496868074,0.504508495,0.512941658,0.488898098,0.493360996,0.502746642,0.492664188,0.493743747,0.494444937],"C":[0.502342999,0.49747315,0.489863962,0.491831511,0.503544152,0.511212468,0.507947087,0.50108856,0.498131573,0.500984669,0.496277094,0.495487034,0.49396643,0.503185809,0.503620684,0.508086085,0.50351125,0.495611072,0.500500202,0.497618973,0.501623273,0.482063949,0.506631374,0.502183735,0.505791545,0.498701483,0.505140066,0.520616174,0.503585339,0.497623026,0.496578962,0.506254137,0.512269378,0.499618918,0.5000844,0.505014181,0.508603215,0.496850193,0.497496188,0.496881098,0.496538341,0.494347721,0.501246452,0.499971062,0.494535029,0.494820833,0.496807069,0.490397722,0.502008915,0.505899727,0.490945697,0.500533938,0.499538958,0.496665299,0.529937983,0.498854935,0.480138749,0.500461638,0.496703893,0.495402426,0.485750854,0.485728264,0.502239227,0.495227933,0.504521191,0.49485144,0.504309177,0.486738592,0.496596068,0.501648009,0.497074544,0.494053781,0.498334557,0.496394545,0.495527595,0.508256078,0.496742398,0.503535211,0.497463703,0.500284016,0.523964882,0.506802678,0.509386361,0.507282317,0.496088535,0.502119839,0.501321256,0.497680664,0.492353112,0.486902952,0.508464098,0.500809252,0.499665111,0.495714813,0.496313691,0.50244993,0.50230056,0.501321256,0.496080756,0.501720846,0.497506559,0.498898,0.4985511,0.508766115,0.496567041,0.498263359,0.499357164,0.481107533,0.502934694,0.503447473,0.515157044,0.49476558,0.506595254,0.49827078,0.502166092,0.497512579,0.514420509,0.501297295,0.500954509,0.504563212,0.501000345,0.500863552,0.508723915,0.495118678,0.491967887,0.493948698,0.508125722,0.496663153,0.500249445,0.504855394,0.496104181,0.501289368,0.499744922,0.508655608,0.48469469,0.500794411,0.504298151,0.482206702,0.500316441,0.50921011,0.496842563,0.503285527,0.49636969,0.507049859,0.505192399,0.506924927,0.478483558,0.499872655,0.496349692,0.498674929,0.498304158,0.501398802,0.503178596,0.512346685,0.505637646,0.502118289,0.49451828,0.503718078,0.503703177,0.495873839,0.500500917,0.501354933,0.494149178,0.499851972,0.49535656,0.493543237,0.495344937,0.499498606,0.50874275,0.503368556,0.495400518,0.495939583,0.510708511,0.502492785,0.495841086,0.500636935,0.499467522,0.500184357,0.501087487,0.485249043,0.495160133,0.496432275,0.491047114,0.489691496,0.495472491,0.502550662,0.513391972,0.499219716,0.502866983,0.507299781,0.492421657,0.500962377,0.498857111,0.501955032,0.486922532,0.513611913,0.496697336,0.502975941,0.479574889,0.50364387,0.500842094,0.491208911,0.503585994,0.509010255,0.504889905,0.495488584,0.503987432,0.502974093,0.500252962,0.496273786,0.500709474,0.516971886,0.516086638,0.501535356,0.496512055,0.498341978,0.503641367,0.506516695,0.500675917,0.497748435,0.50457406,0.49732402,0.469474554,0.496138304,0.503702819,0.497786492,0.519195616,0.501016378,0.501085877,0.496373624,0.500869632,0.501522183,0.507984996,0.504562199,0.500908554,0.495936364,0.496008575,0.510796607,0.500546277,0.49269852,0.499281287,0.497542918,0.506357551,0.485723138,0.498652756,0.509910345,0.499594718,0.504152,0.505737662,0.496462643,0.517429769,0.504347086,0.494149894,0.49671784,0.503681242,0.497041821,0.497249097,0.502400994,0.502937794,0.503260612,0.501230776,0.494715184,0.495782048,0.503166199,0.496838927,0.495974451,0.504304826,0.506801188,0.497000873,0.506071031,0.506515563,0.502524257,0.497858196,0.503500402,0.496837795,0.488408655,0.499261141,0.495755345,0.508657336,0.504640639,0.496570975,0.506578088,0.492501378,0.490340471,0.500512302,0.491584957,0.504244506,0.50032109,0.502866149,0.500299752,0.499871582,0.501751304,0.496511251,0.522247195,0.496872723,0.496439278,0.505755365,0.503023207,0.504745245,0.492818356,0.49918136,0.487734646,0.50685513,0.507095456,0.496385783,0.48358655,0.506022871,0.503953755,0.493537545,0.498426825,0.49999249,0.498406261,0.500837445,0.506390214,0.501850009,0.488607615,0.503311932,0.498472005,0.497337192,0.502988338,0.500016809,0.494778365,0.498607546,0.504868925,0.498526812,0.503784716,0.496895671,0.494559407,0.513508558,0.50555414,0.491056442,0.497387111,0.493877172,0.504436433,0.49495092,0.496306092,0.503268659,0.492059916,0.513766587,0.499193281,0.500080466,0.493223011,0.504406929,0.494773239,0.49416393,0.504531741,0.503056467,0.500003099,0.501142085,0.504955649,0.49922365,0.500512898,0.509223938,0.491846174,0.503248334,0.499534339,0.503502667,0.497371316,0.500183165,0.507341385,0.501490653,0.515167713,0.498404056,0.506623268,0.484244466,0.495063722,0.49894473,0.496906787,0.496924639,0.504637837,0.496758699,0.505494356,0.501574099,0.511002362,0.498604923,0.494668394,0.499941021,0.503683627,0.496359885,0.48235172,0.500310063,0.499567896,0.497961611,0.496909112,0.502956867,0.505044758,0.514483869,0.503598511,0.494159013,0.495668083,0.500654042,0.497089893,0.499543875,0.509154618,0.489252716,0.503377557,0.497015625,0.503477573,0.503193676,0.519051015,0.499857873,0.500839233,0.500084937,0.508473098,0.502619505,0.493522018,0.498085618,0.511238337,0.49717623,0.496186703,0.497723281,0.504307687,0.502520502,0.503821015,0.496616989,0.512040615,0.504420877,0.49748984,0.512728691,0.469231516,0.512048542,0.504652977,0.496209204,0.501855612,0.49640435,0.504274189,0.507169604,0.494136989,0.492220581,0.489591092,0.499144584,0.499082357,0.486590832,0.503200293,0.496660739,0.497815669,0.499642253,0.497322232,0.506238818,0.472215027,0.489358425,0.514662743,0.492661834,0.503655553,0.49849546,0.499123335,0.483293921,0.52070725,0.500227392,0.496465266,0.496548563,0.503627956,0.497570455,0.498769879,0.497273326,0.49764061,0.495194346,0.504065633,0.498286992,0.504029751,0.506844223,0.489219606,0.494944602,0.507184684,0.499184489,0.497618198,0.528765142,0.496471643,0.499251992,0.502986193,0.500638545,0.495102763,0.499366164,0.502739012,0.496200979,0.504315257,0.506783068,0.494456142,0.495211571,0.514506102,0.494166464,0.496179461,0.50702548,0.502092421,0.498716027,0.495934278,0.502778947,0.495333552,0.508041084,0.493987441,0.488284886,0.502569914,0.496752441,0.498565406,0.50235337,0.496553123,0.50057286,0.495827079,0.495739758,0.497644067,0.495944202,0.50357163,0.495027155,0.493127704,0.500455141,0.505723953,0.49653995,0.496592909,0.495719105,0.479351401,0.507405162,0.49059391,0.504302025,0.502274334,0.507052779,0.503189623,0.49902764,0.495426953,0.50693053,0.468649805,0.497466207,0.499480963,0.498414874,0.497066319,0.507285357,0.48900491,0.502322793,0.487736434,0.513523936,0.502127171,0.502812684,0.497751474,0.49965328,0.490475059,0.50014329,0.496303916,0.493922293,0.499926865,0.501879752,0.499721169,0.500103831,0.498157233,0.500130534,0.501423597,0.496336579,0.498211414,0.506584942,0.502953827,0.491430134,0.495923549,0.504016519,0.499657899,0.502023041,0.499852002,0.495494187,0.499688834,0.505707502,0.51189518,0.489573568,0.498465657,0.497138292,0.500759423,0.503422022,0.491645277,0.496204168,0.49950105,0.50513649,0.501672745,0.478686571,0.509139001,0.501173377,0.501782119,0.496408582,0.478401691,0.497587353,0.505096793,0.502453208,0.502837539,0.49147132,0.504945695,0.49913317,0.495362818,0.482823312,0.503130376,0.500358522,0.49950695,0.481185615,0.500123203,0.486050546,0.500654817,0.499699444,0.494635433,0.497726083,0.502605736,0.502262175,0.496370763,0.496546775,0.505852699,0.501193762,0.508973718,0.502237976,0.498541564,0.495701343,0.497115135,0.512649059,0.500570178,0.492764801,0.495007813,0.505888462,0.492406487,0.496518403,0.489806056,0.495677382,0.504670978,0.500548422,0.504602432,0.496666849,0.503130794,0.4733904,0.497519433,0.50369215,0.505387247,0.49981755,0.496982843,0.503571391,0.501340032,0.496973336,0.502688169,0.490861714,0.495651841,0.489627093,0.495454997,0.493615061,0.504059851,0.494090021,0.49202615,0.502141416,0.499113232,0.501106977,0.496713758,0.474959165,0.501490593,0.505199432,0.493750274,0.487173438,0.502042532,0.503351808,0.495170116,0.501908958,0.49384135,0.494638085,0.483188331,0.496936709,0.505981863,0.499515891,0.504231811,0.504149437,0.496404827,0.497727752,0.501710236,0.503702819,0.528793156,0.507297277,0.506814241,0.49826622,0.497733712,0.495969862,0.496751159,0.497970402,0.490862042,0.494143277,0.496369123,0.495752156,0.490731806,0.505841374,0.503187716,0.501647711,0.496067166,0.494274616,0.506236672,0.516629815,0.495315522,0.501185119,0.500254095,0.506391525,0.503642499,0.50306505,0.503483236,0.502362549,0.505084932,0.500418186,0.501884758,0.508410275,0.495377272,0.505202711,0.500929713,0.498738348,0.495153874,0.502447784,0.498168826,0.505690396,0.508956194,0.494121879,0.492780745,0.500737011,0.50226146,0.499111444,0.504944801,0.503086269,0.499386132,0.500407875,0.508059025,0.508938134,0.497916371,0.501382649,0.497681051,0.505187094,0.502789199,0.49651584,0.49683708,0.504046142,0.499754369,0.502498627,0.495740741,0.500442684,0.503439367,0.49497804,0.499233216,0.505829275,0.518645346,0.496375799,0.486698866,0.502201855,0.501775324,0.496513337,0.510296226,0.497843951,0.502697825,0.50080651,0.504223824,0.498289078,0.497948915,0.496789902,0.506824732,0.497113168,0.483712077,0.496506035,0.496064842,0.499275088,0.511148989,0.499475807,0.512059033,0.500500202,0.489591271,0.500736058,0.500289023,0.502589822,0.498822093,0.489360958,0.490198672,0.4960033,0.502946436,0.505645216,0.50361228,0.493578821,0.499203503,0.49605602,0.497552693,0.496920079,0.503423572,0.503365338,0.50131768,0.502957702,0.504714787,0.50243324,0.504060864,0.49940291,0.506019592,0.497846901,0.505762994,0.502814591,0.497018158,0.499178439,0.493452787,0.496155918,0.501045108,0.496819884,0.506529212,0.490533382,0.495047033,0.503415227,0.501512766,0.509499073,0.504769921,0.504306197,0.500435472,0.502240062,0.495891571,0.498015553,0.508962095,0.50049895,0.520023346,0.515830398,0.479328752,0.50306195,0.493956089,0.497842163,0.503323436,0.508635104,0.498400807,0.505660474,0.504859924,0.503340483,0.496591598,0.496473551,0.501270056,0.499093592,0.497792453,0.504330218,0.503055155,0.510105312,0.504591882,0.502583802,0.49751696,0.497583807,0.501523495,0.501415431,0.487192571,0.509456456,0.493035495,0.503784418,0.503534734,0.497956097,0.493860006,0.505168736,0.504669428,0.50336194,0.496051759,0.498048931,0.504049897,0.496300459,0.506596565,0.5127635,0.498662293,0.500517786,0.484842241,0.495165676,0.502872705,0.496746987,0.496927887,0.493830204,0.496655285,0.496420979,0.493353754,0.506239057,0.498003662,0.522901475,0.490239173,0.516146243,0.50332731,0.513333678,0.501869857,0.497668713,0.503393888,0.505079508,0.498142362,0.502544761,0.493311584,0.493105918,0.493439674,0.502416492,0.50532347,0.490087956,0.498463243,0.495336056,0.502822757,0.500053585,0.497627199,0.49858433,0.502797246,0.499333203,0.499563843,0.503015757,0.493400484,0.502951026,0.495303422,0.495825946,0.496782482,0.495910883,0.486291528,0.496269912,0.491085887,0.503386557,0.50204891,0.5022012,0.508467972,0.495801061,0.495536953,0.507105649,0.489262611,0.498041213,0.500357091,0.495598912,0.516942978,0.496440649,0.488740414,0.490946114,0.500305772,0.502945065,0.499957323,0.499440908,0.499111652,0.502497613,0.496431589,0.508837104,0.497710943,0.498532623,0.509369493,0.494969517,0.508910358,0.504340887,0.497293681,0.485416859,0.495187193,0.504147291,0.506213546,0.49279514,0.501675725,0.499347448,0.496193409,0.495022863,0.515422404,0.499466658,0.495007306,0.511550426,0.508949041,0.493341863,0.495248109,0.50137037,0.494648814,0.500623763,0.514522672,0.504046261,0.508677483,0.505019903,0.496434391,0.49978289,0.507821143,0.49942559,0.50256741,0.503487527,0.500652254,0.498191535,0.504252374,0.497494161,0.496469855,0.49478817,0.496521622,0.499991059,0.494500935,0.505488575,0.496964931,0.499117255,0.502486825,0.495318174,0.503409386,0.496136099,0.503637493,0.504204571,0.496968418,0.49578166,0.510964155,0.499730378,0.504630208,0.497577518,0.503334284,0.504166543,0.505547166,0.496974796,0.492870063,0.496728063,0.503759742,0.508014321,0.496736199,0.495163441,0.504962087,0.498016417,0.499388069,0.505074561,0.496493608,0.493912071,0.504027426,0.501322269,0.503012598,0.516294599,0.494775265,0.504368305,0.500735521,0.490936548,0.523564756]} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/runner.c b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/runner.c new file mode 100644 index 000000000000..a904aa751c8d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/runner.c @@ -0,0 +1,196 @@ +/** +* @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. +*/ + +/** +* Generate Cephes test fixtures. +* +* ## Notes +* +* - Run this script from the directory in which fixtures should be written. +* +*/ + +#include +#include + +/** +* Define prototypes for external functions. +*/ +extern void fresnlf( float x, float *s, float *c ); + +/** +* Generates a random number on the interval [0,1]. +* +* @return random number +*/ +float rand_float() { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Generates an array of pseudorandom floats drawn from a uniform distribution. +* +* @param out output array +* @param len array length +* @param a lower bound (inclusive) +* @param b upper bound (exclusive) +*/ +void rand_array_f32( float *out, const unsigned int len, const float a, const float b ) { + unsigned int i; + float delta; + + delta = b - a; + + for ( i = 0; i < len; i++ ) { + out[ i ] = a + ( rand_float()*delta ); + } +} + +/** +* Writes an array of floats to a file as a series of comma-separated values. +* +* @param f file to write to +* @param x array of floats +* @param len array length +*/ +void write_array_f32( FILE *f, const float *x, const unsigned int len ) { + unsigned int i; + + for ( i = 0; i < len; i++ ) { + fprintf( f, "%.9g", x[ i ] ); + if ( i < len-1 ) { + fprintf( f, "," ); + } + } +} + +/** +* Writes a named array of floats to a file as JSON. +* +* @param f file to write to +* @param name array name +* @param x data +* @param len array length +*/ +void write_named_array_f32( FILE *f, const char *name, const float *x, const unsigned int len ) { + fprintf( f, "\"%s\":[", name ); + write_array_f32( f, x, len ); + fprintf( f, "]" ); +} + +/** +* Writes data to a file as JSON. +* +* @param f file to write to +* @param x domain +* @param S S(x) +* @param C C(x) +* @param len array length +*/ +void write_data_as_json( FILE *f, const float *x, const float *S, const float *C, const unsigned int len ) { + fprintf( f, "{" ); + write_named_array_f32( f, "x", x, len ); + fprintf( f, "," ); + write_named_array_f32( f, "S", S, len ); + fprintf( f, "," ); + write_named_array_f32( f, "C", C, len ); + fprintf( f, "}" ); +} + +/** +* Generates test fixtures. +* +* @param x domain +* @param len number of values in the domain +* @param name output filename +*/ +void generate( const float *x, const unsigned int len, const char *name ) { + unsigned int i; + float *S; + float *C; + FILE *f; + + // Allocate an output array: + S = (float*) malloc( len * sizeof(float) ); + if ( S == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + C = (float*) malloc( len * sizeof(float) ); + if ( C == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + for ( i = 0; i < len; i++ ) { + fresnlf( x[i], S + i, C + i ); + } + // Open a new file: + f = fopen( name, "w" ); + if ( f == NULL ) { + printf( "Error opening file.\n" ); + exit( 1 ); + } + // Write data as JSON: + write_data_as_json( f, x, S, C, len ); + + // Close the file: + fclose( f ); + + // Free allocated memory: + free( S ); + free( C ); +} + +/** +* Main execution sequence. +*/ +int main( void ) { + unsigned int len; + float *x; + + // Define the array length: + len = 1000; + + // Allocate an array: + x = (float*) malloc( len * sizeof(float) ); + if ( x == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + rand_array_f32( x, len, 0.0f, 10.0f ); + generate( x, len, "small.json" ); + + rand_array_f32( x, len, 10.0f, 100.0f ); + generate( x, len, "medium.json" ); + + rand_array_f32( x, len, 100.0f, 36973.0f ); + generate( x, len, "large.json" ); + + rand_array_f32( x, len, 40000.0f, 60000.0f ); + generate( x, len, "huge.json" ); + + // Free allocated memory: + free( x ); + + return 0; +} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/small.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/small.json new file mode 100644 index 000000000000..a4e70370271e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/fixtures/c/small.json @@ -0,0 +1 @@ +{"x":[7.82636926e-05,1.31537795,7.55605316,4.5865016,5.32767248,2.18959188,0.470446169,6.78864717,6.79296446,9.34692955,3.83502054,5.1941638,8.30965328,0.345721096,0.534616351,5.29700232,6.71149349,0.0769818649,3.83415651,0.668422341,4.17486,6.86772728,5.88976622,9.30436516,8.46166897,5.26928806,0.919648945,6.53918982,4.15999365,7.01190567,9.10320854,7.62198019,2.62452984,0.474645138,7.36081886,3.2823422,6.3263855,7.56410503,9.91037369,3.65338683,2.47038889,9.8255024,7.22660446,7.53355885,6.51518583,0.726858854,6.31634712,8.84707165,2.72709966,4.36411428,7.66494751,4.77731752,2.3777442,2.7490685,3.5926497,1.66507196,4.86517382,8.9765625,9.09208107,0.605643272,9.04653072,5.04522896,5.16292,3.19032931,9.86642075,4.93976688,2.66144514,0.907328963,9.47764301,0.737490714,5.00707102,3.8414216,2.77081776,9.13817501,5.29747391,4.64445829,9.40979958,0.500839829,7.61514235,7.70204544,8.27817345,1.25365376,0.158677012,6.88455296,8.68247128,6.295434,7.36224556,7.25411987,9.99457932,8.88572216,2.33194876,3.06321836,3.51015234,5.13273716,5.91113567,8.45981503,4.12080765,8.41510677,2.69317269,4.15394592,5.37303972,4.67917395,2.87212372,1.78327703,1.53719974,5.71654797,8.02405739,0.330537558,5.34449816,4.98480129,9.55360794,7.48292637,5.54583836,8.90737438,6.24849319,8.42039585,1.5976752,2.12751508,7.14709997,1.30427253,0.909903347,2.74588132,0.0299960095,4.14293242,0.268762916,7.09819603,9.37897301,2.39910817,1.80895913,3.17539549,8.86990643,6.52058649,1.50335062,6.81346226,3.85814691,3.87725329,4.9974103,1.47533,5.87186623,8.45575619,5.90108633,9.55408859,5.56146145,1.48151565,9.83305073,4.08766699,1.41819775,5.64898682,2.52126408,4.88514519,4.64030552,9.61095142,1.26030803,1.99757206,3.19249654,6.29269171,1.26712155,6.51253748,6.21634007,8.03073025,2.47841763,4.76431799,3.89314175,2.03250337,0.283751816,9.01673508,4.26497412,1.42021036,9.47486782,4.10313034,1.31188524,8.85648346,0.9217363,1.62198555,0.710635662,3.65339041,2.53057361,1.35109365,7.83153152,4.55307293,3.4952414,4.52300167,8.08944607,9.31674385,6.5164609,2.15248394,6.79592371,9.08921909,2.50125599,8.60859776,4.7126236,5.05955887,6.00393724,8.17561531,7.55843544,4.62244987,9.51367474,6.32738686,4.39330292,8.24697399,6.88980961,7.02206659,9.87145519,9.5441494,8.51269627,2.89316201,5.37425756,5.14434719,1.03433931,4.14028502,5.76716661,8.76565742,4.40038633,7.29747677,8.69263744,7.15642357,8.0072031,7.06535435,7.41715908,0.190924034,8.86031055,5.24987411,4.63322735,0.651938796,7.13422298,4.88943148,6.67679071,6.82049084,1.99554741,9.16633892,8.65882683,8.90018654,5.43948269,1.39194989,4.50347424,9.89362526,2.15531969,4.46023417,3.15732431,5.14659452,8.81504154,4.39725542,4.67531776,8.06649971,3.65158057,2.11518955,9.99116707,1.53604484,6.304883,6.16350365,0.00595042482,0.00878999941,7.73352051,7.27334976,3.19177604,4.17723703,6.82494211,6.80561972,2.05261898,8.36419868,7.08920574,8.28707886,0.945488095,0.817376077,7.64004803,6.29571867,2.13852191,2.13546801,0.81060797,3.88823247,9.52159691,9.47545052,3.89853597,2.69214749,6.92168951,2.84035015,7.76865864,7.83865213,4.22459793,2.82155871,1.93967474,0.113162264,1.9182384,9.83235741,2.44054246,8.19726086,1.3645494,3.98143673,6.01010084,1.76880372,8.2835474,1.57731175,9.87936974,2.57168651,2.33599186,1.01637375,2.19410634,6.34717464,6.96007299,7.94769812,6.96242809,7.52940416,6.69520617,6.33429909,0.564406633,5.98216629,2.27007723,3.18777895,6.99834442,1.17436934,7.62570763,5.26123285,5.53911304,5.87988901,3.29666376,7.02989388,1.43045259,1.61687708,4.85325193,8.60225677,8.13265705,5.56835747,7.38996601,3.16007352,1.35332215,5.28548241,3.1073885,5.88119125,5.18083572,4.30847788,2.58842754,3.70226264,3.93017578,4.4686594,4.75896215,3.87831211,2.7929306,0.782632113,3.69742012,2.53922272,6.71784163,6.76236916,5.13936424,7.2860837,7.20767784,9.44752789,4.60697365,9.40163136,3.21560097,4.60434151,5.17145348,6.61355495,4.01832914,6.05639696,9.86502647,1.50393891,6.700984,3.43817568,5.41710186,5.22807693,8.29238701,0.14950569,2.74209738,6.42978907,5.46136618,9.17847729,2.6661334,9.7008667,2.46733141,8.43975353,6.94023657,4.5575161,8.17101383,0.220836997,1.60748911,7.06949949,7.07826328,4.36638451,5.82421112,7.51710129,9.91533089,6.9567914,2.79511738,7.53862762,1.71178925,0.0425392352,4.95691061,0.799168885,1.6308105,9.03301144,7.82991982,7.46679115,4.36425686,0.0634168983,5.84787178,5.18478394,0.668497682,5.44022751,3.89731407,2.15825891,3.85769415,6.26861382,6.59053326,7.0931983,5.38661289,2.80288935,8.15932178,3.71909666,6.86101627,3.10168958,0.0934752151,1.03797293,5.20960093,7.75880337,2.20685148,0.5527879,0.706348717,1.60273921,7.23763704,2.97022104,0.50602591,4.77804279,4.57161903,5.19988489,4.46489573,1.5031153,2.85942364,8.33682156,6.95637417,5.77776003,6.81164455,3.3117497,0.574752748,9.86882973,5.4239316,0.0165741611,8.56192684,0.293554783,3.77550387,4.89651728,5.76172924,7.3895874,6.79332209,5.36266756,0.355877012,1.22506893,9.73355675,1.88275802,3.51318741,6.1412549,6.07611465,1.25932813,5.52862167,9.54028511,3.56924987,8.38101578,9.74252319,2.59014177,2.51527596,4.24335861,8.13047981,8.97914219,2.44586205,7.60617304,6.94856405,4.51851225,2.63620257,6.65503454,1.16571045,2.09562302,1.13675666,5.4697485,0.0607937016,1.75974262,5.99359322,4.31908274,0.825065374,6.87414455,3.75310063,8.36206532,1.23637366,9.73346138,0.296352923,0.803530812,4.94244623,7.69437361,9.34030437,2.50155258,3.59657812,7.69114065,4.9995532,7.49251604,6.71903515,6.81665802,7.56770182,0.36367619,2.3057189,2.21667314,5.62602043,6.52621937,6.16610432,3.71465731,2.24801207,2.33691502,6.53011608,1.65927529,7.44104195,1.5975771,0.476386011,6.61993504,1.24944913,9.49157143,4.8418045,6.21045637,9.14025021,0.179445207,5.93545675,7.21871614,4.96581984,0.536943913,4.41632605,5.19174862,7.71944141,0.653562665,4.42790318,9.77180195,4.67741394,3.2905612,4.45929861,7.43273973,2.05341315,1.7137934,3.72519755,9.39725399,9.64851284,2.54957461,0.703352094,1.23848772,5.26337862,1.60083163,5.17707253,1.05184841,8.41576004,3.68562126,4.23890495,3.27227569,7.13546515,5.76775837,8.71884251,7.58245754,8.36597824,6.9979105,3.89060235,9.35241604,6.05602551,3.62083626,5.39504623,4.55072403,4.016922,2.40440464,0.830857158,4.21578646,4.72379971,2.89766455,1.04969144,2.16386151,8.02018642,5.27439117,6.68820333,8.63642788,2.4375031,7.11564445,2.63662934,3.82821512,0.810055196,4.59762764,2.32866979,7.9535265,4.91343069,0.0322878063,2.66119146,6.64688826,4.25191116,1.86824739,9.63475609,1.34039152,7.95855618,9.4604454,1.71155226,6.06001329,0.638036191,3.47491693,2.92468023,5.09658241,8.25836563,8.34338379,7.264431,3.29434276,8.02084351,6.31763268,0.453407168,0.414204359,1.53315115,7.67065001,0.617313802,5.19303226,9.29149818,2.20515537,2.04562926,0.889926612,6.9969101,7.06461239,4.94630909,2.61778545,7.11571264,3.78366208,2.00644517,2.32607603,4.36096239,4.69498491,8.61187458,9.77238274,4.44519186,0.342431009,5.23771763,0.316387951,7.5317378,5.91588211,8.22891045,3.29578876,2.32078099,5.36528301,4.30618382,4.03581095,9.87324715,9.66909599,8.50530529,8.67514229,3.11605191,1.48390412,9.97598553,6.39523315,4.68074751,9.31914711,6.90772581,8.15406704,5.41534662,5.72806549,1.59216118,9.4525032,8.21333694,1.55413878,0.410747677,3.43613386,1.10019433,0.965382755,5.1877327,0.224050403,5.61483765,8.56876183,5.16908121,6.74524736,7.37174892,6.9846034,0.227995485,1.91983759,6.70990992,3.45871735,0.662902832,1.40710485,9.21117496,2.21656466,3.80114579,5.86015749,1.67312801,0.263396859,6.91126442,7.62343884,7.13695335,0.773243189,5.8980937,9.25503063,9.296978,4.30446005,5.05969572,8.31256008,9.19236088,6.0163765,7.2383647,5.19336653,4.90817022,1.61419415,9.76115608,5.74360275,2.73251104,5.31427336,6.9855814,6.67049313,0.974325418,5.48736286,6.10737705,6.67965412,4.95125341,5.71582603,5.88888073,4.41313219,1.51216888,5.02274752,7.31363821,0.316565484,0.516167104,5.22063494,3.20642281,0.350595087,2.45142317,1.07180524,3.82968521,5.51829386,5.97168493,6.11110592,9.35251427,7.72030306,5.13148499,4.86681175,6.50127792,6.96995735,4.07537746,4.86849499,4.79782867,7.10450077,5.34198666,2.76646972,6.05538177,2.80103731,7.03369427,5.3048954,9.38253975,2.35402727,4.13494205,5.97476244,7.83002329,9.20252419,6.81491137,8.21177292,5.27412987,2.30269742,1.43684149,8.99521065,2.51422119,6.5151453,0.0481560864,9.35935879,2.7535305,8.58765888,2.78928566,9.52430916,5.06819963,1.22949743,4.16475391,7.02471352,4.36491203,1.07738805,7.66174793,0.998656094,4.41265202,3.44576478,2.97064185,7.57621193,3.38509583,3.30758357,0.556061864,5.73182964,4.85286045,2.02481961,1.14474583,9.74347878,8.64609528,4.91840744,3.67394829,8.04912376,1.62203813,1.59579802,0.577229261,1.4925139,4.68101406,3.80608296,8.83704662,4.24133539,4.12247944,6.51294613,3.08327484,0.601424634,8.14416504,8.97656918,9.19491959,9.01217937,7.70046473,1.70796251,5.72441959,0.31403777,8.0326786,5.22214651,8.61621761,2.77198172,8.69494057,5.86861992,3.89171886,8.1189537,5.25670242,9.39871502,4.2003808,5.79862547,7.49145031,8.8078413,3.38084698,1.89548588,7.43126011,7.18919468,8.79161835,0.728690505,7.10113573,8.79059887,3.59379411,0.89853102,1.61029148,4.1679635,0.964285493,6.74692869,5.6261158,8.13046837,8.78191757,7.69360113,6.35205364,8.96523952,8.7841301,4.86470699,1.13070595,3.77484536,3.82619596,6.87577915,1.21739554,0.768217564,1.43302059,4.77640772,7.08587933,2.38019323,3.9096663,9.75880814,6.28766632,6.81198835,9.08690548,3.6240015,8.59213066,7.94277906,4.28873301,0.735109508,4.98630571,4.83872843,4.50734806,4.99657345,7.40758801,9.32843399,3.0012176,1.46195638,1.10018468,0.803220332,9.72476196,4.08177423,2.38410378,9.63160229,8.33474064,1.98079932,1.29481542,1.96307433,3.39119172,5.75679207,4.40268087,5.85674572,4.32877254,3.68202686,3.82316875,6.00132656,4.2947278,1.48787427,6.70196629,9.9540062,6.98066473,4.02739906,8.49278259,8.19527245,7.93382168,3.74249411,0.0960788876,4.79778624,6.39057922,6.46495247,6.4489789,7.99034786,3.77364063,3.57671762,3.89500475,3.34306741,6.93588686,1.44897461,2.91525364,6.66856337,8.54365158,3.14698887,1.44142449,6.02249384,0.0558819696,9.20829582,3.81954932,5.16531467,3.44455528,2.64133453,2.90999794,8.33648109,1.24390709,6.34619427,0.486974478,4.58045864,3.76816559,1.55872893,7.55855656,6.65973186,0.11530605,7.94880772,5.60914421,2.8865447,4.15560198,3.20611334,5.14590311,7.19155264,8.42043877,2.31895351,4.65007019,3.73359323,0.500430703,0.738503277,2.02449346,5.66182613,8.31523895,4.2255249,8.39548588,2.93043423,1.81195784,3.57525682,9.34110165,5.8941927,3.69040465,4.6305871,6.27830315,9.44452095,4.05786324,0.504816353,4.44850111,5.95927191,7.48311043,8.641716,1.31023061,1.04579353,6.65308094,8.33377838,5.81285095,6.58593559,9.82032394,0.189160138,9.21472931,1.94678879,9.67723083,5.23072481,2.78795719,7.1979475,5.90458584,8.37081814,8.34691429,6.59887552,7.30448198,6.43026733,3.49529052,5.34876156,6.64147282,3.23428869,8.69187927,4.42370319,9.17967319,2.76667571,9.51753235,1.17237818,4.16007423,8.36375427,9.62535477,3.329283,5.26181698,5.35956335,8.18107319,9.2989006,6.62893057,2.43228483],"S":[2.51003428e-13,0.693096042,0.505960941,0.502874792,0.450440884,0.445725024,0.0540477373,0.546500862,0.545725107,0.481627733,0.538369477,0.502708793,0.502849638,0.0215815511,0.078862004,0.440119624,0.502951682,0.000238869805,0.539141774,0.150953472,0.546491385,0.488377512,0.525769174,0.521436453,0.469672173,0.443918169,0.358708501,0.51818198,0.534053087,0.511474788,0.507307649,0.541332126,0.526430964,0.0554905459,0.541562438,0.536307752,0.449713618,0.513764083,0.530329585,0.543363631,0.627257943,0.478515565,0.458559394,0.483889908,0.537498176,0.191393435,0.4503479,0.532834351,0.430165291,0.496007264,0.516013026,0.519191325,0.609808385,0.414584696,0.485001415,0.58285296,0.443638474,0.478098691,0.517654955,0.113589399,0.534041047,0.540686011,0.532354474,0.596467614,0.516604125,0.447477847,0.489669532,0.346803218,0.532301188,0.19932498,0.506248057,0.532528818,0.402302563,0.475223154,0.440164566,0.552890122,0.477711827,0.0650543347,0.541787624,0.48020035,0.473909229,0.660953104,0.00209166529,0.473251581,0.479269475,0.457861215,0.541138291,0.475247294,0.468630284,0.502614498,0.579963207,0.555799723,0.419648618,0.553492725,0.505425811,0.470798433,0.496264458,0.511055887,0.459131986,0.528583944,0.487312108,0.566893339,0.396387905,0.466754317,0.680314124,0.472625673,0.467274785,0.0188689325,0.461801559,0.484136462,0.48632735,0.45746994,0.521980047,0.481869578,0.496923029,0.505900741,0.6406703,0.392702758,0.494621426,0.688299477,0.349281579,0.416659832,1.41315249e-05,0.518170714,0.0101556396,0.537071049,0.466120273,0.619358897,0.442695975,0.59950763,0.517648876,0.533785701,0.696198404,0.536959052,0.516488791,0.497464538,0.496602446,0.705608726,0.53991735,0.47350961,0.515289187,0.485890925,0.506876111,0.703829467,0.484709054,0.464347005,0.713936985,0.444295704,0.609441042,0.436525166,0.550202012,0.472267777,0.665031433,0.343434215,0.595846295,0.45941931,0.669062257,0.539155245,0.527592301,0.471515596,0.62572062,0.531264186,0.481776476,0.346740931,0.0119486377,0.515977979,0.571651459,0.713892162,0.53144151,0.478807896,0.69163698,0.527880788,0.36073637,0.621205211,0.179627046,0.543366611,0.604206204,0.705308259,0.520113409,0.470322847,0.413542718,0.446350992,0.524891615,0.510588646,0.536661088,0.412400514,0.544969201,0.520070732,0.618695378,0.536470175,0.564214647,0.550364077,0.447106838,0.509820819,0.508306384,0.536657035,0.523367226,0.44975996,0.468080282,0.46140933,0.469168156,0.520913482,0.520691574,0.495375156,0.472077638,0.40620774,0.488506824,0.546610594,0.472530186,0.515599489,0.521446943,0.490645111,0.461942315,0.516650558,0.471813291,0.485564619,0.460864633,0.544648349,0.499287605,0.00364316441,0.525301158,0.453673899,0.545196056,0.140529752,0.50745219,0.435759157,0.470488489,0.532223523,0.343477935,0.465291321,0.501582801,0.488375187,0.546289146,0.71287775,0.435680836,0.531619012,0.414793015,0.429869235,0.600240588,0.545082986,0.532233059,0.464612544,0.566150844,0.504040718,0.541809738,0.383987695,0.469387323,0.680934846,0.453472495,0.551617801,1.10317032e-07,3.55602793e-07,0.46077925,0.493004233,0.596057832,0.548324049,0.528842628,0.541258335,0.352108836,0.537967205,0.5414024,0.481113434,0.384002566,0.264212489,0.534932077,0.457706511,0.401068032,0.398694515,0.258373052,0.486571014,0.517081201,0.531640112,0.476591647,0.460078925,0.454522789,0.388600886,0.46502322,0.52594018,0.572800636,0.388178349,0.354602009,0.000758736511,0.363694966,0.484100252,0.628632128,0.488461912,0.708578408,0.422667801,0.447919965,0.480800569,0.478113919,0.655511975,0.526061594,0.574886739,0.583048165,0.454625636,0.450027525,0.454683959,0.464693815,0.489876151,0.466248393,0.480123222,0.486828834,0.450621068,0.0924698636,0.449927241,0.525075555,0.597140789,0.498049617,0.602899313,0.540616751,0.447311282,0.528057337,0.534023464,0.522561908,0.527484834,0.713384449,0.62544173,0.450454086,0.537000656,0.538233995,0.499992907,0.524881899,0.60033828,0.705901444,0.440169156,0.585843086,0.532993495,0.515878558,0.547760367,0.560532153,0.576012731,0.449094117,0.428962231,0.535928607,0.496407509,0.393498063,0.234883398,0.573739171,0.598845065,0.509236217,0.542748332,0.549777925,0.505692959,0.455996096,0.51306504,0.522848129,0.472251594,0.586492896,0.520361006,0.52475816,0.456001818,0.422620475,0.474282652,0.51539588,0.695963979,0.49247247,0.411925703,0.529751241,0.470228076,0.48591131,0.00174957898,0.419208676,0.525014937,0.555947125,0.467797637,0.485034496,0.532369196,0.627713799,0.486857831,0.455629796,0.474429101,0.514201462,0.00563679263,0.633028567,0.544983029,0.544436276,0.493745834,0.554159939,0.47021237,0.52832973,0.462683797,0.392843813,0.488689363,0.537526011,4.03057857e-05,0.459297299,0.24864015,0.613716483,0.528272033,0.518701494,0.460635036,0.495865166,0.000133540307,0.551971674,0.512024045,0.151002109,0.546734333,0.477757335,0.417303294,0.516933978,0.477637827,0.469778568,0.539673865,0.500800252,0.390845537,0.524319053,0.581974149,0.494964272,0.58277601,0.000427643856,0.476139516,0.487380177,0.460899621,0.46237874,0.0870002955,0.176586404,0.636765122,0.463610053,0.466920644,0.0670648664,0.518493056,0.488039434,0.496990412,0.429245114,0.696291745,0.392225981,0.526983261,0.462441772,0.530704737,0.53805238,0.507617056,0.0975170285,0.518617034,0.535384834,2.38392886e-06,0.517076552,0.0132281072,0.578278184,0.435105979,0.51635921,0.525191247,0.545643449,0.477392852,0.0235326327,0.641927898,0.512987792,0.383967191,0.421159774,0.546525002,0.492920548,0.664439559,0.536756873,0.499224007,0.462562531,0.535342872,0.504368424,0.558999479,0.612502694,0.574953318,0.538650095,0.480189443,0.628889084,0.540695131,0.458504409,0.443504691,0.514857471,0.456886232,0.595654964,0.371696204,0.57041353,0.557615519,0.000117644973,0.489719301,0.447346985,0.539103806,0.270917773,0.482310057,0.584173024,0.537773073,0.649734437,0.513075292,0.0136093032,0.252330929,0.449101686,0.487219393,0.48750639,0.618578851,0.48889935,0.490325302,0.498744816,0.458459973,0.510402024,0.53490299,0.517101347,0.0251075365,0.558233857,0.472057343,0.451971471,0.529477417,0.551598191,0.580703497,0.503322661,0.583741426,0.52626574,0.588251829,0.47677207,0.640745282,0.056095954,0.453854561,0.658305645,0.53321749,0.458556861,0.5323838,0.473815113,0.00302492664,0.481528699,0.456518531,0.466621816,0.079876326,0.449584693,0.505120575,0.467168927,0.141537249,0.442144692,0.477479279,0.56658107,0.528490186,0.430030823,0.48411411,0.352371812,0.535532713,0.583357215,0.469968587,0.504732072,0.591832399,0.174478099,0.65115416,0.446312845,0.638245761,0.519494414,0.489869654,0.510428309,0.567225277,0.574863791,0.545546889,0.506223381,0.521988511,0.463504225,0.529218733,0.538037896,0.497616202,0.484248638,0.477278024,0.473957896,0.513065755,0.509187758,0.468198031,0.42231068,0.621243119,0.276017129,0.570211649,0.559756517,0.408758283,0.487741411,0.422170401,0.465229899,0.442283064,0.480249703,0.522351503,0.628388166,0.524651349,0.514431953,0.544338048,0.257898748,0.513884962,0.577405274,0.484373361,0.436661392,1.76243939e-05,0.489921063,0.453946918,0.574384272,0.393938363,0.491099775,0.702178121,0.479889989,0.523707211,0.537761509,0.477509171,0.132077783,0.408937752,0.427049577,0.562350214,0.463300496,0.53118223,0.484391987,0.524827361,0.465554386,0.450155467,0.0484426245,0.0370159596,0.682465971,0.510607541,0.12005654,0.503839374,0.529767573,0.460719764,0.349960417,0.330191582,0.496617645,0.544548452,0.451595545,0.533035338,0.524594426,0.574745178,0.343546301,0.575347602,0.499154985,0.567667782,0.535774827,0.477064818,0.433906764,0.0209732316,0.462290496,0.0165535603,0.482217699,0.500686169,0.465211809,0.523417413,0.571055949,0.479842544,0.549512029,0.428460956,0.522029638,0.522881091,0.467711449,0.485671878,0.589981914,0.703097105,0.476800829,0.491756439,0.567134559,0.508277237,0.458546132,0.52821207,0.528234482,0.483211309,0.644827843,0.517484009,0.474559933,0.670596004,0.0361031182,0.412513614,0.536681712,0.403708369,0.509113789,0.00588630699,0.458685696,0.522809267,0.526922643,0.53304404,0.537199318,0.484600335,0.0062025534,0.362930536,0.501370311,0.408458948,0.147414491,0.713860214,0.491582662,0.471949816,0.564882338,0.54693538,0.575248778,0.00956009049,0.457146853,0.541091084,0.504745483,0.227242991,0.518142402,0.529414892,0.526670396,0.550797462,0.550444603,0.505735874,0.475404292,0.44947058,0.464027256,0.503505647,0.435708702,0.627636671,0.486206532,0.498506486,0.426060975,0.444132805,0.485526323,0.465784669,0.412611902,0.557213187,0.523264349,0.472801089,0.455037951,0.471995831,0.52654773,0.451878458,0.692527592,0.52145642,0.530064642,0.0165813752,0.0711103231,0.476886809,0.590793848,0.022503987,0.628925264,0.509423852,0.543071747,0.54414767,0.454328328,0.526523471,0.477205664,0.466658384,0.554127753,0.442844629,0.544872046,0.47179389,0.45379132,0.442066461,0.49891904,0.53313905,0.459891438,0.404484004,0.473397881,0.391275048,0.530388772,0.441354245,0.466112375,0.595809698,0.510351956,0.452843487,0.518793166,0.483530909,0.536047518,0.475755394,0.442356825,0.555562317,0.712829709,0.495086521,0.613016486,0.537524641,5.84725167e-05,0.472635061,0.411793172,0.534133613,0.394677103,0.514691532,0.55495733,0.645028532,0.538204372,0.523216426,0.495211869,0.514842451,0.518921852,0.436915249,0.452231884,0.410121679,0.46732533,0.524450421,0.440020591,0.511771739,0.0885203853,0.486844808,0.450707376,0.345354974,0.577524185,0.50341922,0.513967335,0.437946022,0.559522986,0.486913383,0.621161222,0.642096937,0.0987500101,0.700247467,0.567171812,0.561574519,0.535652697,0.57494539,0.497935861,0.538906872,0.571131229,0.111305177,0.534117937,0.478104025,0.477277279,0.511800945,0.481597841,0.541325152,0.479762763,0.0161882471,0.47291103,0.475502342,0.53442204,0.401742905,0.470407546,0.542062879,0.483159423,0.538849115,0.449636787,0.470676899,0.563402057,0.545296371,0.458244085,0.528395891,0.443274915,0.375992328,0.485494286,0.461183935,0.515924573,0.192747518,0.535323858,0.515004456,0.486134559,0.338373184,0.630791545,0.540918112,0.402617544,0.534214437,0.45192197,0.538651943,0.506761014,0.487954915,0.457017452,0.470418066,0.508918524,0.4438712,0.564960599,0.57853204,0.546055555,0.480815023,0.636429489,0.22320509,0.713183463,0.520064533,0.542593837,0.611056745,0.46626395,0.488364875,0.462582499,0.537850022,0.52192682,0.516172767,0.535605788,0.494694769,0.561192513,0.197533518,0.485602379,0.460962832,0.437432408,0.495766491,0.508800983,0.49906987,0.497530609,0.708871484,0.536672652,0.252067387,0.520510793,0.459162503,0.612969398,0.488104373,0.525478244,0.344568789,0.68385905,0.347654104,0.435574502,0.51159656,0.460031658,0.548585594,0.530501664,0.564980507,0.548580825,0.446977347,0.557527065,0.701823652,0.493445009,0.495982558,0.480945766,0.425196618,0.463236779,0.490372241,0.503630519,0.584938109,0.000464382698,0.498961538,0.487202048,0.546594024,0.539205968,0.461378723,0.578984141,0.469530344,0.479974717,0.476636678,0.454703182,0.711271524,0.420117378,0.464457929,0.499485314,0.599205375,0.712318897,0.45166406,9.13719705e-05,0.488819778,0.551518023,0.530277908,0.410368592,0.509734452,0.416499615,0.526742399,0.654734373,0.454265982,0.0598701574,0.496834099,0.580836117,0.667768598,0.508424997,0.459153146,0.000802677998,0.488808006,0.462744743,0.402739584,0.530101538,0.590925694,0.545559287,0.460118532,0.5058586,0.569547355,0.556208789,0.584560633,0.0648973882,0.200089395,0.34530437,0.443966448,0.50836575,0.573015451,0.52758348,0.431542873,0.439978272,0.468150049,0.486769348,0.521778703,0.570027649,0.54320097,0.469439209,0.510248303,0.44072789,0.0665924326,0.432758838,0.461812168,0.457468659,0.517919183,0.69092983,0.483889431,0.456064224,0.524756193,0.551604867,0.473476171,0.474917799,0.00354314968,0.495071441,0.35215205,0.527953684,0.467963398,0.395134151,0.457807839,0.511895359,0.537809372,0.533066034,0.463796318,0.522864163,0.525424778,0.413559198,0.465196133,0.452723682,0.575517893,0.472300678,0.444678098,0.468264639,0.40437746,0.520448685,0.601246834,0.534124553,0.537936568,0.482512593,0.490122497,0.447032809,0.474541157,0.504455388,0.525418282,0.452214658,0.627805054],"C":[7.82636926e-05,0.62474221,0.54169929,0.56930244,0.533336282,0.633337975,0.464792132,0.494026393,0.489780694,0.471327245,0.426508099,0.438798904,0.538197875,0.344504476,0.523940623,0.504809618,0.547329724,0.0769812018,0.42689541,0.636241972,0.560350597,0.4551377,0.452507466,0.473339558,0.477747202,0.477602929,0.770072281,0.454853177,0.568450332,0.543916523,0.465806663,0.494044811,0.382252514,0.468735427,0.488072336,0.410298347,0.501429796,0.53976357,0.489431947,0.575429559,0.48583293,0.524246275,0.514914751,0.539056838,0.468692064,0.678369999,0.491427988,0.485293061,0.407104701,0.427221835,0.46168676,0.436227858,0.574874282,0.422546148,0.587187767,0.332975924,0.466831923,0.52788645,0.469769537,0.58584398,0.508897066,0.548187792,0.447544366,0.475470573,0.527660072,0.537285388,0.38141486,0.766905189,0.509194434,0.68544966,0.56323868,0.423892379,0.44045648,0.475518256,0.505279005,0.543527782,0.525445282,0.493119925,0.500859737,0.463726997,0.528242648,0.677249849,0.158652201,0.462293893,0.469764769,0.472071171,0.486710131,0.536226988,0.494504482,0.464274377,0.609319925,0.587319672,0.541715801,0.468668282,0.446436048,0.476275504,0.577087045,0.463827759,0.389669418,0.571028113,0.55784905,0.512169302,0.538214087,0.328218281,0.412326962,0.548473537,0.522417247,0.329565376,0.545671582,0.561827362,0.469617456,0.499370098,0.446995854,0.469206929,0.449159622,0.462663054,0.366954058,0.601943851,0.455793381,0.63475734,0.767601669,0.420127124,0.029996004,0.574585259,0.26841712,0.474774987,0.498019636,0.555789471,0.337140918,0.490077436,0.468754947,0.464773953,0.442175895,0.471433103,0.419255912,0.418033034,0.563578546,0.468547821,0.463339269,0.473256737,0.448282987,0.469819486,0.443194807,0.462623715,0.528531373,0.569151044,0.524907589,0.491599441,0.438539147,0.485410362,0.546692312,0.518104136,0.671992064,0.485825598,0.473394394,0.469815075,0.666499019,0.470757782,0.456875026,0.527558982,0.47795403,0.440992087,0.420386106,0.520528615,0.283298284,0.531477749,0.47931686,0.522895455,0.511831999,0.574555516,0.627915561,0.477321744,0.77056694,0.352415711,0.667202413,0.575427771,0.430843353,0.591214657,0.535315931,0.563254297,0.528130352,0.545481801,0.5304721,0.467518091,0.467730343,0.617240369,0.486920238,0.471303016,0.456255019,0.493916482,0.479166567,0.537661791,0.503465414,0.462327182,0.541282594,0.558249295,0.476055235,0.502429962,0.435011059,0.500582278,0.465599895,0.540211976,0.524730027,0.466971934,0.524867594,0.556783974,0.558084548,0.459339261,0.778021812,0.575215042,0.550842464,0.535086036,0.438540846,0.540311933,0.476627111,0.457933247,0.506966054,0.505984426,0.457094163,0.190861449,0.474497497,0.460914433,0.551692069,0.623473823,0.456013858,0.489626884,0.537434101,0.466248095,0.483801395,0.501055479,0.463274419,0.466179103,0.535773575,0.551119387,0.529201806,0.505941331,0.618762374,0.487024963,0.50810945,0.457691222,0.516273916,0.436906695,0.515952826,0.53925091,0.576350629,0.59323287,0.491178632,0.413300931,0.48042357,0.501342237,0.00595042482,0.00878999941,0.487525225,0.543197095,0.474083096,0.558837414,0.463355601,0.477981418,0.539900303,0.502573073,0.482636064,0.533443928,0.775321186,0.731829166,0.477299184,0.472310185,0.609093547,0.607172012,0.728407621,0.419334561,0.471264154,0.511284053,0.421870947,0.389276445,0.49320361,0.507520318,0.521336079,0.531238973,0.519190609,0.488755584,0.429330379,0.113157682,0.409934759,0.528199255,0.515581846,0.462924808,0.57816422,0.48003006,0.509571254,0.324744701,0.531582534,0.380883813,0.518943131,0.402288079,0.606706679,0.779470086,0.63470459,0.521463454,0.529061913,0.461252719,0.530830741,0.53730756,0.545675874,0.509282887,0.550437629,0.482030958,0.636743307,0.477930278,0.545436978,0.730803728,0.490388095,0.470303804,0.449866772,0.4579072,0.406324685,0.535977602,0.512666881,0.355270028,0.45707044,0.500227392,0.491639197,0.442850947,0.464844882,0.505362034,0.589066625,0.493307471,0.555401325,0.457110256,0.440669656,0.44370392,0.393698633,0.539932191,0.43711549,0.495396167,0.443621457,0.418094873,0.460703403,0.713223219,0.544207215,0.424058527,0.546467841,0.519690216,0.463184118,0.543310881,0.496308714,0.531054974,0.565165102,0.519396901,0.452324629,0.566025734,0.443671227,0.480505496,0.516592979,0.545824528,0.528355539,0.441636384,0.546895683,0.47200197,0.550651729,0.446914434,0.535704613,0.149487257,0.417330623,0.542712092,0.516279161,0.512869596,0.38211748,0.494630188,0.488856137,0.464650273,0.511591852,0.564949751,0.463727236,0.220707431,0.360797822,0.50185436,0.493121356,0.427419156,0.507233918,0.530091405,0.484901577,0.526468754,0.462789953,0.540677309,0.322167665,0.042539198,0.549633324,0.722398102,0.34774822,0.521032095,0.536092937,0.48364681,0.427232146,0.0634166449,0.483860463,0.439817727,0.636299491,0.535176635,0.421504647,0.620291233,0.419338256,0.45442006,0.462333828,0.479038596,0.559069633,0.470299155,0.469498664,0.524217963,0.453885436,0.560203612,0.0934734568,0.777602553,0.440238208,0.512410879,0.637832046,0.540187061,0.664180517,0.363730192,0.524690866,0.601582766,0.497900397,0.436032385,0.568551779,0.438880354,0.491643608,0.442391902,0.526222706,0.527010262,0.526128948,0.545727432,0.472885072,0.404384255,0.559468985,0.526337743,0.546797156,0.0165741611,0.53302145,0.293017358,0.468964994,0.496678978,0.552754641,0.465063155,0.489432663,0.554863274,0.354471147,0.698563933,0.469988346,0.380896986,0.544347525,0.522824585,0.551896751,0.672773063,0.455705374,0.466645241,0.580792606,0.486100227,0.467622072,0.392930984,0.443684846,0.500602782,0.49377656,0.529396296,0.510268688,0.509745359,0.519394994,0.542010784,0.380768985,0.520695806,0.735546052,0.578026474,0.749703288,0.508071959,0.0607934967,0.323149621,0.493140429,0.437593788,0.735592484,0.457212508,0.49051109,0.504697084,0.69038868,0.470026046,0.295789391,0.724722803,0.539416373,0.460657686,0.46829474,0.455982268,0.587672412,0.459763199,0.563629627,0.508888304,0.546212196,0.468987495,0.538424611,0.362109631,0.623940289,0.639491439,0.470121324,0.461149991,0.498741865,0.528471112,0.640305161,0.606097341,0.458944976,0.335085839,0.464082241,0.367017478,0.47036764,0.486508727,0.680516243,0.495396078,0.44900471,0.460284054,0.477042437,0.179399297,0.449664503,0.507305801,0.554693043,0.526035547,0.448557258,0.438924819,0.475056261,0.624747276,0.457411289,0.476466089,0.513901353,0.407768726,0.486103356,0.460233837,0.540649593,0.321959168,0.518277287,0.515665114,0.532648444,0.416447669,0.662050962,0.688822329,0.472202957,0.364932865,0.441710532,0.775607646,0.463644952,0.554033875,0.505054832,0.414283335,0.455831081,0.550604403,0.500891626,0.530138016,0.500794709,0.545419097,0.419806242,0.474661887,0.545644462,0.58680588,0.558262825,0.562253535,0.515220344,0.550839841,0.73833853,0.527607679,0.468932003,0.560494006,0.775958896,0.623065591,0.519131958,0.482435435,0.543294609,0.47069639,0.518611133,0.462676704,0.380735934,0.42977351,0.728123724,0.56778717,0.611371458,0.463158399,0.513472795,0.0322877988,0.381382048,0.513108492,0.492073685,0.370361,0.531815231,0.60144788,0.465430349,0.523874164,0.322193742,0.547456682,0.612435937,0.508377671,0.580282331,0.503198802,0.511773705,0.521977901,0.540939271,0.406829774,0.519703627,0.492699236,0.448701888,0.411206216,0.415756226,0.459884673,0.595558524,0.438846081,0.483046085,0.637478828,0.533249497,0.761724889,0.545362175,0.50671947,0.542365491,0.383615106,0.46263966,0.461614966,0.494696796,0.612950325,0.427064776,0.496413052,0.490715355,0.476872563,0.472563595,0.341271102,0.452367723,0.315606594,0.538335681,0.44620949,0.483091235,0.406508684,0.616051197,0.555779099,0.445185274,0.533032477,0.523537934,0.523667276,0.51891917,0.466222763,0.547793388,0.460350305,0.478094697,0.549077928,0.510614336,0.466862738,0.479887873,0.473022461,0.551534295,0.5529598,0.370575845,0.528778851,0.470766395,0.398458809,0.40787223,0.470046908,0.763743699,0.778034568,0.439344019,0.223911136,0.461201161,0.529318273,0.444641709,0.53368187,0.478082508,0.542887211,0.227843523,0.411339402,0.547413051,0.492206126,0.632006407,0.535999179,0.533514857,0.639476776,0.447217107,0.472683161,0.330317616,0.263084203,0.483137161,0.492606103,0.455657303,0.707766891,0.449184537,0.517820597,0.478532583,0.446333736,0.537550986,0.537858546,0.524372935,0.515648484,0.525287151,0.438829988,0.508300781,0.356812894,0.470452011,0.555386901,0.410630673,0.521546662,0.543201804,0.533254206,0.778867424,0.490529746,0.546627939,0.539121747,0.545912921,0.548120558,0.452928931,0.446335584,0.434158713,0.559604228,0.531464458,0.315781951,0.507199645,0.443601608,0.460429162,0.349290341,0.504708111,0.771637857,0.429026932,0.462899268,0.472537309,0.544817328,0.474727452,0.475750744,0.469747633,0.46826461,0.480429351,0.535911202,0.562882364,0.469757229,0.433695734,0.469853669,0.544041395,0.436695576,0.545326829,0.468497604,0.533527851,0.512599587,0.501584888,0.593981266,0.57621479,0.475232184,0.536044657,0.530415654,0.470306724,0.469758093,0.482184768,0.625351489,0.506302238,0.535042405,0.444605887,0.468723357,0.048156023,0.479807168,0.426026642,0.514444828,0.457254618,0.469982684,0.530351102,0.695402086,0.566122413,0.538907945,0.427283168,0.770294011,0.463017225,0.779890597,0.446010321,0.479371399,0.601697981,0.534163058,0.427809685,0.404685646,0.543086708,0.5539397,0.456771821,0.51297164,0.746061623,0.467511326,0.465938777,0.518279254,0.562793314,0.537315309,0.352386951,0.368174195,0.561616719,0.45222652,0.510350525,0.443552852,0.494880199,0.502625883,0.577118695,0.470433205,0.574437201,0.582297325,0.480937392,0.527890623,0.526115119,0.533288777,0.462988973,0.322625309,0.551778257,0.313284993,0.528918564,0.444208264,0.486591309,0.441477001,0.478451014,0.465774804,0.420051754,0.505259097,0.466417104,0.516943455,0.541397214,0.530987859,0.507844269,0.522352159,0.425078541,0.390812725,0.459700823,0.478708684,0.532514274,0.679603457,0.472411513,0.53295356,0.587346733,0.764388204,0.359110117,0.564408898,0.777915716,0.532475173,0.470202863,0.493787766,0.535608351,0.460421979,0.525746167,0.519631803,0.535120726,0.466427356,0.752325416,0.469572663,0.430835307,0.457873762,0.703915954,0.704774857,0.510106683,0.43648392,0.48574093,0.572767317,0.425997853,0.469529063,0.46591273,0.472607285,0.472683489,0.586203456,0.510225236,0.460279912,0.458096206,0.683880985,0.56216532,0.44708842,0.532656491,0.563539028,0.457943827,0.465891272,0.605713785,0.48151505,0.763746798,0.724558711,0.474492669,0.566353083,0.56935662,0.53083235,0.528447092,0.469098955,0.643106461,0.45165363,0.431978583,0.554050207,0.439811021,0.475668669,0.433148623,0.556840897,0.432504356,0.50085777,0.453354597,0.456590027,0.547034502,0.468276113,0.541421533,0.52528435,0.507285774,0.462373763,0.46004656,0.501082897,0.0960768685,0.433694482,0.548129201,0.515890241,0.529973447,0.490244418,0.470689297,0.583472908,0.420860231,0.407889664,0.507343233,0.494271189,0.573898733,0.531852901,0.537251592,0.51838845,0.501747847,0.52135551,0.0558818355,0.532708526,0.434618771,0.446351707,0.478187442,0.380471706,0.570087135,0.527250946,0.684754074,0.520576715,0.480260491,0.569381177,0.475840628,0.394842833,0.541257858,0.524807751,0.11530102,0.461553454,0.457212359,0.551149487,0.57036531,0.460709095,0.458192289,0.480811715,0.462656617,0.617082596,0.539003968,0.509971678,0.492742091,0.686113715,0.512649357,0.504406452,0.53735292,0.518288732,0.473990232,0.583875239,0.338408113,0.582994699,0.468598336,0.450594544,0.550158262,0.553420961,0.459556341,0.532106102,0.5512712,0.496786922,0.475666881,0.462668717,0.499554127,0.467820317,0.629411459,0.776555121,0.51892364,0.529083431,0.518282056,0.459604234,0.52052933,0.1891004,0.534188986,0.436008602,0.517333686,0.448285818,0.456007212,0.486768723,0.447431326,0.495963722,0.518993855,0.46813339,0.537092805,0.542465091,0.528176904,0.54824996,0.507836401,0.437233746,0.476046622,0.454061955,0.513970435,0.436871827,0.473536402,0.731914639,0.568413079,0.503016233,0.528066814,0.4050951,0.470817268,0.553637505,0.461350054,0.477074295,0.495340228,0.523796558]} diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.assign.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.assign.js new file mode 100644 index 000000000000..9b03784f744e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.assign.js @@ -0,0 +1,300 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var randu = require( '@stdlib/random/base/randu' ); +var Float32Array = require( '@stdlib/array/float32' ); +var fresnelf = require( './../lib/assign.js' ); + + +// FIXTURES // + +var smallPositive = require( './fixtures/c/small.json' ); +var mediumPositive = require( './fixtures/c/medium.json' ); +var largePositive = require( './fixtures/c/large.json' ); +var hugePositive = require( './fixtures/c/huge.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof fresnelf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes Fresnel integrals (small positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var z; + var i; + + z = [ 0.0, 0.0 ]; + x = smallPositive.x; + S = smallPositive.S; + C = smallPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i], z, 1, 0 ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + t.strictEqual( y, z, 'returns expected value' ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (medium positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var z; + var i; + + z = [ 0.0, 0.0 ]; + x = mediumPositive.x; + S = mediumPositive.S; + C = mediumPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i], z, 1, 0 ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + t.strictEqual( y, z, 'returns expected value' ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 100.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 100.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (large positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var z; + var i; + + z = [ 0.0, 0.0 ]; + x = largePositive.x; + S = largePositive.S; + C = largePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i], z, 1, 0 ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + t.strictEqual( y, z, 'returns expected value' ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 100.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 100.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (very large positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var z; + var i; + + z = [ 0.0, 0.0 ]; + x = hugePositive.x; + S = hugePositive.S; + C = hugePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i], z, 1, 0 ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + t.strictEqual( y, z, 'returns expected value' ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function is an odd function of x', function test( t ) { + var yn; + var yp; + var x; + var z; + var i; + + for ( i = 0; i < 500; i++ ) { + x = float64ToFloat32( randu() * 36.0 ); + z = [ 0.0, 0.0 ]; + yn = fresnelf( -x, z, 1, 0 ); + t.strictEqual( yn, z, 'returns expected value' ); + + z = [ 0.0, 0.0 ]; + yp = fresnelf( x, z, 1, 0 ); + t.strictEqual( yp, z, 'returns expected value' ); + + t.strictEqual( yp[0], -yn[0], 'S(x) = -S(-x)' ); + t.strictEqual( yp[1], -yn[1], 'C(x) = -C(-x)' ); + } + t.end(); +}); + +tape( 'the function returns `[0.5, 0.5]` if provided `+infinity`', function test( t ) { + var v; + var z; + + z = [ 0.0, 0.0 ]; + v = fresnelf( PINF, z, 1, 0 ); + t.strictEqual( v, z, 'returns expected value' ); + t.strictEqual( v[0], 0.5, 'returns 0.5' ); + t.strictEqual( v[1], 0.5, 'returns 0.5' ); + t.end(); +}); + +tape( 'the function returns `[-0.5, -0.5]` if provided `-infinity`', function test( t ) { + var v; + var z; + + z = [ 0.0, 0.0 ]; + v = fresnelf( NINF, z, 1, 0 ); + t.strictEqual( v, z, 'returns expected value' ); + t.strictEqual( v[0], -0.5, 'returns -0.5' ); + t.strictEqual( v[1], -0.5, 'returns -0.5' ); + t.end(); +}); + +tape( 'the function returns `[NaN, NaN]` if provided a `NaN`', function test( t ) { + var v; + var z; + + z = [ 0.0, 0.0 ]; + v = fresnelf( NaN, z, 1, 0 ); + t.strictEqual( v, z, 'returns expected value' ); + t.strictEqual( isnanf( v[0] ), true, 'returns expected value' ); + t.strictEqual( isnanf( v[1] ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports specifying a stride', function test( t ) { + var out; + var val; + + out = new Float32Array( 4 ); + val = fresnelf( NINF, out, 2, 0 ); + + t.strictEqual( val, out, 'returns output array' ); + t.strictEqual( val[0], -0.5, 'returns expected value' ); + t.strictEqual( val[1], 0, 'returns expected value' ); + t.strictEqual( val[2], -0.5, 'returns expected value' ); + t.strictEqual( val[3], 0, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function supports specifying an offset', function test( t ) { + var out; + var val; + + out = new Float32Array( 4 ); + val = fresnelf( NINF, out, 2, 1 ); + + t.strictEqual( val, out, 'returns output array' ); + t.strictEqual( val[0], 0, 'returns expected value' ); + t.strictEqual( val[1], -0.5, 'returns expected value' ); + t.strictEqual( val[2], 0, 'returns expected value' ); + t.strictEqual( val[3], -0.5, 'returns expected value' ); + + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.js new file mode 100644 index 000000000000..c760a95d685e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.js @@ -0,0 +1,40 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var hasOwnProp = require( '@stdlib/assert/has-own-property' ); +var fresnelf = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof fresnelf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is an `assign` method', function test( t ) { + t.strictEqual( hasOwnProp( fresnelf, 'assign' ), true, 'has property' ); + t.strictEqual( typeof fresnelf.assign, 'function', 'has method' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js new file mode 100644 index 000000000000..28eebf8ab23b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js @@ -0,0 +1,242 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var randu = require( '@stdlib/random/base/randu' ); +var fresnelf = require( './../lib/main.js' ); + + +// FIXTURES // + +var smallPositive = require( './fixtures/c/small.json' ); +var mediumPositive = require( './fixtures/c/medium.json' ); +var largePositive = require( './fixtures/c/large.json' ); +var hugePositive = require( './fixtures/c/huge.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof fresnelf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes Fresnel integrals (small positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = smallPositive.x; + S = smallPositive.S; + C = smallPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + expectedC + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (medium positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = mediumPositive.x; + S = mediumPositive.S; + C = mediumPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 100.0 * EPS * absf( expectedS ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 100.0 * EPS * absf( expectedC ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (large positive values)', function test( t ) { + var expectedC; + var expectedS; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = largePositive.x; + S = largePositive.S; + C = largePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 100.0 * EPS * absf( expectedS ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 100.0 * EPS * absf( expectedC ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (very large positive values)', function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = hugePositive.x; + S = hugePositive.S; + C = hugePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function is an odd function of x', function test( t ) { + var yn; + var yp; + var x; + var i; + + for ( i = 0; i < 500; i++ ) { + x = float64ToFloat32( randu() * 36.0 ); + yn = fresnelf( -x ); + yp = fresnelf( x ); + + t.strictEqual( yp[0], -yn[0], 'S(x) = -S(-x)' ); + t.strictEqual( yp[1], -yn[1], 'C(x) = -C(-x)' ); + } + t.end(); +}); + +tape( 'the function returns `[0.5, 0.5]` if provided `+infinity`', function test( t ) { + var v = fresnelf( PINF ); + t.strictEqual( v[0], 0.5, 'returns 0.5' ); + t.strictEqual( v[1], 0.5, 'returns 0.5' ); + t.end(); +}); + +tape( 'the function returns `[-0.5, -0.5]` if provided `-infinity`', function test( t ) { + var v = fresnelf( NINF ); + t.strictEqual( v[0], -0.5, 'returns -0.5' ); + t.strictEqual( v[1], -0.5, 'returns -0.5' ); + t.end(); +}); + +tape( 'the function returns `[NaN, NaN]` if provided a `NaN`', function test( t ) { + var v = fresnelf( NaN ); + t.strictEqual( isnanf( v[0] ), true, 'returns expected value' ); + t.strictEqual( isnanf( v[1] ), true, 'returns expected value' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js new file mode 100644 index 000000000000..1b2a6085054b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js @@ -0,0 +1,243 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var randu = require( '@stdlib/random/base/randu' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var fresnelf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( fresnelf instanceof Error ) +}; + + +// FIXTURES // + +var smallPositive = require( './fixtures/c/small.json' ); +var mediumPositive = require( './fixtures/c/medium.json' ); +var largePositive = require( './fixtures/c/large.json' ); +var hugePositive = require( './fixtures/c/huge.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof fresnelf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes Fresnel integrals (small positive values)', opts, function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = smallPositive.x; + S = smallPositive.S; + C = smallPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (medium positive values)', opts, function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = mediumPositive.x; + S = mediumPositive.S; + C = mediumPositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (large positive values)', opts, function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = largePositive.x; + S = largePositive.S; + C = largePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 10.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 10.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function computes Fresnel integrals (very large positive values)', opts, function test( t ) { + var expectedS; + var expectedC; + var delta; + var tol; + var C; + var S; + var x; + var y; + var i; + + x = hugePositive.x; + S = hugePositive.S; + C = hugePositive.C; + + for ( i = 0; i < x.length; i++ ) { + y = fresnelf( x[i] ); + expectedS = float64ToFloat32( S[i] ); + expectedC = float64ToFloat32( C[i] ); + if ( y[0] === expectedS ) { + t.strictEqual( y[0], expectedS, 'x: ' + x[i] + '. Expected: ' + expectedS ); + } else { + delta = absf( y[0] - expectedS ); + tol = 100.0 * EPS * absf( expectedS ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. S: ' + y[0] + '. Expected: ' + S[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + if ( y[1] === expectedC ) { + t.strictEqual( y[1], expectedC, 'x: ' + x[i] + '. Expected: ' + expectedC ); + } else { + delta = absf( y[1] - expectedC ); + tol = 100.0 * EPS * absf( expectedC ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[i] + '. C: ' + y[1] + '. Expected: ' + C[i] + '. tol: ' + tol + '. delta: ' + delta + '.' ); + } + } + t.end(); +}); + +tape( 'the function is an odd function of x', opts, function test( t ) { + var yn; + var yp; + var x; + var i; + + for ( i = 0; i < 500; i++ ) { + x = float64ToFloat32( randu() * 36.0 ); + yn = fresnelf( -x ); + yp = fresnelf( x ); + + t.strictEqual( yp[0], -yn[0], 'S(x) = -S(-x)' ); + t.strictEqual( yp[1], -yn[1], 'C(x) = -C(-x)' ); + } + t.end(); +}); + +tape( 'the function returns `[0.5, 0.5]` if provided `+infinity`', opts, function test( t ) { + var v = fresnelf( PINF ); + t.strictEqual( v[0], 0.5, 'returns 0.5' ); + t.strictEqual( v[1], 0.5, 'returns 0.5' ); + t.end(); +}); + +tape( 'the function returns `[-0.5, -0.5]` if provided `-infinity`', opts, function test( t ) { + var v = fresnelf( NINF ); + t.strictEqual( v[0], -0.5, 'returns -0.5' ); + t.strictEqual( v[1], -0.5, 'returns -0.5' ); + t.end(); +}); + +tape( 'the function returns `[NaN, NaN]` if provided a `NaN`', opts, function test( t ) { + var v = fresnelf( NaN ); + t.strictEqual( isnanf( v[0] ), true, 'returns expected value' ); + t.strictEqual( isnanf( v[1] ), true, 'returns expected value' ); + t.end(); +}); From e10aa8aec4aa5a8769b5306e24ce19a0c5f5449f Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Mon, 9 Mar 2026 21:05:08 +0000 Subject: [PATCH 2/3] chore: update copyright years --- .../@stdlib/math/base/special/fresnelf/test/test.main.js | 2 +- .../@stdlib/math/base/special/fresnelf/test/test.native.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js index 28eebf8ab23b..ae43b177d091 100644 --- a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.main.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2025 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/fresnelf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js index 1b2a6085054b..5a1f652c3b45 100644 --- a/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/test/test.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2025 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 9ad95a5845afe03c862c8f6bc1996a2ea4ca7ccc Mon Sep 17 00:00:00 2001 From: officiallyanee Date: Tue, 10 Mar 2026 02:45:45 +0530 Subject: [PATCH 3/3] chore: update Makefile & manifest.json --- 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: 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: skipped - task: lint_license_headers status: passed --- --- .../base/special/fresnelf/examples/c/Makefile | 97 ++++++++++++------- .../math/base/special/fresnelf/manifest.json | 2 - 2 files changed, 60 insertions(+), 39 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile index b7add0f6664e..c8f8e9a1517b 100644 --- a/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/examples/c/Makefile @@ -16,20 +16,15 @@ # limitations under the License. #/ - # VARIABLES # ifndef VERBOSE QUIET := @ +else + QUIET := endif -# Specify the path to Cephes: -CEPHES ?= - -# Specify a list of Cephes source files: -CEPHES_SRC ?= - -# Determine the OS: +# Determine the OS ([1][1], [2][2]). # # [1]: https://en.wikipedia.org/wiki/Uname#Examples # [2]: http://stackoverflow.com/a/27776822/2225624 @@ -42,6 +37,10 @@ ifneq (, $(findstring MSYS,$(OS))) else ifneq (, $(findstring CYGWIN,$(OS))) OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif endif endif endif @@ -60,7 +59,7 @@ CFLAGS ?= \ -Wall \ -pedantic -# Determine whether to generate [position independent code][1]: +# 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 @@ -70,54 +69,78 @@ 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 := runner.out +c_targets := example.out -# TARGETS # +# RULES # -# Default target. +#/ +# Compiles source files. # -# This target is the default target. - +# @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 - -# Compile C source. +#/ +# Compiles C source files. # -# This target 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) -o $@ $(CEPHES_SRC) $< -lm - + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) -# Generate test fixtures. +#/ +# Runs compiled examples. # -# This target generates test fixtures. - +# @example +# make run +#/ run: $(c_targets) $(QUIET) ./$< .PHONY: run - -# Perform clean-up. +#/ +# Removes generated files. # -# This target removes generated files. - +# @example +# make clean +#/ clean: $(QUIET) -rm -f *.o *.out .PHONY: clean - - -# Remove fixtures. -# -# This target removes fixture data. - -clean-fixtures: - $(QUIET) -rm -f *.json - -.PHONY: clean-fixtures diff --git a/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json b/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json index 3f732b5fa78c..a2e8a6fd6e82 100644 --- a/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/fresnelf/manifest.json @@ -60,7 +60,6 @@ "dependencies": [ "@stdlib/math/base/special/absf", "@stdlib/math/base/special/sincosf", - "@stdlib/math/base/assert/is-nanf", "@stdlib/constants/float32/pi", "@stdlib/constants/float32/half-pi" ] @@ -78,7 +77,6 @@ "dependencies": [ "@stdlib/math/base/special/absf", "@stdlib/math/base/special/sincosf", - "@stdlib/math/base/assert/is-nanf", "@stdlib/constants/float32/pi", "@stdlib/constants/float32/half-pi" ]