From 6874b78b0e472cb1c063f043839fb48e4b9ac797 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 25 Apr 2024 07:02:16 +0000 Subject: [PATCH] Auto-generated commit --- .gitattributes | 1 + base/special/asecdf/README.md | 203 ++++++++++++++++++ base/special/asecdf/benchmark/benchmark.js | 51 +++++ .../asecdf/benchmark/benchmark.native.js | 60 ++++++ .../asecdf/benchmark/c/native/Makefile | 146 +++++++++++++ .../asecdf/benchmark/c/native/benchmark.c | 136 ++++++++++++ base/special/asecdf/binding.gyp | 170 +++++++++++++++ base/special/asecdf/docs/repl.txt | 29 +++ base/special/asecdf/docs/types/index.d.ts | 60 ++++++ base/special/asecdf/docs/types/test.ts | 44 ++++ base/special/asecdf/examples/c/Makefile | 146 +++++++++++++ base/special/asecdf/examples/c/example.c | 31 +++ base/special/asecdf/examples/index.js | 29 +++ base/special/asecdf/include.gypi | 53 +++++ .../include/stdlib/math/base/special/asecdf.h | 38 ++++ base/special/asecdf/lib/index.js | 56 +++++ base/special/asecdf/lib/main.js | 71 ++++++ base/special/asecdf/lib/native.js | 70 ++++++ base/special/asecdf/manifest.json | 75 +++++++ base/special/asecdf/package.json | 69 ++++++ base/special/asecdf/src/Makefile | 70 ++++++ base/special/asecdf/src/addon.c | 23 ++ base/special/asecdf/src/main.c | 35 +++ .../asecdf/test/fixtures/julia/REQUIRE | 2 + .../asecdf/test/fixtures/julia/negative.json | 1 + .../asecdf/test/fixtures/julia/positive.json | 1 + .../asecdf/test/fixtures/julia/runner.jl | 69 ++++++ base/special/asecdf/test/test.js | 122 +++++++++++ base/special/asecdf/test/test.native.js | 131 +++++++++++ 29 files changed, 1992 insertions(+) create mode 100644 base/special/asecdf/README.md create mode 100644 base/special/asecdf/benchmark/benchmark.js create mode 100644 base/special/asecdf/benchmark/benchmark.native.js create mode 100644 base/special/asecdf/benchmark/c/native/Makefile create mode 100644 base/special/asecdf/benchmark/c/native/benchmark.c create mode 100644 base/special/asecdf/binding.gyp create mode 100644 base/special/asecdf/docs/repl.txt create mode 100644 base/special/asecdf/docs/types/index.d.ts create mode 100644 base/special/asecdf/docs/types/test.ts create mode 100644 base/special/asecdf/examples/c/Makefile create mode 100644 base/special/asecdf/examples/c/example.c create mode 100644 base/special/asecdf/examples/index.js create mode 100644 base/special/asecdf/include.gypi create mode 100644 base/special/asecdf/include/stdlib/math/base/special/asecdf.h create mode 100644 base/special/asecdf/lib/index.js create mode 100644 base/special/asecdf/lib/main.js create mode 100644 base/special/asecdf/lib/native.js create mode 100644 base/special/asecdf/manifest.json create mode 100644 base/special/asecdf/package.json create mode 100644 base/special/asecdf/src/Makefile create mode 100644 base/special/asecdf/src/addon.c create mode 100644 base/special/asecdf/src/main.c create mode 100644 base/special/asecdf/test/fixtures/julia/REQUIRE create mode 100644 base/special/asecdf/test/fixtures/julia/negative.json create mode 100644 base/special/asecdf/test/fixtures/julia/positive.json create mode 100644 base/special/asecdf/test/fixtures/julia/runner.jl create mode 100644 base/special/asecdf/test/test.js create mode 100644 base/special/asecdf/test/test.native.js diff --git a/.gitattributes b/.gitattributes index eb7e8cb9e..1c88e69c0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -60,6 +60,7 @@ Makefile linguist-vendored *.mk linguist-vendored *.jl linguist-vendored *.py linguist-vendored +*.R linguist-vendored # Configure files which should be included in GitHub language statistics: docs/types/*.d.ts -linguist-documentation diff --git a/base/special/asecdf/README.md b/base/special/asecdf/README.md new file mode 100644 index 000000000..4aaf60672 --- /dev/null +++ b/base/special/asecdf/README.md @@ -0,0 +1,203 @@ + + +# asecdf + +> Compute the [arcsecant][arcsecant] (in degrees) of a single-precision floating-point number. + +
+ +## Usage + +```javascript +var asecdf = require( '@stdlib/math/base/special/asecdf' ); +``` + +#### asecdf( x ) + +Computes the [arcsecant][arcsecant] (in degrees) of a single-precision floating-point number. + +```javascript +var sqrtf = require( '@stdlib/math/base/special/sqrtf' ); + +var v = asecdf( Infinity ); +// returns 90.0 + +v = asecdf( 2.0 * sqrtf( 3.0 ) / 3.0 ); +// returns ~30.0 + +v = asecdf( sqrtf( 2.0 ) ); +// returns 45.0 + +v = asecdf( 2.0 ); +// returns ~60.0 + +v = asecdf( 1.0 ); +// returns 0.0 + +v = asecdf( NaN ); +// returns NaN +``` + +The domain of `x` is restricted to the intervals `[-inf, -1]` and `[1, inf]`. For `x` outside of these intervals, the function returns `NaN`. + +```javascript +var v = asecdf( -0.5 ); +// returns NaN + +v = asecdf( 0.5 ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var linspace = require( '@stdlib/array/base/linspace' ); +var asecdf = require( '@stdlib/math/base/special/asecdf' ); + +var x = linspace( 1.1, 5.1, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( asecdf( x[ i ] ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/asecdf.h" +``` + +#### stdlib_base_asecdf( x ) + +Computes the [arcsecant][arcsecant] (in degrees) of a single-precision floating-point number. + +```c +float out = stdlib_base_asecdf( 1.0f ); +// returns 0.0f + +out = stdlib_base_asecdf( 2.0f ); +// returns ~60.0f +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. + +```c +float stdlib_base_asecdf( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/asecdf.h" +#include + +int main( void ) { + const float x[] = { 1.1f, 1.55f, 1.99f, 2.44f, 2.88f, 3.32f, 3.77f, 4.21f, 4.66f, 5.1f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_asecdf( x[ i ] ); + printf( "acscd(%f) = %f\n", x[ i ], v ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/base/special/asecdf/benchmark/benchmark.js b/base/special/asecdf/benchmark/benchmark.js new file mode 100644 index 000000000..05f856283 --- /dev/null +++ b/base/special/asecdf/benchmark/benchmark.js @@ -0,0 +1,51 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var pkg = require( './../package.json' ).name; +var asecdf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu() * 2.0 ) + 1.0; + y = asecdf( x ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/base/special/asecdf/benchmark/benchmark.native.js b/base/special/asecdf/benchmark/benchmark.native.js new file mode 100644 index 000000000..97e39edd8 --- /dev/null +++ b/base/special/asecdf/benchmark/benchmark.native.js @@ -0,0 +1,60 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var asecdf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( asecdf instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu() * 2.0 ) + 1.0; + y = asecdf( x ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/base/special/asecdf/benchmark/c/native/Makefile b/base/special/asecdf/benchmark/c/native/Makefile new file mode 100644 index 000000000..f69e9da2b --- /dev/null +++ b/base/special/asecdf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles 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/base/special/asecdf/benchmark/c/native/benchmark.c b/base/special/asecdf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000..a89b7884b --- /dev/null +++ b/base/special/asecdf/benchmark/c/native/benchmark.c @@ -0,0 +1,136 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Benchmark `asecdf`. +*/ +#include "stdlib/math/base/special/asecdf.h" +#include +#include +#include +#include +#include + +#define NAME "asecdf" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +void print_version() { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +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 +*/ +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 +*/ +double tic() { + 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 +*/ +float rand_float() { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +double benchmark() { + double elapsed; + double t; + float x; + float y; + int i; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = ( 2.0f * rand_float() ) + 1.0f; + y = stdlib_base_asecdf( x ); + 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/base/special/asecdf/binding.gyp b/base/special/asecdf/binding.gyp new file mode 100644 index 000000000..ec3992233 --- /dev/null +++ b/base/special/asecdf/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# 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/base/special/asecdf/docs/repl.txt b/base/special/asecdf/docs/repl.txt new file mode 100644 index 000000000..5ff229c1f --- /dev/null +++ b/base/special/asecdf/docs/repl.txt @@ -0,0 +1,29 @@ + +{{alias}}( x ) + Computes the arcsecant (in degrees) of a single-precision floating-point + number. + + If `x` does not satisy `x >= 1` or `x <= -1`, the function returns NaN. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Arcsecant (in degrees). + + Examples + -------- + > var y = {{alias}}( 2.0 ) + ~60.0 + > y = {{alias}}( 0.0 ) + NaN + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/base/special/asecdf/docs/types/index.d.ts b/base/special/asecdf/docs/types/index.d.ts new file mode 100644 index 000000000..394b542c2 --- /dev/null +++ b/base/special/asecdf/docs/types/index.d.ts @@ -0,0 +1,60 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Computes the arcsecant (in degrees) of a single-precision floating-point number. +* +* @param x - input value +* @returns arcsecant (in degrees) +* +* @example +* var v = asecdf( 1.0 ); +* // returns 0.0 +* +* @example +* var v = asecdf( 2.0 ); +* // returns ~60.0 +* +* @example +* var sqrtf = require( '@stdlib/math/base/special/sqrtf' ); +* +* var v = asecdf( 2.0 * sqrtf( 3.0 ) / 3.0 ); +* // returns ~30.0 +* +* @example +* var sqrtf = require( '@stdlib/math/base/special/sqrtf' ); +* +** var v = asecdf( sqrtf( 2.0 ) ); +* // returns 45.0 +* +* @example +* var v = asecdf( Infinity ); +* // returns 90.0 +* +* @example +* var v = asecdf( NaN ); +* // returns NaN +*/ +declare function asecdf( x: number ): number; + + +// EXPORTS // + +export = asecdf; diff --git a/base/special/asecdf/docs/types/test.ts b/base/special/asecdf/docs/types/test.ts new file mode 100644 index 000000000..374701471 --- /dev/null +++ b/base/special/asecdf/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import asecdf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + asecdf( 0.5 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + asecdf( true ); // $ExpectError + asecdf( false ); // $ExpectError + asecdf( null ); // $ExpectError + asecdf( undefined ); // $ExpectError + asecdf( '5' ); // $ExpectError + asecdf( [] ); // $ExpectError + asecdf( {} ); // $ExpectError + asecdf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + asecdf(); // $ExpectError +} diff --git a/base/special/asecdf/examples/c/Makefile b/base/special/asecdf/examples/c/Makefile new file mode 100644 index 000000000..6aed70daf --- /dev/null +++ b/base/special/asecdf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := 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/base/special/asecdf/examples/c/example.c b/base/special/asecdf/examples/c/example.c new file mode 100644 index 000000000..f30f127c7 --- /dev/null +++ b/base/special/asecdf/examples/c/example.c @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/asecdf.h" +#include + +int main( void ) { + const float x[] = { 1.1f, 1.55f, 1.99f, 2.44f, 2.88f, 3.32f, 3.77f, 4.21f, 4.66f, 5.1f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_asecdf( x[ i ] ); + printf( "asecd(%f) = %f\n", x[ i ], v ); + } +} diff --git a/base/special/asecdf/examples/index.js b/base/special/asecdf/examples/index.js new file mode 100644 index 000000000..d0f4a29f8 --- /dev/null +++ b/base/special/asecdf/examples/index.js @@ -0,0 +1,29 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var linspace = require( '@stdlib/array/base/linspace' ); +var asecdf = require( './../lib' ); + +var x = linspace( 1.1, 5.1, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( 'asecdf(%d) = %d', x[ i ], asecdf( x[ i ] ) ); +} diff --git a/base/special/asecdf/include.gypi b/base/special/asecdf/include.gypi new file mode 100644 index 000000000..575cb043c --- /dev/null +++ b/base/special/asecdf/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# 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", + "math.asec", + "asec", + "degree", + "arcsecant", + "secant", + "inverse", + "trig", + "trigonometry", + "radians" + ] +} diff --git a/base/special/asecdf/src/Makefile b/base/special/asecdf/src/Makefile new file mode 100644 index 000000000..bcf18aa46 --- /dev/null +++ b/base/special/asecdf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# 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/base/special/asecdf/src/addon.c b/base/special/asecdf/src/addon.c new file mode 100644 index 000000000..f28dc183e --- /dev/null +++ b/base/special/asecdf/src/addon.c @@ -0,0 +1,23 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/asecdf.h" +#include "stdlib/math/base/napi/unary.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_asecdf ) diff --git a/base/special/asecdf/src/main.c b/base/special/asecdf/src/main.c new file mode 100644 index 000000000..e2c06cc8b --- /dev/null +++ b/base/special/asecdf/src/main.c @@ -0,0 +1,35 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/asecdf.h" +#include "stdlib/math/base/special/asecf.h" +#include "stdlib/math/base/special/rad2degf.h" + +/** +* Computes the arcsecant (in degrees) of a single-precision floating-point number. +* +* @param x input value +* @return arcsecant (in degrees) +* +* @example +* float v = stdlib_base_asecdf( 1.0f ); +* // returns 0.0f +*/ +float stdlib_base_asecdf( const float x ) { + return stdlib_base_rad2degf( stdlib_base_asecf( x ) ); +} diff --git a/base/special/asecdf/test/fixtures/julia/REQUIRE b/base/special/asecdf/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000..ae40bf736 --- /dev/null +++ b/base/special/asecdf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 \ No newline at end of file diff --git a/base/special/asecdf/test/fixtures/julia/negative.json b/base/special/asecdf/test/fixtures/julia/negative.json new file mode 100644 index 000000000..175286887 --- /dev/null +++ b/base/special/asecdf/test/fixtures/julia/negative.json @@ -0,0 +1 @@ +{"expected":[180.0,131.84447722482895,120.03308525069193,113.60819502763904,109.49824138381,106.62596490093894,104.49971495805177,102.85991439658055,101.55568361530126,100.4930288465291,99.61022063721603,98.86499084441125,98.22739811784237,97.67562666422535,97.19339797077161,96.76831484888639,96.39076740033204,96.05318995379199,95.7495440670132,95.47495110861546,95.22542618455526,94.99768218967345,94.78898330507229,94.59703395689313,94.41989360102836,94.25591058131215,94.10367025547617,93.96195391996787,93.82970599694767,93.70600760613398,93.59005511665389,93.48114261676609,93.3786474907074,93.28201847825153,93.1907657320482,93.10445249317304,93.02268808559782,92.94512199195088,92.87143882066056,92.80135401177361,92.73461015793742,92.67097384009337,92.61023289575547,92.55219405239453,92.49668087022002,92.44353194816152,92.3925993545729,92.34374725048075,92.2968506783611,92.25179449367552,92.20847241991,92.16678621077223,92.12664490563037,92.08796416630427,92.0506656850223,92.01467665478941,91.97992929462168,91.94636042312743,91.91391107478609,91.88252615401773,91.85215412277066,91.8227467178976,91.79425869505816,91.76664759628707,91.73987353871533,91.71389902223129,91.68868875412997,91.664209489025,91.64042988249547,91.61732035711186,91.59485297963653,91.57300134832593,91.55174048937819,91.5310467616717,91.51089776903024,91.49127227932988,91.4721501498331,91.45351225819792,91.435340438665,91.41761742297486,91.40032678561126,91.38345289300536,91.36698085637056,91.35089648786878,91.33518625983663,91.31983726682543,91.30483719023073,91.29017426530784,91.27583725038745,91.26181539812231,91.24809842860967,91.2346765042492,91.22154020620611,91.20868051236181,91.1960887766431,91.18375670963079,91.17167636035592,91.1598400991999,91.1482406018209,91.13687083403573,91.12572403759125,91.11479371676502,91.10407362573936,91.0935577566971,91.08324032859142,91.07311577654578,91.06317874184279,91.0534240624645,91.04384676414877,91.03444205192929,91.02520530212898,91.01613205477861,91.00721800643471,90.99845900337208,90.98985103512878,90.98139022838211,90.97307284113612,90.96489525720224,90.95685398095598,90.94894563235377,90.94116694219483,90.93351474761427,90.92598598779448,90.91857769988212,90.91128701509987,90.90411115504185,90.89704742814263,90.89009322631067,90.88324602171703,90.87650336373136,90.86986287599706,90.86332225363847,90.85687926059319,90.85053172706286,90.84427754707662,90.83811467616108,90.83204112911186,90.82605497786112,90.82015434943668,90.81433742400782,90.80860243301395,90.80294765737143,90.7973714257555,90.79187211295306,90.78644813828326,90.78109796408258,90.77582009425124,90.77061307285835,90.76547548280257,90.76040594452634,90.75540311478056,90.75046568543796,90.74559238235256,90.74078196426336,90.73603322174021,90.73134497616986,90.72671607878074,90.72214540970425,90.71763187707163,90.71317441614408,90.70877198847539,90.70442358110537,90.70012820578265,90.69588489821587,90.69169271735193,90.6875507446801,90.68345808356102,90.67941385857966,90.67541721492087,90.67146731776702,90.66756335171664,90.66370452022313,90.65989004505299,90.65611916576242,90.65239113919195,90.64870523897812,90.6450607550816,90.64145699333122,90.63789327498303,90.63436893629428,90.63088332811101,90.62743581546965,90.6240257772112,90.6206526056082,90.61731570600357,90.61401449646112,90.61074840742722,90.60751688140319,90.60431937262798,90.60115534677092,90.59802428063404,90.59492566186358,90.59185898867052,90.58882376955967,90.585819523067,90.58284577750506,90.5799020707161,90.57698794983256,90.57410297104477,90.57124669937573,90.56841870846236,90.56561858034333,90.56284590525314,90.56010028142222,90.55738131488283,90.55468861928053,90.55202181569126,90.54938053244351,90.54676440494563,90.54417307551805,90.54160619323024,90.5390634137423,90.53654439915097,90.53404881783982,90.5315763443339,90.52912665915804,90.52669944869933,90.52429440507328,90.52191122599353,90.51954961464533,90.51720927956211,90.51488993450575,90.5125912983497,90.51031309496554,90.50805505311227,90.5058169063287,90.50359839282861,90.5013992553987,90.49921924129914,90.49705810216675,90.49491559392068,90.49279147667048,90.49068551462659,90.48859747601304,90.48652713298247,90.48447426153321,90.48243864142844,90.48042005611754,90.47841829265914,90.47643314164638,90.47446439713377,90.47251185656602,90.47057532070856,90.46865459357976,90.46674948238478,90.46485979745113,90.46298535216563,90.46112596291304,90.4592814490161,90.45745163267692,90.45563633891993,90.4538353955361,90.45204863302843,90.45027588455875,90.44851698589592,90.44677177536494,90.44504009379754,90.44332178448369,90.44161669312437,90.43992466778545,90.43824555885239,90.43657921898625,90.43492550308062,90.43328426821941,90.43165537363572,90.43003868067161,90.42843405273868,90.42684135527968,90.42526045573088,90.4236912234852,90.42213352985642,90.4205872480438,90.4190522530978,90.41752842188637,90.41601563306205,90.41451376702972,90.41302270591513,90.41154233353402,90.41007253536192,90.40861319850471,90.40716421166962,90.40572546513695,90.40429685073242,90.4028782618,90.40146959317542,90.40007074116012,90.39868160349587,90.39730207933982,90.39593206924006,90.39457147511176,90.39322020021376,90.39187814912566,90.39054522772527,90.38922134316671,90.38790640385879,90.38660031944393,90.38530300077736,90.38401435990698,90.38273431005341,90.38146276559047,90.38019964202617,90.37894485598393,90.37769832518424,90.37645996842673,90.37522970557248,90.37400745752673,90.37279314622197,90.3715866946013,90.3703880266021,90.3691970671401,90.36801374209364,90.36683797828833,90.36566970348198,90.36450884634974,90.36335533646967,90.36220910430842,90.3610700812073,90.35993819936859,90.358813391842,90.35769559251159,90.3565847360827,90.35548075806932,90.3543835947816,90.35329318331351,90.35220946153096,90.35113236805988,90.35006184227471,90.34899782428697,90.34794025493413,90.3468890757686,90.34584422904703,90.34480565771966,90.34377330542,90.34274711645462,90.34172703579304,90.34071300905808,90.339704982516,90.33870290306714,90.33770671823656,90.33671637616486,90.33573182559915,90.33475301588435,90.33377989695431,90.33281241932339,90.33185053407809,90.33089419286871,90.32994334790135,90.32899795192985,90.32805795824805,90.32712332068206,90.32619399358268,90.32526993181801,90.32435109076613,90.32343742630788,90.32252889481985,90.32162545316741,90.3207270586979,90.31983366923386,90.31894524306655,90.31806173894932,90.31718311609133,90.3163093341512,90.3154403532309,90.31457613386961,90.3137166370378,90.31286182413137,90.3120116569658,90.31116609777045,90.31032510918313,90.30948865424439,90.30865669639223,90.30782919945678,90.30700612765494,90.30618744558537,90.30537311822327,90.30456311091557,90.30375738937579,90.3029559196794,90.30215866825895,90.30136560189939,90.30057668773348,90.29979189323727,90.29901118622556,90.29823453484762,90.29746190758271,90.29669327323592,90.29592860093393,90.29516786012093,90.29441102055445,90.29365805230144,90.29290892573427,90.29216361152689,90.29142208065099,90.29068430437216,90.28995025424634,90.28921990211596,90.28849322010652,90.28777018062291,90.28705075634602,90.28633492022924,90.28562264549505,90.28491390563177,90.28420867439016,90.2835069257803,90.28280863406825,90.28211377377305,90.28142231966352,90.28073424675527,90.28004953030765,90.27936814582078,90.27869006903269,90.27801527591633,90.27734374267686,90.27667544574878,90.27601036179313,90.27534846769488,90.27468974056019,90.27403415771376,90.27338169669628,90.27273233526178,90.27208605137523,90.27144282320988,90.27080262914498,90.27016544776323,90.26953125784843,90.26890003838312,90.2682717685463,90.26764642771109,90.26702399544247,90.2664044514951,90.2657877758111,90.26517394851787,90.26456294992599,90.26395476052703,90.26334936099163,90.2627467321673,90.26214685507648,90.26154971091451,90.26095528104769,90.26036354701137,90.25977449050795,90.25918809340506,90.25860433773373,90.25802320568643,90.25744467961542,90.25686874203083,90.25629537559897,90.25572456314057,90.25515628762909,90.25459053218894,90.25402728009394,90.25346651476555,90.25290821977134,90.25235237882332,90.2517989757764,90.25124799462675,90.25069941951038,90.25015323470149,90.2496094246111,90.24906797378542,90.24852886690446,90.24799208878069,90.24745762435737,90.24692545870737,90.24639557703165,90.24586796465795,90.24534260703942,90.24481948975324,90.24429859849938,90.24377991909925,90.24326343749439,90.24274913974526,90.24223701202993,90.24172704064287,90.24121921199374,90.24071351260615,90.24020992911647,90.23970844827274,90.23920905693333,90.23871174206596,90.23821649074648,90.23772329015779,90.23723212758873,90.2367429904329,90.23625586618776,90.23577074245338,90.23528760693151,90.23480644742452,90.23432725183427,90.23385000816126,90.23337470450352,90.23290132905565,90.23242987010782,90.23196031604489,90.2314926553453,90.23102687658029,90.23056296841287,90.23010091959694,90.22964071897631,90.22918235548397,90.22872581814102,90.22827109605588,90.22781817842342,90.22736705452408,90.22691771372305,90.22647014546945,90.22602433929544,90.22558028481544,90.22513797172536,90.22469738980176,90.22425852890103,90.2238213789587,90.22338592998862,90.2229521720822,90.22252009540762,90.22208969020917,90.22166094680647,90.22123385559374,90.22080840703909,90.22038459168384,90.21996240014172,90.21954182309833,90.21912285131033,90.2187054756048,90.2182896868786,90.21787547609767,90.21746283429641,90.21705175257698,90.2166422221087,90.21623423412744,90.21582777993494,90.21542285089824,90.215019438449,90.214617534083,90.21421712935947,90.21381821590047,90.21342078539043,90.21302482957539,90.21263034026262,90.21223730931992,90.21184572867512,90.21145559031552,90.2110668862873,90.21067960869507,90.21029374970125,90.20990930152558,90.20952625644459,90.20914460679109,90.20876434495362,90.20838546337603,90.20800795455688,90.20763181104901,90.20725702545903,90.20688359044682,90.2065114987251,90.2061407430589,90.20577131626509,90.20540321121197,90.20503642081881,90.2046709380553,90.20430675594122,90.2039438675459,90.20358226598788,90.20322194443435,90.20286289610085,90.20250511425076,90.20214859219489,90.20179332329108,90.20143930094379,90.20108651860369,90.20073496976721,90.20038464797624,90.2000355468176,90.19968765992279,90.19934098096753,90.19899550367136,90.19865122179725,90.19830812915133,90.19796621958241,90.19762548698166,90.1972859252822,90.19694752845882,90.19661029052757,90.19627420554538,90.1959392676098,90.19560547085858,90.19527280946933,90.19494127765921,90.19461086968461,90.19428157984076,90.19395340246147,90.19362633191874,90.19330036262247,90.19297548902016,90.19265170559659,90.19232900687345,90.1920073874091,90.19168684179822,90.19136736467156,90.19104895069556,90.19073159457216,90.19041529103836,90.19010003486609,90.18978582086183,90.1894726438663,90.18916049875425,90.18884938043418,90.18853928384797,90.18823020397069,90.18792213581033,90.18761507440747,90.1873090148351,90.18700395219825,90.18669988163386,90.18639679831035,90.18609469742756,90.18579357421635,90.18549342393838,90.18519424188595,90.1848960233816,90.18459876377801,90.18430245845767,90.1840071028327,90.18371269234451,90.18341922246374,90.18312668868985,90.182835086551,90.18254441160376,90.18225465943294,90.18196582565135,90.1816779058995,90.18139089584552,90.18110479118488,90.18081958764006,90.18053528096056,90.1802518669225,90.17996934132852,90.17968770000752,90.17940693881445,90.17912705363017,90.17884804036116,90.1785698949394,90.17829261332211,90.17801619149161,90.17774062545506,90.17746591124434,90.17719204491581,90.17691902255014,90.1766468402521,90.17637549415043,90.17610498039758,90.17583529516962,90.17556643466594,90.1752983951092,90.17503117274505,90.17476476384205,90.17449916469137,90.17423437160676,90.17397038092426,90.17370718900214,90.1734447922206,90.17318318698173,90.17292236970931,90.17266233684859,90.17240308486616,90.17214461024984,90.17188690950847,90.17162997917175,90.17137381579012,90.17111841593456,90.17086377619646,90.1706098931875,90.17035676353946,90.17010438390405,90.1698527509528,90.16960186137695,90.1693517118872,90.16910229921366,90.1688536201057,90.1686056713317,90.1683584496791,90.16811195195409,90.16786617498154,90.16762111560485,90.16737677068589,90.16713313710471,90.1668902117596,90.16664799156675,90.16640647346033,90.16616565439216,90.16592553133177,90.16568610126612,90.16544736119955,90.16520930815366,90.16497193916716,90.16473525129574,90.16449924161196,90.16426390720517,90.16402924518131,90.16379525266285,90.16356192678866,90.16332926471388,90.16309726360984,90.16286592066388,90.1626352330793,90.1624051980752,90.16217581288645,90.16194707476345,90.16171898097213,90.16149152879377,90.16126471552498,90.1610385384775,90.1608129949781,90.16058808236856,90.16036379800549,90.16014013926024,90.15991710351881,90.15969468818172,90.15947289066399,90.1592517083949,90.15903113881807,90.15881117939117,90.15859182758597,90.15837308088817,90.15815493679732,90.15793739282675,90.15772044650342,90.15750409536791,90.15728833697422,90.15707316888974,90.15685858869521,90.15664459398451,90.15643118236466,90.15621835145569,90.1560060988906,90.15579442231517,90.15558331938801,90.15537278778038,90.15516282517609,90.1549534292715,90.15474459777538,90.15453632840881,90.15432861890514,90.15412146700992,90.15391487048073,90.15370882708719,90.15350333461085,90.15329839084508,90.15309399359508,90.15289014067766,90.1526868299213,90.15248405916599,90.15228182626319,90.15208012907573,90.15187896547776,90.15167833335467,90.15147823060299,90.15127865513037,90.1510796048554,90.15088107770768,90.15068307162767,90.15048558456658,90.1502886144864,90.15009215935977,90.14989621716988,90.14970078591044,90.14950586358567,90.14931144821011,90.14911753780865,90.14892413041639,90.14873122407863,90.14853881685082,90.1483469067984,90.14815549199682,90.14796457053147,90.14777414049756,90.14758420000011,90.1473947471539,90.14720578008331,90.1470172969224,90.14682929581473,90.14664177491333,90.14645473238073,90.14626816638871,90.14608207511846,90.14589645676034,90.14571130951396,90.14552663158797,90.14534242120018,90.14515867657735,90.14497539595524,90.1447925775785,90.14461021970058,90.14442832058377,90.14424687849908,90.14406589172617,90.14388535855333,90.14370527727749,90.14352564620398,90.14334646364667,90.14316772792782,90.14298943737805,90.1428115903363,90.1426341851497,90.14245722017367,90.14228069377172,90.14210460431549,90.14192895018468,90.14175372976693,90.14157894145794,90.1414045836612,90.14123065478812,90.1410571532579,90.1408840774975,90.1407114259416,90.14053919703254,90.14036738922024,90.14019600096226,90.14002503072362,90.13985447697685,90.13968433820193,90.13951461288619,90.13934529952431,90.13917639661828,90.13900790267735,90.13883981621797,90.13867213576377,90.13850485984545,90.1383379870009,90.13817151577491,90.13800544471941,90.13783977239315,90.13767449736187,90.1375096181982,90.1373451334815,90.13718104179804,90.13701734174077,90.13685403190932,90.13669111091009,90.13652857735599,90.1363664298666,90.13620466706803,90.13604328759288,90.13588229008026,90.13572167317568,90.13556143553107,90.1354015758047,90.13524209266117,90.13508298477139,90.13492425081247,90.13476588946776,90.13460789942675,90.13445027938515,90.13429302804468,90.13413614411317,90.13397962630448,90.13382347333847,90.13366768394093,90.13351225684362,90.13335719078415,90.13320248450604,90.13304813675857,90.13289414629688,90.1327405118818,90.13258723227992,90.1324343062635,90.13228173261052,90.13212951010449,90.13197763753458,90.13182611369548,90.13167493738744,90.13152410741623,90.13137362259299,90.13122348173441,90.1310736836625,90.13092422720469,90.13077511119373,90.13062633446768,90.13047789586989,90.13032979424895,90.1301820284587,90.13003459735816,90.12988749981149,90.129740734688,90.12959430086211,90.1294481972133,90.12930242262613,90.12915697599014,90.12901185619988,90.12886706215485,90.12872259275952,90.12857844692324,90.12843462356022,90.12829112158957,90.12814793993519,90.12800507752577,90.12786253329482,90.12772030618056,90.12757839512592,90.12743679907857,90.12729551699078,90.12715454781953,90.12701389052636,90.12687354407741,90.12673350744342,90.12659377959963,90.12645435952581,90.12631524620623,90.12617643862961,90.1260379357891,90.1258997366823,90.12576184031117,90.12562424568203,90.12548695180561,90.12534995769688,90.12521326237514,90.12507686486398,90.12494076419122,90.12480495938888,90.12466944949325,90.12453423354475,90.12439931058798,90.12426467967165,90.12413033984863,90.12399629017584,90.12386252971427,90.123729057529,90.1235958726891,90.12346297426762,90.12333036134166,90.12319803299224,90.12306598830429,90.12293422636674,90.12280274627234,90.12267154711775,90.12254062800349,90.12240998803392,90.12227962631718,90.12214954196524,90.12201973409387,90.1218902018225,90.12176094427438,90.12163196057648,90.1215032498594,90.12137481125745,90.12124664390862,90.1211187469545,90.1209911195403,90.12086376081488,90.12073666993062,90.12060984604348,90.12048328831297,90.12035699590213,90.12023096797748,90.12010520370904,90.11997970227034,90.11985446283829,90.11972948459326,90.11960476671906,90.11948030840288,90.11935610883529,90.11923216721021,90.11910848272493,90.11898505458002,90.11886188197943,90.11873896413033,90.11861630024325,90.11849388953189,90.11837173121324,90.11824982450752,90.11812816863814,90.11800676283173,90.11788560631804,90.11776469833005,90.11764403810383,90.11752362487861,90.11740345789671,90.11728353640356,90.11716385964768,90.1170444268806,90.11692523735695,90.11680629033441,90.11668758507363,90.11656912083828,90.116450896895,90.11633291251346,90.11621516696621,90.1160976595288,90.11598038947969,90.11586335610022,90.11574655867467,90.11562999649021,90.11551366883683,90.11539757500742,90.11528171429767,90.11516608600614,90.11505068943418,90.11493552388592,90.1148205886683,90.114705883091,90.1145914064665,90.11447715811,90.11436313733941,90.11424934347538,90.11413577584123,90.11402243376301,90.11390931656942,90.11379642359182,90.11368375416423,90.11357130762327,90.11345908330826,90.11334708056104,90.11323529872611,90.11312373715049,90.11301239518384,90.11290127217835,90.11279036748874,90.11267968047227,90.11256921048874,90.11245895690043,90.11234891907215,90.11223909637113,90.11212948816717,90.11202009383244,90.11191091274162,90.11180194427176,90.1116931878024,90.11158464271546,90.11147630839525,90.11136818422848,90.11126026960427,90.11115256391406,90.11104506655164,90.1109377769132,90.11083069439718,90.11072381840442,90.11061714833801,90.11051068360337,90.11040442360819,90.11029836776247,90.1101925154784,90.11008686617052,90.10998141925555,90.10987617415245,90.10977113028241,90.10966628706885,90.10956164393734,90.10945720031572,90.10935295563391,90.1092489093241,90.10914506082057,90.10904140955974,90.10893795498025,90.10883469652279,90.1087316336302,90.10862876574743,90.10852609232153,90.1084236128016,90.10832132663887,90.10821923328663,90.10811733220021,90.10801562283699,90.1079141046564,90.1078127771199,90.10771163969098,90.10761069183513,90.10750993301981,90.10740936271455,90.10730898039077,90.10720878552195,90.10710877758349,90.10700895605275,90.10690932040903,90.10680987013356,90.10671060470956,90.10661152362209,90.10651262635818,90.10641391240671,90.10631538125848,90.1062170324062,90.10611886534441,90.10602087956956,90.10592307457989,90.10582544987555,90.10572800495855,90.10563073933265,90.10553365250351,90.10543674397856,90.10534001326708,90.10524345988009,90.10514708333046,90.10505088313283,90.10495485880358,90.10485900986087,90.10476333582467,90.1046678362166,90.10457251056013,90.1044773583804,90.10438237920428,90.1042875725604,90.10419293797904,90.10409847499223,90.1040041831337,90.1039100619388,90.10381611094466,90.10372232969,90.10362871771525,90.10353527456249,90.10344199977544,90.10334889289946,90.10325595348155,90.10316318107037,90.10307057521615,90.10297813547074,90.10288586138765,90.10279375252192,90.10270180843023,90.1026100286708,90.10251841280348,90.10242696038966,90.10233567099232,90.10224454417592,90.10215357950659,90.10206277655189,90.101972134881,90.10188165406456,90.1017913336748,90.1017011732854,90.1016111724716,90.10152133081013,90.1014316478792,90.1013421232585,90.10125275652923,90.10116354727408,90.10107449507717,90.1009855995241,90.10089686020191,90.10080827669913,90.10071984860569,90.10063157551299,90.10054345701384,90.1004554927025,90.10036768217459,90.10028002502725,90.10019252085891,90.10010516926945,90.10001796986018,90.09993092223374,90.09984402599417,90.09975728074691,90.09967068609875,90.09958424165782,90.09949794703365,90.09941180183712,90.09932580568044,90.09923995817714,90.09915425894212,90.0990687075916,90.09898330374311,90.09889804701554,90.09881293702902,90.09872797340506,90.09864315576641,90.09855848373716,90.09847395694267,90.09838957500958,90.09830533756583,90.09822124424059,90.09813729466435,90.09805348846884,90.09796982528702,90.09788630475316,90.09780292650271,90.09771969017243,90.09763659540023,90.09755364182534,90.09747082908817,90.09738815683035,90.09730562469471,90.09722323232535,90.0971409793675,90.09705886546763,90.09697689027341,90.09689505343367,90.09681335459845,90.09673179341897,90.0966503695476,90.0965690826379,90.09648793234459,90.09640691832354,90.09632604023182,90.09624529772755,90.0961646904701,90.09608421811994,90.09600388033867,90.09592367678901,90.09584360713484,90.09576367104113,90.09568386817399,90.09560419820062,90.09552466078935,90.09544525560959,90.09536598233187,90.0952868406278,90.09520783017007,90.0951289506325,90.09505020168993,90.0949715830183,90.09489309429466,90.09481473519706,90.09473650540464,90.09465840459761,90.09458043245725,90.09450258866582,90.09442487290671,90.09434728486428,90.094269824224,90.09419249067228,90.09411528389664,90.09403820358557,90.09396124942862,90.09388442111633,90.09380771834024,90.09373114079294,90.09365468816799,90.09357836015995,90.0935021564644,90.09342607677787,90.09335012079791,90.09327428822304,90.09319857875276,90.09312299208756,90.09304752792886,90.0929721859791,90.09289696594163,90.09282186752083,90.09274689042195,90.09267203435122,90.09259729901589,90.09252268412405,90.09244818938477,90.09237381450808,90.09229955920493,90.09222542318717,90.0921514061676,90.09207750785995,90.09200372797885,90.09193006623984,90.0918565223594,90.09178309605487,90.09170978704454,90.09163659504756,90.091563519784,90.09149056097483,90.09141771834189,90.0913449916079,90.09127238049648,90.0911998847321,90.09112750404016,90.09105523814688,90.09098308677935,90.09091104966555,90.09083912653432,90.09076731711531,90.09069562113909,90.09062403833707,90.09055256844142,90.0904812111853,90.09040996630259,90.09033883352805,90.09026781259729,90.09019690324672,90.0901261052136,90.090055418236,90.08998484205284,90.08991437640381,90.08984402102946,90.08977377567112,90.08970364007095,90.08963361397188,90.0895636971177,90.08949388925295,90.089424190123,90.08935459947396,90.08928511705278,90.08921574260721,90.08914647588571,90.0890773166376,90.08900826461291,90.08893931956251,90.08887048123798,90.08880174939172,90.08873312377685,90.0886646041473,90.08859619025769,90.08852788186348,90.08845967872087,90.0883915805867,90.08832358721871,90.0882556983753,90.08818791381563,90.08812023329962,90.08805265658788,90.08798518344176,90.0879178136234,90.08785054689562,90.08778338302197,90.08771632176672,90.0876493628949,90.08758250617215,90.08751575136498,90.08744909824047,90.0873825465665,90.08731609611162,90.08724974664507,90.08718349793683,90.08711734975756,90.08705130187859,90.08698535407198,90.08691950611046,90.08685375776746,90.08678810881707,90.0867225590341,90.086657108194,90.08659175607295,90.08652650244774,90.08646134709588,90.08639628979553,90.08633133032554,90.08626646846537,90.08620170399519,90.08613703669585,90.08607246634878,90.08600799273614,90.08594361564072,90.08587933484591,90.08581515013583,90.0857510612952,90.08568706810935,90.08562317036433,90.08555936784677,90.08549566034395,90.08543204764378,90.08536852953482,90.08530510580621,90.0852417762478,90.08517854064996,90.08511539880378,90.08505235050089,90.08498939553358,90.08492653369476,90.08486376477791,90.08480108857717,90.08473850488723,90.08467601350347,90.0846136142218,90.08455130683873,90.08448909115144,90.08442696695764,90.08436493405564,90.08430299224437,90.08424114132335,90.08417938109265,90.08411771135296,90.08405613190556,90.08399464255227,90.08393324309553,90.08387193333836,90.0838107130843,90.08374958213753,90.08368854030276,90.08362758738528,90.08356672319094,90.08350594752619,90.083445260198,90.08338466101391,90.08332414978203,90.08326372631102,90.08320339041009,90.08314314188902,90.08308298055813,90.08302290622827,90.08296291871086,90.08290301781788,90.08284320336182,90.08278347515571,90.08272383301312,90.08266427674822,90.0826048061756,90.0825454211105,90.08248612136859,90.08242690676616,90.08236777711996,90.08230873224727,90.08224977196595,90.08219089609432,90.08213210445125,90.08207339685613,90.08201477312883,90.0819562330898,90.08189777655993,90.08183940336068,90.081781113314,90.08172290624229,90.08166478196856,90.08160674031623,90.08154878110929,90.08149090417218,90.0814331093299,90.08137539640784,90.08131776523197,90.08126021562876,90.08120274742511,90.08114536044846,90.08108805452672,90.08103082948827,90.08097368516201,90.08091662137727,90.08085963796393,90.08080273475228,90.08074591157313,90.08068916825776,90.08063250463792,90.08057592054581,90.08051941581414,90.08046299027606,90.0804066437652,90.08035037611566,90.080294187162,90.08023807673919,90.08018204468279,90.08012609082868,90.0800702150133,90.08001441707344,90.07995869684648,90.07990305417013,90.07984748888263,90.07979200082262,90.07973658982922,90.07968125574199,90.07962599840094,90.0795708176465,90.07951571331955,90.07946068526144,90.0794057333139,90.07935085731917,90.07929605711988,90.07924133255909,90.07918668348032,90.07913210972751,90.07907761114501,90.07902318757763,90.07896883887062,90.07891456486958,90.07886036542061,90.0788062403702,90.07875218956525,90.07869821285314,90.07864431008159,90.07859048109877,90.07853672575328,90.07848304389412,90.07842943537071,90.07837590003287,90.0783224377308,90.0782690483152,90.07821573163709,90.07816248754793,90.07810931589957,90.07805621654428,90.07800318933472,90.07795023412397,90.07789735076547,90.0778445391131,90.0777917990211,90.07773913034413,90.07768653293722,90.07763400665584,90.07758155135578,90.07752916689327,90.07747685312492,90.07742460990771,90.07737243709902,90.07732033455663,90.07726830213865,90.07721633970363,90.07716444711046,90.07711262421844,90.07706087088722,90.07700918697685,90.07695757234775,90.07690602686067,90.07685455037682,90.0768031427577,90.0767518038652,90.07670053356165,90.07664933170963,90.07659819817218,90.07654713281264,90.07649613549476,90.07644520608267,90.07639434444079,90.07634355043395,90.07629282392732,90.07624216478646,90.07619157287726,90.07614104806596,90.07609059021918,90.07604019920385,90.0759898748873,90.0759396171372,90.07588942582153,90.07583930080867,90.07578924196734,90.07573924916657,90.07568932227579,90.07563946116471,90.07558966570343,90.07553993576238,90.07549027121232,90.07544067192438,90.07539113776998,90.07534166862094,90.07529226434933,90.07524292482765,90.07519364992866,90.07514443952552,90.07509529349164,90.07504621170084,90.07499719402723,90.07494824034524,90.07489935052965,90.07485052445556,90.0748017619984,90.0747530630339,90.07470442743815,90.07465585508753,90.07460734585877,90.07455889962888,90.07451051627525,90.07446219567554,90.07441393770773,90.07436574225014,90.07431760918138,90.07426953838038,90.07422152972639,90.07417358309898,90.07412569837803,90.07407787544369,90.07403011417648,90.07398241445719,90.07393477616692,90.07388719918708,90.0738396833994,90.07379222868587,90.07374483492886,90.07369750201096,90.0736502298151,90.07360301822452,90.07355586712275,90.07350877639358,90.07346174592118,90.07341477558994,90.07336786528455,90.07332101489008,90.0732742242918,90.07322749337528,90.07318082202643,90.07313421013143,90.07308765757674,90.07304116424912,90.0729947300356,90.07294835482352,90.07290203850052,90.07285578095447,90.07280958207355,90.07276344174623,90.0727173598613,90.07267133630776,90.07262537097495,90.07257946375243,90.0725336145301,90.07248782319809,90.07244208964686,90.07239641376708,90.07235079544974,90.07230523458611,90.07225973106772,90.07221428478634,90.07216889563408,90.07212356350327,90.07207828828652,90.07203306987671,90.07198790816702,90.07194280305085,90.07189775442188,90.07185276217409,90.07180782620169,90.07176294639915,90.07171812266122,90.07167335488293,90.07162864295952,90.07158398678656,90.07153938625983,90.07149484127537,90.0714503517295,90.07140591751879,90.07136153854006,90.07131721469042,90.07127294586718,90.07122873196795,90.07118457289057,90.07114046853314,90.07109641879401,90.07105242357181,90.07100848276536,90.0709645962738,90.07092076399644,90.07087698583294,90.07083326168309,90.07078959144704,90.0707459750251,90.0707024123179,90.07065890322622,90.07061544765119,90.07057204549409,90.07052869665651,90.07048540104026,90.07044215854735,90.0703989690801,90.07035583254104,90.07031274883292,90.07026971785874,90.07022673952176,90.07018381372544,90.07014094037349,90.07009811936987,90.07005535061877,90.0700126340246,90.06996996949196,90.06992735692583,90.06988479623124,90.06984228731356,90.0697998300784,90.0697574244315,90.06971507027892,90.06967276752694,90.06963051608203,90.0695883158509,90.0695461667405,90.06950406865799,90.06946202151077,90.06942002520644,90.06937807965285,90.06933618475804,90.06929434043033,90.0692525465782,90.06921080311037,90.06916910993579,90.06912746696362,90.06908587410325,90.06904433126427,90.06900283835651,90.06896139528999,90.06892000197497,90.06887865832192,90.0688373642415,90.06879611964462,90.06875492444239,90.06871377854613,90.06867268186735,90.06863163431782,90.06859063580947,90.0685496862545,90.06850878556526,90.06846793365433,90.06842713043453,90.06838637581883,90.06834566972046,90.06830501205282,90.06826440272951,90.06822384166439,90.06818332877148,90.06814286396501,90.0681024471594,90.06806207826934,90.0680217572096,90.0679814838953,90.06794125824162,90.06790108016403,90.0678609495782,90.06782086639994,90.06778083054532,90.06774084193054,90.0677009004721,90.06766100608658,90.06762115869084,90.06758135820192,90.067541604537,90.06750189761355,90.06746223734913,90.0674226236616,90.06738305646893,90.06734353568929,90.06730406124109,90.06726463304291,90.0672252510135,90.06718591507182,90.06714662513701,90.06710738112841,90.06706818296553,90.0670290305681,90.06698992385601,90.06695086274932,90.06691184716834,90.06687287703349,90.06683395226544,90.066795072785,90.06675623851318,90.06671744937118,90.06667870528037,90.06664000616233,90.06660135193876,90.06656274253163,90.066524177863,90.0664856578552,90.06644718243064,90.06640875151201,90.06637036502211,90.06633202288394,90.0662937250207,90.06625547135572,90.06621726181254,90.06617909631487,90.0661409747866,90.06610289715178,90.06606486333465,90.06602687325963,90.06598892685128,90.06595102403438,90.06591316473381,90.06587534887474,90.0658375763824,90.06579984718226,90.06576216119991,90.06572451836114,90.0656869185919,90.06564936181834,90.06561184796672,90.06557437696354,90.0655369487354,90.0654995632091,90.0654622203116,90.06542491997006,90.06538766211175,90.06535044666413,90.06531327355482,90.06527614271165,90.06523905406254,90.06520200753563,90.06516500305918,90.06512804056166,90.06509111997167,90.06505424121795,90.06501740422948,90.06498060893531,90.06494385526473,90.06490714314711,90.06487047251206,90.06483384328926,90.06479725540866,90.06476070880026,90.06472420339429,90.06468773912111,90.06465131591125,90.06461493369534,90.06457859240426,90.06454229196896,90.06450603232061,90.06446981339049,90.06443363511008,90.06439749741095,90.06436140022485,90.06432534348373,90.06428932711964,90.06425335106478,90.06421741525153,90.0641815196124,90.06414566408009,90.06410984858736,90.06407407306723,90.0640383374528,90.06400264167735,90.06396698567428,90.06393136937716,90.0638957927197,90.06386025563579,90.0638247580594,90.0637892999247,90.06375388116598,90.0637185017177,90.06368316151446,90.06364786049096,90.06361259858213,90.06357737572294,90.06354219184863,90.06350704689444,90.06347194079586,90.0634368734885,90.06340184490809,90.0633668549905,90.06333190367178,90.06329699088806,90.06326211657567,90.06322728067106,90.06319248311081,90.06315772383162,90.06312300277041,90.06308831986412,90.06305367504996,90.06301906826515,90.06298449944714,90.06294996853346,90.06291547546182,90.06288102017007,90.06284660259612,90.0628122226781,90.06277788035426,90.06274357556295,90.06270930824267,90.06267507833209,90.06264088576995,90.06260673049516,90.06257261244679,90.06253853156397,90.06250448778603,90.06247048105242,90.06243651130268,90.06240257847651,90.06236868251378,90.0623348233544,90.0623010009385,90.06226721520629,90.06223346609812,90.06219975355448,90.06216607751597,90.06213243792332,90.06209883471743,90.06206526783926,90.06203173722996,90.06199824283074,90.06196478458301,90.06193136242827,90.06189797630813,90.06186462616436,90.06183131193883,90.06179803357357,90.06176479101067,90.06173158419243,90.06169841306118,90.06166527755946,90.06163217762987,90.06159911321517,90.06156608425823,90.06153309070206,90.06150013248975,90.06146720956455,90.06143432186983,90.06140146934905,90.06136865194583,90.06133586960387,90.06130312226705,90.06127040987928,90.06123773238467,90.06120508972744,90.06117248185188,90.06113990870243,90.06110737022367,90.06107486636026,90.06104239705697,90.06100996225874,90.06097756191059,90.06094519595766,90.06091286434521,90.06088056701861,90.06084830392336,90.06081607500508,90.06078388020946,90.06075171948235,90.06071959276973,90.06068750001761,90.06065544117223,90.06062341617984,90.06059142498685,90.06055946753982,90.06052754378533,90.06049565367015,90.06046379714115,90.06043197414529,90.06040018462963,90.06036842854138,90.06033670582785,90.06030501643646,90.06027336031471,90.06024173741024,90.0602101476708,90.06017859104426,90.06014706747855,90.06011557692176,90.06008411932207,90.06005269462776,90.06002130278725,90.05998994374902,90.0599586174617,90.059927323874,90.05989606293474,90.05986483459289,90.05983363879744,90.05980247549758,90.05977134464251,90.05974024618166,90.05970918006443,90.05967814624042,90.05964714465928,90.05961617527082,90.0595852380249,90.0595543328715,90.05952345976073,90.05949261864275,90.0594618094679,90.05943103218655,90.05940028674922,90.05936957310648,90.05933889120908,90.0593082410078,90.05927762245355,90.05924703549734,90.0592164800903,90.05918595618363,90.05915546372866,90.05912500267677,90.05909457297949,90.05906417458843,90.05903380745532,90.05900347153197,90.05897316677026,90.05894289312222,90.05891265053998,90.0588824389757,90.05885225838173,90.05882210871044,90.05879198991437,90.05876190194606,90.05873184475824,90.05870181830369,90.05867182253532,90.05864185740607,90.05861192286906,90.05858201887744,90.05855214538451,90.05852230234359,90.05849248970819,90.05846270743183,90.05843295546819,90.05840323377097,90.05837354229405,90.05834388099136,90.0583142498169,90.05828464872482,90.0582550776693,90.05822553660468,90.05819602548533,90.05816654426575,90.05813709290054,90.05810767134435,90.05807827955195,90.0580489174782,90.05801958507807,90.05799028230656,90.05796100911884,90.0579317654701,90.05790255131569,90.05787336661096,90.05784421131146,90.05781508537272,90.05778598875044,90.05775692140035,90.05772788327836,90.05769887434033,90.05766989454236,90.05764094384051,90.057612022191,90.05758312955012,90.05755426587424,90.05752543111987,90.0574966252435,90.05746784820181,90.05743909995151,90.05741038044941,90.05738168965243,90.05735302751752,90.0573243940018,90.05729578906238],"x":[-1.0,-1.499000999000999,-1.998001998001998,-2.497002997002997,-2.996003996003996,-3.495004995004995,-3.994005994005994,-4.493006993006993,-4.992007992007992,-5.491008991008991,-5.99000999000999,-6.489010989010989,-6.988011988011988,-7.487012987012987,-7.986013986013986,-8.485014985014985,-8.984015984015985,-9.483016983016983,-9.982017982017982,-10.48101898101898,-10.98001998001998,-11.479020979020978,-11.978021978021978,-12.477022977022976,-12.976023976023976,-13.475024975024976,-13.974025974025974,-14.473026973026974,-14.972027972027972,-15.471028971028971,-15.97002997002997,-16.469030969030968,-16.96803196803197,-17.467032967032967,-17.966033966033965,-18.465034965034967,-18.964035964035965,-19.463036963036963,-19.96203796203796,-20.461038961038962,-20.96003996003996,-21.45904095904096,-21.958041958041957,-22.457042957042958,-22.956043956043956,-23.455044955044954,-23.954045954045952,-24.453046953046954,-24.952047952047952,-25.45104895104895,-25.95004995004995,-26.44905094905095,-26.948051948051948,-27.447052947052946,-27.946053946053947,-28.445054945054945,-28.944055944055943,-29.44305694305694,-29.942057942057943,-30.44105894105894,-30.94005994005994,-31.43906093906094,-31.93806193806194,-32.43706293706294,-32.93606393606394,-33.435064935064936,-33.934065934065934,-34.43306693306693,-34.93206793206793,-35.43106893106893,-35.93006993006993,-36.42907092907093,-36.92807192807193,-37.42707292707293,-37.926073926073926,-38.425074925074924,-38.92407592407592,-39.42307692307692,-39.922077922077925,-40.42107892107892,-40.92007992007992,-41.41908091908092,-41.91808191808192,-42.417082917082915,-42.91608391608391,-43.41508491508492,-43.914085914085916,-44.413086913086914,-44.91208791208791,-45.41108891108891,-45.91008991008991,-46.40909090909091,-46.908091908091905,-47.40709290709291,-47.90609390609391,-48.405094905094906,-48.904095904095904,-49.4030969030969,-49.9020979020979,-50.4010989010989,-50.9000999000999,-51.3991008991009,-51.8981018981019,-52.3971028971029,-52.896103896103895,-53.39510489510489,-53.89410589410589,-54.393106893106896,-54.892107892107894,-55.39110889110889,-55.89010989010989,-56.38911088911089,-56.88811188811189,-57.387112887112885,-57.88611388611388,-58.38511488511489,-58.884115884115886,-59.383116883116884,-59.88211788211788,-60.38111888111888,-60.88011988011988,-61.379120879120876,-61.87812187812188,-62.37712287712288,-62.87612387612388,-63.375124875124875,-63.87412587412587,-64.37312687312688,-64.87212787212788,-65.37112887112887,-65.87012987012987,-66.36913086913087,-66.86813186813187,-67.36713286713287,-67.86613386613386,-68.36513486513486,-68.86413586413586,-69.36313686313686,-69.86213786213786,-70.36113886113885,-70.86013986013987,-71.35914085914087,-71.85814185814186,-72.35714285714286,-72.85614385614386,-73.35514485514486,-73.85414585414586,-74.35314685314685,-74.85214785214785,-75.35114885114885,-75.85014985014985,-76.34915084915085,-76.84815184815184,-77.34715284715284,-77.84615384615384,-78.34515484515485,-78.84415584415585,-79.34315684315685,-79.84215784215785,-80.34115884115884,-80.84015984015984,-81.33916083916084,-81.83816183816184,-82.33716283716284,-82.83616383616383,-83.33516483516483,-83.83416583416583,-84.33316683316683,-84.83216783216783,-85.33116883116882,-85.83016983016984,-86.32917082917083,-86.82817182817183,-87.32717282717283,-87.82617382617383,-88.32517482517483,-88.82417582417582,-89.32317682317682,-89.82217782217782,-90.32117882117882,-90.82017982017982,-91.31918081918081,-91.81818181818181,-92.31718281718281,-92.81618381618381,-93.31518481518482,-93.81418581418582,-94.31318681318682,-94.81218781218782,-95.31118881118881,-95.81018981018981,-96.30919080919081,-96.80819180819181,-97.3071928071928,-97.8061938061938,-98.3051948051948,-98.8041958041958,-99.3031968031968,-99.8021978021978,-100.30119880119881,-100.8001998001998,-101.2992007992008,-101.7982017982018,-102.2972027972028,-102.7962037962038,-103.2952047952048,-103.7942057942058,-104.29320679320679,-104.79220779220779,-105.29120879120879,-105.79020979020979,-106.28921078921078,-106.78821178821178,-107.28721278721278,-107.78621378621379,-108.28521478521479,-108.78421578421579,-109.28321678321679,-109.78221778221778,-110.28121878121878,-110.78021978021978,-111.27922077922078,-111.77822177822178,-112.27722277722278,-112.77622377622377,-113.27522477522477,-113.77422577422577,-114.27322677322677,-114.77222777222777,-115.27122877122878,-115.77022977022978,-116.26923076923077,-116.76823176823177,-117.26723276723277,-117.76623376623377,-118.26523476523477,-118.76423576423576,-119.26323676323676,-119.76223776223776,-120.26123876123876,-120.76023976023976,-121.25924075924075,-121.75824175824175,-122.25724275724276,-122.75624375624376,-123.25524475524476,-123.75424575424576,-124.25324675324676,-124.75224775224775,-125.25124875124875,-125.75024975024975,-126.24925074925075,-126.74825174825175,-127.24725274725274,-127.74625374625374,-128.24525474525475,-128.74425574425575,-129.24325674325675,-129.74225774225775,-130.24125874125875,-130.74025974025975,-131.23926073926074,-131.73826173826174,-132.23726273726274,-132.73626373626374,-133.23526473526474,-133.73426573426573,-134.23326673326673,-134.73226773226773,-135.23126873126873,-135.73026973026973,-136.22927072927072,-136.72827172827172,-137.22727272727272,-137.72627372627372,-138.22527472527472,-138.7242757242757,-139.2232767232767,-139.7222777222777,-140.2212787212787,-140.72027972027973,-141.21928071928073,-141.71828171828173,-142.21728271728273,-142.71628371628373,-143.21528471528472,-143.71428571428572,-144.21328671328672,-144.71228771228772,-145.21128871128872,-145.71028971028971,-146.2092907092907,-146.7082917082917,-147.2072927072927,-147.7062937062937,-148.2052947052947,-148.7042957042957,-149.2032967032967,-149.7022977022977,-150.2012987012987,-150.7002997002997,-151.1993006993007,-151.6983016983017,-152.1973026973027,-152.6963036963037,-153.19530469530469,-153.69430569430568,-154.19330669330668,-154.69230769230768,-155.19130869130868,-155.6903096903097,-156.1893106893107,-156.6883116883117,-157.1873126873127,-157.6863136863137,-158.1853146853147,-158.6843156843157,-159.1833166833167,-159.6823176823177,-160.1813186813187,-160.68031968031968,-161.17932067932068,-161.67832167832168,-162.17732267732268,-162.67632367632368,-163.17532467532467,-163.67432567432567,-164.17332667332667,-164.67232767232767,-165.17132867132867,-165.67032967032966,-166.16933066933066,-166.66833166833166,-167.16733266733266,-167.66633366633366,-168.16533466533465,-168.66433566433565,-169.16333666333665,-169.66233766233765,-170.16133866133868,-170.66033966033967,-171.15934065934067,-171.65834165834167,-172.15734265734267,-172.65634365634367,-173.15534465534466,-173.65434565434566,-174.15334665334666,-174.65234765234766,-175.15134865134866,-175.65034965034965,-176.14935064935065,-176.64835164835165,-177.14735264735265,-177.64635364635365,-178.14535464535464,-178.64435564435564,-179.14335664335664,-179.64235764235764,-180.14135864135864,-180.64035964035963,-181.13936063936063,-181.63836163836163,-182.13736263736263,-182.63636363636363,-183.13536463536462,-183.63436563436562,-184.13336663336662,-184.63236763236762,-185.13136863136864,-185.63036963036964,-186.12937062937064,-186.62837162837164,-187.12737262737264,-187.62637362637363,-188.12537462537463,-188.62437562437563,-189.12337662337663,-189.62237762237763,-190.12137862137862,-190.62037962037962,-191.11938061938062,-191.61838161838162,-192.11738261738262,-192.61638361638362,-193.1153846153846,-193.6143856143856,-194.1133866133866,-194.6123876123876,-195.1113886113886,-195.6103896103896,-196.1093906093906,-196.6083916083916,-197.1073926073926,-197.6063936063936,-198.1053946053946,-198.6043956043956,-199.1033966033966,-199.60239760239762,-200.1013986013986,-200.6003996003996,-201.0994005994006,-201.5984015984016,-202.0974025974026,-202.5964035964036,-203.0954045954046,-203.5944055944056,-204.0934065934066,-204.5924075924076,-205.0914085914086,-205.5904095904096,-206.0894105894106,-206.5884115884116,-207.0874125874126,-207.58641358641358,-208.08541458541458,-208.58441558441558,-209.08341658341658,-209.58241758241758,-210.08141858141857,-210.58041958041957,-211.07942057942057,-211.57842157842157,-212.07742257742257,-212.57642357642357,-213.07542457542456,-213.57442557442556,-214.0734265734266,-214.57242757242759,-215.07142857142858,-215.57042957042958,-216.06943056943058,-216.56843156843158,-217.06743256743258,-217.56643356643357,-218.06543456543457,-218.56443556443557,-219.06343656343657,-219.56243756243757,-220.06143856143856,-220.56043956043956,-221.05944055944056,-221.55844155844156,-222.05744255744256,-222.55644355644355,-223.05544455544455,-223.55444555444555,-224.05344655344655,-224.55244755244755,-225.05144855144854,-225.55044955044954,-226.04945054945054,-226.54845154845154,-227.04745254745254,-227.54645354645353,-228.04545454545453,-228.54445554445553,-229.04345654345656,-229.54245754245756,-230.04145854145855,-230.54045954045955,-231.03946053946055,-231.53846153846155,-232.03746253746255,-232.53646353646354,-233.03546453546454,-233.53446553446554,-234.03346653346654,-234.53246753246754,-235.03146853146853,-235.53046953046953,-236.02947052947053,-236.52847152847153,-237.02747252747253,-237.52647352647352,-238.02547452547452,-238.52447552447552,-239.02347652347652,-239.52247752247752,-240.0214785214785,-240.5204795204795,-241.0194805194805,-241.5184815184815,-242.0174825174825,-242.5164835164835,-243.0154845154845,-243.51448551448553,-244.01348651348653,-244.51248751248752,-245.01148851148852,-245.51048951048952,-246.00949050949052,-246.50849150849152,-247.00749250749251,-247.5064935064935,-248.0054945054945,-248.5044955044955,-249.0034965034965,-249.5024975024975,-250.0014985014985,-250.5004995004995,-250.9995004995005,-251.4985014985015,-251.9975024975025,-252.4965034965035,-252.9955044955045,-253.4945054945055,-253.9935064935065,-254.49250749250749,-254.99150849150848,-255.49050949050948,-255.98951048951048,-256.4885114885115,-256.9875124875125,-257.4865134865135,-257.9855144855145,-258.4845154845155,-258.9835164835165,-259.4825174825175,-259.9815184815185,-260.4805194805195,-260.9795204795205,-261.4785214785215,-261.9775224775225,-262.4765234765235,-262.9755244755245,-263.4745254745255,-263.9735264735265,-264.4725274725275,-264.9715284715285,-265.47052947052947,-265.96953046953047,-266.46853146853147,-266.96753246753246,-267.46653346653346,-267.96553446553446,-268.46453546453546,-268.96353646353646,-269.46253746253745,-269.96153846153845,-270.46053946053945,-270.95954045954045,-271.45854145854145,-271.95754245754244,-272.45654345654344,-272.95554445554444,-273.45454545454544,-273.95354645354644,-274.45254745254744,-274.95154845154843,-275.45054945054943,-275.94955044955043,-276.4485514485514,-276.9475524475524,-277.4465534465534,-277.9455544455544,-278.4445554445554,-278.9435564435564,-279.4425574425574,-279.9415584415584,-280.44055944055947,-280.93956043956047,-281.43856143856146,-281.93756243756246,-282.43656343656346,-282.93556443556446,-283.43456543456546,-283.93356643356645,-284.43256743256745,-284.93156843156845,-285.43056943056945,-285.92957042957045,-286.42857142857144,-286.92757242757244,-287.42657342657344,-287.92557442557444,-288.42457542457544,-288.92357642357643,-289.42257742257743,-289.92157842157843,-290.42057942057943,-290.9195804195804,-291.4185814185814,-291.9175824175824,-292.4165834165834,-292.9155844155844,-293.4145854145854,-293.9135864135864,-294.4125874125874,-294.9115884115884,-295.4105894105894,-295.9095904095904,-296.4085914085914,-296.9075924075924,-297.4065934065934,-297.9055944055944,-298.4045954045954,-298.9035964035964,-299.4025974025974,-299.9015984015984,-300.4005994005994,-300.8996003996004,-301.3986013986014,-301.8976023976024,-302.3966033966034,-302.8956043956044,-303.3946053946054,-303.8936063936064,-304.3926073926074,-304.8916083916084,-305.39060939060937,-305.88961038961037,-306.38861138861137,-306.88761238761236,-307.38661338661336,-307.88561438561436,-308.38461538461536,-308.88361638361636,-309.38261738261735,-309.8816183816184,-310.3806193806194,-310.8796203796204,-311.3786213786214,-311.8776223776224,-312.3766233766234,-312.8756243756244,-313.3746253746254,-313.8736263736264,-314.3726273726274,-314.8716283716284,-315.3706293706294,-315.8696303696304,-316.3686313686314,-316.8676323676324,-317.3666333666334,-317.8656343656344,-318.3646353646354,-318.8636363636364,-319.3626373626374,-319.86163836163837,-320.36063936063937,-320.85964035964037,-321.35864135864136,-321.85764235764236,-322.35664335664336,-322.85564435564436,-323.35464535464536,-323.85364635364635,-324.35264735264735,-324.85164835164835,-325.35064935064935,-325.84965034965035,-326.34865134865134,-326.84765234765234,-327.34665334665334,-327.84565434565434,-328.34465534465534,-328.84365634365633,-329.34265734265733,-329.84165834165833,-330.34065934065933,-330.8396603396603,-331.3386613386613,-331.8376623376623,-332.3366633366633,-332.8356643356643,-333.3346653346653,-333.8336663336663,-334.3326673326673,-334.8316683316683,-335.3306693306693,-335.8296703296703,-336.3286713286713,-336.8276723276723,-337.3266733266733,-337.8256743256743,-338.3246753246753,-338.8236763236763,-339.32267732267735,-339.82167832167835,-340.32067932067935,-340.81968031968034,-341.31868131868134,-341.81768231768234,-342.31668331668334,-342.81568431568434,-343.31468531468533,-343.81368631368633,-344.31268731268733,-344.81168831168833,-345.3106893106893,-345.8096903096903,-346.3086913086913,-346.8076923076923,-347.3066933066933,-347.8056943056943,-348.3046953046953,-348.8036963036963,-349.3026973026973,-349.8016983016983,-350.3006993006993,-350.7997002997003,-351.2987012987013,-351.7977022977023,-352.2967032967033,-352.7957042957043,-353.2947052947053,-353.7937062937063,-354.2927072927073,-354.7917082917083,-355.2907092907093,-355.7897102897103,-356.2887112887113,-356.7877122877123,-357.2867132867133,-357.7857142857143,-358.2847152847153,-358.7837162837163,-359.2827172827173,-359.78171828171827,-360.28071928071927,-360.77972027972027,-361.27872127872126,-361.77772227772226,-362.27672327672326,-362.77572427572426,-363.27472527472526,-363.77372627372625,-364.27272727272725,-364.77172827172825,-365.27072927072925,-365.76973026973025,-366.26873126873124,-366.76773226773224,-367.26673326673324,-367.76573426573424,-368.26473526473524,-368.7637362637363,-369.2627372627373,-369.7617382617383,-370.2607392607393,-370.7597402597403,-371.2587412587413,-371.7577422577423,-372.2567432567433,-372.7557442557443,-373.2547452547453,-373.75374625374627,-374.25274725274727,-374.75174825174827,-375.25074925074927,-375.74975024975026,-376.24875124875126,-376.74775224775226,-377.24675324675326,-377.74575424575426,-378.24475524475525,-378.74375624375625,-379.24275724275725,-379.74175824175825,-380.24075924075925,-380.73976023976024,-381.23876123876124,-381.73776223776224,-382.23676323676324,-382.73576423576424,-383.23476523476523,-383.73376623376623,-384.23276723276723,-384.7317682317682,-385.2307692307692,-385.7297702297702,-386.2287712287712,-386.7277722277722,-387.2267732267732,-387.7257742257742,-388.2247752247752,-388.7237762237762,-389.2227772227772,-389.7217782217782,-390.2207792207792,-390.7197802197802,-391.2187812187812,-391.7177822177822,-392.2167832167832,-392.7157842157842,-393.2147852147852,-393.7137862137862,-394.2127872127872,-394.7117882117882,-395.2107892107892,-395.7097902097902,-396.2087912087912,-396.7077922077922,-397.2067932067932,-397.70579420579423,-398.20479520479523,-398.70379620379623,-399.2027972027972,-399.7017982017982,-400.2007992007992,-400.6998001998002,-401.1988011988012,-401.6978021978022,-402.1968031968032,-402.6958041958042,-403.1948051948052,-403.6938061938062,-404.1928071928072,-404.6918081918082,-405.1908091908092,-405.6898101898102,-406.1888111888112,-406.6878121878122,-407.1868131868132,-407.6858141858142,-408.1848151848152,-408.6838161838162,-409.1828171828172,-409.6818181818182,-410.1808191808192,-410.6798201798202,-411.1788211788212,-411.6778221778222,-412.1768231768232,-412.6758241758242,-413.1748251748252,-413.67382617382617,-414.17282717282717,-414.67182817182817,-415.17082917082917,-415.66983016983016,-416.16883116883116,-416.66783216783216,-417.16683316683316,-417.66583416583416,-418.16483516483515,-418.66383616383615,-419.16283716283715,-419.66183816183815,-420.16083916083915,-420.65984015984014,-421.15884115884114,-421.65784215784214,-422.15684315684314,-422.65584415584414,-423.15484515484513,-423.65384615384613,-424.15284715284713,-424.6518481518481,-425.1508491508491,-425.6498501498501,-426.1488511488511,-426.6478521478521,-427.1468531468532,-427.6458541458542,-428.14485514485517,-428.64385614385617,-429.14285714285717,-429.64185814185817,-430.14085914085916,-430.63986013986016,-431.13886113886116,-431.63786213786216,-432.13686313686316,-432.63586413586415,-433.13486513486515,-433.63386613386615,-434.13286713286715,-434.63186813186815,-435.13086913086914,-435.62987012987014,-436.12887112887114,-436.62787212787214,-437.12687312687314,-437.62587412587413,-438.12487512487513,-438.62387612387613,-439.1228771228771,-439.6218781218781,-440.1208791208791,-440.6198801198801,-441.1188811188811,-441.6178821178821,-442.1168831168831,-442.6158841158841,-443.1148851148851,-443.6138861138861,-444.1128871128871,-444.6118881118881,-445.1108891108891,-445.6098901098901,-446.1088911088911,-446.6078921078921,-447.1068931068931,-447.6058941058941,-448.1048951048951,-448.6038961038961,-449.1028971028971,-449.6018981018981,-450.1008991008991,-450.5999000999001,-451.0989010989011,-451.5979020979021,-452.0969030969031,-452.5959040959041,-453.0949050949051,-453.59390609390607,-454.09290709290707,-454.59190809190807,-455.09090909090907,-455.58991008991006,-456.08891108891106,-456.5879120879121,-457.0869130869131,-457.5859140859141,-458.0849150849151,-458.5839160839161,-459.0829170829171,-459.5819180819181,-460.0809190809191,-460.5799200799201,-461.0789210789211,-461.5779220779221,-462.0769230769231,-462.5759240759241,-463.0749250749251,-463.5739260739261,-464.0729270729271,-464.5719280719281,-465.0709290709291,-465.5699300699301,-466.0689310689311,-466.5679320679321,-467.0669330669331,-467.5659340659341,-468.06493506493507,-468.56393606393607,-469.06293706293707,-469.56193806193806,-470.06093906093906,-470.55994005994006,-471.05894105894106,-471.55794205794206,-472.05694305694306,-472.55594405594405,-473.05494505494505,-473.55394605394605,-474.05294705294705,-474.55194805194805,-475.05094905094904,-475.54995004995004,-476.04895104895104,-476.54795204795204,-477.04695304695304,-477.54595404595403,-478.04495504495503,-478.54395604395603,-479.042957042957,-479.541958041958,-480.040959040959,-480.53996003996,-481.038961038961,-481.537962037962,-482.036963036963,-482.535964035964,-483.034965034965,-483.533966033966,-484.032967032967,-484.531968031968,-485.030969030969,-485.52997002997,-486.02897102897106,-486.52797202797206,-487.02697302697305,-487.52597402597405,-488.02497502497505,-488.52397602397605,-489.02297702297705,-489.52197802197804,-490.02097902097904,-490.51998001998004,-491.01898101898104,-491.51798201798204,-492.01698301698303,-492.51598401598403,-493.01498501498503,-493.513986013986,-494.012987012987,-494.511988011988,-495.010989010989,-495.50999000999,-496.008991008991,-496.507992007992,-497.006993006993,-497.505994005994,-498.004995004995,-498.503996003996,-499.002997002997,-499.501998001998,-500.000999000999,-500.5,-500.999000999001,-501.498001998002,-501.997002997003,-502.496003996004,-502.995004995005,-503.494005994006,-503.993006993007,-504.492007992008,-504.991008991009,-505.49000999001,-505.989010989011,-506.488011988012,-506.987012987013,-507.486013986014,-507.98501498501497,-508.48401598401597,-508.98301698301697,-509.48201798201796,-509.98101898101896,-510.48001998001996,-510.97902097902096,-511.47802197802196,-511.97702297702295,-512.476023976024,-512.975024975025,-513.474025974026,-513.973026973027,-514.472027972028,-514.971028971029,-515.4700299700299,-515.969030969031,-516.4680319680319,-516.967032967033,-517.4660339660339,-517.965034965035,-518.4640359640359,-518.963036963037,-519.4620379620379,-519.961038961039,-520.4600399600399,-520.959040959041,-521.4580419580419,-521.957042957043,-522.4560439560439,-522.955044955045,-523.4540459540459,-523.953046953047,-524.4520479520479,-524.951048951049,-525.4500499500499,-525.949050949051,-526.4480519480519,-526.947052947053,-527.4460539460539,-527.945054945055,-528.4440559440559,-528.943056943057,-529.4420579420579,-529.9410589410589,-530.44005994006,-530.9390609390609,-531.438061938062,-531.9370629370629,-532.436063936064,-532.9350649350649,-533.434065934066,-533.9330669330669,-534.432067932068,-534.9310689310689,-535.43006993007,-535.9290709290709,-536.428071928072,-536.9270729270729,-537.426073926074,-537.9250749250749,-538.424075924076,-538.9230769230769,-539.422077922078,-539.9210789210789,-540.42007992008,-540.9190809190809,-541.418081918082,-541.9170829170829,-542.416083916084,-542.9150849150849,-543.414085914086,-543.9130869130869,-544.4120879120879,-544.9110889110889,-545.4100899100899,-545.9090909090909,-546.4080919080919,-546.9070929070929,-547.4060939060939,-547.9050949050949,-548.4040959040959,-548.9030969030969,-549.4020979020979,-549.9010989010989,-550.4000999000999,-550.8991008991009,-551.3981018981019,-551.8971028971029,-552.3961038961039,-552.8951048951049,-553.3941058941059,-553.8931068931068,-554.3921078921079,-554.8911088911088,-555.3901098901099,-555.8891108891108,-556.3881118881119,-556.8871128871128,-557.3861138861139,-557.8851148851148,-558.3841158841159,-558.8831168831168,-559.3821178821179,-559.8811188811189,-560.3801198801199,-560.8791208791209,-561.3781218781219,-561.8771228771229,-562.3761238761239,-562.8751248751249,-563.3741258741259,-563.8731268731269,-564.3721278721279,-564.8711288711289,-565.3701298701299,-565.8691308691309,-566.3681318681319,-566.8671328671329,-567.3661338661339,-567.8651348651349,-568.3641358641358,-568.8631368631369,-569.3621378621378,-569.8611388611389,-570.3601398601398,-570.8591408591409,-571.3581418581418,-571.8571428571429,-572.3561438561438,-572.8551448551449,-573.3541458541458,-573.8531468531469,-574.3521478521478,-574.8511488511489,-575.3501498501498,-575.8491508491509,-576.3481518481518,-576.8471528471529,-577.3461538461538,-577.8451548451549,-578.3441558441558,-578.8431568431569,-579.3421578421578,-579.8411588411589,-580.3401598401598,-580.8391608391609,-581.3381618381618,-581.8371628371629,-582.3361638361638,-582.8351648351648,-583.3341658341658,-583.8331668331668,-584.3321678321678,-584.8311688311688,-585.3301698301698,-585.8291708291708,-586.3281718281718,-586.8271728271728,-587.3261738261738,-587.8251748251748,-588.3241758241758,-588.8231768231768,-589.3221778221779,-589.8211788211788,-590.3201798201799,-590.8191808191808,-591.3181818181819,-591.8171828171828,-592.3161838161839,-592.8151848151848,-593.3141858141859,-593.8131868131868,-594.3121878121879,-594.8111888111888,-595.3101898101899,-595.8091908091908,-596.3081918081919,-596.8071928071928,-597.3061938061938,-597.8051948051948,-598.3041958041958,-598.8031968031968,-599.3021978021978,-599.8011988011988,-600.3001998001998,-600.7992007992008,-601.2982017982018,-601.7972027972028,-602.2962037962038,-602.7952047952048,-603.2942057942058,-603.7932067932068,-604.2922077922078,-604.7912087912088,-605.2902097902098,-605.7892107892108,-606.2882117882118,-606.7872127872128,-607.2862137862138,-607.7852147852147,-608.2842157842158,-608.7832167832167,-609.2822177822178,-609.7812187812187,-610.2802197802198,-610.7792207792207,-611.2782217782218,-611.7772227772227,-612.2762237762238,-612.7752247752247,-613.2742257742258,-613.7732267732267,-614.2722277722278,-614.7712287712287,-615.2702297702298,-615.7692307692307,-616.2682317682318,-616.7672327672327,-617.2662337662338,-617.7652347652347,-618.2642357642358,-618.7632367632368,-619.2622377622378,-619.7612387612388,-620.2602397602398,-620.7592407592408,-621.2582417582418,-621.7572427572428,-622.2562437562437,-622.7552447552448,-623.2542457542457,-623.7532467532468,-624.2522477522477,-624.7512487512488,-625.2502497502497,-625.7492507492508,-626.2482517482517,-626.7472527472528,-627.2462537462537,-627.7452547452548,-628.2442557442557,-628.7432567432568,-629.2422577422577,-629.7412587412588,-630.2402597402597,-630.7392607392608,-631.2382617382617,-631.7372627372628,-632.2362637362637,-632.7352647352648,-633.2342657342657,-633.7332667332668,-634.2322677322677,-634.7312687312688,-635.2302697302697,-635.7292707292708,-636.2282717282717,-636.7272727272727,-637.2262737262737,-637.7252747252747,-638.2242757242757,-638.7232767232767,-639.2222777222777,-639.7212787212787,-640.2202797202797,-640.7192807192807,-641.2182817182817,-641.7172827172827,-642.2162837162837,-642.7152847152847,-643.2142857142857,-643.7132867132867,-644.2122877122877,-644.7112887112887,-645.2102897102897,-645.7092907092907,-646.2082917082917,-646.7072927072927,-647.2062937062936,-647.7052947052947,-648.2042957042958,-648.7032967032967,-649.2022977022978,-649.7012987012987,-650.2002997002998,-650.6993006993007,-651.1983016983017,-651.6973026973027,-652.1963036963037,-652.6953046953047,-653.1943056943057,-653.6933066933067,-654.1923076923077,-654.6913086913087,-655.1903096903097,-655.6893106893107,-656.1883116883117,-656.6873126873127,-657.1863136863137,-657.6853146853147,-658.1843156843157,-658.6833166833167,-659.1823176823177,-659.6813186813187,-660.1803196803197,-660.6793206793207,-661.1783216783217,-661.6773226773226,-662.1763236763237,-662.6753246753246,-663.1743256743257,-663.6733266733266,-664.1723276723277,-664.6713286713286,-665.1703296703297,-665.6693306693306,-666.1683316683317,-666.6673326673326,-667.1663336663337,-667.6653346653346,-668.1643356643357,-668.6633366633366,-669.1623376623377,-669.6613386613386,-670.1603396603397,-670.6593406593406,-671.1583416583417,-671.6573426573426,-672.1563436563437,-672.6553446553446,-673.1543456543457,-673.6533466533466,-674.1523476523477,-674.6513486513486,-675.1503496503497,-675.6493506493506,-676.1483516483516,-676.6473526473526,-677.1463536463536,-677.6453546453547,-678.1443556443556,-678.6433566433567,-679.1423576423576,-679.6413586413587,-680.1403596403596,-680.6393606393607,-681.1383616383616,-681.6373626373627,-682.1363636363636,-682.6353646353647,-683.1343656343656,-683.6333666333667,-684.1323676323676,-684.6313686313687,-685.1303696303696,-685.6293706293707,-686.1283716283716,-686.6273726273727,-687.1263736263736,-687.6253746253747,-688.1243756243756,-688.6233766233767,-689.1223776223776,-689.6213786213787,-690.1203796203796,-690.6193806193806,-691.1183816183816,-691.6173826173826,-692.1163836163836,-692.6153846153846,-693.1143856143856,-693.6133866133866,-694.1123876123876,-694.6113886113886,-695.1103896103896,-695.6093906093906,-696.1083916083916,-696.6073926073926,-697.1063936063936,-697.6053946053946,-698.1043956043956,-698.6033966033966,-699.1023976023976,-699.6013986013986,-700.1003996003996,-700.5994005994006,-701.0984015984016,-701.5974025974026,-702.0964035964035,-702.5954045954046,-703.0944055944055,-703.5934065934066,-704.0924075924075,-704.5914085914086,-705.0904095904095,-705.5894105894106,-706.0884115884115,-706.5874125874126,-707.0864135864136,-707.5854145854146,-708.0844155844156,-708.5834165834166,-709.0824175824176,-709.5814185814186,-710.0804195804196,-710.5794205794206,-711.0784215784216,-711.5774225774226,-712.0764235764236,-712.5754245754246,-713.0744255744256,-713.5734265734266,-714.0724275724276,-714.5714285714286,-715.0704295704296,-715.5694305694306,-716.0684315684316,-716.5674325674325,-717.0664335664336,-717.5654345654345,-718.0644355644356,-718.5634365634365,-719.0624375624376,-719.5614385614385,-720.0604395604396,-720.5594405594405,-721.0584415584416,-721.5574425574425,-722.0564435564436,-722.5554445554445,-723.0544455544456,-723.5534465534465,-724.0524475524476,-724.5514485514485,-725.0504495504496,-725.5494505494505,-726.0484515484516,-726.5474525474525,-727.0464535464536,-727.5454545454545,-728.0444555444556,-728.5434565434565,-729.0424575424576,-729.5414585414585,-730.0404595404596,-730.5394605394605,-731.0384615384615,-731.5374625374625,-732.0364635364635,-732.5354645354645,-733.0344655344655,-733.5334665334665,-734.0324675324675,-734.5314685314685,-735.0304695304695,-735.5294705294705,-736.0284715284715,-736.5274725274726,-737.0264735264735,-737.5254745254746,-738.0244755244755,-738.5234765234766,-739.0224775224775,-739.5214785214786,-740.0204795204795,-740.5194805194806,-741.0184815184815,-741.5174825174826,-742.0164835164835,-742.5154845154846,-743.0144855144855,-743.5134865134866,-744.0124875124875,-744.5114885114886,-745.0104895104895,-745.5094905094905,-746.0084915084915,-746.5074925074925,-747.0064935064935,-747.5054945054945,-748.0044955044955,-748.5034965034965,-749.0024975024975,-749.5014985014985,-750.0004995004995,-750.4995004995005,-750.9985014985015,-751.4975024975025,-751.9965034965035,-752.4955044955045,-752.9945054945055,-753.4935064935065,-753.9925074925075,-754.4915084915085,-754.9905094905095,-755.4895104895105,-755.9885114885114,-756.4875124875125,-756.9865134865134,-757.4855144855145,-757.9845154845154,-758.4835164835165,-758.9825174825174,-759.4815184815185,-759.9805194805194,-760.4795204795205,-760.9785214785214,-761.4775224775225,-761.9765234765234,-762.4755244755245,-762.9745254745254,-763.4735264735265,-763.9725274725274,-764.4715284715285,-764.9705294705295,-765.4695304695305,-765.9685314685315,-766.4675324675325,-766.9665334665335,-767.4655344655345,-767.9645354645355,-768.4635364635365,-768.9625374625375,-769.4615384615385,-769.9605394605395,-770.4595404595404,-770.9585414585415,-771.4575424575424,-771.9565434565435,-772.4555444555444,-772.9545454545455,-773.4535464535464,-773.9525474525475,-774.4515484515484,-774.9505494505495,-775.4495504495504,-775.9485514485515,-776.4475524475524,-776.9465534465535,-777.4455544455544,-777.9445554445555,-778.4435564435564,-778.9425574425575,-779.4415584415584,-779.9405594405595,-780.4395604395604,-780.9385614385615,-781.4375624375624,-781.9365634365635,-782.4355644355644,-782.9345654345655,-783.4335664335664,-783.9325674325675,-784.4315684315684,-784.9305694305694,-785.4295704295704,-785.9285714285714,-786.4275724275724,-786.9265734265734,-787.4255744255744,-787.9245754245754,-788.4235764235764,-788.9225774225774,-789.4215784215784,-789.9205794205794,-790.4195804195804,-790.9185814185814,-791.4175824175824,-791.9165834165834,-792.4155844155844,-792.9145854145854,-793.4135864135864,-793.9125874125874,-794.4115884115885,-794.9105894105894,-795.4095904095905,-795.9085914085914,-796.4075924075925,-796.9065934065934,-797.4055944055945,-797.9045954045954,-798.4035964035965,-798.9025974025974,-799.4015984015984,-799.9005994005994,-800.3996003996004,-800.8986013986014,-801.3976023976024,-801.8966033966034,-802.3956043956044,-802.8946053946054,-803.3936063936064,-803.8926073926074,-804.3916083916084,-804.8906093906094,-805.3896103896104,-805.8886113886114,-806.3876123876124,-806.8866133866134,-807.3856143856144,-807.8846153846154,-808.3836163836164,-808.8826173826174,-809.3816183816184,-809.8806193806194,-810.3796203796204,-810.8786213786213,-811.3776223776224,-811.8766233766233,-812.3756243756244,-812.8746253746253,-813.3736263736264,-813.8726273726273,-814.3716283716284,-814.8706293706293,-815.3696303696304,-815.8686313686313,-816.3676323676324,-816.8666333666333,-817.3656343656344,-817.8646353646353,-818.3636363636364,-818.8626373626373,-819.3616383616384,-819.8606393606393,-820.3596403596404,-820.8586413586413,-821.3576423576424,-821.8566433566433,-822.3556443556444,-822.8546453546453,-823.3536463536464,-823.8526473526474,-824.3516483516484,-824.8506493506494,-825.3496503496503,-825.8486513486514,-826.3476523476523,-826.8466533466534,-827.3456543456543,-827.8446553446554,-828.3436563436563,-828.8426573426574,-829.3416583416583,-829.8406593406594,-830.3396603396603,-830.8386613386614,-831.3376623376623,-831.8366633366634,-832.3356643356643,-832.8346653346654,-833.3336663336663,-833.8326673326674,-834.3316683316683,-834.8306693306694,-835.3296703296703,-835.8286713286714,-836.3276723276723,-836.8266733266734,-837.3256743256743,-837.8246753246754,-838.3236763236763,-838.8226773226774,-839.3216783216783,-839.8206793206793,-840.3196803196803,-840.8186813186813,-841.3176823176823,-841.8166833166833,-842.3156843156843,-842.8146853146853,-843.3136863136863,-843.8126873126873,-844.3116883116883,-844.8106893106893,-845.3096903096903,-845.8086913086913,-846.3076923076923,-846.8066933066933,-847.3056943056943,-847.8046953046953,-848.3036963036963,-848.8026973026973,-849.3016983016983,-849.8006993006993,-850.2997002997002,-850.7987012987013,-851.2977022977022,-851.7967032967033,-852.2957042957042,-852.7947052947053,-853.2937062937064,-853.7927072927073,-854.2917082917083,-854.7907092907093,-855.2897102897103,-855.7887112887113,-856.2877122877123,-856.7867132867133,-857.2857142857143,-857.7847152847153,-858.2837162837163,-858.7827172827173,-859.2817182817183,-859.7807192807193,-860.2797202797203,-860.7787212787213,-861.2777222777223,-861.7767232767233,-862.2757242757243,-862.7747252747253,-863.2737262737263,-863.7727272727273,-864.2717282717283,-864.7707292707292,-865.2697302697303,-865.7687312687312,-866.2677322677323,-866.7667332667332,-867.2657342657343,-867.7647352647352,-868.2637362637363,-868.7627372627372,-869.2617382617383,-869.7607392607392,-870.2597402597403,-870.7587412587412,-871.2577422577423,-871.7567432567432,-872.2557442557443,-872.7547452547452,-873.2537462537463,-873.7527472527472,-874.2517482517483,-874.7507492507492,-875.2497502497503,-875.7487512487512,-876.2477522477523,-876.7467532467532,-877.2457542457543,-877.7447552447552,-878.2437562437563,-878.7427572427572,-879.2417582417582,-879.7407592407592,-880.2397602397602,-880.7387612387612,-881.2377622377622,-881.7367632367632,-882.2357642357642,-882.7347652347653,-883.2337662337662,-883.7327672327673,-884.2317682317682,-884.7307692307693,-885.2297702297702,-885.7287712287713,-886.2277722277722,-886.7267732267733,-887.2257742257742,-887.7247752247753,-888.2237762237762,-888.7227772227773,-889.2217782217782,-889.7207792207793,-890.2197802197802,-890.7187812187813,-891.2177822177822,-891.7167832167833,-892.2157842157842,-892.7147852147853,-893.2137862137862,-893.7127872127872,-894.2117882117882,-894.7107892107892,-895.2097902097902,-895.7087912087912,-896.2077922077922,-896.7067932067932,-897.2057942057942,-897.7047952047952,-898.2037962037962,-898.7027972027972,-899.2017982017982,-899.7007992007992,-900.1998001998002,-900.6988011988012,-901.1978021978022,-901.6968031968032,-902.1958041958042,-902.6948051948052,-903.1938061938062,-903.6928071928072,-904.1918081918081,-904.6908091908092,-905.1898101898101,-905.6888111888112,-906.1878121878121,-906.6868131868132,-907.1858141858141,-907.6848151848152,-908.1838161838161,-908.6828171828172,-909.1818181818181,-909.6808191808192,-910.1798201798201,-910.6788211788212,-911.1778221778221,-911.6768231768232,-912.1758241758242,-912.6748251748252,-913.1738261738262,-913.6728271728272,-914.1718281718282,-914.6708291708292,-915.1698301698302,-915.6688311688312,-916.1678321678322,-916.6668331668332,-917.1658341658342,-917.6648351648352,-918.1638361638362,-918.6628371628371,-919.1618381618382,-919.6608391608391,-920.1598401598402,-920.6588411588411,-921.1578421578422,-921.6568431568431,-922.1558441558442,-922.6548451548451,-923.1538461538462,-923.6528471528471,-924.1518481518482,-924.6508491508491,-925.1498501498502,-925.6488511488511,-926.1478521478522,-926.6468531468531,-927.1458541458542,-927.6448551448551,-928.1438561438562,-928.6428571428571,-929.1418581418582,-929.6408591408591,-930.1398601398602,-930.6388611388611,-931.1378621378622,-931.6368631368631,-932.1358641358642,-932.6348651348651,-933.1338661338661,-933.6328671328671,-934.1318681318681,-934.6308691308691,-935.1298701298701,-935.6288711288711,-936.1278721278721,-936.6268731268731,-937.1258741258741,-937.6248751248751,-938.1238761238761,-938.6228771228771,-939.1218781218781,-939.6208791208791,-940.1198801198801,-940.6188811188811,-941.1178821178821,-941.6168831168832,-942.1158841158841,-942.6148851148852,-943.1138861138861,-943.6128871128872,-944.1118881118881,-944.6108891108892,-945.1098901098901,-945.6088911088912,-946.1078921078921,-946.6068931068932,-947.1058941058941,-947.6048951048951,-948.1038961038961,-948.6028971028971,-949.1018981018981,-949.6008991008991,-950.0999000999001,-950.5989010989011,-951.0979020979021,-951.5969030969031,-952.0959040959041,-952.5949050949051,-953.0939060939061,-953.5929070929071,-954.0919080919081,-954.5909090909091,-955.0899100899101,-955.5889110889111,-956.0879120879121,-956.5869130869131,-957.085914085914,-957.5849150849151,-958.083916083916,-958.5829170829171,-959.081918081918,-959.5809190809191,-960.07992007992,-960.5789210789211,-961.077922077922,-961.5769230769231,-962.075924075924,-962.5749250749251,-963.073926073926,-963.5729270729271,-964.071928071928,-964.5709290709291,-965.06993006993,-965.5689310689311,-966.067932067932,-966.5669330669331,-967.065934065934,-967.5649350649351,-968.063936063936,-968.5629370629371,-969.061938061938,-969.5609390609391,-970.05994005994,-970.5589410589411,-971.0579420579421,-971.556943056943,-972.0559440559441,-972.554945054945,-973.0539460539461,-973.552947052947,-974.0519480519481,-974.550949050949,-975.0499500499501,-975.548951048951,-976.0479520479521,-976.546953046953,-977.0459540459541,-977.544955044955,-978.0439560439561,-978.542957042957,-979.0419580419581,-979.540959040959,-980.0399600399601,-980.538961038961,-981.0379620379621,-981.536963036963,-982.0359640359641,-982.534965034965,-983.0339660339661,-983.532967032967,-984.0319680319681,-984.530969030969,-985.0299700299701,-985.528971028971,-986.027972027972,-986.526973026973,-987.025974025974,-987.524975024975,-988.023976023976,-988.522977022977,-989.021978021978,-989.520979020979,-990.01998001998,-990.518981018981,-991.017982017982,-991.516983016983,-992.015984015984,-992.514985014985,-993.013986013986,-993.512987012987,-994.011988011988,-994.510989010989,-995.00999000999,-995.508991008991,-996.007992007992,-996.506993006993,-997.005994005994,-997.504995004995,-998.003996003996,-998.502997002997,-999.001998001998,-999.500999000999,-1000.0]} \ No newline at end of file diff --git a/base/special/asecdf/test/fixtures/julia/positive.json b/base/special/asecdf/test/fixtures/julia/positive.json new file mode 100644 index 000000000..57b55d0a4 --- /dev/null +++ b/base/special/asecdf/test/fixtures/julia/positive.json @@ -0,0 +1 @@ +{"expected":[0.0,48.15552277517106,59.96691474930807,66.39180497236097,70.50175861619,73.37403509906108,75.50028504194825,77.14008560341945,78.44431638469874,79.5069711534709,80.38977936278397,81.13500915558875,81.77260188215763,82.32437333577465,82.8066020292284,83.23168515111361,83.60923259966798,83.94681004620803,84.25045593298681,84.52504889138456,84.77457381544475,85.00231781032656,85.21101669492772,85.40296604310687,85.58010639897164,85.74408941868786,85.89632974452383,86.03804608003213,86.17029400305235,86.29399239386603,86.40994488334613,86.51885738323392,86.62135250929262,86.71798152174847,86.8092342679518,86.89554750682694,86.9773119144022,87.05487800804913,87.12856117933946,87.19864598822639,87.26538984206258,87.32902615990663,87.38976710424453,87.44780594760549,87.50331912978,87.5564680518385,87.60740064542712,87.65625274951927,87.70314932163892,87.74820550632448,87.79152758009002,87.83321378922777,87.87335509436963,87.91203583369574,87.94933431497772,87.98532334521059,88.02007070537832,88.05363957687258,88.08608892521393,88.11747384598229,88.14784587722934,88.1772532821024,88.20574130494185,88.23335240371294,88.26012646128467,88.28610097776871,88.31131124587004,88.33579051097502,88.35957011750455,88.38267964288815,88.40514702036347,88.42699865167408,88.44825951062181,88.4689532383283,88.48910223096976,88.50872772067014,88.52784985016692,88.5464877418021,88.56465956133502,88.58238257702514,88.59967321438874,88.61654710699464,88.63301914362944,88.64910351213123,88.66481374016337,88.68016273317457,88.69516280976927,88.70982573469217,88.72416274961253,88.7381846018777,88.75190157139033,88.7653234957508,88.7784597937939,88.7913194876382,88.8039112233569,88.81624329036923,88.82832363964408,88.8401599008001,88.8517593981791,88.86312916596427,88.87427596240876,88.885206283235,88.89592637426065,88.90644224330292,88.9167596714086,88.92688422345422,88.93682125815721,88.9465759375355,88.95615323585123,88.96555794807071,88.97479469787102,88.98386794522139,88.9927819935653,89.00154099662794,89.01014896487123,89.01860977161789,89.02692715886388,89.03510474279777,89.04314601904402,89.05105436764623,89.05883305780519,89.06648525238573,89.07401401220554,89.0814223001179,89.08871298490013,89.09588884495815,89.10295257185737,89.10990677368935,89.11675397828297,89.12349663626865,89.13013712400296,89.13667774636154,89.14312073940681,89.14946827293713,89.15572245292338,89.16188532383893,89.16795887088814,89.17394502213888,89.17984565056334,89.18566257599218,89.19139756698605,89.19705234262858,89.20262857424451,89.20812788704696,89.21355186171674,89.21890203591744,89.22417990574877,89.22938692714166,89.23452451719744,89.23959405547366,89.24459688521945,89.24953431456204,89.25440761764744,89.25921803573664,89.2639667782598,89.26865502383015,89.27328392121927,89.27785459029575,89.28236812292836,89.28682558385593,89.29122801152461,89.29557641889464,89.29987179421735,89.30411510178413,89.30830728264807,89.31244925531992,89.316541916439,89.32058614142034,89.32458278507913,89.32853268223298,89.33243664828336,89.33629547977688,89.34010995494701,89.3438808342376,89.34760886080807,89.35129476102189,89.35493924491841,89.3585430066688,89.36210672501696,89.36563106370573,89.36911667188899,89.37256418453035,89.3759742227888,89.37934739439181,89.38268429399645,89.38598550353889,89.38925159257278,89.39248311859681,89.39568062737202,89.39884465322909,89.40197571936598,89.40507433813643,89.40814101132948,89.41117623044033,89.41418047693301,89.41715422249494,89.42009792928391,89.42301205016746,89.42589702895525,89.42875330062428,89.43158129153764,89.43438141965669,89.43715409474687,89.43989971857778,89.44261868511718,89.44531138071947,89.44797818430874,89.45061946755649,89.45323559505438,89.45582692448197,89.45839380676976,89.46093658625769,89.46345560084904,89.46595118216018,89.46842365566611,89.47087334084198,89.47330055130067,89.47570559492674,89.47808877400647,89.48045038535469,89.48279072043789,89.48511006549427,89.4874087016503,89.48968690503446,89.49194494688773,89.49418309367131,89.49640160717139,89.49860074460132,89.50078075870087,89.50294189783325,89.50508440607932,89.50720852332954,89.50931448537342,89.51140252398696,89.51347286701753,89.51552573846679,89.51756135857156,89.51957994388246,89.52158170734086,89.52356685835363,89.52553560286623,89.52748814343398,89.52942467929145,89.53134540642024,89.53325051761523,89.53514020254887,89.53701464783437,89.53887403708696,89.5407185509839,89.54254836732309,89.54436366108006,89.5461646044639,89.54795136697159,89.54972411544125,89.5514830141041,89.55322822463506,89.55495990620247,89.55667821551633,89.55838330687563,89.56007533221457,89.56175444114763,89.56342078101376,89.5650744969194,89.5667157317806,89.56834462636428,89.5699613193284,89.57156594726132,89.57315864472032,89.57473954426914,89.5763087765148,89.57786647014359,89.57941275195621,89.58094774690221,89.58247157811364,89.58398436693795,89.58548623297027,89.58697729408486,89.58845766646598,89.58992746463808,89.59138680149529,89.59283578833039,89.59427453486306,89.59570314926758,89.59712173820002,89.5985304068246,89.5999292588399,89.60131839650413,89.60269792066018,89.60406793075995,89.60542852488825,89.60677979978624,89.60812185087435,89.60945477227473,89.61077865683329,89.61209359614121,89.61339968055609,89.61469699922264,89.61598564009302,89.61726568994659,89.61853723440953,89.61980035797383,89.62105514401608,89.62230167481577,89.62354003157328,89.62477029442753,89.62599254247328,89.62720685377803,89.62841330539871,89.6296119733979,89.63080293285991,89.63198625790638,89.63316202171167,89.63433029651803,89.63549115365026,89.63664466353035,89.63779089569158,89.6389299187927,89.64006180063141,89.641186608158,89.64230440748842,89.64341526391732,89.6445192419307,89.64561640521842,89.64670681668649,89.64779053846905,89.64886763194012,89.64993815772529,89.65100217571303,89.65205974506588,89.65311092423141,89.65415577095298,89.65519434228034,89.65622669458,89.6572528835454,89.65827296420696,89.65928699094194,89.660295017484,89.66129709693286,89.66229328176344,89.66328362383516,89.66426817440085,89.66524698411565,89.6662201030457,89.66718758067663,89.66814946592191,89.66910580713129,89.67005665209865,89.67100204807015,89.67194204175196,89.67287667931795,89.67380600641732,89.67473006818199,89.67564890923389,89.67656257369214,89.67747110518016,89.67837454683259,89.67927294130212,89.68016633076614,89.68105475693345,89.68193826105068,89.68281688390867,89.68369066584881,89.68455964676912,89.6854238661304,89.6862833629622,89.68713817586863,89.68798834303422,89.68883390222955,89.68967489081689,89.69051134575561,89.69134330360775,89.69217080054322,89.69299387234507,89.69381255441465,89.69462688177673,89.69543688908445,89.69624261062421,89.6970440803206,89.69784133174106,89.69863439810061,89.69942331226653,89.70020810676274,89.70098881377444,89.70176546515238,89.7025380924173,89.70330672676408,89.70407139906607,89.70483213987907,89.70558897944555,89.70634194769858,89.70709107426573,89.70783638847311,89.70857791934903,89.70931569562784,89.71004974575366,89.71078009788405,89.71150677989348,89.7122298193771,89.71294924365397,89.71366507977078,89.71437735450495,89.71508609436823,89.71579132560983,89.71649307421971,89.71719136593177,89.71788622622697,89.71857768033648,89.71926575324473,89.71995046969235,89.72063185417922,89.72130993096731,89.72198472408367,89.72265625732312,89.72332455425122,89.72398963820689,89.72465153230513,89.72531025943982,89.72596584228624,89.72661830330374,89.72726766473824,89.72791394862477,89.72855717679012,89.72919737085502,89.72983455223677,89.73046874215159,89.73109996161689,89.7317282314537,89.73235357228893,89.73297600455754,89.73359554850491,89.73421222418891,89.73482605148213,89.73543705007403,89.73604523947299,89.73665063900839,89.73725326783271,89.73785314492353,89.7384502890855,89.73904471895231,89.73963645298865,89.74022550949206,89.74081190659494,89.74139566226629,89.74197679431357,89.7425553203846,89.74313125796918,89.74370462440103,89.74427543685943,89.74484371237092,89.74540946781106,89.74597271990608,89.74653348523445,89.74709178022866,89.74764762117668,89.74820102422362,89.74875200537326,89.74930058048963,89.7498467652985,89.7503905753889,89.7509320262146,89.75147113309554,89.75200791121932,89.75254237564263,89.75307454129265,89.75360442296835,89.75413203534205,89.7546573929606,89.75518051024676,89.75570140150062,89.75622008090075,89.75673656250561,89.75725086025474,89.75776298797008,89.75827295935713,89.75878078800628,89.75928648739387,89.75979007088353,89.76029155172728,89.76079094306668,89.76128825793405,89.76178350925352,89.76227670984221,89.76276787241129,89.76325700956711,89.76374413381225,89.76422925754663,89.76471239306849,89.7651935525755,89.76567274816574,89.76614999183876,89.76662529549648,89.76709867094436,89.76757012989218,89.76803968395511,89.76850734465471,89.76897312341971,89.76943703158713,89.76989908040308,89.77035928102369,89.77081764451603,89.77127418185898,89.77172890394412,89.7721818215766,89.77263294547593,89.77308228627696,89.77352985453055,89.77397566070456,89.77441971518456,89.77486202827465,89.77530261019825,89.77574147109898,89.7761786210413,89.77661407001138,89.7770478279178,89.7774799045924,89.77791030979084,89.77833905319353,89.77876614440626,89.7791915929609,89.77961540831616,89.78003759985828,89.78045817690166,89.78087714868968,89.78129452439521,89.7817103131214,89.78212452390231,89.78253716570359,89.78294824742302,89.7833577778913,89.78376576587257,89.78417222006507,89.78457714910178,89.78498056155101,89.785382465917,89.78578287064053,89.78618178409953,89.78657921460959,89.78697517042463,89.78736965973738,89.78776269068008,89.7881542713249,89.78854440968449,89.78893311371272,89.78932039130494,89.78970625029875,89.79009069847443,89.79047374355542,89.79085539320891,89.79123565504639,89.79161453662398,89.79199204544312,89.79236818895099,89.79274297454097,89.79311640955318,89.7934885012749,89.79385925694112,89.79422868373491,89.79459678878803,89.7949635791812,89.7953290619447,89.7956932440588,89.79605613245411,89.79641773401214,89.79677805556565,89.79713710389916,89.79749488574924,89.79785140780511,89.79820667670892,89.79856069905621,89.79891348139631,89.79926503023279,89.79961535202378,89.79996445318241,89.80031234007721,89.80065901903248,89.80100449632866,89.80134877820277,89.80169187084867,89.8020337804176,89.80237451301835,89.80271407471781,89.80305247154118,89.80338970947244,89.80372579445462,89.8040607323902,89.80439452914142,89.80472719053068,89.8050587223408,89.8053891303154,89.80571842015925,89.80604659753854,89.80637366808128,89.80669963737755,89.80702451097983,89.80734829440341,89.80767099312655,89.80799261259091,89.80831315820177,89.80863263532845,89.80895104930444,89.80926840542786,89.80958470896165,89.80989996513391,89.81021417913819,89.81052735613372,89.81083950124574,89.81115061956584,89.81146071615204,89.81176979602932,89.81207786418969,89.81238492559253,89.8126909851649,89.81299604780175,89.81330011836616,89.81360320168966,89.81390530257245,89.81420642578365,89.81450657606162,89.81480575811405,89.8151039766184,89.81540123622199,89.81569754154232,89.81599289716732,89.81628730765549,89.81658077753626,89.81687331131016,89.81716491344902,89.81745558839626,89.81774534056707,89.81803417434867,89.81832209410051,89.81860910415448,89.81889520881514,89.81918041235994,89.81946471903944,89.81974813307751,89.82003065867148,89.82031229999248,89.82059306118555,89.82087294636983,89.82115195963885,89.82143010506061,89.82170738667789,89.8219838085084,89.82225937454494,89.82253408875566,89.8228079550842,89.82308097744988,89.8233531597479,89.82362450584958,89.82389501960242,89.8241647048304,89.82443356533406,89.82470160489082,89.82496882725495,89.82523523615797,89.82550083530863,89.82576562839326,89.82602961907574,89.82629281099787,89.8265552077794,89.82681681301827,89.82707763029069,89.82733766315143,89.82759691513385,89.82785538975017,89.82811309049154,89.82837002082826,89.82862618420988,89.82888158406546,89.82913622380354,89.8293901068125,89.82964323646056,89.82989561609597,89.83014724904722,89.83039813862305,89.83064828811281,89.83089770078634,89.83114637989432,89.8313943286683,89.8316415503209,89.83188804804591,89.83213382501847,89.83237888439515,89.83262322931412,89.83286686289529,89.83310978824042,89.83335200843327,89.83359352653969,89.83383434560784,89.83407446866825,89.8343138987339,89.83455263880046,89.83479069184634,89.83502806083284,89.83526474870426,89.83550075838804,89.83573609279485,89.83597075481869,89.83620474733716,89.83643807321135,89.83667073528612,89.83690273639017,89.83713407933614,89.83736476692071,89.83759480192481,89.83782418711357,89.83805292523657,89.83828101902787,89.83850847120623,89.83873528447502,89.83896146152252,89.83918700502191,89.83941191763145,89.83963620199452,89.83985986073978,89.8400828964812,89.8403053118183,89.84052710933602,89.8407482916051,89.84096886118193,89.84118882060885,89.84140817241405,89.84162691911185,89.84184506320268,89.84206260717326,89.84227955349658,89.8424959046321,89.8427116630258,89.84292683111026,89.8431414113048,89.8433554060155,89.84356881763536,89.84378164854431,89.84399390110941,89.84420557768483,89.84441668061199,89.84462721221963,89.84483717482392,89.8450465707285,89.84525540222464,89.8454636715912,89.84567138109486,89.84587853299008,89.84608512951927,89.84629117291281,89.84649666538915,89.84670160915492,89.84690600640492,89.84710985932234,89.8473131700787,89.84751594083401,89.84771817373682,89.84791987092427,89.84812103452225,89.84832166664533,89.84852176939701,89.84872134486965,89.8489203951446,89.84911892229232,89.84931692837233,89.84951441543342,89.8497113855136,89.84990784064024,89.85010378283013,89.85029921408956,89.85049413641434,89.85068855178989,89.85088246219136,89.85107586958362,89.85126877592135,89.85146118314918,89.8516530932016,89.8518445080032,89.85203542946854,89.85222585950245,89.8524157999999,89.85260525284612,89.85279421991669,89.8529827030776,89.85317070418527,89.85335822508667,89.85354526761928,89.85373183361129,89.85391792488156,89.85410354323967,89.85428869048606,89.85447336841204,89.85465757879983,89.85484132342266,89.85502460404476,89.8552074224215,89.85538978029942,89.85557167941623,89.85575312150092,89.85593410827384,89.85611464144665,89.85629472272251,89.85647435379603,89.85665353635333,89.85683227207218,89.85701056262195,89.85718840966372,89.85736581485031,89.85754277982635,89.85771930622828,89.85789539568451,89.85807104981532,89.85824627023307,89.85842105854208,89.85859541633882,89.8587693452119,89.85894284674211,89.8591159225025,89.85928857405841,89.85946080296748,89.85963261077977,89.85980399903775,89.8599749692764,89.86014552302315,89.86031566179807,89.86048538711383,89.8606547004757,89.86082360338172,89.86099209732265,89.86116018378203,89.86132786423624,89.86149514015455,89.8616620129991,89.86182848422509,89.8619945552806,89.86216022760685,89.86232550263813,89.86249038180182,89.8626548665185,89.86281895820196,89.86298265825924,89.86314596809068,89.86330888908992,89.86347142264403,89.8636335701334,89.86379533293199,89.86395671240713,89.86411770991974,89.86427832682432,89.86443856446894,89.86459842419531,89.86475790733883,89.86491701522863,89.86507574918754,89.86523411053226,89.86539210057326,89.86554972061485,89.86570697195532,89.86586385588684,89.86602037369553,89.86617652666153,89.86633231605909,89.8664877431564,89.86664280921585,89.86679751549396,89.86695186324143,89.86710585370312,89.86725948811821,89.8674127677201,89.8675656937365,89.86771826738949,89.86787048989551,89.86802236246544,89.86817388630453,89.86832506261256,89.86847589258379,89.86862637740701,89.8687765182656,89.8689263163375,89.86907577279531,89.86922488880627,89.86937366553234,89.86952210413013,89.86967020575105,89.8698179715413,89.86996540264184,89.87011250018853,89.87025926531201,89.8704056991379,89.87055180278671,89.87069757737387,89.87084302400987,89.87098814380013,89.87113293784515,89.87127740724048,89.87142155307677,89.87156537643979,89.87170887841044,89.87185206006482,89.87199492247423,89.87213746670518,89.87227969381944,89.87242160487408,89.87256320092143,89.87270448300922,89.87284545218047,89.87298610947366,89.87312645592259,89.8732664925566,89.87340622040038,89.87354564047419,89.87368475379377,89.87382356137039,89.87396206421091,89.8741002633177,89.87423815968884,89.87437575431797,89.87451304819439,89.87465004230312,89.87478673762486,89.87492313513603,89.87505923580879,89.87519504061112,89.87533055050676,89.87546576645526,89.87560068941204,89.87573532032836,89.87586966015138,89.87600370982418,89.87613747028573,89.876270942471,89.8764041273109,89.87653702573239,89.87666963865834,89.87680196700776,89.87693401169571,89.87706577363326,89.87719725372767,89.87732845288227,89.87745937199652,89.87759001196609,89.87772037368282,89.87785045803474,89.87798026590615,89.8781097981775,89.87823905572562,89.87836803942352,89.87849675014061,89.87862518874255,89.8787533560914,89.8788812530455,89.8790088804597,89.87913623918513,89.87926333006938,89.87939015395654,89.87951671168703,89.87964300409789,89.87976903202254,89.87989479629096,89.88002029772967,89.88014553716172,89.88027051540674,89.88039523328094,89.88051969159712,89.88064389116471,89.8807678327898,89.88089151727509,89.88101494541999,89.88113811802059,89.88126103586967,89.88138369975677,89.88150611046812,89.88162826878677,89.88175017549248,89.88187183136185,89.88199323716829,89.88211439368197,89.88223530166995,89.88235596189618,89.8824763751214,89.8825965421033,89.88271646359644,89.88283614035234,89.88295557311942,89.88307476264305,89.88319370966559,89.88331241492637,89.88343087916174,89.883549103105,89.88366708748654,89.88378483303379,89.88390234047121,89.88401961052033,89.8841366438998,89.88425344132534,89.8843700035098,89.88448633116317,89.8846024249926,89.88471828570233,89.88483391399386,89.88494931056583,89.8850644761141,89.8851794113317,89.885294116909,89.8854085935335,89.88552284189,89.88563686266059,89.88575065652464,89.88586422415878,89.88597756623699,89.88609068343058,89.88620357640819,89.88631624583577,89.88642869237673,89.88654091669174,89.88665291943896,89.8867647012739,89.88687626284953,89.88698760481616,89.88709872782165,89.88720963251127,89.88732031952775,89.88743078951127,89.88754104309959,89.88765108092787,89.88776090362887,89.88787051183284,89.88797990616756,89.8880890872584,89.88819805572825,89.88830681219761,89.88841535728456,89.88852369160476,89.88863181577152,89.88873973039573,89.88884743608594,89.88895493344836,89.88906222308681,89.88916930560282,89.88927618159559,89.889382851662,89.88948931639663,89.88959557639181,89.88970163223755,89.8898074845216,89.8899131338295,89.89001858074447,89.89012382584755,89.89022886971759,89.89033371293117,89.89043835606266,89.8905427996843,89.89064704436609,89.8907510906759,89.89085493917945,89.89095859044026,89.89106204501975,89.89116530347721,89.8912683663698,89.89137123425257,89.89147390767847,89.8915763871984,89.89167867336114,89.89178076671338,89.8918826677998,89.89198437716301,89.8920858953436,89.8921872228801,89.89228836030902,89.89238930816488,89.8924900669802,89.89259063728547,89.89269101960923,89.89279121447805,89.89289122241652,89.89299104394726,89.89309067959098,89.89319012986644,89.89328939529044,89.89338847637791,89.89348737364183,89.8935860875933,89.89368461874152,89.89378296759381,89.89388113465559,89.89397912043046,89.89407692542012,89.89417455012445,89.89427199504146,89.89436926066736,89.89446634749649,89.89456325602144,89.89465998673293,89.89475654011991,89.89485291666954,89.89494911686718,89.89504514119643,89.89514099013913,89.89523666417534,89.8953321637834,89.89542748943988,89.8955226416196,89.89561762079572,89.89571242743962,89.89580706202096,89.89590152500777,89.89599581686632,89.89608993806121,89.89618388905535,89.89627767031001,89.89637128228475,89.89646472543751,89.89655800022457,89.89665110710054,89.89674404651845,89.89683681892964,89.89692942478386,89.89702186452926,89.89711413861235,89.8972062474781,89.89729819156979,89.89738997132922,89.89748158719654,89.89757303961034,89.8976643290077,89.89775545582408,89.89784642049342,89.89793722344811,89.898027865119,89.89811834593544,89.8982086663252,89.8982988267146,89.89838882752841,89.89847866918988,89.89856835212082,89.89865787674151,89.89874724347077,89.89883645272592,89.89892550492283,89.8990144004759,89.8991031397981,89.89919172330089,89.89928015139431,89.89936842448702,89.89945654298616,89.89954450729752,89.89963231782541,89.89971997497275,89.8998074791411,89.89989483073055,89.89998203013982,89.90006907776626,89.90015597400584,89.9002427192531,89.90032931390127,89.90041575834219,89.90050205296635,89.90058819816288,89.90067419431958,89.90076004182288,89.90084574105789,89.90093129240842,89.90101669625689,89.90110195298446,89.90118706297098,89.90127202659494,89.90135684423359,89.90144151626285,89.90152604305734,89.90161042499042,89.90169466243418,89.90177875575941,89.90186270533565,89.90194651153116,89.90203017471299,89.90211369524685,89.90219707349729,89.90228030982759,89.90236340459977,89.90244635817466,89.90252917091183,89.90261184316967,89.90269437530529,89.90277676767467,89.90285902063252,89.90294113453238,89.9030231097266,89.90310494656633,89.90318664540155,89.90326820658103,89.9033496304524,89.9034309173621,89.90351206765543,89.90359308167646,89.9036739597682,89.90375470227245,89.90383530952991,89.90391578188006,89.90399611966134,89.904076323211,89.90415639286518,89.90423632895887,89.90431613182601,89.90439580179938,89.90447533921066,89.90455474439041,89.90463401766814,89.9047131593722,89.90479216982993,89.9048710493675,89.90494979831007,89.9050284169817,89.90510690570535,89.90518526480295,89.90526349459536,89.90534159540239,89.90541956754276,89.90549741133418,89.9055751270933,89.90565271513572,89.90573017577601,89.90580750932773,89.90588471610337,89.90596179641445,89.90603875057138,89.90611557888369,89.90619228165977,89.90626885920707,89.90634531183201,89.90642163984005,89.9064978435356,89.90657392322214,89.90664987920209,89.90672571177696,89.90680142124724,89.90687700791246,89.90695247207114,89.9070278140209,89.90710303405837,89.90717813247917,89.90725310957806,89.90732796564878,89.90740270098412,89.90747731587597,89.90755181061523,89.90762618549192,89.90770044079508,89.90777457681284,89.9078485938324,89.90792249214005,89.90799627202115,89.90806993376016,89.9081434776406,89.90821690394515,89.90829021295548,89.90836340495245,89.908436480216,89.90850943902517,89.90858228165813,89.90865500839212,89.90872761950354,89.9088001152679,89.90887249595984,89.90894476185314,89.90901691322067,89.90908895033446,89.9091608734657,89.90923268288469,89.90930437886091,89.90937596166295,89.90944743155858,89.90951878881471,89.90959003369741,89.90966116647195,89.90973218740272,89.9098030967533,89.9098738947864,89.909944581764,89.91001515794716,89.91008562359619,89.91015597897054,89.91022622432888,89.91029635992906,89.91036638602812,89.9104363028823,89.91050611074705,89.91057580987702,89.91064540052605,89.91071488294722,89.9107842573928,89.91085352411429,89.91092268336241,89.9109917353871,89.9110606804375,89.91112951876202,89.9111982506083,89.91126687622315,89.91133539585272,89.91140380974231,89.91147211813652,89.91154032127915,89.9116084194133,89.91167641278129,89.91174430162471,89.91181208618437,89.9118797667004,89.91194734341214,89.91201481655824,89.91208218637661,89.91214945310438,89.91221661697803,89.91228367823328,89.91235063710512,89.91241749382785,89.91248424863504,89.91255090175953,89.9126174534335,89.91268390388838,89.91275025335491,89.91281650206317,89.91288265024244,89.91294869812141,89.91301464592803,89.91308049388954,89.91314624223254,89.91321189118294,89.91327744096591,89.91334289180601,89.91340824392707,89.91347349755227,89.91353865290412,89.91360371020448,89.91366866967448,89.91373353153465,89.91379829600481,89.91386296330415,89.91392753365122,89.91399200726386,89.9140563843593,89.91412066515409,89.91418484986417,89.91424893870482,89.91431293189066,89.91437682963567,89.91444063215323,89.91450433965606,89.91456795235622,89.9146314704652,89.91469489419379,89.9147582237522,89.91482145935002,89.91488460119622,89.91494764949911,89.91501060446642,89.91507346630526,89.9151362352221,89.91519891142285,89.91526149511277,89.91532398649653,89.9153863857782,89.91544869316127,89.91551090884856,89.91557303304236,89.91563506594437,89.91569700775563,89.91575885867667,89.91582061890736,89.91588228864705,89.91594386809444,89.91600535744773,89.91606675690447,89.91612806666166,89.91618928691571,89.91625041786249,89.91631145969725,89.91637241261473,89.91643327680906,89.91649405247382,89.91655473980201,89.91661533898609,89.91667585021797,89.916736273689,89.91679660958991,89.91685685811099,89.91691701944188,89.91697709377173,89.91703708128914,89.91709698218213,89.9171567966382,89.9172165248443,89.91727616698688,89.9173357232518,89.9173951938244,89.91745457888952,89.91751387863141,89.91757309323386,89.91763222288006,89.91769126775274,89.91775022803407,89.91780910390568,89.91786789554877,89.91792660314388,89.91798522687117,89.9180437669102,89.91810222344007,89.91816059663931,89.91821888668602,89.91827709375771,89.91833521803144,89.91839325968377,89.91845121889071,89.91850909582782,89.91856689067012,89.91862460359218,89.91868223476804,89.91873978437125,89.91879725257489,89.91885463955154,89.91891194547328,89.91896917051173,89.919026314838,89.91908337862274,89.91914036203607,89.91919726524772,89.91925408842687,89.91931083174224,89.91936749536208,89.91942407945419,89.91948058418588,89.91953700972394,89.91959335623481,89.91964962388434,89.91970581283802,89.91976192326081,89.91981795531723,89.91987390917133,89.91992978498672,89.91998558292656,89.92004130315352,89.92009694582988,89.92015251111738,89.92020799917738,89.92026341017079,89.920318744258,89.92037400159906,89.92042918235352,89.92048428668045,89.92053931473858,89.9205942666861,89.92064914268084,89.92070394288012,89.92075866744091,89.92081331651968,89.92086789027249,89.92092238885499,89.92097681242237,89.92103116112939,89.92108543513044,89.9211396345794,89.92119375962982,89.92124781043475,89.92130178714687,89.92135568991843,89.92140951890123,89.92146327424672,89.92151695610588,89.92157056462929,89.92162409996713,89.9216775622692,89.9217309516848,89.92178426836291,89.92183751245209,89.92189068410045,89.92194378345572,89.92199681066528,89.92204976587604,89.92210264923453,89.9221554608869,89.92220820097891,89.92226086965589,89.92231346706278,89.92236599334417,89.92241844864424,89.92247083310674,89.9225231468751,89.9225753900923,89.92262756290098,89.92267966544338,89.92273169786135,89.92278366029637,89.92283555288954,89.92288737578157,89.92293912911278,89.92299081302315,89.92304242765226,89.92309397313933,89.92314544962319,89.92319685724232,89.9232481961348,89.92329946643837,89.92335066829038,89.92340180182784,89.92345286718736,89.92350386450524,89.92355479391733,89.92360565555923,89.92365644956605,89.92370717607268,89.92375783521354,89.92380842712274,89.92385895193404,89.92390940978083,89.92395980079617,89.92401012511272,89.92406038286282,89.92411057417848,89.92416069919133,89.92421075803266,89.92426075083343,89.92431067772422,89.92436053883529,89.92441033429658,89.92446006423764,89.92450972878768,89.92455932807563,89.92460886223002,89.92465833137908,89.92470773565067,89.92475707517235,89.92480635007134,89.9248555604745,89.92490470650836,89.92495378829916,89.92500280597278,89.92505175965478,89.92510064947037,89.92514947554444,89.92519823800161,89.92524693696612,89.92529557256186,89.92534414491247,89.92539265414123,89.92544110037112,89.92548948372473,89.92553780432446,89.92558606229228,89.92563425774986,89.92568239081864,89.92573046161964,89.92577847027361,89.92582641690103,89.92587430162199,89.92592212455631,89.92596988582352,89.92601758554282,89.92606522383308,89.92611280081292,89.9261603166006,89.92620777131413,89.92625516507115,89.92630249798906,89.9263497701849,89.92639698177548,89.92644413287726,89.92649122360642,89.92653825407884,89.92658522441008,89.92663213471545,89.92667898510993,89.92672577570822,89.92677250662473,89.92681917797357,89.92686578986857,89.92691234242325,89.92695883575088,89.9270052699644,89.92705164517646,89.9270979614995,89.92714421904554,89.92719041792647,89.92723655825375,89.9272826401387,89.92732866369224,89.92737462902505,89.92742053624758,89.92746638546991,89.92751217680193,89.92755791035316,89.92760358623293,89.92764920455026,89.92769476541389,89.9277402689323,89.92778571521366,89.92783110436592,89.92787643649675,89.92792171171348,89.92796693012329,89.92801209183297,89.92805719694915,89.92810224557812,89.92814723782591,89.92819217379831,89.92823705360087,89.92828187733879,89.92832664511707,89.92837135704048,89.92841601321344,89.92846061374019,89.92850515872463,89.9285496482705,89.92859408248121,89.92863846145994,89.92868278530958,89.92872705413282,89.92877126803205,89.92881542710944,89.92885953146687,89.92890358120599,89.9289475764282,89.92899151723465,89.92903540372622,89.92907923600356,89.92912301416708,89.92916673831692,89.92921040855298,89.9292540249749,89.92929758768211,89.92934109677378,89.92938455234882,89.92942795450591,89.92947130334349,89.92951459895976,89.92955784145266,89.92960103091991,89.92964416745896,89.9296872511671,89.92973028214126,89.92977326047826,89.92981618627456,89.92985905962651,89.92990188063013,89.92994464938124,89.92998736597542,89.93003003050804,89.93007264307418,89.93011520376876,89.93015771268644,89.93020016992162,89.93024257556851,89.93028492972108,89.93032723247306,89.93036948391799,89.9304116841491,89.9304538332595,89.93049593134202,89.93053797848924,89.93057997479356,89.93062192034716,89.93066381524196,89.93070565956967,89.93074745342182,89.93078919688963,89.93083089006423,89.93087253303639,89.93091412589676,89.93095566873573,89.9309971616435,89.93103860471003,89.93107999802504,89.9311213416781,89.93116263575851,89.93120388035538,89.93124507555761,89.93128622145389,89.93132731813266,89.93136836568219,89.93140936419053,89.93145031374551,89.93149121443474,89.93153206634567,89.93157286956549,89.93161362418117,89.93165433027956,89.9316949879472,89.93173559727049,89.93177615833561,89.93181667122853,89.931857136035,89.9318975528406,89.93193792173068,89.93197824279041,89.93201851610472,89.9320587417584,89.93209891983597,89.93213905042181,89.93217913360006,89.9322191694547,89.93225915806946,89.93229909952791,89.93233899391343,89.93237884130916,89.9324186417981,89.932458395463,89.93249810238646,89.93253776265087,89.93257737633841,89.93261694353109,89.93265646431071,89.93269593875891,89.9327353669571,89.9327747489865,89.93281408492818,89.932853374863,89.93289261887159,89.93293181703446,89.9329709694319,89.933010076144,89.93304913725068,89.93308815283167,89.93312712296651,89.93316604773457,89.93320492721502,89.93324376148682,89.93328255062883,89.93332129471963,89.93335999383768,89.93339864806124,89.93343725746837,89.933475822137,89.93351434214482,89.93355281756936,89.93359124848799,89.9336296349779,89.93366797711606,89.93370627497931,89.9337445286443,89.93378273818746,89.93382090368513,89.93385902521341,89.93389710284823,89.93393513666534,89.93397312674038,89.93401107314872,89.93404897596564,89.93408683526619,89.93412465112526,89.9341624236176,89.93420015281775,89.9342378388001,89.93427548163888,89.9343130814081,89.93435063818167,89.93438815203328,89.93442562303647,89.93446305126461,89.93450043679091,89.93453777968841,89.93457508002994,89.93461233788827,89.93464955333589,89.93468672644518,89.93472385728835,89.93476094593747,89.93479799246438,89.93483499694082,89.93487195943834,89.93490888002835,89.93494575878205,89.93498259577052,89.93501939106469,89.93505614473528,89.93509285685289,89.93512952748796,89.93516615671074,89.93520274459135,89.93523929119974,89.93527579660571,89.93531226087889,89.93534868408877,89.93538506630466,89.93542140759575,89.93545770803104,89.93549396767939,89.9355301866095,89.93556636488992,89.93560250258906,89.93563859977515,89.93567465651627,89.93571067288036,89.93574664893522,89.93578258474847,89.9358184803876,89.93585433591993,89.93589015141265,89.93592592693277,89.9359616625472,89.93599735832265,89.93603301432573,89.93606863062284,89.9361042072803,89.93613974436423,89.9361752419406,89.9362107000753,89.93624611883402,89.9362814982823,89.93631683848555,89.93635213950903,89.93638740141789,89.93642262427704,89.93645780815139,89.93649295310556,89.93652805920414,89.9365631265115,89.93659815509193,89.9366331450095,89.93666809632823,89.93670300911194,89.93673788342433,89.93677271932894,89.9368075168892,89.93684227616838,89.9368769972296,89.93691168013588,89.93694632495006,89.93698093173487,89.93701550055287,89.93705003146654,89.93708452453818,89.93711897982995,89.93715339740389,89.93718777732191,89.93722211964575,89.93725642443705,89.93729069175733,89.93732492166792,89.93735911423006,89.93739326950484,89.93742738755323,89.93746146843604,89.93749551221397,89.9375295189476,89.93756348869734,89.93759742152349,89.93763131748624,89.9376651766456,89.93769899906151,89.93773278479372,89.93776653390188,89.93780024644553,89.93783392248403,89.93786756207668,89.93790116528257,89.93793473216074,89.93796826277006,89.93800175716927,89.93803521541699,89.93806863757173,89.93810202369188,89.93813537383565,89.93816868806117,89.93820196642643,89.93823520898934,89.93826841580758,89.93830158693882,89.93833472244056,89.93836782237014,89.93840088678483,89.93843391574177,89.93846690929794,89.93849986751026,89.93853279043546,89.93856567813017,89.93859853065095,89.93863134805417,89.93866413039612,89.93869687773297,89.93872959012073,89.93876226761533,89.93879491027256,89.93882751814813,89.93886009129757,89.93889262977633,89.93892513363976,89.93895760294305,89.93899003774126,89.93902243808941,89.93905480404234,89.9390871356548,89.9391194329814,89.93915169607664,89.93918392499494,89.93921611979054,89.93924828051765,89.93928040723029,89.93931249998239,89.93934455882778,89.93937658382018,89.93940857501316,89.9394405324602,89.93947245621469,89.93950434632985,89.93953620285886,89.93956802585473,89.93959981537037,89.93963157145862,89.93966329417215,89.93969498356356,89.93972663968529,89.93975826258976,89.9397898523292,89.93982140895575,89.93985293252146,89.93988442307825,89.93991588067794,89.93994730537224,89.93997869721275,89.94001005625098,89.9400413825383,89.94007267612601,89.94010393706525,89.94013516540711,89.94016636120257,89.94019752450242,89.94022865535747,89.94025975381835,89.94029081993558,89.94032185375958,89.94035285534072,89.9403838247292,89.94041476197512,89.9404456671285,89.94047654023929,89.94050738135725,89.9405381905321,89.94056896781345,89.94059971325079,89.94063042689352,89.94066110879093,89.94069175899222,89.94072237754646,89.94075296450266,89.94078351990971,89.94081404381637,89.94084453627136,89.94087499732325,89.94090542702052,89.94093582541157,89.94096619254468,89.94099652846805,89.94102683322974,89.94105710687778,89.94108734946003,89.9411175610243,89.94114774161828,89.94117789128956,89.94120801008565,89.94123809805394,89.94126815524177,89.94129818169631,89.9413281774647,89.94135814259393,89.94138807713094,89.94141798112256,89.9414478546155,89.94147769765641,89.94150751029181,89.94153729256817,89.94156704453182,89.94159676622904,89.94162645770595,89.94165611900864,89.94168575018311,89.94171535127519,89.9417449223307,89.94177446339532,89.94180397451467,89.94183345573425,89.94186290709948,89.94189232865567,89.94192172044805,89.9419510825218,89.94198041492194,89.94200971769344,89.94203899088116,89.94206823452988,89.94209744868432,89.94212663338904,89.94215578868855,89.94218491462729,89.94221401124958,89.94224307859965,89.94227211672165,89.94230112565967,89.94233010545766,89.9423590561595,89.942387977809,89.94241687044989,89.94244573412576,89.94247456888014,89.9425033747565,89.94253215179819,89.9425609000485,89.9425896195506,89.94261831034758,89.94264697248248,89.9426756059982,89.94270421093762],"x":[1.0,1.499000999000999,1.998001998001998,2.497002997002997,2.996003996003996,3.495004995004995,3.994005994005994,4.493006993006993,4.992007992007992,5.491008991008991,5.99000999000999,6.489010989010989,6.988011988011988,7.487012987012987,7.986013986013986,8.485014985014985,8.984015984015985,9.483016983016983,9.982017982017982,10.48101898101898,10.98001998001998,11.479020979020978,11.978021978021978,12.477022977022976,12.976023976023976,13.475024975024976,13.974025974025974,14.473026973026974,14.972027972027972,15.471028971028971,15.97002997002997,16.469030969030968,16.96803196803197,17.467032967032967,17.966033966033965,18.465034965034967,18.964035964035965,19.463036963036963,19.96203796203796,20.461038961038962,20.96003996003996,21.45904095904096,21.958041958041957,22.457042957042958,22.956043956043956,23.455044955044954,23.954045954045952,24.453046953046954,24.952047952047952,25.45104895104895,25.95004995004995,26.44905094905095,26.948051948051948,27.447052947052946,27.946053946053947,28.445054945054945,28.944055944055943,29.44305694305694,29.942057942057943,30.44105894105894,30.94005994005994,31.43906093906094,31.93806193806194,32.43706293706294,32.93606393606394,33.435064935064936,33.934065934065934,34.43306693306693,34.93206793206793,35.43106893106893,35.93006993006993,36.42907092907093,36.92807192807193,37.42707292707293,37.926073926073926,38.425074925074924,38.92407592407592,39.42307692307692,39.922077922077925,40.42107892107892,40.92007992007992,41.41908091908092,41.91808191808192,42.417082917082915,42.91608391608391,43.41508491508492,43.914085914085916,44.413086913086914,44.91208791208791,45.41108891108891,45.91008991008991,46.40909090909091,46.908091908091905,47.40709290709291,47.90609390609391,48.405094905094906,48.904095904095904,49.4030969030969,49.9020979020979,50.4010989010989,50.9000999000999,51.3991008991009,51.8981018981019,52.3971028971029,52.896103896103895,53.39510489510489,53.89410589410589,54.393106893106896,54.892107892107894,55.39110889110889,55.89010989010989,56.38911088911089,56.88811188811189,57.387112887112885,57.88611388611388,58.38511488511489,58.884115884115886,59.383116883116884,59.88211788211788,60.38111888111888,60.88011988011988,61.379120879120876,61.87812187812188,62.37712287712288,62.87612387612388,63.375124875124875,63.87412587412587,64.37312687312688,64.87212787212788,65.37112887112887,65.87012987012987,66.36913086913087,66.86813186813187,67.36713286713287,67.86613386613386,68.36513486513486,68.86413586413586,69.36313686313686,69.86213786213786,70.36113886113885,70.86013986013987,71.35914085914087,71.85814185814186,72.35714285714286,72.85614385614386,73.35514485514486,73.85414585414586,74.35314685314685,74.85214785214785,75.35114885114885,75.85014985014985,76.34915084915085,76.84815184815184,77.34715284715284,77.84615384615384,78.34515484515485,78.84415584415585,79.34315684315685,79.84215784215785,80.34115884115884,80.84015984015984,81.33916083916084,81.83816183816184,82.33716283716284,82.83616383616383,83.33516483516483,83.83416583416583,84.33316683316683,84.83216783216783,85.33116883116882,85.83016983016984,86.32917082917083,86.82817182817183,87.32717282717283,87.82617382617383,88.32517482517483,88.82417582417582,89.32317682317682,89.82217782217782,90.32117882117882,90.82017982017982,91.31918081918081,91.81818181818181,92.31718281718281,92.81618381618381,93.31518481518482,93.81418581418582,94.31318681318682,94.81218781218782,95.31118881118881,95.81018981018981,96.30919080919081,96.80819180819181,97.3071928071928,97.8061938061938,98.3051948051948,98.8041958041958,99.3031968031968,99.8021978021978,100.30119880119881,100.8001998001998,101.2992007992008,101.7982017982018,102.2972027972028,102.7962037962038,103.2952047952048,103.7942057942058,104.29320679320679,104.79220779220779,105.29120879120879,105.79020979020979,106.28921078921078,106.78821178821178,107.28721278721278,107.78621378621379,108.28521478521479,108.78421578421579,109.28321678321679,109.78221778221778,110.28121878121878,110.78021978021978,111.27922077922078,111.77822177822178,112.27722277722278,112.77622377622377,113.27522477522477,113.77422577422577,114.27322677322677,114.77222777222777,115.27122877122878,115.77022977022978,116.26923076923077,116.76823176823177,117.26723276723277,117.76623376623377,118.26523476523477,118.76423576423576,119.26323676323676,119.76223776223776,120.26123876123876,120.76023976023976,121.25924075924075,121.75824175824175,122.25724275724276,122.75624375624376,123.25524475524476,123.75424575424576,124.25324675324676,124.75224775224775,125.25124875124875,125.75024975024975,126.24925074925075,126.74825174825175,127.24725274725274,127.74625374625374,128.24525474525475,128.74425574425575,129.24325674325675,129.74225774225775,130.24125874125875,130.74025974025975,131.23926073926074,131.73826173826174,132.23726273726274,132.73626373626374,133.23526473526474,133.73426573426573,134.23326673326673,134.73226773226773,135.23126873126873,135.73026973026973,136.22927072927072,136.72827172827172,137.22727272727272,137.72627372627372,138.22527472527472,138.7242757242757,139.2232767232767,139.7222777222777,140.2212787212787,140.72027972027973,141.21928071928073,141.71828171828173,142.21728271728273,142.71628371628373,143.21528471528472,143.71428571428572,144.21328671328672,144.71228771228772,145.21128871128872,145.71028971028971,146.2092907092907,146.7082917082917,147.2072927072927,147.7062937062937,148.2052947052947,148.7042957042957,149.2032967032967,149.7022977022977,150.2012987012987,150.7002997002997,151.1993006993007,151.6983016983017,152.1973026973027,152.6963036963037,153.19530469530469,153.69430569430568,154.19330669330668,154.69230769230768,155.19130869130868,155.6903096903097,156.1893106893107,156.6883116883117,157.1873126873127,157.6863136863137,158.1853146853147,158.6843156843157,159.1833166833167,159.6823176823177,160.1813186813187,160.68031968031968,161.17932067932068,161.67832167832168,162.17732267732268,162.67632367632368,163.17532467532467,163.67432567432567,164.17332667332667,164.67232767232767,165.17132867132867,165.67032967032966,166.16933066933066,166.66833166833166,167.16733266733266,167.66633366633366,168.16533466533465,168.66433566433565,169.16333666333665,169.66233766233765,170.16133866133868,170.66033966033967,171.15934065934067,171.65834165834167,172.15734265734267,172.65634365634367,173.15534465534466,173.65434565434566,174.15334665334666,174.65234765234766,175.15134865134866,175.65034965034965,176.14935064935065,176.64835164835165,177.14735264735265,177.64635364635365,178.14535464535464,178.64435564435564,179.14335664335664,179.64235764235764,180.14135864135864,180.64035964035963,181.13936063936063,181.63836163836163,182.13736263736263,182.63636363636363,183.13536463536462,183.63436563436562,184.13336663336662,184.63236763236762,185.13136863136864,185.63036963036964,186.12937062937064,186.62837162837164,187.12737262737264,187.62637362637363,188.12537462537463,188.62437562437563,189.12337662337663,189.62237762237763,190.12137862137862,190.62037962037962,191.11938061938062,191.61838161838162,192.11738261738262,192.61638361638362,193.1153846153846,193.6143856143856,194.1133866133866,194.6123876123876,195.1113886113886,195.6103896103896,196.1093906093906,196.6083916083916,197.1073926073926,197.6063936063936,198.1053946053946,198.6043956043956,199.1033966033966,199.60239760239762,200.1013986013986,200.6003996003996,201.0994005994006,201.5984015984016,202.0974025974026,202.5964035964036,203.0954045954046,203.5944055944056,204.0934065934066,204.5924075924076,205.0914085914086,205.5904095904096,206.0894105894106,206.5884115884116,207.0874125874126,207.58641358641358,208.08541458541458,208.58441558441558,209.08341658341658,209.58241758241758,210.08141858141857,210.58041958041957,211.07942057942057,211.57842157842157,212.07742257742257,212.57642357642357,213.07542457542456,213.57442557442556,214.0734265734266,214.57242757242759,215.07142857142858,215.57042957042958,216.06943056943058,216.56843156843158,217.06743256743258,217.56643356643357,218.06543456543457,218.56443556443557,219.06343656343657,219.56243756243757,220.06143856143856,220.56043956043956,221.05944055944056,221.55844155844156,222.05744255744256,222.55644355644355,223.05544455544455,223.55444555444555,224.05344655344655,224.55244755244755,225.05144855144854,225.55044955044954,226.04945054945054,226.54845154845154,227.04745254745254,227.54645354645353,228.04545454545453,228.54445554445553,229.04345654345656,229.54245754245756,230.04145854145855,230.54045954045955,231.03946053946055,231.53846153846155,232.03746253746255,232.53646353646354,233.03546453546454,233.53446553446554,234.03346653346654,234.53246753246754,235.03146853146853,235.53046953046953,236.02947052947053,236.52847152847153,237.02747252747253,237.52647352647352,238.02547452547452,238.52447552447552,239.02347652347652,239.52247752247752,240.0214785214785,240.5204795204795,241.0194805194805,241.5184815184815,242.0174825174825,242.5164835164835,243.0154845154845,243.51448551448553,244.01348651348653,244.51248751248752,245.01148851148852,245.51048951048952,246.00949050949052,246.50849150849152,247.00749250749251,247.5064935064935,248.0054945054945,248.5044955044955,249.0034965034965,249.5024975024975,250.0014985014985,250.5004995004995,250.9995004995005,251.4985014985015,251.9975024975025,252.4965034965035,252.9955044955045,253.4945054945055,253.9935064935065,254.49250749250749,254.99150849150848,255.49050949050948,255.98951048951048,256.4885114885115,256.9875124875125,257.4865134865135,257.9855144855145,258.4845154845155,258.9835164835165,259.4825174825175,259.9815184815185,260.4805194805195,260.9795204795205,261.4785214785215,261.9775224775225,262.4765234765235,262.9755244755245,263.4745254745255,263.9735264735265,264.4725274725275,264.9715284715285,265.47052947052947,265.96953046953047,266.46853146853147,266.96753246753246,267.46653346653346,267.96553446553446,268.46453546453546,268.96353646353646,269.46253746253745,269.96153846153845,270.46053946053945,270.95954045954045,271.45854145854145,271.95754245754244,272.45654345654344,272.95554445554444,273.45454545454544,273.95354645354644,274.45254745254744,274.95154845154843,275.45054945054943,275.94955044955043,276.4485514485514,276.9475524475524,277.4465534465534,277.9455544455544,278.4445554445554,278.9435564435564,279.4425574425574,279.9415584415584,280.44055944055947,280.93956043956047,281.43856143856146,281.93756243756246,282.43656343656346,282.93556443556446,283.43456543456546,283.93356643356645,284.43256743256745,284.93156843156845,285.43056943056945,285.92957042957045,286.42857142857144,286.92757242757244,287.42657342657344,287.92557442557444,288.42457542457544,288.92357642357643,289.42257742257743,289.92157842157843,290.42057942057943,290.9195804195804,291.4185814185814,291.9175824175824,292.4165834165834,292.9155844155844,293.4145854145854,293.9135864135864,294.4125874125874,294.9115884115884,295.4105894105894,295.9095904095904,296.4085914085914,296.9075924075924,297.4065934065934,297.9055944055944,298.4045954045954,298.9035964035964,299.4025974025974,299.9015984015984,300.4005994005994,300.8996003996004,301.3986013986014,301.8976023976024,302.3966033966034,302.8956043956044,303.3946053946054,303.8936063936064,304.3926073926074,304.8916083916084,305.39060939060937,305.88961038961037,306.38861138861137,306.88761238761236,307.38661338661336,307.88561438561436,308.38461538461536,308.88361638361636,309.38261738261735,309.8816183816184,310.3806193806194,310.8796203796204,311.3786213786214,311.8776223776224,312.3766233766234,312.8756243756244,313.3746253746254,313.8736263736264,314.3726273726274,314.8716283716284,315.3706293706294,315.8696303696304,316.3686313686314,316.8676323676324,317.3666333666334,317.8656343656344,318.3646353646354,318.8636363636364,319.3626373626374,319.86163836163837,320.36063936063937,320.85964035964037,321.35864135864136,321.85764235764236,322.35664335664336,322.85564435564436,323.35464535464536,323.85364635364635,324.35264735264735,324.85164835164835,325.35064935064935,325.84965034965035,326.34865134865134,326.84765234765234,327.34665334665334,327.84565434565434,328.34465534465534,328.84365634365633,329.34265734265733,329.84165834165833,330.34065934065933,330.8396603396603,331.3386613386613,331.8376623376623,332.3366633366633,332.8356643356643,333.3346653346653,333.8336663336663,334.3326673326673,334.8316683316683,335.3306693306693,335.8296703296703,336.3286713286713,336.8276723276723,337.3266733266733,337.8256743256743,338.3246753246753,338.8236763236763,339.32267732267735,339.82167832167835,340.32067932067935,340.81968031968034,341.31868131868134,341.81768231768234,342.31668331668334,342.81568431568434,343.31468531468533,343.81368631368633,344.31268731268733,344.81168831168833,345.3106893106893,345.8096903096903,346.3086913086913,346.8076923076923,347.3066933066933,347.8056943056943,348.3046953046953,348.8036963036963,349.3026973026973,349.8016983016983,350.3006993006993,350.7997002997003,351.2987012987013,351.7977022977023,352.2967032967033,352.7957042957043,353.2947052947053,353.7937062937063,354.2927072927073,354.7917082917083,355.2907092907093,355.7897102897103,356.2887112887113,356.7877122877123,357.2867132867133,357.7857142857143,358.2847152847153,358.7837162837163,359.2827172827173,359.78171828171827,360.28071928071927,360.77972027972027,361.27872127872126,361.77772227772226,362.27672327672326,362.77572427572426,363.27472527472526,363.77372627372625,364.27272727272725,364.77172827172825,365.27072927072925,365.76973026973025,366.26873126873124,366.76773226773224,367.26673326673324,367.76573426573424,368.26473526473524,368.7637362637363,369.2627372627373,369.7617382617383,370.2607392607393,370.7597402597403,371.2587412587413,371.7577422577423,372.2567432567433,372.7557442557443,373.2547452547453,373.75374625374627,374.25274725274727,374.75174825174827,375.25074925074927,375.74975024975026,376.24875124875126,376.74775224775226,377.24675324675326,377.74575424575426,378.24475524475525,378.74375624375625,379.24275724275725,379.74175824175825,380.24075924075925,380.73976023976024,381.23876123876124,381.73776223776224,382.23676323676324,382.73576423576424,383.23476523476523,383.73376623376623,384.23276723276723,384.7317682317682,385.2307692307692,385.7297702297702,386.2287712287712,386.7277722277722,387.2267732267732,387.7257742257742,388.2247752247752,388.7237762237762,389.2227772227772,389.7217782217782,390.2207792207792,390.7197802197802,391.2187812187812,391.7177822177822,392.2167832167832,392.7157842157842,393.2147852147852,393.7137862137862,394.2127872127872,394.7117882117882,395.2107892107892,395.7097902097902,396.2087912087912,396.7077922077922,397.2067932067932,397.70579420579423,398.20479520479523,398.70379620379623,399.2027972027972,399.7017982017982,400.2007992007992,400.6998001998002,401.1988011988012,401.6978021978022,402.1968031968032,402.6958041958042,403.1948051948052,403.6938061938062,404.1928071928072,404.6918081918082,405.1908091908092,405.6898101898102,406.1888111888112,406.6878121878122,407.1868131868132,407.6858141858142,408.1848151848152,408.6838161838162,409.1828171828172,409.6818181818182,410.1808191808192,410.6798201798202,411.1788211788212,411.6778221778222,412.1768231768232,412.6758241758242,413.1748251748252,413.67382617382617,414.17282717282717,414.67182817182817,415.17082917082917,415.66983016983016,416.16883116883116,416.66783216783216,417.16683316683316,417.66583416583416,418.16483516483515,418.66383616383615,419.16283716283715,419.66183816183815,420.16083916083915,420.65984015984014,421.15884115884114,421.65784215784214,422.15684315684314,422.65584415584414,423.15484515484513,423.65384615384613,424.15284715284713,424.6518481518481,425.1508491508491,425.6498501498501,426.1488511488511,426.6478521478521,427.1468531468532,427.6458541458542,428.14485514485517,428.64385614385617,429.14285714285717,429.64185814185817,430.14085914085916,430.63986013986016,431.13886113886116,431.63786213786216,432.13686313686316,432.63586413586415,433.13486513486515,433.63386613386615,434.13286713286715,434.63186813186815,435.13086913086914,435.62987012987014,436.12887112887114,436.62787212787214,437.12687312687314,437.62587412587413,438.12487512487513,438.62387612387613,439.1228771228771,439.6218781218781,440.1208791208791,440.6198801198801,441.1188811188811,441.6178821178821,442.1168831168831,442.6158841158841,443.1148851148851,443.6138861138861,444.1128871128871,444.6118881118881,445.1108891108891,445.6098901098901,446.1088911088911,446.6078921078921,447.1068931068931,447.6058941058941,448.1048951048951,448.6038961038961,449.1028971028971,449.6018981018981,450.1008991008991,450.5999000999001,451.0989010989011,451.5979020979021,452.0969030969031,452.5959040959041,453.0949050949051,453.59390609390607,454.09290709290707,454.59190809190807,455.09090909090907,455.58991008991006,456.08891108891106,456.5879120879121,457.0869130869131,457.5859140859141,458.0849150849151,458.5839160839161,459.0829170829171,459.5819180819181,460.0809190809191,460.5799200799201,461.0789210789211,461.5779220779221,462.0769230769231,462.5759240759241,463.0749250749251,463.5739260739261,464.0729270729271,464.5719280719281,465.0709290709291,465.5699300699301,466.0689310689311,466.5679320679321,467.0669330669331,467.5659340659341,468.06493506493507,468.56393606393607,469.06293706293707,469.56193806193806,470.06093906093906,470.55994005994006,471.05894105894106,471.55794205794206,472.05694305694306,472.55594405594405,473.05494505494505,473.55394605394605,474.05294705294705,474.55194805194805,475.05094905094904,475.54995004995004,476.04895104895104,476.54795204795204,477.04695304695304,477.54595404595403,478.04495504495503,478.54395604395603,479.042957042957,479.541958041958,480.040959040959,480.53996003996,481.038961038961,481.537962037962,482.036963036963,482.535964035964,483.034965034965,483.533966033966,484.032967032967,484.531968031968,485.030969030969,485.52997002997,486.02897102897106,486.52797202797206,487.02697302697305,487.52597402597405,488.02497502497505,488.52397602397605,489.02297702297705,489.52197802197804,490.02097902097904,490.51998001998004,491.01898101898104,491.51798201798204,492.01698301698303,492.51598401598403,493.01498501498503,493.513986013986,494.012987012987,494.511988011988,495.010989010989,495.50999000999,496.008991008991,496.507992007992,497.006993006993,497.505994005994,498.004995004995,498.503996003996,499.002997002997,499.501998001998,500.000999000999,500.5,500.999000999001,501.498001998002,501.997002997003,502.496003996004,502.995004995005,503.494005994006,503.993006993007,504.492007992008,504.991008991009,505.49000999001,505.989010989011,506.488011988012,506.987012987013,507.486013986014,507.98501498501497,508.48401598401597,508.98301698301697,509.48201798201796,509.98101898101896,510.48001998001996,510.97902097902096,511.47802197802196,511.97702297702295,512.476023976024,512.975024975025,513.474025974026,513.973026973027,514.472027972028,514.971028971029,515.4700299700299,515.969030969031,516.4680319680319,516.967032967033,517.4660339660339,517.965034965035,518.4640359640359,518.963036963037,519.4620379620379,519.961038961039,520.4600399600399,520.959040959041,521.4580419580419,521.957042957043,522.4560439560439,522.955044955045,523.4540459540459,523.953046953047,524.4520479520479,524.951048951049,525.4500499500499,525.949050949051,526.4480519480519,526.947052947053,527.4460539460539,527.945054945055,528.4440559440559,528.943056943057,529.4420579420579,529.9410589410589,530.44005994006,530.9390609390609,531.438061938062,531.9370629370629,532.436063936064,532.9350649350649,533.434065934066,533.9330669330669,534.432067932068,534.9310689310689,535.43006993007,535.9290709290709,536.428071928072,536.9270729270729,537.426073926074,537.9250749250749,538.424075924076,538.9230769230769,539.422077922078,539.9210789210789,540.42007992008,540.9190809190809,541.418081918082,541.9170829170829,542.416083916084,542.9150849150849,543.414085914086,543.9130869130869,544.4120879120879,544.9110889110889,545.4100899100899,545.9090909090909,546.4080919080919,546.9070929070929,547.4060939060939,547.9050949050949,548.4040959040959,548.9030969030969,549.4020979020979,549.9010989010989,550.4000999000999,550.8991008991009,551.3981018981019,551.8971028971029,552.3961038961039,552.8951048951049,553.3941058941059,553.8931068931068,554.3921078921079,554.8911088911088,555.3901098901099,555.8891108891108,556.3881118881119,556.8871128871128,557.3861138861139,557.8851148851148,558.3841158841159,558.8831168831168,559.3821178821179,559.8811188811189,560.3801198801199,560.8791208791209,561.3781218781219,561.8771228771229,562.3761238761239,562.8751248751249,563.3741258741259,563.8731268731269,564.3721278721279,564.8711288711289,565.3701298701299,565.8691308691309,566.3681318681319,566.8671328671329,567.3661338661339,567.8651348651349,568.3641358641358,568.8631368631369,569.3621378621378,569.8611388611389,570.3601398601398,570.8591408591409,571.3581418581418,571.8571428571429,572.3561438561438,572.8551448551449,573.3541458541458,573.8531468531469,574.3521478521478,574.8511488511489,575.3501498501498,575.8491508491509,576.3481518481518,576.8471528471529,577.3461538461538,577.8451548451549,578.3441558441558,578.8431568431569,579.3421578421578,579.8411588411589,580.3401598401598,580.8391608391609,581.3381618381618,581.8371628371629,582.3361638361638,582.8351648351648,583.3341658341658,583.8331668331668,584.3321678321678,584.8311688311688,585.3301698301698,585.8291708291708,586.3281718281718,586.8271728271728,587.3261738261738,587.8251748251748,588.3241758241758,588.8231768231768,589.3221778221779,589.8211788211788,590.3201798201799,590.8191808191808,591.3181818181819,591.8171828171828,592.3161838161839,592.8151848151848,593.3141858141859,593.8131868131868,594.3121878121879,594.8111888111888,595.3101898101899,595.8091908091908,596.3081918081919,596.8071928071928,597.3061938061938,597.8051948051948,598.3041958041958,598.8031968031968,599.3021978021978,599.8011988011988,600.3001998001998,600.7992007992008,601.2982017982018,601.7972027972028,602.2962037962038,602.7952047952048,603.2942057942058,603.7932067932068,604.2922077922078,604.7912087912088,605.2902097902098,605.7892107892108,606.2882117882118,606.7872127872128,607.2862137862138,607.7852147852147,608.2842157842158,608.7832167832167,609.2822177822178,609.7812187812187,610.2802197802198,610.7792207792207,611.2782217782218,611.7772227772227,612.2762237762238,612.7752247752247,613.2742257742258,613.7732267732267,614.2722277722278,614.7712287712287,615.2702297702298,615.7692307692307,616.2682317682318,616.7672327672327,617.2662337662338,617.7652347652347,618.2642357642358,618.7632367632368,619.2622377622378,619.7612387612388,620.2602397602398,620.7592407592408,621.2582417582418,621.7572427572428,622.2562437562437,622.7552447552448,623.2542457542457,623.7532467532468,624.2522477522477,624.7512487512488,625.2502497502497,625.7492507492508,626.2482517482517,626.7472527472528,627.2462537462537,627.7452547452548,628.2442557442557,628.7432567432568,629.2422577422577,629.7412587412588,630.2402597402597,630.7392607392608,631.2382617382617,631.7372627372628,632.2362637362637,632.7352647352648,633.2342657342657,633.7332667332668,634.2322677322677,634.7312687312688,635.2302697302697,635.7292707292708,636.2282717282717,636.7272727272727,637.2262737262737,637.7252747252747,638.2242757242757,638.7232767232767,639.2222777222777,639.7212787212787,640.2202797202797,640.7192807192807,641.2182817182817,641.7172827172827,642.2162837162837,642.7152847152847,643.2142857142857,643.7132867132867,644.2122877122877,644.7112887112887,645.2102897102897,645.7092907092907,646.2082917082917,646.7072927072927,647.2062937062936,647.7052947052947,648.2042957042958,648.7032967032967,649.2022977022978,649.7012987012987,650.2002997002998,650.6993006993007,651.1983016983017,651.6973026973027,652.1963036963037,652.6953046953047,653.1943056943057,653.6933066933067,654.1923076923077,654.6913086913087,655.1903096903097,655.6893106893107,656.1883116883117,656.6873126873127,657.1863136863137,657.6853146853147,658.1843156843157,658.6833166833167,659.1823176823177,659.6813186813187,660.1803196803197,660.6793206793207,661.1783216783217,661.6773226773226,662.1763236763237,662.6753246753246,663.1743256743257,663.6733266733266,664.1723276723277,664.6713286713286,665.1703296703297,665.6693306693306,666.1683316683317,666.6673326673326,667.1663336663337,667.6653346653346,668.1643356643357,668.6633366633366,669.1623376623377,669.6613386613386,670.1603396603397,670.6593406593406,671.1583416583417,671.6573426573426,672.1563436563437,672.6553446553446,673.1543456543457,673.6533466533466,674.1523476523477,674.6513486513486,675.1503496503497,675.6493506493506,676.1483516483516,676.6473526473526,677.1463536463536,677.6453546453547,678.1443556443556,678.6433566433567,679.1423576423576,679.6413586413587,680.1403596403596,680.6393606393607,681.1383616383616,681.6373626373627,682.1363636363636,682.6353646353647,683.1343656343656,683.6333666333667,684.1323676323676,684.6313686313687,685.1303696303696,685.6293706293707,686.1283716283716,686.6273726273727,687.1263736263736,687.6253746253747,688.1243756243756,688.6233766233767,689.1223776223776,689.6213786213787,690.1203796203796,690.6193806193806,691.1183816183816,691.6173826173826,692.1163836163836,692.6153846153846,693.1143856143856,693.6133866133866,694.1123876123876,694.6113886113886,695.1103896103896,695.6093906093906,696.1083916083916,696.6073926073926,697.1063936063936,697.6053946053946,698.1043956043956,698.6033966033966,699.1023976023976,699.6013986013986,700.1003996003996,700.5994005994006,701.0984015984016,701.5974025974026,702.0964035964035,702.5954045954046,703.0944055944055,703.5934065934066,704.0924075924075,704.5914085914086,705.0904095904095,705.5894105894106,706.0884115884115,706.5874125874126,707.0864135864136,707.5854145854146,708.0844155844156,708.5834165834166,709.0824175824176,709.5814185814186,710.0804195804196,710.5794205794206,711.0784215784216,711.5774225774226,712.0764235764236,712.5754245754246,713.0744255744256,713.5734265734266,714.0724275724276,714.5714285714286,715.0704295704296,715.5694305694306,716.0684315684316,716.5674325674325,717.0664335664336,717.5654345654345,718.0644355644356,718.5634365634365,719.0624375624376,719.5614385614385,720.0604395604396,720.5594405594405,721.0584415584416,721.5574425574425,722.0564435564436,722.5554445554445,723.0544455544456,723.5534465534465,724.0524475524476,724.5514485514485,725.0504495504496,725.5494505494505,726.0484515484516,726.5474525474525,727.0464535464536,727.5454545454545,728.0444555444556,728.5434565434565,729.0424575424576,729.5414585414585,730.0404595404596,730.5394605394605,731.0384615384615,731.5374625374625,732.0364635364635,732.5354645354645,733.0344655344655,733.5334665334665,734.0324675324675,734.5314685314685,735.0304695304695,735.5294705294705,736.0284715284715,736.5274725274726,737.0264735264735,737.5254745254746,738.0244755244755,738.5234765234766,739.0224775224775,739.5214785214786,740.0204795204795,740.5194805194806,741.0184815184815,741.5174825174826,742.0164835164835,742.5154845154846,743.0144855144855,743.5134865134866,744.0124875124875,744.5114885114886,745.0104895104895,745.5094905094905,746.0084915084915,746.5074925074925,747.0064935064935,747.5054945054945,748.0044955044955,748.5034965034965,749.0024975024975,749.5014985014985,750.0004995004995,750.4995004995005,750.9985014985015,751.4975024975025,751.9965034965035,752.4955044955045,752.9945054945055,753.4935064935065,753.9925074925075,754.4915084915085,754.9905094905095,755.4895104895105,755.9885114885114,756.4875124875125,756.9865134865134,757.4855144855145,757.9845154845154,758.4835164835165,758.9825174825174,759.4815184815185,759.9805194805194,760.4795204795205,760.9785214785214,761.4775224775225,761.9765234765234,762.4755244755245,762.9745254745254,763.4735264735265,763.9725274725274,764.4715284715285,764.9705294705295,765.4695304695305,765.9685314685315,766.4675324675325,766.9665334665335,767.4655344655345,767.9645354645355,768.4635364635365,768.9625374625375,769.4615384615385,769.9605394605395,770.4595404595404,770.9585414585415,771.4575424575424,771.9565434565435,772.4555444555444,772.9545454545455,773.4535464535464,773.9525474525475,774.4515484515484,774.9505494505495,775.4495504495504,775.9485514485515,776.4475524475524,776.9465534465535,777.4455544455544,777.9445554445555,778.4435564435564,778.9425574425575,779.4415584415584,779.9405594405595,780.4395604395604,780.9385614385615,781.4375624375624,781.9365634365635,782.4355644355644,782.9345654345655,783.4335664335664,783.9325674325675,784.4315684315684,784.9305694305694,785.4295704295704,785.9285714285714,786.4275724275724,786.9265734265734,787.4255744255744,787.9245754245754,788.4235764235764,788.9225774225774,789.4215784215784,789.9205794205794,790.4195804195804,790.9185814185814,791.4175824175824,791.9165834165834,792.4155844155844,792.9145854145854,793.4135864135864,793.9125874125874,794.4115884115885,794.9105894105894,795.4095904095905,795.9085914085914,796.4075924075925,796.9065934065934,797.4055944055945,797.9045954045954,798.4035964035965,798.9025974025974,799.4015984015984,799.9005994005994,800.3996003996004,800.8986013986014,801.3976023976024,801.8966033966034,802.3956043956044,802.8946053946054,803.3936063936064,803.8926073926074,804.3916083916084,804.8906093906094,805.3896103896104,805.8886113886114,806.3876123876124,806.8866133866134,807.3856143856144,807.8846153846154,808.3836163836164,808.8826173826174,809.3816183816184,809.8806193806194,810.3796203796204,810.8786213786213,811.3776223776224,811.8766233766233,812.3756243756244,812.8746253746253,813.3736263736264,813.8726273726273,814.3716283716284,814.8706293706293,815.3696303696304,815.8686313686313,816.3676323676324,816.8666333666333,817.3656343656344,817.8646353646353,818.3636363636364,818.8626373626373,819.3616383616384,819.8606393606393,820.3596403596404,820.8586413586413,821.3576423576424,821.8566433566433,822.3556443556444,822.8546453546453,823.3536463536464,823.8526473526474,824.3516483516484,824.8506493506494,825.3496503496503,825.8486513486514,826.3476523476523,826.8466533466534,827.3456543456543,827.8446553446554,828.3436563436563,828.8426573426574,829.3416583416583,829.8406593406594,830.3396603396603,830.8386613386614,831.3376623376623,831.8366633366634,832.3356643356643,832.8346653346654,833.3336663336663,833.8326673326674,834.3316683316683,834.8306693306694,835.3296703296703,835.8286713286714,836.3276723276723,836.8266733266734,837.3256743256743,837.8246753246754,838.3236763236763,838.8226773226774,839.3216783216783,839.8206793206793,840.3196803196803,840.8186813186813,841.3176823176823,841.8166833166833,842.3156843156843,842.8146853146853,843.3136863136863,843.8126873126873,844.3116883116883,844.8106893106893,845.3096903096903,845.8086913086913,846.3076923076923,846.8066933066933,847.3056943056943,847.8046953046953,848.3036963036963,848.8026973026973,849.3016983016983,849.8006993006993,850.2997002997002,850.7987012987013,851.2977022977022,851.7967032967033,852.2957042957042,852.7947052947053,853.2937062937064,853.7927072927073,854.2917082917083,854.7907092907093,855.2897102897103,855.7887112887113,856.2877122877123,856.7867132867133,857.2857142857143,857.7847152847153,858.2837162837163,858.7827172827173,859.2817182817183,859.7807192807193,860.2797202797203,860.7787212787213,861.2777222777223,861.7767232767233,862.2757242757243,862.7747252747253,863.2737262737263,863.7727272727273,864.2717282717283,864.7707292707292,865.2697302697303,865.7687312687312,866.2677322677323,866.7667332667332,867.2657342657343,867.7647352647352,868.2637362637363,868.7627372627372,869.2617382617383,869.7607392607392,870.2597402597403,870.7587412587412,871.2577422577423,871.7567432567432,872.2557442557443,872.7547452547452,873.2537462537463,873.7527472527472,874.2517482517483,874.7507492507492,875.2497502497503,875.7487512487512,876.2477522477523,876.7467532467532,877.2457542457543,877.7447552447552,878.2437562437563,878.7427572427572,879.2417582417582,879.7407592407592,880.2397602397602,880.7387612387612,881.2377622377622,881.7367632367632,882.2357642357642,882.7347652347653,883.2337662337662,883.7327672327673,884.2317682317682,884.7307692307693,885.2297702297702,885.7287712287713,886.2277722277722,886.7267732267733,887.2257742257742,887.7247752247753,888.2237762237762,888.7227772227773,889.2217782217782,889.7207792207793,890.2197802197802,890.7187812187813,891.2177822177822,891.7167832167833,892.2157842157842,892.7147852147853,893.2137862137862,893.7127872127872,894.2117882117882,894.7107892107892,895.2097902097902,895.7087912087912,896.2077922077922,896.7067932067932,897.2057942057942,897.7047952047952,898.2037962037962,898.7027972027972,899.2017982017982,899.7007992007992,900.1998001998002,900.6988011988012,901.1978021978022,901.6968031968032,902.1958041958042,902.6948051948052,903.1938061938062,903.6928071928072,904.1918081918081,904.6908091908092,905.1898101898101,905.6888111888112,906.1878121878121,906.6868131868132,907.1858141858141,907.6848151848152,908.1838161838161,908.6828171828172,909.1818181818181,909.6808191808192,910.1798201798201,910.6788211788212,911.1778221778221,911.6768231768232,912.1758241758242,912.6748251748252,913.1738261738262,913.6728271728272,914.1718281718282,914.6708291708292,915.1698301698302,915.6688311688312,916.1678321678322,916.6668331668332,917.1658341658342,917.6648351648352,918.1638361638362,918.6628371628371,919.1618381618382,919.6608391608391,920.1598401598402,920.6588411588411,921.1578421578422,921.6568431568431,922.1558441558442,922.6548451548451,923.1538461538462,923.6528471528471,924.1518481518482,924.6508491508491,925.1498501498502,925.6488511488511,926.1478521478522,926.6468531468531,927.1458541458542,927.6448551448551,928.1438561438562,928.6428571428571,929.1418581418582,929.6408591408591,930.1398601398602,930.6388611388611,931.1378621378622,931.6368631368631,932.1358641358642,932.6348651348651,933.1338661338661,933.6328671328671,934.1318681318681,934.6308691308691,935.1298701298701,935.6288711288711,936.1278721278721,936.6268731268731,937.1258741258741,937.6248751248751,938.1238761238761,938.6228771228771,939.1218781218781,939.6208791208791,940.1198801198801,940.6188811188811,941.1178821178821,941.6168831168832,942.1158841158841,942.6148851148852,943.1138861138861,943.6128871128872,944.1118881118881,944.6108891108892,945.1098901098901,945.6088911088912,946.1078921078921,946.6068931068932,947.1058941058941,947.6048951048951,948.1038961038961,948.6028971028971,949.1018981018981,949.6008991008991,950.0999000999001,950.5989010989011,951.0979020979021,951.5969030969031,952.0959040959041,952.5949050949051,953.0939060939061,953.5929070929071,954.0919080919081,954.5909090909091,955.0899100899101,955.5889110889111,956.0879120879121,956.5869130869131,957.085914085914,957.5849150849151,958.083916083916,958.5829170829171,959.081918081918,959.5809190809191,960.07992007992,960.5789210789211,961.077922077922,961.5769230769231,962.075924075924,962.5749250749251,963.073926073926,963.5729270729271,964.071928071928,964.5709290709291,965.06993006993,965.5689310689311,966.067932067932,966.5669330669331,967.065934065934,967.5649350649351,968.063936063936,968.5629370629371,969.061938061938,969.5609390609391,970.05994005994,970.5589410589411,971.0579420579421,971.556943056943,972.0559440559441,972.554945054945,973.0539460539461,973.552947052947,974.0519480519481,974.550949050949,975.0499500499501,975.548951048951,976.0479520479521,976.546953046953,977.0459540459541,977.544955044955,978.0439560439561,978.542957042957,979.0419580419581,979.540959040959,980.0399600399601,980.538961038961,981.0379620379621,981.536963036963,982.0359640359641,982.534965034965,983.0339660339661,983.532967032967,984.0319680319681,984.530969030969,985.0299700299701,985.528971028971,986.027972027972,986.526973026973,987.025974025974,987.524975024975,988.023976023976,988.522977022977,989.021978021978,989.520979020979,990.01998001998,990.518981018981,991.017982017982,991.516983016983,992.015984015984,992.514985014985,993.013986013986,993.512987012987,994.011988011988,994.510989010989,995.00999000999,995.508991008991,996.007992007992,996.506993006993,997.005994005994,997.504995004995,998.003996003996,998.502997002997,999.001998001998,999.500999000999,1000.0]} \ No newline at end of file diff --git a/base/special/asecdf/test/fixtures/julia/runner.jl b/base/special/asecdf/test/fixtures/julia/runner.jl new file mode 100644 index 000000000..a57037c73 --- /dev/null +++ b/base/special/asecdf/test/fixtures/julia/runner.jl @@ -0,0 +1,69 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +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 = asecd.( 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) ); + 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( -1.0, stop = -1000.0, length = 2003 ); +gen( x, "negative.json" ); + +# Generate fixture data for positive values: +x = range( 1.0, stop = 1000.0, length = 2003 ); +gen( x, "positive.json" ); diff --git a/base/special/asecdf/test/test.js b/base/special/asecdf/test/test.js new file mode 100644 index 000000000..76b641806 --- /dev/null +++ b/base/special/asecdf/test/test.js @@ -0,0 +1,122 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var abs = require( './../../../../base/special/abs' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var asecdf = 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.strictEqual( typeof asecdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the arcsecant in degrees (negative values)', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = negative.x; + expected = negative.expected; + for ( i = 0; i < x.length; i++ ) { + y = asecdf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( y === e ) { + t.equal( y, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( y - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the arcsecant in degrees (positive values)', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = positive.x; + expected = positive.expected; + for ( i = 0; i < x.length; i++ ) { + y = asecdf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( y === e ) { + t.equal( y, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( y - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { + var v = asecdf( NaN ); + t.equal( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a nonpositive value greater than `-1`', function test( t ) { + var v; + var i; + + for ( i = 0; i < 1e3; i++ ) { + v = uniform( -1.0 + EPS, 0.0 ); + t.equal( isnanf( asecdf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided a nonnegative value less than `+1`', function test( t ) { + var v; + var i; + + for ( i = 0; i < 1e3; i++ ) { + v = uniform( 0.0, 1.0 - EPS ); + t.equal( isnanf( asecdf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); diff --git a/base/special/asecdf/test/test.native.js b/base/special/asecdf/test/test.native.js new file mode 100644 index 000000000..5b30ca809 --- /dev/null +++ b/base/special/asecdf/test/test.native.js @@ -0,0 +1,131 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var abs = require( './../../../../base/special/abs' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var asecdf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( asecdf 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.strictEqual( typeof asecdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the arcsecant in degrees (negative values)', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = negative.x; + expected = negative.expected; + for ( i = 0; i < x.length; i++ ) { + y = asecdf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( y === e ) { + t.equal( y, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( y - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the arcsecant in degrees (positive values)', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = positive.x; + expected = positive.expected; + for ( i = 0; i < x.length; i++ ) { + y = asecdf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( y === e ) { + t.equal( y, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( y - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) { + var v = asecdf( NaN ); + t.equal( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a nonpositive value greater than `-1`', opts, function test( t ) { + var v; + var i; + + for ( i = 0; i < 1e3; i++ ) { + v = uniform( -1.0 + EPS, 0.0 ); + t.equal( isnanf( asecdf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided a nonnegative value less than `+1`', opts, function test( t ) { + var v; + var i; + + for ( i = 0; i < 1e3; i++ ) { + v = uniform( 0.0, 1.0 - EPS ); + t.equal( isnanf( asecdf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +});