diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/README.md b/lib/node_modules/@stdlib/math/base/special/sincospif/README.md
new file mode 100644
index 000000000000..8d5da2815869
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/README.md
@@ -0,0 +1,223 @@
+
+
+# sincospif
+
+> Simultaneously compute the [sinf][@stdlib/math/base/special/sinf] and [cosf][@stdlib/math/base/special/cosf] of a single-precision floating-point number times [π][@stdlib/constants/float32/pi].
+
+
+
+## Usage
+
+```javascript
+var sincospif = require( '@stdlib/math/base/special/sincospif' );
+```
+
+#### sincospif( x )
+
+Simultaneously computes sin(πx) and cos(πx) using single-precision floating-point arithmetic. This function is more accurate than computing `sinf(πx)` and `cosf(πx)` separately, especially for large values of `x`.
+
+```javascript
+var v = sincospif( 0.0 );
+// returns [ 0.0, 1.0 ]
+
+v = sincospif( 0.5 );
+// returns [ 1.0, 0.0 ]
+
+v = sincospif( 0.1 );
+// returns [ ~0.309, ~0.951 ]
+
+v = sincospif( NaN );
+// returns [ NaN, NaN ]
+```
+
+#### sincospif.assign( x, out, stride, offset )
+
+Simultaneously computes the [sinf][@stdlib/math/base/special/sinf] and [cosf][@stdlib/math/base/special/cosf] of a single-precision floating-point number times [π][@stdlib/constants/float32/pi] more accurately than `sincos(pi*x)`, especially for large `x`, and assigns results to a provided output array.
+
+
+
+```javascript
+var Float32Array = require( '@stdlib/array/float32' );
+
+var out = new Float32Array( 2 );
+
+var v = sincospif.assign( 0.0, out, 1, 0 );
+// returns [ 0.0, 1.0 ]
+
+var bool = ( v === out );
+// returns true
+```
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var linspace = require( '@stdlib/array/base/linspace' );
+var sincospif = require( '@stdlib/math/base/special/sincospif' );
+
+var x = linspace( 0.0, 2.0, 101 );
+
+var i;
+for ( i = 0; i < x.length; i++ ) {
+ console.log( sincospif( x[ i ] ) );
+}
+```
+
+
+
+
+
+
+
+* * *
+
+
+
+## C APIs
+
+
+
+
+
+
+
+
+
+
+
+### Usage
+
+```c
+#include "stdlib/math/base/special/sincospif.h"
+```
+
+#### stdlib_base_sincospif( x, &sine, &cosine )
+
+Simultaneously computes sin(πx) and cos(πx) using single-precision floating-point arithmetic and assigns the results to a provided output pointers.
+
+```c
+float cosine;
+float sine;
+
+stdlib_base_sincospif( 4.0f, &sine, &cosine );
+```
+
+The function accepts the following arguments:
+
+- **x**: `[in] float` input value.
+- **sine**: `[out] float*` destination for the sine.
+- **cosine**: `[out] float*` destination for the cosine.
+
+```c
+void stdlib_base_sincospif( const float x, float *sine, float *cosine );
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Examples
+
+```c
+#include "stdlib/math/base/special/sincospif.h"
+#include
+
+int main( void ) {
+ const float x[] = { 0.0f, 0.5f, 1.0f, 2.0f };
+
+ float cosine;
+ float sine;
+ int i;
+ for ( i = 0; i < 4; i++ ) {
+ stdlib_base_sincospif( x[ i ], &sine, &cosine );
+ printf( "x: %f => sine: %f, cosine: %f\n", x[ i ], sine, cosine );
+ }
+}
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[@stdlib/math/base/special/sinf]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/sinf
+
+[@stdlib/math/base/special/cosf]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/cosf
+
+[@stdlib/constants/float32/pi]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/constants/float32/pi
+
+
+
+[@stdlib/math/base/special/cospif]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/cospif
+
+[@stdlib/math/base/special/sincosf]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/sincosf
+
+[@stdlib/math/base/special/sinpif]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/sinpif
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.js
new file mode 100644
index 000000000000..ba18001b1615
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.js
@@ -0,0 +1,179 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var bench = require( '@stdlib/bench' );
+var uniform = require( '@stdlib/random/array/uniform' );
+var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
+var sinpif = require( '@stdlib/math/base/special/sinpif' );
+var cospif = require( '@stdlib/math/base/special/cospif' );
+var PIF = require( '@stdlib/constants/float32/pi' );
+var format = require( '@stdlib/string/format' );
+var Float32Array = require( '@stdlib/array/float32' );
+var pkg = require( './../package.json' ).name;
+var sincospif = require( './../lib' );
+
+
+// MAIN //
+
+bench( pkg, function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y = sincospif( x[ i % x.length ] );
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
+
+bench( format( '%s::separate-evaluation', pkg ), function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0 );
+ y = new Float32Array( 2 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y[ 0 ] = sinpif( x[ i % x.length ] );
+ y[ 1 ] = cospif( x[ i % x.length ] );
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
+
+bench( format( '%s:assign', pkg ), function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0 );
+ y = new Float32Array( 2 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ sincospif.assign( x[ i % x.length ], y, 1, 0 );
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
+
+bench( format( '%s::separate-evaluation,in-place', pkg ), function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0, {
+ 'dtype': 'float32'
+ });
+ y = new Float32Array( 2 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y[ 0 ] = sinpif( x[ i%x.length ] );
+ y[ 1 ] = cospif( x[ i%x.length ] );
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
+
+bench( format( '%s::built-in', pkg ), function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y = [
+ Math.sin( PIF * x[ i % x.length ] ), // eslint-disable-line stdlib/no-builtin-math
+ Math.cos( PIF * x[ i % x.length ] ) // eslint-disable-line stdlib/no-builtin-math
+ ];
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
+
+bench( format( '%s::built-in,in-place', pkg ), function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0 );
+ y = new Float32Array( 2 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y[ 0 ] = Math.sin( PIF * x[ i % x.length ] ); // eslint-disable-line stdlib/no-builtin-math
+ y[ 1 ] = Math.cos( PIF * x[ i % x.length ] ); // eslint-disable-line stdlib/no-builtin-math
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.native.js
new file mode 100644
index 000000000000..189e4ed7dd3f
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/benchmark.native.js
@@ -0,0 +1,64 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var resolve = require( 'path' ).resolve;
+var bench = require( '@stdlib/bench' );
+var uniform = require( '@stdlib/random/array/uniform' );
+var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
+var tryRequire = require( '@stdlib/utils/try-require' );
+var format = require( '@stdlib/string/format' );
+var pkg = require( './../package.json' ).name;
+
+
+// VARIABLES //
+
+var sincospif = tryRequire( resolve( __dirname, './../lib/native.js' ) );
+var opts = {
+ 'skip': ( sincospif instanceof Error )
+};
+
+
+// MAIN //
+
+bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -10.0, 10.0, {
+ 'dtype': 'float32'
+ });
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y = sincospif( x[ i%x.length ] );
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnanf( y[ 0 ] ) || isnanf( y[ 1 ] ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/Makefile
new file mode 100644
index 000000000000..928de45a1a06
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/Makefile
@@ -0,0 +1,127 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+# Define the program used for compiling C source files:
+ifdef C_COMPILER
+ CC := $(C_COMPILER)
+else
+ CC := gcc
+endif
+
+# Define the command-line options when compiling C files:
+CFLAGS ?= \
+ -std=c99 \
+ -O3 \
+ -Wall \
+ -pedantic
+
+# Determine whether to generate position independent code ([1][1], [2][2]).
+#
+# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
+# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
+ifeq ($(OS), WINNT)
+ fPIC ?=
+else
+ fPIC ?= -fPIC
+endif
+
+# List of C targets:
+c_targets := benchmark.out
+
+
+# RULES #
+
+#/
+# Compiles C source files.
+#
+# @param {string} [C_COMPILER] - C compiler
+# @param {string} [CFLAGS] - C compiler flags
+# @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code
+#
+# @example
+# make
+#
+# @example
+# make all
+#/
+all: $(c_targets)
+
+.PHONY: all
+
+#/
+# Compiles C source files.
+#
+# @private
+# @param {string} CC - C compiler
+# @param {string} CFLAGS - C compiler flags
+# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code
+#/
+$(c_targets): %.out: %.c
+ $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm
+
+#/
+# Runs compiled benchmarks.
+#
+# @example
+# make run
+#/
+run: $(c_targets)
+ $(QUIET) ./$<
+
+.PHONY: run
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean:
+ $(QUIET) -rm -f *.o *.out
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/Makefile
new file mode 100644
index 000000000000..979768abbcec
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+# Define the program used for compiling C source files:
+ifdef C_COMPILER
+ CC := $(C_COMPILER)
+else
+ CC := gcc
+endif
+
+# Define the command-line options when compiling C files:
+CFLAGS ?= \
+ -std=c99 \
+ -O3 \
+ -Wall \
+ -pedantic
+
+# Determine whether to generate position independent code ([1][1], [2][2]).
+#
+# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
+# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
+ifeq ($(OS), WINNT)
+ fPIC ?=
+else
+ fPIC ?= -fPIC
+endif
+
+# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
+INCLUDE ?=
+
+# List of source files:
+SOURCE_FILES ?=
+
+# List of libraries (e.g., `-lopenblas -lpthread`):
+LIBRARIES ?=
+
+# List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
+LIBPATH ?=
+
+# List of C targets:
+c_targets := benchmark.out
+
+
+# RULES #
+
+#/
+# Compiles source files.
+#
+# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
+# @param {string} [CFLAGS] - C compiler options
+# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
+# @param {string} [SOURCE_FILES] - list of source files
+# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
+# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
+#
+# @example
+# make
+#
+# @example
+# make all
+#/
+all: $(c_targets)
+
+.PHONY: all
+
+#/
+# Compiles C source files.
+#
+# @private
+# @param {string} CC - C compiler (e.g., `gcc`)
+# @param {string} CFLAGS - C compiler options
+# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
+# @param {string} SOURCE_FILES - list of source files
+# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
+# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
+#/
+$(c_targets): %.out: %.c
+ $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES)
+
+#/
+# Runs compiled benchmarks.
+#
+# @example
+# make run
+#/
+run: $(c_targets)
+ $(QUIET) ./$<
+
+.PHONY: run
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean:
+ $(QUIET) -rm -f *.o *.out
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/benchmark.c
new file mode 100644
index 000000000000..e30a538b799c
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/benchmark/c/native/benchmark.c
@@ -0,0 +1,135 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/math/base/special/sincospif.h"
+#include
+#include
+#include
+#include
+#include
+
+#define NAME "sincospif"
+#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 );
+ printf( "# total %d\n", total );
+ printf( "# pass %d\n", passing );
+ printf( "#\n" );
+ printf( "# ok\n" );
+}
+
+/**
+* Prints benchmark results.
+*
+* @param elapsed elapsed time in seconds
+*/
+static void print_results( double elapsed ) {
+ double rate = (double)ITERATIONS / elapsed;
+ printf( " ---\n" );
+ printf( " iterations: %d\n", ITERATIONS );
+ printf( " elapsed: %0.9f\n", elapsed );
+ printf( " rate: %0.9f\n", rate );
+ printf( " ...\n" );
+}
+
+/**
+* Returns a clock time.
+*
+* @return clock time
+*/
+static double tic( void ) {
+ struct timeval now;
+ gettimeofday( &now, NULL );
+ return (double)now.tv_sec + (double)now.tv_usec / 1.0e6;
+}
+
+/**
+* Generates a random number on the interval [0,1).
+*
+* @return random number
+*/
+static float rand_float( void ) {
+ return (float)( ( 20.0 * rand() ) / ( (double)RAND_MAX + 1.0 ) - 10.0 );
+}
+
+/**
+* Runs a benchmark.
+*
+* @return elapsed time in seconds
+*/
+static double benchmark( void ) {
+ float x[ 100 ];
+ float sine;
+ float cosine;
+ double elapsed;
+ double t;
+ int i;
+
+ for ( i = 0; i < 100; i++ ) {
+ x[ i ] = rand_float();
+ }
+
+ t = tic();
+ for ( i = 0; i < ITERATIONS; i++ ) {
+ stdlib_base_sincospif( x[ i%100 ], &sine, &cosine );
+ if ( isnanf( sine ) || isnanf( cosine ) ) {
+ printf( "unexpected results\n" );
+ break;
+ }
+ }
+ elapsed = tic() - t;
+ if ( isnanf( sine ) || isnanf( cosine ) ) {
+ printf( "unexpected results\n" );
+ }
+ return elapsed;
+}
+
+/**
+* Main execution sequence.
+*/
+int main( void ) {
+ double elapsed;
+ int i;
+
+ srand( time( NULL ) );
+
+ print_version();
+ for ( i = 0; i < REPEATS; i++ ) {
+ printf( "# c::native::%s\n", NAME );
+ elapsed = benchmark();
+ print_results( elapsed );
+ printf( "ok %d benchmark finished\n", i+1 );
+ }
+ print_summary( REPEATS, REPEATS );
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/binding.gyp b/lib/node_modules/@stdlib/math/base/special/sincospif/binding.gyp
new file mode 100644
index 000000000000..0d6508a12e99
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/binding.gyp
@@ -0,0 +1,170 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A `.gyp` file for building a Node.js native add-on.
+#
+# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md
+# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md
+{
+ # List of files to include in this file:
+ 'includes': [
+ './include.gypi',
+ ],
+
+ # Define variables to be used throughout the configuration for all targets:
+ 'variables': {
+ # Target name should match the add-on export name:
+ 'addon_target_name%': 'addon',
+
+ # Set variables based on the host OS:
+ 'conditions': [
+ [
+ 'OS=="win"',
+ {
+ # Define the object file suffix:
+ 'obj': 'obj',
+ },
+ {
+ # Define the object file suffix:
+ 'obj': 'o',
+ }
+ ], # end condition (OS=="win")
+ ], # end conditions
+ }, # end variables
+
+ # Define compile targets:
+ 'targets': [
+
+ # Target to generate an add-on:
+ {
+ # The target name should match the add-on export name:
+ 'target_name': '<(addon_target_name)',
+
+ # Define dependencies:
+ 'dependencies': [],
+
+ # Define directories which contain relevant include headers:
+ 'include_dirs': [
+ # Local include directory:
+ '<@(include_dirs)',
+ ],
+
+ # List of source files:
+ 'sources': [
+ '<@(src_files)',
+ ],
+
+ # Settings which should be applied when a target's object files are used as linker input:
+ 'link_settings': {
+ # Define libraries:
+ 'libraries': [
+ '<@(libraries)',
+ ],
+
+ # Define library directories:
+ 'library_dirs': [
+ '<@(library_dirs)',
+ ],
+ },
+
+ # C/C++ compiler flags:
+ 'cflags': [
+ # Enable commonly used warning options:
+ '-Wall',
+
+ # Aggressive optimization:
+ '-O3',
+ ],
+
+ # C specific compiler flags:
+ 'cflags_c': [
+ # Specify the C standard to which a program is expected to conform:
+ '-std=c99',
+ ],
+
+ # C++ specific compiler flags:
+ 'cflags_cpp': [
+ # Specify the C++ standard to which a program is expected to conform:
+ '-std=c++11',
+ ],
+
+ # Linker flags:
+ 'ldflags': [],
+
+ # Apply conditions based on the host OS:
+ 'conditions': [
+ [
+ 'OS=="mac"',
+ {
+ # Linker flags:
+ 'ldflags': [
+ '-undefined dynamic_lookup',
+ '-Wl,-no-pie',
+ '-Wl,-search_paths_first',
+ ],
+ },
+ ], # end condition (OS=="mac")
+ [
+ 'OS!="win"',
+ {
+ # C/C++ flags:
+ 'cflags': [
+ # Generate platform-independent code:
+ '-fPIC',
+ ],
+ },
+ ], # end condition (OS!="win")
+ ], # end conditions
+ }, # end target <(addon_target_name)
+
+ # Target to copy a generated add-on to a standard location:
+ {
+ 'target_name': 'copy_addon',
+
+ # Declare that the output of this target is not linked:
+ 'type': 'none',
+
+ # Define dependencies:
+ 'dependencies': [
+ # Require that the add-on be generated before building this target:
+ '<(addon_target_name)',
+ ],
+
+ # Define a list of actions:
+ 'actions': [
+ {
+ 'action_name': 'copy_addon',
+ 'message': 'Copying addon...',
+
+ # Explicitly list the inputs in the command-line invocation below:
+ 'inputs': [],
+
+ # Declare the expected outputs:
+ 'outputs': [
+ '<(addon_output_dir)/<(addon_target_name).node',
+ ],
+
+ # Define the command-line invocation:
+ 'action': [
+ 'cp',
+ '<(PRODUCT_DIR)/<(addon_target_name).node',
+ '<(addon_output_dir)/<(addon_target_name).node',
+ ],
+ },
+ ], # end actions
+ }, # end target copy_addon
+ ], # end targets
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/repl.txt
new file mode 100644
index 000000000000..e72f587ec588
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/repl.txt
@@ -0,0 +1,61 @@
+
+{{alias}}( x )
+ Simultaneously computes the sine and cosine of a number times π
+ using single-precision floating-point arithmetic.
+
+ Parameters
+ ----------
+ x: number
+ Input value.
+
+ Returns
+ -------
+ y: Array
+ Two-element array containing sin(πx) and cos(πx).
+
+ Examples
+ --------
+ > var y = {{alias}}( 0.0 )
+ [ 0.0, 1.0 ]
+ > y = {{alias}}( 0.5 )
+ [ 1.0, 0.0 ]
+ > y = {{alias}}( 0.1 )
+ [ ~0.309, ~0.951 ]
+ > y = {{alias}}( NaN )
+ [ NaN, NaN ]
+
+
+{{alias}}.assign( x, out, stride, offset )
+ Simultaneously computes the sine and cosine of a number times π
+ using single-precision floating-point arithmetic and assigns results
+ to a provided output array.
+
+ Parameters
+ ----------
+ x: number
+ Input value.
+
+ out: Array|TypedArray|Object
+ Output array.
+
+ stride: integer
+ Output array stride.
+
+ offset: integer
+ Output array index offset.
+
+ Returns
+ -------
+ y: Array|TypedArray|Object
+ Two-element array containing sin(πx) and cos(πx).
+
+ Examples
+ --------
+ > var out = new {{alias:@stdlib/array/float32}}( 2 );
+ > var v = {{alias}}.assign( 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/sincospif/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/types/index.d.ts
new file mode 100644
index 000000000000..999a8c49e995
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/types/index.d.ts
@@ -0,0 +1,107 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+// TypeScript Version: 4.1
+
+///
+
+import { Collection } from '@stdlib/types/array';
+
+/**
+* Interface describing `sincospif`.
+*/
+interface SinCosPiF {
+ /**
+ * Simultaneously computes the sine and cosine of a number times π using
+ * single-precision floating-point arithmetic.
+ *
+ * @param x - input value
+ * @returns two-element array containing sin(πx) and cos(πx)
+ *
+ * @example
+ * var v = sincospif( 0.0 );
+ * // returns [ 0.0, 1.0 ]
+ *
+ * @example
+ * var v = sincospif( 0.5 );
+ * // returns [ 1.0, 0.0 ]
+ *
+ * @example
+ * var v = sincospif( 0.1 );
+ * // returns [ ~0.309, ~0.951 ]
+ *
+ * @example
+ * var v = sincospif( NaN );
+ * // returns [ NaN, NaN ]
+ */
+ ( x: number ): Float32Array;
+
+ /**
+ * Simultaneously computes the sine and cosine of a number times π using
+ * single-precision floating-point arithmetic and assigns results to a
+ * provided output array.
+ *
+ * @param x - input value
+ * @param out - output array
+ * @param stride - output array stride
+ * @param offset - output array index offset
+ * @returns two-element array containing sin(πx) and cos(πx)
+ *
+ * @example
+ * var Float32Array = require( '@stdlib/array/float32' );
+ *
+ * var out = new Float32Array( 2 );
+ *
+ * var v = sincospif( 0.0, out, 1, 0 );
+ * // returns [ 0.0, 1.0 ]
+ *
+ * var bool = ( v === out );
+ * // returns true
+ */
+ assign( x: number, out: T, stride: number, offset: number ): T;
+}
+
+/**
+* Simultaneously computes the sine and cosine of a number times π using
+* single-precision floating-point arithmetic.
+*
+* @param x - input value
+* @returns two-element array containing sin(πx) and cos(πx)
+*
+* @example
+* var v = sincospif( 0.0 );
+* // returns [ 0.0, 1.0 ]
+*
+* @example
+* var v = sincospif( 0.5 );
+* // returns [ 1.0, 0.0 ]
+*
+* @example
+* var v = sincospif( 0.1 );
+* // returns [ ~0.309, ~0.951 ]
+*
+* @example
+* var v = sincospif( NaN );
+* // returns [ NaN, NaN ]
+*/
+declare var sincospif: SinCosPiF;
+
+
+// EXPORTS //
+
+export = sincospif;
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/types/test.ts
new file mode 100644
index 000000000000..3fc191395913
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/docs/types/test.ts
@@ -0,0 +1,113 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+///
+
+import sincospif = require( './index' );
+
+
+// TESTS //
+
+// The function returns a Float32Array...
+{
+ sincospif( 1.0 ); // $ExpectType Float32Array
+}
+
+// The compiler throws an error if the function is provided an argument other than a number...
+{
+ sincospif( true ); // $ExpectError
+ sincospif( false ); // $ExpectError
+ sincospif( null ); // $ExpectError
+ sincospif( undefined ); // $ExpectError
+ sincospif( '5' ); // $ExpectError
+ sincospif( [] ); // $ExpectError
+ sincospif( {} ); // $ExpectError
+ sincospif( ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an unsupported number of arguments...
+{
+ sincospif(); // $ExpectError
+ sincospif( 1.0, 1.0 ); // $ExpectError
+}
+
+// Attached to the main export is an `assign` method which returns an array-like object containing numbers...
+{
+ const out = new Float32Array( 2 );
+
+ sincospif.assign( 3.14e-319, out, 1, 0 ); // $ExpectType Collection
+}
+
+// The compiler throws an error if the `assign` method is provided a first argument which is not a number...
+{
+ const out = [ 0.0, 0.0 ];
+
+ sincospif.assign( true, out, 1, 0 ); // $ExpectError
+ sincospif.assign( false, out, 1, 0 ); // $ExpectError
+ sincospif.assign( '5', out, 1, 0 ); // $ExpectError
+ sincospif.assign( null, out, 1, 0 ); // $ExpectError
+ sincospif.assign( [], out, 1, 0 ); // $ExpectError
+ sincospif.assign( {}, out, 1, 0 ); // $ExpectError
+ sincospif.assign( ( x: number ): number => x, out, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `assign` method is provided a second argument which is not an array-like object...
+{
+ sincospif.assign( 1.0, 1, 1, 0 ); // $ExpectError
+ sincospif.assign( 1.0, true, 1, 0 ); // $ExpectError
+ sincospif.assign( 1.0, false, 1, 0 ); // $ExpectError
+ sincospif.assign( 1.0, null, 1, 0 ); // $ExpectError
+ sincospif.assign( 1.0, {}, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `assign` method is provided a third argument which is not a number...
+{
+ const out = [ 0.0, 0.0 ];
+
+ sincospif.assign( 1.0, out, '5', 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, true, 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, false, 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, null, 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, [], 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, {}, 0 ); // $ExpectError
+ sincospif.assign( 1.0, out, ( x: number ): number => x, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `assign` method is provided a fourth argument which is not a number...
+{
+ const out = [ 0.0, 0.0 ];
+
+ sincospif.assign( 1.0, out, 1, '5' ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, true ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, false ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, null ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, [] ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, {} ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the `assign` method is provided an unsupported number of arguments...
+{
+ const out = [ 0.0, 0.0 ];
+
+ sincospif.assign(); // $ExpectError
+ sincospif.assign( 1.0 ); // $ExpectError
+ sincospif.assign( 1.0, out ); // $ExpectError
+ sincospif.assign( 1.0, out, 1 ); // $ExpectError
+ sincospif.assign( 1.0, out, 1, 0, 1 ); // $ExpectError
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/Makefile
new file mode 100644
index 000000000000..c8f8e9a1517b
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+# Define the program used for compiling C source files:
+ifdef C_COMPILER
+ CC := $(C_COMPILER)
+else
+ CC := gcc
+endif
+
+# Define the command-line options when compiling C files:
+CFLAGS ?= \
+ -std=c99 \
+ -O3 \
+ -Wall \
+ -pedantic
+
+# Determine whether to generate position independent code ([1][1], [2][2]).
+#
+# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
+# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
+ifeq ($(OS), WINNT)
+ fPIC ?=
+else
+ fPIC ?= -fPIC
+endif
+
+# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
+INCLUDE ?=
+
+# List of source files:
+SOURCE_FILES ?=
+
+# List of libraries (e.g., `-lopenblas -lpthread`):
+LIBRARIES ?=
+
+# List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
+LIBPATH ?=
+
+# List of C targets:
+c_targets := example.out
+
+
+# RULES #
+
+#/
+# Compiles source files.
+#
+# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
+# @param {string} [CFLAGS] - C compiler options
+# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
+# @param {string} [SOURCE_FILES] - list of source files
+# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
+# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
+#
+# @example
+# make
+#
+# @example
+# make all
+#/
+all: $(c_targets)
+
+.PHONY: all
+
+#/
+# Compiles C source files.
+#
+# @private
+# @param {string} CC - C compiler (e.g., `gcc`)
+# @param {string} CFLAGS - C compiler options
+# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
+# @param {string} SOURCE_FILES - list of source files
+# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
+# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
+#/
+$(c_targets): %.out: %.c
+ $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES)
+
+#/
+# Runs compiled examples.
+#
+# @example
+# make run
+#/
+run: $(c_targets)
+ $(QUIET) ./$<
+
+.PHONY: run
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean:
+ $(QUIET) -rm -f *.o *.out
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/example.c
new file mode 100644
index 000000000000..b058bd008596
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/c/example.c
@@ -0,0 +1,32 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/math/base/special/sincospif.h"
+#include
+
+int main( void ) {
+ const float x[] = { 0.0f, 0.5f, 1.0f, 2.0f };
+
+ float cosine;
+ float sine;
+ int i;
+ for ( i = 0; i < 4; i++ ) {
+ stdlib_base_sincospif( x[ i ], &sine, &cosine );
+ printf( "x: %f => sine: %f, cosine: %f\n", x[ i ], sine, cosine );
+ }
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/examples/index.js b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/index.js
new file mode 100644
index 000000000000..68fef5dc3686
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/examples/index.js
@@ -0,0 +1,31 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+var linspace = require( '@stdlib/array/base/linspace' );
+var sincospif = require( './../lib' );
+
+var x = linspace( 0.0, 2.0, 101 );
+
+var y;
+var i;
+for ( i = 0; i < x.length; i++ ) {
+ y = sincospif( x[ i ] );
+ console.log( 'sincospif(%d) = [ %d, %d ]', x[ i ], y[ 0 ], y[ 1 ] );
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/include.gypi b/lib/node_modules/@stdlib/math/base/special/sincospif/include.gypi
new file mode 100644
index 000000000000..bee8d41a2caf
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/include.gypi
@@ -0,0 +1,53 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A GYP include file for building a Node.js native add-on.
+#
+# Main documentation:
+#
+# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md
+# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md
+{
+ # Define variables to be used throughout the configuration for all targets:
+ 'variables': {
+ # Source directory:
+ 'src_dir': './src',
+
+ # Include directories:
+ 'include_dirs': [
+ '[ 0.0, 1.0 ]
+*
+* v = sincospif( 0.5 );
+* // returns [ 1.0, 0.0 ]
+*
+* v = sincospif( 0.1 );
+* // returns [ ~0.309, ~0.951 ]
+*
+* v = sincospif( NaN );
+* // returns [ NaN, NaN ]
+*
+* @example
+* var sincospif = require( '@stdlib/math/base/special/sincospif' );
+*
+* var out = new Float32Array( 2 );
+*
+* var v = sincospif.assign( 0.0, out, 1, 0 );
+* // returns [ 0.0, 1.0 ]
+*
+* var bool = ( v === out );
+* // returns true
+*/
+
+// MODULES //
+
+var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
+var main = require( './main.js' );
+var assign = require( './assign.js' );
+
+
+// MAIN //
+
+setReadOnly( main, 'assign', assign );
+
+
+// EXPORTS //
+
+module.exports = main;
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/lib/main.js b/lib/node_modules/@stdlib/math/base/special/sincospif/lib/main.js
new file mode 100644
index 000000000000..9ad0d88baff6
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/lib/main.js
@@ -0,0 +1,58 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var Float32Array = require( '@stdlib/array/float32' );
+var assign = require( './assign.js' );
+
+
+// MAIN //
+
+/**
+* Simultaneously computes the sine and cosine of a number times π (single-precision).
+*
+* @param {number} x - input value
+* @returns {Float32Array} two-element array containing sin(πx) and cos(πx)
+*
+* @example
+* var v = sincospif( 0.0 );
+* // returns [ 0.0, 1.0 ]
+*
+* @example
+* var v = sincospif( 0.5 );
+* // returns [ 1.0, 0.0 ]
+*
+* @example
+* var v = sincospif( 0.1 );
+* // returns [ ~0.309, ~0.951 ]
+*
+* @example
+* var v = sincospif( NaN );
+* // returns [ NaN, NaN ]
+*/
+function sincospif( x ) {
+ return assign( x, new Float32Array( 2 ), 1, 0 );
+}
+
+
+// EXPORTS //
+
+module.exports = sincospif;
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/lib/native.js b/lib/node_modules/@stdlib/math/base/special/sincospif/lib/native.js
new file mode 100644
index 000000000000..94299e1cf03a
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/lib/native.js
@@ -0,0 +1,61 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var Float32Array = require( '@stdlib/array/float32' );
+var addon = require( './../src/addon.node' );
+
+
+// MAIN //
+
+/**
+* Simultaneously computes the sine and cosine of a number times π (single-precision).
+*
+* @private
+* @param {number} x - input value
+* @returns {Float32Array} two-element array containing sin(πx) and cos(πx)
+*
+* @example
+* var v = sincospif( 0.0 );
+* // returns [ 0.0, 1.0 ]
+*
+* @example
+* var v = sincospif( 0.5 );
+* // returns [ 1.0, 0.0 ]
+*
+* @example
+* var v = sincospif( 0.1 );
+* // returns [ ~0.309, ~0.951 ]
+*
+* @example
+* var v = sincospif( NaN );
+* // returns [ NaN, NaN ]
+*/
+function sincospif( x ) {
+ var out = new Float32Array( 2 );
+ addon( x, out );
+ return out;
+}
+
+
+// EXPORTS //
+
+module.exports = sincospif;
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/manifest.json b/lib/node_modules/@stdlib/math/base/special/sincospif/manifest.json
new file mode 100644
index 000000000000..e4138d8de7f9
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/manifest.json
@@ -0,0 +1,96 @@
+{
+ "options": {
+ "task": "build"
+ },
+ "fields": [
+ {
+ "field": "src",
+ "resolve": true,
+ "relative": true
+ },
+ {
+ "field": "include",
+ "resolve": true,
+ "relative": true
+ },
+ {
+ "field": "libraries",
+ "resolve": false,
+ "relative": false
+ },
+ {
+ "field": "libpath",
+ "resolve": true,
+ "relative": false
+ }
+ ],
+ "confs": [
+ {
+ "task": "build",
+ "src": [
+ "./src/main.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/napi/argv",
+ "@stdlib/napi/argv-float",
+ "@stdlib/napi/argv-float32array",
+ "@stdlib/napi/export",
+ "@stdlib/math/base/special/absf",
+ "@stdlib/math/base/special/sincosf",
+ "@stdlib/math/base/special/floorf",
+ "@stdlib/math/base/special/copysignf",
+ "@stdlib/math/base/special/fmodf",
+ "@stdlib/math/base/assert/is-infinitef",
+ "@stdlib/math/base/assert/is-nanf",
+ "@stdlib/constants/float32/pi"
+ ]
+ },
+ {
+ "task": "benchmark",
+ "src": [
+ "./src/main.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/math/base/special/absf",
+ "@stdlib/math/base/special/sincosf",
+ "@stdlib/math/base/special/floorf",
+ "@stdlib/math/base/special/copysignf",
+ "@stdlib/math/base/special/fmodf",
+ "@stdlib/math/base/assert/is-infinitef",
+ "@stdlib/math/base/assert/is-nanf",
+ "@stdlib/constants/float32/pi"
+ ]
+ },
+ {
+ "task": "examples",
+ "src": [
+ "./src/main.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/math/base/special/absf",
+ "@stdlib/math/base/special/sincosf",
+ "@stdlib/math/base/special/floorf",
+ "@stdlib/math/base/special/copysignf",
+ "@stdlib/math/base/special/fmodf",
+ "@stdlib/math/base/assert/is-infinitef",
+ "@stdlib/math/base/assert/is-nanf",
+ "@stdlib/constants/float32/pi"
+ ]
+ }
+ ]
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/package.json b/lib/node_modules/@stdlib/math/base/special/sincospif/package.json
new file mode 100644
index 000000000000..e6164ff51c82
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/package.json
@@ -0,0 +1,73 @@
+{
+ "name": "@stdlib/math/base/special/sincospif",
+ "version": "0.0.0",
+ "description": "Simultaneously compute the sine and cosine of a number times π (single-precision).",
+ "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",
+ "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.sin",
+ "math.cos",
+ "sinpi",
+ "cospi",
+ "sin",
+ "cos",
+ "sincospif",
+ "sine",
+ "cosine",
+ "trig",
+ "trigonometry",
+ "radians",
+ "angle"
+ ]
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/src/Makefile b/lib/node_modules/@stdlib/math/base/special/sincospif/src/Makefile
new file mode 100644
index 000000000000..2caf905cedbe
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/src/Makefile
@@ -0,0 +1,70 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+
+# RULES #
+
+#/
+# Removes generated files for building an add-on.
+#
+# @example
+# make clean-addon
+#/
+clean-addon:
+ $(QUIET) -rm -f *.o *.node
+
+.PHONY: clean-addon
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean: clean-addon
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/src/addon.c b/lib/node_modules/@stdlib/math/base/special/sincospif/src/addon.c
new file mode 100644
index 000000000000..6e2ea6b7c080
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/src/addon.c
@@ -0,0 +1,41 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/math/base/special/sincospif.h"
+#include "stdlib/napi/argv.h"
+#include "stdlib/napi/argv_float.h"
+#include "stdlib/napi/argv_float32array.h"
+#include "stdlib/napi/export.h"
+#include
+
+/**
+* Receives JavaScript callback invocation data.
+*
+* @param env environment under which the function is invoked
+* @param info callback data
+* @return Node-API value
+*/
+static napi_value addon( napi_env env, napi_callback_info info ) {
+ STDLIB_NAPI_ARGV( env, info, argv, argc, 2 );
+ STDLIB_NAPI_ARGV_FLOAT( env, x, argv, 0 );
+ STDLIB_NAPI_ARGV_FLOAT32ARRAY( env, y, ylen, argv, 1 );
+ stdlib_base_sincospif( x, &y[ 0 ], &y[ 1 ] );
+ return NULL;
+}
+
+STDLIB_NAPI_MODULE_EXPORT_FCN( addon )
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/src/main.c b/lib/node_modules/@stdlib/math/base/special/sincospif/src/main.c
new file mode 100644
index 000000000000..fdfbf8978b0f
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/src/main.c
@@ -0,0 +1,98 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/math/base/special/sincospif.h"
+#include "stdlib/math/base/special/absf.h"
+#include "stdlib/math/base/special/sincosf.h"
+#include "stdlib/math/base/special/floorf.h"
+#include "stdlib/math/base/special/copysignf.h"
+#include "stdlib/math/base/special/fmodf.h"
+#include "stdlib/math/base/assert/is_infinitef.h"
+#include "stdlib/math/base/assert/is_nanf.h"
+#include "stdlib/constants/float32/pi.h"
+
+/**
+* Simultaneously computes the sine and cosine of a number times π (single-precision).
+*
+* @param x input value
+* @param sine destination to store the sine
+* @param cosine destination to store the cosine
+*
+* @example
+* float x = 0.0f;
+*
+* float cosine;
+* float sine;
+* stdlib_base_sincospif( x, &sine, &cosine );
+*/
+void stdlib_base_sincospif( const float x, float* sine, float* cosine ) {
+ float tmp;
+ float ix;
+ float ar;
+ float r;
+
+ if ( stdlib_base_is_nanf( x ) || stdlib_base_is_infinitef( x ) ) {
+ *sine = 0.0f / 0.0f; // NaN
+ *cosine = 0.0f / 0.0f; // NaN
+ return;
+ }
+
+ r = stdlib_base_fmodf( x, 2.0f );
+ ar = stdlib_base_absf( r );
+
+ if ( ar == 0.0f || ar == 1.0f ) {
+ ix = stdlib_base_floorf( ar );
+ *sine = stdlib_base_copysignf( 0.0f, r );
+ *cosine = ( stdlib_base_fmodf( ix, 2.0f ) == 1.0f ) ? -1.0f : 1.0f;
+ return;
+ }
+
+ if ( ar < 0.25f ) {
+ stdlib_base_sincosf( STDLIB_CONSTANT_FLOAT32_PI * r, sine, cosine );
+ return;
+ }
+
+ if ( ar < 0.75f ) {
+ ar = 0.5f - ar;
+ stdlib_base_sincosf( STDLIB_CONSTANT_FLOAT32_PI * ar, sine, cosine );
+ tmp = *sine;
+ *sine = stdlib_base_copysignf( *cosine, r );
+ *cosine = tmp;
+ return;
+ }
+
+ if ( ar < 1.25f ) {
+ r = stdlib_base_copysignf( 1.0f, r ) - r;
+ stdlib_base_sincosf( STDLIB_CONSTANT_FLOAT32_PI * r, sine, cosine );
+ *cosine *= -1.0f;
+ return;
+ }
+
+ if ( ar < 1.75f ) {
+ ar -= 1.5f;
+ stdlib_base_sincosf( STDLIB_CONSTANT_FLOAT32_PI * ar, sine, cosine );
+ tmp = *sine;
+ *sine = -stdlib_base_copysignf( *cosine, r );
+ *cosine = tmp;
+ return;
+ }
+
+ r -= stdlib_base_copysignf( 2.0f, r );
+ stdlib_base_sincosf( STDLIB_CONSTANT_FLOAT32_PI * r, sine, cosine );
+ return;
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/REQUIRE
new file mode 100644
index 000000000000..308c3be89c85
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/REQUIRE
@@ -0,0 +1,2 @@
+julia 1.5
+JSON 0.21
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/decimals.json b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/decimals.json
new file mode 100644
index 000000000000..8c72fe591424
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/decimals.json
@@ -0,0 +1 @@
+{"x":[-100.0,-99.9001,-99.8002,-99.7003,-99.6004,-99.500496,-99.4006,-99.3007,-99.2008,-99.1009,-99.001,-98.9011,-98.8012,-98.7013,-98.6014,-98.501495,-98.401596,-98.3017,-98.2018,-98.1019,-98.002,-97.9021,-97.8022,-97.7023,-97.602394,-97.502495,-97.402596,-97.3027,-97.2028,-97.1029,-97.003,-96.9031,-96.8032,-96.7033,-96.60339,-96.503494,-96.403595,-96.303696,-96.2038,-96.1039,-96.004,-95.9041,-95.8042,-95.70429,-95.60439,-95.50449,-95.404594,-95.304695,-95.204796,-95.1049,-95.005,-94.9051,-94.80519,-94.70529,-94.60539,-94.50549,-94.405594,-94.305695,-94.205795,-94.105896,-94.006,-93.9061,-93.80619,-93.70629,-93.60639,-93.50649,-93.40659,-93.306694,-93.206795,-93.106895,-93.006996,-92.90709,-92.80719,-92.70729,-92.60739,-92.50749,-92.40759,-92.30769,-92.207794,-92.107895,-92.007996,-91.90809,-91.80819,-91.70829,-91.60839,-91.50849,-91.40859,-91.30869,-91.20879,-91.108894,-91.00899,-90.90909,-90.80919,-90.70929,-90.60939,-90.50949,-90.40959,-90.30969,-90.20979,-90.10989,-90.00999,-89.91009,-89.81019,-89.71029,-89.61039,-89.51049,-89.41059,-89.31069,-89.21079,-89.110886,-89.01099,-88.91109,-88.81119,-88.71129,-88.61139,-88.51149,-88.41159,-88.31169,-88.21179,-88.111885,-88.011986,-87.91209,-87.81219,-87.71229,-87.61239,-87.51249,-87.41259,-87.31269,-87.21278,-87.112885,-87.012985,-86.913086,-86.81319,-86.71329,-86.61339,-86.51349,-86.41359,-86.31368,-86.21378,-86.113884,-86.013985,-85.914085,-85.814186,-85.71429,-85.61439,-85.51449,-85.41459,-85.31468,-85.21478,-85.11488,-85.014984,-84.915085,-84.815186,-84.71529,-84.61539,-84.51549,-84.41558,-84.31568,-84.21578,-84.11588,-84.01598,-83.916084,-83.816185,-83.716286,-83.61639,-83.51649,-83.41658,-83.31668,-83.21678,-83.11688,-83.01698,-82.91708,-82.817184,-82.717285,-82.617386,-82.51748,-82.41758,-82.31768,-82.21778,-82.11788,-82.01798,-81.91808,-81.818184,-81.718285,-81.618385,-81.51848,-81.41858,-81.31868,-81.21878,-81.11888,-81.01898,-80.91908,-80.81918,-80.719284,-80.61938,-80.51948,-80.41958,-80.31968,-80.21978,-80.11988,-80.01998,-79.92008,-79.82018,-79.72028,-79.62038,-79.52048,-79.42058,-79.32068,-79.22078,-79.12088,-79.02098,-78.92108,-78.82118,-78.721275,-78.621376,-78.52148,-78.42158,-78.32168,-78.22178,-78.12188,-78.02198,-77.92208,-77.822174,-77.722275,-77.622375,-77.52248,-77.42258,-77.32268,-77.22278,-77.12288,-77.02298,-76.92308,-76.82317,-76.723274,-76.623375,-76.523476,-76.42358,-76.32368,-76.22378,-76.12388,-76.02398,-75.92407,-75.82417,-75.72427,-75.624374,-75.524475,-75.424576,-75.32468,-75.22478,-75.12488,-75.02498,-74.92507,-74.82517,-74.72527,-74.625374,-74.525475,-74.425575,-74.325676,-74.22578,-74.12588,-74.02597,-73.92607,-73.82617,-73.72627,-73.62637,-73.526474,-73.426575,-73.326675,-73.226776,-73.12688,-73.02697,-72.92707,-72.82717,-72.72727,-72.62737,-72.52747,-72.427574,-72.327675,-72.227776,-72.12787,-72.02797,-71.92807,-71.82817,-71.72827,-71.62837,-71.52847,-71.42857,-71.328674,-71.228775,-71.12887,-71.02897,-70.92907,-70.82917,-70.72927,-70.62937,-70.52947,-70.42957,-70.32967,-70.22977,-70.12987,-70.02997,-69.93007,-69.83017,-69.73027,-69.63037,-69.53047,-69.43057,-69.330666,-69.23077,-69.13087,-69.03097,-68.93107,-68.83117,-68.73127,-68.63137,-68.53147,-68.43157,-68.331665,-68.231766,-68.13187,-68.03197,-67.93207,-67.83217,-67.73227,-67.63237,-67.53247,-67.43256,-67.332664,-67.232765,-67.132866,-67.03297,-66.93307,-66.83317,-66.73327,-66.63337,-66.53347,-66.43356,-66.333664,-66.233765,-66.133865,-66.033966,-65.93407,-65.83417,-65.73427,-65.63437,-65.53446,-65.43456,-65.33466,-65.234764,-65.134865,-65.034966,-64.93507,-64.83517,-64.73527,-64.63537,-64.53546,-64.43556,-64.33566,-64.23576,-64.135864,-64.035965,-63.936066,-63.836163,-63.736263,-63.636364,-63.536465,-63.43656,-63.336662,-63.236763,-63.136864,-63.036964,-62.93706,-62.837162,-62.737263,-62.637363,-62.537464,-62.43756,-62.33766,-62.237762,-62.137863,-62.037964,-61.93806,-61.83816,-61.738262,-61.638363,-61.53846,-61.43856,-61.33866,-61.23876,-61.138863,-61.03896,-60.93906,-60.83916,-60.73926,-60.639362,-60.53946,-60.43956,-60.33966,-60.23976,-60.13986,-60.03996,-59.94006,-59.84016,-59.74026,-59.640358,-59.54046,-59.44056,-59.34066,-59.24076,-59.140858,-59.04096,-58.94106,-58.84116,-58.74126,-58.641357,-58.54146,-58.44156,-58.34166,-58.241756,-58.141857,-58.041958,-57.94206,-57.84216,-57.742256,-57.642357,-57.542458,-57.44256,-57.34266,-57.242756,-57.142857,-57.042957,-56.943058,-56.84316,-56.743256,-56.643356,-56.543457,-56.443558,-56.343655,-56.243755,-56.143856,-56.043957,-55.944057,-55.844154,-55.744255,-55.644356,-55.544456,-55.444557,-55.344654,-55.244755,-55.144855,-55.044956,-54.945053,-54.845154,-54.745255,-54.645355,-54.545456,-54.445553,-54.345654,-54.245754,-54.145855,-54.045956,-53.946053,-53.846153,-53.746254,-53.646355,-53.546455,-53.446552,-53.346653,-53.246754,-53.146854,-53.04695,-52.947052,-52.847153,-52.747253,-52.647354,-52.54745,-52.44755,-52.347652,-52.247753,-52.147854,-52.04795,-51.94805,-51.848152,-51.748253,-51.64835,-51.54845,-51.44855,-51.34865,-51.248753,-51.14885,-51.04895,-50.94905,-50.84915,-50.749252,-50.64935,-50.54945,-50.44955,-50.34965,-50.249752,-50.14985,-50.04995,-49.95005,-49.85015,-49.750248,-49.65035,-49.55045,-49.45055,-49.35065,-49.250748,-49.15085,-49.05095,-48.95105,-48.85115,-48.751247,-48.65135,-48.55145,-48.45155,-48.35165,-48.251747,-48.151848,-48.05195,-47.95205,-47.852146,-47.752247,-47.652348,-47.55245,-47.45255,-47.352646,-47.252747,-47.152847,-47.052948,-46.95305,-46.853146,-46.753246,-46.653347,-46.553448,-46.453545,-46.353645,-46.253746,-46.153847,-46.053947,-45.954044,-45.854145,-45.754246,-45.654346,-45.554447,-45.454544,-45.354645,-45.254745,-45.154846,-45.054947,-44.955044,-44.855145,-44.755245,-44.655346,-44.555443,-44.455544,-44.355644,-44.255745,-44.155846,-44.055943,-43.956043,-43.856144,-43.756245,-43.656345,-43.556442,-43.456543,-43.356644,-43.256744,-43.15684,-43.056942,-42.957043,-42.857143,-42.757244,-42.65734,-42.55744,-42.457542,-42.357643,-42.257744,-42.15784,-42.05794,-41.958042,-41.858143,-41.758244,-41.65834,-41.55844,-41.45854,-41.358643,-41.25874,-41.15884,-41.05894,-40.95904,-40.859142,-40.75924,-40.65934,-40.55944,-40.45954,-40.359642,-40.25974,-40.15984,-40.05994,-39.96004,-39.86014,-39.76024,-39.66034,-39.56044,-39.46054,-39.360638,-39.26074,-39.16084,-39.06094,-38.96104,-38.861137,-38.76124,-38.66134,-38.56144,-38.46154,-38.361637,-38.261738,-38.16184,-38.06194,-37.962036,-37.862137,-37.762238,-37.66234,-37.56244,-37.462536,-37.362637,-37.262737,-37.162838,-37.06294,-36.963036,-36.863136,-36.763237,-36.663338,-36.56344,-36.463535,-36.363636,-36.263737,-36.163837,-36.063934,-35.964035,-35.864136,-35.764236,-35.664337,-35.564434,-35.464535,-35.364635,-35.264736,-35.164837,-35.064934,-34.965034,-34.865135,-34.765236,-34.665333,-34.565434,-34.465534,-34.365635,-34.265736,-34.165833,-34.065933,-33.966034,-33.866135,-33.766235,-33.666332,-33.566433,-33.466534,-33.366634,-33.266735,-33.166832,-33.066933,-32.967033,-32.867134,-32.76723,-32.66733,-32.567432,-32.467533,-32.367634,-32.26773,-32.16783,-32.067932,-31.968033,-31.868132,-31.768232,-31.668331,-31.568432,-31.46853,-31.368631,-31.268732,-31.16883,-31.068932,-30.96903,-30.869131,-30.76923,-30.66933,-30.569431,-30.46953,-30.36963,-30.26973,-30.16983,-30.06993,-29.97003,-29.87013,-29.77023,-29.67033,-29.570429,-29.47053,-29.37063,-29.27073,-29.17083,-29.070929,-28.97103,-28.871128,-28.771229,-28.67133,-28.571428,-28.471529,-28.371628,-28.271729,-28.171827,-28.071928,-27.972029,-27.872128,-27.772228,-27.672327,-27.572428,-27.472527,-27.372627,-27.272728,-27.172827,-27.072927,-26.973026,-26.873127,-26.773228,-26.673326,-26.573427,-26.473526,-26.373627,-26.273726,-26.173826,-26.073927,-25.974026,-25.874126,-25.774225,-25.674326,-25.574425,-25.474525,-25.374626,-25.274725,-25.174826,-25.074924,-24.975025,-24.875124,-24.775225,-24.675325,-24.575424,-24.475525,-24.375624,-24.275724,-24.175825,-24.075924,-23.976025,-23.876123,-23.776224,-23.676323,-23.576424,-23.476524,-23.376623,-23.276724,-23.176823,-23.076923,-22.977022,-22.877123,-22.777224,-22.677322,-22.577423,-22.477522,-22.377623,-22.277721,-22.177822,-22.077923,-21.978022,-21.878122,-21.778221,-21.678322,-21.57842,-21.478521,-21.378622,-21.27872,-21.178822,-21.07892,-20.979021,-20.879122,-20.77922,-20.679321,-20.57942,-20.47952,-20.37962,-20.27972,-20.179821,-20.07992,-19.98002,-19.88012,-19.78022,-19.680319,-19.58042,-19.48052,-19.38062,-19.28072,-19.180819,-19.08092,-18.981018,-18.881119,-18.78122,-18.681318,-18.581419,-18.481518,-18.381618,-18.28172,-18.181818,-18.081919,-17.982018,-17.882118,-17.782217,-17.682318,-17.582418,-17.482517,-17.382618,-17.282717,-17.182817,-17.082916,-16.983017,-16.883118,-16.783216,-16.683317,-16.583416,-16.483517,-16.383615,-16.283716,-16.183817,-16.083916,-15.984016,-15.884116,-15.784216,-15.684316,-15.584415,-15.484515,-15.384615,-15.284716,-15.184815,-15.084915,-14.985015,-14.885115,-14.785214,-14.685315,-14.585415,-14.485515,-14.385614,-14.285714,-14.185814,-14.085914,-13.986014,-13.886114,-13.786214,-13.686314,-13.586413,-13.486513,-13.386614,-13.286714,-13.186813,-13.086913,-12.987013,-12.887113,-12.787212,-12.687313,-12.587413,-12.487513,-12.387612,-12.287712,-12.187812,-12.087913,-11.988012,-11.888112,-11.788212,-11.688312,-11.588411,-11.488511,-11.388612,-11.288712,-11.188811,-11.088911,-10.989011,-10.889111,-10.78921,-10.689311,-10.589411,-10.489511,-10.38961,-10.28971,-10.18981,-10.0899105,-9.99001,-9.89011,-9.79021,-9.69031,-9.590409,-9.490509,-9.39061,-9.2907095,-9.190809,-9.090909,-8.991009,-8.8911085,-8.791209,-8.691309,-8.591409,-8.4915085,-8.391608,-8.291708,-8.191808,-8.091908,-7.992008,-7.892108,-7.7922077,-7.6923075,-7.5924077,-7.4925075,-7.392607,-7.2927074,-7.192807,-7.092907,-6.993007,-6.893107,-6.7932067,-6.693307,-6.5934067,-6.4935064,-6.393606,-6.2937064,-6.193806,-6.093906,-5.994006,-5.894106,-5.7942057,-5.694306,-5.5944057,-5.4945054,-5.394605,-5.2947054,-5.194805,-5.094905,-4.995005,-4.895105,-4.7952046,-4.695305,-4.5954046,-4.4955044,-4.3956046,-4.2957044,-4.195804,-4.095904,-3.996004,-3.8961039,-3.7962039,-3.6963036,-3.5964036,-3.4965036,-3.3966033,-3.2967033,-3.196803,-3.096903,-2.997003,-2.8971028,-2.7972028,-2.6973026,-2.5974026,-2.4975026,-2.3976023,-2.2977023,-2.1978023,-2.097902,-1.998002,-1.8981019,-1.7982018,-1.6983017,-1.5984015,-1.4985015,-1.3986014,-1.2987013,-1.1988012,-1.0989012,-0.999001,-0.8991009,-0.7992008,-0.6993007,-0.5994006,-0.4995005,-0.3996004,-0.2997003,-0.1998002,-0.0999001,0.0,0.0999001,0.1998002,0.2997003,0.3996004,0.4995005,0.5994006,0.6993007,0.7992008,0.8991009,0.999001,1.0989012,1.1988012,1.2987013,1.3986014,1.4985015,1.5984015,1.6983017,1.7982018,1.8981019,1.998002,2.097902,2.1978023,2.2977023,2.3976023,2.4975026,2.5974026,2.6973026,2.7972028,2.8971028,2.997003,3.096903,3.196803,3.2967033,3.3966033,3.4965036,3.5964036,3.6963036,3.7962039,3.8961039,3.996004,4.095904,4.195804,4.2957044,4.3956046,4.4955044,4.5954046,4.695305,4.7952046,4.895105,4.995005,5.094905,5.194805,5.2947054,5.394605,5.4945054,5.5944057,5.694306,5.7942057,5.894106,5.994006,6.093906,6.193806,6.2937064,6.393606,6.4935064,6.5934067,6.693307,6.7932067,6.893107,6.993007,7.092907,7.192807,7.2927074,7.392607,7.4925075,7.5924077,7.6923075,7.7922077,7.892108,7.992008,8.091908,8.191808,8.291708,8.391608,8.4915085,8.591409,8.691309,8.791209,8.8911085,8.991009,9.090909,9.190809,9.2907095,9.39061,9.490509,9.590409,9.69031,9.79021,9.89011,9.99001,10.0899105,10.18981,10.28971,10.38961,10.489511,10.589411,10.689311,10.78921,10.889111,10.989011,11.088911,11.188811,11.288712,11.388612,11.488511,11.588411,11.688312,11.788212,11.888112,11.988012,12.087913,12.187812,12.287712,12.387612,12.487513,12.587413,12.687313,12.787212,12.887113,12.987013,13.086913,13.186813,13.286714,13.386614,13.486513,13.586413,13.686314,13.786214,13.886114,13.986014,14.085914,14.185814,14.285714,14.385614,14.485515,14.585415,14.685315,14.785214,14.885115,14.985015,15.084915,15.184815,15.284716,15.384615,15.484515,15.584415,15.684316,15.784216,15.884116,15.984016,16.083916,16.183817,16.283716,16.383615,16.483517,16.583416,16.683317,16.783216,16.883118,16.983017,17.082916,17.182817,17.282717,17.382618,17.482517,17.582418,17.682318,17.782217,17.882118,17.982018,18.081919,18.181818,18.28172,18.381618,18.481518,18.581419,18.681318,18.78122,18.881119,18.981018,19.08092,19.180819,19.28072,19.38062,19.48052,19.58042,19.680319,19.78022,19.88012,19.98002,20.07992,20.179821,20.27972,20.37962,20.47952,20.57942,20.679321,20.77922,20.879122,20.979021,21.07892,21.178822,21.27872,21.378622,21.478521,21.57842,21.678322,21.778221,21.878122,21.978022,22.077923,22.177822,22.277721,22.377623,22.477522,22.577423,22.677322,22.777224,22.877123,22.977022,23.076923,23.176823,23.276724,23.376623,23.476524,23.576424,23.676323,23.776224,23.876123,23.976025,24.075924,24.175825,24.275724,24.375624,24.475525,24.575424,24.675325,24.775225,24.875124,24.975025,25.074924,25.174826,25.274725,25.374626,25.474525,25.574425,25.674326,25.774225,25.874126,25.974026,26.073927,26.173826,26.273726,26.373627,26.473526,26.573427,26.673326,26.773228,26.873127,26.973026,27.072927,27.172827,27.272728,27.372627,27.472527,27.572428,27.672327,27.772228,27.872128,27.972029,28.071928,28.171827,28.271729,28.371628,28.471529,28.571428,28.67133,28.771229,28.871128,28.97103,29.070929,29.17083,29.27073,29.37063,29.47053,29.570429,29.67033,29.77023,29.87013,29.97003,30.06993,30.16983,30.26973,30.36963,30.46953,30.569431,30.66933,30.76923,30.869131,30.96903,31.068932,31.16883,31.268732,31.368631,31.46853,31.568432,31.668331,31.768232,31.868132,31.968033,32.067932,32.16783,32.26773,32.367634,32.467533,32.567432,32.66733,32.76723,32.867134,32.967033,33.066933,33.166832,33.266735,33.366634,33.466534,33.566433,33.666332,33.766235,33.866135,33.966034,34.065933,34.165833,34.265736,34.365635,34.465534,34.565434,34.665333,34.765236,34.865135,34.965034,35.064934,35.164837,35.264736,35.364635,35.464535,35.564434,35.664337,35.764236,35.864136,35.964035,36.063934,36.163837,36.263737,36.363636,36.463535,36.56344,36.663338,36.763237,36.863136,36.963036,37.06294,37.162838,37.262737,37.362637,37.462536,37.56244,37.66234,37.762238,37.862137,37.962036,38.06194,38.16184,38.261738,38.361637,38.46154,38.56144,38.66134,38.76124,38.861137,38.96104,39.06094,39.16084,39.26074,39.360638,39.46054,39.56044,39.66034,39.76024,39.86014,39.96004,40.05994,40.15984,40.25974,40.359642,40.45954,40.55944,40.65934,40.75924,40.859142,40.95904,41.05894,41.15884,41.25874,41.358643,41.45854,41.55844,41.65834,41.758244,41.858143,41.958042,42.05794,42.15784,42.257744,42.357643,42.457542,42.55744,42.65734,42.757244,42.857143,42.957043,43.056942,43.15684,43.256744,43.356644,43.456543,43.556442,43.656345,43.756245,43.856144,43.956043,44.055943,44.155846,44.255745,44.355644,44.455544,44.555443,44.655346,44.755245,44.855145,44.955044,45.054947,45.154846,45.254745,45.354645,45.454544,45.554447,45.654346,45.754246,45.854145,45.954044,46.053947,46.153847,46.253746,46.353645,46.453545,46.553448,46.653347,46.753246,46.853146,46.95305,47.052948,47.152847,47.252747,47.352646,47.45255,47.55245,47.652348,47.752247,47.852146,47.95205,48.05195,48.151848,48.251747,48.35165,48.45155,48.55145,48.65135,48.751247,48.85115,48.95105,49.05095,49.15085,49.250748,49.35065,49.45055,49.55045,49.65035,49.750248,49.85015,49.95005,50.04995,50.14985,50.249752,50.34965,50.44955,50.54945,50.64935,50.749252,50.84915,50.94905,51.04895,51.14885,51.248753,51.34865,51.44855,51.54845,51.64835,51.748253,51.848152,51.94805,52.04795,52.147854,52.247753,52.347652,52.44755,52.54745,52.647354,52.747253,52.847153,52.947052,53.04695,53.146854,53.246754,53.346653,53.446552,53.546455,53.646355,53.746254,53.846153,53.946053,54.045956,54.145855,54.245754,54.345654,54.445553,54.545456,54.645355,54.745255,54.845154,54.945053,55.044956,55.144855,55.244755,55.344654,55.444557,55.544456,55.644356,55.744255,55.844154,55.944057,56.043957,56.143856,56.243755,56.343655,56.443558,56.543457,56.643356,56.743256,56.84316,56.943058,57.042957,57.142857,57.242756,57.34266,57.44256,57.542458,57.642357,57.742256,57.84216,57.94206,58.041958,58.141857,58.241756,58.34166,58.44156,58.54146,58.641357,58.74126,58.84116,58.94106,59.04096,59.140858,59.24076,59.34066,59.44056,59.54046,59.640358,59.74026,59.84016,59.94006,60.03996,60.13986,60.23976,60.33966,60.43956,60.53946,60.639362,60.73926,60.83916,60.93906,61.03896,61.138863,61.23876,61.33866,61.43856,61.53846,61.638363,61.738262,61.83816,61.93806,62.037964,62.137863,62.237762,62.33766,62.43756,62.537464,62.637363,62.737263,62.837162,62.93706,63.036964,63.136864,63.236763,63.336662,63.43656,63.536465,63.636364,63.736263,63.836163,63.936066,64.035965,64.135864,64.23576,64.33566,64.43556,64.53546,64.63537,64.73527,64.83517,64.93507,65.034966,65.134865,65.234764,65.33466,65.43456,65.53446,65.63437,65.73427,65.83417,65.93407,66.033966,66.133865,66.233765,66.333664,66.43356,66.53347,66.63337,66.73327,66.83317,66.93307,67.03297,67.132866,67.232765,67.332664,67.43256,67.53247,67.63237,67.73227,67.83217,67.93207,68.03197,68.13187,68.231766,68.331665,68.43157,68.53147,68.63137,68.73127,68.83117,68.93107,69.03097,69.13087,69.23077,69.330666,69.43057,69.53047,69.63037,69.73027,69.83017,69.93007,70.02997,70.12987,70.22977,70.32967,70.42957,70.52947,70.62937,70.72927,70.82917,70.92907,71.02897,71.12887,71.228775,71.328674,71.42857,71.52847,71.62837,71.72827,71.82817,71.92807,72.02797,72.12787,72.227776,72.327675,72.427574,72.52747,72.62737,72.72727,72.82717,72.92707,73.02697,73.12688,73.226776,73.326675,73.426575,73.526474,73.62637,73.72627,73.82617,73.92607,74.02597,74.12588,74.22578,74.325676,74.425575,74.525475,74.625374,74.72527,74.82517,74.92507,75.02498,75.12488,75.22478,75.32468,75.424576,75.524475,75.624374,75.72427,75.82417,75.92407,76.02398,76.12388,76.22378,76.32368,76.42358,76.523476,76.623375,76.723274,76.82317,76.92308,77.02298,77.12288,77.22278,77.32268,77.42258,77.52248,77.622375,77.722275,77.822174,77.92208,78.02198,78.12188,78.22178,78.32168,78.42158,78.52148,78.621376,78.721275,78.82118,78.92108,79.02098,79.12088,79.22078,79.32068,79.42058,79.52048,79.62038,79.72028,79.82018,79.92008,80.01998,80.11988,80.21978,80.31968,80.41958,80.51948,80.61938,80.719284,80.81918,80.91908,81.01898,81.11888,81.21878,81.31868,81.41858,81.51848,81.618385,81.718285,81.818184,81.91808,82.01798,82.11788,82.21778,82.31768,82.41758,82.51748,82.617386,82.717285,82.817184,82.91708,83.01698,83.11688,83.21678,83.31668,83.41658,83.51649,83.61639,83.716286,83.816185,83.916084,84.01598,84.11588,84.21578,84.31568,84.41558,84.51549,84.61539,84.71529,84.815186,84.915085,85.014984,85.11488,85.21478,85.31468,85.41459,85.51449,85.61439,85.71429,85.814186,85.914085,86.013985,86.113884,86.21378,86.31368,86.41359,86.51349,86.61339,86.71329,86.81319,86.913086,87.012985,87.112885,87.21278,87.31269,87.41259,87.51249,87.61239,87.71229,87.81219,87.91209,88.011986,88.111885,88.21179,88.31169,88.41159,88.51149,88.61139,88.71129,88.81119,88.91109,89.01099,89.110886,89.21079,89.31069,89.41059,89.51049,89.61039,89.71029,89.81019,89.91009,90.00999,90.10989,90.20979,90.30969,90.40959,90.50949,90.60939,90.70929,90.80919,90.90909,91.00899,91.108894,91.20879,91.30869,91.40859,91.50849,91.60839,91.70829,91.80819,91.90809,92.007996,92.107895,92.207794,92.30769,92.40759,92.50749,92.60739,92.70729,92.80719,92.90709,93.006996,93.106895,93.206795,93.306694,93.40659,93.50649,93.60639,93.70629,93.80619,93.9061,94.006,94.105896,94.205795,94.305695,94.405594,94.50549,94.60539,94.70529,94.80519,94.9051,95.005,95.1049,95.204796,95.304695,95.404594,95.50449,95.60439,95.70429,95.8042,95.9041,96.004,96.1039,96.2038,96.303696,96.403595,96.503494,96.60339,96.7033,96.8032,96.9031,97.003,97.1029,97.2028,97.3027,97.402596,97.502495,97.602394,97.7023,97.8022,97.9021,98.002,98.1019,98.2018,98.3017,98.401596,98.501495,98.6014,98.7013,98.8012,98.9011,99.001,99.1009,99.2008,99.3007,99.4006,99.500496,99.6004,99.7003,99.8002,99.9001,100.0],"cos":[1.0,0.95115423,0.80938876,0.5885529,0.31022033,0.0015579486,-0.30723387,-0.5860115,-0.80754083,-0.95018023,-0.99999505,-0.9521189,-0.81122875,-0.5910884,-0.31320378,-0.0046977988,0.30424434,0.5834644,0.8056849,0.9491968,0.9999803,0.9530741,0.8130607,0.59361815,0.31616136,0.007837603,-0.30125183,-0.5809115,-0.8038211,-0.9482041,-0.99995565,-0.95401996,-0.81488466,-0.596142,-0.31913862,-0.01097733,0.29825634,0.5783529,0.80194926,0.947202,0.99992114,0.9549564,0.8167006,0.5986408,0.3221127,0.0141169485,-0.29525793,-0.5757886,-0.80006963,-0.9461906,-0.9998768,-0.95588344,-0.8184947,-0.60115296,-0.32508364,-0.017256428,0.2922566,0.5732186,0.798182,0.9451698,0.99982256,0.95680106,0.82029456,0.60365915,0.32805136,0.020395737,-0.28925237,-0.57064295,-0.7962866,-0.9441398,-0.9997585,-0.95770234,-0.8220863,-0.6061594,-0.33101583,-0.023534844,0.28624532,0.5680617,0.7943833,0.9431004,0.9996845,0.9586012,0.82386994,0.60865366,0.33397707,0.026673721,-0.2832354,-0.56547487,-0.7924722,-0.9420517,-0.9996014,-0.95949054,-0.8256455,-0.6111419,-0.33693498,-0.029812334,0.28022274,0.5628824,0.7905533,0.9409937,0.99950784,0.9603704,0.8274129,0.6136242,0.3398896,0.032950655,-0.2772073,-0.56028444,-0.78862655,-0.9399347,-0.99940443,-0.9612408,-0.8291722,-0.61610043,-0.34284085,-0.036088645,0.2741891,0.5576809,0.786692,0.9388582,0.9992912,0.9621018,0.83092326,0.61857057,0.34578872,0.039226286,-0.27116823,-0.5550719,-0.78476465,-0.9377725,-0.99916804,-0.96295327,-0.83266616,-0.62103456,-0.3487332,-0.04236354,0.26814467,0.5524774,0.7828147,0.9366776,0.99903506,0.96379524,0.83440083,0.6234925,0.35167423,0.04550037,-0.26511848,-0.5498575,-0.780857,-0.9355734,-0.99889225,-0.96462774,-0.8361273,-0.62594426,-0.35461178,-0.048636757,0.2621128,0.5472322,0.7788917,0.93446004,0.99873954,0.9654507,0.83784544,0.62838984,0.35754585,0.051772665,-0.25908142,-0.5446015,-0.77691865,-0.9333374,-0.998577,-0.9662641,-0.8395554,-0.6308292,-0.36047637,-0.05488413,0.2560475,0.5419654,0.774938,0.9322056,0.9984047,0.967068,0.8412571,0.6332624,0.36340338,0.058018986,-0.25301105,-0.53932405,-0.77294964,-0.9310646,-0.9982225,-0.9678624,-0.84295046,-0.6356893,-0.3663045,-0.06115327,0.24997209,0.5366773,0.77095366,0.9299144,0.9980304,0.96864724,0.8446355,0.63811,0.3692243,0.064286955,-0.24693067,-0.53402525,-0.7689501,-0.92875504,-0.9978285,-0.9694226,-0.8463122,-0.64050597,-0.37214047,-0.067420006,0.24388683,0.531368,0.766939,0.92758656,0.99761677,0.9701883,0.8479679,0.6429141,0.375053,0.070552394,-0.24084058,-0.5287055,-0.7649203,-0.9264089,-0.9973952,-0.97094446,-0.84962803,-0.6453159,-0.3779618,-0.07368408,0.23779196,0.52603775,0.7628941,0.9252221,0.99716383,0.9716854,0.85127974,0.6477113,0.3808669,0.07681505,-0.23474099,-0.5233648,-0.7608603,-0.92402625,-0.9969226,-0.9724225,-0.8529231,-0.6501003,-0.38376823,-0.07994525,0.2316877,0.52068675,0.75881904,0.9228212,0.9966735,0.97315,0.854558,0.6524829,0.38666576,0.08307467,-0.22863212,-0.5180035,-0.7567703,-0.9216071,-0.9964127,-0.9738679,-0.8561845,-0.65485907,-0.3895595,-0.08620327,0.2255743,0.5153152,0.75471413,0.9203933,0.9961421,0.97457623,0.8578025,0.6572288,0.3924494,0.089331016,-0.22251426,-0.51262176,-0.7526505,-0.9191611,-0.9958616,-0.9752749,-0.85941213,-0.65959203,-0.39533544,-0.09245788,0.21945202,0.50992334,0.7505953,0.9179198,0.9955713,0.975964,0.86101323,0.6619488,0.39821756,0.09558384,-0.21638761,-0.5072405,-0.74851686,-0.9166695,-0.99527127,-0.97664344,-0.86260587,-0.664299,-0.40109578,-0.09870885,0.21332107,0.50453204,0.74643105,0.9154101,0.9949614,0.9773133,0.86419004,0.66664267,0.40397,0.1018329,-0.21027587,-0.5018186,-0.7443379,-0.9141418,-0.99464166,-0.9779735,-0.86576563,-0.66897976,-0.4068403,-0.104955934,0.20720518,0.49910024,0.74223745,0.9128644,0.99431217,0.97862405,0.8673327,0.6713103,0.40970653,0.10805411,-0.20413242,-0.49637696,-0.74012965,-0.911578,-0.99397284,-0.979265,-0.86889124,-0.6736342,-0.41256875,-0.11117505,0.20105767,0.49364877,0.7380146,0.9102826,0.99362373,0.97989625,0.8704353,0.6759426,0.415416,0.11430681,-0.19798094,-0.49091572,-0.7358922,-0.9089782,-0.9932648,-0.9805155,-0.8719767,-0.6782532,-0.41827008,-0.11742552,0.19490226,0.48817784,0.73376256,0.90766495,0.99289614,0.98112744,0.8735095,0.6805571,0.42112002,0.12053119,-0.19182165,-0.48543513,-0.73162574,-0.9063427,-0.9925191,-0.98172975,-0.87503374,-0.6828543,-0.4239658,-0.12364756,0.18873915,0.48268765,0.72948164,0.9050166,0.9921309,0.98232234,0.8765493,0.6851448,0.4267966,0.12676272,-0.18565479,-0.4799354,-0.7273304,-0.9036765,-0.99173284,-0.98290527,-0.8780562,-0.6874285,-0.429634,-0.12987663,0.1825686,0.47717842,0.7251802,0.9023275,0.991325,0.98347855,0.8795545,0.6896968,0.4324672,0.13298926,-0.17948061,-0.47441673,-0.72301465,-0.9009696,-0.9909075,-0.98404205,-0.8810441,-0.69196695,-0.43529612,-0.13610058,0.17639084,0.47166094,0.72084194,0.89960283,0.9904801,0.9845959,0.88251936,0.69423026,0.43812075,0.13921055,-0.17329934,-0.46888995,-0.7186622,-0.8982272,-0.99004304,-0.985138,-0.88399166,-0.6964868,-0.44094107,-0.14231916,0.17021795,0.46611434,0.7164753,0.8968427,0.9895962,0.9856725,0.8854552,0.6987364,0.44375703,0.14542635,-0.16712306,-0.4633341,-0.7142814,-0.89544934,-0.9891413,-0.9861972,-0.88690996,-0.7009792,-0.44656864,-0.14852026,0.16402654,0.46054935,0.71208036,0.8940472,0.988675,0.9867122,0.88835603,0.703215,0.4493651,0.15162458,-0.1609284,-0.45776004,-0.70987236,-0.8926416,-0.9881989,-0.9872175,-0.88979334,-0.7054439,-0.45216787,-0.15472738,0.15782867,0.4549662,0.7076574,0.8912219,0.9877131,0.9877131,0.8912219,0.7076574,0.4549662,0.15782867,-0.15472738,-0.45216787,-0.7054439,-0.88979334,-0.9872175,-0.9881989,-0.8926416,-0.70987236,-0.45776004,-0.1609284,0.15162458,0.4493651,0.703215,0.88835603,0.9867122,0.988675,0.8940472,0.71208036,0.46054935,0.16402654,-0.14852026,-0.44656864,-0.7009792,-0.88690996,-0.9861972,-0.9891413,-0.89544934,-0.7142814,-0.4633341,-0.16712306,0.14542635,0.44375703,0.6987364,0.8854552,0.9856725,0.9895962,0.8968427,0.7164753,0.46611434,0.17021795,-0.14231916,-0.44094107,-0.6964868,-0.88399166,-0.985138,-0.99004304,-0.8982272,-0.7186622,-0.46888995,-0.17329934,0.13921055,0.43812075,0.69423026,0.88251936,0.9845959,0.9904801,0.89960283,0.72084194,0.47166094,0.17639084,-0.13610058,-0.43529612,-0.69196695,-0.8810441,-0.98404205,-0.9909075,-0.9009696,-0.72301465,-0.47441673,-0.17948061,0.13298926,0.4324672,0.6896968,0.8795545,0.98347855,0.991325,0.9023275,0.7251802,0.47717842,0.1825686,-0.12987663,-0.429634,-0.6874285,-0.8780562,-0.98290527,-0.99173284,-0.9036765,-0.7273304,-0.4799354,-0.18565479,0.12676272,0.4267966,0.6851448,0.8765493,0.98232234,0.9921309,0.9050166,0.72948164,0.48268765,0.18873915,-0.12364756,-0.4239658,-0.6828543,-0.87503374,-0.98172975,-0.9925191,-0.9063427,-0.73162574,-0.48543513,-0.19182165,0.12053119,0.42112002,0.6805571,0.8735095,0.98112744,0.99289614,0.90766495,0.73376256,0.48817784,0.19490226,-0.11742552,-0.41827008,-0.6782532,-0.8719767,-0.9805155,-0.9932648,-0.9089782,-0.7358922,-0.49091572,-0.19798094,0.11430681,0.415416,0.6759426,0.8704353,0.97989625,0.99362373,0.9102826,0.7380146,0.49364877,0.20104593,-0.11118697,-0.41255784,-0.6736253,-0.8688853,-0.979265,-0.99397284,-0.911578,-0.74012965,-0.49636656,-0.2041207,0.10806602,0.4096956,0.6713014,0.8673327,0.97862405,0.99431217,0.9128644,0.74223745,0.49908987,0.20719345,-0.10494401,-0.40682933,-0.6689709,-0.86576563,-0.9779735,-0.99464166,-0.9141418,-0.7443299,-0.5018082,-0.21026415,0.101820976,0.40395907,0.66664267,0.86419004,0.9773133,0.9949614,0.9154077,0.7464271,0.50452167,0.21333279,-0.09870289,-0.40109026,-0.66429454,-0.86260587,-0.97664344,-0.99527067,-0.9166671,-0.74850893,-0.50723016,-0.21639931,0.09557787,0.39821208,0.6619488,0.86101323,0.9759653,0.9955708,0.91791743,0.75058734,0.50993365,0.21945786,-0.092451915,-0.39532992,-0.65959203,-0.85941213,-0.97527623,-0.99586105,-0.9191563,-0.75265837,-0.5126321,-0.2225201,0.08932505,0.3924494,0.6572288,0.8578056,0.97457755,0.99614155,0.9203886,0.754722,0.5153203,0.22558014,-0.08620327,-0.3895595,-0.65485907,-0.8561876,-0.97386926,-0.9964117,-0.9216117,-0.7567782,-0.51800865,-0.22863796,0.08307467,0.38666576,0.65248746,0.8545611,0.9731514,0.9966725,0.9228258,0.758823,0.5206918,0.2316877,-0.07994525,-0.38376823,-0.6501048,-0.8529262,-0.9724253,-0.99692357,-0.9240285,-0.7608642,-0.5233699,-0.23474099,0.07681505,0.38087243,0.6477158,0.8512829,0.9716882,0.9971647,0.9252244,0.76289797,0.52603775,0.23779196,-0.07368408,-0.37796736,-0.6453204,-0.84963435,-0.9709416,-0.99739563,-0.92641115,-0.76492417,-0.5287055,-0.24084058,0.07055837,0.37505853,0.6429233,0.8479743,0.9701854,0.9976172,0.9275888,0.766939,0.531368,0.24388102,-0.06742598,-0.37214604,-0.6405152,-0.84630585,-0.9694211,-0.9978289,-0.9287573,-0.7689501,-0.53402525,-0.24692488,0.06429294,0.36923543,0.6381008,0.8446291,0.96864575,0.9980308,0.9299144,0.77095366,0.53667223,0.2499663,-0.061159253,-0.36631563,-0.6356801,-0.84294724,-0.96786094,-0.9982225,-0.9310646,-0.77294964,-0.539319,-0.25300524,0.058030948,0.3633922,0.63325316,0.8412538,0.9670665,0.9984047,0.9322056,0.7749342,0.5419604,0.2560417,-0.054896094,-0.3604652,-0.63082457,-0.83955216,-0.9662641,-0.998577,-0.9333374,-0.7769149,-0.5445965,-0.25906986,0.051760696,0.35754025,0.6283852,0.83784217,0.9654507,0.99873954,0.934459,0.7788879,0.5472247,0.26210123,-0.04862778,-0.35460618,-0.62593955,-0.8361256,-0.96462774,-0.99889207,-0.9355713,-0.7808514,-0.54985,-0.26513004,0.045491394,0.35166863,0.62349015,0.83440083,0.963796,0.99903494,0.9366755,0.7828091,0.5524674,0.26815334,-0.04235755,-0.34872758,-0.62103224,-0.83266616,-0.9629541,-0.9991678,-0.9377694,-0.7847572,-0.5550819,-0.27117687,0.0392203,0.34578592,0.61857057,0.8309249,0.9621026,0.99929094,0.9388551,0.7866994,0.55768836,0.27419487,-0.036085654,-0.34283805,-0.61610043,-0.82917386,-0.9612425,-0.99940413,-0.93993056,-0.78863204,-0.5602919,-0.27721304,0.03294766,0.3398896,0.61362654,0.8274163,0.9603721,0.99950755,0.9409978,0.79055876,0.5628874,0.2802256,-0.029812334,-0.33693498,-0.6111443,-0.8256489,-0.95949304,-0.99960107,-0.9420547,-0.79247767,-0.5654798,-0.2832383,0.026673721,0.33397987,0.60865843,0.82387507,0.95860374,0.9996848,0.9431034,0.7943869,0.56806415,0.28624675,-0.023536341,-0.3310201,-0.60616416,-0.8220914,-0.9577058,-0.9997587,-0.9441422,-0.7962893,-0.57064545,-0.28925237,0.020398732,0.32805702,0.6036651,0.8203005,0.956798,0.99982274,0.9451718,0.79818386,0.57321984,0.29225516,-0.01726092,-0.3250907,-0.6011601,-0.81850153,-0.9558808,-0.99987686,-0.946192,-0.8000705,-0.5757886,-0.29525506,0.01412294,0.3221198,0.5986492,0.8166945,0.9549542,0.9999212,0.947203,0.80194974,0.5783511,0.29825205,-0.010984071,-0.31914786,-0.5961324,-0.8148794,-0.95401794,-0.99995565,-0.9482046,-0.8038206,-0.5809085,-0.3012461,0.007845841,0.31617203,0.5936097,0.81305593,0.95307255,0.99998033,0.94919693,0.80568355,0.58346045,0.30423722,-0.0047075357,-0.31319275,-0.59108114,-0.811225,-0.9521176,-0.99999505,-0.9501799,-0.8075386,-0.5860065,-0.3072255,0.0015691838,0.31021073,0.58854675,0.8093858,0.95115346,1.0,0.95115346,0.8093858,0.58854675,0.31021073,0.0015691838,-0.3072255,-0.5860065,-0.8075386,-0.9501799,-0.99999505,-0.9521176,-0.811225,-0.59108114,-0.31319275,-0.0047075357,0.30423722,0.58346045,0.80568355,0.94919693,0.99998033,0.95307255,0.81305593,0.5936097,0.31617203,0.007845841,-0.3012461,-0.5809085,-0.8038206,-0.9482046,-0.99995565,-0.95401794,-0.8148794,-0.5961324,-0.31914786,-0.010984071,0.29825205,0.5783511,0.80194974,0.947203,0.9999212,0.9549542,0.8166945,0.5986492,0.3221198,0.01412294,-0.29525506,-0.5757886,-0.8000705,-0.946192,-0.99987686,-0.9558808,-0.81850153,-0.6011601,-0.3250907,-0.01726092,0.29225516,0.57321984,0.79818386,0.9451718,0.99982274,0.956798,0.8203005,0.6036651,0.32805702,0.020398732,-0.28925237,-0.57064545,-0.7962893,-0.9441422,-0.9997587,-0.9577058,-0.8220914,-0.60616416,-0.3310201,-0.023536341,0.28624675,0.56806415,0.7943869,0.9431034,0.9996848,0.95860374,0.82387507,0.60865843,0.33397987,0.026673721,-0.2832383,-0.5654798,-0.79247767,-0.9420547,-0.99960107,-0.95949304,-0.8256489,-0.6111443,-0.33693498,-0.029812334,0.2802256,0.5628874,0.79055876,0.9409978,0.99950755,0.9603721,0.8274163,0.61362654,0.3398896,0.03294766,-0.27721304,-0.5602919,-0.78863204,-0.93993056,-0.99940413,-0.9612425,-0.82917386,-0.61610043,-0.34283805,-0.036085654,0.27419487,0.55768836,0.7866994,0.9388551,0.99929094,0.9621026,0.8309249,0.61857057,0.34578592,0.0392203,-0.27117687,-0.5550819,-0.7847572,-0.9377694,-0.9991678,-0.9629541,-0.83266616,-0.62103224,-0.34872758,-0.04235755,0.26815334,0.5524674,0.7828091,0.9366755,0.99903494,0.963796,0.83440083,0.62349015,0.35166863,0.045491394,-0.26513004,-0.54985,-0.7808514,-0.9355713,-0.99889207,-0.96462774,-0.8361256,-0.62593955,-0.35460618,-0.04862778,0.26210123,0.5472247,0.7788879,0.934459,0.99873954,0.9654507,0.83784217,0.6283852,0.35754025,0.051760696,-0.25906986,-0.5445965,-0.7769149,-0.9333374,-0.998577,-0.9662641,-0.83955216,-0.63082457,-0.3604652,-0.054896094,0.2560417,0.5419604,0.7749342,0.9322056,0.9984047,0.9670665,0.8412538,0.63325316,0.3633922,0.058030948,-0.25300524,-0.539319,-0.77294964,-0.9310646,-0.9982225,-0.96786094,-0.84294724,-0.6356801,-0.36631563,-0.061159253,0.2499663,0.53667223,0.77095366,0.9299144,0.9980308,0.96864575,0.8446291,0.6381008,0.36923543,0.06429294,-0.24692488,-0.53402525,-0.7689501,-0.9287573,-0.9978289,-0.9694211,-0.84630585,-0.6405152,-0.37214604,-0.06742598,0.24388102,0.531368,0.766939,0.9275888,0.9976172,0.9701854,0.8479743,0.6429233,0.37505853,0.07055837,-0.24084058,-0.5287055,-0.76492417,-0.92641115,-0.99739563,-0.9709416,-0.84963435,-0.6453204,-0.37796736,-0.07368408,0.23779196,0.52603775,0.76289797,0.9252244,0.9971647,0.9716882,0.8512829,0.6477158,0.38087243,0.07681505,-0.23474099,-0.5233699,-0.7608642,-0.9240285,-0.99692357,-0.9724253,-0.8529262,-0.6501048,-0.38376823,-0.07994525,0.2316877,0.5206918,0.758823,0.9228258,0.9966725,0.9731514,0.8545611,0.65248746,0.38666576,0.08307467,-0.22863796,-0.51800865,-0.7567782,-0.9216117,-0.9964117,-0.97386926,-0.8561876,-0.65485907,-0.3895595,-0.08620327,0.22558014,0.5153203,0.754722,0.9203886,0.99614155,0.97457755,0.8578056,0.6572288,0.3924494,0.08932505,-0.2225201,-0.5126321,-0.75265837,-0.9191563,-0.99586105,-0.97527623,-0.85941213,-0.65959203,-0.39532992,-0.092451915,0.21945786,0.50993365,0.75058734,0.91791743,0.9955708,0.9759653,0.86101323,0.6619488,0.39821208,0.09557787,-0.21639931,-0.50723016,-0.74850893,-0.9166671,-0.99527067,-0.97664344,-0.86260587,-0.66429454,-0.40109026,-0.09870289,0.21333279,0.50452167,0.7464271,0.9154077,0.9949614,0.9773133,0.86419004,0.66664267,0.40395907,0.101820976,-0.21026415,-0.5018082,-0.7443299,-0.9141418,-0.99464166,-0.9779735,-0.86576563,-0.6689709,-0.40682933,-0.10494401,0.20719345,0.49908987,0.74223745,0.9128644,0.99431217,0.97862405,0.8673327,0.6713014,0.4096956,0.10806602,-0.2041207,-0.49636656,-0.74012965,-0.911578,-0.99397284,-0.979265,-0.8688853,-0.6736253,-0.41255784,-0.11118697,0.20104593,0.49364877,0.7380146,0.9102826,0.99362373,0.97989625,0.8704353,0.6759426,0.415416,0.11430681,-0.19798094,-0.49091572,-0.7358922,-0.9089782,-0.9932648,-0.9805155,-0.8719767,-0.6782532,-0.41827008,-0.11742552,0.19490226,0.48817784,0.73376256,0.90766495,0.99289614,0.98112744,0.8735095,0.6805571,0.42112002,0.12053119,-0.19182165,-0.48543513,-0.73162574,-0.9063427,-0.9925191,-0.98172975,-0.87503374,-0.6828543,-0.4239658,-0.12364756,0.18873915,0.48268765,0.72948164,0.9050166,0.9921309,0.98232234,0.8765493,0.6851448,0.4267966,0.12676272,-0.18565479,-0.4799354,-0.7273304,-0.9036765,-0.99173284,-0.98290527,-0.8780562,-0.6874285,-0.429634,-0.12987663,0.1825686,0.47717842,0.7251802,0.9023275,0.991325,0.98347855,0.8795545,0.6896968,0.4324672,0.13298926,-0.17948061,-0.47441673,-0.72301465,-0.9009696,-0.9909075,-0.98404205,-0.8810441,-0.69196695,-0.43529612,-0.13610058,0.17639084,0.47166094,0.72084194,0.89960283,0.9904801,0.9845959,0.88251936,0.69423026,0.43812075,0.13921055,-0.17329934,-0.46888995,-0.7186622,-0.8982272,-0.99004304,-0.985138,-0.88399166,-0.6964868,-0.44094107,-0.14231916,0.17021795,0.46611434,0.7164753,0.8968427,0.9895962,0.9856725,0.8854552,0.6987364,0.44375703,0.14542635,-0.16712306,-0.4633341,-0.7142814,-0.89544934,-0.9891413,-0.9861972,-0.88690996,-0.7009792,-0.44656864,-0.14852026,0.16402654,0.46054935,0.71208036,0.8940472,0.988675,0.9867122,0.88835603,0.703215,0.4493651,0.15162458,-0.1609284,-0.45776004,-0.70987236,-0.8926416,-0.9881989,-0.9872175,-0.88979334,-0.7054439,-0.45216787,-0.15472738,0.15782867,0.4549662,0.7076574,0.8912219,0.9877131,0.9877131,0.8912219,0.7076574,0.4549662,0.15782867,-0.15472738,-0.45216787,-0.7054439,-0.88979334,-0.9872175,-0.9881989,-0.8926416,-0.70987236,-0.45776004,-0.1609284,0.15162458,0.4493651,0.703215,0.88835603,0.9867122,0.988675,0.8940472,0.71208036,0.46054935,0.16402654,-0.14852026,-0.44656864,-0.7009792,-0.88690996,-0.9861972,-0.9891413,-0.89544934,-0.7142814,-0.4633341,-0.16712306,0.14542635,0.44375703,0.6987364,0.8854552,0.9856725,0.9895962,0.8968427,0.7164753,0.46611434,0.17021795,-0.14231916,-0.44094107,-0.6964868,-0.88399166,-0.985138,-0.99004304,-0.8982272,-0.7186622,-0.46888995,-0.17329934,0.13921055,0.43812075,0.69423026,0.88251936,0.9845959,0.9904801,0.89960283,0.72084194,0.47166094,0.17639084,-0.13610058,-0.43529612,-0.69196695,-0.8810441,-0.98404205,-0.9909075,-0.9009696,-0.72301465,-0.47441673,-0.17948061,0.13298926,0.4324672,0.6896968,0.8795545,0.98347855,0.991325,0.9023275,0.7251802,0.47717842,0.1825686,-0.12987663,-0.429634,-0.6874285,-0.8780562,-0.98290527,-0.99173284,-0.9036765,-0.7273304,-0.4799354,-0.18565479,0.12676272,0.4267966,0.6851448,0.8765493,0.98232234,0.9921309,0.9050166,0.72948164,0.48268765,0.18873915,-0.12364756,-0.4239658,-0.6828543,-0.87503374,-0.98172975,-0.9925191,-0.9063427,-0.73162574,-0.48543513,-0.19182165,0.12053119,0.42112002,0.6805571,0.8735095,0.98112744,0.99289614,0.90766495,0.73376256,0.48817784,0.19490226,-0.11742552,-0.41827008,-0.6782532,-0.8719767,-0.9805155,-0.9932648,-0.9089782,-0.7358922,-0.49091572,-0.19798094,0.11430681,0.415416,0.6759426,0.8704353,0.97989625,0.99362373,0.9102826,0.7380146,0.49364877,0.20105767,-0.11117505,-0.41256875,-0.6736342,-0.86889124,-0.979265,-0.99397284,-0.911578,-0.74012965,-0.49637696,-0.20413242,0.10805411,0.40970653,0.6713103,0.8673327,0.97862405,0.99431217,0.9128644,0.74223745,0.49910024,0.20720518,-0.104955934,-0.4068403,-0.66897976,-0.86576563,-0.9779735,-0.99464166,-0.9141418,-0.7443379,-0.5018186,-0.21027587,0.1018329,0.40397,0.66664267,0.86419004,0.9773133,0.9949614,0.9154101,0.74643105,0.50453204,0.21332107,-0.09870885,-0.40109578,-0.664299,-0.86260587,-0.97664344,-0.99527127,-0.9166695,-0.74851686,-0.5072405,-0.21638761,0.09558384,0.39821756,0.6619488,0.86101323,0.975964,0.9955713,0.9179198,0.7505953,0.50992334,0.21945202,-0.09245788,-0.39533544,-0.65959203,-0.85941213,-0.9752749,-0.9958616,-0.9191611,-0.7526505,-0.51262176,-0.22251426,0.089331016,0.3924494,0.6572288,0.8578025,0.97457623,0.9961421,0.9203933,0.75471413,0.5153152,0.2255743,-0.08620327,-0.3895595,-0.65485907,-0.8561845,-0.9738679,-0.9964127,-0.9216071,-0.7567703,-0.5180035,-0.22863212,0.08307467,0.38666576,0.6524829,0.854558,0.97315,0.9966735,0.9228212,0.75881904,0.52068675,0.2316877,-0.07994525,-0.38376823,-0.6501003,-0.8529231,-0.9724225,-0.9969226,-0.92402625,-0.7608603,-0.5233648,-0.23474099,0.07681505,0.3808669,0.6477113,0.85127974,0.9716854,0.99716383,0.9252221,0.7628941,0.52603775,0.23779196,-0.07368408,-0.3779618,-0.6453159,-0.84962803,-0.97094446,-0.9973952,-0.9264089,-0.7649203,-0.5287055,-0.24084058,0.070552394,0.375053,0.6429141,0.8479679,0.9701883,0.99761677,0.92758656,0.766939,0.531368,0.24388683,-0.067420006,-0.37214047,-0.64050597,-0.8463122,-0.9694226,-0.9978285,-0.92875504,-0.7689501,-0.53402525,-0.24693067,0.064286955,0.3692243,0.63811,0.8446355,0.96864724,0.9980304,0.9299144,0.77095366,0.5366773,0.24997209,-0.06115327,-0.3663045,-0.6356893,-0.84295046,-0.9678624,-0.9982225,-0.9310646,-0.77294964,-0.53932405,-0.25301105,0.058018986,0.36340338,0.6332624,0.8412571,0.967068,0.9984047,0.9322056,0.774938,0.5419654,0.2560475,-0.05488413,-0.36047637,-0.6308292,-0.8395554,-0.9662641,-0.998577,-0.9333374,-0.77691865,-0.5446015,-0.25908142,0.051772665,0.35754585,0.62838984,0.83784544,0.9654507,0.99873954,0.93446004,0.7788917,0.5472322,0.2621128,-0.048636757,-0.35461178,-0.62594426,-0.8361273,-0.96462774,-0.99889225,-0.9355734,-0.780857,-0.5498575,-0.26511848,0.04550037,0.35167423,0.6234925,0.83440083,0.96379524,0.99903506,0.9366776,0.7828147,0.5524774,0.26814467,-0.04236354,-0.3487332,-0.62103456,-0.83266616,-0.96295327,-0.99916804,-0.9377725,-0.78476465,-0.5550719,-0.27116823,0.039226286,0.34578872,0.61857057,0.83092326,0.9621018,0.9992912,0.9388582,0.786692,0.5576809,0.2741891,-0.036088645,-0.34284085,-0.61610043,-0.8291722,-0.9612408,-0.99940443,-0.9399347,-0.78862655,-0.56028444,-0.2772073,0.032950655,0.3398896,0.6136242,0.8274129,0.9603704,0.99950784,0.9409937,0.7905533,0.5628824,0.28022274,-0.029812334,-0.33693498,-0.6111419,-0.8256455,-0.95949054,-0.9996014,-0.9420517,-0.7924722,-0.56547487,-0.2832354,0.026673721,0.33397707,0.60865366,0.82386994,0.9586012,0.9996845,0.9431004,0.7943833,0.5680617,0.28624532,-0.023534844,-0.33101583,-0.6061594,-0.8220863,-0.95770234,-0.9997585,-0.9441398,-0.7962866,-0.57064295,-0.28925237,0.020395737,0.32805136,0.60365915,0.82029456,0.95680106,0.99982256,0.9451698,0.798182,0.5732186,0.2922566,-0.017256428,-0.32508364,-0.60115296,-0.8184947,-0.95588344,-0.9998768,-0.9461906,-0.80006963,-0.5757886,-0.29525793,0.0141169485,0.3221127,0.5986408,0.8167006,0.9549564,0.99992114,0.947202,0.80194926,0.5783529,0.29825634,-0.01097733,-0.31913862,-0.596142,-0.81488466,-0.95401996,-0.99995565,-0.9482041,-0.8038211,-0.5809115,-0.30125183,0.007837603,0.31616136,0.59361815,0.8130607,0.9530741,0.9999803,0.9491968,0.8056849,0.5834644,0.30424434,-0.0046977988,-0.31320378,-0.5910884,-0.81122875,-0.9521189,-0.99999505,-0.95018023,-0.80754083,-0.5860115,-0.30723387,0.0015579486,0.31022033,0.5885529,0.80938876,0.95115423,1.0],"sin":[-0.0,0.3087161,0.58727324,0.80845875,0.9506647,0.9999988,0.95163405,0.81030273,0.5898117,0.31170106,0.0031398619,-0.30572808,-0.58472896,-0.80660677,-0.94968593,-0.999989,-0.95259404,-0.81213874,-0.59234434,-0.31468296,-0.0062796925,0.30273703,0.58217895,0.80474687,0.94870543,0.9999693,0.9535446,0.8139667,0.59487116,0.31766173,0.009419462,-0.29974303,-0.57962316,-0.80287904,-0.9477081,-0.99993974,-0.95448583,-0.81578666,-0.59739214,-0.3206374,-0.012559137,0.29674605,0.57706165,0.8010176,0.94670135,0.99990034,0.9554176,0.81759864,0.59990716,0.32360992,0.01569869,-0.29374617,-0.5745141,-0.799134,-0.94568527,-0.9998511,-0.95633996,-0.81940246,-0.60241634,-0.3265792,-0.018838087,0.29074338,0.5719413,0.7972425,0.9446599,0.999792,0.95725286,0.8211983,0.60491955,0.32954532,0.0219773,-0.28776067,-0.5693629,-0.7953432,-0.9436252,-0.999723,-0.95815635,-0.82298595,-0.6074168,-0.33250815,-0.025116295,0.2847522,0.56677884,0.793436,0.9425812,0.9996442,0.9590504,0.82476556,0.60990804,0.33546773,0.028231082,-0.28174093,-0.5641892,-0.791521,-0.9415279,-0.9995555,-0.959935,-0.826537,-0.6123933,-0.338424,-0.031369552,0.27872688,0.561594,0.7895982,0.94046533,0.999457,0.9608101,0.8283003,0.6148725,0.34135437,0.034507714,-0.27571005,-0.5589933,-0.78766763,-0.9393935,-0.9993486,-0.9616758,-0.8300554,-0.61734563,-0.34430397,-0.037645537,0.27269053,0.55638707,0.7857293,0.9383124,0.9992303,0.962532,0.83180237,0.6197939,0.34725013,0.040782988,-0.2696683,-0.5537753,-0.7837832,-0.93722206,-0.99910223,-0.96337867,-0.83352786,-0.6222549,-0.3501929,-0.043920036,0.26664346,0.55115813,0.78182936,0.9361225,0.9989643,0.9642158,0.8352585,0.6247098,0.35313222,0.047056653,-0.26361597,-0.5485355,-0.7798678,-0.93501365,-0.99881655,-0.9650372,-0.8369808,-0.62715846,-0.35606804,-0.050192803,0.26058587,0.5459075,0.7778986,0.9338956,0.9986589,0.9658555,0.83869493,0.629601,0.35900038,0.05332846,-0.2575532,-0.5432741,-0.7759217,-0.93276834,-0.9984927,-0.9666642,-0.84040076,-0.6320373,-0.36192915,-0.05646359,0.254518,0.54063535,0.77393717,0.9316319,0.99831545,0.9674634,0.84209836,0.63446736,0.36485437,0.059598166,-0.25148028,-0.5379912,-0.771945,-0.930495,-0.9981284,-0.968253,-0.84378755,-0.63689125,-0.36777598,-0.06273215,0.24844009,0.5353418,0.7699452,0.9293403,0.9979315,0.9690331,0.8454685,0.63930875,0.37069398,0.06586552,-0.24539743,-0.5326871,-0.76795316,-0.9281764,-0.9977247,-0.9698037,-0.8471411,-0.64172,-0.37360832,-0.06899824,0.24235238,0.53004754,0.7659383,0.9270034,0.99750805,0.97056466,0.84880537,0.6441249,0.37651896,0.07213028,-0.23930493,-0.52738243,-0.76391584,-0.9258212,-0.9972816,-0.9713161,-0.85046124,-0.6465235,-0.3794259,-0.07526161,0.2362784,0.5247121,0.7618859,0.92462987,0.99704534,0.97205794,0.8521087,0.6489157,0.3823291,0.07839219,-0.23322628,-0.5220366,-0.7598484,-0.9234294,-0.99679923,-0.97279024,-0.85374784,-0.6513015,-0.38522854,-0.081498116,0.23017186,0.519356,0.75780344,0.92221993,0.99654335,0.9735129,0.8553785,0.65368086,0.38812417,0.08462713,-0.22711517,-0.5166702,-0.755751,-0.9210013,-0.9962776,-0.97422594,-0.85700077,-0.6560538,-0.39099392,-0.08775531,0.22405624,0.5139794,0.75369114,0.9197736,0.996002,0.97492945,0.8586145,0.65842026,0.3938819,0.09088263,-0.2209951,-0.51128346,-0.7516238,-0.91853684,-0.9957166,-0.9756233,-0.86021984,-0.66076225,-0.39676598,-0.09400905,0.21793178,0.50858253,0.74954903,0.917291,0.9954214,0.9763075,0.86180454,0.66311574,0.39964616,0.09713454,-0.21486631,-0.50587654,-0.7474669,-0.9160361,-0.99511635,-0.9769822,-0.86339295,-0.66546273,-0.40252241,-0.10025907,0.21179873,0.5031656,0.7453774,0.9147722,0.9948015,0.9776421,0.8649729,0.66780317,0.4053947,0.103382625,-0.20872906,-0.50044966,-0.7432806,-0.9134993,-0.99447685,-0.97829753,-0.86654425,-0.670137,-0.40826297,-0.10650515,0.20565732,0.49772882,0.7411764,0.9122174,0.99414504,0.9789433,0.8681071,0.6724642,0.41112724,0.10962663,-0.20258357,-0.49500307,-0.73906493,-0.91092646,-0.9938008,-0.9795794,-0.8696614,-0.6747848,-0.41398743,-0.11274702,0.19950782,0.49228287,0.7369543,0.90963155,0.9934455,0.9802059,0.87120706,0.6770987,0.41684356,0.11586631,-0.19644184,-0.48954737,-0.7348283,-0.9083227,-0.9930817,-0.9808227,-0.8727442,-0.679406,-0.41969556,-0.11898445,0.19336219,0.48680708,0.73269504,0.9070049,0.9927095,0.9814298,0.8742727,0.68170655,0.42254344,0.12208953,-0.19028063,-0.484062,-0.7305546,-0.9056782,-0.9923262,-0.98202723,-0.87579256,-0.6840004,-0.4253763,-0.1252053,0.1871972,0.48131213,0.7284069,0.90434766,0.99193305,0.98261505,0.87730384,0.68628746,0.42821583,0.12831983,-0.18411192,-0.4785575,-0.7262521,-0.9030031,-0.9915302,-0.9831931,-0.8788064,-0.6885591,-0.43105114,-0.13143311,0.18102482,0.47579816,0.7240983,0.90164965,0.9911175,0.9837615,0.8803004,0.6908327,0.4338822,0.13454509,-0.17793594,-0.47303414,-0.7219292,-0.90028733,-0.990695,-0.9843202,-0.88177997,-0.69309944,-0.436709,-0.13765574,0.17484531,0.47027603,0.71975297,0.8989161,0.9902628,0.9848692,0.8832566,0.6953594,0.43953145,0.14076503,-0.17176476,-0.4675027,-0.71756965,-0.89753604,-0.98982084,-0.98540646,-0.8847245,-0.69761246,-0.44234958,-0.14387293,0.16867071,0.4647248,0.71537924,0.89614713,0.9893691,0.98593605,0.8861837,0.69985867,0.44516337,0.14696756,-0.16557501,-0.46194232,-0.71318173,-0.8947494,-0.98890936,-0.9864559,-0.8876341,-0.70209795,-0.44797277,-0.1500726,0.16247767,0.45915526,0.71097726,0.8933482,0.9884381,0.9869661,0.8890758,0.7043303,0.45076704,0.15317616,-0.15937874,-0.45636368,-0.70876575,-0.89193285,-0.9879572,-0.9874665,-0.8905087,-0.7065557,-0.4535676,-0.15627822,0.15627822,0.4535676,0.7065557,0.8905087,0.9874665,0.9879572,0.89193285,0.70876575,0.45636368,0.15937874,-0.15317616,-0.45076704,-0.7043303,-0.8890758,-0.9869661,-0.9884381,-0.8933482,-0.71097726,-0.45915526,-0.16247767,0.1500726,0.44797277,0.70209795,0.8876341,0.9864559,0.98890936,0.8947494,0.71318173,0.46194232,0.16557501,-0.14696756,-0.44516337,-0.69985867,-0.8861837,-0.98593605,-0.9893691,-0.89614713,-0.71537924,-0.4647248,-0.16867071,0.14387293,0.44234958,0.69761246,0.8847245,0.98540646,0.98982084,0.89753604,0.71756965,0.4675027,0.17176476,-0.14076503,-0.43953145,-0.6953594,-0.8832566,-0.9848692,-0.9902628,-0.8989161,-0.71975297,-0.47027603,-0.17484531,0.13765574,0.436709,0.69309944,0.88177997,0.9843202,0.990695,0.90028733,0.7219292,0.47303414,0.17793594,-0.13454509,-0.4338822,-0.6908327,-0.8803004,-0.9837615,-0.9911175,-0.90164965,-0.7240983,-0.47579816,-0.18102482,0.13143311,0.43105114,0.6885591,0.8788064,0.9831931,0.9915302,0.9030031,0.7262521,0.4785575,0.18411192,-0.12831983,-0.42821583,-0.68628746,-0.87730384,-0.98261505,-0.99193305,-0.90434766,-0.7284069,-0.48131213,-0.1871972,0.1252053,0.4253763,0.6840004,0.87579256,0.98202723,0.9923262,0.9056782,0.7305546,0.484062,0.19028063,-0.12208953,-0.42254344,-0.68170655,-0.8742727,-0.9814298,-0.9927095,-0.9070049,-0.73269504,-0.48680708,-0.19336219,0.11898445,0.41969556,0.679406,0.8727442,0.9808227,0.9930817,0.9083227,0.7348283,0.48954737,0.19644184,-0.11586631,-0.41684356,-0.6770987,-0.87120706,-0.9802059,-0.9934455,-0.90963155,-0.7369543,-0.49228287,-0.19950782,0.11274702,0.41398743,0.6747848,0.8696614,0.97958183,0.9937995,0.9109314,0.73907304,0.49501348,0.20258357,-0.10962663,-0.41112724,-0.6724642,-0.86811304,-0.97894573,-0.9941437,-0.91222227,-0.7411845,-0.49772882,-0.20565732,0.10650515,0.40826297,0.670137,0.8665502,0.9783,0.9944781,0.9135042,0.74328864,0.50044966,0.20872906,-0.103382625,-0.4053947,-0.66781205,-0.8649789,-0.9776446,-0.9948027,-0.91477704,-0.7453774,-0.5031656,-0.21179873,0.10025907,0.4025279,0.6654672,0.863399,0.9769796,0.99511695,0.9160385,0.7474709,0.50587654,0.21486631,-0.097140506,-0.39965168,-0.66312474,-0.8618106,-0.97630495,-0.99542195,-0.91729337,-0.74954903,-0.50858253,-0.21792594,0.09401501,0.3967715,0.66077125,0.86021376,0.975622,0.99571717,0.91853917,0.7516238,0.51128346,0.22098926,-0.0908886,-0.3938929,-0.65841126,-0.85860837,-0.9749281,-0.99600255,-0.9197736,-0.75369114,-0.51397425,-0.2240504,0.08776128,0.39100495,0.6560448,0.85699767,0.9742246,0.9962776,0.9210013,0.755751,0.5166651,0.22710933,-0.08463907,-0.3881131,-0.6536718,-0.8553754,-0.9735115,-0.99654335,-0.92221993,-0.7577995,-0.5193509,-0.23016603,0.08151006,0.38521746,0.651297,0.8537447,0.97279024,0.99679923,0.9234294,0.75984454,0.5220315,0.23321463,-0.07838024,-0.38232356,-0.6489111,-0.8521056,-0.97205794,-0.99704534,-0.9246276,-0.761882,-0.524707,-0.23626676,0.07524966,0.37942037,0.64651895,0.85046124,0.9713161,0.9972816,0.9258189,0.763912,0.52737224,0.23931655,-0.0721243,-0.37651342,-0.64412034,-0.84880537,-0.97056466,-0.99750763,-0.9270011,-0.7659306,-0.5300374,-0.242364,0.068992265,0.37360275,0.64172,0.8471411,0.9698052,0.9977243,0.9281742,0.7679455,0.53269726,0.24540325,-0.06585954,-0.3706884,-0.63930875,-0.8454685,-0.9690346,-0.99793106,-0.9293359,-0.76995283,-0.53535193,-0.24844588,0.06272617,0.36777598,0.63689125,0.84379077,0.96825457,0.998128,0.9304907,0.7719526,0.5379963,0.25148606,-0.059598166,-0.36485437,-0.63446736,-0.8421016,-0.9674649,-0.9983148,-0.9316363,-0.77394474,-0.54064035,-0.25452378,0.05646359,0.36192915,0.63204193,0.84040403,0.96666574,0.99849206,0.93277264,0.77592546,0.5432791,0.2575532,-0.05332846,-0.35900038,-0.62960565,-0.8386982,-0.9658586,-0.9986595,-0.93389773,-0.77790236,-0.5459125,-0.26058587,0.050192803,0.35607085,0.6271632,0.83698577,0.9650404,0.99881697,0.93501574,0.7798716,0.548538,0.26361597,-0.047059644,-0.35313782,-0.6247168,-0.83526343,-0.96421266,-0.9989647,-0.93612456,-0.7818312,-0.55115813,-0.26664057,0.043923028,0.35019854,0.62226194,0.8335345,0.9633762,0.99910253,0.93722415,0.78378505,0.5537753,0.26966545,-0.040788975,-0.34725857,-0.6198033,-0.8317957,-0.96252954,-0.99923056,-0.9383134,-0.7857293,-0.55638456,-0.27268764,0.037651524,0.3443124,0.6173362,0.8300504,0.96167415,0.9993487,0.93939453,0.78766763,0.55899084,0.2757043,-0.0345167,-0.34136564,-0.6148654,-0.82829523,-0.96080846,-0.99945706,-0.94046533,-0.7895964,-0.56158906,-0.2787211,0.031378537,0.3384127,0.6123862,0.8265336,0.9599342,0.9995555,0.9415279,0.79151917,0.56418425,0.2817323,-0.028243061,-0.33545926,-0.60990095,-0.82476217,-0.9590496,-0.9996442,-0.9425802,-0.79343235,-0.56677145,-0.28474358,0.025104314,0.33249968,0.60741204,0.8229843,0.95815593,0.99972296,0.9436237,0.7953396,0.5693555,0.2877492,-0.021966815,-0.32953826,-0.604916,-0.82119656,-0.95725286,-0.9997919,-0.9446579,-0.797238,-0.57193273,-0.2907534,0.0188291,0.32657355,0.60241395,0.8194016,0.9563404,0.99985105,0.9456828,0.7991286,0.5745043,0.29375476,-0.0156912,-0.32360566,-0.59990597,-0.81759864,-0.95541847,-0.9999003,-0.9466989,-0.8010113,-0.57707024,-0.2967532,0.012553146,0.32063457,0.59739155,0.815788,0.95448714,0.9999397,0.947705,0.8028862,0.5796305,0.29974946,-0.009414967,-0.31766033,-0.59487176,-0.8139689,-0.9535464,-0.99996924,-0.94870186,-0.80475307,-0.5821856,-0.30274203,0.0062766965,0.3146826,0.59234613,0.81214154,0.9525963,0.9999889,0.94968957,0.8066121,0.58473414,0.30573198,-0.0031383638,-0.31170213,-0.5898147,-0.8103064,-0.95163673,-0.99999875,-0.9506678,-0.8084632,-0.5872773,-0.30871847,0.0,0.30871847,0.5872773,0.8084632,0.9506678,0.99999875,0.95163673,0.8103064,0.5898147,0.31170213,0.0031383638,-0.30573198,-0.58473414,-0.8066121,-0.94968957,-0.9999889,-0.9525963,-0.81214154,-0.59234613,-0.3146826,-0.0062766965,0.30274203,0.5821856,0.80475307,0.94870186,0.99996924,0.9535464,0.8139689,0.59487176,0.31766033,0.009414967,-0.29974946,-0.5796305,-0.8028862,-0.947705,-0.9999397,-0.95448714,-0.815788,-0.59739155,-0.32063457,-0.012553146,0.2967532,0.57707024,0.8010113,0.9466989,0.9999003,0.95541847,0.81759864,0.59990597,0.32360566,0.0156912,-0.29375476,-0.5745043,-0.7991286,-0.9456828,-0.99985105,-0.9563404,-0.8194016,-0.60241395,-0.32657355,-0.0188291,0.2907534,0.57193273,0.797238,0.9446579,0.9997919,0.95725286,0.82119656,0.604916,0.32953826,0.021966815,-0.2877492,-0.5693555,-0.7953396,-0.9436237,-0.99972296,-0.95815593,-0.8229843,-0.60741204,-0.33249968,-0.025104314,0.28474358,0.56677145,0.79343235,0.9425802,0.9996442,0.9590496,0.82476217,0.60990095,0.33545926,0.028243061,-0.2817323,-0.56418425,-0.79151917,-0.9415279,-0.9995555,-0.9599342,-0.8265336,-0.6123862,-0.3384127,-0.031378537,0.2787211,0.56158906,0.7895964,0.94046533,0.99945706,0.96080846,0.82829523,0.6148654,0.34136564,0.0345167,-0.2757043,-0.55899084,-0.78766763,-0.93939453,-0.9993487,-0.96167415,-0.8300504,-0.6173362,-0.3443124,-0.037651524,0.27268764,0.55638456,0.7857293,0.9383134,0.99923056,0.96252954,0.8317957,0.6198033,0.34725857,0.040788975,-0.26966545,-0.5537753,-0.78378505,-0.93722415,-0.99910253,-0.9633762,-0.8335345,-0.62226194,-0.35019854,-0.043923028,0.26664057,0.55115813,0.7818312,0.93612456,0.9989647,0.96421266,0.83526343,0.6247168,0.35313782,0.047059644,-0.26361597,-0.548538,-0.7798716,-0.93501574,-0.99881697,-0.9650404,-0.83698577,-0.6271632,-0.35607085,-0.050192803,0.26058587,0.5459125,0.77790236,0.93389773,0.9986595,0.9658586,0.8386982,0.62960565,0.35900038,0.05332846,-0.2575532,-0.5432791,-0.77592546,-0.93277264,-0.99849206,-0.96666574,-0.84040403,-0.63204193,-0.36192915,-0.05646359,0.25452378,0.54064035,0.77394474,0.9316363,0.9983148,0.9674649,0.8421016,0.63446736,0.36485437,0.059598166,-0.25148606,-0.5379963,-0.7719526,-0.9304907,-0.998128,-0.96825457,-0.84379077,-0.63689125,-0.36777598,-0.06272617,0.24844588,0.53535193,0.76995283,0.9293359,0.99793106,0.9690346,0.8454685,0.63930875,0.3706884,0.06585954,-0.24540325,-0.53269726,-0.7679455,-0.9281742,-0.9977243,-0.9698052,-0.8471411,-0.64172,-0.37360275,-0.068992265,0.242364,0.5300374,0.7659306,0.9270011,0.99750763,0.97056466,0.84880537,0.64412034,0.37651342,0.0721243,-0.23931655,-0.52737224,-0.763912,-0.9258189,-0.9972816,-0.9713161,-0.85046124,-0.64651895,-0.37942037,-0.07524966,0.23626676,0.524707,0.761882,0.9246276,0.99704534,0.97205794,0.8521056,0.6489111,0.38232356,0.07838024,-0.23321463,-0.5220315,-0.75984454,-0.9234294,-0.99679923,-0.97279024,-0.8537447,-0.651297,-0.38521746,-0.08151006,0.23016603,0.5193509,0.7577995,0.92221993,0.99654335,0.9735115,0.8553754,0.6536718,0.3881131,0.08463907,-0.22710933,-0.5166651,-0.755751,-0.9210013,-0.9962776,-0.9742246,-0.85699767,-0.6560448,-0.39100495,-0.08776128,0.2240504,0.51397425,0.75369114,0.9197736,0.99600255,0.9749281,0.85860837,0.65841126,0.3938929,0.0908886,-0.22098926,-0.51128346,-0.7516238,-0.91853917,-0.99571717,-0.975622,-0.86021376,-0.66077125,-0.3967715,-0.09401501,0.21792594,0.50858253,0.74954903,0.91729337,0.99542195,0.97630495,0.8618106,0.66312474,0.39965168,0.097140506,-0.21486631,-0.50587654,-0.7474709,-0.9160385,-0.99511695,-0.9769796,-0.863399,-0.6654672,-0.4025279,-0.10025907,0.21179873,0.5031656,0.7453774,0.91477704,0.9948027,0.9776446,0.8649789,0.66781205,0.4053947,0.103382625,-0.20872906,-0.50044966,-0.74328864,-0.9135042,-0.9944781,-0.9783,-0.8665502,-0.670137,-0.40826297,-0.10650515,0.20565732,0.49772882,0.7411845,0.91222227,0.9941437,0.97894573,0.86811304,0.6724642,0.41112724,0.10962663,-0.20258357,-0.49501348,-0.73907304,-0.9109314,-0.9937995,-0.97958183,-0.8696614,-0.6747848,-0.41398743,-0.11274702,0.19950782,0.49228287,0.7369543,0.90963155,0.9934455,0.9802059,0.87120706,0.6770987,0.41684356,0.11586631,-0.19644184,-0.48954737,-0.7348283,-0.9083227,-0.9930817,-0.9808227,-0.8727442,-0.679406,-0.41969556,-0.11898445,0.19336219,0.48680708,0.73269504,0.9070049,0.9927095,0.9814298,0.8742727,0.68170655,0.42254344,0.12208953,-0.19028063,-0.484062,-0.7305546,-0.9056782,-0.9923262,-0.98202723,-0.87579256,-0.6840004,-0.4253763,-0.1252053,0.1871972,0.48131213,0.7284069,0.90434766,0.99193305,0.98261505,0.87730384,0.68628746,0.42821583,0.12831983,-0.18411192,-0.4785575,-0.7262521,-0.9030031,-0.9915302,-0.9831931,-0.8788064,-0.6885591,-0.43105114,-0.13143311,0.18102482,0.47579816,0.7240983,0.90164965,0.9911175,0.9837615,0.8803004,0.6908327,0.4338822,0.13454509,-0.17793594,-0.47303414,-0.7219292,-0.90028733,-0.990695,-0.9843202,-0.88177997,-0.69309944,-0.436709,-0.13765574,0.17484531,0.47027603,0.71975297,0.8989161,0.9902628,0.9848692,0.8832566,0.6953594,0.43953145,0.14076503,-0.17176476,-0.4675027,-0.71756965,-0.89753604,-0.98982084,-0.98540646,-0.8847245,-0.69761246,-0.44234958,-0.14387293,0.16867071,0.4647248,0.71537924,0.89614713,0.9893691,0.98593605,0.8861837,0.69985867,0.44516337,0.14696756,-0.16557501,-0.46194232,-0.71318173,-0.8947494,-0.98890936,-0.9864559,-0.8876341,-0.70209795,-0.44797277,-0.1500726,0.16247767,0.45915526,0.71097726,0.8933482,0.9884381,0.9869661,0.8890758,0.7043303,0.45076704,0.15317616,-0.15937874,-0.45636368,-0.70876575,-0.89193285,-0.9879572,-0.9874665,-0.8905087,-0.7065557,-0.4535676,-0.15627822,0.15627822,0.4535676,0.7065557,0.8905087,0.9874665,0.9879572,0.89193285,0.70876575,0.45636368,0.15937874,-0.15317616,-0.45076704,-0.7043303,-0.8890758,-0.9869661,-0.9884381,-0.8933482,-0.71097726,-0.45915526,-0.16247767,0.1500726,0.44797277,0.70209795,0.8876341,0.9864559,0.98890936,0.8947494,0.71318173,0.46194232,0.16557501,-0.14696756,-0.44516337,-0.69985867,-0.8861837,-0.98593605,-0.9893691,-0.89614713,-0.71537924,-0.4647248,-0.16867071,0.14387293,0.44234958,0.69761246,0.8847245,0.98540646,0.98982084,0.89753604,0.71756965,0.4675027,0.17176476,-0.14076503,-0.43953145,-0.6953594,-0.8832566,-0.9848692,-0.9902628,-0.8989161,-0.71975297,-0.47027603,-0.17484531,0.13765574,0.436709,0.69309944,0.88177997,0.9843202,0.990695,0.90028733,0.7219292,0.47303414,0.17793594,-0.13454509,-0.4338822,-0.6908327,-0.8803004,-0.9837615,-0.9911175,-0.90164965,-0.7240983,-0.47579816,-0.18102482,0.13143311,0.43105114,0.6885591,0.8788064,0.9831931,0.9915302,0.9030031,0.7262521,0.4785575,0.18411192,-0.12831983,-0.42821583,-0.68628746,-0.87730384,-0.98261505,-0.99193305,-0.90434766,-0.7284069,-0.48131213,-0.1871972,0.1252053,0.4253763,0.6840004,0.87579256,0.98202723,0.9923262,0.9056782,0.7305546,0.484062,0.19028063,-0.12208953,-0.42254344,-0.68170655,-0.8742727,-0.9814298,-0.9927095,-0.9070049,-0.73269504,-0.48680708,-0.19336219,0.11898445,0.41969556,0.679406,0.8727442,0.9808227,0.9930817,0.9083227,0.7348283,0.48954737,0.19644184,-0.11586631,-0.41684356,-0.6770987,-0.87120706,-0.9802059,-0.9934455,-0.90963155,-0.7369543,-0.49228287,-0.19950782,0.11274702,0.41398743,0.6747848,0.8696614,0.9795794,0.9938008,0.91092646,0.73906493,0.49500307,0.20258357,-0.10962663,-0.41112724,-0.6724642,-0.8681071,-0.9789433,-0.99414504,-0.9122174,-0.7411764,-0.49772882,-0.20565732,0.10650515,0.40826297,0.670137,0.86654425,0.97829753,0.99447685,0.9134993,0.7432806,0.50044966,0.20872906,-0.103382625,-0.4053947,-0.66780317,-0.8649729,-0.9776421,-0.9948015,-0.9147722,-0.7453774,-0.5031656,-0.21179873,0.10025907,0.40252241,0.66546273,0.86339295,0.9769822,0.99511635,0.9160361,0.7474669,0.50587654,0.21486631,-0.09713454,-0.39964616,-0.66311574,-0.86180454,-0.9763075,-0.9954214,-0.917291,-0.74954903,-0.50858253,-0.21793178,0.09400905,0.39676598,0.66076225,0.86021984,0.9756233,0.9957166,0.91853684,0.7516238,0.51128346,0.2209951,-0.09088263,-0.3938819,-0.65842026,-0.8586145,-0.97492945,-0.996002,-0.9197736,-0.75369114,-0.5139794,-0.22405624,0.08775531,0.39099392,0.6560538,0.85700077,0.97422594,0.9962776,0.9210013,0.755751,0.5166702,0.22711517,-0.08462713,-0.38812417,-0.65368086,-0.8553785,-0.9735129,-0.99654335,-0.92221993,-0.75780344,-0.519356,-0.23017186,0.081498116,0.38522854,0.6513015,0.85374784,0.97279024,0.99679923,0.9234294,0.7598484,0.5220366,0.23322628,-0.07839219,-0.3823291,-0.6489157,-0.8521087,-0.97205794,-0.99704534,-0.92462987,-0.7618859,-0.5247121,-0.2362784,0.07526161,0.3794259,0.6465235,0.85046124,0.9713161,0.9972816,0.9258212,0.76391584,0.52738243,0.23930493,-0.07213028,-0.37651896,-0.6441249,-0.84880537,-0.97056466,-0.99750805,-0.9270034,-0.7659383,-0.53004754,-0.24235238,0.06899824,0.37360832,0.64172,0.8471411,0.9698037,0.9977247,0.9281764,0.76795316,0.5326871,0.24539743,-0.06586552,-0.37069398,-0.63930875,-0.8454685,-0.9690331,-0.9979315,-0.9293403,-0.7699452,-0.5353418,-0.24844009,0.06273215,0.36777598,0.63689125,0.84378755,0.968253,0.9981284,0.930495,0.771945,0.5379912,0.25148028,-0.059598166,-0.36485437,-0.63446736,-0.84209836,-0.9674634,-0.99831545,-0.9316319,-0.77393717,-0.54063535,-0.254518,0.05646359,0.36192915,0.6320373,0.84040076,0.9666642,0.9984927,0.93276834,0.7759217,0.5432741,0.2575532,-0.05332846,-0.35900038,-0.629601,-0.83869493,-0.9658555,-0.9986589,-0.9338956,-0.7778986,-0.5459075,-0.26058587,0.050192803,0.35606804,0.62715846,0.8369808,0.9650372,0.99881655,0.93501365,0.7798678,0.5485355,0.26361597,-0.047056653,-0.35313222,-0.6247098,-0.8352585,-0.9642158,-0.9989643,-0.9361225,-0.78182936,-0.55115813,-0.26664346,0.043920036,0.3501929,0.6222549,0.83352786,0.96337867,0.99910223,0.93722206,0.7837832,0.5537753,0.2696683,-0.040782988,-0.34725013,-0.6197939,-0.83180237,-0.962532,-0.9992303,-0.9383124,-0.7857293,-0.55638707,-0.27269053,0.037645537,0.34430397,0.61734563,0.8300554,0.9616758,0.9993486,0.9393935,0.78766763,0.5589933,0.27571005,-0.034507714,-0.34135437,-0.6148725,-0.8283003,-0.9608101,-0.999457,-0.94046533,-0.7895982,-0.561594,-0.27872688,0.031369552,0.338424,0.6123933,0.826537,0.959935,0.9995555,0.9415279,0.791521,0.5641892,0.28174093,-0.028231082,-0.33546773,-0.60990804,-0.82476556,-0.9590504,-0.9996442,-0.9425812,-0.793436,-0.56677884,-0.2847522,0.025116295,0.33250815,0.6074168,0.82298595,0.95815635,0.999723,0.9436252,0.7953432,0.5693629,0.28776067,-0.0219773,-0.32954532,-0.60491955,-0.8211983,-0.95725286,-0.999792,-0.9446599,-0.7972425,-0.5719413,-0.29074338,0.018838087,0.3265792,0.60241634,0.81940246,0.95633996,0.9998511,0.94568527,0.799134,0.5745141,0.29374617,-0.01569869,-0.32360992,-0.59990716,-0.81759864,-0.9554176,-0.99990034,-0.94670135,-0.8010176,-0.57706165,-0.29674605,0.012559137,0.3206374,0.59739214,0.81578666,0.95448583,0.99993974,0.9477081,0.80287904,0.57962316,0.29974303,-0.009419462,-0.31766173,-0.59487116,-0.8139667,-0.9535446,-0.9999693,-0.94870543,-0.80474687,-0.58217895,-0.30273703,0.0062796925,0.31468296,0.59234434,0.81213874,0.95259404,0.999989,0.94968593,0.80660677,0.58472896,0.30572808,-0.0031398619,-0.31170106,-0.5898117,-0.81030273,-0.95163405,-0.9999988,-0.9506647,-0.80845875,-0.58727324,-0.3087161,0.0]}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/integers.json b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/integers.json
new file mode 100644
index 000000000000..cba3917d562d
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/integers.json
@@ -0,0 +1 @@
+{"x":[-1000.0,-999.0,-998.0,-997.0,-996.0,-995.0,-994.0,-993.0,-992.0,-991.0,-990.0,-989.0,-988.0,-987.0,-986.0,-985.0,-984.0,-983.0,-982.0,-981.0,-980.0,-979.0,-978.0,-977.0,-976.0,-975.0,-974.0,-973.0,-972.0,-971.0,-970.0,-969.0,-968.0,-967.0,-966.0,-965.0,-964.0,-963.0,-962.0,-961.0,-960.0,-959.0,-958.0,-957.0,-956.0,-955.0,-954.0,-953.0,-952.0,-951.0,-950.0,-949.0,-948.0,-947.0,-946.0,-945.0,-944.0,-943.0,-942.0,-941.0,-940.0,-939.0,-938.0,-937.0,-936.0,-935.0,-934.0,-933.0,-932.0,-931.0,-930.0,-929.0,-928.0,-927.0,-926.0,-925.0,-924.0,-923.0,-922.0,-921.0,-920.0,-919.0,-918.0,-917.0,-916.0,-915.0,-914.0,-913.0,-912.0,-911.0,-910.0,-909.0,-908.0,-907.0,-906.0,-905.0,-904.0,-903.0,-902.0,-901.0,-900.0,-899.0,-898.0,-897.0,-896.0,-895.0,-894.0,-893.0,-892.0,-891.0,-890.0,-889.0,-888.0,-887.0,-886.0,-885.0,-884.0,-883.0,-882.0,-881.0,-880.0,-879.0,-878.0,-877.0,-876.0,-875.0,-874.0,-873.0,-872.0,-871.0,-870.0,-869.0,-868.0,-867.0,-866.0,-865.0,-864.0,-863.0,-862.0,-861.0,-860.0,-859.0,-858.0,-857.0,-856.0,-855.0,-854.0,-853.0,-852.0,-851.0,-850.0,-849.0,-848.0,-847.0,-846.0,-845.0,-844.0,-843.0,-842.0,-841.0,-840.0,-839.0,-838.0,-837.0,-836.0,-835.0,-834.0,-833.0,-832.0,-831.0,-830.0,-829.0,-828.0,-827.0,-826.0,-825.0,-824.0,-823.0,-822.0,-821.0,-820.0,-819.0,-818.0,-817.0,-816.0,-815.0,-814.0,-813.0,-812.0,-811.0,-810.0,-809.0,-808.0,-807.0,-806.0,-805.0,-804.0,-803.0,-802.0,-801.0,-800.0,-799.0,-798.0,-797.0,-796.0,-795.0,-794.0,-793.0,-792.0,-791.0,-790.0,-789.0,-788.0,-787.0,-786.0,-785.0,-784.0,-783.0,-782.0,-781.0,-780.0,-779.0,-778.0,-777.0,-776.0,-775.0,-774.0,-773.0,-772.0,-771.0,-770.0,-769.0,-768.0,-767.0,-766.0,-765.0,-764.0,-763.0,-762.0,-761.0,-760.0,-759.0,-758.0,-757.0,-756.0,-755.0,-754.0,-753.0,-752.0,-751.0,-750.0,-749.0,-748.0,-747.0,-746.0,-745.0,-744.0,-743.0,-742.0,-741.0,-740.0,-739.0,-738.0,-737.0,-736.0,-735.0,-734.0,-733.0,-732.0,-731.0,-730.0,-729.0,-728.0,-727.0,-726.0,-725.0,-724.0,-723.0,-722.0,-721.0,-720.0,-719.0,-718.0,-717.0,-716.0,-715.0,-714.0,-713.0,-712.0,-711.0,-710.0,-709.0,-708.0,-707.0,-706.0,-705.0,-704.0,-703.0,-702.0,-701.0,-700.0,-699.0,-698.0,-697.0,-696.0,-695.0,-694.0,-693.0,-692.0,-691.0,-690.0,-689.0,-688.0,-687.0,-686.0,-685.0,-684.0,-683.0,-682.0,-681.0,-680.0,-679.0,-678.0,-677.0,-676.0,-675.0,-674.0,-673.0,-672.0,-671.0,-670.0,-669.0,-668.0,-667.0,-666.0,-665.0,-664.0,-663.0,-662.0,-661.0,-660.0,-659.0,-658.0,-657.0,-656.0,-655.0,-654.0,-653.0,-652.0,-651.0,-650.0,-649.0,-648.0,-647.0,-646.0,-645.0,-644.0,-643.0,-642.0,-641.0,-640.0,-639.0,-638.0,-637.0,-636.0,-635.0,-634.0,-633.0,-632.0,-631.0,-630.0,-629.0,-628.0,-627.0,-626.0,-625.0,-624.0,-623.0,-622.0,-621.0,-620.0,-619.0,-618.0,-617.0,-616.0,-615.0,-614.0,-613.0,-612.0,-611.0,-610.0,-609.0,-608.0,-607.0,-606.0,-605.0,-604.0,-603.0,-602.0,-601.0,-600.0,-599.0,-598.0,-597.0,-596.0,-595.0,-594.0,-593.0,-592.0,-591.0,-590.0,-589.0,-588.0,-587.0,-586.0,-585.0,-584.0,-583.0,-582.0,-581.0,-580.0,-579.0,-578.0,-577.0,-576.0,-575.0,-574.0,-573.0,-572.0,-571.0,-570.0,-569.0,-568.0,-567.0,-566.0,-565.0,-564.0,-563.0,-562.0,-561.0,-560.0,-559.0,-558.0,-557.0,-556.0,-555.0,-554.0,-553.0,-552.0,-551.0,-550.0,-549.0,-548.0,-547.0,-546.0,-545.0,-544.0,-543.0,-542.0,-541.0,-540.0,-539.0,-538.0,-537.0,-536.0,-535.0,-534.0,-533.0,-532.0,-531.0,-530.0,-529.0,-528.0,-527.0,-526.0,-525.0,-524.0,-523.0,-522.0,-521.0,-520.0,-519.0,-518.0,-517.0,-516.0,-515.0,-514.0,-513.0,-512.0,-511.0,-510.0,-509.0,-508.0,-507.0,-506.0,-505.0,-504.0,-503.0,-502.0,-501.0,-500.0,-499.0,-498.0,-497.0,-496.0,-495.0,-494.0,-493.0,-492.0,-491.0,-490.0,-489.0,-488.0,-487.0,-486.0,-485.0,-484.0,-483.0,-482.0,-481.0,-480.0,-479.0,-478.0,-477.0,-476.0,-475.0,-474.0,-473.0,-472.0,-471.0,-470.0,-469.0,-468.0,-467.0,-466.0,-465.0,-464.0,-463.0,-462.0,-461.0,-460.0,-459.0,-458.0,-457.0,-456.0,-455.0,-454.0,-453.0,-452.0,-451.0,-450.0,-449.0,-448.0,-447.0,-446.0,-445.0,-444.0,-443.0,-442.0,-441.0,-440.0,-439.0,-438.0,-437.0,-436.0,-435.0,-434.0,-433.0,-432.0,-431.0,-430.0,-429.0,-428.0,-427.0,-426.0,-425.0,-424.0,-423.0,-422.0,-421.0,-420.0,-419.0,-418.0,-417.0,-416.0,-415.0,-414.0,-413.0,-412.0,-411.0,-410.0,-409.0,-408.0,-407.0,-406.0,-405.0,-404.0,-403.0,-402.0,-401.0,-400.0,-399.0,-398.0,-397.0,-396.0,-395.0,-394.0,-393.0,-392.0,-391.0,-390.0,-389.0,-388.0,-387.0,-386.0,-385.0,-384.0,-383.0,-382.0,-381.0,-380.0,-379.0,-378.0,-377.0,-376.0,-375.0,-374.0,-373.0,-372.0,-371.0,-370.0,-369.0,-368.0,-367.0,-366.0,-365.0,-364.0,-363.0,-362.0,-361.0,-360.0,-359.0,-358.0,-357.0,-356.0,-355.0,-354.0,-353.0,-352.0,-351.0,-350.0,-349.0,-348.0,-347.0,-346.0,-345.0,-344.0,-343.0,-342.0,-341.0,-340.0,-339.0,-338.0,-337.0,-336.0,-335.0,-334.0,-333.0,-332.0,-331.0,-330.0,-329.0,-328.0,-327.0,-326.0,-325.0,-324.0,-323.0,-322.0,-321.0,-320.0,-319.0,-318.0,-317.0,-316.0,-315.0,-314.0,-313.0,-312.0,-311.0,-310.0,-309.0,-308.0,-307.0,-306.0,-305.0,-304.0,-303.0,-302.0,-301.0,-300.0,-299.0,-298.0,-297.0,-296.0,-295.0,-294.0,-293.0,-292.0,-291.0,-290.0,-289.0,-288.0,-287.0,-286.0,-285.0,-284.0,-283.0,-282.0,-281.0,-280.0,-279.0,-278.0,-277.0,-276.0,-275.0,-274.0,-273.0,-272.0,-271.0,-270.0,-269.0,-268.0,-267.0,-266.0,-265.0,-264.0,-263.0,-262.0,-261.0,-260.0,-259.0,-258.0,-257.0,-256.0,-255.0,-254.0,-253.0,-252.0,-251.0,-250.0,-249.0,-248.0,-247.0,-246.0,-245.0,-244.0,-243.0,-242.0,-241.0,-240.0,-239.0,-238.0,-237.0,-236.0,-235.0,-234.0,-233.0,-232.0,-231.0,-230.0,-229.0,-228.0,-227.0,-226.0,-225.0,-224.0,-223.0,-222.0,-221.0,-220.0,-219.0,-218.0,-217.0,-216.0,-215.0,-214.0,-213.0,-212.0,-211.0,-210.0,-209.0,-208.0,-207.0,-206.0,-205.0,-204.0,-203.0,-202.0,-201.0,-200.0,-199.0,-198.0,-197.0,-196.0,-195.0,-194.0,-193.0,-192.0,-191.0,-190.0,-189.0,-188.0,-187.0,-186.0,-185.0,-184.0,-183.0,-182.0,-181.0,-180.0,-179.0,-178.0,-177.0,-176.0,-175.0,-174.0,-173.0,-172.0,-171.0,-170.0,-169.0,-168.0,-167.0,-166.0,-165.0,-164.0,-163.0,-162.0,-161.0,-160.0,-159.0,-158.0,-157.0,-156.0,-155.0,-154.0,-153.0,-152.0,-151.0,-150.0,-149.0,-148.0,-147.0,-146.0,-145.0,-144.0,-143.0,-142.0,-141.0,-140.0,-139.0,-138.0,-137.0,-136.0,-135.0,-134.0,-133.0,-132.0,-131.0,-130.0,-129.0,-128.0,-127.0,-126.0,-125.0,-124.0,-123.0,-122.0,-121.0,-120.0,-119.0,-118.0,-117.0,-116.0,-115.0,-114.0,-113.0,-112.0,-111.0,-110.0,-109.0,-108.0,-107.0,-106.0,-105.0,-104.0,-103.0,-102.0,-101.0,-100.0,-99.0,-98.0,-97.0,-96.0,-95.0,-94.0,-93.0,-92.0,-91.0,-90.0,-89.0,-88.0,-87.0,-86.0,-85.0,-84.0,-83.0,-82.0,-81.0,-80.0,-79.0,-78.0,-77.0,-76.0,-75.0,-74.0,-73.0,-72.0,-71.0,-70.0,-69.0,-68.0,-67.0,-66.0,-65.0,-64.0,-63.0,-62.0,-61.0,-60.0,-59.0,-58.0,-57.0,-56.0,-55.0,-54.0,-53.0,-52.0,-51.0,-50.0,-49.0,-48.0,-47.0,-46.0,-45.0,-44.0,-43.0,-42.0,-41.0,-40.0,-39.0,-38.0,-37.0,-36.0,-35.0,-34.0,-33.0,-32.0,-31.0,-30.0,-29.0,-28.0,-27.0,-26.0,-25.0,-24.0,-23.0,-22.0,-21.0,-20.0,-19.0,-18.0,-17.0,-16.0,-15.0,-14.0,-13.0,-12.0,-11.0,-10.0,-9.0,-8.0,-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,201.0,202.0,203.0,204.0,205.0,206.0,207.0,208.0,209.0,210.0,211.0,212.0,213.0,214.0,215.0,216.0,217.0,218.0,219.0,220.0,221.0,222.0,223.0,224.0,225.0,226.0,227.0,228.0,229.0,230.0,231.0,232.0,233.0,234.0,235.0,236.0,237.0,238.0,239.0,240.0,241.0,242.0,243.0,244.0,245.0,246.0,247.0,248.0,249.0,250.0,251.0,252.0,253.0,254.0,255.0,256.0,257.0,258.0,259.0,260.0,261.0,262.0,263.0,264.0,265.0,266.0,267.0,268.0,269.0,270.0,271.0,272.0,273.0,274.0,275.0,276.0,277.0,278.0,279.0,280.0,281.0,282.0,283.0,284.0,285.0,286.0,287.0,288.0,289.0,290.0,291.0,292.0,293.0,294.0,295.0,296.0,297.0,298.0,299.0,300.0,301.0,302.0,303.0,304.0,305.0,306.0,307.0,308.0,309.0,310.0,311.0,312.0,313.0,314.0,315.0,316.0,317.0,318.0,319.0,320.0,321.0,322.0,323.0,324.0,325.0,326.0,327.0,328.0,329.0,330.0,331.0,332.0,333.0,334.0,335.0,336.0,337.0,338.0,339.0,340.0,341.0,342.0,343.0,344.0,345.0,346.0,347.0,348.0,349.0,350.0,351.0,352.0,353.0,354.0,355.0,356.0,357.0,358.0,359.0,360.0,361.0,362.0,363.0,364.0,365.0,366.0,367.0,368.0,369.0,370.0,371.0,372.0,373.0,374.0,375.0,376.0,377.0,378.0,379.0,380.0,381.0,382.0,383.0,384.0,385.0,386.0,387.0,388.0,389.0,390.0,391.0,392.0,393.0,394.0,395.0,396.0,397.0,398.0,399.0,400.0,401.0,402.0,403.0,404.0,405.0,406.0,407.0,408.0,409.0,410.0,411.0,412.0,413.0,414.0,415.0,416.0,417.0,418.0,419.0,420.0,421.0,422.0,423.0,424.0,425.0,426.0,427.0,428.0,429.0,430.0,431.0,432.0,433.0,434.0,435.0,436.0,437.0,438.0,439.0,440.0,441.0,442.0,443.0,444.0,445.0,446.0,447.0,448.0,449.0,450.0,451.0,452.0,453.0,454.0,455.0,456.0,457.0,458.0,459.0,460.0,461.0,462.0,463.0,464.0,465.0,466.0,467.0,468.0,469.0,470.0,471.0,472.0,473.0,474.0,475.0,476.0,477.0,478.0,479.0,480.0,481.0,482.0,483.0,484.0,485.0,486.0,487.0,488.0,489.0,490.0,491.0,492.0,493.0,494.0,495.0,496.0,497.0,498.0,499.0,500.0,501.0,502.0,503.0,504.0,505.0,506.0,507.0,508.0,509.0,510.0,511.0,512.0,513.0,514.0,515.0,516.0,517.0,518.0,519.0,520.0,521.0,522.0,523.0,524.0,525.0,526.0,527.0,528.0,529.0,530.0,531.0,532.0,533.0,534.0,535.0,536.0,537.0,538.0,539.0,540.0,541.0,542.0,543.0,544.0,545.0,546.0,547.0,548.0,549.0,550.0,551.0,552.0,553.0,554.0,555.0,556.0,557.0,558.0,559.0,560.0,561.0,562.0,563.0,564.0,565.0,566.0,567.0,568.0,569.0,570.0,571.0,572.0,573.0,574.0,575.0,576.0,577.0,578.0,579.0,580.0,581.0,582.0,583.0,584.0,585.0,586.0,587.0,588.0,589.0,590.0,591.0,592.0,593.0,594.0,595.0,596.0,597.0,598.0,599.0,600.0,601.0,602.0,603.0,604.0,605.0,606.0,607.0,608.0,609.0,610.0,611.0,612.0,613.0,614.0,615.0,616.0,617.0,618.0,619.0,620.0,621.0,622.0,623.0,624.0,625.0,626.0,627.0,628.0,629.0,630.0,631.0,632.0,633.0,634.0,635.0,636.0,637.0,638.0,639.0,640.0,641.0,642.0,643.0,644.0,645.0,646.0,647.0,648.0,649.0,650.0,651.0,652.0,653.0,654.0,655.0,656.0,657.0,658.0,659.0,660.0,661.0,662.0,663.0,664.0,665.0,666.0,667.0,668.0,669.0,670.0,671.0,672.0,673.0,674.0,675.0,676.0,677.0,678.0,679.0,680.0,681.0,682.0,683.0,684.0,685.0,686.0,687.0,688.0,689.0,690.0,691.0,692.0,693.0,694.0,695.0,696.0,697.0,698.0,699.0,700.0,701.0,702.0,703.0,704.0,705.0,706.0,707.0,708.0,709.0,710.0,711.0,712.0,713.0,714.0,715.0,716.0,717.0,718.0,719.0,720.0,721.0,722.0,723.0,724.0,725.0,726.0,727.0,728.0,729.0,730.0,731.0,732.0,733.0,734.0,735.0,736.0,737.0,738.0,739.0,740.0,741.0,742.0,743.0,744.0,745.0,746.0,747.0,748.0,749.0,750.0,751.0,752.0,753.0,754.0,755.0,756.0,757.0,758.0,759.0,760.0,761.0,762.0,763.0,764.0,765.0,766.0,767.0,768.0,769.0,770.0,771.0,772.0,773.0,774.0,775.0,776.0,777.0,778.0,779.0,780.0,781.0,782.0,783.0,784.0,785.0,786.0,787.0,788.0,789.0,790.0,791.0,792.0,793.0,794.0,795.0,796.0,797.0,798.0,799.0,800.0,801.0,802.0,803.0,804.0,805.0,806.0,807.0,808.0,809.0,810.0,811.0,812.0,813.0,814.0,815.0,816.0,817.0,818.0,819.0,820.0,821.0,822.0,823.0,824.0,825.0,826.0,827.0,828.0,829.0,830.0,831.0,832.0,833.0,834.0,835.0,836.0,837.0,838.0,839.0,840.0,841.0,842.0,843.0,844.0,845.0,846.0,847.0,848.0,849.0,850.0,851.0,852.0,853.0,854.0,855.0,856.0,857.0,858.0,859.0,860.0,861.0,862.0,863.0,864.0,865.0,866.0,867.0,868.0,869.0,870.0,871.0,872.0,873.0,874.0,875.0,876.0,877.0,878.0,879.0,880.0,881.0,882.0,883.0,884.0,885.0,886.0,887.0,888.0,889.0,890.0,891.0,892.0,893.0,894.0,895.0,896.0,897.0,898.0,899.0,900.0,901.0,902.0,903.0,904.0,905.0,906.0,907.0,908.0,909.0,910.0,911.0,912.0,913.0,914.0,915.0,916.0,917.0,918.0,919.0,920.0,921.0,922.0,923.0,924.0,925.0,926.0,927.0,928.0,929.0,930.0,931.0,932.0,933.0,934.0,935.0,936.0,937.0,938.0,939.0,940.0,941.0,942.0,943.0,944.0,945.0,946.0,947.0,948.0,949.0,950.0,951.0,952.0,953.0,954.0,955.0,956.0,957.0,958.0,959.0,960.0,961.0,962.0,963.0,964.0,965.0,966.0,967.0,968.0,969.0,970.0,971.0,972.0,973.0,974.0,975.0,976.0,977.0,978.0,979.0,980.0,981.0,982.0,983.0,984.0,985.0,986.0,987.0,988.0,989.0,990.0,991.0,992.0,993.0,994.0,995.0,996.0,997.0,998.0,999.0,1000.0],"cos":[1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0],"sin":[-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]}
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/runner.jl
new file mode 100755
index 000000000000..7e3fb136cd7d
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/fixtures/julia/runner.jl
@@ -0,0 +1,72 @@
+#!/usr/bin/env julia
+#
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import JSON
+
+"""
+ gen( domain, name )
+
+Generate fixture data and write to file.
+
+# Arguments
+
+* `domain`: domain
+* `name::AbstractString`: output filename
+
+# Examples
+
+``` julia
+julia> x = linspace( -1000, 1000, 2001 );
+julia> gen( x, \"data.json\" );
+```
+"""
+function gen( domain, name )
+ x = Float32.( collect( domain ) );
+ s = sinpi.( x );
+ c = cospi.( x );
+
+ # Store data to be written to file as a collection:
+ data = Dict([
+ ("x", x),
+ ("sin", s),
+ ("cos", 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 );
+
+# Generate fixture data for integer values:
+x = range( -1000.0, stop = 1000.0, length = 2001 );
+gen( x, "integers.json" );
+
+# Generate fixture data for decimal values:
+x = range( -100.0, stop = 100.0, length = 2003 )
+gen( x, "decimals.json" );
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.assign.js b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.assign.js
new file mode 100644
index 000000000000..6a59172c9d35
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.assign.js
@@ -0,0 +1,210 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var tape = require( 'tape' );
+var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
+var PINF = require( '@stdlib/constants/float32/pinf' );
+var NINF = require( '@stdlib/constants/float32/ninf' );
+var powf = require( '@stdlib/math/base/special/powf' );
+var Float32Array = require( '@stdlib/array/float32' );
+var f32 = require( '@stdlib/number/float64/base/to-float32' );
+var ulpdiff = require( '@stdlib/number/float32/base/ulp-difference' );
+var sincospif = require( './../lib/assign.js' );
+
+
+// FIXTURES //
+
+var integers = require( './fixtures/julia/integers.json' );
+var decimals = require( './fixtures/julia/decimals.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof sincospif, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'if provided negative infinity, the function returns [NaN,NaN]', function test( t ) {
+ var out;
+ var y;
+
+ out = new Float32Array( 2 );
+ y = sincospif( NINF, out, 1, 0 );
+
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided positive infinity, the function returns [NaN,NaN]', function test( t ) {
+ var out;
+ var y;
+
+ out = new Float32Array( 2 );
+ y = sincospif( PINF, out, 1, 0 );
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided NaN, the function returns [NaN,NaN]', function test( t ) {
+ var out;
+ var y;
+
+ out = new Float32Array( 2 );
+ y = sincospif( NaN, out, 1, 0 );
+
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for integer input', function test( t ) {
+ var out;
+ var x;
+ var s;
+ var c;
+ var y;
+ var i;
+
+ x = integers.x;
+ s = integers.sin;
+ c = integers.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ out = new Float32Array( 2 );
+ y = sincospif( x[ i ], out, 1, 0 );
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( y[ 0 ], s[ i ], 'returns expected value' );
+ t.strictEqual( y[ 1 ], c[ i ], 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'if provided a value exceeding 2**24, the function returns [0,1]', function test( t ) {
+ var out;
+ var x;
+ var y;
+ var i;
+
+ x = powf( 2.0, 24 ) + 1.0;
+ for ( i = 0; i < 100; i++ ) {
+ out = new Float32Array( 2 );
+ y = sincospif( x + i, out, 1, 0 );
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( y[ 0 ], 0.0, 'returns expected value' );
+ t.strictEqual( y[ 1 ], 1.0, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for fractional part equal to 1/2', function test( t ) {
+ var out;
+ var x;
+ var y;
+ var i;
+
+ for ( i = -100; i <= 100; i++ ) {
+ x = 0.5 + i;
+ out = new Float32Array( 2 );
+ y = sincospif( x, out, 1, 0 );
+ t.strictEqual( y, out, 'returns output array' );
+ t.strictEqual( y[ 0 ], ( (i%2 === 0) ? 1.0 : -1.0 ), 'x: '+x+'. Expected: '+( (i%2 === 0) ? 1.0 : -1.0 ) );
+ t.strictEqual( y[ 1 ], 0.0, 'x: '+x+'. Expected: 0.0' );
+ }
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for decimal input', function test( t ) {
+ var out;
+ var x;
+ var y;
+ var i;
+ var s;
+ var c;
+
+ x = decimals.x;
+ s = decimals.sin;
+ c = decimals.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ x[ i ] = f32( x[ i ] );
+ s[ i ] = f32( s[ i ] );
+ c[ i ] = f32( c[ i ] );
+ out = new Float32Array( 2 );
+ y = sincospif( x[ i ], out, 1, 0 );
+ t.strictEqual( y, out, 'returns output array' );
+
+ t.strictEqual( ulpdiff( y[ 0 ], s[ i ] ) <= 1, true, 'returns expected sin value within 1 ulp. x: '+x[ i ]+'. Value: '+y[ 0 ]+'. Expected: '+s[ i ]+'.' );
+ t.strictEqual( ulpdiff( y[ 1 ], c[ i ] ) <= 1, true, 'returns expected cos value within 1 ulp. x: '+x[ i ]+'. Value: '+y[ 1 ]+'. Expected: '+c[ i ]+'.' );
+ }
+ t.end();
+});
+
+tape( 'the function supports providing an output typed array', function test( t ) {
+ var parts;
+ var out;
+
+ out = new Float32Array( 2 );
+ parts = sincospif( NaN, out, 1, 0 );
+
+ t.strictEqual( parts, out, 'returns output array' );
+ t.strictEqual( isnanf( parts[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( parts[ 1 ] ), true, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports specifying a stride', function test( t ) {
+ var out;
+ var val;
+
+ out = new Float32Array( 4 );
+ val = sincospif( NaN, out, 2, 0 );
+
+ t.strictEqual( val, out );
+ t.strictEqual( isnanf( out[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( val[ 1 ], 0, 'returns expected value' );
+ t.strictEqual( isnanf( out[ 2 ] ), true, 'returns expected value' );
+ t.strictEqual( val[ 3 ], 0, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports specifying an offset', function test( t ) {
+ var out;
+ var val;
+
+ out = new Float32Array( 4 );
+ val = sincospif( NaN, out, 2, 1 );
+
+ t.strictEqual( val, out, 'returns output array' );
+ t.strictEqual( val[ 0 ], 0, 'returns expected value' );
+ t.strictEqual( isnanf( val[ 1 ] ), true, 'returns expected value' );
+ t.strictEqual( val[ 2 ], 0, 'returns expected value' );
+ t.strictEqual( isnanf( val[ 3 ] ), true, 'returns expected value' );
+
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.js b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.js
new file mode 100644
index 000000000000..5a0ae3cbab45
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.js
@@ -0,0 +1,40 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var tape = require( 'tape' );
+var hasOwnProp = require( '@stdlib/assert/has-own-property' );
+var sincospif = require( './../lib' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof sincospif, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'attached to the main export is an `assign` method', function test( t ) {
+ t.strictEqual( hasOwnProp( sincospif, 'assign' ), true, 'has property' );
+ t.strictEqual( typeof sincospif.assign, 'function', 'has method' );
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.main.js b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.main.js
new file mode 100644
index 000000000000..7270c7359f95
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.main.js
@@ -0,0 +1,143 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var tape = require( 'tape' );
+var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
+var PINF = require( '@stdlib/constants/float32/pinf' );
+var NINF = require( '@stdlib/constants/float32/ninf' );
+var absf = require( '@stdlib/math/base/special/absf' );
+var powf = require( '@stdlib/math/base/special/powf' );
+var f32 = require( '@stdlib/number/float64/base/to-float32' );
+var EPS = require( '@stdlib/constants/float32/eps' );
+var sincospif = require( './../lib/main.js' );
+
+
+// FIXTURES //
+
+var integers = require( './fixtures/julia/integers.json' );
+var decimals = require( './fixtures/julia/decimals.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof sincospif, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'if provided negative infinity, the function returns `[NaN,NaN]`', function test( t ) {
+ var y = sincospif( NINF );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided positive infinity, the function returns `[NaN,NaN]`', function test( t ) {
+ var y = sincospif( PINF );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', function test( t ) {
+ var y = sincospif( NaN );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for integer input', function test( t ) {
+ var x;
+ var s;
+ var c;
+ var y;
+ var i;
+
+ x = integers.x;
+ s = integers.sin;
+ c = integers.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ y = sincospif( x[ i ] );
+ t.strictEqual( y[ 0 ], s[ i ], 'returns '+s[ i ] );
+ t.strictEqual( y[ 1 ], c[ i ], 'returns '+c[ i ] );
+ }
+ t.end();
+});
+
+tape( 'if provided a value exceeding 2**24, the function returns [0,1]', function test( t ) {
+ var x;
+ var y;
+ var i;
+
+ x = powf( 2.0, 24 ) + 1.0;
+ for ( i = 0; i < 100; i++ ) {
+ y = sincospif( x+i );
+ t.strictEqual( y[ 0 ], 0.0, 'returns expected value' );
+ t.strictEqual( y[ 1 ], 1.0, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function computes the sin(πx) and cos(πx) for fractional part equal to 1/2', function test( t ) {
+ var x;
+ var y;
+ var i;
+
+ for ( i = -100; i <= 100; i++ ) {
+ x = 0.5 + i;
+ y = sincospif( x );
+ t.strictEqual( y[ 0 ], ( (i%2 === 0) ? 1.0 : -1.0 ), 'x: '+x+'. Expected: '+( (i%2 === 0) ? 1.0 : -1.0 ) );
+ t.strictEqual( y[ 1 ], 0.0, 'x: '+x+'. Expected: 0.0' );
+ }
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for decimal input', function test( t ) {
+ var delta;
+ var x;
+ var y;
+ var i;
+ var s;
+ var c;
+
+ x = decimals.x;
+ s = decimals.sin;
+ c = decimals.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ y = sincospif( x[ i ] );
+
+ if ( y[ 0 ] === f32( s[ i ] ) ) {
+ t.strictEqual( y[ 0 ], f32( s[ i ] ), 'x: '+x[ i ]+'. Expected: '+s[ i ] );
+ } else {
+ delta = absf( y[ 0 ] - f32( s[ i ] ) );
+ t.ok( delta <= EPS, 'within tolerance. x: '+x[ i ]+'. Value: '+y[ 0 ]+'. Expected: '+s[ i ]+'. Tolerance: '+EPS+'.' );
+ }
+ if ( y[ 1 ] === f32( c[ i ] ) ) {
+ t.strictEqual( y[ 1 ], f32( c[ i ] ), 'x: '+x[ i ]+'. Expected: '+c[ i ] );
+ } else {
+ delta = absf( y[ 1 ] - f32( c[ i ] ) );
+ t.ok( delta <= EPS, 'within tolerance. x: '+x[ i ]+'. Value: '+y[ 1 ]+'. Expected: '+c[ i ]+'. Tolerance: '+EPS+'.' );
+ }
+ }
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.native.js
new file mode 100644
index 000000000000..f1ac6c86bcb5
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/sincospif/test/test.native.js
@@ -0,0 +1,153 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var resolve = require( 'path' ).resolve;
+var tape = require( 'tape' );
+var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
+var PINF = require( '@stdlib/constants/float32/pinf' );
+var NINF = require( '@stdlib/constants/float32/ninf' );
+var absf = require( '@stdlib/math/base/special/absf' );
+var powf = require( '@stdlib/math/base/special/powf' );
+var tryRequire = require( '@stdlib/utils/try-require' );
+var f32 = require( '@stdlib/number/float64/base/to-float32' );
+var EPS = require( '@stdlib/constants/float32/eps' );
+
+
+// VARIABLES //
+
+var sincospif = tryRequire( resolve( __dirname, './../lib/native.js' ) );
+var opts = {
+ 'skip': ( sincospif instanceof Error )
+};
+
+
+// FIXTURES //
+
+var integers = require( './fixtures/julia/integers.json' );
+var decimals = require( './fixtures/julia/decimals.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', opts, function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof sincospif, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'if provided negative infinity, the function returns `[NaN,NaN]`', opts, function test( t ) {
+ var y = sincospif( NINF );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided positive infinity, the function returns `[NaN,NaN]`', opts, function test( t ) {
+ var y = sincospif( PINF );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'if provided `NaN`, the function returns [NaN,NaN]', opts, function test( t ) {
+ var y = sincospif( NaN );
+ t.strictEqual( isnanf( y[ 0 ] ), true, 'returns expected value' );
+ t.strictEqual( isnanf( y[ 1 ] ), true, 'returns expected value' );
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for integer input', opts, function test( t ) {
+ var x;
+ var s;
+ var c;
+ var y;
+ var i;
+
+ x = integers.x;
+ s = integers.sin;
+ c = integers.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ y = sincospif( x[ i ] );
+ t.strictEqual( y[ 0 ], s[ i ], 'returns expected value' );
+ t.strictEqual( y[ 1 ], c[ i ], 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'if provided a value exceeding 2**24, the function returns [0,1]', opts, function test( t ) {
+ var x;
+ var y;
+ var i;
+
+ x = powf( 2.0, 24 ) + 1.0;
+ for ( i = 0; i < 100; i++ ) {
+ y = sincospif( x+i );
+ t.strictEqual( y[ 0 ], 0.0, 'returns expected value' );
+ t.strictEqual( y[ 1 ], 1.0, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function computes the sin(πx) and cos(πx) for fractional part equal to 1/2', opts, function test( t ) {
+ var x;
+ var y;
+ var i;
+
+ for ( i = -100; i <= 100; i++ ) {
+ x = 0.5 + i;
+ y = sincospif( x );
+ t.strictEqual( y[ 0 ], ( (i%2 === 0) ? 1.0 : -1.0 ), 'x: '+x+'. Expected: '+( (i%2 === 0) ? 1.0 : -1.0 ) );
+ t.strictEqual( y[ 1 ], 0.0, 'x: '+x+'. Expected: 0.0' );
+ }
+ t.end();
+});
+
+tape( 'the function computes sin(πx) and cos(πx) for decimal input', opts, function test( t ) {
+ var delta;
+ var x;
+ var y;
+ var i;
+ var s;
+ var c;
+
+ x = decimals.x;
+ s = decimals.sin;
+ c = decimals.cos;
+ for ( i = 0; i < x.length; i++ ) {
+ y = sincospif( x[ i ] );
+
+ if ( y[ 0 ] === f32( s[ i ] ) ) {
+ t.strictEqual( y[ 0 ], f32( s[ i ] ), 'x: '+x[ i ]+'. Expected: '+s[ i ] );
+ } else {
+ delta = absf( y[ 0 ] - f32( s[ i ] ) );
+ t.ok( delta <= EPS, 'within tolerance. x: '+x[ i ]+'. Value: '+y[ 0 ]+'. Expected: '+s[ i ]+'. Tolerance: '+EPS+'.');
+ }
+
+ if ( y[ 1 ] === f32( c[ i ] ) ) {
+ t.strictEqual( y[ 1 ], f32( c[ i ] ), 'x: '+x[ i ]+'. Expected: '+c[ i ] );
+ } else {
+ delta = absf( y[ 1 ] - f32( c[ i ] ) );
+ t.ok( delta <= EPS, 'within tolerance. x: '+x[ i ]+'. Value: '+y[ 1 ]+'. Expected: '+c[ i ]+'. Tolerance: '+EPS+'.');
+ }
+ }
+ t.end();
+});