diff --git a/lib/node_modules/@stdlib/math/base/special/sind/README.md b/lib/node_modules/@stdlib/math/base/special/sind/README.md new file mode 100644 index 000000000000..b9ed22d673f0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/README.md @@ -0,0 +1,185 @@ + + +# sind + +> Computes the [sine][trigonometric-functions] of an angle measured in degrees. + +
+ +
+ +
+ +## Usage + +```javascript +var sind = require( '@stdlib/math/base/special/sind' ); +``` + +#### sind( x ) + +Computes the [sine][trigonometric-functions] of `x` (in degrees). + +```javascript +var v = sind( 0.0 ); +// returns 0.0 + +v = sind( 30.0 ); +// returns ~0.5 + +v = sind( 90.0 ); +// returns 1.0 + +v = sind( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var linspace = require( '@stdlib/array/base/linspace' ); +var sind = require( '@stdlib/math/base/special/sind' ); + +var x = linspace( -180, 180, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( sind( x[ i ] ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/sind.h" +``` + +#### stdlib_base_sind( x ) + +Computes the [sine][trigonometric-functions] of `x` (in degrees). + +```c +double out = stdlib_base_sind( 0.0 ); +// returns 0.0 + +out = stdlib_base_sind( 30.0 ); +// returns ~0.5 +``` + +The function accepts the following arguments: + +- **x**: `[in] double` input value. + +```c +double stdlib_base_sind( const double x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/sind.h" +#include + +int main( void ) { + const double x[] = { 0.0, 30.0, 45.0, 60.0, 90.0 }; + + double y; + int i; + for ( i = 0; i < 5; i++ ) { + y = stdlib_base_sind( x[ i ] ); + printf( "sind(%lf) = %lf\n", x[ i ], y ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.js new file mode 100644 index 000000000000..3eb8f3a2b326 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var sind = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, -5.0, 5.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = sind( x[ i % x.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.native.js new file mode 100644 index 000000000000..5aeece1f2cb9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/benchmark.native.js @@ -0,0 +1,61 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var sind = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( sind instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, -5.0, 5.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = sind( x[ i % x.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/Makefile new file mode 100644 index 000000000000..a4bd7b38fd74 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..53a99716f6cb --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/benchmark/c/native/benchmark.c @@ -0,0 +1,136 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/sind.h" +#include +#include +#include +#include +#include + +#define NAME "sind" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static double rand_double( void ) { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double x[ 100 ]; + double elapsed; + double y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 10.0 * rand_double() ) - 5.0; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_sind( x[ i%100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/binding.gyp b/lib/node_modules/@stdlib/math/base/special/sind/binding.gyp new file mode 100644 index 000000000000..68a1ca11d160 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/sind/docs/repl.txt new file mode 100644 index 000000000000..bb893e7553e8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/docs/repl.txt @@ -0,0 +1,28 @@ + +{{alias}}( x ) + Computes the sine of an angle measured in degrees. + + Parameters + ---------- + x: number + Input value (in degrees). + + Returns + ------- + y: number + Sine. + + Examples + -------- + > var y = {{alias}}( 0.0 ) + 0.0 + > y = {{alias}}( 90.0 ) + 1.0 + > y = {{alias}}( 30.0 ) + ~0.5 + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/sind/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/sind/docs/types/index.d.ts new file mode 100644 index 000000000000..cd81932bc6b5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/docs/types/index.d.ts @@ -0,0 +1,48 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Computes the sine of an angle measured in degrees. +* +* @param x - input value (in degrees) +* @returns sine +* +* @example +* var v = sind( 0.0 ); +* // returns 0.0 +* +* @example +* var v = sind( 30.0 ); +* // returns ~0.5 +* +* @example +* var v = sind( 90.0); +* // returns 1.0 +* +* @example +* var v = sind( NaN ); +* // returns NaN +*/ +declare function sind( x: number ): number; + + +// EXPORTS // + +export = sind; diff --git a/lib/node_modules/@stdlib/math/base/special/sind/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/sind/docs/types/test.ts new file mode 100644 index 000000000000..9ea0ec352091 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import sind = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + sind( 60.0 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + sind( true ); // $ExpectError + sind( false ); // $ExpectError + sind( null ); // $ExpectError + sind( undefined ); // $ExpectError + sind( '5' ); // $ExpectError + sind( [] ); // $ExpectError + sind( {} ); // $ExpectError + sind( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + sind(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/sind/examples/c/Makefile new file mode 100644 index 000000000000..25ced822f96a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/sind/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/sind/examples/c/example.c new file mode 100644 index 000000000000..bc5b0b729f72 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/examples/c/example.c @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/sind.h" +#include + +int main( void ) { + const double x[] = { 0.0, 30.0, 45.0, 60.0, 90.0 }; + + double y; + int i; + for ( i = 0; i < 5; i++ ) { + y = stdlib_base_sind( x[ i ] ); + printf( "sind(%lf) = %lf\n", x[ i ], y ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/examples/index.js b/lib/node_modules/@stdlib/math/base/special/sind/examples/index.js new file mode 100644 index 000000000000..3308ef5498b1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/examples/index.js @@ -0,0 +1,29 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var linspace = require( '@stdlib/array/base/linspace' ); +var sind = require( './../lib' ); + +var x = linspace( -180, 180, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( 'sind(%d) = %d', x[ i ], sind( x[ i ] ) ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/include.gypi b/lib/node_modules/@stdlib/math/base/special/sind/include.gypi new file mode 100644 index 000000000000..ecfaf82a3279 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + '=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "degree", + "cot", + "cotd", + "tan", + "tangent", + "sin", + "sine", + "sind", + "cos", + "cosine", + "trig", + "trigonometry" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/src/Makefile b/lib/node_modules/@stdlib/math/base/special/sind/src/Makefile new file mode 100644 index 000000000000..7733b6180cb4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/sind/src/addon.c b/lib/node_modules/@stdlib/math/base/special/sind/src/addon.c new file mode 100644 index 000000000000..fd050fe425f1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/src/addon.c @@ -0,0 +1,23 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/sind.h" +#include "stdlib/math/base/napi/unary.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_sind ) diff --git a/lib/node_modules/@stdlib/math/base/special/sind/src/main.c b/lib/node_modules/@stdlib/math/base/special/sind/src/main.c new file mode 100644 index 000000000000..ddbf0b69a657 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/src/main.c @@ -0,0 +1,69 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/sind.h" +#include "stdlib/math/base/special/kernel_sin.h" +#include "stdlib/math/base/special/kernel_cos.h" +#include "stdlib/math/base/special/deg2rad.h" +#include "stdlib/math/base/special/signum.h" +#include "stdlib/math/base/special/abs.h" +#include "stdlib/math/base/special/fmod.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/assert/is_infinite.h" + +/** +* Computes the sine of an angle measured in degrees. +* +* @param x input value (in degrees) +* @return sine +* +* @example +* double y = stdlib_base_sind( 0.0 ); +* // returns 0.0 +*/ +double stdlib_base_sind( const double x ) { + double arx; + double rx; + + if ( stdlib_base_is_infinite( x ) || stdlib_base_is_nan( x ) ) { + return 0.0 / 0.0; // NaN + } + + rx = stdlib_base_fmod( x, 360.0 ); + arx = stdlib_base_abs( rx ); + + if ( rx == 0.0 ) { + return 0.0; + } + if ( arx < 45.0 ) { + return stdlib_base_kernel_sin( stdlib_base_deg2rad( rx ), 0.0 ); + } + if ( arx <= 135.0 ) { + return stdlib_base_signum( rx ) * stdlib_base_kernel_cos( stdlib_base_deg2rad( 90.0-arx ), 0.0 ); + } + if ( arx == 180.0 ) { + return stdlib_base_signum( rx ) * 0.0; + } + if ( arx < 225.0 ) { + return stdlib_base_kernel_sin( stdlib_base_deg2rad( ( 180.0-arx )*stdlib_base_signum( rx ) ), 0.0 ); + } + if ( arx <= 315.0 ) { + return -stdlib_base_signum( rx ) * stdlib_base_kernel_cos( stdlib_base_deg2rad( 270.0-arx ), 0.0 ); + } + return stdlib_base_kernel_sin( stdlib_base_deg2rad( rx-( 360.0*stdlib_base_signum( rx ) ) ), 0.0 ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/negative.json b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/negative.json new file mode 100644 index 000000000000..ab443224b48a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/negative.json @@ -0,0 +1 @@ +{"expected":[-0.0,0.006289433316067501,0.01257861783874155,0.018867304784467333,0.02515524538937584,0.031442190919120344,0.037727892678717664,0.0440121020223819,0.050294570363366174,0.05657504918379209,0.06285329004448242,0.06912904459478476,0.07540206458240156,0.08167210186320636,0.08793890841106172,0.09420223632762646,0.10046183785216792,0.10671746537135862,0.11296887142907329,0.11921580873617356,0.125458030180296,0.13169528883562331,0.13792733797265402,0.14415393106795849,0.15037482181393666,0.15658976412855738,0.16279851216509478,0.16900082032184927,0.17519644325186892,0.18138513587265076,0.18756665337583756,0.19374075123689782,0.19990718522480452,0.20606571141169225,0.2122160861825083,0.2183580662446456,0.22449140863757253,0.23061587074243986,0.23673121029168015,0.2428371853785873,0.24893355446689155,0.2550200764003101,0.26109651041208864,0.26716261613452147,0.2732181536084658,0.2792628832928297,0.2852965660740502,0.29131896327554735,0.2973298366671722,0.3033289484746263,0.3093160613888693,0.3152909385755026,0.3212533436841436,0.3272030408577713,0.3331397947420579,0.33906337049467533,0.3449735337945904,0.35087005085133016,0.3567526884142321,0.362621213781667,0.36847539481024977,0.3743149999240185,0.38013979812359705,0.38594955899532885,0.3917440527203972,0.3975230500839126,0.40328632248398155,0.409033641940746,0.4147647811054069,0.42047951326921396,0.4261776123724356,0.43185885301329746,0.43752301045690417,0.4431698606441257,0.4487991802004625,0.4544107464448775,0.46000433739861085,0.46557973179395673,0.47113670908301813,0.4766750494464275,0.4821945338020476,0.48769494381363415,0.49317606189947466,0.49863767124099156,0.5040795557913245,0.5095015002838728,0.5149032902408129,0.520284711981579,0.5256455526313205,0.53098560012932,0.5363046432373827,0.5416024715481901,0.5468788754936272,0.5521336463530698,0.5573665762616424,0.5625774582184371,0.5677660860947077,0.5729322546420196,0.5780757595003709,0.5831963972062734,0.5882939652008049,0.5933682618376199,0.5984190863909271,0.6034462390634262,0.6084495209942169,0.6134287342666614,0.6183836819162155,0.6233141679382167,0.6282199972956422,0.6331009759268209,0.6379569107531121,0.6427876096865394,0.6475928816373938,0.6523725365217914,0.6571263852691888,0.661854239829868,0.6665559131823718,0.6712312193409031,0.6758799733626792,0.6805019913552524,0.6850970904837806,0.6896650889782623,0.6942058061407227,0.6987190623523674,0.7032046790806837,0.7076624788865048,0.7120922854310257,0.7164939234827832,0.7208672189245848,0.7252119987603977,0.7295280911221885,0.7338153252767277,0.7380735316323388,0.7423025417456096,0.7465021883280522,0.7506723052527243,0.7548127275607986,0.7589232914680892,0.7630038343715274,0.7670541948555987,0.7710742126987246,0.7750637288796018,0.7790225855834912,0.782950626208463,0.7868476953715898,0.790713638915094,0.7945483039124438,0.7983515386744059,0.8021231927550436,0.8058631169576693,0.8095711633407441,0.813247185223733,0.8168910371929051,0.8205025751070877,0.8240816561033645,0.8276281386027311,0.8311418823156934,0.8346227482478176,0.8380705987052266,0.8414852973000501,0.8448667089558176,0.8482146999128025,0.8515291377333114,0.854809891306926,0.8580568308556873,0.861269827939231,0.864448755459865,0.8675934876676012,0.8707039001651273,0.8737798699127287,0.8768212752331536,0.8798279958164293,0.8827999127246194,0.8857369083965295,0.8886388666523559,0.8915056726982838,0.8943372131310271,0.8971333759423142,0.8998940505233183,0.902619127669034,0.9053084995825965,0.9079620598795464,0.9105797035920357,0.9131613271729833,0.9157068285001689,0.9182161068802741,0.9206890630528631,0.9231255991943123,0.9255256189216778,0.9278890272965095,0.9302157308286043,0.9325056374797074,0.9347586566671509,0.9369746992674381,0.9391536776197678,0.9412955055295031,0.9434000982715811,0.9454673725938635,0.9474972467204298,0.9494896403548133,0.9514444746831765,0.9533616723774294,0.9552411575982869,0.9570828559982708,0.9588866947246496,0.9606526024223211,0.9623805092366335,0.9640703468161506,0.9657220483153545,0.9673355483972903,0.9689107832361495,0.970447690519797,0.9719462094522335,0.9734062807560028,0.9748278466745343,0.9762108509744295,0.9775552389476861,0.9788609574138616,0.9801279547221766,0.9813561807535595,0.9825455869226276,0.9836961261796102,0.984807753012208,0.9858804234473958,0.9869140950531601,0.9879087269401781,0.9888642797634357,0.9897807157237835,0.9906579985694318,0.9914960935973848,0.9922949676548137,0.9930545891403677,0.9937749280054242,0.9944559557552776,0.995097645450266,0.9956999717068377,0.9962629106985544,0.9967864401570343,0.9972705393728327,0.9977151891962615,0.9981203720381463,0.9984860718705225,0.9988122742272691,0.9990989662046814,0.9993461364619809,0.9995537752217639,0.9997218742703887,0.9998504269583004,0.9999394282002937,0.999988874475714,0.9999987638285974,0.9999690958677468,0.9998998717667489,0.9997910942639262,0.9996427676622299,0.9994548978290693,0.9992274921960794,0.9989605597588274,0.9986541110764564,0.9983081582712682,0.9979227150282433,0.9974977965944997,0.9970334197786902,0.9965296029503368,0.9959863660391043,0.9954037305340125,0.9947817194825853,0.9941203574899393,0.9934196707178107,0.9926796868835203,0.991900435258877,0.9910819466690197,0.9902242534911985,0.9893273896534935,0.9883913906334728,0.9874162934567889,0.9864021366957145,0.9853489604676164,0.9842568064333687,0.9831257177957043,0.9819557392975066,0.9807469172200396,0.9794992993811165,0.9782129351332085,0.9768878753614925,0.9755241724818386,0.9741218804387363,0.9726810547031601,0.9712017522703762,0.9696840316576876,0.9681279529021188,0.9665335775580414,0.9649009686947391,0.9632301908939126,0.9615213102471255,0.959774394353189,0.9579895123154889,0.956166734739251,0.9543061337287488,0.9524077828844514,0.9504717573001116,0.9484981335597952,0.9464869897348525,0.9444384053808289,0.9423524615343187,0.9402292407097589,0.9380688268961659,0.935871305553812,0.9336367636108462,0.9313652894598542,0.9290569729543628,0.926711905405285,0.9243301795773085,0.9219118896852251,0.9194571313902055,0.9169660017960134,0.9144385994451658,0.9118750243150338,0.9092753778138886,0.9066397627768893,0.9039682834620162,0.9012610455459447,0.8985181561198674,0.8957397236852553,0.8929258581495686,0.8900766708219059,0.8871922744086042,0.8842727830087778,0.8813183121098072,0.8783289785827687,0.8753049006778131,0.8722461980194863,0.869152991601999,0.8660254037844386,0.862863558285931,0.8596675801807452,0.8564375958933458,0.8531737331933928,0.8498761211906863,0.8465448903300605,0.8431801723862222,0.8397821004585397,0.836350808965776,0.8328864336407735,0.8293891115250825,0.8258589809635432,0.8222961815988092,0.8187008543658281,0.8150731414862621,0.8114131864628658,0.8077211340738066,0.8039971303669405,0.8002413226540319,0.7964538595049291,0.7926348907416847,0.7887845674326315,0.7849030418864044,0.7809904676459175,0.7770469994822884,0.7730727933887177,0.7690680065743166,0.76503279745789,0.7609673256616675,0.7568717520049918,0.7527462384979546,0.7485909483349906,0.7444060458884189,0.7401916967019436,0.7359480674841032,0.7316753261016784,0.7273736415730485,0.7230431840615094,0.7186841248685382,0.714296636427021,0.7098808922944284,0.7054370671459532,0.7009653367675973,0.6964658780492218,0.6919388689775461,0.6873844886291104,0.682802917163189,0.6781943358146665,0.6735589268868658,0.6688968737443396,0.664208360805614,0.659493573535896,0.6547526984397349,0.6499859230536468,0.6451934359386933,0.640375426673026,0.635532085844384,0.6306636050425573,0.6257701768518058,0.6208519948432437,0.6159092535671795,0.6109421485454231,0.605950876263548,0.600935634163123,0.5958966206338976,0.5908340350059581,0.5857480775418393,0.5806389494286057,0.5755068527698899,0.5703519905779015,0.5651745667653927,0.5599747861375955,0.554752854384117,0.5495089780708061,0.544243364631579,0.5389562223602166,0.5336477604021223,0.5283181887460516,0.5229677182158023,0.5175965604618785,0.5122049279531142,0.5067930339682727,0.5013610925876059,0.49590931868438964,0.4904379279164205,0.4849471367174879,0.4794371622888097,0.47390822259044335,0.4683605363326605,0.46279432296729917,0.45720980267907907,0.4516071963768952,0.44598672568507597,0.4403486129346195,0.4346930811543956,0.42902035406232664,0.4233306560565344,0.41762421220646717,0.41190124824399266,0.4061619905544726,0.40040666616780385,0.39463550274944104,0.38884872859138747,0.3830465726031679,0.3772292643027699,0.37139703380756833,0.365550111825219,0.35968872964453596,0.35381311912633867,0.3479235126942841,0.3420201433256687,0.33610324454221585,0.3301730504008368,0.3242297954843707,0.31827371489230855,0.31230504423148925,0.30632401960678346,0.30033087761175026,0.2943258553192818,0.2883091902722216,0.2822811204739717,0.27624188437907415,0.2701917208837821,0.26413086931660607,0.2580595694288502,0.25197806138512496,0.2458865857538503,0.23978538349773576,0.23367469596425247,0.22755476487608217,0.22142583232155919,0.21528814074509012,0.20914193293756742,0.20298745202676113,0.19682494146770546,0.19065464503306437,0.1844768068034924,0.17829167115797576,0.1720994827641691,0.16590048656871317,0.15969492778754948,0.15348305189621608,0.14726510462014122,0.14104133192491916,0.13481198000658431,0.1285772952818685,0.1223375243784573,0.11609291412523007,0.1098437115425001,0.10359016383223915,0.09733251836830271,0.09107102268664066,0.08480592447550929,0.07853747156566947,0.0722659119205871,0.06599149362662035,0.05971446488320999,0.05343507399305728,0.047153569352305774,0.04087019944071144,0.03458521281181742,0.028298858083117957,0.02201138392622768,0.01572303905704087,0.009434072225896876,0.0031447322077362352,-0.0031447322077362352,-0.009434072225896876,-0.01572303905704087,-0.02201138392622768,-0.028298858083117957,-0.03458521281181742,-0.04087019944071144,-0.047153569352305774,-0.05343507399305728,-0.05971446488320999,-0.06599149362662035,-0.0722659119205871,-0.07853747156566947,-0.08480592447550929,-0.09107102268664066,-0.09733251836830271,-0.10359016383223915,-0.1098437115425001,-0.11609291412523007,-0.1223375243784573,-0.1285772952818685,-0.13481198000658431,-0.14104133192491916,-0.14726510462014122,-0.15348305189621608,-0.15969492778754948,-0.16590048656871317,-0.1720994827641691,-0.17829167115797576,-0.1844768068034924,-0.19065464503306437,-0.19682494146770546,-0.20298745202676113,-0.20914193293756742,-0.21528814074509012,-0.22142583232155919,-0.22755476487608217,-0.23367469596425247,-0.23978538349773576,-0.2458865857538503,-0.25197806138512496,-0.2580595694288502,-0.26413086931660607,-0.2701917208837821,-0.27624188437907415,-0.2822811204739717,-0.2883091902722216,-0.2943258553192818,-0.30033087761175026,-0.30632401960678346,-0.31230504423148925,-0.31827371489230855,-0.3242297954843707,-0.3301730504008368,-0.33610324454221585,-0.3420201433256687,-0.3479235126942841,-0.35381311912633867,-0.35968872964453596,-0.365550111825219,-0.37139703380756833,-0.3772292643027699,-0.3830465726031679,-0.38884872859138747,-0.39463550274944104,-0.40040666616780385,-0.4061619905544726,-0.41190124824399266,-0.41762421220646717,-0.4233306560565344,-0.42902035406232664,-0.4346930811543956,-0.4403486129346195,-0.44598672568507597,-0.4516071963768952,-0.45720980267907907,-0.46279432296729917,-0.4683605363326605,-0.47390822259044335,-0.4794371622888097,-0.4849471367174879,-0.4904379279164205,-0.49590931868438964,-0.5013610925876059,-0.5067930339682727,-0.5122049279531142,-0.5175965604618785,-0.5229677182158023,-0.5283181887460516,-0.5336477604021223,-0.5389562223602166,-0.544243364631579,-0.5495089780708061,-0.554752854384117,-0.5599747861375955,-0.5651745667653927,-0.5703519905779015,-0.5755068527698899,-0.5806389494286057,-0.5857480775418393,-0.5908340350059581,-0.5958966206338976,-0.600935634163123,-0.605950876263548,-0.6109421485454231,-0.6159092535671795,-0.6208519948432437,-0.6257701768518058,-0.6306636050425573,-0.635532085844384,-0.640375426673026,-0.6451934359386933,-0.6499859230536468,-0.6547526984397349,-0.659493573535896,-0.664208360805614,-0.6688968737443396,-0.6735589268868658,-0.6781943358146665,-0.682802917163189,-0.6873844886291104,-0.6919388689775461,-0.6964658780492218,-0.7009653367675973,-0.7054370671459532,-0.7098808922944284,-0.714296636427021,-0.7186841248685382,-0.7230431840615094,-0.7273736415730485,-0.7316753261016784,-0.7359480674841032,-0.7401916967019436,-0.7444060458884189,-0.7485909483349906,-0.7527462384979546,-0.7568717520049918,-0.7609673256616675,-0.76503279745789,-0.7690680065743166,-0.7730727933887177,-0.7770469994822884,-0.7809904676459175,-0.7849030418864044,-0.7887845674326315,-0.7926348907416848,-0.7964538595049291,-0.8002413226540321,-0.8039971303669405,-0.8077211340738069,-0.8114131864628658,-0.8150731414862622,-0.8187008543658281,-0.8222961815988095,-0.8258589809635432,-0.8293891115250828,-0.8328864336407735,-0.8363508089657762,-0.8397821004585397,-0.8431801723862224,-0.8465448903300605,-0.8498761211906865,-0.8531737331933928,-0.8564375958933459,-0.8596675801807452,-0.8628635582859311,-0.8660254037844386,-0.8691529916019989,-0.8722461980194863,-0.875304900677813,-0.8783289785827687,-0.881318312109807,-0.8842727830087778,-0.887192274408604,-0.8900766708219059,-0.8929258581495685,-0.8957397236852553,-0.8985181561198673,-0.9012610455459447,-0.9039682834620161,-0.9066397627768893,-0.9092753778138885,-0.9118750243150338,-0.9144385994451657,-0.9169660017960134,-0.9194571313902055,-0.9219118896852251,-0.9243301795773083,-0.926711905405285,-0.9290569729543627,-0.9313652894598542,-0.9336367636108461,-0.935871305553812,-0.9380688268961658,-0.9402292407097589,-0.9423524615343186,-0.9444384053808289,-0.9464869897348525,-0.9484981335597952,-0.9504717573001115,-0.9524077828844514,-0.9543061337287488,-0.956166734739251,-0.9579895123154889,-0.959774394353189,-0.9615213102471255,-0.9632301908939126,-0.964900968694739,-0.9665335775580414,-0.9681279529021187,-0.9696840316576876,-0.9712017522703762,-0.97268105470316,-0.9741218804387363,-0.9755241724818386,-0.9768878753614925,-0.9782129351332084,-0.9794992993811165,-0.9807469172200396,-0.9819557392975067,-0.9831257177957042,-0.9842568064333687,-0.9853489604676166,-0.9864021366957146,-0.9874162934567889,-0.9883913906334728,-0.9893273896534935,-0.9902242534911986,-0.9910819466690196,-0.991900435258877,-0.9926796868835203,-0.9934196707178107,-0.9941203574899393,-0.9947817194825853,-0.9954037305340125,-0.9959863660391044,-0.9965296029503368,-0.9970334197786902,-0.9974977965944997,-0.9979227150282433,-0.9983081582712682,-0.9986541110764564,-0.9989605597588275,-0.9992274921960794,-0.9994548978290693,-0.9996427676622299,-0.9997910942639262,-0.9998998717667489,-0.9999690958677468,-0.9999987638285974,-0.999988874475714,-0.9999394282002937,-0.9998504269583004,-0.9997218742703887,-0.9995537752217638,-0.9993461364619809,-0.9990989662046814,-0.9988122742272691,-0.9984860718705224,-0.9981203720381463,-0.9977151891962615,-0.9972705393728327,-0.9967864401570343,-0.9962629106985544,-0.9956999717068377,-0.995097645450266,-0.9944559557552776,-0.9937749280054242,-0.9930545891403677,-0.9922949676548137,-0.9914960935973848,-0.9906579985694317,-0.9897807157237835,-0.9888642797634357,-0.9879087269401781,-0.98691409505316,-0.9858804234473958,-0.984807753012208,-0.9836961261796101,-0.9825455869226277,-0.9813561807535595,-0.9801279547221766,-0.9788609574138615,-0.9775552389476861,-0.9762108509744296,-0.9748278466745343,-0.9734062807560027,-0.9719462094522336,-0.970447690519797,-0.9689107832361495,-0.9673355483972902,-0.9657220483153547,-0.9640703468161507,-0.9623805092366335,-0.9606526024223211,-0.9588866947246498,-0.9570828559982708,-0.9552411575982869,-0.9533616723774293,-0.9514444746831767,-0.9494896403548134,-0.9474972467204298,-0.9454673725938635,-0.9434000982715812,-0.9412955055295033,-0.9391536776197678,-0.936974699267438,-0.9347586566671511,-0.9325056374797075,-0.9302157308286043,-0.9278890272965093,-0.925525618921678,-0.9231255991943124,-0.9206890630528631,-0.918216106880274,-0.9157068285001692,-0.9131613271729834,-0.9105797035920357,-0.9079620598795463,-0.9053084995825967,-0.9026191276690341,-0.8998940505233183,-0.8971333759423141,-0.8943372131310272,-0.8915056726982838,-0.8886388666523558,-0.8857369083965294,-0.8827999127246197,-0.8798279958164293,-0.8768212752331536,-0.8737798699127285,-0.8707039001651276,-0.8675934876676012,-0.864448755459865,-0.8612698279392308,-0.8580568308556875,-0.854809891306926,-0.8515291377333113,-0.8482146999128023,-0.8448667089558178,-0.8414852973000502,-0.8380705987052265,-0.8346227482478173,-0.8311418823156936,-0.8276281386027312,-0.8240816561033644,-0.8205025751070875,-0.8168910371929055,-0.813247185223733,-0.809571163340744,-0.8058631169576691,-0.8021231927550438,-0.7983515386744059,-0.7945483039124437,-0.7907136389150937,-0.78684769537159,-0.7829506262084631,-0.7790225855834912,-0.7750637288796016,-0.7710742126987248,-0.7670541948555988,-0.7630038343715273,-0.7589232914680889,-0.7548127275607989,-0.7506723052527243,-0.7465021883280519,-0.7423025417456093,-0.7380735316323389,-0.7338153252767277,-0.7295280911221884,-0.7252119987603973,-0.720867218924585,-0.7164939234827832,-0.7120922854310254,-0.7076624788865044,-0.7032046790806838,-0.6987190623523674,-0.6942058061407226,-0.6896650889782618,-0.6850970904837809,-0.6805019913552524,-0.6758799733626791,-0.6712312193409028,-0.666555913182372,-0.661854239829868,-0.6571263852691885,-0.652372536521791,-0.647592881637394,-0.6427876096865394,-0.6379569107531119,-0.6331009759268214,-0.6282199972956424,-0.6233141679382167,-0.6183836819162154,-0.6134287342666618,-0.6084495209942171,-0.6034462390634262,-0.5984190863909269,-0.5933682618376204,-0.5882939652008051,-0.5831963972062734,-0.5780757595003707,-0.5729322546420199,-0.5677660860947079,-0.5625774582184371,-0.5573665762616422,-0.5521336463530703,-0.5468788754936275,-0.5416024715481901,-0.5363046432373825,-0.5309856001293204,-0.5256455526313207,-0.520284711981579,-0.5149032902408127,-0.5095015002838732,-0.5040795557913247,-0.4986376712409915,-0.4931760618994744,-0.48769494381363454,-0.48219453380204774,-0.47667504944642747,-0.47113670908301786,-0.4655797317939571,-0.460004337398611,-0.45441074644487744,-0.44879918020046217,-0.4431698606441261,-0.43752301045690434,-0.4318588530132974,-0.42617761237243534,-0.4204795132692143,-0.414764781105407,-0.4090336419407459,-0.4032863224839812,-0.3975230500839129,-0.3917440527203973,-0.38594955899532873,-0.3801397981235967,-0.3743149999240189,-0.3684753948102499,-0.3626212137816669,-0.35675268841423174,-0.3508700508513305,-0.3449735337945905,-0.3390633704946752,-0.33313979474205757,-0.32720304085777163,-0.3212533436841437,-0.31529093857550244,-0.3093160613888689,-0.30332894847462666,-0.29732983666717233,-0.29131896327554724,-0.2852965660740498,-0.2792628832928301,-0.27321815360846585,-0.2671626161345213,-0.26109651041208826,-0.25502007640031044,-0.24893355446689164,-0.24283718537858717,-0.23673121029167976,-0.2306158707424402,-0.2244914086375726,-0.21835806624464546,-0.2122160861825079,-0.20606571141169255,-0.19990718522480458,-0.19374075123689763,-0.18756665337583714,-0.18138513587265107,-0.17519644325186898,-0.16900082032184907,-0.16279851216509433,-0.15658976412855768,-0.15037482181393672,-0.14415393106795832,-0.13792733797265358,-0.13169528883562362,-0.12545803018029605,-0.11921580873617336,-0.11296887142907285,-0.1067174653713589,-0.10046183785216795,-0.09420223632762625,-0.08793890841106125,-0.08167210186320664,-0.0754020645824016,-0.06912904459478454,-0.06285329004448195,-0.05657504918379236,-0.05029457036336619,-0.04401210202238166,-0.03772789267871718,-0.03144219091912061,-0.025155245389375847,-0.018867304784467093,-0.01257861783874106,-0.006289433316067751,0.0],"x":[-360.0,-359.63963963963965,-359.27927927927925,-358.9189189189189,-358.55855855855856,-358.1981981981982,-357.8378378378378,-357.47747747747746,-357.1171171171171,-356.7567567567568,-356.39639639639637,-356.036036036036,-355.6756756756757,-355.31531531531533,-354.9549549549549,-354.5945945945946,-354.23423423423424,-353.8738738738739,-353.5135135135135,-353.15315315315314,-352.7927927927928,-352.43243243243245,-352.07207207207205,-351.7117117117117,-351.35135135135135,-350.990990990991,-350.6306306306306,-350.27027027027026,-349.9099099099099,-349.54954954954957,-349.18918918918916,-348.8288288288288,-348.4684684684685,-348.1081081081081,-347.7477477477477,-347.3873873873874,-347.02702702702703,-346.6666666666667,-346.3063063063063,-345.94594594594594,-345.5855855855856,-345.22522522522524,-344.86486486486484,-344.5045045045045,-344.14414414414415,-343.7837837837838,-343.4234234234234,-343.06306306306305,-342.7027027027027,-342.34234234234236,-341.98198198198196,-341.6216216216216,-341.26126126126127,-340.9009009009009,-340.5405405405405,-340.1801801801802,-339.8198198198198,-339.4594594594595,-339.0990990990991,-338.73873873873873,-338.3783783783784,-338.01801801801804,-337.65765765765764,-337.2972972972973,-336.93693693693695,-336.5765765765766,-336.2162162162162,-335.85585585585585,-335.4954954954955,-335.13513513513516,-334.77477477477476,-334.4144144144144,-334.05405405405406,-333.6936936936937,-333.3333333333333,-332.97297297297297,-332.6126126126126,-332.2522522522523,-331.8918918918919,-331.5315315315315,-331.1711711711712,-330.81081081081084,-330.45045045045043,-330.0900900900901,-329.72972972972974,-329.3693693693694,-329.009009009009,-328.64864864864865,-328.2882882882883,-327.92792792792795,-327.56756756756755,-327.2072072072072,-326.84684684684686,-326.4864864864865,-326.1261261261261,-325.76576576576576,-325.4054054054054,-325.0450450450451,-324.68468468468467,-324.3243243243243,-323.963963963964,-323.60360360360363,-323.2432432432432,-322.8828828828829,-322.52252252252254,-322.1621621621622,-321.8018018018018,-321.44144144144144,-321.0810810810811,-320.72072072072075,-320.36036036036035,-320.0,-319.63963963963965,-319.27927927927925,-318.9189189189189,-318.55855855855856,-318.1981981981982,-317.8378378378378,-317.47747747747746,-317.1171171171171,-316.7567567567568,-316.39639639639637,-316.036036036036,-315.6756756756757,-315.31531531531533,-314.9549549549549,-314.5945945945946,-314.23423423423424,-313.8738738738739,-313.5135135135135,-313.15315315315314,-312.7927927927928,-312.43243243243245,-312.07207207207205,-311.7117117117117,-311.35135135135135,-310.990990990991,-310.6306306306306,-310.27027027027026,-309.9099099099099,-309.54954954954957,-309.18918918918916,-308.8288288288288,-308.4684684684685,-308.1081081081081,-307.7477477477477,-307.3873873873874,-307.02702702702703,-306.6666666666667,-306.3063063063063,-305.94594594594594,-305.5855855855856,-305.22522522522524,-304.86486486486484,-304.5045045045045,-304.14414414414415,-303.7837837837838,-303.4234234234234,-303.06306306306305,-302.7027027027027,-302.34234234234236,-301.98198198198196,-301.6216216216216,-301.26126126126127,-300.9009009009009,-300.5405405405405,-300.1801801801802,-299.8198198198198,-299.4594594594595,-299.0990990990991,-298.73873873873873,-298.3783783783784,-298.01801801801804,-297.65765765765764,-297.2972972972973,-296.93693693693695,-296.5765765765766,-296.2162162162162,-295.85585585585585,-295.4954954954955,-295.13513513513516,-294.77477477477476,-294.4144144144144,-294.05405405405406,-293.6936936936937,-293.3333333333333,-292.97297297297297,-292.6126126126126,-292.2522522522523,-291.8918918918919,-291.5315315315315,-291.1711711711712,-290.81081081081084,-290.45045045045043,-290.0900900900901,-289.72972972972974,-289.3693693693694,-289.009009009009,-288.64864864864865,-288.2882882882883,-287.92792792792795,-287.56756756756755,-287.2072072072072,-286.84684684684686,-286.4864864864865,-286.1261261261261,-285.76576576576576,-285.4054054054054,-285.0450450450451,-284.68468468468467,-284.3243243243243,-283.963963963964,-283.60360360360363,-283.2432432432432,-282.8828828828829,-282.52252252252254,-282.1621621621622,-281.8018018018018,-281.44144144144144,-281.0810810810811,-280.72072072072075,-280.36036036036035,-280.0,-279.63963963963965,-279.27927927927925,-278.9189189189189,-278.55855855855856,-278.1981981981982,-277.8378378378378,-277.47747747747746,-277.1171171171171,-276.7567567567568,-276.39639639639637,-276.036036036036,-275.6756756756757,-275.31531531531533,-274.9549549549549,-274.5945945945946,-274.23423423423424,-273.8738738738739,-273.5135135135135,-273.15315315315314,-272.7927927927928,-272.43243243243245,-272.07207207207205,-271.7117117117117,-271.35135135135135,-270.990990990991,-270.6306306306306,-270.27027027027026,-269.9099099099099,-269.54954954954957,-269.18918918918916,-268.8288288288288,-268.4684684684685,-268.1081081081081,-267.7477477477477,-267.3873873873874,-267.02702702702703,-266.6666666666667,-266.3063063063063,-265.94594594594594,-265.5855855855856,-265.22522522522524,-264.86486486486484,-264.5045045045045,-264.14414414414415,-263.7837837837838,-263.4234234234234,-263.06306306306305,-262.7027027027027,-262.34234234234236,-261.98198198198196,-261.6216216216216,-261.26126126126127,-260.9009009009009,-260.5405405405405,-260.1801801801802,-259.8198198198198,-259.4594594594595,-259.0990990990991,-258.73873873873873,-258.3783783783784,-258.01801801801804,-257.65765765765764,-257.2972972972973,-256.93693693693695,-256.5765765765766,-256.2162162162162,-255.85585585585585,-255.4954954954955,-255.13513513513513,-254.77477477477478,-254.4144144144144,-254.05405405405406,-253.6936936936937,-253.33333333333334,-252.97297297297297,-252.61261261261262,-252.25225225225225,-251.8918918918919,-251.53153153153153,-251.17117117117118,-250.8108108108108,-250.45045045045046,-250.0900900900901,-249.72972972972974,-249.36936936936937,-249.00900900900902,-248.64864864864865,-248.2882882882883,-247.92792792792793,-247.56756756756758,-247.2072072072072,-246.84684684684686,-246.48648648648648,-246.12612612612614,-245.76576576576576,-245.40540540540542,-245.04504504504504,-244.6846846846847,-244.32432432432432,-243.96396396396398,-243.6036036036036,-243.24324324324326,-242.88288288288288,-242.52252252252254,-242.16216216216216,-241.80180180180182,-241.44144144144144,-241.0810810810811,-240.72072072072072,-240.36036036036037,-240.0,-239.63963963963963,-239.27927927927928,-238.9189189189189,-238.55855855855856,-238.19819819819818,-237.83783783783784,-237.47747747747746,-237.11711711711712,-236.75675675675674,-236.3963963963964,-236.03603603603602,-235.67567567567568,-235.3153153153153,-234.95495495495496,-234.59459459459458,-234.23423423423424,-233.87387387387386,-233.51351351351352,-233.15315315315314,-232.7927927927928,-232.43243243243242,-232.07207207207207,-231.7117117117117,-231.35135135135135,-230.99099099099098,-230.63063063063063,-230.27027027027026,-229.9099099099099,-229.54954954954954,-229.1891891891892,-228.82882882882882,-228.46846846846847,-228.1081081081081,-227.74774774774775,-227.38738738738738,-227.02702702702703,-226.66666666666666,-226.3063063063063,-225.94594594594594,-225.5855855855856,-225.22522522522522,-224.86486486486487,-224.5045045045045,-224.14414414414415,-223.78378378378378,-223.42342342342343,-223.06306306306305,-222.7027027027027,-222.34234234234233,-221.981981981982,-221.6216216216216,-221.26126126126127,-220.9009009009009,-220.54054054054055,-220.18018018018017,-219.81981981981983,-219.45945945945945,-219.0990990990991,-218.73873873873873,-218.3783783783784,-218.018018018018,-217.65765765765767,-217.2972972972973,-216.93693693693695,-216.57657657657657,-216.21621621621622,-215.85585585585585,-215.4954954954955,-215.13513513513513,-214.77477477477478,-214.4144144144144,-214.05405405405406,-213.6936936936937,-213.33333333333334,-212.97297297297297,-212.61261261261262,-212.25225225225225,-211.8918918918919,-211.53153153153153,-211.17117117117118,-210.8108108108108,-210.45045045045046,-210.0900900900901,-209.72972972972974,-209.36936936936937,-209.00900900900902,-208.64864864864865,-208.2882882882883,-207.92792792792793,-207.56756756756758,-207.2072072072072,-206.84684684684686,-206.48648648648648,-206.12612612612614,-205.76576576576576,-205.40540540540542,-205.04504504504504,-204.6846846846847,-204.32432432432432,-203.96396396396398,-203.6036036036036,-203.24324324324326,-202.88288288288288,-202.52252252252254,-202.16216216216216,-201.80180180180182,-201.44144144144144,-201.0810810810811,-200.72072072072072,-200.36036036036037,-200.0,-199.63963963963963,-199.27927927927928,-198.9189189189189,-198.55855855855856,-198.19819819819818,-197.83783783783784,-197.47747747747746,-197.11711711711712,-196.75675675675674,-196.3963963963964,-196.03603603603602,-195.67567567567568,-195.3153153153153,-194.95495495495496,-194.59459459459458,-194.23423423423424,-193.87387387387386,-193.51351351351352,-193.15315315315314,-192.7927927927928,-192.43243243243242,-192.07207207207207,-191.7117117117117,-191.35135135135135,-190.99099099099098,-190.63063063063063,-190.27027027027026,-189.9099099099099,-189.54954954954954,-189.1891891891892,-188.82882882882882,-188.46846846846847,-188.1081081081081,-187.74774774774775,-187.38738738738738,-187.02702702702703,-186.66666666666666,-186.3063063063063,-185.94594594594594,-185.5855855855856,-185.22522522522522,-184.86486486486487,-184.5045045045045,-184.14414414414415,-183.78378378378378,-183.42342342342343,-183.06306306306305,-182.7027027027027,-182.34234234234233,-181.981981981982,-181.6216216216216,-181.26126126126127,-180.9009009009009,-180.54054054054055,-180.18018018018017,-179.81981981981983,-179.45945945945945,-179.0990990990991,-178.73873873873873,-178.3783783783784,-178.018018018018,-177.65765765765767,-177.2972972972973,-176.93693693693695,-176.57657657657657,-176.21621621621622,-175.85585585585585,-175.4954954954955,-175.13513513513513,-174.77477477477478,-174.4144144144144,-174.05405405405406,-173.6936936936937,-173.33333333333334,-172.97297297297297,-172.61261261261262,-172.25225225225225,-171.8918918918919,-171.53153153153153,-171.17117117117118,-170.8108108108108,-170.45045045045046,-170.0900900900901,-169.72972972972974,-169.36936936936937,-169.00900900900902,-168.64864864864865,-168.2882882882883,-167.92792792792793,-167.56756756756758,-167.2072072072072,-166.84684684684686,-166.48648648648648,-166.12612612612614,-165.76576576576576,-165.40540540540542,-165.04504504504504,-164.6846846846847,-164.32432432432432,-163.96396396396398,-163.6036036036036,-163.24324324324326,-162.88288288288288,-162.52252252252254,-162.16216216216216,-161.80180180180182,-161.44144144144144,-161.0810810810811,-160.72072072072072,-160.36036036036037,-160.0,-159.63963963963963,-159.27927927927928,-158.9189189189189,-158.55855855855856,-158.19819819819818,-157.83783783783784,-157.47747747747746,-157.11711711711712,-156.75675675675674,-156.3963963963964,-156.03603603603602,-155.67567567567568,-155.3153153153153,-154.95495495495496,-154.59459459459458,-154.23423423423424,-153.87387387387386,-153.51351351351352,-153.15315315315314,-152.7927927927928,-152.43243243243242,-152.07207207207207,-151.7117117117117,-151.35135135135135,-150.99099099099098,-150.63063063063063,-150.27027027027026,-149.9099099099099,-149.54954954954954,-149.1891891891892,-148.82882882882882,-148.46846846846847,-148.1081081081081,-147.74774774774775,-147.38738738738738,-147.02702702702703,-146.66666666666666,-146.3063063063063,-145.94594594594594,-145.5855855855856,-145.22522522522522,-144.86486486486487,-144.5045045045045,-144.14414414414415,-143.78378378378378,-143.42342342342343,-143.06306306306305,-142.7027027027027,-142.34234234234233,-141.981981981982,-141.6216216216216,-141.26126126126127,-140.9009009009009,-140.54054054054055,-140.18018018018017,-139.81981981981983,-139.45945945945945,-139.0990990990991,-138.73873873873873,-138.3783783783784,-138.018018018018,-137.65765765765767,-137.2972972972973,-136.93693693693695,-136.57657657657657,-136.21621621621622,-135.85585585585585,-135.4954954954955,-135.13513513513513,-134.77477477477478,-134.4144144144144,-134.05405405405406,-133.6936936936937,-133.33333333333334,-132.97297297297297,-132.61261261261262,-132.25225225225225,-131.8918918918919,-131.53153153153153,-131.17117117117118,-130.8108108108108,-130.45045045045046,-130.0900900900901,-129.72972972972974,-129.36936936936937,-129.00900900900902,-128.64864864864865,-128.2882882882883,-127.92792792792793,-127.56756756756756,-127.2072072072072,-126.84684684684684,-126.48648648648648,-126.12612612612612,-125.76576576576576,-125.4054054054054,-125.04504504504504,-124.68468468468468,-124.32432432432432,-123.96396396396396,-123.6036036036036,-123.24324324324324,-122.88288288288288,-122.52252252252252,-122.16216216216216,-121.8018018018018,-121.44144144144144,-121.08108108108108,-120.72072072072072,-120.36036036036036,-120.0,-119.63963963963964,-119.27927927927928,-118.91891891891892,-118.55855855855856,-118.1981981981982,-117.83783783783784,-117.47747747747748,-117.11711711711712,-116.75675675675676,-116.3963963963964,-116.03603603603604,-115.67567567567568,-115.31531531531532,-114.95495495495496,-114.5945945945946,-114.23423423423424,-113.87387387387388,-113.51351351351352,-113.15315315315316,-112.7927927927928,-112.43243243243244,-112.07207207207207,-111.71171171171171,-111.35135135135135,-110.990990990991,-110.63063063063063,-110.27027027027027,-109.90990990990991,-109.54954954954955,-109.1891891891892,-108.82882882882883,-108.46846846846847,-108.10810810810811,-107.74774774774775,-107.38738738738739,-107.02702702702703,-106.66666666666667,-106.30630630630631,-105.94594594594595,-105.58558558558559,-105.22522522522523,-104.86486486486487,-104.50450450450451,-104.14414414414415,-103.78378378378379,-103.42342342342343,-103.06306306306307,-102.70270270270271,-102.34234234234235,-101.98198198198199,-101.62162162162163,-101.26126126126127,-100.90090090090091,-100.54054054054055,-100.18018018018019,-99.81981981981981,-99.45945945945945,-99.09909909909909,-98.73873873873873,-98.37837837837837,-98.01801801801801,-97.65765765765765,-97.29729729729729,-96.93693693693693,-96.57657657657657,-96.21621621621621,-95.85585585585585,-95.49549549549549,-95.13513513513513,-94.77477477477477,-94.41441441441441,-94.05405405405405,-93.69369369369369,-93.33333333333333,-92.97297297297297,-92.61261261261261,-92.25225225225225,-91.89189189189189,-91.53153153153153,-91.17117117117117,-90.8108108108108,-90.45045045045045,-90.09009009009009,-89.72972972972973,-89.36936936936937,-89.009009009009,-88.64864864864865,-88.28828828828829,-87.92792792792793,-87.56756756756756,-87.2072072072072,-86.84684684684684,-86.48648648648648,-86.12612612612612,-85.76576576576576,-85.4054054054054,-85.04504504504504,-84.68468468468468,-84.32432432432432,-83.96396396396396,-83.6036036036036,-83.24324324324324,-82.88288288288288,-82.52252252252252,-82.16216216216216,-81.8018018018018,-81.44144144144144,-81.08108108108108,-80.72072072072072,-80.36036036036036,-80.0,-79.63963963963964,-79.27927927927928,-78.91891891891892,-78.55855855855856,-78.1981981981982,-77.83783783783784,-77.47747747747748,-77.11711711711712,-76.75675675675676,-76.3963963963964,-76.03603603603604,-75.67567567567568,-75.31531531531532,-74.95495495495496,-74.5945945945946,-74.23423423423424,-73.87387387387388,-73.51351351351352,-73.15315315315316,-72.7927927927928,-72.43243243243244,-72.07207207207207,-71.71171171171171,-71.35135135135135,-70.990990990991,-70.63063063063063,-70.27027027027027,-69.90990990990991,-69.54954954954955,-69.1891891891892,-68.82882882882883,-68.46846846846847,-68.10810810810811,-67.74774774774775,-67.38738738738739,-67.02702702702703,-66.66666666666667,-66.30630630630631,-65.94594594594595,-65.58558558558559,-65.22522522522523,-64.86486486486487,-64.50450450450451,-64.14414414414415,-63.78378378378378,-63.42342342342342,-63.06306306306306,-62.7027027027027,-62.34234234234234,-61.98198198198198,-61.62162162162162,-61.26126126126126,-60.9009009009009,-60.54054054054054,-60.18018018018018,-59.81981981981982,-59.45945945945946,-59.0990990990991,-58.73873873873874,-58.37837837837838,-58.01801801801802,-57.65765765765766,-57.2972972972973,-56.93693693693694,-56.57657657657658,-56.21621621621622,-55.85585585585586,-55.4954954954955,-55.13513513513514,-54.77477477477478,-54.414414414414416,-54.054054054054056,-53.693693693693696,-53.333333333333336,-52.972972972972975,-52.612612612612615,-52.252252252252255,-51.891891891891895,-51.531531531531535,-51.171171171171174,-50.810810810810814,-50.450450450450454,-50.090090090090094,-49.729729729729726,-49.369369369369366,-49.009009009009006,-48.648648648648646,-48.288288288288285,-47.927927927927925,-47.567567567567565,-47.207207207207205,-46.846846846846844,-46.486486486486484,-46.126126126126124,-45.765765765765764,-45.4054054054054,-45.04504504504504,-44.68468468468468,-44.32432432432432,-43.96396396396396,-43.6036036036036,-43.24324324324324,-42.88288288288288,-42.52252252252252,-42.16216216216216,-41.8018018018018,-41.44144144144144,-41.08108108108108,-40.72072072072072,-40.36036036036036,-40.0,-39.63963963963964,-39.27927927927928,-38.91891891891892,-38.55855855855856,-38.1981981981982,-37.83783783783784,-37.47747747747748,-37.11711711711712,-36.75675675675676,-36.3963963963964,-36.03603603603604,-35.67567567567568,-35.31531531531532,-34.95495495495496,-34.5945945945946,-34.234234234234236,-33.873873873873876,-33.513513513513516,-33.153153153153156,-32.792792792792795,-32.432432432432435,-32.072072072072075,-31.71171171171171,-31.35135135135135,-30.99099099099099,-30.63063063063063,-30.27027027027027,-29.90990990990991,-29.54954954954955,-29.18918918918919,-28.82882882882883,-28.46846846846847,-28.10810810810811,-27.74774774774775,-27.38738738738739,-27.027027027027028,-26.666666666666668,-26.306306306306308,-25.945945945945947,-25.585585585585587,-25.225225225225227,-24.864864864864863,-24.504504504504503,-24.144144144144143,-23.783783783783782,-23.423423423423422,-23.063063063063062,-22.7027027027027,-22.34234234234234,-21.98198198198198,-21.62162162162162,-21.26126126126126,-20.9009009009009,-20.54054054054054,-20.18018018018018,-19.81981981981982,-19.45945945945946,-19.0990990990991,-18.73873873873874,-18.37837837837838,-18.01801801801802,-17.65765765765766,-17.2972972972973,-16.936936936936938,-16.576576576576578,-16.216216216216218,-15.855855855855856,-15.495495495495495,-15.135135135135135,-14.774774774774775,-14.414414414414415,-14.054054054054054,-13.693693693693694,-13.333333333333334,-12.972972972972974,-12.612612612612613,-12.252252252252251,-11.891891891891891,-11.531531531531531,-11.17117117117117,-10.81081081081081,-10.45045045045045,-10.09009009009009,-9.72972972972973,-9.36936936936937,-9.00900900900901,-8.64864864864865,-8.288288288288289,-7.927927927927928,-7.5675675675675675,-7.207207207207207,-6.846846846846847,-6.486486486486487,-6.126126126126126,-5.7657657657657655,-5.405405405405405,-5.045045045045045,-4.684684684684685,-4.324324324324325,-3.963963963963964,-3.6036036036036037,-3.2432432432432434,-2.8828828828828827,-2.5225225225225225,-2.1621621621621623,-1.8018018018018018,-1.4414414414414414,-1.0810810810810811,-0.7207207207207207,-0.36036036036036034,0.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/positive.json b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/positive.json new file mode 100644 index 000000000000..68ed18d56d41 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/positive.json @@ -0,0 +1 @@ +{"expected":[0.0,0.006289433316067751,0.01257861783874106,0.018867304784467093,0.025155245389375847,0.03144219091912061,0.03772789267871718,0.04401210202238166,0.05029457036336619,0.05657504918379236,0.06285329004448195,0.06912904459478454,0.0754020645824016,0.08167210186320664,0.08793890841106125,0.09420223632762625,0.10046183785216795,0.1067174653713589,0.11296887142907285,0.11921580873617336,0.12545803018029605,0.13169528883562362,0.13792733797265358,0.14415393106795832,0.15037482181393672,0.15658976412855768,0.16279851216509433,0.16900082032184907,0.17519644325186898,0.18138513587265107,0.18756665337583714,0.19374075123689763,0.19990718522480458,0.20606571141169255,0.2122160861825079,0.21835806624464546,0.2244914086375726,0.2306158707424402,0.23673121029167976,0.24283718537858717,0.24893355446689164,0.25502007640031044,0.26109651041208826,0.2671626161345213,0.27321815360846585,0.2792628832928301,0.2852965660740498,0.29131896327554724,0.29732983666717233,0.30332894847462666,0.3093160613888689,0.31529093857550244,0.3212533436841437,0.32720304085777163,0.33313979474205757,0.3390633704946752,0.3449735337945905,0.3508700508513305,0.35675268841423174,0.3626212137816669,0.3684753948102499,0.3743149999240189,0.3801397981235967,0.38594955899532873,0.3917440527203973,0.3975230500839129,0.4032863224839812,0.4090336419407459,0.414764781105407,0.4204795132692143,0.42617761237243534,0.4318588530132974,0.43752301045690434,0.4431698606441261,0.44879918020046217,0.45441074644487744,0.460004337398611,0.4655797317939571,0.47113670908301786,0.47667504944642747,0.48219453380204774,0.48769494381363454,0.4931760618994744,0.4986376712409915,0.5040795557913247,0.5095015002838732,0.5149032902408127,0.520284711981579,0.5256455526313207,0.5309856001293204,0.5363046432373825,0.5416024715481901,0.5468788754936275,0.5521336463530703,0.5573665762616422,0.5625774582184371,0.5677660860947079,0.5729322546420199,0.5780757595003707,0.5831963972062734,0.5882939652008051,0.5933682618376204,0.5984190863909269,0.6034462390634262,0.6084495209942171,0.6134287342666618,0.6183836819162154,0.6233141679382167,0.6282199972956424,0.6331009759268214,0.6379569107531119,0.6427876096865394,0.647592881637394,0.652372536521791,0.6571263852691885,0.661854239829868,0.666555913182372,0.6712312193409028,0.6758799733626791,0.6805019913552524,0.6850970904837809,0.6896650889782618,0.6942058061407226,0.6987190623523674,0.7032046790806838,0.7076624788865044,0.7120922854310254,0.7164939234827832,0.720867218924585,0.7252119987603973,0.7295280911221884,0.7338153252767277,0.7380735316323389,0.7423025417456093,0.7465021883280519,0.7506723052527243,0.7548127275607989,0.7589232914680889,0.7630038343715273,0.7670541948555988,0.7710742126987248,0.7750637288796016,0.7790225855834912,0.7829506262084631,0.78684769537159,0.7907136389150937,0.7945483039124437,0.7983515386744059,0.8021231927550438,0.8058631169576691,0.809571163340744,0.813247185223733,0.8168910371929055,0.8205025751070875,0.8240816561033644,0.8276281386027312,0.8311418823156936,0.8346227482478173,0.8380705987052265,0.8414852973000502,0.8448667089558178,0.8482146999128023,0.8515291377333113,0.854809891306926,0.8580568308556875,0.8612698279392308,0.864448755459865,0.8675934876676012,0.8707039001651276,0.8737798699127285,0.8768212752331536,0.8798279958164293,0.8827999127246197,0.8857369083965294,0.8886388666523558,0.8915056726982838,0.8943372131310272,0.8971333759423141,0.8998940505233183,0.9026191276690341,0.9053084995825967,0.9079620598795463,0.9105797035920357,0.9131613271729834,0.9157068285001692,0.918216106880274,0.9206890630528631,0.9231255991943124,0.925525618921678,0.9278890272965093,0.9302157308286043,0.9325056374797075,0.9347586566671511,0.936974699267438,0.9391536776197678,0.9412955055295033,0.9434000982715812,0.9454673725938635,0.9474972467204298,0.9494896403548134,0.9514444746831767,0.9533616723774293,0.9552411575982869,0.9570828559982708,0.9588866947246498,0.9606526024223211,0.9623805092366335,0.9640703468161507,0.9657220483153547,0.9673355483972902,0.9689107832361495,0.970447690519797,0.9719462094522336,0.9734062807560027,0.9748278466745343,0.9762108509744296,0.9775552389476861,0.9788609574138615,0.9801279547221766,0.9813561807535595,0.9825455869226277,0.9836961261796101,0.984807753012208,0.9858804234473958,0.98691409505316,0.9879087269401781,0.9888642797634357,0.9897807157237835,0.9906579985694317,0.9914960935973848,0.9922949676548137,0.9930545891403677,0.9937749280054242,0.9944559557552776,0.995097645450266,0.9956999717068377,0.9962629106985544,0.9967864401570343,0.9972705393728327,0.9977151891962615,0.9981203720381463,0.9984860718705224,0.9988122742272691,0.9990989662046814,0.9993461364619809,0.9995537752217638,0.9997218742703887,0.9998504269583004,0.9999394282002937,0.999988874475714,0.9999987638285974,0.9999690958677468,0.9998998717667489,0.9997910942639262,0.9996427676622299,0.9994548978290693,0.9992274921960794,0.9989605597588275,0.9986541110764564,0.9983081582712682,0.9979227150282433,0.9974977965944997,0.9970334197786902,0.9965296029503368,0.9959863660391044,0.9954037305340125,0.9947817194825853,0.9941203574899393,0.9934196707178107,0.9926796868835203,0.991900435258877,0.9910819466690196,0.9902242534911986,0.9893273896534935,0.9883913906334728,0.9874162934567889,0.9864021366957146,0.9853489604676166,0.9842568064333687,0.9831257177957042,0.9819557392975067,0.9807469172200396,0.9794992993811165,0.9782129351332084,0.9768878753614925,0.9755241724818386,0.9741218804387363,0.97268105470316,0.9712017522703762,0.9696840316576876,0.9681279529021187,0.9665335775580414,0.964900968694739,0.9632301908939126,0.9615213102471255,0.959774394353189,0.9579895123154889,0.956166734739251,0.9543061337287488,0.9524077828844514,0.9504717573001115,0.9484981335597952,0.9464869897348525,0.9444384053808289,0.9423524615343186,0.9402292407097589,0.9380688268961658,0.935871305553812,0.9336367636108461,0.9313652894598542,0.9290569729543627,0.926711905405285,0.9243301795773083,0.9219118896852251,0.9194571313902055,0.9169660017960134,0.9144385994451657,0.9118750243150338,0.9092753778138885,0.9066397627768893,0.9039682834620161,0.9012610455459447,0.8985181561198673,0.8957397236852553,0.8929258581495685,0.8900766708219059,0.887192274408604,0.8842727830087778,0.881318312109807,0.8783289785827687,0.875304900677813,0.8722461980194863,0.8691529916019989,0.8660254037844386,0.8628635582859311,0.8596675801807452,0.8564375958933459,0.8531737331933928,0.8498761211906865,0.8465448903300605,0.8431801723862224,0.8397821004585397,0.8363508089657762,0.8328864336407735,0.8293891115250828,0.8258589809635432,0.8222961815988095,0.8187008543658281,0.8150731414862622,0.8114131864628658,0.8077211340738069,0.8039971303669405,0.8002413226540321,0.7964538595049291,0.7926348907416848,0.7887845674326315,0.7849030418864044,0.7809904676459175,0.7770469994822884,0.7730727933887177,0.7690680065743166,0.76503279745789,0.7609673256616675,0.7568717520049918,0.7527462384979546,0.7485909483349906,0.7444060458884189,0.7401916967019436,0.7359480674841032,0.7316753261016784,0.7273736415730485,0.7230431840615094,0.7186841248685382,0.714296636427021,0.7098808922944284,0.7054370671459532,0.7009653367675973,0.6964658780492218,0.6919388689775461,0.6873844886291104,0.682802917163189,0.6781943358146665,0.6735589268868658,0.6688968737443396,0.664208360805614,0.659493573535896,0.6547526984397349,0.6499859230536468,0.6451934359386933,0.640375426673026,0.635532085844384,0.6306636050425573,0.6257701768518058,0.6208519948432437,0.6159092535671795,0.6109421485454231,0.605950876263548,0.600935634163123,0.5958966206338976,0.5908340350059581,0.5857480775418393,0.5806389494286057,0.5755068527698899,0.5703519905779015,0.5651745667653927,0.5599747861375955,0.554752854384117,0.5495089780708061,0.544243364631579,0.5389562223602166,0.5336477604021223,0.5283181887460516,0.5229677182158023,0.5175965604618785,0.5122049279531142,0.5067930339682727,0.5013610925876059,0.49590931868438964,0.4904379279164205,0.4849471367174879,0.4794371622888097,0.47390822259044335,0.4683605363326605,0.46279432296729917,0.45720980267907907,0.4516071963768952,0.44598672568507597,0.4403486129346195,0.4346930811543956,0.42902035406232664,0.4233306560565344,0.41762421220646717,0.41190124824399266,0.4061619905544726,0.40040666616780385,0.39463550274944104,0.38884872859138747,0.3830465726031679,0.3772292643027699,0.37139703380756833,0.365550111825219,0.35968872964453596,0.35381311912633867,0.3479235126942841,0.3420201433256687,0.33610324454221585,0.3301730504008368,0.3242297954843707,0.31827371489230855,0.31230504423148925,0.30632401960678346,0.30033087761175026,0.2943258553192818,0.2883091902722216,0.2822811204739717,0.27624188437907415,0.2701917208837821,0.26413086931660607,0.2580595694288502,0.25197806138512496,0.2458865857538503,0.23978538349773576,0.23367469596425247,0.22755476487608217,0.22142583232155919,0.21528814074509012,0.20914193293756742,0.20298745202676113,0.19682494146770546,0.19065464503306437,0.1844768068034924,0.17829167115797576,0.1720994827641691,0.16590048656871317,0.15969492778754948,0.15348305189621608,0.14726510462014122,0.14104133192491916,0.13481198000658431,0.1285772952818685,0.1223375243784573,0.11609291412523007,0.1098437115425001,0.10359016383223915,0.09733251836830271,0.09107102268664066,0.08480592447550929,0.07853747156566947,0.0722659119205871,0.06599149362662035,0.05971446488320999,0.05343507399305728,0.047153569352305774,0.04087019944071144,0.03458521281181742,0.028298858083117957,0.02201138392622768,0.01572303905704087,0.009434072225896876,0.0031447322077362352,-0.0031447322077362352,-0.009434072225896876,-0.01572303905704087,-0.02201138392622768,-0.028298858083117957,-0.03458521281181742,-0.04087019944071144,-0.047153569352305774,-0.05343507399305728,-0.05971446488320999,-0.06599149362662035,-0.0722659119205871,-0.07853747156566947,-0.08480592447550929,-0.09107102268664066,-0.09733251836830271,-0.10359016383223915,-0.1098437115425001,-0.11609291412523007,-0.1223375243784573,-0.1285772952818685,-0.13481198000658431,-0.14104133192491916,-0.14726510462014122,-0.15348305189621608,-0.15969492778754948,-0.16590048656871317,-0.1720994827641691,-0.17829167115797576,-0.1844768068034924,-0.19065464503306437,-0.19682494146770546,-0.20298745202676113,-0.20914193293756742,-0.21528814074509012,-0.22142583232155919,-0.22755476487608217,-0.23367469596425247,-0.23978538349773576,-0.2458865857538503,-0.25197806138512496,-0.2580595694288502,-0.26413086931660607,-0.2701917208837821,-0.27624188437907415,-0.2822811204739717,-0.2883091902722216,-0.2943258553192818,-0.30033087761175026,-0.30632401960678346,-0.31230504423148925,-0.31827371489230855,-0.3242297954843707,-0.3301730504008368,-0.33610324454221585,-0.3420201433256687,-0.3479235126942841,-0.35381311912633867,-0.35968872964453596,-0.365550111825219,-0.37139703380756833,-0.3772292643027699,-0.3830465726031679,-0.38884872859138747,-0.39463550274944104,-0.40040666616780385,-0.4061619905544726,-0.41190124824399266,-0.41762421220646717,-0.4233306560565344,-0.42902035406232664,-0.4346930811543956,-0.4403486129346195,-0.44598672568507597,-0.4516071963768952,-0.45720980267907907,-0.46279432296729917,-0.4683605363326605,-0.47390822259044335,-0.4794371622888097,-0.4849471367174879,-0.4904379279164205,-0.49590931868438964,-0.5013610925876059,-0.5067930339682727,-0.5122049279531142,-0.5175965604618785,-0.5229677182158023,-0.5283181887460516,-0.5336477604021223,-0.5389562223602166,-0.544243364631579,-0.5495089780708061,-0.554752854384117,-0.5599747861375955,-0.5651745667653927,-0.5703519905779015,-0.5755068527698899,-0.5806389494286057,-0.5857480775418393,-0.5908340350059581,-0.5958966206338976,-0.600935634163123,-0.605950876263548,-0.6109421485454231,-0.6159092535671795,-0.6208519948432437,-0.6257701768518058,-0.6306636050425573,-0.635532085844384,-0.640375426673026,-0.6451934359386933,-0.6499859230536468,-0.6547526984397349,-0.659493573535896,-0.664208360805614,-0.6688968737443396,-0.6735589268868658,-0.6781943358146665,-0.682802917163189,-0.6873844886291104,-0.6919388689775461,-0.6964658780492218,-0.7009653367675973,-0.7054370671459532,-0.7098808922944284,-0.714296636427021,-0.7186841248685382,-0.7230431840615094,-0.7273736415730485,-0.7316753261016784,-0.7359480674841032,-0.7401916967019436,-0.7444060458884189,-0.7485909483349906,-0.7527462384979546,-0.7568717520049918,-0.7609673256616675,-0.76503279745789,-0.7690680065743166,-0.7730727933887177,-0.7770469994822884,-0.7809904676459175,-0.7849030418864044,-0.7887845674326315,-0.7926348907416847,-0.7964538595049291,-0.8002413226540319,-0.8039971303669405,-0.8077211340738066,-0.8114131864628658,-0.8150731414862621,-0.8187008543658281,-0.8222961815988092,-0.8258589809635432,-0.8293891115250825,-0.8328864336407735,-0.836350808965776,-0.8397821004585397,-0.8431801723862222,-0.8465448903300605,-0.8498761211906863,-0.8531737331933928,-0.8564375958933458,-0.8596675801807452,-0.862863558285931,-0.8660254037844386,-0.869152991601999,-0.8722461980194863,-0.8753049006778131,-0.8783289785827687,-0.8813183121098072,-0.8842727830087778,-0.8871922744086042,-0.8900766708219059,-0.8929258581495686,-0.8957397236852553,-0.8985181561198674,-0.9012610455459447,-0.9039682834620162,-0.9066397627768893,-0.9092753778138886,-0.9118750243150338,-0.9144385994451658,-0.9169660017960134,-0.9194571313902055,-0.9219118896852251,-0.9243301795773085,-0.926711905405285,-0.9290569729543628,-0.9313652894598542,-0.9336367636108462,-0.935871305553812,-0.9380688268961659,-0.9402292407097589,-0.9423524615343187,-0.9444384053808289,-0.9464869897348525,-0.9484981335597952,-0.9504717573001116,-0.9524077828844514,-0.9543061337287488,-0.956166734739251,-0.9579895123154889,-0.959774394353189,-0.9615213102471255,-0.9632301908939126,-0.9649009686947391,-0.9665335775580414,-0.9681279529021188,-0.9696840316576876,-0.9712017522703762,-0.9726810547031601,-0.9741218804387363,-0.9755241724818386,-0.9768878753614925,-0.9782129351332085,-0.9794992993811165,-0.9807469172200396,-0.9819557392975066,-0.9831257177957043,-0.9842568064333687,-0.9853489604676164,-0.9864021366957145,-0.9874162934567889,-0.9883913906334728,-0.9893273896534935,-0.9902242534911985,-0.9910819466690197,-0.991900435258877,-0.9926796868835203,-0.9934196707178107,-0.9941203574899393,-0.9947817194825853,-0.9954037305340125,-0.9959863660391043,-0.9965296029503368,-0.9970334197786902,-0.9974977965944997,-0.9979227150282433,-0.9983081582712682,-0.9986541110764564,-0.9989605597588274,-0.9992274921960794,-0.9994548978290693,-0.9996427676622299,-0.9997910942639262,-0.9998998717667489,-0.9999690958677468,-0.9999987638285974,-0.999988874475714,-0.9999394282002937,-0.9998504269583004,-0.9997218742703887,-0.9995537752217639,-0.9993461364619809,-0.9990989662046814,-0.9988122742272691,-0.9984860718705225,-0.9981203720381463,-0.9977151891962615,-0.9972705393728327,-0.9967864401570343,-0.9962629106985544,-0.9956999717068377,-0.995097645450266,-0.9944559557552776,-0.9937749280054242,-0.9930545891403677,-0.9922949676548137,-0.9914960935973848,-0.9906579985694318,-0.9897807157237835,-0.9888642797634357,-0.9879087269401781,-0.9869140950531601,-0.9858804234473958,-0.984807753012208,-0.9836961261796102,-0.9825455869226276,-0.9813561807535595,-0.9801279547221766,-0.9788609574138616,-0.9775552389476861,-0.9762108509744295,-0.9748278466745343,-0.9734062807560028,-0.9719462094522335,-0.970447690519797,-0.9689107832361495,-0.9673355483972903,-0.9657220483153545,-0.9640703468161506,-0.9623805092366335,-0.9606526024223211,-0.9588866947246496,-0.9570828559982708,-0.9552411575982869,-0.9533616723774294,-0.9514444746831765,-0.9494896403548133,-0.9474972467204298,-0.9454673725938635,-0.9434000982715811,-0.9412955055295031,-0.9391536776197678,-0.9369746992674381,-0.9347586566671509,-0.9325056374797074,-0.9302157308286043,-0.9278890272965095,-0.9255256189216778,-0.9231255991943123,-0.9206890630528631,-0.9182161068802741,-0.9157068285001689,-0.9131613271729833,-0.9105797035920357,-0.9079620598795464,-0.9053084995825965,-0.902619127669034,-0.8998940505233183,-0.8971333759423142,-0.8943372131310271,-0.8915056726982838,-0.8886388666523559,-0.8857369083965295,-0.8827999127246194,-0.8798279958164293,-0.8768212752331536,-0.8737798699127287,-0.8707039001651273,-0.8675934876676012,-0.864448755459865,-0.861269827939231,-0.8580568308556873,-0.854809891306926,-0.8515291377333114,-0.8482146999128025,-0.8448667089558176,-0.8414852973000501,-0.8380705987052266,-0.8346227482478176,-0.8311418823156934,-0.8276281386027311,-0.8240816561033645,-0.8205025751070877,-0.8168910371929051,-0.813247185223733,-0.8095711633407441,-0.8058631169576693,-0.8021231927550436,-0.7983515386744059,-0.7945483039124438,-0.790713638915094,-0.7868476953715898,-0.782950626208463,-0.7790225855834912,-0.7750637288796018,-0.7710742126987246,-0.7670541948555987,-0.7630038343715274,-0.7589232914680892,-0.7548127275607986,-0.7506723052527243,-0.7465021883280522,-0.7423025417456096,-0.7380735316323388,-0.7338153252767277,-0.7295280911221885,-0.7252119987603977,-0.7208672189245848,-0.7164939234827832,-0.7120922854310257,-0.7076624788865048,-0.7032046790806837,-0.6987190623523674,-0.6942058061407227,-0.6896650889782623,-0.6850970904837806,-0.6805019913552524,-0.6758799733626792,-0.6712312193409031,-0.6665559131823718,-0.661854239829868,-0.6571263852691888,-0.6523725365217914,-0.6475928816373938,-0.6427876096865394,-0.6379569107531121,-0.6331009759268209,-0.6282199972956422,-0.6233141679382167,-0.6183836819162155,-0.6134287342666614,-0.6084495209942169,-0.6034462390634262,-0.5984190863909271,-0.5933682618376199,-0.5882939652008049,-0.5831963972062734,-0.5780757595003709,-0.5729322546420196,-0.5677660860947077,-0.5625774582184371,-0.5573665762616424,-0.5521336463530698,-0.5468788754936272,-0.5416024715481901,-0.5363046432373827,-0.53098560012932,-0.5256455526313205,-0.520284711981579,-0.5149032902408129,-0.5095015002838728,-0.5040795557913245,-0.49863767124099156,-0.49317606189947466,-0.48769494381363415,-0.4821945338020476,-0.4766750494464275,-0.47113670908301813,-0.46557973179395673,-0.46000433739861085,-0.4544107464448775,-0.4487991802004625,-0.4431698606441257,-0.43752301045690417,-0.43185885301329746,-0.4261776123724356,-0.42047951326921396,-0.4147647811054069,-0.409033641940746,-0.40328632248398155,-0.3975230500839126,-0.3917440527203972,-0.38594955899532885,-0.38013979812359705,-0.3743149999240185,-0.36847539481024977,-0.362621213781667,-0.3567526884142321,-0.35087005085133016,-0.3449735337945904,-0.33906337049467533,-0.3331397947420579,-0.3272030408577713,-0.3212533436841436,-0.3152909385755026,-0.3093160613888693,-0.3033289484746263,-0.2973298366671722,-0.29131896327554735,-0.2852965660740502,-0.2792628832928297,-0.2732181536084658,-0.26716261613452147,-0.26109651041208864,-0.2550200764003101,-0.24893355446689155,-0.2428371853785873,-0.23673121029168015,-0.23061587074243986,-0.22449140863757253,-0.2183580662446456,-0.2122160861825083,-0.20606571141169225,-0.19990718522480452,-0.19374075123689782,-0.18756665337583756,-0.18138513587265076,-0.17519644325186892,-0.16900082032184927,-0.16279851216509478,-0.15658976412855738,-0.15037482181393666,-0.14415393106795849,-0.13792733797265402,-0.13169528883562331,-0.125458030180296,-0.11921580873617356,-0.11296887142907329,-0.10671746537135862,-0.10046183785216792,-0.09420223632762646,-0.08793890841106172,-0.08167210186320636,-0.07540206458240156,-0.06912904459478476,-0.06285329004448242,-0.05657504918379209,-0.050294570363366174,-0.0440121020223819,-0.037727892678717664,-0.031442190919120344,-0.02515524538937584,-0.018867304784467333,-0.01257861783874155,-0.006289433316067501,0.0],"x":[0.0,0.36036036036036034,0.7207207207207207,1.0810810810810811,1.4414414414414414,1.8018018018018018,2.1621621621621623,2.5225225225225225,2.8828828828828827,3.2432432432432434,3.6036036036036037,3.963963963963964,4.324324324324325,4.684684684684685,5.045045045045045,5.405405405405405,5.7657657657657655,6.126126126126126,6.486486486486487,6.846846846846847,7.207207207207207,7.5675675675675675,7.927927927927928,8.288288288288289,8.64864864864865,9.00900900900901,9.36936936936937,9.72972972972973,10.09009009009009,10.45045045045045,10.81081081081081,11.17117117117117,11.531531531531531,11.891891891891891,12.252252252252251,12.612612612612613,12.972972972972974,13.333333333333334,13.693693693693694,14.054054054054054,14.414414414414415,14.774774774774775,15.135135135135135,15.495495495495495,15.855855855855856,16.216216216216218,16.576576576576578,16.936936936936938,17.2972972972973,17.65765765765766,18.01801801801802,18.37837837837838,18.73873873873874,19.0990990990991,19.45945945945946,19.81981981981982,20.18018018018018,20.54054054054054,20.9009009009009,21.26126126126126,21.62162162162162,21.98198198198198,22.34234234234234,22.7027027027027,23.063063063063062,23.423423423423422,23.783783783783782,24.144144144144143,24.504504504504503,24.864864864864863,25.225225225225227,25.585585585585587,25.945945945945947,26.306306306306308,26.666666666666668,27.027027027027028,27.38738738738739,27.74774774774775,28.10810810810811,28.46846846846847,28.82882882882883,29.18918918918919,29.54954954954955,29.90990990990991,30.27027027027027,30.63063063063063,30.99099099099099,31.35135135135135,31.71171171171171,32.072072072072075,32.432432432432435,32.792792792792795,33.153153153153156,33.513513513513516,33.873873873873876,34.234234234234236,34.5945945945946,34.95495495495496,35.31531531531532,35.67567567567568,36.03603603603604,36.3963963963964,36.75675675675676,37.11711711711712,37.47747747747748,37.83783783783784,38.1981981981982,38.55855855855856,38.91891891891892,39.27927927927928,39.63963963963964,40.0,40.36036036036036,40.72072072072072,41.08108108108108,41.44144144144144,41.8018018018018,42.16216216216216,42.52252252252252,42.88288288288288,43.24324324324324,43.6036036036036,43.96396396396396,44.32432432432432,44.68468468468468,45.04504504504504,45.4054054054054,45.765765765765764,46.126126126126124,46.486486486486484,46.846846846846844,47.207207207207205,47.567567567567565,47.927927927927925,48.288288288288285,48.648648648648646,49.009009009009006,49.369369369369366,49.729729729729726,50.090090090090094,50.450450450450454,50.810810810810814,51.171171171171174,51.531531531531535,51.891891891891895,52.252252252252255,52.612612612612615,52.972972972972975,53.333333333333336,53.693693693693696,54.054054054054056,54.414414414414416,54.77477477477478,55.13513513513514,55.4954954954955,55.85585585585586,56.21621621621622,56.57657657657658,56.93693693693694,57.2972972972973,57.65765765765766,58.01801801801802,58.37837837837838,58.73873873873874,59.0990990990991,59.45945945945946,59.81981981981982,60.18018018018018,60.54054054054054,60.9009009009009,61.26126126126126,61.62162162162162,61.98198198198198,62.34234234234234,62.7027027027027,63.06306306306306,63.42342342342342,63.78378378378378,64.14414414414415,64.50450450450451,64.86486486486487,65.22522522522523,65.58558558558559,65.94594594594595,66.30630630630631,66.66666666666667,67.02702702702703,67.38738738738739,67.74774774774775,68.10810810810811,68.46846846846847,68.82882882882883,69.1891891891892,69.54954954954955,69.90990990990991,70.27027027027027,70.63063063063063,70.990990990991,71.35135135135135,71.71171171171171,72.07207207207207,72.43243243243244,72.7927927927928,73.15315315315316,73.51351351351352,73.87387387387388,74.23423423423424,74.5945945945946,74.95495495495496,75.31531531531532,75.67567567567568,76.03603603603604,76.3963963963964,76.75675675675676,77.11711711711712,77.47747747747748,77.83783783783784,78.1981981981982,78.55855855855856,78.91891891891892,79.27927927927928,79.63963963963964,80.0,80.36036036036036,80.72072072072072,81.08108108108108,81.44144144144144,81.8018018018018,82.16216216216216,82.52252252252252,82.88288288288288,83.24324324324324,83.6036036036036,83.96396396396396,84.32432432432432,84.68468468468468,85.04504504504504,85.4054054054054,85.76576576576576,86.12612612612612,86.48648648648648,86.84684684684684,87.2072072072072,87.56756756756756,87.92792792792793,88.28828828828829,88.64864864864865,89.009009009009,89.36936936936937,89.72972972972973,90.09009009009009,90.45045045045045,90.8108108108108,91.17117117117117,91.53153153153153,91.89189189189189,92.25225225225225,92.61261261261261,92.97297297297297,93.33333333333333,93.69369369369369,94.05405405405405,94.41441441441441,94.77477477477477,95.13513513513513,95.49549549549549,95.85585585585585,96.21621621621621,96.57657657657657,96.93693693693693,97.29729729729729,97.65765765765765,98.01801801801801,98.37837837837837,98.73873873873873,99.09909909909909,99.45945945945945,99.81981981981981,100.18018018018019,100.54054054054055,100.90090090090091,101.26126126126127,101.62162162162163,101.98198198198199,102.34234234234235,102.70270270270271,103.06306306306307,103.42342342342343,103.78378378378379,104.14414414414415,104.50450450450451,104.86486486486487,105.22522522522523,105.58558558558559,105.94594594594595,106.30630630630631,106.66666666666667,107.02702702702703,107.38738738738739,107.74774774774775,108.10810810810811,108.46846846846847,108.82882882882883,109.1891891891892,109.54954954954955,109.90990990990991,110.27027027027027,110.63063063063063,110.990990990991,111.35135135135135,111.71171171171171,112.07207207207207,112.43243243243244,112.7927927927928,113.15315315315316,113.51351351351352,113.87387387387388,114.23423423423424,114.5945945945946,114.95495495495496,115.31531531531532,115.67567567567568,116.03603603603604,116.3963963963964,116.75675675675676,117.11711711711712,117.47747747747748,117.83783783783784,118.1981981981982,118.55855855855856,118.91891891891892,119.27927927927928,119.63963963963964,120.0,120.36036036036036,120.72072072072072,121.08108108108108,121.44144144144144,121.8018018018018,122.16216216216216,122.52252252252252,122.88288288288288,123.24324324324324,123.6036036036036,123.96396396396396,124.32432432432432,124.68468468468468,125.04504504504504,125.4054054054054,125.76576576576576,126.12612612612612,126.48648648648648,126.84684684684684,127.2072072072072,127.56756756756756,127.92792792792793,128.2882882882883,128.64864864864865,129.00900900900902,129.36936936936937,129.72972972972974,130.0900900900901,130.45045045045046,130.8108108108108,131.17117117117118,131.53153153153153,131.8918918918919,132.25225225225225,132.61261261261262,132.97297297297297,133.33333333333334,133.6936936936937,134.05405405405406,134.4144144144144,134.77477477477478,135.13513513513513,135.4954954954955,135.85585585585585,136.21621621621622,136.57657657657657,136.93693693693695,137.2972972972973,137.65765765765767,138.018018018018,138.3783783783784,138.73873873873873,139.0990990990991,139.45945945945945,139.81981981981983,140.18018018018017,140.54054054054055,140.9009009009009,141.26126126126127,141.6216216216216,141.981981981982,142.34234234234233,142.7027027027027,143.06306306306305,143.42342342342343,143.78378378378378,144.14414414414415,144.5045045045045,144.86486486486487,145.22522522522522,145.5855855855856,145.94594594594594,146.3063063063063,146.66666666666666,147.02702702702703,147.38738738738738,147.74774774774775,148.1081081081081,148.46846846846847,148.82882882882882,149.1891891891892,149.54954954954954,149.9099099099099,150.27027027027026,150.63063063063063,150.99099099099098,151.35135135135135,151.7117117117117,152.07207207207207,152.43243243243242,152.7927927927928,153.15315315315314,153.51351351351352,153.87387387387386,154.23423423423424,154.59459459459458,154.95495495495496,155.3153153153153,155.67567567567568,156.03603603603602,156.3963963963964,156.75675675675674,157.11711711711712,157.47747747747746,157.83783783783784,158.19819819819818,158.55855855855856,158.9189189189189,159.27927927927928,159.63963963963963,160.0,160.36036036036037,160.72072072072072,161.0810810810811,161.44144144144144,161.80180180180182,162.16216216216216,162.52252252252254,162.88288288288288,163.24324324324326,163.6036036036036,163.96396396396398,164.32432432432432,164.6846846846847,165.04504504504504,165.40540540540542,165.76576576576576,166.12612612612614,166.48648648648648,166.84684684684686,167.2072072072072,167.56756756756758,167.92792792792793,168.2882882882883,168.64864864864865,169.00900900900902,169.36936936936937,169.72972972972974,170.0900900900901,170.45045045045046,170.8108108108108,171.17117117117118,171.53153153153153,171.8918918918919,172.25225225225225,172.61261261261262,172.97297297297297,173.33333333333334,173.6936936936937,174.05405405405406,174.4144144144144,174.77477477477478,175.13513513513513,175.4954954954955,175.85585585585585,176.21621621621622,176.57657657657657,176.93693693693695,177.2972972972973,177.65765765765767,178.018018018018,178.3783783783784,178.73873873873873,179.0990990990991,179.45945945945945,179.81981981981983,180.18018018018017,180.54054054054055,180.9009009009009,181.26126126126127,181.6216216216216,181.981981981982,182.34234234234233,182.7027027027027,183.06306306306305,183.42342342342343,183.78378378378378,184.14414414414415,184.5045045045045,184.86486486486487,185.22522522522522,185.5855855855856,185.94594594594594,186.3063063063063,186.66666666666666,187.02702702702703,187.38738738738738,187.74774774774775,188.1081081081081,188.46846846846847,188.82882882882882,189.1891891891892,189.54954954954954,189.9099099099099,190.27027027027026,190.63063063063063,190.99099099099098,191.35135135135135,191.7117117117117,192.07207207207207,192.43243243243242,192.7927927927928,193.15315315315314,193.51351351351352,193.87387387387386,194.23423423423424,194.59459459459458,194.95495495495496,195.3153153153153,195.67567567567568,196.03603603603602,196.3963963963964,196.75675675675674,197.11711711711712,197.47747747747746,197.83783783783784,198.19819819819818,198.55855855855856,198.9189189189189,199.27927927927928,199.63963963963963,200.0,200.36036036036037,200.72072072072072,201.0810810810811,201.44144144144144,201.80180180180182,202.16216216216216,202.52252252252254,202.88288288288288,203.24324324324326,203.6036036036036,203.96396396396398,204.32432432432432,204.6846846846847,205.04504504504504,205.40540540540542,205.76576576576576,206.12612612612614,206.48648648648648,206.84684684684686,207.2072072072072,207.56756756756758,207.92792792792793,208.2882882882883,208.64864864864865,209.00900900900902,209.36936936936937,209.72972972972974,210.0900900900901,210.45045045045046,210.8108108108108,211.17117117117118,211.53153153153153,211.8918918918919,212.25225225225225,212.61261261261262,212.97297297297297,213.33333333333334,213.6936936936937,214.05405405405406,214.4144144144144,214.77477477477478,215.13513513513513,215.4954954954955,215.85585585585585,216.21621621621622,216.57657657657657,216.93693693693695,217.2972972972973,217.65765765765767,218.018018018018,218.3783783783784,218.73873873873873,219.0990990990991,219.45945945945945,219.81981981981983,220.18018018018017,220.54054054054055,220.9009009009009,221.26126126126127,221.6216216216216,221.981981981982,222.34234234234233,222.7027027027027,223.06306306306305,223.42342342342343,223.78378378378378,224.14414414414415,224.5045045045045,224.86486486486487,225.22522522522522,225.5855855855856,225.94594594594594,226.3063063063063,226.66666666666666,227.02702702702703,227.38738738738738,227.74774774774775,228.1081081081081,228.46846846846847,228.82882882882882,229.1891891891892,229.54954954954954,229.9099099099099,230.27027027027026,230.63063063063063,230.99099099099098,231.35135135135135,231.7117117117117,232.07207207207207,232.43243243243242,232.7927927927928,233.15315315315314,233.51351351351352,233.87387387387386,234.23423423423424,234.59459459459458,234.95495495495496,235.3153153153153,235.67567567567568,236.03603603603602,236.3963963963964,236.75675675675674,237.11711711711712,237.47747747747746,237.83783783783784,238.19819819819818,238.55855855855856,238.9189189189189,239.27927927927928,239.63963963963963,240.0,240.36036036036037,240.72072072072072,241.0810810810811,241.44144144144144,241.80180180180182,242.16216216216216,242.52252252252254,242.88288288288288,243.24324324324326,243.6036036036036,243.96396396396398,244.32432432432432,244.6846846846847,245.04504504504504,245.40540540540542,245.76576576576576,246.12612612612614,246.48648648648648,246.84684684684686,247.2072072072072,247.56756756756758,247.92792792792793,248.2882882882883,248.64864864864865,249.00900900900902,249.36936936936937,249.72972972972974,250.0900900900901,250.45045045045046,250.8108108108108,251.17117117117118,251.53153153153153,251.8918918918919,252.25225225225225,252.61261261261262,252.97297297297297,253.33333333333334,253.6936936936937,254.05405405405406,254.4144144144144,254.77477477477478,255.13513513513513,255.4954954954955,255.85585585585585,256.2162162162162,256.5765765765766,256.93693693693695,257.2972972972973,257.65765765765764,258.01801801801804,258.3783783783784,258.73873873873873,259.0990990990991,259.4594594594595,259.8198198198198,260.1801801801802,260.5405405405405,260.9009009009009,261.26126126126127,261.6216216216216,261.98198198198196,262.34234234234236,262.7027027027027,263.06306306306305,263.4234234234234,263.7837837837838,264.14414414414415,264.5045045045045,264.86486486486484,265.22522522522524,265.5855855855856,265.94594594594594,266.3063063063063,266.6666666666667,267.02702702702703,267.3873873873874,267.7477477477477,268.1081081081081,268.4684684684685,268.8288288288288,269.18918918918916,269.54954954954957,269.9099099099099,270.27027027027026,270.6306306306306,270.990990990991,271.35135135135135,271.7117117117117,272.07207207207205,272.43243243243245,272.7927927927928,273.15315315315314,273.5135135135135,273.8738738738739,274.23423423423424,274.5945945945946,274.9549549549549,275.31531531531533,275.6756756756757,276.036036036036,276.39639639639637,276.7567567567568,277.1171171171171,277.47747747747746,277.8378378378378,278.1981981981982,278.55855855855856,278.9189189189189,279.27927927927925,279.63963963963965,280.0,280.36036036036035,280.72072072072075,281.0810810810811,281.44144144144144,281.8018018018018,282.1621621621622,282.52252252252254,282.8828828828829,283.2432432432432,283.60360360360363,283.963963963964,284.3243243243243,284.68468468468467,285.0450450450451,285.4054054054054,285.76576576576576,286.1261261261261,286.4864864864865,286.84684684684686,287.2072072072072,287.56756756756755,287.92792792792795,288.2882882882883,288.64864864864865,289.009009009009,289.3693693693694,289.72972972972974,290.0900900900901,290.45045045045043,290.81081081081084,291.1711711711712,291.5315315315315,291.8918918918919,292.2522522522523,292.6126126126126,292.97297297297297,293.3333333333333,293.6936936936937,294.05405405405406,294.4144144144144,294.77477477477476,295.13513513513516,295.4954954954955,295.85585585585585,296.2162162162162,296.5765765765766,296.93693693693695,297.2972972972973,297.65765765765764,298.01801801801804,298.3783783783784,298.73873873873873,299.0990990990991,299.4594594594595,299.8198198198198,300.1801801801802,300.5405405405405,300.9009009009009,301.26126126126127,301.6216216216216,301.98198198198196,302.34234234234236,302.7027027027027,303.06306306306305,303.4234234234234,303.7837837837838,304.14414414414415,304.5045045045045,304.86486486486484,305.22522522522524,305.5855855855856,305.94594594594594,306.3063063063063,306.6666666666667,307.02702702702703,307.3873873873874,307.7477477477477,308.1081081081081,308.4684684684685,308.8288288288288,309.18918918918916,309.54954954954957,309.9099099099099,310.27027027027026,310.6306306306306,310.990990990991,311.35135135135135,311.7117117117117,312.07207207207205,312.43243243243245,312.7927927927928,313.15315315315314,313.5135135135135,313.8738738738739,314.23423423423424,314.5945945945946,314.9549549549549,315.31531531531533,315.6756756756757,316.036036036036,316.39639639639637,316.7567567567568,317.1171171171171,317.47747747747746,317.8378378378378,318.1981981981982,318.55855855855856,318.9189189189189,319.27927927927925,319.63963963963965,320.0,320.36036036036035,320.72072072072075,321.0810810810811,321.44144144144144,321.8018018018018,322.1621621621622,322.52252252252254,322.8828828828829,323.2432432432432,323.60360360360363,323.963963963964,324.3243243243243,324.68468468468467,325.0450450450451,325.4054054054054,325.76576576576576,326.1261261261261,326.4864864864865,326.84684684684686,327.2072072072072,327.56756756756755,327.92792792792795,328.2882882882883,328.64864864864865,329.009009009009,329.3693693693694,329.72972972972974,330.0900900900901,330.45045045045043,330.81081081081084,331.1711711711712,331.5315315315315,331.8918918918919,332.2522522522523,332.6126126126126,332.97297297297297,333.3333333333333,333.6936936936937,334.05405405405406,334.4144144144144,334.77477477477476,335.13513513513516,335.4954954954955,335.85585585585585,336.2162162162162,336.5765765765766,336.93693693693695,337.2972972972973,337.65765765765764,338.01801801801804,338.3783783783784,338.73873873873873,339.0990990990991,339.4594594594595,339.8198198198198,340.1801801801802,340.5405405405405,340.9009009009009,341.26126126126127,341.6216216216216,341.98198198198196,342.34234234234236,342.7027027027027,343.06306306306305,343.4234234234234,343.7837837837838,344.14414414414415,344.5045045045045,344.86486486486484,345.22522522522524,345.5855855855856,345.94594594594594,346.3063063063063,346.6666666666667,347.02702702702703,347.3873873873874,347.7477477477477,348.1081081081081,348.4684684684685,348.8288288288288,349.18918918918916,349.54954954954957,349.9099099099099,350.27027027027026,350.6306306306306,350.990990990991,351.35135135135135,351.7117117117117,352.07207207207205,352.43243243243245,352.7927927927928,353.15315315315314,353.5135135135135,353.8738738738739,354.23423423423424,354.5945945945946,354.9549549549549,355.31531531531533,355.6756756756757,356.036036036036,356.39639639639637,356.7567567567568,357.1171171171171,357.47747747747746,357.8378378378378,358.1981981981982,358.55855855855856,358.9189189189189,359.27927927927925,359.63963963963965,360.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..822d1bcadcce --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/fixtures/julia/runner.jl @@ -0,0 +1,70 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import JSON + +""" + gen( domain, name ) + +Generate fixture data and write to file. + +# Arguments + +* `domain`: domain +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = range( -1, stop = 1, length = 2001 ); +julia> gen( x, \"data.json\" ); +``` +""" +function gen( domain, name ) + x = collect( domain ); + y = sind.( x ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("expected", y) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Generate fixture data for negative values: +x = range( -360.0, stop = 0, length = 1000 ); +gen( x, "negative.json" ); + +# Generate fixture data for positive values: +x = range( 0.0, stop = 360.0, length = 1000 ); +gen( x, "positive.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/test.js b/lib/node_modules/@stdlib/math/base/special/sind/test/test.js new file mode 100644 index 000000000000..c4eec85bbcb0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/test.js @@ -0,0 +1,123 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var sind = require( './../lib' ); + + +// FIXTURES // + +var negative = require( './fixtures/julia/negative.json' ); +var positive = require( './fixtures/julia/positive.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.true( typeof sind, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided a `NaN`, the function returns `NaN`', function test( t ) { + var v = sind( NaN ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the sine of an angle measured in degrees (negative values)', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = negative.x; + expected = negative.expected; + + for ( i = 0; i < x.length; i++ ) { + y = sind( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the sine of an angle measured in degrees (positive values)', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = positive.x; + expected = positive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = sind( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'if provided `+infinity`, the function returns `NaN`', function test( t ) { + var v = sind( PINF ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `-infinity`, the function returns `NaN`', function test( t ) { + var v = sind( NINF ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a multiple of `180.0`, the function returns `0.0`', function test( t ) { + var v = sind( 180.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + v = sind( -180.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + v = sind( 360.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/sind/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/sind/test/test.native.js new file mode 100644 index 000000000000..84580ec571de --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/sind/test/test.native.js @@ -0,0 +1,132 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var sind = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( sind instanceof Error ) +}; + + +// FIXTURES // + +var negative = require( './fixtures/julia/negative.json' ); +var positive = require( './fixtures/julia/positive.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.true( typeof sind, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided a `NaN`, the function returns `NaN`', opts, function test( t ) { + var v = sind( NaN ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the sine of an angle measured in degrees (negative values)', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = negative.x; + expected = negative.expected; + + for ( i = 0; i < x.length; i++ ) { + y = sind( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the sine of an angle measured in degrees (positive values)', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = positive.x; + expected = positive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = sind( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'if provided `+infinity`, the function returns `NaN`', opts, function test( t ) { + var v = sind( PINF ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `-infinity`, the function returns `NaN`', opts, function test( t ) { + var v = sind( NINF ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a multiple of `180.0`, the function returns `0.0`', opts, function test( t ) { + var v = sind( 180.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + v = sind( -180.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + v = sind( 360.0 ); + t.equal( v, 0.0, 'returns expected value' ); + + t.end(); +});