From 538eb617852e729e4e5e76d5619b042fa875dc48 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 9 Mar 2025 18:03:32 -0700 Subject: [PATCH 1/4] feat: add JS implementation --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../base/special/kernel-sincos/lib/index.js | 49 ++++++ .../base/special/kernel-sincos/lib/main.js | 104 ++++++++++++ .../special/kernel-sincos/lib/polyval_c13.js | 47 ++++++ .../special/kernel-sincos/lib/polyval_c46.js | 47 ++++++ .../special/kernel-sincos/lib/polyval_s24.js | 47 ++++++ .../special/kernel-sincos/lib/polyval_s56.js | 47 ++++++ .../special/kernel-sincos/scripts/evalpoly.js | 157 ++++++++++++++++++ 7 files changed, 498 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c13.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c46.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s24.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s56.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/scripts/evalpoly.js diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/index.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/index.js new file mode 100644 index 000000000000..4848eda0228f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/index.js @@ -0,0 +1,49 @@ +/** +* @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'; + +/** +* Simultaneously compute the sin and cosine of an angle measured in radians on the interval `[-π/4, π/4]`. +* +* @module @stdlib/math/base/special/kernel-sincos +* +* @example +* var kernelSincos = require( '@stdlib/math/base/special/kernel-sincos' ); +* +* var v = kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~0.0, ~1.0 ] +* +* var v = kernelSincos( 3.141592653589793/2.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~1.0, ~0.0 ] +* +* var v = kernelSincos( -3.141592653589793/6.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~-0.5, ~0.866 ] +* +* var v = kernelSincos( NaN, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ NaN, NaN ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/main.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/main.js new file mode 100644 index 000000000000..d3b071215903 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/main.js @@ -0,0 +1,104 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The following copyright and license were part of the original implementation available as part of FreeBSD [k_sin.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_sin.c} and [k_cos.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_cos.c}. The implementation follows the original sine and cosine kernels, but has been modified for JavaScript and combined into a single function. +* +* ```text +* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +* +* Developed at SunPro, a Sun Microsystems, Inc. business. +* Permission to use, copy, modify, and distribute this +* software is freely granted, provided that this notice +* is preserved. +* ``` +*/ + +'use strict'; + +// MODULES // + +var polyvalC13 = require( './polyval_c13.js' ); +var polyvalC46 = require( './polyval_c46.js' ); +var polyvalS24 = require( './polyval_s24.js' ); +var polyvalS56 = require( './polyval_s56.js' ); + + +// VARIABLES // + +var S1 = -1.66666666666666324348e-01; // 0xBFC55555, 0x55555549 + + +// MAIN // + +/** +* Simultaneously computes the sine and cosine of an angle measured in radians on the interval \\( \approx \[-\pi/4, \pi/4\] \\) (except for \\(-0\\)), where \\( \pi/4 \approx 0.7854 \\). +* +* @param {number} x - input value (in radians, assumed to be bounded by `~π/4` in magnitude) +* @param {number} y - tail of `x` +* @param {Array} out - output array +* @param {integer} stride - output array stride +* @param {NonNegativeInteger} offset - output array index offset +* @returns {Array} sine and cosine +* +* @example +* var v = kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~0.0, ~1.0 ] +* +* @example +* var v = kernelSincos( 3.141592653589793/2.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~1.0, ~0.0 ] +* +* @example +* var v = kernelSincos( -3.141592653589793/6.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~-0.5, ~0.866 ] +* +* @example +* var v = kernelSincos( NaN, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ NaN, NaN ] +*/ +function kernelSincos( x, y, out, stride, offset ) { + var hz; + var r; + var v; + var w; + var z; + + z = x * x; + w = z * z; + r = polyvalS24( z ) + (z * w * polyvalS56( z )); + v = z * x; + if ( y === 0.0 ) { + out[ offset ] = x + (v * (S1 + (z*r))); + } else { + out[ offset ] = x - (((z*((0.5*y) - (v*r))) - y) - (v*S1)); + } + r = z * polyvalC13( z ); + r += w * w * polyvalC46( z ); + hz = 0.5 * z; + w = 1.0 - hz; + out[ offset + stride ] = w + ( ((1.0-w) - hz) + ((z*r) - (x*y)) ); + + return out; +} + + +// EXPORTS // + +module.exports = kernelSincos; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c13.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c13.js new file mode 100644 index 000000000000..bf804f9c9eb1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c13.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return 0.0416666666666666; + } + return 0.0416666666666666 + (x * (-0.001388888888887411 + (x * 0.00002480158728947673))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c46.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c46.js new file mode 100644 index 000000000000..af505e003353 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_c46.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return -2.7557314351390663e-7; + } + return -2.7557314351390663e-7 + (x * (2.087572321298175e-9 + (x * -1.1359647557788195e-11))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s24.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s24.js new file mode 100644 index 000000000000..3cb3053869b6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s24.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return 0.00833333333332249; + } + return 0.00833333333332249 + (x * (-0.0001984126982985795 + (x * 0.0000027557313707070068))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s56.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s56.js new file mode 100644 index 000000000000..3c5d7d0b1f73 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/polyval_s56.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return -2.5050760253406863e-8; + } + return -2.5050760253406863e-8 + (x * 1.58969099521155e-10); +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/scripts/evalpoly.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/scripts/evalpoly.js new file mode 100644 index 000000000000..9735866145f0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/scripts/evalpoly.js @@ -0,0 +1,157 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* +* This script compiles modules for evaluating polynomial functions. If any polynomial coefficients change, this script should be rerun to update the compiled files. +*/ +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var readFileSync = require( '@stdlib/fs/read-file' ).sync; +var writeFileSync = require( '@stdlib/fs/write-file' ).sync; +var currentYear = require( '@stdlib/time/current-year' ); +var substringBefore = require( '@stdlib/string/substring-before' ); +var substringAfter = require( '@stdlib/string/substring-after' ); +var format = require( '@stdlib/string/format' ); +var licenseHeader = require( '@stdlib/_tools/licenses/header' ); +var compile = require( '@stdlib/math/base/tools/evalpoly-compile' ); +var compileC = require( '@stdlib/math/base/tools/evalpoly-compile-c' ); + + +// VARIABLES // + +// Polynomial coefficients ordered in ascending degree... +var S24 = [ + 8.33333333332248946124e-03, // 0x3F811111, 0x1110F8A6 + -1.98412698298579493134e-04, // 0xBF2A01A0, 0x19C161D5 + 2.75573137070700676789e-06 // 0x3EC71DE3, 0x57B1FE7D +]; +var S56 = [ + -2.50507602534068634195e-08, // 0xBE5AE5E6, 0x8A2B9CEB + 1.58969099521155010221e-10 // 0x3DE5D93A, 0x5ACFD57C +]; +var C13 = [ + 4.16666666666666019037e-02, // 0x3FA55555, 0x5555554C + -1.38888888888741095749e-03, // 0xBF56C16C, 0x16C15177 + 2.48015872894767294178e-05 // 0x3EFA01A0, 0x19CB1590 +]; +var C46 = [ + -2.75573143513906633035e-07, // 0xBE927E4F, 0x809C52AD + 2.08757232129817482790e-09, // 0x3E21EE9E, 0xBDB4B1C4 + -1.13596475577881948265e-11 // 0xBDA8FAE9, 0xBE8838D4 +]; + +// 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_s24.js' ); + str = header + compile( S24 ); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_s56.js' ); + str = header + compile( S56 ); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_c13.js' ); + str = header + compile( C13 ); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_c46.js' ); + str = header + compile( C46 ); + writeFileSync( fpath, str, opts ); + + copts = { + 'dtype': 'double', + 'name': '' + }; + + fpath = resolve( __dirname, '..', 'src', 'main.c' ); + file = readFileSync( fpath, opts ); + + copts.name = 'polyval_s24'; + str = compileC( S24, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_s56'; + str = compileC( S56, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_c13'; + str = compileC( C13, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_c46'; + str = compileC( C46, copts ); + file = insert( file, copts.name, str ); + + writeFileSync( fpath, file, opts ); +} + +main(); From 8619abbb56b2eb2100518c5c569b268db50dd547 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 9 Mar 2025 18:05:27 -0700 Subject: [PATCH 2/4] feat: add C implementation --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: passed - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../stdlib/math/base/special/kernel_sincos.h | 38 +++++ .../base/special/kernel-sincos/lib/native.js | 65 +++++++++ .../base/special/kernel-sincos/src/Makefile | 70 +++++++++ .../base/special/kernel-sincos/src/addon.c | 42 ++++++ .../base/special/kernel-sincos/src/main.c | 135 ++++++++++++++++++ 5 files changed, 350 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/include/stdlib/math/base/special/kernel_sincos.h create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/main.c diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include/stdlib/math/base/special/kernel_sincos.h b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include/stdlib/math/base/special/kernel_sincos.h new file mode 100644 index 000000000000..e3cfc8de5c8f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include/stdlib/math/base/special/kernel_sincos.h @@ -0,0 +1,38 @@ +/** +* @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. +*/ + +#ifndef STDLIB_MATH_BASE_SPECIAL_KERNEL_SINCOS_H +#define STDLIB_MATH_BASE_SPECIAL_KERNEL_SINCOS_H + +/* +* If C++, prevent name mangling so that the compiler emits a binary file having undecorated names, thus mirroring the behavior of a C compiler. +*/ +#ifdef __cplusplus +extern "C" { +#endif + +/** +* Simultaneously computes the sine and cosine of an angle measured in radians on the interval [-π/4, π/4]. +*/ +void stdlib_base_kernel_sincos( const double x, const double y, double* sine, double* cosine ); + +#ifdef __cplusplus +} +#endif + +#endif // !STDLIB_MATH_BASE_SPECIAL_KERNEL_SINCOS_H diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/native.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/native.js new file mode 100644 index 000000000000..44bbec161aa6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/lib/native.js @@ -0,0 +1,65 @@ +/** +* @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 Float64Array = require( '@stdlib/array/float64' ); +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Simultaneously computes the sine and cosine of an angle measured in radians on the interval \\( \approx \[-\pi/4, \pi/4\] \\) (except for \\(-0\\)), where \\( \pi/4 \approx 0.7854 \\). +* +* @private +* @param {number} x - input value (in radians, assumed to be bounded by `~π/4` in magnitude) +* @param {number} y - tail of `x` +* @param {Array} out - output array +* @param {integer} stride - output array stride +* @param {NonNegativeInteger} offset - output array index offset +* @returns {Array} sine and cosine +* +* @example +* var v = kernelSincos( 0.0, 0.0 ); +* // returns [ ~0.0, ~1.0 ] +* +* @example +* var v = kernelSincos( 3.141592653589793/2.0, 0.0 ); +* // returns [ ~1.0, ~0.0 ] +* +* @example +* var v = kernelSincos( -3.141592653589793/6.0, 0.0 ); +* // returns [ ~-0.5, ~0.866 ] +* +* @example +* var v = kernelSincos( NaN, 0.0 ); +* // returns [ NaN, NaN ] +*/ +function kernelSincos( x, y ) { + var out = new Float64Array( 2 ); + addon( x, y, out ); + return out; +} + + +// EXPORTS // + +module.exports = kernelSincos; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/Makefile b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/Makefile new file mode 100644 index 000000000000..7733b6180cb4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/addon.c b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/addon.c new file mode 100644 index 000000000000..9c4a6ba2497e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/addon.c @@ -0,0 +1,42 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/kernel_sincos.h" +#include "stdlib/napi/argv.h" +#include "stdlib/napi/argv_double.h" +#include "stdlib/napi/argv_float64array.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, 3 ); + STDLIB_NAPI_ARGV_DOUBLE( env, x, argv, 0 ); + STDLIB_NAPI_ARGV_DOUBLE( env, y, argv, 1 ); + STDLIB_NAPI_ARGV_FLOAT64ARRAY( env, z, zlen, argv, 2 ); + stdlib_base_kernel_sincos( x, y, &z[0], &z[1] ); + return NULL; +} + +STDLIB_NAPI_MODULE_EXPORT_FCN( addon ) diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/main.c b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/main.c new file mode 100644 index 000000000000..3e9d16685c14 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/src/main.c @@ -0,0 +1,135 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/kernel_sincos.h" + +static const double S1 = -1.66666666666666324348e-01; // 0xBFC55555, 0x55555549 + +// BEGIN: polyval_s24 + +/** +* 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 double polyval_s24( const double x ) { + return 0.00833333333332249 + (x * (-0.0001984126982985795 + (x * 0.0000027557313707070068))); +} + +// END: polyval_s24// BEGIN: polyval_s56 + +/** +* 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 double polyval_s56( const double x ) { + return -2.5050760253406863e-8 + (x * 1.58969099521155e-10); +} + +// END: polyval_s56// BEGIN: polyval_c13 + +/** +* 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 double polyval_c13( const double x ) { + return 0.0416666666666666 + (x * (-0.001388888888887411 + (x * 0.00002480158728947673))); +} + +// END: polyval_c13// BEGIN: polyval_c46 + +/** +* 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 double polyval_c46( const double x ) { + return -2.7557314351390663e-7 + (x * (2.087572321298175e-9 + (x * -1.1359647557788195e-11))); +} + +// END: polyval_c46 + +/** +* Simultaneously computes the sine and cosine of an angle measured in radians on the interval \\( \approx \[-\pi/4, \pi/4\] \\) (except for \\(-0\\)), where \\( \pi/4 \approx 0.7854 \\). +* +* @param x input value (in radians, assumed to be bounded by `~π/4` in magnitude) +* @param y tail of `x` +* @param sine destination to store the sine +* @param cosine destination to store the cosine +* +* @example +* double x = 0.0; +* double y = 0.0; +* +* double cosine; +* double sine; +* stdlib_base_kernel_sincos( x, y, &sine, &cosine ); +*/ +void stdlib_base_kernel_sincos( const double x, const double y, double* sine, double* cosine ) { + double hz; + double r; + double v; + double w; + double z; + + z = x * x; + w = z * z; + r = polyval_s24( z ) + (z * w * polyval_s56( z )); + v = z * x; + if ( y == 0.0 ) { + *sine = x + (v * (S1 + (z*r))); + } else { + *sine = x - (((z*((0.5*y) - (v*r))) - y) - (v*S1)); + } + r = z * polyval_c13( z ); + r += w * w * polyval_c46( z ); + hz = 0.5 * z; + w = 1.0 - hz; + *cosine = w + ( ((1.0-w) - hz) + ((z*r) - (x*y)) ); + return; +} From 11384c2cb0a0252f56b4e78bbbed4e86cdb61c5f Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 9 Mar 2025 18:06:05 -0700 Subject: [PATCH 3/4] test: add tests and its fixtures --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../kernel-sincos/test/fixtures/julia/REQUIRE | 2 + .../test/fixtures/julia/large_negative.json | 1 + .../test/fixtures/julia/large_positive.json | 1 + .../test/fixtures/julia/small_range.json | 1 + .../base/special/kernel-sincos/test/test.js | 150 ++++++++++++ .../special/kernel-sincos/test/test.native.js | 213 ++++++++++++++++++ 6 files changed, 368 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_negative.json create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/small_range.json create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_negative.json b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_negative.json new file mode 100644 index 000000000000..567033da925f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_negative.json @@ -0,0 +1 @@ +{"sine":[-9.82193361864236e-16,0.1254580301802891,0.248933554466879,0.3684753948102586,0.48219453380205063,0.5882939652008029,0.6850970904837744,0.7710742126987152,0.8448667089558218,0.9053084995825973,0.9514444746831753,0.9825455869226257,0.998120372038147,0.9979227150282429,0.9819557392975067,0.9504717573001135,0.9039682834620213,0.843180172386217,0.7690680065743142,0.6828029171631905,0.5857480775418459,0.4794371622888221,0.36555011182521124,0.24588658575384806,0.12233752437846093,-0.0031447322077265785,-0.12857729528188117,-0.25197806138513157,-0.3713970338075686,-0.4849471367174829,-0.5908340350059487,-0.6873844886291182,-0.7730727933887208,-0.8465448903300599,-0.9066397627768863,-0.9524077828844474,-0.9831257177957059,-0.9983081582712684,-0.9977151891962617,-0.9813561807535612,-0.9494896403548181,-0.9026191276690309,-0.8414852973000495,-0.7670541948556018,-0.6805019913552603,-0.5831963972062639,-0.4766750494464226,-0.36262121378166734,-0.24283718537859347,-0.11921580873618581,0.006289433316077591,0.1316952888356274,0.25502007640030827,0.37431499992401124,0.48769494381362205,0.5933682618376268,0.6896650889782634,0.7750637288795991,0.848214699912797,0.9079620598795514,0.9533616723774312,0.9836961261796102,0.9984860718705222,0.9974977965945006,0.9807469172200376,0.9484981335597937,0.9012610455459453,0.8397821004585438,0.7650327974578987,0.6781943358146598,0.5806389494286033,0.473908222590446,0.35968872964454435,0.23978538349772324,0.1160929141252232,-0.009434072225897795,-0.13481198000657926,-0.25805956942883956,-0.3772292643027804,-0.49043792791642515,-0.5958966206338971,-0.6919388689775413,-0.7770469994822804,-0.8498761211906914,-0.9092753778138899,-0.9543061337287481,-0.9842568064333671,-0.9986541110764557,-0.9972705393728322,-0.9801279547221762,-0.9474972467204311,-0.8998940505233226,-0.8380705987052198,-0.7630038343715234,-0.675879973362679,-0.5780757595003756,-0.47113670908302846,-0.3567526884142221,-0.23673121029167557,-0.11296887142907455,0.0125786178387333,0.13792733797263992,0.2610965104120965,0.38013979812359905,0.4931760618994714,0.5984190863909192,0.6942058061407318,0.7790225855834955,0.8515291377333117,0.9105797035920334,0.9552411575982835,0.98480775301221,0.9988122742272694,0.9970334197786902,0.9794992993811179,0.9464869897348567,0.8985181561198632,0.8363508089657743,0.7609673256616694,0.6735589268868724,0.5755068527699021,0.46836053633265384,0.3538131191263372,0.2336746959642568,0.10984371154251048,-0.01572303905705286,-0.1410413319249251,-0.2641308693166061,-0.38304657260316194,-0.4959093186843788,-0.600935634163131,-0.6964658780492247,-0.7809904676459162,-0.8531737331933886,-0.911875024315028,-0.9561667347392534,-0.9853489604676169,-0.9989605597588272,-0.9967864401570351,-0.9788609574138589,-0.9454673725938613,-0.8971333759423138,-0.8346227482478203,-0.7589232914680963,-0.6712312193408947,-0.572932254642016,-0.4655797317939582,-0.35087005085133727,-0.2306158707424531,-0.10671746537134986,0.018867304784470153,0.14415393106795535,0.26716261613451264,0.38594955899534106,0.4986376712409979,0.6034462390634272,0.698719062352364,0.7829506262084565,0.854809891306932,0.9131613271729856,0.9570828559982707,0.9858804234473947,0.999098966204681,0.9965296029503359,0.9782129351332076,0.9444384053808296,0.8957397236852591,0.8328864336407814,0.7568717520049865,0.6688968737443379,0.5703519905779046,0.4627943229673079,0.3479235126942723,0.2275547648760762,0.10359016383223901,-0.022011383926221827,-0.1472651046201295,-0.27019172088379234,-0.3888487285913917,-0.5013610925876046,-0.6059508762635422,-0.7009653367675878,-0.7849030418864099,-0.8564375958933473,-0.9144385994451644,-0.9579895123154862,-0.9864021366957167,-0.9992274921960798,-0.9962629106985543,-0.9775552389476873,-0.9434000982715849,-0.8943372131310221,-0.8311418823156906,-0.7548127275607993,-0.6665559131823771,-0.5677660860947183,-0.46000433739860247,-0.3449735337945872,-0.224491408637575,-0.10046183785217641,0.025155245389361317,0.1503748218139445,0.27321815360846763,0.3917440527203935,0.5040795557913158,0.6084495209942267,0.7032046790806883,0.78684769537159,0.8580568308556845,0.9157068285001643,0.9588866947246527,0.9869140950531606,0.9993461364619808,0.9959863660391051,0.9768878753614955,0.9423524615343157,0.8929258581495674,0.8293891115250847,0.7527462384979611,0.6642083608056044,0.5651745667653871,0.4572098026790784,0.34202014332567365,0.22142583232157012,0.09733251836829156,-0.028298858083123175,-0.15348305189621533,-0.27624188437906766,-0.3946355027494289,-0.5067930339682806,-0.6109421485454256,-0.7054370671459512,-0.7887845674326348,-0.859667580180745,-0.9169660017960107,-0.9597743943531895,-0.9874162934567883,-0.9994548978290694,-0.9956999717068379,-0.9762108509744283,-0.9412955055295034,-0.8915056726982867,-0.8276281386027301,-0.750672305252727,-0.661854239829865,-0.5625774582184387,-0.4544107464448719,-0.33906337049467505,-0.21835806624465115,-0.09420223632762394,0.03144219091911689,0.1565897641285621,0.27926288329282856,0.397523050083919,0.5095015002838736,0.6134287342666574,0.7076624788865064,0.7907136389150917,0.8612698279392332,0.9182161068802736,0.9606526024223191,0.9879087269401782,0.9995537752217637,0.9954037305340122,0.9755241724818393,0.9402292407097571,0.8900766708219063,0.825858980963547,0.7485909483349897,0.6594935735358994,0.5599747861375926,0.45160719637689734,0.3361032445422108,0.21528814074509076,0.09107102268664727,-0.034585212811819005,-0.15969492778754515,-0.28228112047397536,-0.40040666616780185,-0.5122049279531194,-0.6159092535671796,-0.7098808922944243,-0.792634890741686,-0.8628635582859291,-0.9194571313902071,-0.961521310247125,-0.9883913906334738,-0.9996427676622299,-0.9950976454502666,-0.9748278466745337,-0.939153677619769,-0.8886388666523537,-0.8240816561033653,-0.7465021883280476,-0.657126385269188,-0.5573665762616467,-0.44879918020045967,-0.33313979474206057,-0.21221608618250304,-0.08793890841106232,0.03772789267871008,0.1627985121650954,0.285296566074045,0.40328632248398416,0.5149032902408103,0.6183836819162196,0.712092285431025,0.7945483039124396,0.8644487554598657,0.9206890630528614,0.9623805092366344,0.9888642797634354,0.9997218742703888,0.9947817194825853,0.9741218804387377,0.9380688268961652,0.887192274408606,0.8222961815988071,0.7444060458884203,0.6547526984397304,0.554752854384117,0.44598672568508135,0.33017305040083467,0.2091419329375711,0.08480592447550486,-0.04087019944070989,-0.16590048656871975,-0.28830919027222224,-0.40616199055446733,-0.5175965604618806,-0.6208519948432409,-0.7142966364270242,-0.7964538595049283,-0.866025403784442,-0.9219118896852254,-0.9632301908939112,-0.989327389653494,-0.9997910942639261,-0.994455955755277,-0.9734062807560029,-0.9369746992674405,-0.8857369083965289,-0.8205025751070902,-0.7423025417456071,-0.6523725365217931,-0.5521336463530657,-0.4431698606441266,-0.32720304085777785,-0.20606571141169103,-0.08167210186321108,0.044012102022385376,0.1690008203218468,0.2913189632755528,0.40903364194074576,0.5202847119815737,0.6233141679382183,0.7164939234827804,0.7983515386744083,0.8675934876676004,0.9231255991943147,0.9640703468161507,0.9897807157237827,0.9998504269583005,0.9941203574899397,0.972681054703159,0.9358713055538126,0.8842727830087747,0.8187008543658277,0.7401916967019472,0.6499859230536446,0.5495089780708088,0.44034861293461497,0.3242297954843721,0.2029874520267684,0.07853747156566866,-0.04715356935230059,-0.17209948276417208,-0.29432585531927896,-0.41190124824399743,-0.5229677182158018,-0.6257701768518006,-0.7186841248685393,-0.8002413226540293,-0.8691529916020005,-0.9243301795773073,-0.9649009686947405,-0.9902242534911985,-0.9998998717667488,-0.993774928005424,-0.9719462094522346,-0.9347586566671496,-0.8827999127246207,-0.8168910371929019,-0.738073531632339,-0.6475928816373987,-0.5468788754936257,-0.4375230104569079,-0.3212533436841397,-0.19990718522480638,-0.07540206458239525,0.050294570363366514,0.17519644325186337,0.29732983666717466,0.41476478110540377,0.5256455526313246,0.6282199972956412,0.7208672189245897,0.8021231927550442,0.8707039001651249,0.9255256189216791,0.9657220483153538,0.9906579985694324,0.9999394282002937,0.9934196707178115,0.971201752270376,0.9336367636108479,0.8813183121098055,0.8150731414862639,0.7359480674840997,0.6451934359386939,0.5442433646315846,0.4346930811543943,0.3182737148923129,0.19682494146770188,0.07226591192058943,-0.05343507399306315,-0.17829167115797567,-0.30033087761174443,-0.4176242122064686,-0.5283181887460479,-0.6306636050425602,-0.7230431840615079,-0.8039971303669442,-0.8722461980194863,-0.9267119054052828,-0.9665335775580419,-0.9910819466690192,-0.999969095867747,-0.9930545891403679,-0.9704476905197954,-0.9325056374797073,-0.879827995816432,-0.8132471852237314,-0.7338153252767301,-0.6427876096865357,-0.5416024715481912,-0.4318588530132912,-0.31529093857550167,-0.19374075123690274,-0.06912904459478157,0.0565750491837893,0.18138513587265612,0.30332894847462577,0.420479513269208,0.5309856001293214,0.6331009759268176,0.7252119987603997,0.8058631169576675,0.8737798699127313,0.9278890272965091,0.9673355483972885,0.991496093597385,0.999988874475714,0.9926796868835198,0.9696840316576882,0.9313652894598521,0.8783289785827687,0.8114131864628694,0.731675326101677,0.6403754266730292,0.5389562223602129,0.4290203540623282,0.31230504423148353,0.19065464503306434,0.06599149362662632,-0.059714464883212234,-0.1844768068034887,-0.30632401960678773,-0.42333065605653303,-0.5336477604021279,-0.6355320858443845,-0.727373641573045,-0.8077211340738084,-0.8753049006778114,-0.9290569729543645,-0.9681279529021185,-0.9919004352588777,-0.9999987638285974,-0.9922949676548143,-0.9689107832361488,-0.9302157308286053,-0.876821275233151,-0.8095711633407444,-0.7295280911221931,-0.6379569107531109,-0.5363046432373865,-0.4261776123724321,-0.30931606138887136,-0.18756665337583162,-0.06285329004448235,0.06285329004447551,0.18756665337583883,0.3093160613888648,0.4261776123724388,0.5363046432373807,0.6379569107531166,0.7295280911221884,0.8095711633407404,0.8768212752331546,0.9302157308286029,0.9689107832361507,0.9922949676548135,0.9999987638285974,0.9919004352588768,0.9681279529021202,0.9290569729543618,0.8753049006778146,0.8077211340738041,0.7273736415730497,0.6355320858443788,0.5336477604021217,0.42333065605653925,0.30632401960678074,0.18447680680349546,0.0597144648832049,-0.06599149362661946,-0.19065464503307156,-0.3123050442314905,-0.429020354062322,-0.5389562223602191,-0.6403754266730238,-0.7316753261016821,-0.8114131864628654,-0.8783289785827655,-0.9313652894598548,-0.9696840316576865,-0.9926796868835207,-0.9999888744757142,-0.991496093597384,-0.9673355483972903,-0.9278890272965117,-0.8737798699127276,-0.8058631169576715,-0.7252119987603945,-0.6331009759268229,-0.5309856001293152,-0.42047951326921423,-0.3033289484746323,-0.18138513587264887,-0.05657504918379615,0.0691290445947889,0.19374075123689602,0.31529093857550866,0.4318588530132978,0.5416024715481854,0.6427876096865414,0.7338153252767253,0.8132471852237357,0.8798279958164288,0.9325056374797099,0.9704476905197972,0.993054589140367,0.9999690958677468,0.99108194666902,0.96653357755804,0.9267119054052854,0.8722461980194828,0.8039971303669399,0.7230431840615127,0.6306636050425546,0.5283181887460537,0.41762421220646195,0.300330877611751,0.17829167115798242,0.05343507399305582,-0.07226591192058258,-0.1968249414677091,-0.3182737148923064,-0.4346930811544009,-0.5442433646315789,-0.6451934359386887,-0.7359480674841048,-0.8150731414862599,-0.8813183121098089,-0.9336367636108455,-0.9712017522703777,-0.9934196707178107,-0.9999394282002938,-0.9906579985694314,-0.9657220483153556,-0.9255256189216763,-0.8707039001651283,-0.8021231927550398,-0.7208672189245846,-0.6282199972956466,-0.5256455526313184,-0.41476478110541,-0.29732983666716767,-0.17519644325187012,-0.05029457036335918,0.07540206458240258,0.19990718522479964,0.32125334368414665,0.4375230104569017,0.5468788754936318,0.6475928816373935,0.738073531632344,0.8168910371929061,0.8827999127246174,0.9347586566671523,0.971946209452233,0.9937749280054249,0.9998998717667489,0.9902242534911994,0.9649009686947385,0.92433017957731,0.869152991601997,0.8002413226540334,0.7186841248685342,0.6257701768518059,0.5229677182158077,0.41190124824399077,0.2943258553192855,0.17209948276416484,0.047153569352307446,-0.07853747156567599,-0.2029874520267617,-0.3242297954843656,-0.4403486129346216,-0.5495089780708031,-0.6499859230536502,-0.7401916967019426,-0.818700854365832,-0.8842727830087781,-0.9358713055538102,-0.9726810547031608,-0.9941203574899389,-0.9998504269583004,-0.9897807157237837,-0.9640703468161488,-0.9231255991943119,-0.8675934876676037,-0.798351538674404,-0.7164939234827852,-0.6233141679382125,-0.5202847119815796,-0.40903364194073905,-0.2913189632755458,-0.16900082032185354,-0.04401210202237804,0.08167210186320426,0.20606571141169822,0.3272030408577714,0.44316986064412045,0.5521336463530718,0.6523725365217878,0.7423025417456119,0.8205025751070864,0.8857369083965323,0.9369746992674381,0.9734062807560013,0.9944559557552778,0.9997910942639262,0.9893273896534929,0.963230190893913,0.9219118896852225,0.8660254037844384,0.7964538595049324,0.7142966364270191,0.6208519948432463,0.5175965604618743,0.4061619905544736,0.28830919027221524,0.1659004865687125,0.040870199440716744,-0.08480592447551219,-0.2091419329375644,-0.3301730504008416,-0.4459867256850752,-0.5547528543841231,-0.6547526984397359,-0.7444060458884157,-0.8222961815988113,-0.8871922744086028,-0.9380688268961678,-0.9741218804387362,-0.9947817194825846,-0.9997218742703887,-0.9888642797634364,-0.9623805092366324,-0.920689063052864,-0.864448755459862,-0.7945483039124438,-0.7120922854310298,-0.6183836819162137,-0.5149032902408162,-0.40328632248397744,-0.28529656607405157,-0.16279851216508814,-0.037727892678716936,0.08793890841105548,0.21221608618251023,0.33313979474205413,0.4487991802004662,0.5573665762616409,0.6571263852691935,0.7465021883280525,0.8240816561033613,0.8886388666523571,0.9391536776197666,0.9748278466745353,0.9950976454502659,0.9996427676622297,0.9883913906334726,0.9615213102471268,0.9194571313902042,0.8628635582859325,0.7926348907416816,0.7098808922944291,0.6159092535671737,0.5122049279531131,0.4004066661678081,0.2822811204739683,0.15969492778755193,0.034585212811811664,-0.09107102268664044,-0.21528814074508407,-0.33610324454221774,-0.45160719637689123,-0.5599747861375987,-0.6594935735358943,-0.7485909483349946,-0.8258589809635432,-0.8900766708219032,-0.9402292407097597,-0.9755241724818379,-0.995403730534013,-0.9995537752217639,-0.9879087269401771,-0.960652602422321,-0.9182161068802734,-0.8612698279392295,-0.7907136389150915,-0.7076624788865061,-0.6134287342666629,-0.5095015002838734,-0.39752305008391225,-0.27926288329282833,-0.15658976412855483,-0.031442190919116646,0.09420223632762419,0.21835806624464446,0.3390633704946753,0.45441074644487844,0.5625774582184389,0.6618542398298705,0.7506723052527225,0.8276281386027302,0.8915056726982836,0.9412955055295034,0.97621085097443,0.9956999717068379,0.9994548978290692,0.9874162934567893,0.9597743943531895,0.9169660017960135,0.8596675801807449,0.7887845674326303,0.705437067145951,0.6109421485454197,0.5067930339682742,0.3946355027494417,0.27624188437907427,0.15348305189621508,0.02829885808311583,-0.09733251836830595,-0.2214258323215565,-0.3420201433256672,-0.4572098026790786,-0.5651745667653932,-0.6642083608056152,-0.7527462384979565,-0.8293891115250848,-0.8929258581495675,-0.9423524615343182,-0.9768878753614925,-0.9959863660391044,-0.9993461364619808,-0.9869140950531595,-0.9588866947246486,-0.9157068285001699,-0.858056830855688,-0.7868476953715899,-0.703204679080683,-0.6084495209942152,-0.5040795557913217,-0.39174405272039975,-0.2732181536084674,-0.15037482181393722,-0.025155245389375278,0.10046183785216958,0.22449140863757525,0.34497353379459406,0.460004337398609,0.5677660860947069,0.666555913182372,0.7548127275607995,0.8311418823156947,0.8943372131310287,0.9434000982715827,0.9775552389476858,0.9962629106985543,0.9992274921960794,0.9864021366957143,0.9579895123154882,0.9144385994451643,0.8564375958933472,0.7849030418864054,0.7009653367675978,0.6059508762635477,0.5013610925876044,0.3888487285913849,0.2701917208837784,0.14726510462014333,0.022011383926228686,-0.10359016383223926,-0.22755476487608337,-0.34792351269428584,-0.4627943229673018,-0.5703519905779049,-0.6688968737443381,-0.7568717520049912,-0.8328864336407736,-0.895739723685256,-0.9444384053808297,-0.9782129351332092,-0.9965296029503365,-0.9990989662046815,-0.9858804234473959,-0.9570828559982706,-0.9131613271729826,-0.8548098913069245,-0.7829506262084607,-0.6987190623523689,-0.603446239063427,-0.4986376712409915,-0.38594955899532774,-0.26716261613451925,-0.14415393106795513,-0.01886730478446281,0.10671746537135716,0.23061587074243953,0.3508700508513309,0.4655797317939584,0.572932254642022,0.6712312193409055,0.7589232914680873,0.8346227482478166,0.8971333759423139,0.9454673725938637,0.9788609574138618,0.9967864401570345,0.9989605597588272,0.9853489604676169,0.9561667347392512,0.9118750243150336,0.8531737331933922,0.7809904676459161,0.6964658780492194,0.6009356341631195,0.4959093186843909,0.38304657260316827,0.26413086931660584,0.14104133192491783,0.015723039057038406,-0.10984371154250366,-0.23367469596425014,-0.35381311912633745,-0.46836053633266034,-0.5755068527698907,-0.6735589268868672,-0.7609673256616695,-0.8363508089657784,-0.8985181561198664,-0.9464869897348521,-0.9794992993811165,-0.9970334197786902,-0.998812274227269,-0.9848077530122075,-0.9552411575982855,-0.9105797035920362,-0.8515291377333116,-0.7790225855834909,-0.6942058061407215,-0.5984190863909247,-0.49317606189947116,-0.3801397981235988,-0.2610965104120894,-0.13792733797265375,-0.012578617838740163,0.11296887142907479,0.2367312102916827,0.3567526884142356,0.47113670908301614,0.57807575950037,0.6758799733626792,0.7630038343715281,0.8380705987052277,0.8998940505233197,0.9474972467204312,0.9801279547221763,0.9972705393728327,0.9986541110764564,0.9842568064333683,0.9543061337287481,0.9092753778138869,0.8498761211906877,0.7770469994822892,0.6919388689775463,0.5958966206338969,0.49043792791641877,0.37722926430276704,0.25805956942884617,0.13481198000658606,0.009434072225897552,-0.1160929141252305,-0.2397853834977373,-0.35968872964453796,-0.47390822259044624,-0.5806389494286093,-0.6781943358146653,-0.7650327974578897,-0.8397821004585401,-0.9012610455459454,-0.9484981335597961,-0.9807469172200404,-0.9974977965944996,-0.9984860718705225,-0.9836961261796101,-0.953361672377429,-0.9079620598795454,-0.8482146999128006,-0.775063728879599,-0.6896650889782632,-0.5933682618376209,-0.48769494381363426,-0.37431499992401757,-0.25502007640030805,-0.1316952888356201,-0.006289433316063138,0.11921580873617194,0.2428371853785868,0.36262121378166756,0.476675049446429,0.5831963972062757,0.6805019913552552,0.7670541948555973,0.8414852973000496,0.902619127669034,0.9494896403548136,0.9813561807535599,0.9977151891962617,0.998308158271268,0.9831257177957046,0.9524077828844516,0.9066397627768892,0.8465448903300598,0.773072793388716,0.6873844886291076,0.5908340350059542,0.48494713671748896,0.3713970338075684,0.25197806138512446,0.12857729528186684,0.0031447322077334415,-0.12233752437846117,-0.24588658575384828,-0.3655501118252181,-0.47943716228880984,-0.5857480775418403,-0.6828029171631906,-0.7690680065743188,-0.8431801723862247,-0.9039682834620154,-0.9504717573001114,-0.9819557392975068,-0.9979227150282434,-0.9981203720381461,-0.9825455869226271,-0.9514444746831752,-0.9053084995825973,-0.844866708955818,-0.7710742126987242,-0.6850970904837794,-0.5882939652008027,-0.4821945338020473,-0.36847539481024844,-0.24893355446688908,-0.1254580301802959,1.2246467991473533e-15],"x":[-157.07963267948966,-156.95384318385044,-156.8280536882112,-156.70226419257196,-156.57647469693273,-156.4506852012935,-156.32489570565428,-156.19910621001506,-156.0733167143758,-155.94752721873658,-155.82173772309736,-155.69594822745813,-155.57015873181888,-155.44436923617965,-155.31857974054043,-155.1927902449012,-155.06700074926198,-154.94121125362273,-154.8154217579835,-154.68963226234428,-154.56384276670505,-154.43805327106583,-154.31226377542657,-154.18647427978735,-154.06068478414812,-153.9348952885089,-153.80910579286964,-153.68331629723042,-153.5575268015912,-153.43173730595197,-153.30594781031274,-153.1801583146735,-153.05436881903427,-152.92857932339504,-152.80278982775582,-152.6770003321166,-152.55121083647734,-152.4254213408381,-152.2996318451989,-152.17384234955966,-152.04805285392044,-151.92226335828119,-151.79647386264196,-151.67068436700274,-151.5448948713635,-151.41910537572426,-151.29331588008503,-151.1675263844458,-151.04173688880658,-150.91594739316736,-150.7901578975281,-150.66436840188888,-150.53857890624965,-150.41278941061043,-150.2869999149712,-150.16121041933195,-150.03542092369273,-149.9096314280535,-149.78384193241428,-149.65805243677502,-149.5322629411358,-149.40647344549657,-149.28068394985735,-149.15489445421812,-149.02910495857887,-148.90331546293964,-148.77752596730042,-148.6517364716612,-148.52594697602197,-148.40015748038272,-148.2743679847435,-148.14857848910427,-148.02278899346504,-147.8969994978258,-147.77121000218656,-147.64542050654734,-147.5196310109081,-147.3938415152689,-147.26805201962964,-147.1422625239904,-147.0164730283512,-146.89068353271196,-146.76489403707274,-146.63910454143348,-146.51331504579426,-146.38752555015503,-146.2617360545158,-146.13594655887658,-146.01015706323733,-145.8843675675981,-145.75857807195888,-145.63278857631965,-145.5069990806804,-145.38120958504118,-145.25542008940195,-145.12963059376273,-145.0038410981235,-144.87805160248425,-144.75226210684502,-144.6264726112058,-144.50068311556657,-144.37489361992735,-144.2491041242881,-144.12331462864887,-143.99752513300965,-143.87173563737042,-143.74594614173117,-143.62015664609194,-143.49436715045272,-143.3685776548135,-143.24278815917427,-143.116998663535,-142.9912091678958,-142.86541967225656,-142.73963017661734,-142.61384068097811,-142.48805118533886,-142.36226168969964,-142.2364721940604,-142.1106826984212,-141.98489320278196,-141.8591037071427,-141.73331421150348,-141.60752471586426,-141.48173522022503,-141.35594572458578,-141.23015622894656,-141.10436673330733,-140.9785772376681,-140.85278774202888,-140.72699824638963,-140.6012087507504,-140.47541925511118,-140.34962975947195,-140.22384026383273,-140.09805076819347,-139.97226127255425,-139.84647177691502,-139.7206822812758,-139.59489278563655,-139.46910328999732,-139.3433137943581,-139.21752429871887,-139.09173480307965,-138.9659453074404,-138.84015581180117,-138.71436631616194,-138.58857682052272,-138.4627873248835,-138.33699782924424,-138.21120833360501,-138.0854188379658,-137.95962934232656,-137.8338398466873,-137.7080503510481,-137.58226085540886,-137.45647135976964,-137.3306818641304,-137.20489236849116,-137.07910287285193,-136.9533133772127,-136.82752388157348,-136.70173438593426,-136.575944890295,-136.45015539465578,-136.32436589901656,-136.19857640337733,-136.0727869077381,-135.94699741209885,-135.82120791645963,-135.6954184208204,-135.56962892518118,-135.44383942954192,-135.3180499339027,-135.19226043826347,-135.06647094262425,-134.94068144698502,-134.81489195134577,-134.68910245570655,-134.56331296006732,-134.4375234644281,-134.31173396878887,-134.18594447314962,-134.0601549775104,-133.93436548187117,-133.80857598623194,-133.6827864905927,-133.55699699495347,-133.43120749931424,-133.30541800367502,-133.1796285080358,-133.05383901239654,-132.9280495167573,-132.8022600211181,-132.67647052547886,-132.55068102983964,-132.42489153420038,-132.29910203856116,-132.17331254292193,-132.0475230472827,-131.92173355164348,-131.79594405600423,-131.670154560365,-131.54436506472578,-131.41857556908656,-131.2927860734473,-131.16699657780808,-131.04120708216885,-130.91541758652963,-130.7896280908904,-130.66383859525115,-130.53804909961192,-130.4122596039727,-130.28647010833348,-130.16068061269425,-130.034891117055,-129.90910162141577,-129.78331212577655,-129.65752263013732,-129.53173313449807,-129.40594363885884,-129.28015414321962,-129.1543646475804,-129.02857515194117,-128.90278565630192,-128.7769961606627,-128.65120666502347,-128.52541716938424,-128.39962767374502,-128.27383817810576,-128.14804868246654,-128.0222591868273,-127.89646969118807,-127.77068019554885,-127.64489069990962,-127.51910120427038,-127.39331170863116,-127.26752221299192,-127.1417327173527,-127.01594322171346,-126.89015372607423,-126.764364230435,-126.63857473479577,-126.51278523915654,-126.3869957435173,-126.26120624787808,-126.13541675223884,-126.00962725659961,-125.88383776096039,-125.75804826532115,-125.63225876968193,-125.50646927404269,-125.38067977840346,-125.25489028276422,-125.129100787125,-125.00331129148577,-124.87752179584653,-124.75173230020731,-124.62594280456807,-124.50015330892884,-124.37436381328962,-124.24857431765038,-124.12278482201116,-123.99699532637192,-123.87120583073269,-123.74541633509345,-123.61962683945423,-123.493837343815,-123.36804784817576,-123.24225835253654,-123.1164688568973,-122.99067936125807,-122.86488986561884,-122.73910036997961,-122.61331087434039,-122.48752137870115,-122.36173188306192,-122.23594238742268,-122.11015289178346,-121.98436339614422,-121.858573900505,-121.73278440486577,-121.60699490922653,-121.4812054135873,-121.35541591794806,-121.22962642230884,-121.1038369266696,-120.97804743103038,-120.85225793539115,-120.72646843975191,-120.60067894411269,-120.47488944847345,-120.34909995283422,-120.22331045719498,-120.09752096155576,-119.97173146591653,-119.8459419702773,-119.72015247463807,-119.59436297899883,-119.4685734833596,-119.34278398772038,-119.21699449208114,-119.09120499644192,-118.96541550080268,-118.83962600516345,-118.71383650952421,-118.58804701388499,-118.46225751824576,-118.33646802260652,-118.2106785269673,-118.08488903132806,-117.95909953568884,-117.8333100400496,-117.70752054441037,-117.58173104877115,-117.45594155313191,-117.33015205749268,-117.20436256185344,-117.07857306621422,-116.95278357057498,-116.82699407493575,-116.70120457929653,-116.57541508365729,-116.44962558801807,-116.32383609237883,-116.1980465967396,-116.07225710110036,-115.94646760546114,-115.82067810982191,-115.69488861418267,-115.56909911854345,-115.44330962290421,-115.31752012726498,-115.19173063162575,-115.06594113598652,-114.9401516403473,-114.81436214470806,-114.68857264906883,-114.56278315342959,-114.43699365779037,-114.31120416215114,-114.1854146665119,-114.05962517087268,-113.93383567523344,-113.80804617959421,-113.68225668395498,-113.55646718831575,-113.43067769267653,-113.30488819703729,-113.17909870139806,-113.05330920575882,-112.9275197101196,-112.80173021448036,-112.67594071884113,-112.55015122320191,-112.42436172756267,-112.29857223192344,-112.1727827362842,-112.04699324064498,-111.92120374500574,-111.79541424936652,-111.66962475372729,-111.54383525808805,-111.41804576244883,-111.29225626680959,-111.16646677117036,-111.04067727553112,-110.9148877798919,-110.78909828425267,-110.66330878861343,-110.53751929297421,-110.41172979733497,-110.28594030169575,-110.16015080605652,-110.03436131041728,-109.90857181477806,-109.78278231913882,-109.65699282349959,-109.53120332786035,-109.40541383222113,-109.2796243365819,-109.15383484094266,-109.02804534530344,-108.9022558496642,-108.77646635402498,-108.65067685838574,-108.52488736274651,-108.39909786710729,-108.27330837146805,-108.14751887582882,-108.02172938018958,-107.89593988455036,-107.77015038891112,-107.6443608932719,-107.51857139763267,-107.39278190199343,-107.2669924063542,-107.14120291071497,-107.01541341507574,-106.8896239194365,-106.76383442379728,-106.63804492815805,-106.51225543251881,-106.38646593687959,-106.26067644124035,-106.13488694560112,-106.00909744996189,-105.88330795432266,-105.75751845868344,-105.6317289630442,-105.50593946740497,-105.38014997176573,-105.25436047612651,-105.12857098048728,-105.00278148484804,-104.87699198920882,-104.75120249356958,-104.62541299793035,-104.49962350229112,-104.37383400665189,-104.24804451101267,-104.12225501537343,-103.9964655197342,-103.87067602409496,-103.74488652845574,-103.6190970328165,-103.49330753717727,-103.36751804153805,-103.24172854589881,-103.11593905025958,-102.99014955462034,-102.86436005898112,-102.73857056334188,-102.61278106770266,-102.48699157206343,-102.36120207642419,-102.23541258078497,-102.10962308514573,-101.9838335895065,-101.85804409386726,-101.73225459822804,-101.60646510258881,-101.48067560694957,-101.35488611131035,-101.22909661567111,-101.10330712003189,-100.97751762439265,-100.85172812875342,-100.7259386331142,-100.60014913747496,-100.47435964183573,-100.3485701461965,-100.22278065055727,-100.09699115491804,-99.9712016592788,-99.84541216363958,-99.71962266800034,-99.59383317236112,-99.46804367672188,-99.34225418108265,-99.21646468544343,-99.09067518980419,-98.96488569416496,-98.83909619852572,-98.7133067028865,-98.58751720724726,-98.46172771160803,-98.33593821596881,-98.21014872032957,-98.08435922469035,-97.9585697290511,-97.83278023341188,-97.70699073777264,-97.58120124213342,-97.45541174649419,-97.32962225085495,-97.20383275521573,-97.07804325957649,-96.95225376393726,-96.82646426829803,-96.7006747726588,-96.57488527701958,-96.44909578138034,-96.32330628574111,-96.19751679010187,-96.07172729446265,-95.94593779882341,-95.82014830318418,-95.69435880754496,-95.56856931190572,-95.4427798162665,-95.31699032062726,-95.19120082498803,-95.0654113293488,-94.93962183370957,-94.81383233807034,-94.6880428424311,-94.56225334679188,-94.43646385115264,-94.31067435551341,-94.18488485987419,-94.05909536423495,-93.93330586859572,-93.80751637295648,-93.68172687731726,-93.55593738167802,-93.4301478860388,-93.30435839039957,-93.17856889476033,-93.0527793991211,-92.92698990348187,-92.80120040784264,-92.6754109122034,-92.54962141656418,-92.42383192092495,-92.29804242528571,-92.17225292964649,-92.04646343400725,-91.92067393836803,-91.79488444272879,-91.66909494708956,-91.54330545145034,-91.4175159558111,-91.29172646017187,-91.16593696453263,-91.04014746889341,-90.91435797325417,-90.78856847761494,-90.66277898197572,-90.53698948633648,-90.41119999069726,-90.28541049505802,-90.15962099941879,-90.03383150377957,-89.90804200814033,-89.7822525125011,-89.65646301686186,-89.53067352122264,-89.4048840255834,-89.27909452994417,-89.15330503430495,-89.02751553866571,-88.90172604302649,-88.77593654738725,-88.65014705174802,-88.52435755610878,-88.39856806046956,-88.27277856483033,-88.1469890691911,-88.02119957355187,-87.89541007791263,-87.7696205822734,-87.64383108663417,-87.51804159099494,-87.39225209535572,-87.26646259971648,-87.14067310407725,-87.01488360843801,-86.88909411279879,-86.76330461715955,-86.63751512152032,-86.5117256258811,-86.38593613024186,-86.26014663460263,-86.1343571389634,-86.00856764332417,-85.88277814768493,-85.7569886520457,-85.63119915640648,-85.50540966076724,-85.37962016512802,-85.25383066948878,-85.12804117384955,-85.00225167821033,-84.87646218257109,-84.75067268693186,-84.62488319129262,-84.4990936956534,-84.37330420001416,-84.24751470437494,-84.12172520873571,-83.99593571309647,-83.87014621745725,-83.74435672181801,-83.61856722617878,-83.49277773053954,-83.36698823490032,-83.2411987392611,-83.11540924362185,-82.98961974798263,-82.86383025234339,-82.73804075670417,-82.61225126106493,-82.4864617654257,-82.36067226978648,-82.23488277414724,-82.10909327850801,-81.98330378286877,-81.85751428722955,-81.73172479159031,-81.60593529595108,-81.48014580031186,-81.35435630467262,-81.2285668090334,-81.10277731339416,-80.97698781775493,-80.85119832211569,-80.72540882647647,-80.59961933083724,-80.473829835198,-80.34804033955878,-80.22225084391954,-80.09646134828031,-79.97067185264109,-79.84488235700185,-79.71909286136263,-79.59330336572339,-79.46751387008416,-79.34172437444492,-79.2159348788057,-79.09014538316647,-78.96435588752723,-78.83856639188801,-78.71277689624877,-78.58698740060954,-78.4611979049703,-78.33540840933108,-78.20961891369186,-78.08382941805262,-77.95803992241339,-77.83225042677415,-77.70646093113493,-77.58067143549569,-77.45488193985646,-77.32909244421724,-77.203302948578,-77.07751345293877,-76.95172395729954,-76.82593446166031,-76.70014496602107,-76.57435547038185,-76.44856597474262,-76.32277647910338,-76.19698698346416,-76.07119748782492,-75.9454079921857,-75.81961849654645,-75.69382900090723,-75.568039505268,-75.44225000962876,-75.31646051398954,-75.1906710183503,-75.06488152271108,-74.93909202707185,-74.81330253143261,-74.68751303579339,-74.56172354015415,-74.43593404451492,-74.31014454887568,-74.18435505323646,-74.05856555759723,-73.932776061958,-73.80698656631877,-73.68119707067953,-73.5554075750403,-73.42961807940107,-73.30382858376184,-73.17803908812262,-73.05224959248338,-72.92646009684415,-72.80067060120491,-72.67488110556569,-72.54909160992645,-72.42330211428722,-72.297512618648,-72.17172312300876,-72.04593362736954,-71.9201441317303,-71.79435463609107,-71.66856514045183,-71.54277564481261,-71.41698614917338,-71.29119665353414,-71.16540715789492,-71.03961766225568,-70.91382816661645,-70.78803867097723,-70.66224917533799,-70.53645967969877,-70.41067018405953,-70.2848806884203,-70.15909119278106,-70.03330169714184,-69.90751220150261,-69.78172270586337,-69.65593321022415,-69.53014371458491,-69.40435421894568,-69.27856472330645,-69.15277522766722,-69.026985732028,-68.90119623638876,-68.77540674074953,-68.64961724511029,-68.52382774947107,-68.39803825383183,-68.2722487581926,-68.14645926255338,-68.02066976691414,-67.89488027127491,-67.76909077563568,-67.64330127999645,-67.51751178435721,-67.39172228871799,-67.26593279307876,-67.14014329743952,-67.0143538018003,-66.88856430616106,-66.76277481052183,-66.6369853148826,-66.51119581924337,-66.38540632360414,-66.2596168279649,-66.13382733232568,-66.00803783668644,-65.88224834104722,-65.75645884540799,-65.63066934976875,-65.50487985412953,-65.37909035849029,-65.25330086285106,-65.12751136721182,-65.0017218715726,-64.87593237593337,-64.75014288029413,-64.62435338465491,-64.49856388901567,-64.37277439337645,-64.2469848977372,-64.12119540209798,-63.99540590645875,-63.86961641081952,-63.743826915180286,-63.61803741954106,-63.49224792390183,-63.3664584282626,-63.240668932623365,-63.11487943698413,-62.9890899413449,-62.86330044570567,-62.737510950066444,-62.61172145442721,-62.48593195878798,-62.36014246314875,-62.234352967509516,-62.10856347187028,-61.98277397623106,-61.85698448059183,-61.731194984952594,-61.60540548931336,-61.47961599367413,-61.3538264980349,-61.228037002395666,-61.10224750675644,-60.97645801111721,-60.85066851547798,-60.724879019838745,-60.59908952419951,-60.47330002856028,-60.34751053292105,-60.221721037281824,-60.09593154164259,-59.97014204600336,-59.84435255036413,-59.718563054724896,-59.592773559085664,-59.46698406344644,-59.34119456780721,-59.215405072167975,-59.08961557652874,-58.96382608088951,-58.83803658525028,-58.71224708961105,-58.58645759397182,-58.46066809833259,-58.33487860269336,-58.209089107054126,-58.083299611414894,-57.95751011577566,-57.83172062013643,-57.705931124497205,-57.58014162885797,-57.45435213321874,-57.32856263757951,-57.20277314194028,-57.076983646301045,-56.95119415066182,-56.82540465502259,-56.699615159383356,-56.573825663744124,-56.44803616810489,-56.32224667246566,-56.19645717682643,-56.0706676811872,-55.94487818554797,-55.81908868990874,-55.69329919426951,-55.567509698630275,-55.44172020299104,-55.31593070735181,-55.190141211712586,-55.064351716073354,-54.93856222043412,-54.81277272479489,-54.68698322915566,-54.561193733516426,-54.4354042378772,-54.30961474223797,-54.18382524659874,-54.058035750959505,-53.93224625532027,-53.80645675968104,-53.68066726404181,-53.554877768402584,-53.42908827276335,-53.30329877712412,-53.17750928148489,-53.051719785845656,-52.92593029020642,-52.80014079456719,-52.67435129892797,-52.548561803288734,-52.4227723076495,-52.29698281201027,-52.17119331637104,-52.045403820731806,-51.91961432509258,-51.79382482945335,-51.66803533381412,-51.542245838174885,-51.41645634253565,-51.29066684689642,-51.16487735125719,-51.039087855617964,-50.91329835997873,-50.7875088643395,-50.66171936870027,-50.535929873061036,-50.410140377421804,-50.28435088178257,-50.15856138614335,-50.032771890504115,-49.90698239486488,-49.78119289922565,-49.65540340358642,-49.52961390794719,-49.40382441230796,-49.27803491666873,-49.1522454210295,-49.026455925390266,-48.900666429751034,-48.7748769341118,-48.64908743847257,-48.523297942833345,-48.39750844719411,-48.27171895155488,-48.14592945591565,-48.02013996027642,-47.894350464637185,-47.76856096899795,-47.64277147335873,-47.516981977719496,-47.391192482080264,-47.26540298644103,-47.1396134908018,-47.01382399516257,-46.88803449952334,-46.76224500388411,-46.63645550824488,-46.51066601260565,-46.384876516966415,-46.25908702132718,-46.13329752568795,-46.007508030048726,-45.881718534409494,-45.75592903877026,-45.63013954313103,-45.5043500474918,-45.378560551852566,-45.252771056213334,-45.12698156057411,-45.00119206493488,-44.875402569295645,-44.74961307365641,-44.62382357801718,-44.49803408237795,-44.372244586738724,-44.24645509109949,-44.12066559546026,-43.99487609982103,-43.869086604181796,-43.74329710854256,-43.61750761290333,-43.49171811726411,-43.365928621624874,-43.24013912598564,-43.11434963034641,-42.98856013470718,-42.862770639067946,-42.736981143428714,-42.61119164778949,-42.48540215215026,-42.359612656511025,-42.23382316087179,-42.10803366523256,-41.98224416959333,-41.856454673954104,-41.73066517831487,-41.60487568267564,-41.47908618703641,-41.353296691397176,-41.227507195757944,-41.10171770011871,-40.97592820447949,-40.850138708840255,-40.72434921320102,-40.59855971756179,-40.47277022192256,-40.34698072628333,-40.221191230644095,-40.09540173500487,-39.96961223936564,-39.843822743726406,-39.718033248087174,-39.59224375244794,-39.46645425680871,-39.340664761169485,-39.21487526553025,-39.08908576989102,-38.96329627425179,-38.83750677861256,-38.711717282973325,-38.58592778733409,-38.46013829169487,-38.334348796055636,-38.208559300416404,-38.08276980477717,-37.95698030913794,-37.83119081349871,-37.705401317859476,-37.57961182222025,-37.45382232658102,-37.32803283094179,-37.202243335302555,-37.07645383966332,-36.95066434402409,-36.824874848384866,-36.699085352745634,-36.5732958571064,-36.44750636146717,-36.32171686582794,-36.195927370188706,-36.070137874549474,-35.94434837891025,-35.81855888327102,-35.692769387631785,-35.56697989199255,-35.44119039635332,-35.31540090071409,-35.18961140507486,-35.06382190943563,-34.9380324137964,-34.81224291815717,-34.686453422517936,-34.5606639268787,-34.43487443123947,-34.30908493560025,-34.183295439961014,-34.05750594432178,-33.93171644868255,-33.80592695304332,-33.680137457404086,-33.554347961764854,-33.42855846612563,-33.3027689704864,-33.176979474847165,-33.05118997920793,-32.9254004835687,-32.79961098792947,-32.67382149229024,-32.54803199665101,-32.42224250101178,-32.29645300537255,-32.170663509733316,-32.044874014094084,-31.919084518454856,-31.793295022815624,-31.66750552717639,-31.541716031537163,-31.41592653589793],"cosine":[1.0,0.9920989278611694,0.968520565326563,0.9296375010827737,0.8760641709209566,0.8086471483337566,0.7284517668388669,0.636745285425072,0.5349768631428453,0.42475465928404643,0.30782042101663204,0.18602196004470237,0.061283953221304505,-0.06442247147277394,-0.18911088297791606,-0.3108109370257652,-0.427599511803658,-0.5376310974029958,-0.639166958832988,-0.7306026117619874,-0.8104931768102873,-0.8775762117425709,-0.930791660762265,-0.969298605666136,-0.9924885541551346,-0.9999950553174459,-0.9916994903386791,-0.9677329469334972,-0.9284741478786255,-0.8745434663808969,-0.806793122850331,-0.7262937179902396,-0.6343173150105239,-0.5323173383011931,-0.421905606210526,-0.3048268608589658,-0.18293119747237774,-0.05814482891047279,0.0675603526268754,0.19219793572456403,0.31379837931206433,0.43044013563560474,0.5402800148329081,0.6415823112854846,0.7327462314891324,0.8123311900238926,0.8790795738926315,0.9319366155031737,0.9700670602578992,0.9928683653674223,0.9999802213186831,0.9912902455378549,0.9669357582759989,0.9273016126546354,0.8730141131611951,0.80493111869513,0.7241284865578788,0.6318830716004752,0.529652549179029,0.4190523807583987,0.30183028615715074,0.17983862582667956,0.05500512958419882,-0.0706975656519829,-0.19528308775568043,-0.31678271833164706,-0.4332765026878672,-0.5429235892364931,-0.6439913188962579,-0.7348826048212819,-0.8141611697977544,-0.8805742425038131,-0.933072353982634,-0.9708259215023308,-0.9932383577419438,-0.999955498150411,-0.9908711975058644,-0.9661290072377507,-0.9261199070064217,-0.8714761263861698,-0.803061154282226,-0.7219560939545291,-0.6294425792680257,-0.5269825221294014,-0.4161950111443044,-0.29883072654546217,-0.17674427569115003,-0.051864886292115574,0.07383407952307976,0.19836630856101464,0.31976392457124125,0.43610858491060184,0.545561794470502,0.6463939578417739,0.7370117106310213,0.8159830980345512,0.8820602027948057,0.9341988649689235,0.9715751818947613,0.9935985276197028,0.9999208860571256,0.9904423503868265,0.9653127017970011,0.9249290426203242,0.8699295212655613,0.8011832481043631,0.7197765616637545,0.6269958621480731,0.524307283557231,0.41333352562578873,0.2958282116876132,0.17364817766691942,0.0487241300892071,-0.07696986322197842,-0.20144756764949837,-0.3227419685486369,-0.438936354296339,-0.5481946044447126,-0.6487902043614152,-0.7391335278628652,-0.8177969567165693,-0.8835374400704188,-0.9353161373215434,-0.9723148340254879,-0.9939488714388511,-0.9998763853811182,-0.990003708421763,-0.964486850026507,-0.9237290312732249,-0.8683743130942988,-0.7992974187328241,-0.717589911239785,-0.6245429444371404,-0.5216268599189046,-0.41046795250112666,-0.2928227712765424,-0.17055036237248744,-0.045582892035614976,0.08010488573779735,0.20452683454946324,0.32571682081289677,0.44175978288018364,0.5508219931223294,0.651180034757847,0.7412480355334075,0.8196027279059143,0.8850059397216868,0.9364241599913898,0.9730448705798208,0.9942893857347139,0.9998219965624731,0.9895552759485724,0.9636514600934111,0.9225198848324635,0.8668105172523892,0.7974036848172982,0.7153961643071852,0.6220838503930045,0.5189412777220859,0.4075983201089911,0.2898144350342016,0.16745086044325264,0.04244120319616083,-0.0832391160671826,-0.20760407880885898,-0.32868845194456675,-0.4445788427402453,-0.5534439345201466,-0.6535634253971854,-0.7433552127314714,-0.821400393744623,-0.886465687226094,-0.9375229220208318,-0.9737652843381682,-0.9946200671398149,-0.9997577201390607,-0.9890970574019631,-0.9628065402591814,-0.9213016152557523,-0.865238149204809,-0.7955020650855945,-0.7131953425607196,-0.6196186043345218,-0.5162505635255263,-0.40472465682827646,-0.28680323271109914,-0.1643497025312932,-0.03929909464012424,0.08637252321452944,0.21067926999572145,0.33165683255612866,0.44739350599783706,0.556060402708852,0.6559403527091671,0.7454550386184317,0.823189936454938,0.8879166681476774,0.9386124125437906,0.9744760681760827,0.994940912383928,0.9996835567465342,0.9886290573134215,0.9619520988795542,0.920074234590993,0.8636572245012658,0.7935925783435075,0.710987467765098,0.6171472306414552,0.5135547439386567,0.40184699107766214,0.2837891940860869,0.161246919305148,0.036156597441020726,-0.0895050761924589,-0.2137523776983622,-0.3346219332922095,-0.4502037448176756,-0.5586713718131892,-0.6583107931875116,-0.747547492428362,-0.824971338339434,-0.8893588681371307,-0.9396926207859067,-0.9751772150643697,-0.9952519182941001,-0.9995995071183215,-0.9881512803111797,-0.9610881444044047,-0.9188377549762012,-0.8620677587760867,-0.7916752434746833,-0.7087725617548402,-0.614669753754088,-0.5108538456214091,-0.3989653513154224,-0.28077234896614783,-0.15814254144934525,-0.03301374267610985,0.092636744022025,0.21682337152572487,0.3375837248297921,0.4530095314083085,0.5612768160123668,0.6606747233900784,0.7496325534681852,0.8267445817811453,0.8907922729320312,0.940763536064611,0.9758687180691348,0.9955530817946748,0.9995055720856216,0.9876637311201426,0.96021468537769,0.9175921886393639,0.8604697677481074,0.7897500794403294,0.7065506464339304,0.6121861981731163,0.5081478952839651,0.3960797660391579,0.2777527271859375,0.15503659966419692,0.029870561426258258,-0.09576749573300702,-0.21989222110757478,-0.3405421778786786,-0.4558108380223005,-0.5638767095401722,-0.6630321199390876,-0.7517102011179901,-0.8285096492438441,-0.8922168683569026,-0.9418251477892268,-0.9765505703518492,-0.995844399907339,-0.9994017525773913,-0.9871664145618665,-0.9593317304373691,-0.916337547898364,-0.858863267220423,-0.7878171052790868,-0.7043217437757208,-0.6096965884593053,-0.5054369196864679,-0.39319026378547506,-0.2747303586075846,-0.15192912466550934,-0.02672708477550453,0.0988973003642441,0.22295889609497957,0.3434972631816199,0.4586076369564949,0.5664710266853327,0.6653829595213844,0.75378041483117,0.8302665232721178,0.8936326403234135,0.9428774454610831,0.9772227651694266,0.9961258697511428,0.9992880496203403,0.9866593355544918,0.9584392883153101,0.9150738451607848,0.8572482730803183,0.7858763401068516,0.702085875822623,0.607200949233337,0.5027209456387205,0.3902968731297297,0.2717052731204091,0.14882014718425143,0.02358334381085118,-0.10202612696398379,-0.22602336616044288,-0.3464489515147252,-0.4613999005523135,-0.5690597417916871,-0.667727218888647,-0.755843174134616,-0.8320151864916137,-0.8950395748304653,-0.9439204186736336,-0.9778852958742843,-0.9963974885425269,-0.9991644643389178,-0.9861424991127103,-0.9575373678371908,-0.9138010929238555,-0.8556248012990453,-0.7839278031165678,-0.6998430646859619,-0.6046993051754764,-0.49999999999999406,-0.3873996226856923,-0.2686775006405996,-0.1457096979662085,-0.020439369621914616,0.10515394459010335,0.22908560099832906,0.34939721368764437,0.46418760119606717,0.5716428292584748,0.6700648748576598,0.7578984586289392,0.8337556216091546,0.8964376579643815,0.9449540571125261,0.97853815591442,0.9966592535953526,0.9990309979553043,0.9856159103477089,0.9566259779224361,0.9125193037742763,0.853992867931724,0.7819715135780118,0.6975933325457259,0.6021916810254062,0.4972741096787258,0.3844985411053433,0.2656470711108761,0.14259780777177664,0.017295193300575072,-0.10828072231045816,-0.23214557032506594,-0.35234202054396285,-0.46697071131915385,-0.574220263540624,-0.6723959043104684,-0.7599462479886993,-0.8354878114129346,-0.8978268758990012,-0.945978350555742,-0.9791813388334565,-0.9969111623209321,-0.9988876517893981,-0.985079574467111,-0.9557051275841177,-0.9112284903881336,-0.8523524891171245,-0.7800074908376626,-0.6953367016503169,-0.5996781015819486,-0.4945433016322157,-0.38159365707855086,-0.2626140145002765,-0.139484507375546,-0.014150845940768568,0.11140642920322998,0.23520324387948577,0.3552833429613972,0.4697492033983689,0.5767920191489346,0.6747202841946925,0.7619865219625411,0.8372117387727118,0.8992072148958351,0.9469932888736646,0.979814838270729,0.9971532122280469,0.9987344272588006,0.984533496774943,0.9547748259288529,0.9099286655307582,0.8507036810775591,0.7780357543184404,0.6930731943163922,0.5971585917027856,0.4918076028664463,0.37868499933274746,0.2595783608038187,0.13636982756609498,0.011006358638065756,-0.11453103435713387,-0.23825859142316605,-0.35822115185212283,-0.47252304995621475,-0.5793580706503646,-0.6770379915236803,-0.7640192603734689,-0.8389273866399237,-0.9005786613042189,-0.9479988620291939,-0.9804386479613274,-0.997385400922976,-0.9985713258788056,-0.9839776826715615,-0.9538350821567423,-0.9086198420565812,-0.8490464601187,-0.7760563235195764,-0.6908028329286124,-0.5946331763042817,-0.4890670404357168,-0.37577259663273777,-0.2565401400421629,-0.1332537991456435,-0.00786176248946386,0.1176545068718369,0.24131158274064557,0.3611554181631016,0.475292223561085,0.5819183926683172,0.6793490033767673,0.7660444431189811,0.8406347380479174,0.9019412015614126,0.948995060077859,0.9810527617361671,0.9976077261095229,0.9983983492623832,0.9834121376536178,0.9528859055612471,0.9073020329090473,0.8473808426293956,0.7740692180163936,0.6885256399393898,0.5921018803612033,0.486321641442462,0.3728564777803091,0.2534993822614111,0.1301364529297061,0.00471708859303652,-0.12077681585816484,-0.24436218763976472,-0.3640861128762892,-0.4780566968276359,-0.5844729598828099,-0.6816532968995344,-0.768062050171297,-0.842333776112064,-0.9032948221927515,-0.949981873167889,-0.9816571735220582,-0.9978201855890303,-0.9982154991201607,-0.9828368673139954,-0.9519273055291251,-0.9059752511204405,-0.8457068450815526,-0.7720744574600859,-0.6862416378687375,-0.5895647289064372,-0.4835714330369473,-0.3699366716140387,-0.25045611753269964,-0.1270178197468718,-0.0015723680475836267,0.12389793043845004,0.24741037595200543,0.3670132070089626,0.48081644241696936,0.587021747030818,0.6839508493039607,0.770072061577582,0.8440244840299478,0.9046395098117995,0.9509592915403245,0.9822518773417491,0.9980227772604111,0.9980227772604116,0.9822518773417478,0.9509592915403267,0.9046395098117964,0.8440244840299514,0.7700720615775773,0.6839508493039657,0.5870217470308235,0.4808164424169629,0.367013207008969,0.2474103759519983,0.12389793043845686,-0.0015723680475909746,-0.1270178197468791,-0.250456117532693,-0.36993667161404553,-0.4835714330369413,-0.5895647289064432,-0.6862416378687326,-0.7720744574600905,-0.8457068450815565,-0.9059752511204376,-0.9519273055291274,-0.9828368673139942,-0.9982154991201612,-0.9978201855890307,-0.9816571735220567,-0.9499818731678867,-0.9032948221927545,-0.84233377611206,-0.7680620501713014,-0.6816532968995289,-0.5844729598828154,-0.47805669682764196,-0.3640861128762824,-0.24436218763977138,-0.12077681585815755,0.004717088593029658,0.1301364529297134,0.25349938226140445,0.37285647778030273,0.48632164144246837,0.5921018803611977,0.6885256399393951,0.7740692180163893,0.8473808426293995,0.9073020329090444,0.952885905561245,0.9834121376536191,0.9983983492623829,0.9976077261095223,0.9810527617361684,0.9489950600778567,0.9019412015614093,0.8406347380479212,0.7660444431189763,0.6793490033767723,0.5819183926683112,0.4752922235610911,0.3611554181630947,0.24131158274063844,0.11765450687184373,-0.007861762489471206,-0.1332537991456367,-0.25654014004217,-0.3757725966327314,-0.4890670404357232,-0.5946331763042876,-0.6908028329286074,-0.7760563235195811,-0.8490464601186964,-0.9086198420565842,-0.9538350821567403,-0.9839776826715603,-0.998571325878806,-0.9973854009229766,-0.980438647961326,-0.9479988620291961,-0.9005786613042158,-0.8389273866399274,-0.7640192603734733,-0.6770379915236748,-0.5793580706503703,-0.4725230499562083,-0.3582211518521292,-0.23825859142315892,-0.1145310343571407,0.011006358638058893,0.13636982756610228,0.259578360803812,0.37868499933275424,0.4918076028664404,0.5971585917027915,0.6930731943163976,0.7780357543184361,0.8507036810775629,0.9099286655307554,0.954774825928855,0.9845334967749417,0.9987344272588009,0.9971532122280463,0.9798148382707305,0.9469932888736623,0.8992072148958381,0.8372117387727078,0.7619865219625456,0.6747202841946871,0.5767920191489286,0.46974920339837495,0.35528334296139036,0.23520324387949246,0.11140642920322268,-0.014150845940761705,-0.13948450737553922,-0.2626140145002836,-0.38159365707854453,-0.4945433016322221,-0.5996781015819431,-0.6953367016503222,-0.7800074908376583,-0.8523524891171208,-0.9112284903881366,-0.9557051275841157,-0.9850795744671123,-0.9988876517893978,-0.9969111623209315,-0.9791813388334579,-0.9459783505557442,-0.897826875898998,-0.8354878114129384,-0.7599462479886945,-0.6723959043104735,-0.5742202635406181,-0.46697071131914736,-0.3523420205439693,-0.23214557032505878,-0.10828072231046498,0.017295193300582417,0.14259780777176984,0.2656470711108832,0.3844985411053501,0.4972741096787199,0.6021916810254121,0.697593332545721,0.7819715135780164,0.8539928679317205,0.9125193037742793,0.9566259779224382,0.9856159103477077,0.9990309979553046,0.9966592535953531,0.9785381559144184,0.9449540571125284,0.8964376579643846,0.8337556216091505,0.7578984586289437,0.6700648748576543,0.5716428292584803,0.4641876011960607,0.3493972136876508,0.22908560099833575,0.10515394459009604,-0.020439369621907753,-0.14570969796621577,-0.2686775006405929,-0.38739962268569905,-0.5000000000000004,-0.604699305175471,-0.6998430646859671,-0.7839278031165636,-0.8556248012990492,-0.9138010929238527,-0.9575373678371929,-0.9861424991127116,-0.9991644643389176,-0.9963974885425263,-0.9778852958742857,-0.9439204186736313,-0.8950395748304683,-0.8320151864916095,-0.7558431741346112,-0.667727218888652,-0.5690597417916811,-0.46139990055231955,-0.34644895151471833,-0.22602336616044955,-0.10202612696399062,0.023583343810858526,0.14882014718424466,0.2717052731204162,0.3902968731297234,0.5027209456387268,0.6072009492333316,0.7020858758226182,0.7858763401068561,0.8572482730803147,0.9150738451607877,0.9584392883153081,0.986659335554493,0.99928804962034,0.9961258697511435,0.9772227651694251,0.9428774454610854,0.8936326403234103,0.8302665232721216,0.7537804148311651,0.6653829595213789,0.5664710266853383,0.45860763695648843,0.3434972631816263,0.2229588960949724,0.09889730036425093,-0.02672708477551188,-0.1519291246655166,-0.274730358607578,-0.39319026378548183,-0.505436919686462,-0.6096965884593111,-0.7043217437757159,-0.7878171052790913,-0.8588632672204267,-0.9163375478983612,-0.9593317304373712,-0.9871664145618654,-0.9994017525773915,-0.9958443999073396,-0.9765505703518507,-0.9418251477892243,-0.8922168683569057,-0.82850964924384,-0.7517102011179946,-0.6630321199390822,-0.5638767095401779,-0.4558108380223066,-0.34054217787867164,-0.2198922211075815,-0.09576749573299971,0.0298705614262514,0.15503659966420416,0.2777527271859309,0.3960797660391581,0.5081478952839714,0.6121861981731165,0.7065506464339306,0.7897500794403252,0.8604697677481075,0.9175921886393669,0.96021468537769,0.9876637311201437,0.9995055720856216,0.9955530817946748,0.9758687180691363,0.9407635360646109,0.8907922729320279,0.8267445817811452,0.7496325534681804,0.6606747233900835,0.5612768160123666,0.4530095314083146,0.3375837248297919,0.2168233715257177,0.09263674402202476,-0.03301374267611719,-0.15814254144933848,-0.28077234896614806,-0.3989653513154161,-0.5108538456214093,-0.6146697537540938,-0.7087725617548404,-0.7916752434746879,-0.8620677587760904,-0.9188377549761957,-0.9610881444044028,-0.9881512803111797,-0.9995995071183217,-0.9952519182940988,-0.9751772150643727,-0.939692620785909,-0.8893588681371306,-0.8249713383394299,-0.7475474924283525,-0.6583107931875168,-0.5586713718131889,-0.4502037448176754,-0.33462193329220263,-0.21375237769837585,-0.08950507619246574,0.03615659744102097,0.16124691930515525,0.28378919408610076,0.4018469910776494,0.5135547439386509,0.6171472306414554,0.7109874677651031,0.7935925783435163,0.8636572245012623,0.9200742345909902,0.9619520988795544,0.9886290573134227,0.9996835567465339,0.9949409123839287,0.9744760681760826,0.938612412543788,0.887916668147674,0.823189936454946,0.7454550386184362,0.655940352709167,0.5560604027088459,0.4473935059978241,0.33165683255613515,0.21067926999572817,0.0863725232145292,-0.03929909464013158,-0.16434970253130746,-0.28680323271109254,-0.4047246568282767,-0.5162505635255266,-0.6196186043345275,-0.7131953425607098,-0.7955020650855903,-0.8652381492048091,-0.9213016152557552,-0.9628065402591854,-0.9890970574019611,-0.9997577201390606,-0.9946200671398149,-0.9737652843381666,-0.9375229220208267,-0.8864656872260972,-0.8214003937446229,-0.7433552127314713,-0.6535634253971798,-0.5534439345201582,-0.4445788427402514,-0.32868845194456653,-0.2076040788088518,-0.08323911606717528,0.042441203196146866,0.16745086044324586,0.28981443503420184,0.4075983201089978,0.5189412777220983,0.6220838503929991,0.7153961643071804,0.7974036848172983,0.8668105172523929,0.922519884832469,0.9636514600934093,0.9895552759485724,0.9998219965624732,0.9942893857347131,0.973044870579824,0.9364241599913922,0.8850059397216867,0.81960272790591,0.7412480355333978,0.6511800347578576,0.5508219931223352,0.4417597828801834,0.3257168208128898,0.2045268345494491,0.0801048857378042,-0.04558289203561522,-0.1705503623724877,-0.29282277127654943,-0.4104679525011139,-0.5216268599188988,-0.6245429444371406,-0.7175899112397901,-0.7992974187328328,-0.8683743130942918,-0.9237290312732224,-0.9644868500265071,-0.990003708421764,-0.9998763853811184,-0.9939488714388518,-0.9723148340254896,-0.9353161373215434,-0.8835374400704153,-0.8177969567165773,-0.7391335278628698,-0.648790204361415,-0.5481946044447064,-0.4389363542963324,-0.3227419685486501,-0.20144756764950508,-0.07696986322197817,0.04872413008921444,0.17364817766693363,0.29582821168760665,0.41333352562578246,0.5243072835572312,0.6269958621480789,0.7197765616637646,0.801183248104359,0.8699295212655616,0.9249290426203242,0.965312701797003,0.9904423503868246,0.9999208860571255,0.9935985276197027,0.9715751818947596,0.9341988649689184,0.8820602027948123,0.815983098034555,0.7370117106310211,0.6463939578417682,0.5455617944704899,0.436108584910608,0.31976392457124103,0.19836630856101442,0.07383407952307243,-0.05186488629210163,-0.1767442756911433,-0.2988307265454624,-0.4161950111443111,-0.5269825221294077,-0.629442579268015,-0.7219560939545244,-0.8030611542822262,-0.8714761263861734,-0.9261199070064271,-0.9661290072377491,-0.9908711975058634,-0.999955498150411,-0.9932383577419429,-0.9708259215023274,-0.9330723539826364,-0.880574242503813,-0.8141611697977501,-0.7348826048212769,-0.6439913188962686,-0.5429235892364987,-0.433276502687867,-0.3167827183316401,-0.19528308775566625,-0.07069756565199684,0.055005129584191965,0.1798386258266798,0.30183028615715773,0.41905238075841184,0.5296525491790232,0.6318830716004754,0.724128486557879,0.8049311186951343,0.8730141131611884,0.9273016126546328,0.966935758275999,0.9912902455378558,0.9999802213186832,0.992868365367424,0.9700670602579009,0.9319366155031736,0.879079573892628,0.8123311900238842,0.7327462314891371,0.6415823112854899,0.5402800148329079,0.4304401356355981,0.3137983793120776,0.19219793572457075,0.06756035262687517,-0.058144828910480124,-0.18293119747238495,-0.30482686085895255,-0.42190560621051976,-0.5323173383011933,-0.6343173150105297,-0.7262937179902496,-0.806793122850327,-0.8745434663808935,-0.9284741478786256,-0.967732946933499,-0.991699490338681,-0.9999950553174459,-0.9924885541551345,-0.969298605666136,-0.9307916607622624,-0.8775762117425776,-0.8104931768102913,-0.7306026117619872,-0.6391669588329825,-0.5376310974029835,-0.4275995118036706,-0.3108109370257717,-0.18911088297791584,-0.06442247147276661,0.06128395322131893,0.18602196004469562,0.30782042101663226,0.42475465928404665,0.5349768631428515,0.6367452854250613,0.7284517668388621,0.8086471483337567,0.8760641709209585,0.9296375010827778,0.9685205653265605,0.9920989278611685,1.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_positive.json b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_positive.json new file mode 100644 index 000000000000..1da39f71e9e3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/large_positive.json @@ -0,0 +1 @@ +{"sine":[-1.2246467991473533e-15,0.1254580301802959,0.24893355446688908,0.36847539481024844,0.4821945338020473,0.5882939652008027,0.6850970904837794,0.7710742126987242,0.844866708955818,0.9053084995825973,0.9514444746831752,0.9825455869226271,0.9981203720381461,0.9979227150282434,0.9819557392975068,0.9504717573001114,0.9039682834620154,0.8431801723862247,0.7690680065743188,0.6828029171631906,0.5857480775418403,0.47943716228880984,0.3655501118252181,0.24588658575384828,0.12233752437846117,-0.0031447322077334415,-0.12857729528186684,-0.25197806138512446,-0.3713970338075684,-0.48494713671748896,-0.5908340350059542,-0.6873844886291076,-0.773072793388716,-0.8465448903300598,-0.9066397627768892,-0.9524077828844516,-0.9831257177957046,-0.998308158271268,-0.9977151891962617,-0.9813561807535599,-0.9494896403548136,-0.902619127669034,-0.8414852973000496,-0.7670541948555973,-0.6805019913552552,-0.5831963972062757,-0.476675049446429,-0.36262121378166756,-0.2428371853785868,-0.11921580873617194,0.006289433316063138,0.1316952888356201,0.25502007640030805,0.37431499992401757,0.48769494381363426,0.5933682618376209,0.6896650889782632,0.775063728879599,0.8482146999128006,0.9079620598795454,0.953361672377429,0.9836961261796101,0.9984860718705225,0.9974977965944996,0.9807469172200404,0.9484981335597961,0.9012610455459454,0.8397821004585401,0.7650327974578897,0.6781943358146653,0.5806389494286093,0.47390822259044624,0.35968872964453796,0.2397853834977373,0.1160929141252305,-0.009434072225897552,-0.13481198000658606,-0.25805956942884617,-0.37722926430276704,-0.49043792791641877,-0.5958966206338969,-0.6919388689775463,-0.7770469994822892,-0.8498761211906877,-0.9092753778138869,-0.9543061337287481,-0.9842568064333683,-0.9986541110764564,-0.9972705393728327,-0.9801279547221763,-0.9474972467204312,-0.8998940505233197,-0.8380705987052277,-0.7630038343715281,-0.6758799733626792,-0.57807575950037,-0.47113670908301614,-0.3567526884142356,-0.2367312102916827,-0.11296887142907479,0.012578617838740163,0.13792733797265375,0.2610965104120894,0.3801397981235988,0.49317606189947116,0.5984190863909247,0.6942058061407215,0.7790225855834909,0.8515291377333116,0.9105797035920362,0.9552411575982855,0.9848077530122075,0.998812274227269,0.9970334197786902,0.9794992993811165,0.9464869897348521,0.8985181561198664,0.8363508089657784,0.7609673256616695,0.6735589268868672,0.5755068527698907,0.46836053633266034,0.35381311912633745,0.23367469596425014,0.10984371154250366,-0.015723039057038406,-0.14104133192491783,-0.26413086931660584,-0.38304657260316827,-0.4959093186843909,-0.6009356341631195,-0.6964658780492194,-0.7809904676459161,-0.8531737331933922,-0.9118750243150336,-0.9561667347392512,-0.9853489604676169,-0.9989605597588272,-0.9967864401570345,-0.9788609574138618,-0.9454673725938637,-0.8971333759423139,-0.8346227482478166,-0.7589232914680873,-0.6712312193409055,-0.572932254642022,-0.4655797317939584,-0.3508700508513309,-0.23061587074243953,-0.10671746537135716,0.01886730478446281,0.14415393106795513,0.26716261613451925,0.38594955899532774,0.4986376712409915,0.603446239063427,0.6987190623523689,0.7829506262084607,0.8548098913069245,0.9131613271729826,0.9570828559982706,0.9858804234473959,0.9990989662046815,0.9965296029503365,0.9782129351332092,0.9444384053808297,0.895739723685256,0.8328864336407736,0.7568717520049912,0.6688968737443381,0.5703519905779049,0.4627943229673018,0.34792351269428584,0.22755476487608337,0.10359016383223926,-0.022011383926228686,-0.14726510462014333,-0.2701917208837784,-0.3888487285913849,-0.5013610925876044,-0.6059508762635477,-0.7009653367675978,-0.7849030418864054,-0.8564375958933472,-0.9144385994451643,-0.9579895123154882,-0.9864021366957143,-0.9992274921960794,-0.9962629106985543,-0.9775552389476858,-0.9434000982715827,-0.8943372131310287,-0.8311418823156947,-0.7548127275607995,-0.666555913182372,-0.5677660860947069,-0.460004337398609,-0.34497353379459406,-0.22449140863757525,-0.10046183785216958,0.025155245389375278,0.15037482181393722,0.2732181536084674,0.39174405272039975,0.5040795557913217,0.6084495209942152,0.703204679080683,0.7868476953715899,0.858056830855688,0.9157068285001699,0.9588866947246486,0.9869140950531595,0.9993461364619808,0.9959863660391044,0.9768878753614925,0.9423524615343182,0.8929258581495675,0.8293891115250848,0.7527462384979565,0.6642083608056152,0.5651745667653932,0.4572098026790786,0.3420201433256672,0.2214258323215565,0.09733251836830595,-0.02829885808311583,-0.15348305189621508,-0.27624188437907427,-0.3946355027494417,-0.5067930339682742,-0.6109421485454197,-0.705437067145951,-0.7887845674326303,-0.8596675801807449,-0.9169660017960135,-0.9597743943531895,-0.9874162934567893,-0.9994548978290692,-0.9956999717068379,-0.97621085097443,-0.9412955055295034,-0.8915056726982836,-0.8276281386027302,-0.7506723052527225,-0.6618542398298705,-0.5625774582184389,-0.45441074644487844,-0.3390633704946753,-0.21835806624464446,-0.09420223632762419,0.031442190919116646,0.15658976412855483,0.27926288329282833,0.39752305008391225,0.5095015002838734,0.6134287342666629,0.7076624788865061,0.7907136389150915,0.8612698279392295,0.9182161068802734,0.960652602422321,0.9879087269401771,0.9995537752217639,0.995403730534013,0.9755241724818379,0.9402292407097597,0.8900766708219032,0.8258589809635432,0.7485909483349946,0.6594935735358943,0.5599747861375987,0.45160719637689123,0.33610324454221774,0.21528814074508407,0.09107102268664044,-0.034585212811811664,-0.15969492778755193,-0.2822811204739683,-0.4004066661678081,-0.5122049279531131,-0.6159092535671737,-0.7098808922944291,-0.7926348907416816,-0.8628635582859325,-0.9194571313902042,-0.9615213102471268,-0.9883913906334726,-0.9996427676622297,-0.9950976454502659,-0.9748278466745353,-0.9391536776197666,-0.8886388666523571,-0.8240816561033613,-0.7465021883280525,-0.6571263852691935,-0.5573665762616409,-0.4487991802004662,-0.33313979474205413,-0.21221608618251023,-0.08793890841105548,0.037727892678716936,0.16279851216508814,0.28529656607405157,0.40328632248397744,0.5149032902408162,0.6183836819162137,0.7120922854310298,0.7945483039124438,0.864448755459862,0.920689063052864,0.9623805092366324,0.9888642797634364,0.9997218742703887,0.9947817194825846,0.9741218804387362,0.9380688268961678,0.8871922744086028,0.8222961815988113,0.7444060458884157,0.6547526984397359,0.5547528543841231,0.4459867256850752,0.3301730504008416,0.2091419329375644,0.08480592447551219,-0.040870199440716744,-0.1659004865687125,-0.28830919027221524,-0.4061619905544736,-0.5175965604618743,-0.6208519948432463,-0.7142966364270191,-0.7964538595049324,-0.8660254037844384,-0.9219118896852225,-0.963230190893913,-0.9893273896534929,-0.9997910942639262,-0.9944559557552778,-0.9734062807560013,-0.9369746992674381,-0.8857369083965323,-0.8205025751070864,-0.7423025417456119,-0.6523725365217878,-0.5521336463530718,-0.44316986064412045,-0.3272030408577714,-0.20606571141169822,-0.08167210186320426,0.04401210202237804,0.16900082032185354,0.2913189632755458,0.40903364194073905,0.5202847119815796,0.6233141679382125,0.7164939234827852,0.798351538674404,0.8675934876676037,0.9231255991943119,0.9640703468161488,0.9897807157237837,0.9998504269583004,0.9941203574899389,0.9726810547031608,0.9358713055538102,0.8842727830087781,0.818700854365832,0.7401916967019426,0.6499859230536502,0.5495089780708031,0.4403486129346216,0.3242297954843656,0.2029874520267617,0.07853747156567599,-0.047153569352307446,-0.17209948276416484,-0.2943258553192855,-0.41190124824399077,-0.5229677182158077,-0.6257701768518059,-0.7186841248685342,-0.8002413226540334,-0.869152991601997,-0.92433017957731,-0.9649009686947385,-0.9902242534911994,-0.9998998717667489,-0.9937749280054249,-0.971946209452233,-0.9347586566671523,-0.8827999127246174,-0.8168910371929061,-0.738073531632344,-0.6475928816373935,-0.5468788754936318,-0.4375230104569017,-0.32125334368414665,-0.19990718522479964,-0.07540206458240258,0.05029457036335918,0.17519644325187012,0.29732983666716767,0.41476478110541,0.5256455526313184,0.6282199972956466,0.7208672189245846,0.8021231927550398,0.8707039001651283,0.9255256189216763,0.9657220483153556,0.9906579985694314,0.9999394282002938,0.9934196707178107,0.9712017522703777,0.9336367636108455,0.8813183121098089,0.8150731414862599,0.7359480674841048,0.6451934359386887,0.5442433646315789,0.4346930811544009,0.3182737148923064,0.1968249414677091,0.07226591192058258,-0.05343507399305582,-0.17829167115798242,-0.300330877611751,-0.41762421220646195,-0.5283181887460537,-0.6306636050425546,-0.7230431840615127,-0.8039971303669399,-0.8722461980194828,-0.9267119054052854,-0.96653357755804,-0.99108194666902,-0.9999690958677468,-0.993054589140367,-0.9704476905197972,-0.9325056374797099,-0.8798279958164288,-0.8132471852237357,-0.7338153252767253,-0.6427876096865414,-0.5416024715481854,-0.4318588530132978,-0.31529093857550866,-0.19374075123689602,-0.0691290445947889,0.05657504918379615,0.18138513587264887,0.3033289484746323,0.42047951326921423,0.5309856001293152,0.6331009759268229,0.7252119987603945,0.8058631169576715,0.8737798699127276,0.9278890272965117,0.9673355483972903,0.991496093597384,0.9999888744757142,0.9926796868835207,0.9696840316576865,0.9313652894598548,0.8783289785827655,0.8114131864628654,0.7316753261016821,0.6403754266730238,0.5389562223602191,0.429020354062322,0.3123050442314905,0.19065464503307156,0.06599149362661946,-0.0597144648832049,-0.18447680680349546,-0.30632401960678074,-0.42333065605653925,-0.5336477604021217,-0.6355320858443788,-0.7273736415730497,-0.8077211340738041,-0.8753049006778146,-0.9290569729543618,-0.9681279529021202,-0.9919004352588768,-0.9999987638285974,-0.9922949676548135,-0.9689107832361507,-0.9302157308286029,-0.8768212752331546,-0.8095711633407404,-0.7295280911221884,-0.6379569107531166,-0.5363046432373807,-0.4261776123724388,-0.3093160613888648,-0.18756665337583883,-0.06285329004447551,0.06285329004448235,0.18756665337583162,0.30931606138887136,0.4261776123724321,0.5363046432373865,0.6379569107531109,0.7295280911221931,0.8095711633407444,0.876821275233151,0.9302157308286053,0.9689107832361488,0.9922949676548143,0.9999987638285974,0.9919004352588777,0.9681279529021185,0.9290569729543645,0.8753049006778114,0.8077211340738084,0.727373641573045,0.6355320858443845,0.5336477604021279,0.42333065605653303,0.30632401960678773,0.1844768068034887,0.059714464883212234,-0.06599149362662632,-0.19065464503306434,-0.31230504423148353,-0.4290203540623282,-0.5389562223602129,-0.6403754266730292,-0.731675326101677,-0.8114131864628694,-0.8783289785827687,-0.9313652894598521,-0.9696840316576882,-0.9926796868835198,-0.999988874475714,-0.991496093597385,-0.9673355483972885,-0.9278890272965091,-0.8737798699127313,-0.8058631169576675,-0.7252119987603997,-0.6331009759268176,-0.5309856001293214,-0.420479513269208,-0.30332894847462577,-0.18138513587265612,-0.0565750491837893,0.06912904459478157,0.19374075123690274,0.31529093857550167,0.4318588530132912,0.5416024715481912,0.6427876096865357,0.7338153252767301,0.8132471852237314,0.879827995816432,0.9325056374797073,0.9704476905197954,0.9930545891403679,0.999969095867747,0.9910819466690192,0.9665335775580419,0.9267119054052828,0.8722461980194863,0.8039971303669442,0.7230431840615079,0.6306636050425602,0.5283181887460479,0.4176242122064686,0.30033087761174443,0.17829167115797567,0.05343507399306315,-0.07226591192058943,-0.19682494146770188,-0.3182737148923129,-0.4346930811543943,-0.5442433646315846,-0.6451934359386939,-0.7359480674840997,-0.8150731414862639,-0.8813183121098055,-0.9336367636108479,-0.971201752270376,-0.9934196707178115,-0.9999394282002937,-0.9906579985694324,-0.9657220483153538,-0.9255256189216791,-0.8707039001651249,-0.8021231927550442,-0.7208672189245897,-0.6282199972956412,-0.5256455526313246,-0.41476478110540377,-0.29732983666717466,-0.17519644325186337,-0.050294570363366514,0.07540206458239525,0.19990718522480638,0.3212533436841397,0.4375230104569079,0.5468788754936257,0.6475928816373987,0.738073531632339,0.8168910371929019,0.8827999127246207,0.9347586566671496,0.9719462094522346,0.993774928005424,0.9998998717667488,0.9902242534911985,0.9649009686947405,0.9243301795773073,0.8691529916020005,0.8002413226540293,0.7186841248685393,0.6257701768518006,0.5229677182158018,0.41190124824399743,0.29432585531927896,0.17209948276417208,0.04715356935230059,-0.07853747156566866,-0.2029874520267684,-0.3242297954843721,-0.44034861293461497,-0.5495089780708088,-0.6499859230536446,-0.7401916967019472,-0.8187008543658277,-0.8842727830087747,-0.9358713055538126,-0.972681054703159,-0.9941203574899397,-0.9998504269583005,-0.9897807157237827,-0.9640703468161507,-0.9231255991943147,-0.8675934876676004,-0.7983515386744083,-0.7164939234827804,-0.6233141679382183,-0.5202847119815737,-0.40903364194074576,-0.2913189632755528,-0.1690008203218468,-0.044012102022385376,0.08167210186321108,0.20606571141169103,0.32720304085777785,0.4431698606441266,0.5521336463530657,0.6523725365217931,0.7423025417456071,0.8205025751070902,0.8857369083965289,0.9369746992674405,0.9734062807560029,0.994455955755277,0.9997910942639261,0.989327389653494,0.9632301908939112,0.9219118896852254,0.866025403784442,0.7964538595049283,0.7142966364270242,0.6208519948432409,0.5175965604618806,0.40616199055446733,0.28830919027222224,0.16590048656871975,0.04087019944070989,-0.08480592447550486,-0.2091419329375711,-0.33017305040083467,-0.44598672568508135,-0.554752854384117,-0.6547526984397304,-0.7444060458884203,-0.8222961815988071,-0.887192274408606,-0.9380688268961652,-0.9741218804387377,-0.9947817194825853,-0.9997218742703888,-0.9888642797634354,-0.9623805092366344,-0.9206890630528614,-0.8644487554598657,-0.7945483039124396,-0.712092285431025,-0.6183836819162196,-0.5149032902408103,-0.40328632248398416,-0.285296566074045,-0.1627985121650954,-0.03772789267871008,0.08793890841106232,0.21221608618250304,0.33313979474206057,0.44879918020045967,0.5573665762616467,0.657126385269188,0.7465021883280476,0.8240816561033653,0.8886388666523537,0.939153677619769,0.9748278466745337,0.9950976454502666,0.9996427676622299,0.9883913906334738,0.961521310247125,0.9194571313902071,0.8628635582859291,0.792634890741686,0.7098808922944243,0.6159092535671796,0.5122049279531194,0.40040666616780185,0.28228112047397536,0.15969492778754515,0.034585212811819005,-0.09107102268664727,-0.21528814074509076,-0.3361032445422108,-0.45160719637689734,-0.5599747861375926,-0.6594935735358994,-0.7485909483349897,-0.825858980963547,-0.8900766708219063,-0.9402292407097571,-0.9755241724818393,-0.9954037305340122,-0.9995537752217637,-0.9879087269401782,-0.9606526024223191,-0.9182161068802736,-0.8612698279392332,-0.7907136389150917,-0.7076624788865064,-0.6134287342666574,-0.5095015002838736,-0.397523050083919,-0.27926288329282856,-0.1565897641285621,-0.03144219091911689,0.09420223632762394,0.21835806624465115,0.33906337049467505,0.4544107464448719,0.5625774582184387,0.661854239829865,0.750672305252727,0.8276281386027301,0.8915056726982867,0.9412955055295034,0.9762108509744283,0.9956999717068379,0.9994548978290694,0.9874162934567883,0.9597743943531895,0.9169660017960107,0.859667580180745,0.7887845674326348,0.7054370671459512,0.6109421485454256,0.5067930339682806,0.3946355027494289,0.27624188437906766,0.15348305189621533,0.028298858083123175,-0.09733251836829156,-0.22142583232157012,-0.34202014332567365,-0.4572098026790784,-0.5651745667653871,-0.6642083608056044,-0.7527462384979611,-0.8293891115250847,-0.8929258581495674,-0.9423524615343157,-0.9768878753614955,-0.9959863660391051,-0.9993461364619808,-0.9869140950531606,-0.9588866947246527,-0.9157068285001643,-0.8580568308556845,-0.78684769537159,-0.7032046790806883,-0.6084495209942267,-0.5040795557913158,-0.3917440527203935,-0.27321815360846763,-0.1503748218139445,-0.025155245389361317,0.10046183785217641,0.224491408637575,0.3449735337945872,0.46000433739860247,0.5677660860947183,0.6665559131823771,0.7548127275607993,0.8311418823156906,0.8943372131310221,0.9434000982715849,0.9775552389476873,0.9962629106985543,0.9992274921960798,0.9864021366957167,0.9579895123154862,0.9144385994451644,0.8564375958933473,0.7849030418864099,0.7009653367675878,0.6059508762635422,0.5013610925876046,0.3888487285913917,0.27019172088379234,0.1472651046201295,0.022011383926221827,-0.10359016383223901,-0.2275547648760762,-0.3479235126942723,-0.4627943229673079,-0.5703519905779046,-0.6688968737443379,-0.7568717520049865,-0.8328864336407814,-0.8957397236852591,-0.9444384053808296,-0.9782129351332076,-0.9965296029503359,-0.999098966204681,-0.9858804234473947,-0.9570828559982707,-0.9131613271729856,-0.854809891306932,-0.7829506262084565,-0.698719062352364,-0.6034462390634272,-0.4986376712409979,-0.38594955899534106,-0.26716261613451264,-0.14415393106795535,-0.018867304784470153,0.10671746537134986,0.2306158707424531,0.35087005085133727,0.4655797317939582,0.572932254642016,0.6712312193408947,0.7589232914680963,0.8346227482478203,0.8971333759423138,0.9454673725938613,0.9788609574138589,0.9967864401570351,0.9989605597588272,0.9853489604676169,0.9561667347392534,0.911875024315028,0.8531737331933886,0.7809904676459162,0.6964658780492247,0.600935634163131,0.4959093186843788,0.38304657260316194,0.2641308693166061,0.1410413319249251,0.01572303905705286,-0.10984371154251048,-0.2336746959642568,-0.3538131191263372,-0.46836053633265384,-0.5755068527699021,-0.6735589268868724,-0.7609673256616694,-0.8363508089657743,-0.8985181561198632,-0.9464869897348567,-0.9794992993811179,-0.9970334197786902,-0.9988122742272694,-0.98480775301221,-0.9552411575982835,-0.9105797035920334,-0.8515291377333117,-0.7790225855834955,-0.6942058061407318,-0.5984190863909192,-0.4931760618994714,-0.38013979812359905,-0.2610965104120965,-0.13792733797263992,-0.0125786178387333,0.11296887142907455,0.23673121029167557,0.3567526884142221,0.47113670908302846,0.5780757595003756,0.675879973362679,0.7630038343715234,0.8380705987052198,0.8998940505233226,0.9474972467204311,0.9801279547221762,0.9972705393728322,0.9986541110764557,0.9842568064333671,0.9543061337287481,0.9092753778138899,0.8498761211906914,0.7770469994822804,0.6919388689775413,0.5958966206338971,0.49043792791642515,0.3772292643027804,0.25805956942883956,0.13481198000657926,0.009434072225897795,-0.1160929141252232,-0.23978538349772324,-0.35968872964454435,-0.473908222590446,-0.5806389494286033,-0.6781943358146598,-0.7650327974578987,-0.8397821004585438,-0.9012610455459453,-0.9484981335597937,-0.9807469172200376,-0.9974977965945006,-0.9984860718705222,-0.9836961261796102,-0.9533616723774312,-0.9079620598795514,-0.848214699912797,-0.7750637288795991,-0.6896650889782634,-0.5933682618376268,-0.48769494381362205,-0.37431499992401124,-0.25502007640030827,-0.1316952888356274,-0.006289433316077591,0.11921580873618581,0.24283718537859347,0.36262121378166734,0.4766750494464226,0.5831963972062639,0.6805019913552603,0.7670541948556018,0.8414852973000495,0.9026191276690309,0.9494896403548181,0.9813561807535612,0.9977151891962617,0.9983081582712684,0.9831257177957059,0.9524077828844474,0.9066397627768863,0.8465448903300599,0.7730727933887208,0.6873844886291182,0.5908340350059487,0.4849471367174829,0.3713970338075686,0.25197806138513157,0.12857729528188117,0.0031447322077265785,-0.12233752437846093,-0.24588658575384806,-0.36555011182521124,-0.4794371622888221,-0.5857480775418459,-0.6828029171631905,-0.7690680065743142,-0.843180172386217,-0.9039682834620213,-0.9504717573001135,-0.9819557392975067,-0.9979227150282429,-0.998120372038147,-0.9825455869226257,-0.9514444746831753,-0.9053084995825973,-0.8448667089558218,-0.7710742126987152,-0.6850970904837744,-0.5882939652008029,-0.48219453380205063,-0.3684753948102586,-0.248933554466879,-0.1254580301802891,9.82193361864236e-16],"x":[31.41592653589793,31.541716031537163,31.66750552717639,31.793295022815624,31.919084518454856,32.044874014094084,32.170663509733316,32.29645300537255,32.42224250101178,32.54803199665101,32.67382149229024,32.79961098792947,32.9254004835687,33.05118997920793,33.176979474847165,33.3027689704864,33.42855846612563,33.554347961764854,33.680137457404086,33.80592695304332,33.93171644868255,34.05750594432178,34.183295439961014,34.30908493560025,34.43487443123947,34.5606639268787,34.686453422517936,34.81224291815717,34.9380324137964,35.06382190943563,35.18961140507486,35.31540090071409,35.44119039635332,35.56697989199255,35.692769387631785,35.81855888327102,35.94434837891025,36.070137874549474,36.195927370188706,36.32171686582794,36.44750636146717,36.5732958571064,36.699085352745634,36.824874848384866,36.95066434402409,37.07645383966332,37.202243335302555,37.32803283094179,37.45382232658102,37.57961182222025,37.705401317859476,37.83119081349871,37.95698030913794,38.08276980477717,38.208559300416404,38.334348796055636,38.46013829169487,38.58592778733409,38.711717282973325,38.83750677861256,38.96329627425179,39.08908576989102,39.21487526553025,39.340664761169485,39.46645425680871,39.59224375244794,39.718033248087174,39.843822743726406,39.96961223936564,40.09540173500487,40.221191230644095,40.34698072628333,40.47277022192256,40.59855971756179,40.72434921320102,40.850138708840255,40.97592820447949,41.10171770011871,41.227507195757944,41.353296691397176,41.47908618703641,41.60487568267564,41.73066517831487,41.856454673954104,41.98224416959333,42.10803366523256,42.23382316087179,42.359612656511025,42.48540215215026,42.61119164778949,42.736981143428714,42.862770639067946,42.98856013470718,43.11434963034641,43.24013912598564,43.365928621624874,43.49171811726411,43.61750761290333,43.74329710854256,43.869086604181796,43.99487609982103,44.12066559546026,44.24645509109949,44.372244586738724,44.49803408237795,44.62382357801718,44.74961307365641,44.875402569295645,45.00119206493488,45.12698156057411,45.252771056213334,45.378560551852566,45.5043500474918,45.63013954313103,45.75592903877026,45.881718534409494,46.007508030048726,46.13329752568795,46.25908702132718,46.384876516966415,46.51066601260565,46.63645550824488,46.76224500388411,46.88803449952334,47.01382399516257,47.1396134908018,47.26540298644103,47.391192482080264,47.516981977719496,47.64277147335873,47.76856096899795,47.894350464637185,48.02013996027642,48.14592945591565,48.27171895155488,48.39750844719411,48.523297942833345,48.64908743847257,48.7748769341118,48.900666429751034,49.026455925390266,49.1522454210295,49.27803491666873,49.40382441230796,49.52961390794719,49.65540340358642,49.78119289922565,49.90698239486488,50.032771890504115,50.15856138614335,50.28435088178257,50.410140377421804,50.535929873061036,50.66171936870027,50.7875088643395,50.91329835997873,51.039087855617964,51.16487735125719,51.29066684689642,51.41645634253565,51.542245838174885,51.66803533381412,51.79382482945335,51.91961432509258,52.045403820731806,52.17119331637104,52.29698281201027,52.4227723076495,52.548561803288734,52.67435129892797,52.80014079456719,52.92593029020642,53.051719785845656,53.17750928148489,53.30329877712412,53.42908827276335,53.554877768402584,53.68066726404181,53.80645675968104,53.93224625532027,54.058035750959505,54.18382524659874,54.30961474223797,54.4354042378772,54.561193733516426,54.68698322915566,54.81277272479489,54.93856222043412,55.064351716073354,55.190141211712586,55.31593070735181,55.44172020299104,55.567509698630275,55.69329919426951,55.81908868990874,55.94487818554797,56.0706676811872,56.19645717682643,56.32224667246566,56.44803616810489,56.573825663744124,56.699615159383356,56.82540465502259,56.95119415066182,57.076983646301045,57.20277314194028,57.32856263757951,57.45435213321874,57.58014162885797,57.705931124497205,57.83172062013643,57.95751011577566,58.083299611414894,58.209089107054126,58.33487860269336,58.46066809833259,58.58645759397182,58.71224708961105,58.83803658525028,58.96382608088951,59.08961557652874,59.215405072167975,59.34119456780721,59.46698406344644,59.592773559085664,59.718563054724896,59.84435255036413,59.97014204600336,60.09593154164259,60.221721037281824,60.34751053292105,60.47330002856028,60.59908952419951,60.724879019838745,60.85066851547798,60.97645801111721,61.10224750675644,61.228037002395666,61.3538264980349,61.47961599367413,61.60540548931336,61.731194984952594,61.85698448059183,61.98277397623106,62.10856347187028,62.234352967509516,62.36014246314875,62.48593195878798,62.61172145442721,62.737510950066444,62.86330044570567,62.9890899413449,63.11487943698413,63.240668932623365,63.3664584282626,63.49224792390183,63.61803741954106,63.743826915180286,63.86961641081952,63.99540590645875,64.12119540209798,64.2469848977372,64.37277439337645,64.49856388901567,64.62435338465491,64.75014288029413,64.87593237593337,65.0017218715726,65.12751136721182,65.25330086285106,65.37909035849029,65.50487985412953,65.63066934976875,65.75645884540799,65.88224834104722,66.00803783668644,66.13382733232568,66.2596168279649,66.38540632360414,66.51119581924337,66.6369853148826,66.76277481052183,66.88856430616106,67.0143538018003,67.14014329743952,67.26593279307876,67.39172228871799,67.51751178435721,67.64330127999645,67.76909077563568,67.89488027127491,68.02066976691414,68.14645926255338,68.2722487581926,68.39803825383183,68.52382774947107,68.64961724511029,68.77540674074953,68.90119623638876,69.026985732028,69.15277522766722,69.27856472330645,69.40435421894568,69.53014371458491,69.65593321022415,69.78172270586337,69.90751220150261,70.03330169714184,70.15909119278106,70.2848806884203,70.41067018405953,70.53645967969877,70.66224917533799,70.78803867097723,70.91382816661645,71.03961766225568,71.16540715789492,71.29119665353414,71.41698614917338,71.54277564481261,71.66856514045183,71.79435463609107,71.9201441317303,72.04593362736954,72.17172312300876,72.297512618648,72.42330211428722,72.54909160992645,72.67488110556569,72.80067060120491,72.92646009684415,73.05224959248338,73.17803908812262,73.30382858376184,73.42961807940107,73.5554075750403,73.68119707067953,73.80698656631877,73.932776061958,74.05856555759723,74.18435505323646,74.31014454887568,74.43593404451492,74.56172354015415,74.68751303579339,74.81330253143261,74.93909202707185,75.06488152271108,75.1906710183503,75.31646051398954,75.44225000962876,75.568039505268,75.69382900090723,75.81961849654645,75.9454079921857,76.07119748782492,76.19698698346416,76.32277647910338,76.44856597474262,76.57435547038185,76.70014496602107,76.82593446166031,76.95172395729954,77.07751345293877,77.203302948578,77.32909244421724,77.45488193985646,77.58067143549569,77.70646093113493,77.83225042677415,77.95803992241339,78.08382941805262,78.20961891369186,78.33540840933108,78.4611979049703,78.58698740060954,78.71277689624877,78.83856639188801,78.96435588752723,79.09014538316647,79.2159348788057,79.34172437444492,79.46751387008416,79.59330336572339,79.71909286136263,79.84488235700185,79.97067185264109,80.09646134828031,80.22225084391954,80.34804033955878,80.473829835198,80.59961933083724,80.72540882647647,80.85119832211569,80.97698781775493,81.10277731339416,81.2285668090334,81.35435630467262,81.48014580031186,81.60593529595108,81.73172479159031,81.85751428722955,81.98330378286877,82.10909327850801,82.23488277414724,82.36067226978648,82.4864617654257,82.61225126106493,82.73804075670417,82.86383025234339,82.98961974798263,83.11540924362185,83.2411987392611,83.36698823490032,83.49277773053954,83.61856722617878,83.74435672181801,83.87014621745725,83.99593571309647,84.12172520873571,84.24751470437494,84.37330420001416,84.4990936956534,84.62488319129262,84.75067268693186,84.87646218257109,85.00225167821033,85.12804117384955,85.25383066948878,85.37962016512802,85.50540966076724,85.63119915640648,85.7569886520457,85.88277814768493,86.00856764332417,86.1343571389634,86.26014663460263,86.38593613024186,86.5117256258811,86.63751512152032,86.76330461715955,86.88909411279879,87.01488360843801,87.14067310407725,87.26646259971648,87.39225209535572,87.51804159099494,87.64383108663417,87.7696205822734,87.89541007791263,88.02119957355187,88.1469890691911,88.27277856483033,88.39856806046956,88.52435755610878,88.65014705174802,88.77593654738725,88.90172604302649,89.02751553866571,89.15330503430495,89.27909452994417,89.4048840255834,89.53067352122264,89.65646301686186,89.7822525125011,89.90804200814033,90.03383150377957,90.15962099941879,90.28541049505802,90.41119999069726,90.53698948633648,90.66277898197572,90.78856847761494,90.91435797325417,91.04014746889341,91.16593696453263,91.29172646017187,91.4175159558111,91.54330545145034,91.66909494708956,91.79488444272879,91.92067393836803,92.04646343400725,92.17225292964649,92.29804242528571,92.42383192092495,92.54962141656418,92.6754109122034,92.80120040784264,92.92698990348187,93.0527793991211,93.17856889476033,93.30435839039957,93.4301478860388,93.55593738167802,93.68172687731726,93.80751637295648,93.93330586859572,94.05909536423495,94.18488485987419,94.31067435551341,94.43646385115264,94.56225334679188,94.6880428424311,94.81383233807034,94.93962183370957,95.0654113293488,95.19120082498803,95.31699032062726,95.4427798162665,95.56856931190572,95.69435880754496,95.82014830318418,95.94593779882341,96.07172729446265,96.19751679010187,96.32330628574111,96.44909578138034,96.57488527701958,96.7006747726588,96.82646426829803,96.95225376393726,97.07804325957649,97.20383275521573,97.32962225085495,97.45541174649419,97.58120124213342,97.70699073777264,97.83278023341188,97.9585697290511,98.08435922469035,98.21014872032957,98.33593821596881,98.46172771160803,98.58751720724726,98.7133067028865,98.83909619852572,98.96488569416496,99.09067518980419,99.21646468544343,99.34225418108265,99.46804367672188,99.59383317236112,99.71962266800034,99.84541216363958,99.9712016592788,100.09699115491804,100.22278065055727,100.3485701461965,100.47435964183573,100.60014913747496,100.7259386331142,100.85172812875342,100.97751762439265,101.10330712003189,101.22909661567111,101.35488611131035,101.48067560694957,101.60646510258881,101.73225459822804,101.85804409386726,101.9838335895065,102.10962308514573,102.23541258078497,102.36120207642419,102.48699157206343,102.61278106770266,102.73857056334188,102.86436005898112,102.99014955462034,103.11593905025958,103.24172854589881,103.36751804153805,103.49330753717727,103.6190970328165,103.74488652845574,103.87067602409496,103.9964655197342,104.12225501537343,104.24804451101267,104.37383400665189,104.49962350229112,104.62541299793035,104.75120249356958,104.87699198920882,105.00278148484804,105.12857098048728,105.25436047612651,105.38014997176573,105.50593946740497,105.6317289630442,105.75751845868344,105.88330795432266,106.00909744996189,106.13488694560112,106.26067644124035,106.38646593687959,106.51225543251881,106.63804492815805,106.76383442379728,106.8896239194365,107.01541341507574,107.14120291071497,107.2669924063542,107.39278190199343,107.51857139763267,107.6443608932719,107.77015038891112,107.89593988455036,108.02172938018958,108.14751887582882,108.27330837146805,108.39909786710729,108.52488736274651,108.65067685838574,108.77646635402498,108.9022558496642,109.02804534530344,109.15383484094266,109.2796243365819,109.40541383222113,109.53120332786035,109.65699282349959,109.78278231913882,109.90857181477806,110.03436131041728,110.16015080605652,110.28594030169575,110.41172979733497,110.53751929297421,110.66330878861343,110.78909828425267,110.9148877798919,111.04067727553112,111.16646677117036,111.29225626680959,111.41804576244883,111.54383525808805,111.66962475372729,111.79541424936652,111.92120374500574,112.04699324064498,112.1727827362842,112.29857223192344,112.42436172756267,112.55015122320191,112.67594071884113,112.80173021448036,112.9275197101196,113.05330920575882,113.17909870139806,113.30488819703729,113.43067769267653,113.55646718831575,113.68225668395498,113.80804617959421,113.93383567523344,114.05962517087268,114.1854146665119,114.31120416215114,114.43699365779037,114.56278315342959,114.68857264906883,114.81436214470806,114.9401516403473,115.06594113598652,115.19173063162575,115.31752012726498,115.44330962290421,115.56909911854345,115.69488861418267,115.82067810982191,115.94646760546114,116.07225710110036,116.1980465967396,116.32383609237883,116.44962558801807,116.57541508365729,116.70120457929653,116.82699407493575,116.95278357057498,117.07857306621422,117.20436256185344,117.33015205749268,117.45594155313191,117.58173104877115,117.70752054441037,117.8333100400496,117.95909953568884,118.08488903132806,118.2106785269673,118.33646802260652,118.46225751824576,118.58804701388499,118.71383650952421,118.83962600516345,118.96541550080268,119.09120499644192,119.21699449208114,119.34278398772038,119.4685734833596,119.59436297899883,119.72015247463807,119.8459419702773,119.97173146591653,120.09752096155576,120.22331045719498,120.34909995283422,120.47488944847345,120.60067894411269,120.72646843975191,120.85225793539115,120.97804743103038,121.1038369266696,121.22962642230884,121.35541591794806,121.4812054135873,121.60699490922653,121.73278440486577,121.858573900505,121.98436339614422,122.11015289178346,122.23594238742268,122.36173188306192,122.48752137870115,122.61331087434039,122.73910036997961,122.86488986561884,122.99067936125807,123.1164688568973,123.24225835253654,123.36804784817576,123.493837343815,123.61962683945423,123.74541633509345,123.87120583073269,123.99699532637192,124.12278482201116,124.24857431765038,124.37436381328962,124.50015330892884,124.62594280456807,124.75173230020731,124.87752179584653,125.00331129148577,125.129100787125,125.25489028276422,125.38067977840346,125.50646927404269,125.63225876968193,125.75804826532115,125.88383776096039,126.00962725659961,126.13541675223884,126.26120624787808,126.3869957435173,126.51278523915654,126.63857473479577,126.764364230435,126.89015372607423,127.01594322171346,127.1417327173527,127.26752221299192,127.39331170863116,127.51910120427038,127.64489069990962,127.77068019554885,127.89646969118807,128.0222591868273,128.14804868246654,128.27383817810576,128.39962767374502,128.52541716938424,128.65120666502347,128.7769961606627,128.90278565630192,129.02857515194117,129.1543646475804,129.28015414321962,129.40594363885884,129.53173313449807,129.65752263013732,129.78331212577655,129.90910162141577,130.034891117055,130.16068061269425,130.28647010833348,130.4122596039727,130.53804909961192,130.66383859525115,130.7896280908904,130.91541758652963,131.04120708216885,131.16699657780808,131.2927860734473,131.41857556908656,131.54436506472578,131.670154560365,131.79594405600423,131.92173355164348,132.0475230472827,132.17331254292193,132.29910203856116,132.42489153420038,132.55068102983964,132.67647052547886,132.8022600211181,132.9280495167573,133.05383901239654,133.1796285080358,133.30541800367502,133.43120749931424,133.55699699495347,133.6827864905927,133.80857598623194,133.93436548187117,134.0601549775104,134.18594447314962,134.31173396878887,134.4375234644281,134.56331296006732,134.68910245570655,134.81489195134577,134.94068144698502,135.06647094262425,135.19226043826347,135.3180499339027,135.44383942954192,135.56962892518118,135.6954184208204,135.82120791645963,135.94699741209885,136.0727869077381,136.19857640337733,136.32436589901656,136.45015539465578,136.575944890295,136.70173438593426,136.82752388157348,136.9533133772127,137.07910287285193,137.20489236849116,137.3306818641304,137.45647135976964,137.58226085540886,137.7080503510481,137.8338398466873,137.95962934232656,138.0854188379658,138.21120833360501,138.33699782924424,138.4627873248835,138.58857682052272,138.71436631616194,138.84015581180117,138.9659453074404,139.09173480307965,139.21752429871887,139.3433137943581,139.46910328999732,139.59489278563655,139.7206822812758,139.84647177691502,139.97226127255425,140.09805076819347,140.22384026383273,140.34962975947195,140.47541925511118,140.6012087507504,140.72699824638963,140.85278774202888,140.9785772376681,141.10436673330733,141.23015622894656,141.35594572458578,141.48173522022503,141.60752471586426,141.73331421150348,141.8591037071427,141.98489320278196,142.1106826984212,142.2364721940604,142.36226168969964,142.48805118533886,142.61384068097811,142.73963017661734,142.86541967225656,142.9912091678958,143.116998663535,143.24278815917427,143.3685776548135,143.49436715045272,143.62015664609194,143.74594614173117,143.87173563737042,143.99752513300965,144.12331462864887,144.2491041242881,144.37489361992735,144.50068311556657,144.6264726112058,144.75226210684502,144.87805160248425,145.0038410981235,145.12963059376273,145.25542008940195,145.38120958504118,145.5069990806804,145.63278857631965,145.75857807195888,145.8843675675981,146.01015706323733,146.13594655887658,146.2617360545158,146.38752555015503,146.51331504579426,146.63910454143348,146.76489403707274,146.89068353271196,147.0164730283512,147.1422625239904,147.26805201962964,147.3938415152689,147.5196310109081,147.64542050654734,147.77121000218656,147.8969994978258,148.02278899346504,148.14857848910427,148.2743679847435,148.40015748038272,148.52594697602197,148.6517364716612,148.77752596730042,148.90331546293964,149.02910495857887,149.15489445421812,149.28068394985735,149.40647344549657,149.5322629411358,149.65805243677502,149.78384193241428,149.9096314280535,150.03542092369273,150.16121041933195,150.2869999149712,150.41278941061043,150.53857890624965,150.66436840188888,150.7901578975281,150.91594739316736,151.04173688880658,151.1675263844458,151.29331588008503,151.41910537572426,151.5448948713635,151.67068436700274,151.79647386264196,151.92226335828119,152.04805285392044,152.17384234955966,152.2996318451989,152.4254213408381,152.55121083647734,152.6770003321166,152.80278982775582,152.92857932339504,153.05436881903427,153.1801583146735,153.30594781031274,153.43173730595197,153.5575268015912,153.68331629723042,153.80910579286964,153.9348952885089,154.06068478414812,154.18647427978735,154.31226377542657,154.43805327106583,154.56384276670505,154.68963226234428,154.8154217579835,154.94121125362273,155.06700074926198,155.1927902449012,155.31857974054043,155.44436923617965,155.57015873181888,155.69594822745813,155.82173772309736,155.94752721873658,156.0733167143758,156.19910621001506,156.32489570565428,156.4506852012935,156.57647469693273,156.70226419257196,156.8280536882112,156.95384318385044,157.07963267948966],"cosine":[1.0,0.9920989278611685,0.9685205653265605,0.9296375010827778,0.8760641709209585,0.8086471483337567,0.7284517668388621,0.6367452854250613,0.5349768631428515,0.42475465928404665,0.30782042101663226,0.18602196004469562,0.06128395322131893,-0.06442247147276661,-0.18911088297791584,-0.3108109370257717,-0.4275995118036706,-0.5376310974029835,-0.6391669588329825,-0.7306026117619872,-0.8104931768102913,-0.8775762117425776,-0.9307916607622624,-0.969298605666136,-0.9924885541551345,-0.9999950553174459,-0.991699490338681,-0.967732946933499,-0.9284741478786256,-0.8745434663808935,-0.806793122850327,-0.7262937179902496,-0.6343173150105297,-0.5323173383011933,-0.42190560621051976,-0.30482686085895255,-0.18293119747238495,-0.058144828910480124,0.06756035262687517,0.19219793572457075,0.3137983793120776,0.4304401356355981,0.5402800148329079,0.6415823112854899,0.7327462314891371,0.8123311900238842,0.879079573892628,0.9319366155031736,0.9700670602579009,0.992868365367424,0.9999802213186832,0.9912902455378558,0.966935758275999,0.9273016126546328,0.8730141131611884,0.8049311186951343,0.724128486557879,0.6318830716004754,0.5296525491790232,0.41905238075841184,0.30183028615715773,0.1798386258266798,0.055005129584191965,-0.07069756565199684,-0.19528308775566625,-0.3167827183316401,-0.433276502687867,-0.5429235892364987,-0.6439913188962686,-0.7348826048212769,-0.8141611697977501,-0.880574242503813,-0.9330723539826364,-0.9708259215023274,-0.9932383577419429,-0.999955498150411,-0.9908711975058634,-0.9661290072377491,-0.9261199070064271,-0.8714761263861734,-0.8030611542822262,-0.7219560939545244,-0.629442579268015,-0.5269825221294077,-0.4161950111443111,-0.2988307265454624,-0.1767442756911433,-0.05186488629210163,0.07383407952307243,0.19836630856101442,0.31976392457124103,0.436108584910608,0.5455617944704899,0.6463939578417682,0.7370117106310211,0.815983098034555,0.8820602027948123,0.9341988649689184,0.9715751818947596,0.9935985276197027,0.9999208860571255,0.9904423503868246,0.965312701797003,0.9249290426203242,0.8699295212655616,0.801183248104359,0.7197765616637646,0.6269958621480789,0.5243072835572312,0.41333352562578246,0.29582821168760665,0.17364817766693363,0.04872413008921444,-0.07696986322197817,-0.20144756764950508,-0.3227419685486501,-0.4389363542963324,-0.5481946044447064,-0.648790204361415,-0.7391335278628698,-0.8177969567165773,-0.8835374400704153,-0.9353161373215434,-0.9723148340254896,-0.9939488714388518,-0.9998763853811184,-0.990003708421764,-0.9644868500265071,-0.9237290312732224,-0.8683743130942918,-0.7992974187328328,-0.7175899112397901,-0.6245429444371406,-0.5216268599188988,-0.4104679525011139,-0.29282277127654943,-0.1705503623724877,-0.04558289203561522,0.0801048857378042,0.2045268345494491,0.3257168208128898,0.4417597828801834,0.5508219931223352,0.6511800347578576,0.7412480355333978,0.81960272790591,0.8850059397216867,0.9364241599913922,0.973044870579824,0.9942893857347131,0.9998219965624732,0.9895552759485724,0.9636514600934093,0.922519884832469,0.8668105172523929,0.7974036848172983,0.7153961643071804,0.6220838503929991,0.5189412777220983,0.4075983201089978,0.28981443503420184,0.16745086044324586,0.042441203196146866,-0.08323911606717528,-0.2076040788088518,-0.32868845194456653,-0.4445788427402514,-0.5534439345201582,-0.6535634253971798,-0.7433552127314713,-0.8214003937446229,-0.8864656872260972,-0.9375229220208267,-0.9737652843381666,-0.9946200671398149,-0.9997577201390606,-0.9890970574019611,-0.9628065402591854,-0.9213016152557552,-0.8652381492048091,-0.7955020650855903,-0.7131953425607098,-0.6196186043345275,-0.5162505635255266,-0.4047246568282767,-0.28680323271109254,-0.16434970253130746,-0.03929909464013158,0.0863725232145292,0.21067926999572817,0.33165683255613515,0.4473935059978241,0.5560604027088459,0.655940352709167,0.7454550386184362,0.823189936454946,0.887916668147674,0.938612412543788,0.9744760681760826,0.9949409123839287,0.9996835567465339,0.9886290573134227,0.9619520988795544,0.9200742345909902,0.8636572245012623,0.7935925783435163,0.7109874677651031,0.6171472306414554,0.5135547439386509,0.4018469910776494,0.28378919408610076,0.16124691930515525,0.03615659744102097,-0.08950507619246574,-0.21375237769837585,-0.33462193329220263,-0.4502037448176754,-0.5586713718131889,-0.6583107931875168,-0.7475474924283525,-0.8249713383394299,-0.8893588681371306,-0.939692620785909,-0.9751772150643727,-0.9952519182940988,-0.9995995071183217,-0.9881512803111797,-0.9610881444044028,-0.9188377549761957,-0.8620677587760904,-0.7916752434746879,-0.7087725617548404,-0.6146697537540938,-0.5108538456214093,-0.3989653513154161,-0.28077234896614806,-0.15814254144933848,-0.03301374267611719,0.09263674402202476,0.2168233715257177,0.3375837248297919,0.4530095314083146,0.5612768160123666,0.6606747233900835,0.7496325534681804,0.8267445817811452,0.8907922729320279,0.9407635360646109,0.9758687180691363,0.9955530817946748,0.9995055720856216,0.9876637311201437,0.96021468537769,0.9175921886393669,0.8604697677481075,0.7897500794403252,0.7065506464339306,0.6121861981731165,0.5081478952839714,0.3960797660391581,0.2777527271859309,0.15503659966420416,0.0298705614262514,-0.09576749573299971,-0.2198922211075815,-0.34054217787867164,-0.4558108380223066,-0.5638767095401779,-0.6630321199390822,-0.7517102011179946,-0.82850964924384,-0.8922168683569057,-0.9418251477892243,-0.9765505703518507,-0.9958443999073396,-0.9994017525773915,-0.9871664145618654,-0.9593317304373712,-0.9163375478983612,-0.8588632672204267,-0.7878171052790913,-0.7043217437757159,-0.6096965884593111,-0.505436919686462,-0.39319026378548183,-0.274730358607578,-0.1519291246655166,-0.02672708477551188,0.09889730036425093,0.2229588960949724,0.3434972631816263,0.45860763695648843,0.5664710266853383,0.6653829595213789,0.7537804148311651,0.8302665232721216,0.8936326403234103,0.9428774454610854,0.9772227651694251,0.9961258697511435,0.99928804962034,0.986659335554493,0.9584392883153081,0.9150738451607877,0.8572482730803147,0.7858763401068561,0.7020858758226182,0.6072009492333316,0.5027209456387268,0.3902968731297234,0.2717052731204162,0.14882014718424466,0.023583343810858526,-0.10202612696399062,-0.22602336616044955,-0.34644895151471833,-0.46139990055231955,-0.5690597417916811,-0.667727218888652,-0.7558431741346112,-0.8320151864916095,-0.8950395748304683,-0.9439204186736313,-0.9778852958742857,-0.9963974885425263,-0.9991644643389176,-0.9861424991127116,-0.9575373678371929,-0.9138010929238527,-0.8556248012990492,-0.7839278031165636,-0.6998430646859671,-0.604699305175471,-0.5000000000000004,-0.38739962268569905,-0.2686775006405929,-0.14570969796621577,-0.020439369621907753,0.10515394459009604,0.22908560099833575,0.3493972136876508,0.4641876011960607,0.5716428292584803,0.6700648748576543,0.7578984586289437,0.8337556216091505,0.8964376579643846,0.9449540571125284,0.9785381559144184,0.9966592535953531,0.9990309979553046,0.9856159103477077,0.9566259779224382,0.9125193037742793,0.8539928679317205,0.7819715135780164,0.697593332545721,0.6021916810254121,0.4972741096787199,0.3844985411053501,0.2656470711108832,0.14259780777176984,0.017295193300582417,-0.10828072231046498,-0.23214557032505878,-0.3523420205439693,-0.46697071131914736,-0.5742202635406181,-0.6723959043104735,-0.7599462479886945,-0.8354878114129384,-0.897826875898998,-0.9459783505557442,-0.9791813388334579,-0.9969111623209315,-0.9988876517893978,-0.9850795744671123,-0.9557051275841157,-0.9112284903881366,-0.8523524891171208,-0.7800074908376583,-0.6953367016503222,-0.5996781015819431,-0.4945433016322221,-0.38159365707854453,-0.2626140145002836,-0.13948450737553922,-0.014150845940761705,0.11140642920322268,0.23520324387949246,0.35528334296139036,0.46974920339837495,0.5767920191489286,0.6747202841946871,0.7619865219625456,0.8372117387727078,0.8992072148958381,0.9469932888736623,0.9798148382707305,0.9971532122280463,0.9987344272588009,0.9845334967749417,0.954774825928855,0.9099286655307554,0.8507036810775629,0.7780357543184361,0.6930731943163976,0.5971585917027915,0.4918076028664404,0.37868499933275424,0.259578360803812,0.13636982756610228,0.011006358638058893,-0.1145310343571407,-0.23825859142315892,-0.3582211518521292,-0.4725230499562083,-0.5793580706503703,-0.6770379915236748,-0.7640192603734733,-0.8389273866399274,-0.9005786613042158,-0.9479988620291961,-0.980438647961326,-0.9973854009229766,-0.998571325878806,-0.9839776826715603,-0.9538350821567403,-0.9086198420565842,-0.8490464601186964,-0.7760563235195811,-0.6908028329286074,-0.5946331763042876,-0.4890670404357232,-0.3757725966327314,-0.25654014004217,-0.1332537991456367,-0.007861762489471206,0.11765450687184373,0.24131158274063844,0.3611554181630947,0.4752922235610911,0.5819183926683112,0.6793490033767723,0.7660444431189763,0.8406347380479212,0.9019412015614093,0.9489950600778567,0.9810527617361684,0.9976077261095223,0.9983983492623829,0.9834121376536191,0.952885905561245,0.9073020329090444,0.8473808426293995,0.7740692180163893,0.6885256399393951,0.5921018803611977,0.48632164144246837,0.37285647778030273,0.25349938226140445,0.1301364529297134,0.004717088593029658,-0.12077681585815755,-0.24436218763977138,-0.3640861128762824,-0.47805669682764196,-0.5844729598828154,-0.6816532968995289,-0.7680620501713014,-0.84233377611206,-0.9032948221927545,-0.9499818731678867,-0.9816571735220567,-0.9978201855890307,-0.9982154991201612,-0.9828368673139942,-0.9519273055291274,-0.9059752511204376,-0.8457068450815565,-0.7720744574600905,-0.6862416378687326,-0.5895647289064432,-0.4835714330369413,-0.36993667161404553,-0.250456117532693,-0.1270178197468791,-0.0015723680475909746,0.12389793043845686,0.2474103759519983,0.367013207008969,0.4808164424169629,0.5870217470308235,0.6839508493039657,0.7700720615775773,0.8440244840299514,0.9046395098117964,0.9509592915403267,0.9822518773417478,0.9980227772604116,0.9980227772604111,0.9822518773417491,0.9509592915403245,0.9046395098117995,0.8440244840299478,0.770072061577582,0.6839508493039607,0.587021747030818,0.48081644241696936,0.3670132070089626,0.24741037595200543,0.12389793043845004,-0.0015723680475836267,-0.1270178197468718,-0.25045611753269964,-0.3699366716140387,-0.4835714330369473,-0.5895647289064372,-0.6862416378687375,-0.7720744574600859,-0.8457068450815526,-0.9059752511204405,-0.9519273055291251,-0.9828368673139954,-0.9982154991201607,-0.9978201855890303,-0.9816571735220582,-0.949981873167889,-0.9032948221927515,-0.842333776112064,-0.768062050171297,-0.6816532968995344,-0.5844729598828099,-0.4780566968276359,-0.3640861128762892,-0.24436218763976472,-0.12077681585816484,0.00471708859303652,0.1301364529297061,0.2534993822614111,0.3728564777803091,0.486321641442462,0.5921018803612033,0.6885256399393898,0.7740692180163936,0.8473808426293956,0.9073020329090473,0.9528859055612471,0.9834121376536178,0.9983983492623832,0.9976077261095229,0.9810527617361671,0.948995060077859,0.9019412015614126,0.8406347380479174,0.7660444431189811,0.6793490033767673,0.5819183926683172,0.475292223561085,0.3611554181631016,0.24131158274064557,0.1176545068718369,-0.00786176248946386,-0.1332537991456435,-0.2565401400421629,-0.37577259663273777,-0.4890670404357168,-0.5946331763042817,-0.6908028329286124,-0.7760563235195764,-0.8490464601187,-0.9086198420565812,-0.9538350821567423,-0.9839776826715615,-0.9985713258788056,-0.997385400922976,-0.9804386479613274,-0.9479988620291939,-0.9005786613042189,-0.8389273866399237,-0.7640192603734689,-0.6770379915236803,-0.5793580706503646,-0.47252304995621475,-0.35822115185212283,-0.23825859142316605,-0.11453103435713387,0.011006358638065756,0.13636982756609498,0.2595783608038187,0.37868499933274746,0.4918076028664463,0.5971585917027856,0.6930731943163922,0.7780357543184404,0.8507036810775591,0.9099286655307582,0.9547748259288529,0.984533496774943,0.9987344272588006,0.9971532122280469,0.979814838270729,0.9469932888736646,0.8992072148958351,0.8372117387727118,0.7619865219625411,0.6747202841946925,0.5767920191489346,0.4697492033983689,0.3552833429613972,0.23520324387948577,0.11140642920322998,-0.014150845940768568,-0.139484507375546,-0.2626140145002765,-0.38159365707855086,-0.4945433016322157,-0.5996781015819486,-0.6953367016503169,-0.7800074908376626,-0.8523524891171245,-0.9112284903881336,-0.9557051275841177,-0.985079574467111,-0.9988876517893981,-0.9969111623209321,-0.9791813388334565,-0.945978350555742,-0.8978268758990012,-0.8354878114129346,-0.7599462479886993,-0.6723959043104684,-0.574220263540624,-0.46697071131915385,-0.35234202054396285,-0.23214557032506594,-0.10828072231045816,0.017295193300575072,0.14259780777177664,0.2656470711108761,0.3844985411053433,0.4972741096787258,0.6021916810254062,0.6975933325457259,0.7819715135780118,0.853992867931724,0.9125193037742763,0.9566259779224361,0.9856159103477089,0.9990309979553043,0.9966592535953526,0.97853815591442,0.9449540571125261,0.8964376579643815,0.8337556216091546,0.7578984586289392,0.6700648748576598,0.5716428292584748,0.46418760119606717,0.34939721368764437,0.22908560099832906,0.10515394459010335,-0.020439369621914616,-0.1457096979662085,-0.2686775006405996,-0.3873996226856923,-0.49999999999999406,-0.6046993051754764,-0.6998430646859619,-0.7839278031165678,-0.8556248012990453,-0.9138010929238555,-0.9575373678371908,-0.9861424991127103,-0.9991644643389178,-0.9963974885425269,-0.9778852958742843,-0.9439204186736336,-0.8950395748304653,-0.8320151864916137,-0.755843174134616,-0.667727218888647,-0.5690597417916871,-0.4613999005523135,-0.3464489515147252,-0.22602336616044288,-0.10202612696398379,0.02358334381085118,0.14882014718425143,0.2717052731204091,0.3902968731297297,0.5027209456387205,0.607200949233337,0.702085875822623,0.7858763401068516,0.8572482730803183,0.9150738451607848,0.9584392883153101,0.9866593355544918,0.9992880496203403,0.9961258697511428,0.9772227651694266,0.9428774454610831,0.8936326403234135,0.8302665232721178,0.75378041483117,0.6653829595213844,0.5664710266853327,0.4586076369564949,0.3434972631816199,0.22295889609497957,0.0988973003642441,-0.02672708477550453,-0.15192912466550934,-0.2747303586075846,-0.39319026378547506,-0.5054369196864679,-0.6096965884593053,-0.7043217437757208,-0.7878171052790868,-0.858863267220423,-0.916337547898364,-0.9593317304373691,-0.9871664145618665,-0.9994017525773913,-0.995844399907339,-0.9765505703518492,-0.9418251477892268,-0.8922168683569026,-0.8285096492438441,-0.7517102011179901,-0.6630321199390876,-0.5638767095401722,-0.4558108380223005,-0.3405421778786786,-0.21989222110757478,-0.09576749573300702,0.029870561426258258,0.15503659966419692,0.2777527271859375,0.3960797660391579,0.5081478952839651,0.6121861981731163,0.7065506464339304,0.7897500794403294,0.8604697677481074,0.9175921886393639,0.96021468537769,0.9876637311201426,0.9995055720856216,0.9955530817946748,0.9758687180691348,0.940763536064611,0.8907922729320312,0.8267445817811453,0.7496325534681852,0.6606747233900784,0.5612768160123668,0.4530095314083085,0.3375837248297921,0.21682337152572487,0.092636744022025,-0.03301374267610985,-0.15814254144934525,-0.28077234896614783,-0.3989653513154224,-0.5108538456214091,-0.614669753754088,-0.7087725617548402,-0.7916752434746833,-0.8620677587760867,-0.9188377549762012,-0.9610881444044047,-0.9881512803111797,-0.9995995071183215,-0.9952519182941001,-0.9751772150643697,-0.9396926207859067,-0.8893588681371307,-0.824971338339434,-0.747547492428362,-0.6583107931875116,-0.5586713718131892,-0.4502037448176756,-0.3346219332922095,-0.2137523776983622,-0.0895050761924589,0.036156597441020726,0.161246919305148,0.2837891940860869,0.40184699107766214,0.5135547439386567,0.6171472306414552,0.710987467765098,0.7935925783435075,0.8636572245012658,0.920074234590993,0.9619520988795542,0.9886290573134215,0.9996835567465342,0.994940912383928,0.9744760681760827,0.9386124125437906,0.8879166681476774,0.823189936454938,0.7454550386184317,0.6559403527091671,0.556060402708852,0.44739350599783706,0.33165683255612866,0.21067926999572145,0.08637252321452944,-0.03929909464012424,-0.1643497025312932,-0.28680323271109914,-0.40472465682827646,-0.5162505635255263,-0.6196186043345218,-0.7131953425607196,-0.7955020650855945,-0.865238149204809,-0.9213016152557523,-0.9628065402591814,-0.9890970574019631,-0.9997577201390607,-0.9946200671398149,-0.9737652843381682,-0.9375229220208318,-0.886465687226094,-0.821400393744623,-0.7433552127314714,-0.6535634253971854,-0.5534439345201466,-0.4445788427402453,-0.32868845194456675,-0.20760407880885898,-0.0832391160671826,0.04244120319616083,0.16745086044325264,0.2898144350342016,0.4075983201089911,0.5189412777220859,0.6220838503930045,0.7153961643071852,0.7974036848172982,0.8668105172523892,0.9225198848324635,0.9636514600934111,0.9895552759485724,0.9998219965624731,0.9942893857347139,0.9730448705798208,0.9364241599913898,0.8850059397216868,0.8196027279059143,0.7412480355334075,0.651180034757847,0.5508219931223294,0.44175978288018364,0.32571682081289677,0.20452683454946324,0.08010488573779735,-0.045582892035614976,-0.17055036237248744,-0.2928227712765424,-0.41046795250112666,-0.5216268599189046,-0.6245429444371404,-0.717589911239785,-0.7992974187328241,-0.8683743130942988,-0.9237290312732249,-0.964486850026507,-0.990003708421763,-0.9998763853811182,-0.9939488714388511,-0.9723148340254879,-0.9353161373215434,-0.8835374400704188,-0.8177969567165693,-0.7391335278628652,-0.6487902043614152,-0.5481946044447126,-0.438936354296339,-0.3227419685486369,-0.20144756764949837,-0.07696986322197842,0.0487241300892071,0.17364817766691942,0.2958282116876132,0.41333352562578873,0.524307283557231,0.6269958621480731,0.7197765616637545,0.8011832481043631,0.8699295212655613,0.9249290426203242,0.9653127017970011,0.9904423503868265,0.9999208860571256,0.9935985276197028,0.9715751818947613,0.9341988649689235,0.8820602027948057,0.8159830980345512,0.7370117106310213,0.6463939578417739,0.545561794470502,0.43610858491060184,0.31976392457124125,0.19836630856101464,0.07383407952307976,-0.051864886292115574,-0.17674427569115003,-0.29883072654546217,-0.4161950111443044,-0.5269825221294014,-0.6294425792680257,-0.7219560939545291,-0.803061154282226,-0.8714761263861698,-0.9261199070064217,-0.9661290072377507,-0.9908711975058644,-0.999955498150411,-0.9932383577419438,-0.9708259215023308,-0.933072353982634,-0.8805742425038131,-0.8141611697977544,-0.7348826048212819,-0.6439913188962579,-0.5429235892364931,-0.4332765026878672,-0.31678271833164706,-0.19528308775568043,-0.0706975656519829,0.05500512958419882,0.17983862582667956,0.30183028615715074,0.4190523807583987,0.529652549179029,0.6318830716004752,0.7241284865578788,0.80493111869513,0.8730141131611951,0.9273016126546354,0.9669357582759989,0.9912902455378549,0.9999802213186831,0.9928683653674223,0.9700670602578992,0.9319366155031737,0.8790795738926315,0.8123311900238926,0.7327462314891324,0.6415823112854846,0.5402800148329081,0.43044013563560474,0.31379837931206433,0.19219793572456403,0.0675603526268754,-0.05814482891047279,-0.18293119747237774,-0.3048268608589658,-0.421905606210526,-0.5323173383011931,-0.6343173150105239,-0.7262937179902396,-0.806793122850331,-0.8745434663808969,-0.9284741478786255,-0.9677329469334972,-0.9916994903386791,-0.9999950553174459,-0.9924885541551346,-0.969298605666136,-0.930791660762265,-0.8775762117425709,-0.8104931768102873,-0.7306026117619874,-0.639166958832988,-0.5376310974029958,-0.427599511803658,-0.3108109370257652,-0.18911088297791606,-0.06442247147277394,0.061283953221304505,0.18602196004470237,0.30782042101663204,0.42475465928404643,0.5349768631428453,0.636745285425072,0.7284517668388669,0.8086471483337566,0.8760641709209566,0.9296375010827737,0.968520565326563,0.9920989278611694,1.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/small_range.json b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/small_range.json new file mode 100644 index 000000000000..955914d28199 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/small_range.json @@ -0,0 +1 @@ +{"sine":[-0.7071067811865475,-0.7059940749723979,-0.7048796232988765,-0.70376342892129,-0.7026454945992534,-0.7015258230966837,-0.7004044171817925,-0.6992812796270798,-0.6981564132093266,-0.6970298207095884,-0.6959015049131879,-0.6947714686097086,-0.6936397145929877,-0.692506245661109,-0.6913710646163962,-0.6902341742654062,-0.6890955774189216,-0.6879552768919439,-0.6868132755036873,-0.6856695760775703,-0.6845241814412103,-0.6833770944264153,-0.6822283178691776,-0.6810778546096669,-0.6799257074922224,-0.678771879365347,-0.6776163730816993,-0.6764591914980869,-0.6753003374754594,-0.6741398138789012,-0.6729776235776245,-0.6718137694449621,-0.6706482543583603,-0.6694810811993721,-0.6683122528536496,-0.6671417722109372,-0.6659696421650642,-0.6647958656139378,-0.6636204454595362,-0.662443384607901,-0.6612646859691299,-0.6600843524573702,-0.6589023869908108,-0.6577187924916756,-0.6565335718862161,-0.6553467281047036,-0.654158264081423,-0.6529681827546648,-0.651776487066718,-0.6505831799638627,-0.6493882643963633,-0.6481917433184607,-0.6469936196883651,-0.6457938964682488,-0.6445925766242391,-0.6433896631264101,-0.6421851589487766,-0.6409790670692858,-0.6397713904698102,-0.6385621321361405,-0.6373512950579777,-0.6361388822289262,-0.6349248966464862,-0.633709341312046,-0.6324922192308754,-0.6312735334121171,-0.6300532868687804,-0.628831482617733,-0.627608123679694,-0.6263832130792258,-0.6251567538447275,-0.6239287490084268,-0.6226992016063724,-0.6214681146784272,-0.62023549126826,-0.6190013344233385,-0.6177656471949214,-0.6165284326380511,-0.6152896938115463,-0.6140494337779938,-0.6128076556037417,-0.6115643623588914,-0.6103195571172898,-0.6090732429565223,-0.6078254229579048,-0.606576100206476,-0.6053252777909901,-0.6040729588039088,-0.602819146341394,-0.6015638435032999,-0.6003070533931656,-0.5990487791182069,-0.5977890237893091,-0.5965277905210193,-0.5952650824315386,-0.594000902642714,-0.5927352542800316,-0.591468140472608,-0.5901995643531827,-0.5889295290581108,-0.5876580377273551,-0.5863850935044779,-0.5851106995366336,-0.5838348589745611,-0.5825575749725757,-0.5812788506885611,-0.5799986892839623,-0.5787170939237769,-0.5774340677765482,-0.5761496140143564,-0.5748637358128118,-0.573576436351046,-0.5722877188117046,-0.5709975863809391,-0.5697060422483992,-0.5684130896072245,-0.5671187316540375,-0.5658229715889345,-0.5645258126154786,-0.5632272579406917,-0.561927310775046,-0.5606259743324562,-0.5593232518302725,-0.5580191464892714,-0.5567136615336483,-0.5554068001910096,-0.5540985656923645,-0.5527889612721172,-0.5514779901680585,-0.5501656556213588,-0.5488519608765587,-0.5475369091815621,-0.5462205037876273,-0.54490274794936,-0.5435836449247042,-0.542263197974935,-0.5409414103646498,-0.5396182853617606,-0.538293826237486,-0.5369680362663432,-0.5356409187261391,-0.5343124768979635,-0.5329827140661799,-0.5316516335184179,-0.530319238545565,-0.5289855324417582,-0.527650518504376,-0.526314200034031,-0.5249765803345602,-0.523637662713018,-0.522297450479668,-0.5209559469479741,-0.519613155434593,-0.5182690792593655,-0.5169237217453088,-0.5155770862186078,-0.5142291760086072,-0.512879994447803,-0.5115295448718347,-0.5101778306194763,-0.5088248550326292,-0.5074706214563126,-0.5061151332386562,-0.5047583937308915,-0.5034004062873437,-0.5020411742654234,-0.500680701025618,-0.4993189899314836,-0.49795604434963703,-0.49659186764974694,-0.4952264632045257,-0.49385983438972114,-0.49249198458410837,-0.49112291716948087,-0.48975263553064263,-0.48838114305539965,-0.48700844313455144,-0.48563453916188276,-0.48425943453415526,-0.48288313265109895,-0.4815056369154039,-0.4801269507327117,-0.47874707751160733,-0.47736602066361034,-0.4759837836031668,-0.4746003697476404,-0.47321578251730456,-0.47183002533533347,-0.47044310162779396,-0.469055014823637,-0.4676657683546888,-0.46627536565564304,-0.4648838101640517,-0.46349110532031706,-0.46209725456768297,-0.46070226135222625,-0.4593061291228483,-0.4579088613312667,-0.4565104614320063,-0.45511093288239113,-0.4537102791425354,-0.4523085036753355,-0.45090560994646073,-0.4495016014243455,-0.44809648158017995,-0.44669025388790223,-0.44528292182418905,-0.44387448886844794,-0.4424649585028078,-0.441054334212111,-0.4396426194839043,-0.4382298178084305,-0.43681593267861957,-0.4354009675900803,-0.43398492604109146,-0.43256781153259316,-0.43114962756817826,-0.42973037765408373,-0.4283100652991818,-0.4268886940149715,-0.42546626731556997,-0.42404278871770357,-0.42261826174069944,-0.4211926899064765,-0.41976607673953714,-0.418338425766958,-0.41690974051838187,-0.4154800245260083,-0.41404928132458546,-0.41261751445140094,-0.4111847274462732,-0.409750923851543,-0.4083161072120643,-0.4068802810751957,-0.4054434489907916,-0.4040056145111935,-0.4025667811912211,-0.40112695258816355,-0.39968613226177085,-0.39824432377424474,-0.39680153069023,-0.39535775657680583,-0.3939130050034767,-0.39246727954216376,-0.39102058376719595,-0.3895729212553012,-0.3881242955855975,-0.3866747103395841,-0.38522416910113266,-0.3837726754564783,-0.382320232994211,-0.3808668453052663,-0.379412515982917,-0.3779572486227636,-0.37650104682272584,-0.37504391418303384,-0.373585854306219,-0.37212687079710505,-0.3706669672627996,-0.3692061473126844,-0.36774441455840734,-0.36628177261387285,-0.3648182250952331,-0.3633537756208793,-0.3618884278114326,-0.3604221852897352,-0.35895505168084113,-0.3574870306120077,-0.35601812571268615,-0.3545483406145129,-0.35307767895130077,-0.35160614435902937,-0.3501337404758367,-0.3486604709420099,-0.34718633939997634,-0.3457113494942945,-0.344235504871645,-0.3427588091808218,-0.3412812660727228,-0.33980287920034113,-0.3383236522187558,-0.33684358878512316,-0.33536269255866724,-0.3338809672006713,-0.3323984163744683,-0.3309150437454321,-0.3294308529809684,-0.32794584775050556,-0.32646003172548543,-0.3249734085793548,-0.32348598198755557,-0.32199775562751615,-0.32050873317864237,-0.3190189183223081,-0.3175283147418464,-0.3160369261225402,-0.31454475615161365,-0.3130518085182223,-0.3115580869134445,-0.31006359503027214,-0.30856833656360144,-0.3070723152102239,-0.3055755346688172,-0.30407799863993595,-0.30257971082600255,-0.30108067493129803,-0.29958089466195315,-0.29808037372593865,-0.2965791158330569,-0.29507712469493197,-0.2935744040250008,-0.29207095753850404,-0.29056678895247684,-0.28906190198573944,-0.2875563003588885,-0.2860499877942873,-0.28454296801605683,-0.28303524475006664,-0.28152682172392546,-0.2800177026669721,-0.27850789131026626,-0.27699739138657914,-0.27548620663038437,-0.2739743407778487,-0.27246179756682287,-0.2709485807368321,-0.26943469402906706,-0.26792014118637486,-0.26640492595324927,-0.2648890520758217,-0.26337252330185207,-0.26185534338071936,-0.2603375160634124,-0.25881904510252074,-0.2572999342522251,-0.25578018726828816,-0.2542598079080456,-0.2527387999303962,-0.25121716709579334,-0.24969491316623474,-0.24817204190525413,-0.2466485570779113,-0.24512446245078295,-0.2435997617919535,-0.2420744588710056,-0.24054855745901102,-0.2390220613285211,-0.23749497425355756,-0.2359673000096032,-0.23443904237359237,-0.23291020512390187,-0.23138079204034148,-0.22985080690414464,-0.22832025349795906,-0.2267891356058375,-0.22525745701322822,-0.22372522150696578,-0.2221924328752616,-0.22065909490769464,-0.219125211395202,-0.21759078613006952,-0.21605582290592248,-0.21452032551771613,-0.21298429776172645,-0.2114477434355406,-0.20991066633804759,-0.2083730702694289,-0.20683495903114912,-0.20529633642594658,-0.20375720625782368,-0.20221757233203794,-0.20067743845509214,-0.19913680843472517,-0.1975956860799027,-0.19605407520080737,-0.19451197960882977,-0.19296940311655889,-0.1914263495377726,-0.1898828226874283,-0.1883388263816535,-0.18679436443773637,-0.18524944067411622,-0.1837040589103743,-0.18215822296722406,-0.18061193666650185,-0.17906520383115748,-0.17751802828524477,-0.17597041385391204,-0.17442236436339267,-0.17287388364099573,-0.17132497551509637,-0.16977564381512641,-0.16822589237156502,-0.16667572501592895,-0.16512514558076333,-0.1635741578996321,-0.16202276580710845,-0.1604709731387655,-0.15891878373116666,-0.15736620142185626,-0.15581323004934997,-0.15425987345312545,-0.15270613547361264,-0.15115201995218452,-0.14959753073114734,-0.14804267165373142,-0.14648744656408136,-0.14493185930724672,-0.14337591372917252,-0.14181961367668955,-0.14026296299750507,-0.13870596554019318,-0.13714862515418538,-0.1355909456897609,-0.13403293099803743,-0.13247458493096134,-0.13091591134129832,-0.12935691408262381,-0.1277975970093135,-0.12623796397653367,-0.12467801884023186,-0.12311776545712723,-0.12155720768470095,-0.11999634938118685,-0.11843519440556172,-0.1168737466175358,-0.11531200987754331,-0.11374998804673288,-0.11218768498695789,-0.1106251045607671,-0.10906225063139496,-0.10749912706275216,-0.10593573771941603,-0.10437208646662091,-0.10280817717024875,-0.10124401369681947,-0.09967959991348134,-0.09811493968800156,-0.09655003688875653,-0.09498489538472248,-0.09341951904546572,-0.09185391174113318,-0.09028807734244282,-0.08872201972067406,-0.08715574274765817,-0.08558925029576876,-0.08402254623791221,-0.08245563444751797,-0.08088851879852917,-0.07932120316539289,-0.07775369142305065,-0.07618598744692887,-0.07461809511292915,-0.07305001829741885,-0.0714817608772214,-0.06991332672960673,-0.06834471973228175,-0.06677594376338065,-0.06520700270145542,-0.06363790042546624,-0.06206864081477179,-0.060499227749119804,-0.05892966510863736,-0.05735995677382138,-0.05579010662552897,-0.05422011854496784,-0.05264999641368672,-0.051079744113565785,-0.049509365526806993,-0.04793886453592456,-0.046368245023735294,-0.04479751087334906,-0.04322666596815913,-0.041655714191832595,-0.04008465942830078,-0.038513505561749636,-0.03694225647661011,-0.03537091605754858,-0.03379948818945722,-0.032227976757444425,-0.030656385646825157,-0.029084718743111405,-0.027512979932002527,-0.02594117309937567,-0.024369302131276138,-0.022797370913907815,-0.021225383333623535,-0.019653343276915487,-0.018081254630405587,-0.016509121280835894,-0.01493694711505898,-0.013364736020028337,-0.01179249188278875,-0.010220218590466705,-0.008647920030260757,-0.007075600089431943,-0.005503262655294156,-0.003930911615204538,-0.0023585508565538704,-0.0007861842667569619,0.0007861842667569619,0.0023585508565538704,0.003930911615204538,0.005503262655294156,0.007075600089431943,0.008647920030260757,0.010220218590466705,0.01179249188278875,0.013364736020028337,0.01493694711505898,0.016509121280835894,0.018081254630405587,0.019653343276915487,0.021225383333623535,0.022797370913907815,0.024369302131276138,0.02594117309937567,0.027512979932002527,0.029084718743111405,0.030656385646825157,0.032227976757444425,0.03379948818945722,0.03537091605754858,0.03694225647661011,0.038513505561749636,0.04008465942830078,0.041655714191832595,0.04322666596815913,0.04479751087334906,0.046368245023735294,0.04793886453592456,0.049509365526806993,0.051079744113565785,0.05264999641368672,0.05422011854496784,0.05579010662552897,0.05735995677382138,0.05892966510863736,0.060499227749119804,0.06206864081477179,0.06363790042546624,0.06520700270145542,0.06677594376338065,0.06834471973228175,0.06991332672960673,0.0714817608772214,0.07305001829741885,0.07461809511292915,0.07618598744692887,0.07775369142305065,0.07932120316539289,0.08088851879852917,0.08245563444751797,0.08402254623791221,0.08558925029576876,0.08715574274765817,0.08872201972067406,0.09028807734244282,0.09185391174113318,0.09341951904546572,0.09498489538472248,0.09655003688875653,0.09811493968800156,0.09967959991348134,0.10124401369681947,0.10280817717024875,0.10437208646662091,0.10593573771941603,0.10749912706275216,0.10906225063139496,0.1106251045607671,0.11218768498695789,0.11374998804673288,0.11531200987754331,0.1168737466175358,0.11843519440556172,0.11999634938118685,0.12155720768470095,0.12311776545712723,0.12467801884023186,0.12623796397653367,0.1277975970093135,0.12935691408262381,0.13091591134129832,0.13247458493096134,0.13403293099803743,0.1355909456897609,0.13714862515418538,0.13870596554019318,0.14026296299750507,0.14181961367668955,0.14337591372917252,0.14493185930724672,0.14648744656408136,0.14804267165373142,0.14959753073114734,0.15115201995218452,0.15270613547361264,0.15425987345312545,0.15581323004934997,0.15736620142185626,0.15891878373116666,0.1604709731387655,0.16202276580710845,0.1635741578996321,0.16512514558076333,0.16667572501592895,0.16822589237156502,0.16977564381512641,0.17132497551509637,0.17287388364099573,0.17442236436339267,0.17597041385391204,0.17751802828524477,0.17906520383115748,0.18061193666650185,0.18215822296722406,0.1837040589103743,0.18524944067411622,0.18679436443773637,0.1883388263816535,0.1898828226874283,0.1914263495377726,0.19296940311655889,0.19451197960882977,0.19605407520080737,0.1975956860799027,0.19913680843472517,0.20067743845509214,0.20221757233203794,0.20375720625782368,0.20529633642594658,0.20683495903114912,0.2083730702694289,0.20991066633804759,0.2114477434355406,0.21298429776172645,0.21452032551771613,0.21605582290592248,0.21759078613006952,0.219125211395202,0.22065909490769464,0.2221924328752616,0.22372522150696578,0.22525745701322822,0.2267891356058375,0.22832025349795906,0.22985080690414464,0.23138079204034148,0.23291020512390187,0.23443904237359237,0.2359673000096032,0.23749497425355756,0.2390220613285211,0.24054855745901102,0.2420744588710056,0.2435997617919535,0.24512446245078295,0.2466485570779113,0.24817204190525413,0.24969491316623474,0.25121716709579334,0.2527387999303962,0.2542598079080456,0.25578018726828816,0.2572999342522251,0.25881904510252074,0.2603375160634124,0.26185534338071936,0.26337252330185207,0.2648890520758217,0.26640492595324927,0.26792014118637486,0.26943469402906706,0.2709485807368321,0.27246179756682287,0.2739743407778487,0.27548620663038437,0.27699739138657914,0.27850789131026626,0.2800177026669721,0.28152682172392546,0.28303524475006664,0.28454296801605683,0.2860499877942873,0.2875563003588885,0.28906190198573944,0.29056678895247684,0.29207095753850404,0.2935744040250008,0.29507712469493197,0.2965791158330569,0.29808037372593865,0.29958089466195315,0.30108067493129803,0.30257971082600255,0.30407799863993595,0.3055755346688172,0.3070723152102239,0.30856833656360144,0.31006359503027214,0.3115580869134445,0.3130518085182223,0.31454475615161365,0.3160369261225402,0.3175283147418464,0.3190189183223081,0.32050873317864237,0.32199775562751615,0.32348598198755557,0.3249734085793548,0.32646003172548543,0.32794584775050556,0.3294308529809684,0.3309150437454321,0.3323984163744683,0.3338809672006713,0.33536269255866724,0.33684358878512316,0.3383236522187558,0.33980287920034113,0.3412812660727228,0.3427588091808218,0.344235504871645,0.3457113494942945,0.34718633939997634,0.3486604709420099,0.3501337404758367,0.35160614435902937,0.35307767895130077,0.3545483406145129,0.35601812571268615,0.3574870306120077,0.35895505168084113,0.3604221852897352,0.3618884278114326,0.3633537756208793,0.3648182250952331,0.36628177261387285,0.36774441455840734,0.3692061473126844,0.3706669672627996,0.37212687079710505,0.373585854306219,0.37504391418303384,0.37650104682272584,0.3779572486227636,0.379412515982917,0.3808668453052663,0.382320232994211,0.3837726754564783,0.38522416910113266,0.3866747103395841,0.3881242955855975,0.3895729212553012,0.39102058376719595,0.39246727954216376,0.3939130050034767,0.39535775657680583,0.39680153069023,0.39824432377424474,0.39968613226177085,0.40112695258816355,0.4025667811912211,0.4040056145111935,0.4054434489907916,0.4068802810751957,0.4083161072120643,0.409750923851543,0.4111847274462732,0.41261751445140094,0.41404928132458546,0.4154800245260083,0.41690974051838187,0.418338425766958,0.41976607673953714,0.4211926899064765,0.42261826174069944,0.42404278871770357,0.42546626731556997,0.4268886940149715,0.4283100652991818,0.42973037765408373,0.43114962756817826,0.43256781153259316,0.43398492604109146,0.4354009675900803,0.43681593267861957,0.4382298178084305,0.4396426194839043,0.441054334212111,0.4424649585028078,0.44387448886844794,0.44528292182418905,0.44669025388790223,0.44809648158017995,0.4495016014243455,0.45090560994646073,0.4523085036753355,0.4537102791425354,0.45511093288239113,0.4565104614320063,0.4579088613312667,0.4593061291228483,0.46070226135222625,0.46209725456768297,0.46349110532031706,0.4648838101640517,0.46627536565564304,0.4676657683546888,0.469055014823637,0.47044310162779396,0.47183002533533347,0.47321578251730456,0.4746003697476404,0.4759837836031668,0.47736602066361034,0.47874707751160733,0.4801269507327117,0.4815056369154039,0.48288313265109895,0.48425943453415526,0.48563453916188276,0.48700844313455144,0.48838114305539965,0.48975263553064263,0.49112291716948087,0.49249198458410837,0.49385983438972114,0.4952264632045257,0.49659186764974694,0.49795604434963703,0.4993189899314836,0.500680701025618,0.5020411742654234,0.5034004062873437,0.5047583937308915,0.5061151332386562,0.5074706214563126,0.5088248550326292,0.5101778306194763,0.5115295448718347,0.512879994447803,0.5142291760086072,0.5155770862186078,0.5169237217453088,0.5182690792593655,0.519613155434593,0.5209559469479741,0.522297450479668,0.523637662713018,0.5249765803345602,0.526314200034031,0.527650518504376,0.5289855324417582,0.530319238545565,0.5316516335184179,0.5329827140661799,0.5343124768979635,0.5356409187261391,0.5369680362663432,0.538293826237486,0.5396182853617606,0.5409414103646498,0.542263197974935,0.5435836449247042,0.54490274794936,0.5462205037876273,0.5475369091815621,0.5488519608765587,0.5501656556213588,0.5514779901680585,0.5527889612721172,0.5540985656923645,0.5554068001910096,0.5567136615336483,0.5580191464892714,0.5593232518302725,0.5606259743324562,0.561927310775046,0.5632272579406917,0.5645258126154786,0.5658229715889345,0.5671187316540375,0.5684130896072245,0.5697060422483992,0.5709975863809391,0.5722877188117046,0.573576436351046,0.5748637358128118,0.5761496140143564,0.5774340677765482,0.5787170939237769,0.5799986892839623,0.5812788506885611,0.5825575749725757,0.5838348589745611,0.5851106995366336,0.5863850935044779,0.5876580377273551,0.5889295290581108,0.5901995643531827,0.591468140472608,0.5927352542800316,0.594000902642714,0.5952650824315386,0.5965277905210193,0.5977890237893091,0.5990487791182069,0.6003070533931656,0.6015638435032999,0.602819146341394,0.6040729588039088,0.6053252777909901,0.606576100206476,0.6078254229579048,0.6090732429565223,0.6103195571172898,0.6115643623588914,0.6128076556037417,0.6140494337779938,0.6152896938115463,0.6165284326380511,0.6177656471949214,0.6190013344233385,0.62023549126826,0.6214681146784272,0.6226992016063724,0.6239287490084268,0.6251567538447275,0.6263832130792258,0.627608123679694,0.628831482617733,0.6300532868687804,0.6312735334121171,0.6324922192308754,0.633709341312046,0.6349248966464862,0.6361388822289262,0.6373512950579777,0.6385621321361405,0.6397713904698102,0.6409790670692858,0.6421851589487766,0.6433896631264101,0.6445925766242391,0.6457938964682488,0.6469936196883651,0.6481917433184607,0.6493882643963633,0.6505831799638627,0.651776487066718,0.6529681827546648,0.654158264081423,0.6553467281047036,0.6565335718862161,0.6577187924916756,0.6589023869908108,0.6600843524573702,0.6612646859691299,0.662443384607901,0.6636204454595362,0.6647958656139378,0.6659696421650642,0.6671417722109372,0.6683122528536496,0.6694810811993721,0.6706482543583603,0.6718137694449621,0.6729776235776245,0.6741398138789012,0.6753003374754594,0.6764591914980869,0.6776163730816993,0.678771879365347,0.6799257074922224,0.6810778546096669,0.6822283178691776,0.6833770944264153,0.6845241814412103,0.6856695760775703,0.6868132755036873,0.6879552768919439,0.6890955774189216,0.6902341742654062,0.6913710646163962,0.692506245661109,0.6936397145929877,0.6947714686097086,0.6959015049131879,0.6970298207095884,0.6981564132093266,0.6992812796270798,0.7004044171817925,0.7015258230966837,0.7026454945992534,0.70376342892129,0.7048796232988765,0.7059940749723979,0.7071067811865475],"x":[-0.7853981633974483,-0.7838257947019579,-0.7822534260064675,-0.7806810573109771,-0.7791086886154868,-0.7775363199199964,-0.775963951224506,-0.7743915825290155,-0.7728192138335251,-0.7712468451380348,-0.7696744764425444,-0.768102107747054,-0.7665297390515636,-0.7649573703560733,-0.7633850016605829,-0.7618126329650925,-0.7602402642696021,-0.7586678955741117,-0.7570955268786214,-0.7555231581831309,-0.7539507894876405,-0.7523784207921501,-0.7508060520966597,-0.7492336834011694,-0.747661314705679,-0.7460889460101886,-0.7445165773146982,-0.7429442086192078,-0.7413718399237175,-0.7397994712282271,-0.7382271025327367,-0.7366547338372463,-0.7350823651417558,-0.7335099964462655,-0.7319376277507751,-0.7303652590552847,-0.7287928903597943,-0.727220521664304,-0.7256481529688136,-0.7240757842733232,-0.7225034155778328,-0.7209310468823424,-0.7193586781868521,-0.7177863094913617,-0.7162139407958713,-0.7146415721003808,-0.7130692034048904,-0.7114968347094001,-0.7099244660139097,-0.7083520973184193,-0.7067797286229289,-0.7052073599274385,-0.7036349912319482,-0.7020626225364578,-0.7004902538409674,-0.698917885145477,-0.6973455164499867,-0.6957731477544962,-0.6942007790590058,-0.6926284103635154,-0.691056041668025,-0.6894836729725347,-0.6879113042770443,-0.6863389355815539,-0.6847665668860635,-0.6831941981905731,-0.6816218294950828,-0.6800494607995924,-0.678477092104102,-0.6769047234086116,-0.6753323547131211,-0.6737599860176308,-0.6721876173221404,-0.67061524862665,-0.6690428799311596,-0.6674705112356693,-0.6658981425401789,-0.6643257738446885,-0.6627534051491981,-0.6611810364537077,-0.6596086677582174,-0.658036299062727,-0.6564639303672366,-0.6548915616717461,-0.6533191929762557,-0.6517468242807654,-0.650174455585275,-0.6486020868897846,-0.6470297181942942,-0.6454573494988038,-0.6438849808033135,-0.6423126121078231,-0.6407402434123327,-0.6391678747168423,-0.637595506021352,-0.6360231373258615,-0.6344507686303711,-0.6328783999348807,-0.6313060312393903,-0.6297336625439,-0.6281612938484096,-0.6265889251529192,-0.6250165564574288,-0.6234441877619384,-0.6218718190664481,-0.6202994503709577,-0.6187270816754673,-0.6171547129799769,-0.6155823442844864,-0.6140099755889961,-0.6124376068935057,-0.6108652381980153,-0.6092928695025249,-0.6077205008070345,-0.6061481321115442,-0.6045757634160538,-0.6030033947205634,-0.601431026025073,-0.5998586573295827,-0.5982862886340923,-0.5967139199386019,-0.5951415512431114,-0.593569182547621,-0.5919968138521307,-0.5904244451566403,-0.5888520764611499,-0.5872797077656595,-0.5857073390701691,-0.5841349703746788,-0.5825626016791884,-0.580990232983698,-0.5794178642882076,-0.5778454955927173,-0.5762731268972268,-0.5747007582017364,-0.573128389506246,-0.5715560208107556,-0.5699836521152652,-0.5684112834197749,-0.5668389147242845,-0.5652665460287941,-0.5636941773333037,-0.5621218086378134,-0.560549439942323,-0.5589770712468326,-0.5574047025513422,-0.5558323338558517,-0.5542599651603614,-0.552687596464871,-0.5511152277693806,-0.5495428590738902,-0.5479704903783998,-0.5463981216829095,-0.5448257529874191,-0.5432533842919287,-0.5416810155964383,-0.540108646900948,-0.5385362782054576,-0.5369639095099672,-0.5353915408144767,-0.5338191721189863,-0.532246803423496,-0.5306744347280056,-0.5291020660325152,-0.5275296973370248,-0.5259573286415344,-0.5243849599460441,-0.5228125912505537,-0.5212402225550633,-0.5196678538595729,-0.5180954851640825,-0.5165231164685921,-0.5149507477731017,-0.5133783790776113,-0.5118060103821209,-0.5102336416866305,-0.5086612729911402,-0.5070889042956498,-0.5055165356001594,-0.503944166904669,-0.5023717982091787,-0.5007994295136883,-0.49922706081819784,-0.49765469212270746,-0.4960823234272171,-0.4945099547317267,-0.49293758603623633,-0.4913652173407459,-0.4897928486452555,-0.48822047994976514,-0.48664811125427476,-0.4850757425587844,-0.483503373863294,-0.48193100516780357,-0.4803586364723132,-0.4787862677768228,-0.47721389908133244,-0.47564153038584206,-0.4740691616903517,-0.4724967929948613,-0.47092442429937087,-0.4693520556038805,-0.4677796869083901,-0.46620731821289974,-0.46463494951740936,-0.463062580821919,-0.46149021212642855,-0.45991784343093817,-0.4583454747354478,-0.4567731060399574,-0.45520073734446703,-0.45362836864897665,-0.4520559999534862,-0.45048363125799584,-0.44891126256250546,-0.4473388938670151,-0.4457665251715247,-0.44419415647603433,-0.44262178778054395,-0.4410494190850535,-0.43947705038956314,-0.43790468169407276,-0.4363323129985824,-0.434759944303092,-0.4331875756076016,-0.4316152069121112,-0.4300428382166208,-0.42847046952113044,-0.42689810082564006,-0.4253257321301497,-0.4237533634346593,-0.42218099473916887,-0.4206086260436785,-0.4190362573481881,-0.41746388865269773,-0.41589151995720736,-0.414319151261717,-0.4127467825662266,-0.41117441387073617,-0.4096020451752458,-0.4080296764797554,-0.40645730778426503,-0.40488493908877465,-0.4033125703932843,-0.40174020169779384,-0.40016783300230346,-0.3985954643068131,-0.3970230956113227,-0.39545072691583233,-0.39387835822034195,-0.3923059895248515,-0.39073362082936114,-0.38916125213387076,-0.3875888834383804,-0.38601651474289,-0.3844441460473996,-0.38287177735190925,-0.3812994086564188,-0.37972703996092844,-0.37815467126543806,-0.3765823025699477,-0.3750099338744573,-0.3734375651789669,-0.3718651964834765,-0.3702928277879861,-0.36872045909249573,-0.36714809039700536,-0.365575721701515,-0.3640033530060246,-0.36243098431053417,-0.3608586156150438,-0.3592862469195534,-0.35771387822406303,-0.35614150952857265,-0.3545691408330823,-0.3529967721375919,-0.35142440344210146,-0.3498520347466111,-0.3482796660511207,-0.34670729735563033,-0.34513492866013995,-0.34356255996464957,-0.34199019126915914,-0.34041782257366876,-0.3388454538781784,-0.337273085182688,-0.3357007164871976,-0.33412834779170725,-0.3325559790962168,-0.33098361040072644,-0.32941124170523606,-0.3278388730097457,-0.3262665043142553,-0.3246941356187649,-0.32312176692327454,-0.3215493982277841,-0.31997702953229373,-0.31840466083680335,-0.316832292141313,-0.3152599234458226,-0.3136875547503322,-0.3121151860548418,-0.3105428173593514,-0.30897044866386103,-0.30739807996837065,-0.3058257112728803,-0.3042533425773899,-0.30268097388189946,-0.3011086051864091,-0.2995362364909187,-0.2979638677954283,-0.29639149909993795,-0.29481913040444757,-0.29324676170895714,-0.29167439301346676,-0.2901020243179764,-0.288529655622486,-0.2869572869269956,-0.28538491823150525,-0.28381254953601487,-0.28224018084052444,-0.28066781214503406,-0.2790954434495437,-0.2775230747540533,-0.2759507060585629,-0.27437833736307254,-0.2728059686675821,-0.27123359997209173,-0.26966123127660135,-0.268088862581111,-0.2665164938856206,-0.2649441251901302,-0.2633717564946398,-0.2617993877991494,-0.26022701910365903,-0.25865465040816865,-0.2570822817126783,-0.2555099130171879,-0.2539375443216975,-0.2523651756262071,-0.2507928069307167,-0.24922043823522633,-0.24764806953973595,-0.24607570084424557,-0.24450333214875516,-0.2429309634532648,-0.2413585947577744,-0.239786226062284,-0.23821385736679362,-0.23664148867130325,-0.23506911997581284,-0.23349675128032246,-0.23192438258483208,-0.23035201388934168,-0.2287796451938513,-0.22720727649836092,-0.22563490780287052,-0.22406253910738014,-0.22249017041188976,-0.22091780171639935,-0.21934543302090898,-0.2177730643254186,-0.2162006956299282,-0.2146283269344378,-0.21305595823894743,-0.21148358954345706,-0.20991122084796665,-0.20833885215247627,-0.2067664834569859,-0.2051941147614955,-0.2036217460660051,-0.20204937737051473,-0.20047700867502433,-0.19890463997953395,-0.19733227128404357,-0.19575990258855316,-0.19418753389306279,-0.1926151651975724,-0.191042796502082,-0.18947042780659162,-0.18789805911110125,-0.18632569041561084,-0.18475332172012046,-0.18318095302463008,-0.1816085843291397,-0.1800362156336493,-0.17846384693815892,-0.17689147824266854,-0.17531910954717814,-0.17374674085168776,-0.17217437215619738,-0.17060200346070697,-0.1690296347652166,-0.16745726606972622,-0.1658848973742358,-0.16431252867874543,-0.16274015998325506,-0.16116779128776465,-0.15959542259227427,-0.1580230538967839,-0.1564506852012935,-0.1548783165058031,-0.15330594781031273,-0.15173357911482235,-0.15016121041933195,-0.14858884172384157,-0.1470164730283512,-0.14544410433286079,-0.1438717356373704,-0.14229936694188003,-0.14072699824638962,-0.13915462955089924,-0.13758226085540887,-0.13600989215991846,-0.13443752346442808,-0.1328651547689377,-0.1312927860734473,-0.12972041737795692,-0.12814804868246654,-0.12657567998697614,-0.12500331129148576,-0.12343094259599538,-0.12185857390050499,-0.1202862052050146,-0.11871383650952422,-0.11714146781403383,-0.11556909911854343,-0.11399673042305306,-0.11242436172756266,-0.11085199303207229,-0.1092796243365819,-0.1077072556410915,-0.10613488694560112,-0.10456251825011073,-0.10299014955462034,-0.10141778085912996,-0.09984541216363957,-0.09827304346814919,-0.0967006747726588,-0.0951283060771684,-0.09355593738167803,-0.09198356868618764,-0.09041119999069724,-0.08883883129520687,-0.08726646259971647,-0.08569409390422608,-0.0841217252087357,-0.08254935651324531,-0.08097698781775493,-0.07940461912226454,-0.07783225042677415,-0.07625988173128377,-0.07468751303579338,-0.07311514434030299,-0.07154277564481261,-0.06997040694932222,-0.06839803825383184,-0.06682566955834145,-0.06525330086285105,-0.06368093216736068,-0.062108563471870284,-0.0605361947763799,-0.05896382608088951,-0.05739145738539912,-0.05581908868990874,-0.05424671999441835,-0.05267435129892796,-0.051101982603437575,-0.04952961390794719,-0.047957245212456805,-0.04638487651696641,-0.04481250782147603,-0.04324013912598564,-0.04166777043049526,-0.040095401735004865,-0.03852303303951448,-0.036950664344024095,-0.0353782956485337,-0.03380592695304332,-0.03223355825755293,-0.030661189562062544,-0.02908882086657216,-0.02751645217108177,-0.025944083475591385,-0.024371714780100997,-0.022799346084610612,-0.021226977389120223,-0.019654608693629838,-0.01808223999813945,-0.016509871302649064,-0.014937502607158676,-0.013365133911668289,-0.011792765216177902,-0.010220396520687515,-0.008648027825197128,-0.007075659129706742,-0.005503290434216354,-0.003930921738725967,-0.0023585530432355803,-0.0007861843477451934,0.0007861843477451934,0.0023585530432355803,0.003930921738725967,0.005503290434216354,0.007075659129706742,0.008648027825197128,0.010220396520687515,0.011792765216177902,0.013365133911668289,0.014937502607158676,0.016509871302649064,0.01808223999813945,0.019654608693629838,0.021226977389120223,0.022799346084610612,0.024371714780100997,0.025944083475591385,0.02751645217108177,0.02908882086657216,0.030661189562062544,0.03223355825755293,0.03380592695304332,0.0353782956485337,0.036950664344024095,0.03852303303951448,0.040095401735004865,0.04166777043049526,0.04324013912598564,0.04481250782147603,0.04638487651696641,0.047957245212456805,0.04952961390794719,0.051101982603437575,0.05267435129892796,0.05424671999441835,0.05581908868990874,0.05739145738539912,0.05896382608088951,0.0605361947763799,0.062108563471870284,0.06368093216736068,0.06525330086285105,0.06682566955834145,0.06839803825383184,0.06997040694932222,0.07154277564481261,0.07311514434030299,0.07468751303579338,0.07625988173128377,0.07783225042677415,0.07940461912226454,0.08097698781775493,0.08254935651324531,0.0841217252087357,0.08569409390422608,0.08726646259971647,0.08883883129520687,0.09041119999069724,0.09198356868618764,0.09355593738167803,0.0951283060771684,0.0967006747726588,0.09827304346814919,0.09984541216363957,0.10141778085912996,0.10299014955462034,0.10456251825011073,0.10613488694560112,0.1077072556410915,0.1092796243365819,0.11085199303207229,0.11242436172756266,0.11399673042305306,0.11556909911854343,0.11714146781403383,0.11871383650952422,0.1202862052050146,0.12185857390050499,0.12343094259599538,0.12500331129148576,0.12657567998697614,0.12814804868246654,0.12972041737795692,0.1312927860734473,0.1328651547689377,0.13443752346442808,0.13600989215991846,0.13758226085540887,0.13915462955089924,0.14072699824638962,0.14229936694188003,0.1438717356373704,0.14544410433286079,0.1470164730283512,0.14858884172384157,0.15016121041933195,0.15173357911482235,0.15330594781031273,0.1548783165058031,0.1564506852012935,0.1580230538967839,0.15959542259227427,0.16116779128776465,0.16274015998325506,0.16431252867874543,0.1658848973742358,0.16745726606972622,0.1690296347652166,0.17060200346070697,0.17217437215619738,0.17374674085168776,0.17531910954717814,0.17689147824266854,0.17846384693815892,0.1800362156336493,0.1816085843291397,0.18318095302463008,0.18475332172012046,0.18632569041561084,0.18789805911110125,0.18947042780659162,0.191042796502082,0.1926151651975724,0.19418753389306279,0.19575990258855316,0.19733227128404357,0.19890463997953395,0.20047700867502433,0.20204937737051473,0.2036217460660051,0.2051941147614955,0.2067664834569859,0.20833885215247627,0.20991122084796665,0.21148358954345706,0.21305595823894743,0.2146283269344378,0.2162006956299282,0.2177730643254186,0.21934543302090898,0.22091780171639935,0.22249017041188976,0.22406253910738014,0.22563490780287052,0.22720727649836092,0.2287796451938513,0.23035201388934168,0.23192438258483208,0.23349675128032246,0.23506911997581284,0.23664148867130325,0.23821385736679362,0.239786226062284,0.2413585947577744,0.2429309634532648,0.24450333214875516,0.24607570084424557,0.24764806953973595,0.24922043823522633,0.2507928069307167,0.2523651756262071,0.2539375443216975,0.2555099130171879,0.2570822817126783,0.25865465040816865,0.26022701910365903,0.2617993877991494,0.2633717564946398,0.2649441251901302,0.2665164938856206,0.268088862581111,0.26966123127660135,0.27123359997209173,0.2728059686675821,0.27437833736307254,0.2759507060585629,0.2775230747540533,0.2790954434495437,0.28066781214503406,0.28224018084052444,0.28381254953601487,0.28538491823150525,0.2869572869269956,0.288529655622486,0.2901020243179764,0.29167439301346676,0.29324676170895714,0.29481913040444757,0.29639149909993795,0.2979638677954283,0.2995362364909187,0.3011086051864091,0.30268097388189946,0.3042533425773899,0.3058257112728803,0.30739807996837065,0.30897044866386103,0.3105428173593514,0.3121151860548418,0.3136875547503322,0.3152599234458226,0.316832292141313,0.31840466083680335,0.31997702953229373,0.3215493982277841,0.32312176692327454,0.3246941356187649,0.3262665043142553,0.3278388730097457,0.32941124170523606,0.33098361040072644,0.3325559790962168,0.33412834779170725,0.3357007164871976,0.337273085182688,0.3388454538781784,0.34041782257366876,0.34199019126915914,0.34356255996464957,0.34513492866013995,0.34670729735563033,0.3482796660511207,0.3498520347466111,0.35142440344210146,0.3529967721375919,0.3545691408330823,0.35614150952857265,0.35771387822406303,0.3592862469195534,0.3608586156150438,0.36243098431053417,0.3640033530060246,0.365575721701515,0.36714809039700536,0.36872045909249573,0.3702928277879861,0.3718651964834765,0.3734375651789669,0.3750099338744573,0.3765823025699477,0.37815467126543806,0.37972703996092844,0.3812994086564188,0.38287177735190925,0.3844441460473996,0.38601651474289,0.3875888834383804,0.38916125213387076,0.39073362082936114,0.3923059895248515,0.39387835822034195,0.39545072691583233,0.3970230956113227,0.3985954643068131,0.40016783300230346,0.40174020169779384,0.4033125703932843,0.40488493908877465,0.40645730778426503,0.4080296764797554,0.4096020451752458,0.41117441387073617,0.4127467825662266,0.414319151261717,0.41589151995720736,0.41746388865269773,0.4190362573481881,0.4206086260436785,0.42218099473916887,0.4237533634346593,0.4253257321301497,0.42689810082564006,0.42847046952113044,0.4300428382166208,0.4316152069121112,0.4331875756076016,0.434759944303092,0.4363323129985824,0.43790468169407276,0.43947705038956314,0.4410494190850535,0.44262178778054395,0.44419415647603433,0.4457665251715247,0.4473388938670151,0.44891126256250546,0.45048363125799584,0.4520559999534862,0.45362836864897665,0.45520073734446703,0.4567731060399574,0.4583454747354478,0.45991784343093817,0.46149021212642855,0.463062580821919,0.46463494951740936,0.46620731821289974,0.4677796869083901,0.4693520556038805,0.47092442429937087,0.4724967929948613,0.4740691616903517,0.47564153038584206,0.47721389908133244,0.4787862677768228,0.4803586364723132,0.48193100516780357,0.483503373863294,0.4850757425587844,0.48664811125427476,0.48822047994976514,0.4897928486452555,0.4913652173407459,0.49293758603623633,0.4945099547317267,0.4960823234272171,0.49765469212270746,0.49922706081819784,0.5007994295136883,0.5023717982091787,0.503944166904669,0.5055165356001594,0.5070889042956498,0.5086612729911402,0.5102336416866305,0.5118060103821209,0.5133783790776113,0.5149507477731017,0.5165231164685921,0.5180954851640825,0.5196678538595729,0.5212402225550633,0.5228125912505537,0.5243849599460441,0.5259573286415344,0.5275296973370248,0.5291020660325152,0.5306744347280056,0.532246803423496,0.5338191721189863,0.5353915408144767,0.5369639095099672,0.5385362782054576,0.540108646900948,0.5416810155964383,0.5432533842919287,0.5448257529874191,0.5463981216829095,0.5479704903783998,0.5495428590738902,0.5511152277693806,0.552687596464871,0.5542599651603614,0.5558323338558517,0.5574047025513422,0.5589770712468326,0.560549439942323,0.5621218086378134,0.5636941773333037,0.5652665460287941,0.5668389147242845,0.5684112834197749,0.5699836521152652,0.5715560208107556,0.573128389506246,0.5747007582017364,0.5762731268972268,0.5778454955927173,0.5794178642882076,0.580990232983698,0.5825626016791884,0.5841349703746788,0.5857073390701691,0.5872797077656595,0.5888520764611499,0.5904244451566403,0.5919968138521307,0.593569182547621,0.5951415512431114,0.5967139199386019,0.5982862886340923,0.5998586573295827,0.601431026025073,0.6030033947205634,0.6045757634160538,0.6061481321115442,0.6077205008070345,0.6092928695025249,0.6108652381980153,0.6124376068935057,0.6140099755889961,0.6155823442844864,0.6171547129799769,0.6187270816754673,0.6202994503709577,0.6218718190664481,0.6234441877619384,0.6250165564574288,0.6265889251529192,0.6281612938484096,0.6297336625439,0.6313060312393903,0.6328783999348807,0.6344507686303711,0.6360231373258615,0.637595506021352,0.6391678747168423,0.6407402434123327,0.6423126121078231,0.6438849808033135,0.6454573494988038,0.6470297181942942,0.6486020868897846,0.650174455585275,0.6517468242807654,0.6533191929762557,0.6548915616717461,0.6564639303672366,0.658036299062727,0.6596086677582174,0.6611810364537077,0.6627534051491981,0.6643257738446885,0.6658981425401789,0.6674705112356693,0.6690428799311596,0.67061524862665,0.6721876173221404,0.6737599860176308,0.6753323547131211,0.6769047234086116,0.678477092104102,0.6800494607995924,0.6816218294950828,0.6831941981905731,0.6847665668860635,0.6863389355815539,0.6879113042770443,0.6894836729725347,0.691056041668025,0.6926284103635154,0.6942007790590058,0.6957731477544962,0.6973455164499867,0.698917885145477,0.7004902538409674,0.7020626225364578,0.7036349912319482,0.7052073599274385,0.7067797286229289,0.7083520973184193,0.7099244660139097,0.7114968347094001,0.7130692034048904,0.7146415721003808,0.7162139407958713,0.7177863094913617,0.7193586781868521,0.7209310468823424,0.7225034155778328,0.7240757842733232,0.7256481529688136,0.727220521664304,0.7287928903597943,0.7303652590552847,0.7319376277507751,0.7335099964462655,0.7350823651417558,0.7366547338372463,0.7382271025327367,0.7397994712282271,0.7413718399237175,0.7429442086192078,0.7445165773146982,0.7460889460101886,0.747661314705679,0.7492336834011694,0.7508060520966597,0.7523784207921501,0.7539507894876405,0.7555231581831309,0.7570955268786214,0.7586678955741117,0.7602402642696021,0.7618126329650925,0.7633850016605829,0.7649573703560733,0.7665297390515636,0.768102107747054,0.7696744764425444,0.7712468451380348,0.7728192138335251,0.7743915825290155,0.775963951224506,0.7775363199199964,0.7791086886154868,0.7806810573109771,0.7822534260064675,0.7838257947019579,0.7853981633974483],"cosine":[0.7071067811865476,0.7082177391903342,0.7093269462370888,0.7104343995844714,0.7115400964944776,0.7126440342334457,0.713746210072063,0.7148466212853732,0.7159452651527825,0.7170421389580665,0.7181372399893772,0.7192305655392495,0.7203221129046079,0.721411879386773,0.7224998622914685,0.7235860589288277,0.7246704666134002,0.7257530826641584,0.7268339044045043,0.7279129291622762,0.7289901542697549,0.7300655770636706,0.7311391948852095,0.7322110050800203,0.7332810049982209,0.7343491919944045,0.7354155634276469,0.7364801166615123,0.7375428490640599,0.7386037580078512,0.7396628408699555,0.7407200950319569,0.7417755178799608,0.7428291068045999,0.7438808592010413,0.7449307724689926,0.7459788440127082,0.747025071240996,0.7480694515672236,0.7491119824093249,0.7501526611898061,0.7511914853357526,0.7522284522788352,0.7532635594553158,0.7542968043060548,0.7553281842765168,0.7563576968167768,0.7573853393815269,0.7584111094300824,0.7594350044263881,0.7604570218390247,0.7614771591412146,0.7624954138108289,0.7635117833303928,0.7645262651870925,0.7655388568727811,0.7665495558839849,0.7675583597219093,0.7685652658924456,0.7695702719061763,0.7705733752783823,0.771574573529048,0.7725738641828682,0.7735712447692538,0.774566712822338,0.7755602658809828,0.7765519014887842,0.777541617194079,0.7785294105499508,0.7795152791142359,0.7804992204495292,0.7814812321231903,0.7824613117073498,0.7834394567789149,0.7844156649195757,0.7853899337158111,0.7863622607588947,0.7873326436449005,0.7883010799747097,0.7892675673540154,0.7902321033933295,0.7911946857079885,0.7921553119181586,0.7931139796488429,0.7940706865298858,0.79502543019598,0.7959782082866721,0.7969290184463678,0.7978778583243383,0.7988247255747266,0.7997696178565519,0.8007125328337167,0.8016534681750119,0.8025924215541229,0.8035293906496349,0.8044643731450393,0.8053973667287386,0.8063283690940529,0.8072573779392254,0.8081843909674276,0.8091094058867654,0.810032420410285,0.810953432255978,0.8118724391467875,0.8127894388106134,0.813704428980318,0.8146174073937321,0.8155283717936601,0.8164373199278857,0.8173442495491775,0.8182491584152944,0.8191520442889918,0.8200529049380261,0.820951738135161,0.8218485416581727,0.8227433132898555,0.8236360508180272,0.8245267520355346,0.8254154147402588,0.8263020367351211,0.8271866158280881,0.8280691498321768,0.8289496365654607,0.8298280738510749,0.830704459517221,0.8315787913971735,0.8324510673292842,0.8333212851569878,0.8341894427288077,0.8350555378983606,0.8359195685243626,0.8367815324706335,0.8376414276061032,0.838499251804816,0.8393550029459365,0.8402086789137544,0.8410602775976901,0.8419097968922998,0.8427572346972805,0.8436025889174755,0.8444458574628794,0.8452870382486432,0.8461261291950797,0.8469631282276684,0.8477980332770607,0.8486308422790853,0.8494615531747527,0.8502901639102607,0.8511166724369997,0.8519410767115573,0.8527633746957234,0.8535835643564955,0.8544016436660837,0.8552176106019155,0.8560314631466408,0.8568431992881371,0.8576528170195146,0.8584603143391205,0.8592656892505447,0.8600689397626244,0.860870063889449,0.8616690596503648,0.8624659250699805,0.8632606581781718,0.8640532570100857,0.8648437196061464,0.8656320440120593,0.8664182282788162,0.8672022704627003,0.8679841686252903,0.8687639208334659,0.8695415251594125,0.8703169796806256,0.8710902824799157,0.8718614316454132,0.8726304252705731,0.8733972614541795,0.8741619383003505,0.8749244539185427,0.8756848064235563,0.876442993935539,0.8771990145799915,0.8779528664877717,0.8787045477950991,0.8794540566435598,0.8802013911801111,0.8809465495570858,0.8816895299321971,0.8824303304685425,0.8831689493346093,0.8839053847042785,0.8846396347568293,0.885371697676944,0.886101571654712,0.8868292548856347,0.8875547455706296,0.8882780419160351,0.8889991421336146,0.8897180444405614,0.8904347470595022,0.8911492482185027,0.891861546151071,0.8925716390961626,0.893279525298184,0.893985203006998,0.8946886704779274,0.8953899259717596,0.8960889677547504,0.896785794098629,0.8974804032806017,0.8981727935833566,0.8988629632950674,0.8995509107093982,0.9002366341255069,0.9009201318480503,0.9016014021871877,0.9022804434585852,0.9029572539834201,0.9036318320883847,0.9043041761056907,0.9049742843730733,0.9056421552337949,0.9063077870366499,0.9069711781359685,0.9076323268916202,0.9082912316690189,0.9089478908391259,0.9096023027784547,0.9102544658690745,0.9109043784986149,0.9115520390602689,0.9121974459527975,0.9128405975805338,0.9134814923533863,0.9141201286868436,0.9147565050019776,0.9153906197254479,0.9160224712895056,0.9166520581319971,0.9172793786963678,0.9179044314316662,0.9185272147925477,0.9191477272392784,0.9197659672377387,0.9203819332594275,0.9209956237814656,0.9216070372865995,0.9222161722632057,0.9228230272052935,0.9234276006125096,0.9240298909901412,0.92462989684912,0.9252276167060259,0.9258230490830904,0.9264161925082007,0.9270070455149029,0.9275956066424056,0.9281818744355842,0.9287658474449837,0.9293475242268224,0.9299269033429962,0.9305039833610811,0.9310787628543377,0.9316512404017137,0.9322214145878486,0.9327892840030764,0.933354847243429,0.9339181029106404,0.9344790496121494,0.9350376859611036,0.9355940105763623,0.9361480220825003,0.9366997191098113,0.9372491002943112,0.9377961642777414,0.938340909707572,0.9388833352370057,0.9394234395249806,0.9399612212361739,0.9404966790410045,0.9410298116156376,0.9415606176419864,0.9420890958077165,0.9426152448062487,0.9431390633367625,0.9436605501041986,0.9441797038192632,0.9446965231984302,0.9452110069639451,0.9457231538438274,0.9462329625718747,0.946740431887665,0.9472455605365601,0.9477483472697088,0.94824879084405,0.9487468900223157,0.9492426435730339,0.9497360502705319,0.9502271088949391,0.9507158182321904,0.9512021770740288,0.9516861842180083,0.9521678384674975,0.9526471386316819,0.9531240835255673,0.9535986719699824,0.9540709027915817,0.9545407748228489,0.9550082869020992,0.9554734378734825,0.9559362265869861,0.9563966518984377,0.9568547126695081,0.9573104077677139,0.9577637360664208,0.9582146964448458,0.9586632877880603,0.9591095089869925,0.9595533589384309,0.959994836545026,0.960433940715294,0.9608706703636188,0.9613050244102551,0.9617370017813307,0.9621666014088494,0.9625938222306937,0.9630186631906273,0.9634411232382978,0.963861201329239,0.9642788964248739,0.964694207492517,0.965107133505377,0.9655176734425592,0.9659258262890683,0.9663315910358103,0.9667349666795959,0.9671359522231421,0.9675345466750751,0.9679307490499329,0.9683245583681674,0.9687159736561469,0.9691049939461587,0.9694916182764113,0.9698758456910367,0.970257675240093,0.9706371059795669,0.9710141369713753,0.9713887672833684,0.9717609959893317,0.9721308221689882,0.9724982449080009,0.9728632632979746,0.973225876436459,0.9735860834269499,0.9739438833788922,0.9742992754076817,0.9746522586346676,0.9750028321871544,0.975350995198404,0.975696746807638,0.97604008616004,0.9763810124067575,0.9767195247049038,0.9770556222175605,0.9773893041137793,0.9777205695685843,0.9780494177629736,0.9783758478839217,0.9786998591243817,0.9790214506832865,0.9793406217655515,0.9796573715820766,0.9799716993497474,0.980283604291438,0.9805930856360126,0.9809001426183269,0.9812047744792313,0.9815069804655708,0.9818067598301892,0.9821041118319286,0.9823990357356334,0.9826915308121502,0.9829815963383312,0.9832692315970347,0.983554435877128,0.9838372084734883,0.9841175486870047,0.9843954558245801,0.9846709291991329,0.9849439681295985,0.9852145719409309,0.9854827399641047,0.9857484715361169,0.9860117659999876,0.986272622704763,0.9865310410055156,0.9867870202633469,0.9870405598453883,0.9872916591248032,0.9875403174807881,0.9877865342985742,0.9880303089694292,0.9882716408906584,0.9885105294656069,0.9887469741036599,0.9889809742202453,0.9892125292368347,0.9894416385809445,0.9896683016861381,0.9898925179920265,0.9901142869442702,0.9903336079945801,0.9905504806007197,0.9907649042265053,0.9909768783418084,0.9911864024225562,0.9913934759507333,0.9915980984143832,0.9918002693076087,0.9919999881305742,0.9921972543895063,0.9923920675966953,0.992584427270496,0.9927743329353294,0.9929617841216835,0.9931467803661149,0.9933293212112493,0.9935094062057833,0.993687034904485,0.9938622068681953,0.9940349216638291,0.9942051788643762,0.9943729780489025,0.9945383188025508,0.9947012007165422,0.9948616233881766,0.9950195864208343,0.9951750894239766,0.9953281320131466,0.9954787138099706,0.9956268344421588,0.9957724935435062,0.9959156907538936,0.9960564257192884,0.9961946980917455,0.9963305075294082,0.9964638536965091,0.9965947362633707,0.9967231549064063,0.9968491093081211,0.9969725991571128,0.9970936241480719,0.9972121839817832,0.9973282783651263,0.9974419070110758,0.9975530696387032,0.9976617659731758,0.9977679957457595,0.9978717586938175,0.9979730545608125,0.9980718830963062,0.9981682440559608,0.9982621372015388,0.9983535623009042,0.9984425191280227,0.9985290074629628,0.9986130270918955,0.9986945778070955,0.9987736594069414,0.9988502716959166,0.998924414484609,0.9989960875897124,0.9990652908340261,0.9991320240464562,0.9991962870620152,0.9992580797218229,0.9993174018731068,0.9993742533692019,0.9994286340695522,0.9994805438397096,0.9995299825513355,0.9995769500822006,0.9996214463161849,0.9996634711432784,0.9997030244595815,0.9997401061673047,0.9997747161747694,0.9998068543964078,0.9998365207527631,0.99986371517049,0.9998884375823545,0.9999106879272343,0.999930466150119,0.9999477722021101,0.999962606040421,0.9999749676283775,0.9999848569354172,0.9999922739370907,0.9999972186150605,0.9999996909571016,0.9999996909571016,0.9999972186150605,0.9999922739370907,0.9999848569354172,0.9999749676283775,0.999962606040421,0.9999477722021101,0.999930466150119,0.9999106879272343,0.9998884375823545,0.99986371517049,0.9998365207527631,0.9998068543964078,0.9997747161747694,0.9997401061673047,0.9997030244595815,0.9996634711432784,0.9996214463161849,0.9995769500822006,0.9995299825513355,0.9994805438397096,0.9994286340695522,0.9993742533692019,0.9993174018731068,0.9992580797218229,0.9991962870620152,0.9991320240464562,0.9990652908340261,0.9989960875897124,0.998924414484609,0.9988502716959166,0.9987736594069414,0.9986945778070955,0.9986130270918955,0.9985290074629628,0.9984425191280227,0.9983535623009042,0.9982621372015388,0.9981682440559608,0.9980718830963062,0.9979730545608125,0.9978717586938175,0.9977679957457595,0.9976617659731758,0.9975530696387032,0.9974419070110758,0.9973282783651263,0.9972121839817832,0.9970936241480719,0.9969725991571128,0.9968491093081211,0.9967231549064063,0.9965947362633707,0.9964638536965091,0.9963305075294082,0.9961946980917455,0.9960564257192884,0.9959156907538936,0.9957724935435062,0.9956268344421588,0.9954787138099706,0.9953281320131466,0.9951750894239766,0.9950195864208343,0.9948616233881766,0.9947012007165422,0.9945383188025508,0.9943729780489025,0.9942051788643762,0.9940349216638291,0.9938622068681953,0.993687034904485,0.9935094062057833,0.9933293212112493,0.9931467803661149,0.9929617841216835,0.9927743329353294,0.992584427270496,0.9923920675966953,0.9921972543895063,0.9919999881305742,0.9918002693076087,0.9915980984143832,0.9913934759507333,0.9911864024225562,0.9909768783418084,0.9907649042265053,0.9905504806007197,0.9903336079945801,0.9901142869442702,0.9898925179920265,0.9896683016861381,0.9894416385809445,0.9892125292368347,0.9889809742202453,0.9887469741036599,0.9885105294656069,0.9882716408906584,0.9880303089694292,0.9877865342985742,0.9875403174807881,0.9872916591248032,0.9870405598453883,0.9867870202633469,0.9865310410055156,0.986272622704763,0.9860117659999876,0.9857484715361169,0.9854827399641047,0.9852145719409309,0.9849439681295985,0.9846709291991329,0.9843954558245801,0.9841175486870047,0.9838372084734883,0.983554435877128,0.9832692315970347,0.9829815963383312,0.9826915308121502,0.9823990357356334,0.9821041118319286,0.9818067598301892,0.9815069804655708,0.9812047744792313,0.9809001426183269,0.9805930856360126,0.980283604291438,0.9799716993497474,0.9796573715820766,0.9793406217655515,0.9790214506832865,0.9786998591243817,0.9783758478839217,0.9780494177629736,0.9777205695685843,0.9773893041137793,0.9770556222175605,0.9767195247049038,0.9763810124067575,0.97604008616004,0.975696746807638,0.975350995198404,0.9750028321871544,0.9746522586346676,0.9742992754076817,0.9739438833788922,0.9735860834269499,0.973225876436459,0.9728632632979746,0.9724982449080009,0.9721308221689882,0.9717609959893317,0.9713887672833684,0.9710141369713753,0.9706371059795669,0.970257675240093,0.9698758456910367,0.9694916182764113,0.9691049939461587,0.9687159736561469,0.9683245583681674,0.9679307490499329,0.9675345466750751,0.9671359522231421,0.9667349666795959,0.9663315910358103,0.9659258262890683,0.9655176734425592,0.965107133505377,0.964694207492517,0.9642788964248739,0.963861201329239,0.9634411232382978,0.9630186631906273,0.9625938222306937,0.9621666014088494,0.9617370017813307,0.9613050244102551,0.9608706703636188,0.960433940715294,0.959994836545026,0.9595533589384309,0.9591095089869925,0.9586632877880603,0.9582146964448458,0.9577637360664208,0.9573104077677139,0.9568547126695081,0.9563966518984377,0.9559362265869861,0.9554734378734825,0.9550082869020992,0.9545407748228489,0.9540709027915817,0.9535986719699824,0.9531240835255673,0.9526471386316819,0.9521678384674975,0.9516861842180083,0.9512021770740288,0.9507158182321904,0.9502271088949391,0.9497360502705319,0.9492426435730339,0.9487468900223157,0.94824879084405,0.9477483472697088,0.9472455605365601,0.946740431887665,0.9462329625718747,0.9457231538438274,0.9452110069639451,0.9446965231984302,0.9441797038192632,0.9436605501041986,0.9431390633367625,0.9426152448062487,0.9420890958077165,0.9415606176419864,0.9410298116156376,0.9404966790410045,0.9399612212361739,0.9394234395249806,0.9388833352370057,0.938340909707572,0.9377961642777414,0.9372491002943112,0.9366997191098113,0.9361480220825003,0.9355940105763623,0.9350376859611036,0.9344790496121494,0.9339181029106404,0.933354847243429,0.9327892840030764,0.9322214145878486,0.9316512404017137,0.9310787628543377,0.9305039833610811,0.9299269033429962,0.9293475242268224,0.9287658474449837,0.9281818744355842,0.9275956066424056,0.9270070455149029,0.9264161925082007,0.9258230490830904,0.9252276167060259,0.92462989684912,0.9240298909901412,0.9234276006125096,0.9228230272052935,0.9222161722632057,0.9216070372865995,0.9209956237814656,0.9203819332594275,0.9197659672377387,0.9191477272392784,0.9185272147925477,0.9179044314316662,0.9172793786963678,0.9166520581319971,0.9160224712895056,0.9153906197254479,0.9147565050019776,0.9141201286868436,0.9134814923533863,0.9128405975805338,0.9121974459527975,0.9115520390602689,0.9109043784986149,0.9102544658690745,0.9096023027784547,0.9089478908391259,0.9082912316690189,0.9076323268916202,0.9069711781359685,0.9063077870366499,0.9056421552337949,0.9049742843730733,0.9043041761056907,0.9036318320883847,0.9029572539834201,0.9022804434585852,0.9016014021871877,0.9009201318480503,0.9002366341255069,0.8995509107093982,0.8988629632950674,0.8981727935833566,0.8974804032806017,0.896785794098629,0.8960889677547504,0.8953899259717596,0.8946886704779274,0.893985203006998,0.893279525298184,0.8925716390961626,0.891861546151071,0.8911492482185027,0.8904347470595022,0.8897180444405614,0.8889991421336146,0.8882780419160351,0.8875547455706296,0.8868292548856347,0.886101571654712,0.885371697676944,0.8846396347568293,0.8839053847042785,0.8831689493346093,0.8824303304685425,0.8816895299321971,0.8809465495570858,0.8802013911801111,0.8794540566435598,0.8787045477950991,0.8779528664877717,0.8771990145799915,0.876442993935539,0.8756848064235563,0.8749244539185427,0.8741619383003505,0.8733972614541795,0.8726304252705731,0.8718614316454132,0.8710902824799157,0.8703169796806256,0.8695415251594125,0.8687639208334659,0.8679841686252903,0.8672022704627003,0.8664182282788162,0.8656320440120593,0.8648437196061464,0.8640532570100857,0.8632606581781718,0.8624659250699805,0.8616690596503648,0.860870063889449,0.8600689397626244,0.8592656892505447,0.8584603143391205,0.8576528170195146,0.8568431992881371,0.8560314631466408,0.8552176106019155,0.8544016436660837,0.8535835643564955,0.8527633746957234,0.8519410767115573,0.8511166724369997,0.8502901639102607,0.8494615531747527,0.8486308422790853,0.8477980332770607,0.8469631282276684,0.8461261291950797,0.8452870382486432,0.8444458574628794,0.8436025889174755,0.8427572346972805,0.8419097968922998,0.8410602775976901,0.8402086789137544,0.8393550029459365,0.838499251804816,0.8376414276061032,0.8367815324706335,0.8359195685243626,0.8350555378983606,0.8341894427288077,0.8333212851569878,0.8324510673292842,0.8315787913971735,0.830704459517221,0.8298280738510749,0.8289496365654607,0.8280691498321768,0.8271866158280881,0.8263020367351211,0.8254154147402588,0.8245267520355346,0.8236360508180272,0.8227433132898555,0.8218485416581727,0.820951738135161,0.8200529049380261,0.8191520442889918,0.8182491584152944,0.8173442495491775,0.8164373199278857,0.8155283717936601,0.8146174073937321,0.813704428980318,0.8127894388106134,0.8118724391467875,0.810953432255978,0.810032420410285,0.8091094058867654,0.8081843909674276,0.8072573779392254,0.8063283690940529,0.8053973667287386,0.8044643731450393,0.8035293906496349,0.8025924215541229,0.8016534681750119,0.8007125328337167,0.7997696178565519,0.7988247255747266,0.7978778583243383,0.7969290184463678,0.7959782082866721,0.79502543019598,0.7940706865298858,0.7931139796488429,0.7921553119181586,0.7911946857079885,0.7902321033933295,0.7892675673540154,0.7883010799747097,0.7873326436449005,0.7863622607588947,0.7853899337158111,0.7844156649195757,0.7834394567789149,0.7824613117073498,0.7814812321231903,0.7804992204495292,0.7795152791142359,0.7785294105499508,0.777541617194079,0.7765519014887842,0.7755602658809828,0.774566712822338,0.7735712447692538,0.7725738641828682,0.771574573529048,0.7705733752783823,0.7695702719061763,0.7685652658924456,0.7675583597219093,0.7665495558839849,0.7655388568727811,0.7645262651870925,0.7635117833303928,0.7624954138108289,0.7614771591412146,0.7604570218390247,0.7594350044263881,0.7584111094300824,0.7573853393815269,0.7563576968167768,0.7553281842765168,0.7542968043060548,0.7532635594553158,0.7522284522788352,0.7511914853357526,0.7501526611898061,0.7491119824093249,0.7480694515672236,0.747025071240996,0.7459788440127082,0.7449307724689926,0.7438808592010413,0.7428291068045999,0.7417755178799608,0.7407200950319569,0.7396628408699555,0.7386037580078512,0.7375428490640599,0.7364801166615123,0.7354155634276469,0.7343491919944045,0.7332810049982209,0.7322110050800203,0.7311391948852095,0.7300655770636706,0.7289901542697549,0.7279129291622762,0.7268339044045043,0.7257530826641584,0.7246704666134002,0.7235860589288277,0.7224998622914685,0.721411879386773,0.7203221129046079,0.7192305655392495,0.7181372399893772,0.7170421389580665,0.7159452651527825,0.7148466212853732,0.713746210072063,0.7126440342334457,0.7115400964944776,0.7104343995844714,0.7093269462370888,0.7082177391903342,0.7071067811865476]} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.js new file mode 100644 index 000000000000..3f671a1f6dd2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.js @@ -0,0 +1,150 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var rempio2 = require( '@stdlib/math/base/special/rempio2' ); +var kernelSincos = require( './../lib' ); + + +// FIXTURES // + +var smallRange = require( './fixtures/julia/small_range.json' ); +var largePositive = require( './fixtures/julia/large_positive.json' ); +var largeNegative = require( './fixtures/julia/large_negative.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.equal( typeof kernelSincos, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) { + var v; + var z; + + z = [ 0.0, 0.0 ]; + v = kernelSincos( NaN, 0.0, z, 1, 0 ); + t.equal( v, z, 'returns output array' ); + t.equal( isnan( v[0] ), true, 'returns expected value' ); + t.equal( isnan( v[1] ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function evaluates the sine and cosine for input values on the interval `[-pi/4, pi/4]`', function test( t ) { + var cosine; + var sine; + var x; + var y; + var i; + var z; + + z = [ 0.0, 0.0 ]; + x = smallRange.x; + sine = smallRange.sine; + cosine = smallRange.cosine; + + for ( i = 0; i < x.length; i++ ) { + y = kernelSincos( x[i], 0.0, z, 1, 0 ); + t.equal( y, z, 'returns output array' ); + t.equal( y[0], sine[ i ], 'returns expected value' ); + t.equal( y[1], cosine[ i ], 'returns expected value' ); + } + t.end(); +}); + +tape( 'the function can be used to compute the sine and cosine for input values outside of `[-pi/4, pi/4]` after argument reduction via `rempio2` (positive)', function test( t ) { + var cosine; + var sine; + var out; + var z; + var x; + var y; + var n; + var i; + + z = [ 0.0, 0.0 ]; + y = [ 0.0, 0.0 ]; + x = largePositive.x; + sine = largePositive.sine; + cosine = largePositive.cosine; + for ( i = 0; i < x.length; i++ ) { + n = rempio2( x[ i ], y ); + switch ( n & 3 ) { + case 0: + out = kernelSincos( y[ 0 ], y[ 1 ], z, 1, 0 ); + t.equal( out, z, 'returns output array' ); + t.equal( out[ 0 ], sine[ i ], 'returns expected value' ); + t.equal( out[ 1 ], cosine[ i ], 'returns expected value' ); + break; + case 2: + out = kernelSincos( y[ 0 ], y[ 1 ], z, 1, 0 ); + t.equal( out, z, 'returns output array' ); + t.equal( -out[ 0 ], sine[ i ], 'returns expected value' ); + t.equal( -out[ 1 ], cosine[ i ], 'returns expected value' ); + break; + default: + break; + } + } + t.end(); +}); + +tape( 'the function can be used to compute the sine and cosine for input values outside of `[-pi/4, pi/4]` after argument reduction via `rempio2` (negative)', function test( t ) { + var cosine; + var sine; + var out; + var z; + var x; + var y; + var n; + var i; + + z = [ 0.0, 0.0 ]; + y = [ 0.0, 0.0 ]; + x = largeNegative.x; + sine = largeNegative.sine; + cosine = largeNegative.cosine; + for ( i = 0; i < x.length; i++ ) { + n = rempio2( x[ i ], y ); + switch ( n & 3 ) { + case 0: + out = kernelSincos( y[ 0 ], y[ 1 ], z, 1, 0 ); + t.equal( out, z, 'returns output array' ); + t.equal( out[ 0 ], sine[ i ], 'returns expected value' ); + t.equal( out[ 1 ], cosine[ i ], 'returns expected value' ); + break; + case 2: + out = kernelSincos( y[ 0 ], y[ 1 ], z, 1, 0 ); + t.equal( out, z, 'returns output array' ); + t.equal( -out[ 0 ], sine[ i ], 'returns expected value' ); + t.equal( -out[ 1 ], cosine[ i ], 'returns expected value' ); + break; + default: + break; + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.native.js new file mode 100644 index 000000000000..f09c1e9fb7d0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/test.native.js @@ -0,0 +1,213 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var rempio2 = require( '@stdlib/math/base/special/rempio2' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var kernelSincos = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( kernelSincos instanceof Error ) +}; + + +// FIXTURES // + +var smallRange = require( './fixtures/julia/small_range.json' ); +var largePositive = require( './fixtures/julia/large_positive.json' ); +var largeNegative = require( './fixtures/julia/large_negative.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.equal( typeof kernelSincos, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t ) { + var v; + + v = kernelSincos( NaN, 0.0 ); + t.equal( isnan( v[0] ), true, 'returns expected value' ); + t.equal( isnan( v[1] ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function evaluates the sine and cosine for input values on the interval `[-pi/4, pi/4]`', opts, function test( t ) { + var cosine; + var delta; + var sine; + var tol; + var x; + var y; + var i; + + x = smallRange.x; + sine = smallRange.sine; + cosine = smallRange.cosine; + + for ( i = 0; i < x.length; i++ ) { + y = kernelSincos( x[i], 0.0 ); + if ( y[0] === sine[ i ] ) { + t.equal( y[0], sine[ i ], 'returns expected value' ); + } else { + delta = abs( y[0] - sine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( sine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+y[0]+'. Expected: '+sine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.equal( y[1], cosine[ i ], 'returns expected value' ); + } + t.end(); +}); + +tape( 'the function can be used to compute the sine and cosine for input values outside of `[-pi/4, pi/4]` after argument reduction via `rempio2` (positive)', opts, function test( t ) { + var cosine; + var delta; + var sine; + var tol; + var out; + var x; + var y; + var n; + var i; + + y = [ 0.0, 0.0 ]; + x = largePositive.x; + sine = largePositive.sine; + cosine = largePositive.cosine; + for ( i = 0; i < x.length; i++ ) { + n = rempio2( x[ i ], y ); + switch ( n & 3 ) { + case 0: + out = kernelSincos( y[ 0 ], y[ 1 ] ); + if ( out[0] === sine[ i ] ) { + t.equal( out[0], sine[ i ], 'returns expected value' ); + } else { + delta = abs( out[0] - sine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( sine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[0]+'. Expected: '+sine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.equal( out[1], cosine[ i ], 'returns expected value' ); + break; + case 2: + out = kernelSincos( y[ 0 ], y[ 1 ] ); + out[ 0 ] = -out[ 0 ]; + out[ 1 ] = -out[ 1 ]; + if ( out[0] === sine[ i ] ) { + t.equal( out[0], sine[ i ], 'returns expected value' ); + } else { + delta = abs( out[0] - sine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( sine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[0]+'. Expected: '+sine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + if ( out[1] === cosine[ i ] ) { + t.equal( out[1], cosine[ i ], 'returns expected value' ); + } else { + delta = abs( out[1] - cosine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( cosine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[1]+'. Expected: '+cosine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + break; + default: + break; + } + } + t.end(); +}); + +tape( 'the function can be used to compute the sine and cosine for input values outside of `[-pi/4, pi/4]` after argument reduction via `rempio2` (negative)', opts, function test( t ) { + var cosine; + var delta; + var sine; + var tol; + var out; + var x; + var y; + var n; + var i; + + y = [ 0.0, 0.0 ]; + x = largeNegative.x; + sine = largeNegative.sine; + cosine = largeNegative.cosine; + for ( i = 0; i < x.length; i++ ) { + n = rempio2( x[ i ], y ); + switch ( n & 3 ) { + case 0: + out = kernelSincos( y[ 0 ], y[ 1 ] ); + if ( out[0] === sine[ i ] ) { + t.equal( out[0], sine[ i ], 'returns expected value' ); + } else { + delta = abs( out[0] - sine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( sine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[0]+'. Expected: '+sine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.equal( out[1], cosine[ i ], 'returns expected value' ); + break; + case 2: + out = kernelSincos( y[ 0 ], y[ 1 ] ); + out[ 0 ] = -out[ 0 ]; + out[ 1 ] = -out[ 1 ]; + if ( out[0] === sine[ i ] ) { + t.equal( out[0], sine[ i ], 'returns expected value' ); + } else { + delta = abs( out[0] - sine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( sine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[0]+'. Expected: '+sine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + if ( out[1] === cosine[ i ] ) { + t.equal( out[1], cosine[ i ], 'returns expected value' ); + } else { + delta = abs( out[1] - cosine[i] ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 + tol = EPS * abs( cosine[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. Value: '+out[1]+'. Expected: '+cosine[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + break; + default: + break; + } + } + t.end(); +}); From a45318acca1f5b4aa143d37d200bdafb8629f1a1 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 9 Mar 2025 18:30:46 -0700 Subject: [PATCH 4/4] feat: add benchmarks, examples, docs --- 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: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: passed - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../math/base/special/kernel-sincos/LICENSE | 192 +++++++++++++++++ .../math/base/special/kernel-sincos/README.md | 193 ++++++++++++++++++ .../kernel-sincos/benchmark/benchmark.js | 55 +++++ .../benchmark/benchmark.native.js | 62 ++++++ .../kernel-sincos/benchmark/c/native/Makefile | 147 +++++++++++++ .../benchmark/c/native/benchmark.c | 137 +++++++++++++ .../base/special/kernel-sincos/binding.gyp | 170 +++++++++++++++ .../base/special/kernel-sincos/docs/repl.txt | 38 ++++ .../kernel-sincos/docs/types/index.d.ts | 52 +++++ .../special/kernel-sincos/docs/types/test.ts | 91 +++++++++ .../special/kernel-sincos/examples/c/Makefile | 146 +++++++++++++ .../kernel-sincos/examples/c/example.c | 33 +++ .../special/kernel-sincos/examples/index.js | 32 +++ .../base/special/kernel-sincos/include.gypi | 53 +++++ .../base/special/kernel-sincos/lib/native.js | 3 - .../base/special/kernel-sincos/manifest.json | 71 +++++++ .../base/special/kernel-sincos/package.json | 72 +++++++ .../test/fixtures/julia/runner.jl | 76 +++++++ 18 files changed, 1620 insertions(+), 3 deletions(-) create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/LICENSE create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/kernel-sincos/package.json create mode 100755 lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/runner.jl diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/LICENSE b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/LICENSE new file mode 100644 index 000000000000..a7566ad6f2c3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/LICENSE @@ -0,0 +1,192 @@ + + 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: + +* FreeBSD + +Copyright (C) 1993-2004 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/README.md b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/README.md new file mode 100644 index 000000000000..b7544001aad7 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/README.md @@ -0,0 +1,193 @@ + + +# kernelSincos + +> Simultaneously compute the [sine][@stdlib/math/base/special/sin] and [cosine][@stdlib/math/base/special/cos] of an angle measured in radians on the interval `[-π/4, π/4]`. + +
+ +## Usage + +```javascript +var kernelSincos = require( '@stdlib/math/base/special/kernel-sincos' ); +``` + +#### kernelSincos( x, y, out, stride, offset ) + +Simultaneously computes the [sine][@stdlib/math/base/special/sin] and [cosine][@stdlib/math/base/special/cos] of an angle measured in radians on the interval `[-π/4, π/4]`. + +```javascript +var v = kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +// returns [ ~0.0, ~1.0 ] + +v = kernelSincos( 3.141592653589793/2.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +// returns [ ~1.0, ~0.0 ] + +v = kernelSincos( -3.141592653589793/6.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +// returns [ ~-0.5, ~0.866 ] + +v = kernelSincos( NaN, 0.0, [ 0.0, 0.0 ], 1, 0 ); +// returns [ NaN, NaN ] +``` + +
+ + + +
+ +## Examples + + + +```javascript +var linspace = require( '@stdlib/array/base/linspace' ); +var PI = require( '@stdlib/constants/float64/pi' ); +var kernelSincos = require( '@stdlib/math/base/special/kernel-sincos' ); + +var x = linspace( -PI/4.0, PI/4.0, 100 ); + +var y; +var i; +for ( i = 0; i < x.length; i++ ) { + y = kernelSincos( x[ i ], 0.0, [ 0.0, 0.0 ], 1, 0 ); + console.log( 'kernelSincos(%d) = [ %d, %d ]', x[ i ], y[ 0 ], y[ 1 ] ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/kernel_sincos.h" +``` + +#### stdlib_base_kernel_sincos( x, y, &sine, &cosine ) + +Simultaneously computes the [sine][@stdlib/math/base/special/sin] and [cosine][@stdlib/math/base/special/cos] of an angle measured in radians on the interval `[-π/4, π/4]`. + +```c +double cosine; +double sine; + +stdlib_base_kernel_sincos( 0.0, 0.0, &sine, &cosine ); +``` + +The function accepts the following arguments: + +- **x**: `[in] double` input value (in radians, assumed to be bounded by `~pi/4` in magnitude). +- **y**: `[in] double` tail of `x`. +- **sine**: `[out] double*` destination for the sine. +- **cosine**: `[out] double*` destination for the cosine. + +```c +void stdlib_base_kernel_sincos( const double x, const double y, double* sine, double* cosine ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/kernel_sincos.h" +#include + +int main( void ) { + const double x[] = { -0.7853981633974483, -0.6108652381980153, -0.4363323129985824, -0.26179938779914946, -0.08726646259971649, 0.08726646259971649, 0.26179938779914935, 0.43633231299858233, 0.6108652381980153, 0.7853981633974483 }; + + double cosine; + double sine; + int i; + for ( i = 0; i < 10; i++ ) { + stdlib_base_kernel_sincos( x[ i ], 0.0, &sine, &cosine ); + printf( "x: %lf => sine: %lf, cosine: %lf\n", x[ i ], sine, cosine ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.js new file mode 100644 index 000000000000..d9013ca9612c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.js @@ -0,0 +1,55 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PI = require( '@stdlib/constants/float64/pi' ); +var pkg = require( './../package.json' ).name; +var kernelSincos = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var z; + var i; + + x = uniform( 100, -PI/4.0, PI/4.0 ); + z = [ 0.0, 0.0 ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = kernelSincos( x[ i%x.length ], 0.0, z, 1, 0 ); + if ( isnan( y[0] ) || isnan( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y[0] ) || isnan( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.native.js new file mode 100644 index 000000000000..6fa86a01d1f9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/benchmark.native.js @@ -0,0 +1,62 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PI = require( '@stdlib/constants/float64/pi' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var kernelSincos = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( kernelSincos instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, -PI/4.0, PI/4.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = kernelSincos( x[ i%x.length ], 0.0 ); + if ( isnan( y[0] ) || isnan( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y[0] ) || isnan( y[1] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/Makefile new file mode 100644 index 000000000000..5535a99596b1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/Makefile @@ -0,0 +1,147 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean + diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..d42d8b9ecd0b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/benchmark/c/native/benchmark.c @@ -0,0 +1,137 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/kernel_sincos.h" +#include +#include +#include +#include +#include + +#define NAME "kernel_sincos" +#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 double rand_double( void ) { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double x[ 100 ]; + double elapsed; + double cosine; + double sine; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( ( rand_double()*2.0 ) - 1.0 ) * 0.7853981633974483; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + stdlib_base_kernel_sincos( x[ i%100 ], 0.0, &sine, &cosine ); + if ( cosine != cosine || sine != sine ) { + printf( "unexpected results\n" ); + break; + } + } + elapsed = tic() - t; + if ( cosine != cosine || sine != sine ) { + 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::%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/kernel-sincos/binding.gyp b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/binding.gyp new file mode 100644 index 000000000000..68a1ca11d160 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/repl.txt new file mode 100644 index 000000000000..e47a6f9979d3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/repl.txt @@ -0,0 +1,38 @@ + +{{alias}}( x, y, out, stride, offset ) + Simultaneously computes the sine and cosine of an angle measured in + radians on the interval [-π/4, π/4]. + + Parameters + ---------- + x: number + Input value (in radians). + + y: number + Tail of `x`. + + out: Array + Output array. + + stride: integer + Output array stride. + + offset: integer + Output array index offset. + + Returns + ------- + y: Array + Sine and cosine. + + Examples + -------- + > var out = new {{alias:@stdlib/array/float64}}( 2 ); + > var v = {{alias}}( 0.0, 0.0, out, 1, 0 ) + [ ~0.0, ~1.0 ] + > var bool = ( v === out ) + true + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/index.d.ts new file mode 100644 index 000000000000..8452aa65edfd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/index.d.ts @@ -0,0 +1,52 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Simultaneously computes the sine and cosine of an angle measured in radians on the interval `[-π/4, π/4]`. +* +* @param x - input value (in radians, assumed to be bounded by `~π/4` in magnitude) +* @param y - tail of `x` +* @param out - output array +* @param stride - output array stride +* @param offset - output array index offset +* @returns sine and cosine +* +* @example +* var v = kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~0.0, ~1.0 ] +* +* @example +* var v = kernelSincos( 3.141592653589793/2.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~1.0, ~0.0 ] +* +* @example +* var v = kernelSincos( -3.141592653589793/6.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ ~-0.5, ~0.866 ] +* +* @example +* var v = kernelSincos( NaN, 0.0, [ 0.0, 0.0 ], 1, 0 ); +* // returns [ NaN, NaN ] +*/ +declare function kernelSincos( x: number, y: number, out: Array, stride: number, offset: number ): Array; + + +// EXPORTS // + +export = kernelSincos; diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/test.ts new file mode 100644 index 000000000000..69e11f75da58 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/docs/types/test.ts @@ -0,0 +1,91 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import kernelSincos = require( './index' ); + + +// TESTS // + +// The function returns an array of numbers... +{ + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectType number[] +} + +// The compiler throws an error if the function is provided a first argument which is not a number... +{ + kernelSincos( true, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( false, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( null, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( '5', 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( [], 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( {}, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( ( x: number ): number => x, 0.0, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a number... +{ + kernelSincos( 0.0, true, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, false, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, null, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, '5', [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, [], [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, {}, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError + kernelSincos( 0.0, ( x: number ): number => x, [ 0.0, 0.0 ], 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not an array-like object... +{ + kernelSincos( 0.0, 0.0, 0.0, 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, true, 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, false, 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, null, 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, '5', 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, {}, 1, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, ( x: number ): number => x, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a number... +{ + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], true, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], false, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], null, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], '5', 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], [], 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], {}, 0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a number... +{ + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, true ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, false ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, null ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, '5' ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, [] ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, {} ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + kernelSincos(); // $ExpectError + kernelSincos( 0.0 ); // $ExpectError + kernelSincos( 0.0, 0.0 ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ] ); // $ExpectError + kernelSincos( 0.0, 0.0, [ 0.0, 0.0 ], 1 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/Makefile new file mode 100644 index 000000000000..25ced822f96a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/example.c new file mode 100644 index 000000000000..62fcb33c5eb1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/c/example.c @@ -0,0 +1,33 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#include "stdlib/math/base/special/kernel_sincos.h" +#include + +int main( void ) { + const double x[] = { -0.7853981633974483, -0.6108652381980153, -0.4363323129985824, -0.26179938779914946, -0.08726646259971649, 0.08726646259971649, 0.26179938779914935, 0.43633231299858233, 0.6108652381980153, 0.7853981633974483 }; + + double cosine; + double sine; + int i; + for ( i = 0; i < 10; i++ ) { + stdlib_base_kernel_sincos( x[ i ], 0.0, &sine, &cosine ); + printf( "x: %lf => sine: %lf, cosine: %lf\n", x[ i ], sine, cosine ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/index.js b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/index.js new file mode 100644 index 000000000000..91471239a6b4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/examples/index.js @@ -0,0 +1,32 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var linspace = require( '@stdlib/array/base/linspace' ); +var PI = require( '@stdlib/constants/float64/pi' ); +var kernelSincos = require( './../lib' ); + +var x = linspace( -PI/4.0, PI/4.0, 100 ); + +var y; +var i; +for ( i = 0; i < x.length; i++ ) { + y = kernelSincos( x[ i ], 0.0, [ 0.0, 0.0 ], 1, 0 ); + console.log( 'kernelSincos(%d) = [ %d, %d ]', x[ i ], y[ 0 ], y[ 1 ] ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include.gypi b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include.gypi new file mode 100644 index 000000000000..ecfaf82a3279 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + '} out - output array -* @param {integer} stride - output array stride -* @param {NonNegativeInteger} offset - output array index offset * @returns {Array} sine and cosine * * @example diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/manifest.json b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/manifest.json new file mode 100644 index 000000000000..781a71f9bb81 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/manifest.json @@ -0,0 +1,71 @@ +{ + "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-double", + "@stdlib/napi/argv-float64array", + "@stdlib/napi/export" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [] + }, + { + "task": "examples", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [] + } + ] +} + diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/package.json b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/package.json new file mode 100644 index 000000000000..539bde3d31fb --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/package.json @@ -0,0 +1,72 @@ +{ + "name": "@stdlib/math/base/special/kernel-sincos", + "version": "0.0.0", + "description": "Simultaneously compute the sine and cosine of an angle measured in radians on the interval [-π/4, π/4].", + "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", + "math.cos", + "math.sin", + "sine", + "cos", + "cosine", + "sincos", + "kernel", + "trig", + "trigonometry", + "radians", + "angle" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..1d0698d2d45b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/kernel-sincos/test/fixtures/julia/runner.jl @@ -0,0 +1,76 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import JSON + +""" + gen( domain, filepath ) + +Generate fixture data and write to file. + +# Arguments + +* `domain`: domain +* `filepath::AbstractString`: filepath of the output file + +# Examples + +``` julia +julia> x = range( -1000.0, stop = 1000.0, length = 2001 ); +julia> gen( x, \"./data.json\" ); +``` +""" +function gen( domain, filepath ) + x = collect( domain ); + s = sin.( x ); + c = cos.( x ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("sine", s), + ("cosine", c) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Values within the defined domain: +x = range( -pi/4.0, stop = pi/4.0, length = 1000 ) +gen( x, "small_range.json" ); + +# Positive values outside the defined domain: +x = range( 40.0*pi/4.0, stop = 200*pi/4.0, length = 1000 ) +gen( x, "large_positive.json" ); + +# Negative values outside the defined domain: +x = range( -200*pi/4.0, stop = -40*pi/4.0, length = 1000 ) +gen( x, "large_negative.json" );