From 89c27fe92673da0efa2202bfcd32ff4aa8f4ebbb Mon Sep 17 00:00:00 2001 From: Bhargav Dabhade Date: Thu, 29 Jan 2026 22:32:06 +0000 Subject: [PATCH 1/2] feat: add stats/base/dists/bradford/logpdf Signed-off-by: Bhargav Dabhade --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: passed - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: missing_dependencies - task: lint_r status: na - task: lint_c_src status: missing_dependencies - task: lint_c_examples status: missing_dependencies - task: lint_c_benchmarks status: missing_dependencies - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../base/dists/bradford/logpdf/README.md | 245 ++++++++++++++++++ .../bradford/logpdf/benchmark/benchmark.js | 88 +++++++ .../logpdf/benchmark/benchmark.native.js | 68 +++++ .../bradford/logpdf/benchmark/c/Makefile | 146 +++++++++++ .../bradford/logpdf/benchmark/c/benchmark.c | 140 ++++++++++ .../base/dists/bradford/logpdf/binding.gyp | 170 ++++++++++++ .../logpdf/docs/img/equation_bradford_pdf.svg | 50 ++++ .../base/dists/bradford/logpdf/docs/repl.txt | 74 ++++++ .../bradford/logpdf/docs/types/index.d.ts | 125 +++++++++ .../dists/bradford/logpdf/docs/types/test.ts | 98 +++++++ .../dists/bradford/logpdf/examples/c/Makefile | 146 +++++++++++ .../bradford/logpdf/examples/c/example.c | 40 +++ .../dists/bradford/logpdf/examples/index.js | 31 +++ .../base/dists/bradford/logpdf/include.gypi | 53 ++++ .../stdlib/stats/base/dists/bradford/logpdf.h | 40 +++ .../base/dists/bradford/logpdf/lib/factory.js | 79 ++++++ .../base/dists/bradford/logpdf/lib/index.js | 54 ++++ .../base/dists/bradford/logpdf/lib/main.js | 89 +++++++ .../base/dists/bradford/logpdf/lib/native.js | 79 ++++++ .../base/dists/bradford/logpdf/manifest.json | 86 ++++++ .../base/dists/bradford/logpdf/package.json | 69 +++++ .../base/dists/bradford/logpdf/src/Makefile | 70 +++++ .../base/dists/bradford/logpdf/src/addon.c | 22 ++ .../base/dists/bradford/logpdf/src/main.c | 46 ++++ .../test/fixtures/python/large_c_log.json | 1 + .../test/fixtures/python/medium_c_log.json | 1 + .../logpdf/test/fixtures/python/runner.py | 85 ++++++ .../test/fixtures/python/small_c_log.json | 1 + .../bradford/logpdf/test/test.factory.js | 187 +++++++++++++ .../base/dists/bradford/logpdf/test/test.js | 38 +++ .../dists/bradford/logpdf/test/test.logpdf.js | 165 ++++++++++++ .../dists/bradford/logpdf/test/test.native.js | 180 +++++++++++++ 32 files changed, 2766 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/README.md create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/img/equation_bradford_pdf.svg create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include/stdlib/stats/base/dists/bradford/logpdf.h create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/main.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/manifest.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/package.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/addon.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/main.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/large_c_log.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/medium_c_log.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/runner.py create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/small_c_log.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.logpdf.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.native.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/README.md b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/README.md new file mode 100644 index 000000000000..7afe0c8b309c --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/README.md @@ -0,0 +1,245 @@ + + +# Logarithm of Probability Density Function + +> [Bradford][bradford-distribution] distribution logarithm of the [probability density function][pdf] (logPDF). + +
+ +The logarithm of the [probability density function][pdf] (logPDF) for a [Bradford][bradford-distribution] random variable is + + + +```math +\ln f(x;c) = \ln(c) - \ln(1+cx) - \ln(\ln(1+c)) +``` + + + + + +where `c > 0` is the shape parameter of the distribution. + +
+ + + +
+ +## Usage + +```javascript +var logpdf = require( '@stdlib/stats/base/dists/bradford/logpdf' ); +``` + +#### logpdf( x, c ) + +Evaluates the logarithm of [probability density function][pdf] (PDF) for a [Bradford][bradford-distribution] distribution with shape parameter `c` at a value `x`. + +```javascript +var y = logpdf( 0.1, 0.1 ); +// returns ~0.038 + +y = logpdf( 0.5, 5.0 ); +// returns ~-0.227 + +y = logpdf( 1.0, 10.0 ); +// returns ~-0.970 +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = logpdf( NaN, 1.0 ); +// returns NaN + +y = logpdf( 0.0, NaN ); +// returns NaN +``` + +If provided an `x` value which is outside the support `[0,1]`, the function returns `-Infinity`. + +```javascript +var y = logpdf( 2.0, 1.0 ); +// returns -Infinity + +y = logpdf( -0.5, 1.0 ); +// returns -Infinity +``` + +If provided a shape parameter `c <= 0`, the function returns `NaN`. + +```javascript +var y = logpdf( 0.5, 0.0 ); +// returns NaN + +y = logpdf( 0.5, -5.0 ); +// returns NaN +``` + +#### logpdf.factory( c ) + +Returns a function for evaluating the logarithm of a [PDF][pdf] for a [Bradford][bradford-distribution] distribution with shape parameter `c`. + +```javascript +var myLogPDF = logpdf.factory( 5.0 ); +var y = myLogPDF( 0.5 ); +// returns ~-0.227 + +y = myLogPDF( 1.0 ); +// returns ~-0.766 +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var logpdf = require( '@stdlib/stats/base/dists/bradford/logpdf' ); + +var opts = { + 'dtype': 'float64' +}; +var c = uniform( 10, 0.1, 10.0, opts ); +var x = uniform( 10, 0.0, 1.0, opts ); + +logEachMap( 'x: %0.4f, c: %0.4f, ln(f(x;c)): %0.4f', x, c, logpdf ); +``` + +
+ + + + + +
+ +## C APIs + +
+ +
+ + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/bradford/logpdf.h" +``` + +#### stdlib_base_dists_bradford_logpdf( x, c ) + +Evaluates the logarithm of the probability density function for a Bradford distribution. + +```c +double out = stdlib_base_dists_bradford_logpdf( 0.5, 5.0 ); +// returns ~-0.227 +``` + +The function accepts the following arguments: + +- **x**: `[in] double` input value. +- **c**: `[in] double` shape parameter. + +```c +double stdlib_base_dists_bradford_logpdf( const double x, const double c ); +``` + +
+ + + +
+ +
+ + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/bradford/logpdf.h" +#include +#include + +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); +} + +int main( void ) { + double x; + double c; + double y; + int i; + + for ( i = 0; i < 10; i++ ) { + x = random_uniform( 0.0, 1.0 ); + c = random_uniform( 0.01, 10.0 ); + y = stdlib_base_dists_bradford_logpdf( x, c ); + printf( "x: %lf, c: %lf, ln(f(x;c)): %lf\n", x, c, y ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.js new file mode 100644 index 000000000000..f2222072791a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.js @@ -0,0 +1,88 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; +var logpdf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var opts; + var x; + var c; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + c = uniform( 100, 0.1, 10.0, opts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = logpdf( x[ i % x.length ], c[ i % c.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( format( '%s:factory', pkg ), function benchmark( b ) { + var mylogpdf; + var opts; + var x; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + mylogpdf = logpdf.factory( 5.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = mylogpdf( x[ i % x.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..27e49fb163bf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js @@ -0,0 +1,68 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var logpdf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( logpdf instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s::native', pkg ), opts, function benchmark( b ) { + var opts; + var x; + var c; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + c = uniform( 100, 0.1, 10.0, opts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = logpdf( x[ i % x.length ], c[ i % c.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/benchmark.c new file mode 100644 index 000000000000..aa17981a59cf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/c/benchmark.c @@ -0,0 +1,140 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/bradford/logpdf.h" +#include "stdlib/constants/float64/eps.h" +#include +#include +#include +#include +#include + +#define NAME "bradford-logpdf" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmark results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = ( (double)ITERATIONS ) / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a pseudorandom number drawn from a uniform distribution. +* +* @param a lower bound (inclusive) +* @param b upper bound (exclusive) +* @return pseudorandom number +*/ +static double random_uniform( const double a, const double b ) { + double r = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return a + (r * (b-a)); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + double x[ 100 ]; + double c[ 100 ]; + double t; + double y; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = random_uniform( 0.0, 1.0 ); + c[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 ); + } + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_dists_bradford_logpdf( x[ i % 100 ], c[ i % 100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the pseudorandom number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp new file mode 100644 index 000000000000..68a1ca11d160 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/img/equation_bradford_pdf.svg b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/img/equation_bradford_pdf.svg new file mode 100644 index 000000000000..4edb9d339608 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/img/equation_bradford_pdf.svg @@ -0,0 +1,50 @@ + +f left-parenthesis x semicolon c right-parenthesis equals StartFraction c Over left-parenthesis ln left-parenthesis 1 plus c right-parenthesis right-parenthesis left-parenthesis 1 plus c x right-parenthesis EndFraction + + + \ No newline at end of file diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/repl.txt new file mode 100644 index 000000000000..dd5225d13a13 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/repl.txt @@ -0,0 +1,74 @@ + +{{alias}}( x, c ) + Evaluates the logarithm of the probability density + function (logPDF) for a Bradford distribution + with shape parameter `c` at a value `x`. + + If provided `NaN` as any argument, the function returns `NaN`. + + If provided `c <= 0`, the function returns `NaN`. + + If `x` is outside the interval [0,1], the function returns `-Infinity`. + + Parameters + ---------- + x: number + Input value. + + c: number + Shape parameter. + + Returns + ------- + out: number + Evaluated logPDF. + + Examples + -------- + > var y = {{alias}}( 0.1, 0.1 ) + ~0.038 + > y = {{alias}}( 0.5, 5.0 ) + ~-0.227 + > y = {{alias}}( 1.0, 10.0 ) + ~-0.970 + > y = {{alias}}( 2.0, 0.5 ) + -Infinity + > y = {{alias}}( -1.0, 0.5 ) + -Infinity + + > y = {{alias}}( 0.5, 0.0 ) + NaN + > y = {{alias}}( 0.5, -5.0 ) + NaN + + > y = {{alias}}( NaN, 1.0 ) + NaN + > y = {{alias}}( 1.0, NaN ) + NaN + + +{{alias}}.factory( c ) + Returns a function for evaluating the natural logarithm + of the probability density function (logPDF) of a Bradford + distribution with shape parameter `c`. + + Parameters + ---------- + c: number + Shape parameter. + + Returns + ------- + logpdf: Function + Logarithm of the probability density function (logPDF). + + Examples + -------- + > var myLogPDF = {{alias}}.factory( 5.0 ); + > var y = myLogPDF( 0.5 ) + ~-0.227 + > y = myLogPDF( 1.0 ) + ~-0.766 + + See Also + -------- diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/index.d.ts new file mode 100644 index 000000000000..d63770ddaaa2 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/index.d.ts @@ -0,0 +1,125 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the natural logarithm of the probability density function (logPDF) +* for a Bradford distribution. +* +* @param x - input value +* @returns evaluated logPDF +*/ +type Unary = ( x: number ) => number; + + +/** +* Interface for the logarithm of the probability density function (logPDF) of a Bradford distribution. +*/ +interface LogPDF { + /** + * Evaluates the natural logarithm of the probability density function (logPDF) for a Bradford distribution with shape parameter `c` at a value `x`. + * + * ## Notes + * + * - If provided `c <= 0`, the function returns `NaN`. + * - If `x` is outside the interval [0,1], the function returns `-Infinity`. + * + * @param x - input value + * @param c - shape parameter + * @returns evaluated logPDF + * + * @example + * var v = logpdf( 0.1, 0.1 ); + * // returns ~0.038 + * + * @example + * var v = logpdf( 0.5, 5.0 ); + * // returns ~-0.227 + * + * @example + * var v = logpdf( 1.0, 10.0 ); + * // returns ~-0.970 + * + * @example + * var y = logpdf( 2.0, 0.5 ); + * // returns -Infinity + * + * @example + * var y = logpdf( -1.0, 0.5 ); + * // returns -Infinity + * + * @example + * var y = logpdf( 0.5, 0.0 ); + * // returns NaN + * + * @example + * var y = logpdf( 0.5, -5.0 ); + * // returns NaN + * + * @example + * var y = logpdf( NaN, 1.0 ); + * // returns NaN + * + * @example + * var y = logpdf( 1.0, NaN ); + * // returns NaN + */ + ( x: number, c: number ): number; + + /** + * Returns a function for evaluating the natural logarithm of the probability density function (logPDF) for a Bradford distribution with shape parameter `c`. + * + * @param c - shape parameter + * @returns logPDF + * + * @example + * var mylogpdf = logpdf.factory( 5.0 ); + * var y = mylogpdf( 0.5 ); + * // returns ~-0.227 + * + * y = mylogpdf( 1.0 ); + * // returns ~-0.766 + */ + factory( c: number ): Unary; +} + +/** +* Bradford distribution logarithm of the probability density function (logPDF). +* +* @param x - input value +* @param c - shape parameter +* @returns evaluated logPDF +* +* @example +* var y = logpdf( 0.5, 5.0 ); +* // returns ~-0.227 +* +* var mylogpdf = logpdf.factory( 5.0 ); +* y = mylogpdf( 0.5 ); +* // returns ~-0.227 +* +* y = mylogpdf( 1.0 ); +* // returns ~-0.766 +*/ +declare var logpdf: LogPDF; + + +// EXPORTS // + +export = logpdf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/test.ts new file mode 100644 index 000000000000..efa43adee698 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/docs/types/test.ts @@ -0,0 +1,98 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import logpdf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + logpdf( 0, 1 ); // $ExpectType number + logpdf( 1, 5 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + logpdf( true, 3 ); // $ExpectError + logpdf( false, 2 ); // $ExpectError + logpdf( '5', 1 ); // $ExpectError + logpdf( [], 1 ); // $ExpectError + logpdf( {}, 2 ); // $ExpectError + logpdf( ( x: number ): number => x, 2 ); // $ExpectError + + logpdf( 9, true ); // $ExpectError + logpdf( 9, false ); // $ExpectError + logpdf( 5, '5' ); // $ExpectError + logpdf( 8, [] ); // $ExpectError + logpdf( 9, {} ); // $ExpectError + logpdf( 8, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + logpdf(); // $ExpectError + logpdf( 1 ); // $ExpectError + logpdf( 1, 5, 3 ); // $ExpectError +} + +// Attached to main export is a `factory` method which returns a function... +{ + logpdf.factory( 5 ); // $ExpectType Unary +} + +// The `factory` method returns a function which returns a number... +{ + const fcn = logpdf.factory( 5 ); + fcn( 1 ); // $ExpectType number +} + +// The compiler throws an error if the function returned by the `factory` method is provided invalid arguments... +{ + const fcn = logpdf.factory( 5 ); + fcn( true ); // $ExpectError + fcn( false ); // $ExpectError + fcn( '5' ); // $ExpectError + fcn( [] ); // $ExpectError + fcn( {} ); // $ExpectError + fcn( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided an unsupported number of arguments... +{ + const fcn = logpdf.factory( 5 ); + fcn(); // $ExpectError + fcn( 2, 0 ); // $ExpectError + fcn( 2, 0, 1 ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided values other than one number... +{ + logpdf.factory( true ); // $ExpectError + logpdf.factory( false ); // $ExpectError + logpdf.factory( '5' ); // $ExpectError + logpdf.factory( [] ); // $ExpectError + logpdf.factory( {} ); // $ExpectError + logpdf.factory( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + logpdf.factory( 0, 1 ); // $ExpectError + logpdf.factory( 0, 4, 8 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/example.c new file mode 100644 index 000000000000..eb688a56366c --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/c/example.c @@ -0,0 +1,40 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/bradford/logpdf.h" +#include +#include + +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); +} + +int main( void ) { + double x; + double c; + double y; + int i; + + for ( i = 0; i < 10; i++ ) { + x = random_uniform( 0.0, 1.0 ); + c = random_uniform( 0.01, 10.0 ); + y = stdlib_base_dists_bradford_logpdf( x, c ); + printf( "x: %lf, c: %lf, ln(f(x;c)): %lf\n", x, c, y ); + } +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/index.js new file mode 100644 index 000000000000..8f3a1ab7e421 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var logpdf = require( './../lib' ); + +var opts = { + 'dtype': 'float64' +}; +var c = uniform( 10, 0.0, 1.0, opts ); +var x = uniform( 10, 0.1, 10.0, opts ); + +logEachMap( 'x: %0.4f, c: %0.4f, ln(f(x;c)): %0.4f', x, c, logpdf ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi new file mode 100644 index 000000000000..ecfaf82a3279 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + ' + */ + function logpdf( x ) { + if ( isnan( x ) ) { + return NaN; + } + if ( x < 0.0 || x > 1.0 ) { + return NINF; + } + return ln( c ) - ln( 1.0 + ( c*x ) ) - ln( k ); + } +} + + +// EXPORTS // + +module.exports = factory; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/index.js new file mode 100644 index 000000000000..4c13a63b279e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/index.js @@ -0,0 +1,54 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Bradford distribution logarithm of probability density function (logPDF). +* +* @module @stdlib/stats/base/dists/bradford/logpdf +* +* @example +* var logpdf = require( '@stdlib/stats/base/dists/bradford/logpdf' ); +* +* var y = logpdf( 0.5, 5.0 ); +* // returns ~-0.227 +* +* var myLogPDF = logpdf.factory( 5.0 ); +* y = myLogPDF( 0.5 ); +* // returns ~-0.227 +* +* y = myLogPDF( 1.0 ); +* // returns ~-0.766 +*/ + +// MODULES // + +var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var main = require( './main.js' ); +var factory = require( './factory.js' ); + + +// MAIN // + +setReadOnly( main, 'factory', factory ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/main.js new file mode 100644 index 000000000000..25a1bed7a197 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/main.js @@ -0,0 +1,89 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var ln = require( '@stdlib/math/base/special/ln' ); +var log1p = require( '@stdlib/math/base/special/log1p' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// MAIN // + +/** +* Evaluates the logarithm of the probability density function (PDF) for a Bradford distribution with shape parameter `c` at a value `x`. +* +* @param {number} x - input value +* @param {PositiveNumber} c - shape parameter +* @returns {number} evaluated logPDF +* +* @example +* var y = logpdf( 0.1, 0.1 ); +* // returns ~0.038 +* +* @example +* var y = logpdf( 0.5, 5.0 ); +* // returns ~-0.227 +* +* @example +* var y = logpdf( 1.0, 10.0 ); +* // returns ~-0.970 +* +* @example +* var y = logpdf( 2.0, 0.5 ); +* // returns -Infinity +* +* @example +* var y = logpdf( -1.0, 0.5 ); +* // returns -Infinity +* +* @example +* var y = logpdf( 0.5, 0.0 ); +* // returns NaN +* +* @example +* var y = logpdf( 0.5, -5.0 ); +* // returns NaN +* +* @example +* var y = logpdf( NaN, 1.0 ); +* // returns NaN +* +* @example +* var y = logpdf( 1.0, NaN ); +* // returns NaN +*/ +function logpdf( x, c ) { + var k; + if ( isnan( c ) || isnan( x ) || c <= 0.0 ) { + return NaN; + } + if ( x < 0.0 || x > 1.0 ) { + return NINF; + } + k = log1p( c ); + return ln( c ) - ln( 1.0 + ( c*x ) ) - ln( k ); +} + + +// EXPORTS // + +module.exports = logpdf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/native.js new file mode 100644 index 000000000000..f35ab4dc7d6d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/lib/native.js @@ -0,0 +1,79 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Evaluates the logarithm of the probability density function (logPDF) for a Bradford distribution with shape parameter `c` at a value `x`. +* +* @private +* @param {number} x - input value +* @param {PositiveNumber} c - shape parameter +* @returns {number} evaluated logPDF +* +* @example +* var v = logpdf( 0.1, 0.1 ); +* // returns ~0.038 +* +* @example +* var v = logpdf( 0.5, 5.0 ); +* // returns ~-0.227 +* +* @example +* var v = logpdf( 1.0, 10.0 ); +* // returns ~-0.970 +* +* @example +* var v = logpdf( 2.0, 0.5 ); +* // returns -Infinity +* +* @example +* var v = logpdf( -1.0, 0.5 ); +* // returns -Infinity +* +* @example +* var v = logpdf( 0.5, 0.0 ); +* // returns NaN +* +* @example +* var v = logpdf( 0.5, -5.0 ); +* // returns NaN +* +* @example +* var v = logpdf( NaN, 1.0 ); +* // returns NaN +* +* @example +* var v = logpdf( 1.0, NaN ); +* // returns NaN +*/ +function logpdf( x, c ) { + return addon( x, c ); +} + + +// EXPORTS // + +module.exports = logpdf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/manifest.json b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/manifest.json new file mode 100644 index 000000000000..6825d321a77a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/manifest.json @@ -0,0 +1,86 @@ +{ + "options": { + "task": "build", + "wasm": false + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/binary", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/ln", + "@stdlib/math/base/special/log1p", + "@stdlib/constants/float64/ninf" + ] + }, + { + "task": "benchmark", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/constants/float64/eps", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/ln", + "@stdlib/math/base/special/log1p", + "@stdlib/constants/float64/ninf" + ] + }, + { + "task": "examples", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/ln", + "@stdlib/math/base/special/log1p", + "@stdlib/constants/float64/ninf" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/package.json b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/package.json new file mode 100644 index 000000000000..7c454e0914ec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/package.json @@ -0,0 +1,69 @@ +{ + "name": "@stdlib/stats/base/dists/bradford/logpdf", + "version": "0.0.0", + "description": "Bradford distribution logarithm of probability density function (logPDF).", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "gypfile": true, + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "include": "./include", + "lib": "./lib", + "src": "./src", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "statistics", + "stats", + "distribution", + "dist", + "bradford", + "continuous", + "skewed", + "logpdf", + "log", + "probability", + "density" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/addon.c new file mode 100644 index 000000000000..5047cbab1fc6 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/addon.c @@ -0,0 +1,22 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/bradford/logpdf.h" +#include "stdlib/math/base/napi/binary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_bradford_logpdf ) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/main.c new file mode 100644 index 000000000000..f916a28ac964 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/src/main.c @@ -0,0 +1,46 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/bradford/logpdf.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/special/log1p.h" +#include "stdlib/math/base/special/ln.h" +#include "stdlib/constants/float64/ninf.h" + +/** +* Evaluates the logarithm of the probability density function (PDF) for a Bradford distribution with shape parameter `c` at a value `x`. +* +* @param x input value +* @param c shape parameter +* @return evaluated logPDF +* +* @example +* double y = stdlib_base_dists_bradford_logpdf( 0.5, 5.0 ); +* // returns ~-0.227 +*/ +double stdlib_base_dists_bradford_logpdf( const double x, const double c ) { + double k; + if ( stdlib_base_is_nan( x ) || stdlib_base_is_nan( c ) || c <= 0.0 ) { + return 0.0/0.0; // NaN + } + if ( x < 0.0 || x > 1.0 ) { + return STDLIB_CONSTANT_FLOAT64_NINF; + } + k = stdlib_base_log1p( c ); + return stdlib_base_ln( c ) - stdlib_base_ln( 1.0 + ( c*x ) ) - stdlib_base_ln( k ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/large_c_log.json b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/large_c_log.json new file mode 100644 index 000000000000..57670dfea54f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/large_c_log.json @@ -0,0 +1 @@ +{"x": [0.0, 0.001001001001001001, 0.002002002002002002, 0.003003003003003003, 0.004004004004004004, 0.005005005005005005, 0.006006006006006006, 0.007007007007007007, 0.008008008008008008, 0.009009009009009009, 0.01001001001001001, 0.011011011011011011, 0.012012012012012012, 0.013013013013013013, 0.014014014014014014, 0.015015015015015015, 0.016016016016016016, 0.017017017017017015, 0.018018018018018018, 0.01901901901901902, 0.02002002002002002, 0.02102102102102102, 0.022022022022022022, 0.023023023023023025, 0.024024024024024024, 0.025025025025025023, 0.026026026026026026, 0.02702702702702703, 0.028028028028028028, 0.029029029029029027, 0.03003003003003003, 0.031031031031031032, 0.03203203203203203, 0.03303303303303303, 0.03403403403403403, 0.035035035035035036, 0.036036036036036036, 0.037037037037037035, 0.03803803803803804, 0.03903903903903904, 0.04004004004004004, 0.04104104104104104, 0.04204204204204204, 0.043043043043043044, 0.044044044044044044, 0.04504504504504504, 0.04604604604604605, 0.04704704704704705, 0.04804804804804805, 0.04904904904904905, 0.050050050050050046, 0.05105105105105105, 0.05205205205205205, 0.05305305305305305, 0.05405405405405406, 0.055055055055055056, 0.056056056056056056, 0.057057057057057055, 0.058058058058058054, 0.05905905905905906, 0.06006006006006006, 0.06106106106106106, 0.062062062062062065, 0.06306306306306306, 0.06406406406406406, 0.06506506506506507, 0.06606606606606606, 0.06706706706706707, 0.06806806806806806, 0.06906906906906907, 0.07007007007007007, 0.07107107107107107, 0.07207207207207207, 0.07307307307307308, 0.07407407407407407, 0.07507507507507508, 0.07607607607607608, 0.07707707707707707, 0.07807807807807808, 0.07907907907907907, 0.08008008008008008, 0.08108108108108109, 0.08208208208208208, 0.08308308308308308, 0.08408408408408408, 0.08508508508508508, 0.08608608608608609, 0.08708708708708708, 0.08808808808808809, 0.0890890890890891, 0.09009009009009009, 0.09109109109109109, 0.0920920920920921, 0.09309309309309309, 0.0940940940940941, 0.09509509509509509, 0.0960960960960961, 0.0970970970970971, 0.0980980980980981, 0.0990990990990991, 0.10010010010010009, 0.1011011011011011, 0.1021021021021021, 0.1031031031031031, 0.1041041041041041, 0.10510510510510511, 0.1061061061061061, 0.10710710710710711, 0.10810810810810811, 0.1091091091091091, 0.11011011011011011, 0.1111111111111111, 0.11211211211211211, 0.11311311311311312, 0.11411411411411411, 0.11511511511511512, 0.11611611611611611, 0.11711711711711711, 0.11811811811811812, 0.11911911911911911, 0.12012012012012012, 0.12112112112112113, 0.12212212212212212, 0.12312312312312312, 0.12412412412412413, 0.12512512512512514, 0.12612612612612611, 0.12712712712712712, 0.12812812812812813, 0.12912912912912913, 0.13013013013013014, 0.13113113113113112, 0.13213213213213212, 0.13313313313313313, 0.13413413413413414, 0.13513513513513514, 0.13613613613613612, 0.13713713713713713, 0.13813813813813813, 0.13913913913913914, 0.14014014014014015, 0.14114114114114115, 0.14214214214214213, 0.14314314314314314, 0.14414414414414414, 0.14514514514514515, 0.14614614614614616, 0.14714714714714713, 0.14814814814814814, 0.14914914914914915, 0.15015015015015015, 0.15115115115115116, 0.15215215215215216, 0.15315315315315314, 0.15415415415415415, 0.15515515515515516, 0.15615615615615616, 0.15715715715715717, 0.15815815815815815, 0.15915915915915915, 0.16016016016016016, 0.16116116116116116, 0.16216216216216217, 0.16316316316316315, 0.16416416416416416, 0.16516516516516516, 0.16616616616616617, 0.16716716716716717, 0.16816816816816815, 0.16916916916916916, 0.17017017017017017, 0.17117117117117117, 0.17217217217217218, 0.17317317317317318, 0.17417417417417416, 0.17517517517517517, 0.17617617617617617, 0.17717717717717718, 0.1781781781781782, 0.17917917917917917, 0.18018018018018017, 0.18118118118118118, 0.18218218218218218, 0.1831831831831832, 0.1841841841841842, 0.18518518518518517, 0.18618618618618618, 0.1871871871871872, 0.1881881881881882, 0.1891891891891892, 0.19019019019019018, 0.19119119119119118, 0.1921921921921922, 0.1931931931931932, 0.1941941941941942, 0.19519519519519518, 0.1961961961961962, 0.1971971971971972, 0.1981981981981982, 0.1991991991991992, 0.20020020020020018, 0.2012012012012012, 0.2022022022022022, 0.2032032032032032, 0.2042042042042042, 0.20520520520520522, 0.2062062062062062, 0.2072072072072072, 0.2082082082082082, 0.2092092092092092, 0.21021021021021022, 0.2112112112112112, 0.2122122122122122, 0.2132132132132132, 0.21421421421421422, 0.21521521521521522, 0.21621621621621623, 0.2172172172172172, 0.2182182182182182, 0.21921921921921922, 0.22022022022022023, 0.22122122122122123, 0.2222222222222222, 0.22322322322322322, 0.22422422422422422, 0.22522522522522523, 0.22622622622622623, 0.2272272272272272, 0.22822822822822822, 0.22922922922922923, 0.23023023023023023, 0.23123123123123124, 0.23223223223223222, 0.23323323323323322, 0.23423423423423423, 0.23523523523523523, 0.23623623623623624, 0.23723723723723725, 0.23823823823823823, 0.23923923923923923, 0.24024024024024024, 0.24124124124124124, 0.24224224224224225, 0.24324324324324323, 0.24424424424424424, 0.24524524524524524, 0.24624624624624625, 0.24724724724724725, 0.24824824824824826, 0.24924924924924924, 0.2502502502502503, 0.25125125125125125, 0.25225225225225223, 0.25325325325325326, 0.25425425425425424, 0.2552552552552553, 0.25625625625625625, 0.25725725725725723, 0.25825825825825827, 0.25925925925925924, 0.2602602602602603, 0.26126126126126126, 0.26226226226226224, 0.26326326326326327, 0.26426426426426425, 0.2652652652652653, 0.26626626626626626, 0.26726726726726724, 0.2682682682682683, 0.26926926926926925, 0.2702702702702703, 0.27127127127127126, 0.27227227227227224, 0.2732732732732733, 0.27427427427427425, 0.2752752752752753, 0.27627627627627627, 0.2772772772772773, 0.2782782782782783, 0.27927927927927926, 0.2802802802802803, 0.28128128128128127, 0.2822822822822823, 0.2832832832832833, 0.28428428428428426, 0.2852852852852853, 0.2862862862862863, 0.2872872872872873, 0.2882882882882883, 0.28928928928928926, 0.2902902902902903, 0.2912912912912913, 0.2922922922922923, 0.2932932932932933, 0.29429429429429427, 0.2952952952952953, 0.2962962962962963, 0.2972972972972973, 0.2982982982982983, 0.29929929929929927, 0.3003003003003003, 0.3013013013013013, 0.3023023023023023, 0.3033033033033033, 0.30430430430430433, 0.3053053053053053, 0.3063063063063063, 0.3073073073073073, 0.3083083083083083, 0.30930930930930933, 0.3103103103103103, 0.3113113113113113, 0.3123123123123123, 0.3133133133133133, 0.31431431431431434, 0.3153153153153153, 0.3163163163163163, 0.3173173173173173, 0.3183183183183183, 0.31931931931931934, 0.3203203203203203, 0.3213213213213213, 0.32232232232232233, 0.3233233233233233, 0.32432432432432434, 0.3253253253253253, 0.3263263263263263, 0.32732732732732733, 0.3283283283283283, 0.32932932932932935, 0.3303303303303303, 0.3313313313313313, 0.33233233233233234, 0.3333333333333333, 0.33433433433433435, 0.3353353353353353, 0.3363363363363363, 0.33733733733733734, 0.3383383383383383, 0.33933933933933935, 0.34034034034034033, 0.34134134134134136, 0.34234234234234234, 0.3433433433433433, 0.34434434434434436, 0.34534534534534533, 0.34634634634634637, 0.34734734734734735, 0.3483483483483483, 0.34934934934934936, 0.35035035035035034, 0.35135135135135137, 0.35235235235235235, 0.3533533533533533, 0.35435435435435436, 0.35535535535535534, 0.3563563563563564, 0.35735735735735735, 0.35835835835835833, 0.35935935935935936, 0.36036036036036034, 0.3613613613613614, 0.36236236236236236, 0.36336336336336333, 0.36436436436436437, 0.36536536536536535, 0.3663663663663664, 0.36736736736736736, 0.3683683683683684, 0.36936936936936937, 0.37037037037037035, 0.3713713713713714, 0.37237237237237236, 0.3733733733733734, 0.3743743743743744, 0.37537537537537535, 0.3763763763763764, 0.37737737737737737, 0.3783783783783784, 0.3793793793793794, 0.38038038038038036, 0.3813813813813814, 0.38238238238238237, 0.3833833833833834, 0.3843843843843844, 0.38538538538538536, 0.3863863863863864, 0.38738738738738737, 0.3883883883883884, 0.3893893893893894, 0.39039039039039036, 0.3913913913913914, 0.3923923923923924, 0.3933933933933934, 0.3943943943943944, 0.39539539539539537, 0.3963963963963964, 0.3973973973973974, 0.3983983983983984, 0.3993993993993994, 0.40040040040040037, 0.4014014014014014, 0.4024024024024024, 0.4034034034034034, 0.4044044044044044, 0.40540540540540543, 0.4064064064064064, 0.4074074074074074, 0.4084084084084084, 0.4094094094094094, 0.41041041041041043, 0.4114114114114114, 0.4124124124124124, 0.4134134134134134, 0.4144144144144144, 0.41541541541541543, 0.4164164164164164, 0.4174174174174174, 0.4184184184184184, 0.4194194194194194, 0.42042042042042044, 0.4214214214214214, 0.4224224224224224, 0.42342342342342343, 0.4244244244244244, 0.42542542542542544, 0.4264264264264264, 0.4274274274274274, 0.42842842842842843, 0.4294294294294294, 0.43043043043043044, 0.4314314314314314, 0.43243243243243246, 0.43343343343343343, 0.4344344344344344, 0.43543543543543545, 0.4364364364364364, 0.43743743743743746, 0.43843843843843844, 0.4394394394394394, 0.44044044044044045, 0.44144144144144143, 0.44244244244244246, 0.44344344344344344, 0.4444444444444444, 0.44544544544544545, 0.44644644644644643, 0.44744744744744747, 0.44844844844844844, 0.4494494494494494, 0.45045045045045046, 0.45145145145145144, 0.45245245245245247, 0.45345345345345345, 0.4544544544544544, 0.45545545545545546, 0.45645645645645644, 0.4574574574574575, 0.45845845845845845, 0.45945945945945943, 0.46046046046046046, 0.46146146146146144, 0.4624624624624625, 0.46346346346346345, 0.46446446446446443, 0.46546546546546547, 0.46646646646646645, 0.4674674674674675, 0.46846846846846846, 0.4694694694694695, 0.47047047047047047, 0.47147147147147145, 0.4724724724724725, 0.47347347347347346, 0.4744744744744745, 0.4754754754754755, 0.47647647647647645, 0.4774774774774775, 0.47847847847847846, 0.4794794794794795, 0.4804804804804805, 0.48148148148148145, 0.4824824824824825, 0.48348348348348347, 0.4844844844844845, 0.4854854854854855, 0.48648648648648646, 0.4874874874874875, 0.48848848848848847, 0.4894894894894895, 0.4904904904904905, 0.49149149149149146, 0.4924924924924925, 0.4934934934934935, 0.4944944944944945, 0.4954954954954955, 0.4964964964964965, 0.4974974974974975, 0.4984984984984985, 0.4994994994994995, 0.5005005005005005, 0.5015015015015015, 0.5025025025025025, 0.5035035035035035, 0.5045045045045045, 0.5055055055055055, 0.5065065065065065, 0.5075075075075075, 0.5085085085085085, 0.5095095095095095, 0.5105105105105106, 0.5115115115115115, 0.5125125125125125, 0.5135135135135135, 0.5145145145145145, 0.5155155155155156, 0.5165165165165165, 0.5175175175175175, 0.5185185185185185, 0.5195195195195195, 0.5205205205205206, 0.5215215215215215, 0.5225225225225225, 0.5235235235235235, 0.5245245245245245, 0.5255255255255256, 0.5265265265265265, 0.5275275275275275, 0.5285285285285285, 0.5295295295295295, 0.5305305305305306, 0.5315315315315315, 0.5325325325325325, 0.5335335335335335, 0.5345345345345345, 0.5355355355355356, 0.5365365365365365, 0.5375375375375375, 0.5385385385385385, 0.5395395395395395, 0.5405405405405406, 0.5415415415415415, 0.5425425425425425, 0.5435435435435435, 0.5445445445445445, 0.5455455455455456, 0.5465465465465466, 0.5475475475475475, 0.5485485485485485, 0.5495495495495496, 0.5505505505505506, 0.5515515515515516, 0.5525525525525525, 0.5535535535535535, 0.5545545545545546, 0.5555555555555556, 0.5565565565565566, 0.5575575575575575, 0.5585585585585585, 0.5595595595595596, 0.5605605605605606, 0.5615615615615616, 0.5625625625625625, 0.5635635635635635, 0.5645645645645646, 0.5655655655655656, 0.5665665665665666, 0.5675675675675675, 0.5685685685685685, 0.5695695695695696, 0.5705705705705706, 0.5715715715715716, 0.5725725725725725, 0.5735735735735735, 0.5745745745745746, 0.5755755755755756, 0.5765765765765766, 0.5775775775775776, 0.5785785785785785, 0.5795795795795796, 0.5805805805805806, 0.5815815815815816, 0.5825825825825826, 0.5835835835835835, 0.5845845845845846, 0.5855855855855856, 0.5865865865865866, 0.5875875875875876, 0.5885885885885885, 0.5895895895895896, 0.5905905905905906, 0.5915915915915916, 0.5925925925925926, 0.5935935935935935, 0.5945945945945946, 0.5955955955955956, 0.5965965965965966, 0.5975975975975976, 0.5985985985985985, 0.5995995995995996, 0.6006006006006006, 0.6016016016016016, 0.6026026026026026, 0.6036036036036035, 0.6046046046046046, 0.6056056056056056, 0.6066066066066066, 0.6076076076076076, 0.6086086086086087, 0.6096096096096096, 0.6106106106106106, 0.6116116116116116, 0.6126126126126126, 0.6136136136136137, 0.6146146146146146, 0.6156156156156156, 0.6166166166166166, 0.6176176176176176, 0.6186186186186187, 0.6196196196196196, 0.6206206206206206, 0.6216216216216216, 0.6226226226226226, 0.6236236236236237, 0.6246246246246246, 0.6256256256256256, 0.6266266266266266, 0.6276276276276276, 0.6286286286286287, 0.6296296296296297, 0.6306306306306306, 0.6316316316316316, 0.6326326326326326, 0.6336336336336337, 0.6346346346346347, 0.6356356356356356, 0.6366366366366366, 0.6376376376376376, 0.6386386386386387, 0.6396396396396397, 0.6406406406406406, 0.6416416416416416, 0.6426426426426426, 0.6436436436436437, 0.6446446446446447, 0.6456456456456456, 0.6466466466466466, 0.6476476476476476, 0.6486486486486487, 0.6496496496496497, 0.6506506506506506, 0.6516516516516516, 0.6526526526526526, 0.6536536536536537, 0.6546546546546547, 0.6556556556556556, 0.6566566566566566, 0.6576576576576576, 0.6586586586586587, 0.6596596596596597, 0.6606606606606606, 0.6616616616616616, 0.6626626626626626, 0.6636636636636637, 0.6646646646646647, 0.6656656656656657, 0.6666666666666666, 0.6676676676676676, 0.6686686686686687, 0.6696696696696697, 0.6706706706706707, 0.6716716716716716, 0.6726726726726726, 0.6736736736736737, 0.6746746746746747, 0.6756756756756757, 0.6766766766766766, 0.6776776776776777, 0.6786786786786787, 0.6796796796796797, 0.6806806806806807, 0.6816816816816816, 0.6826826826826827, 0.6836836836836837, 0.6846846846846847, 0.6856856856856857, 0.6866866866866866, 0.6876876876876877, 0.6886886886886887, 0.6896896896896897, 0.6906906906906907, 0.6916916916916916, 0.6926926926926927, 0.6936936936936937, 0.6946946946946947, 0.6956956956956957, 0.6966966966966966, 0.6976976976976977, 0.6986986986986987, 0.6996996996996997, 0.7007007007007007, 0.7017017017017017, 0.7027027027027027, 0.7037037037037037, 0.7047047047047047, 0.7057057057057057, 0.7067067067067067, 0.7077077077077077, 0.7087087087087087, 0.7097097097097097, 0.7107107107107107, 0.7117117117117117, 0.7127127127127127, 0.7137137137137137, 0.7147147147147147, 0.7157157157157157, 0.7167167167167167, 0.7177177177177178, 0.7187187187187187, 0.7197197197197197, 0.7207207207207207, 0.7217217217217217, 0.7227227227227228, 0.7237237237237237, 0.7247247247247247, 0.7257257257257257, 0.7267267267267267, 0.7277277277277278, 0.7287287287287287, 0.7297297297297297, 0.7307307307307307, 0.7317317317317317, 0.7327327327327328, 0.7337337337337337, 0.7347347347347347, 0.7357357357357357, 0.7367367367367368, 0.7377377377377378, 0.7387387387387387, 0.7397397397397397, 0.7407407407407407, 0.7417417417417418, 0.7427427427427428, 0.7437437437437437, 0.7447447447447447, 0.7457457457457457, 0.7467467467467468, 0.7477477477477478, 0.7487487487487487, 0.7497497497497497, 0.7507507507507507, 0.7517517517517518, 0.7527527527527528, 0.7537537537537538, 0.7547547547547547, 0.7557557557557557, 0.7567567567567568, 0.7577577577577578, 0.7587587587587588, 0.7597597597597597, 0.7607607607607607, 0.7617617617617618, 0.7627627627627628, 0.7637637637637638, 0.7647647647647647, 0.7657657657657657, 0.7667667667667668, 0.7677677677677678, 0.7687687687687688, 0.7697697697697697, 0.7707707707707707, 0.7717717717717718, 0.7727727727727728, 0.7737737737737738, 0.7747747747747747, 0.7757757757757757, 0.7767767767767768, 0.7777777777777778, 0.7787787787787788, 0.7797797797797797, 0.7807807807807807, 0.7817817817817818, 0.7827827827827828, 0.7837837837837838, 0.7847847847847848, 0.7857857857857857, 0.7867867867867868, 0.7877877877877878, 0.7887887887887888, 0.7897897897897898, 0.7907907907907907, 0.7917917917917918, 0.7927927927927928, 0.7937937937937938, 0.7947947947947948, 0.7957957957957957, 0.7967967967967968, 0.7977977977977978, 0.7987987987987988, 0.7997997997997998, 0.8008008008008007, 0.8018018018018018, 0.8028028028028028, 0.8038038038038038, 0.8048048048048048, 0.8058058058058059, 0.8068068068068068, 0.8078078078078078, 0.8088088088088088, 0.8098098098098098, 0.8108108108108109, 0.8118118118118118, 0.8128128128128128, 0.8138138138138138, 0.8148148148148148, 0.8158158158158159, 0.8168168168168168, 0.8178178178178178, 0.8188188188188188, 0.8198198198198198, 0.8208208208208209, 0.8218218218218218, 0.8228228228228228, 0.8238238238238238, 0.8248248248248248, 0.8258258258258259, 0.8268268268268268, 0.8278278278278278, 0.8288288288288288, 0.8298298298298298, 0.8308308308308309, 0.8318318318318318, 0.8328328328328328, 0.8338338338338338, 0.8348348348348348, 0.8358358358358359, 0.8368368368368369, 0.8378378378378378, 0.8388388388388388, 0.8398398398398398, 0.8408408408408409, 0.8418418418418419, 0.8428428428428428, 0.8438438438438438, 0.8448448448448448, 0.8458458458458459, 0.8468468468468469, 0.8478478478478478, 0.8488488488488488, 0.8498498498498498, 0.8508508508508509, 0.8518518518518519, 0.8528528528528528, 0.8538538538538538, 0.8548548548548548, 0.8558558558558559, 0.8568568568568569, 0.8578578578578578, 0.8588588588588588, 0.8598598598598598, 0.8608608608608609, 0.8618618618618619, 0.8628628628628628, 0.8638638638638638, 0.8648648648648649, 0.8658658658658659, 0.8668668668668669, 0.8678678678678678, 0.8688688688688688, 0.8698698698698699, 0.8708708708708709, 0.8718718718718719, 0.8728728728728729, 0.8738738738738738, 0.8748748748748749, 0.8758758758758759, 0.8768768768768769, 0.8778778778778779, 0.8788788788788788, 0.8798798798798799, 0.8808808808808809, 0.8818818818818819, 0.8828828828828829, 0.8838838838838838, 0.8848848848848849, 0.8858858858858859, 0.8868868868868869, 0.8878878878878879, 0.8888888888888888, 0.8898898898898899, 0.8908908908908909, 0.8918918918918919, 0.8928928928928929, 0.8938938938938938, 0.8948948948948949, 0.8958958958958959, 0.8968968968968969, 0.8978978978978979, 0.8988988988988988, 0.8998998998998999, 0.9009009009009009, 0.9019019019019019, 0.9029029029029029, 0.9039039039039038, 0.9049049049049049, 0.9059059059059059, 0.9069069069069069, 0.9079079079079079, 0.9089089089089089, 0.9099099099099099, 0.9109109109109109, 0.9119119119119119, 0.9129129129129129, 0.9139139139139139, 0.914914914914915, 0.9159159159159159, 0.9169169169169169, 0.9179179179179179, 0.9189189189189189, 0.91991991991992, 0.9209209209209209, 0.9219219219219219, 0.9229229229229229, 0.9239239239239239, 0.924924924924925, 0.9259259259259259, 0.9269269269269269, 0.9279279279279279, 0.9289289289289289, 0.92992992992993, 0.9309309309309309, 0.9319319319319319, 0.9329329329329329, 0.933933933933934, 0.934934934934935, 0.9359359359359359, 0.9369369369369369, 0.9379379379379379, 0.938938938938939, 0.93993993993994, 0.9409409409409409, 0.9419419419419419, 0.9429429429429429, 0.943943943943944, 0.944944944944945, 0.9459459459459459, 0.9469469469469469, 0.9479479479479479, 0.948948948948949, 0.94994994994995, 0.950950950950951, 0.9519519519519519, 0.9529529529529529, 0.953953953953954, 0.954954954954955, 0.955955955955956, 0.9569569569569569, 0.9579579579579579, 0.958958958958959, 0.95995995995996, 0.960960960960961, 0.9619619619619619, 0.9629629629629629, 0.963963963963964, 0.964964964964965, 0.965965965965966, 0.9669669669669669, 0.9679679679679679, 0.968968968968969, 0.96996996996997, 0.970970970970971, 0.9719719719719719, 0.9729729729729729, 0.973973973973974, 0.974974974974975, 0.975975975975976, 0.9769769769769769, 0.9779779779779779, 0.978978978978979, 0.97997997997998, 0.980980980980981, 0.9819819819819819, 0.9829829829829829, 0.983983983983984, 0.984984984984985, 0.985985985985986, 0.986986986986987, 0.9879879879879879, 0.988988988988989, 0.98998998998999, 0.990990990990991, 0.991991991991992, 0.992992992992993, 0.993993993993994, 0.994994994994995, 0.995995995995996, 0.996996996996997, 0.997997997997998, 0.998998998998999, 1.0], "c": [10.0, 10.09009009009009, 10.18018018018018, 10.27027027027027, 10.36036036036036, 10.45045045045045, 10.54054054054054, 10.63063063063063, 10.72072072072072, 10.81081081081081, 10.9009009009009, 10.99099099099099, 11.08108108108108, 11.17117117117117, 11.26126126126126, 11.35135135135135, 11.441441441441441, 11.531531531531531, 11.621621621621621, 11.711711711711711, 11.801801801801801, 11.891891891891891, 11.981981981981981, 12.072072072072071, 12.162162162162161, 12.252252252252251, 12.342342342342342, 12.432432432432432, 12.522522522522522, 12.612612612612612, 12.702702702702702, 12.792792792792792, 12.882882882882882, 12.972972972972972, 13.063063063063062, 13.153153153153152, 13.243243243243242, 13.333333333333332, 13.423423423423422, 13.513513513513512, 13.603603603603602, 13.693693693693694, 13.783783783783784, 13.873873873873874, 13.963963963963964, 14.054054054054053, 14.144144144144143, 14.234234234234233, 14.324324324324325, 14.414414414414415, 14.504504504504505, 14.594594594594595, 14.684684684684685, 14.774774774774775, 14.864864864864865, 14.954954954954955, 15.045045045045045, 15.135135135135135, 15.225225225225225, 15.315315315315315, 15.405405405405405, 15.495495495495495, 15.585585585585585, 15.675675675675675, 15.765765765765765, 15.855855855855856, 15.945945945945946, 16.036036036036037, 16.126126126126124, 16.216216216216218, 16.306306306306304, 16.396396396396398, 16.486486486486484, 16.576576576576578, 16.666666666666664, 16.756756756756758, 16.846846846846844, 16.936936936936938, 17.027027027027025, 17.117117117117118, 17.207207207207205, 17.2972972972973, 17.38738738738739, 17.47747747747748, 17.56756756756757, 17.65765765765766, 17.74774774774775, 17.83783783783784, 17.92792792792793, 18.01801801801802, 18.108108108108105, 18.1981981981982, 18.288288288288285, 18.37837837837838, 18.468468468468465, 18.55855855855856, 18.64864864864865, 18.73873873873874, 18.82882882882883, 18.91891891891892, 19.00900900900901, 19.0990990990991, 19.18918918918919, 19.27927927927928, 19.36936936936937, 19.45945945945946, 19.54954954954955, 19.63963963963964, 19.72972972972973, 19.81981981981982, 19.90990990990991, 20.0, 20.09009009009009, 20.18018018018018, 20.27027027027027, 20.36036036036036, 20.45045045045045, 20.54054054054054, 20.63063063063063, 20.72072072072072, 20.81081081081081, 20.9009009009009, 20.99099099099099, 21.08108108108108, 21.17117117117117, 21.26126126126126, 21.35135135135135, 21.44144144144144, 21.53153153153153, 21.62162162162162, 21.71171171171171, 21.8018018018018, 21.89189189189189, 21.98198198198198, 22.07207207207207, 22.16216216216216, 22.25225225225225, 22.34234234234234, 22.43243243243243, 22.52252252252252, 22.61261261261261, 22.7027027027027, 22.792792792792792, 22.882882882882882, 22.972972972972972, 23.063063063063062, 23.153153153153152, 23.243243243243242, 23.333333333333332, 23.423423423423422, 23.513513513513512, 23.603603603603602, 23.693693693693692, 23.783783783783782, 23.873873873873872, 23.963963963963963, 24.054054054054053, 24.144144144144143, 24.234234234234233, 24.324324324324323, 24.414414414414413, 24.504504504504503, 24.594594594594597, 24.684684684684683, 24.774774774774777, 24.864864864864863, 24.954954954954957, 25.045045045045043, 25.135135135135137, 25.225225225225223, 25.315315315315317, 25.405405405405403, 25.495495495495497, 25.585585585585584, 25.675675675675677, 25.765765765765764, 25.855855855855857, 25.945945945945944, 26.036036036036034, 26.126126126126124, 26.216216216216214, 26.306306306306304, 26.396396396396394, 26.486486486486484, 26.576576576576574, 26.666666666666664, 26.756756756756754, 26.846846846846844, 26.936936936936934, 27.027027027027025, 27.117117117117115, 27.207207207207205, 27.2972972972973, 27.38738738738739, 27.47747747747748, 27.56756756756757, 27.65765765765766, 27.74774774774775, 27.83783783783784, 27.92792792792793, 28.01801801801802, 28.10810810810811, 28.1981981981982, 28.28828828828829, 28.37837837837838, 28.46846846846847, 28.55855855855856, 28.64864864864865, 28.73873873873874, 28.82882882882883, 28.91891891891892, 29.00900900900901, 29.0990990990991, 29.18918918918919, 29.27927927927928, 29.36936936936937, 29.45945945945946, 29.54954954954955, 29.63963963963964, 29.72972972972973, 29.81981981981982, 29.90990990990991, 30.0, 30.09009009009009, 30.18018018018018, 30.27027027027027, 30.36036036036036, 30.45045045045045, 30.54054054054054, 30.63063063063063, 30.72072072072072, 30.81081081081081, 30.9009009009009, 30.99099099099099, 31.08108108108108, 31.17117117117117, 31.26126126126126, 31.35135135135135, 31.44144144144144, 31.53153153153153, 31.62162162162162, 31.71171171171171, 31.8018018018018, 31.89189189189189, 31.98198198198198, 32.072072072072075, 32.16216216216216, 32.25225225225225, 32.34234234234234, 32.432432432432435, 32.52252252252252, 32.61261261261261, 32.7027027027027, 32.792792792792795, 32.88288288288288, 32.97297297297297, 33.06306306306306, 33.153153153153156, 33.24324324324324, 33.33333333333333, 33.42342342342342, 33.513513513513516, 33.6036036036036, 33.69369369369369, 33.78378378378378, 33.873873873873876, 33.96396396396396, 34.05405405405405, 34.14414414414414, 34.234234234234236, 34.32432432432432, 34.41441441441441, 34.5045045045045, 34.5945945945946, 34.68468468468468, 34.77477477477477, 34.86486486486486, 34.95495495495496, 35.04504504504504, 35.13513513513513, 35.22522522522522, 35.31531531531532, 35.4054054054054, 35.49549549549549, 35.585585585585584, 35.67567567567568, 35.765765765765764, 35.85585585585585, 35.945945945945944, 36.03603603603604, 36.126126126126124, 36.21621621621621, 36.306306306306304, 36.3963963963964, 36.486486486486484, 36.57657657657657, 36.666666666666664, 36.75675675675676, 36.846846846846844, 36.93693693693693, 37.027027027027025, 37.11711711711712, 37.207207207207205, 37.29729729729729, 37.387387387387385, 37.47747747747748, 37.567567567567565, 37.65765765765765, 37.747747747747745, 37.83783783783784, 37.927927927927925, 38.01801801801801, 38.108108108108105, 38.1981981981982, 38.288288288288285, 38.37837837837837, 38.468468468468465, 38.55855855855856, 38.648648648648646, 38.73873873873873, 38.828828828828826, 38.91891891891892, 39.009009009009006, 39.0990990990991, 39.18918918918919, 39.27927927927928, 39.369369369369366, 39.45945945945946, 39.54954954954955, 39.63963963963964, 39.729729729729726, 39.81981981981982, 39.90990990990991, 40.0, 40.09009009009009, 40.18018018018018, 40.270270270270274, 40.36036036036036, 40.45045045045045, 40.54054054054054, 40.630630630630634, 40.72072072072072, 40.81081081081081, 40.9009009009009, 40.990990990990994, 41.08108108108108, 41.17117117117117, 41.26126126126126, 41.351351351351354, 41.44144144144144, 41.53153153153153, 41.62162162162162, 41.711711711711715, 41.8018018018018, 41.89189189189189, 41.98198198198198, 42.07207207207207, 42.16216216216216, 42.25225225225225, 42.34234234234234, 42.43243243243243, 42.52252252252252, 42.61261261261261, 42.7027027027027, 42.79279279279279, 42.88288288288288, 42.97297297297297, 43.06306306306306, 43.15315315315315, 43.24324324324324, 43.33333333333333, 43.42342342342342, 43.51351351351351, 43.6036036036036, 43.69369369369369, 43.78378378378378, 43.87387387387387, 43.96396396396396, 44.05405405405405, 44.14414414414414, 44.23423423423423, 44.32432432432432, 44.41441441441441, 44.5045045045045, 44.5945945945946, 44.68468468468468, 44.77477477477478, 44.86486486486486, 44.95495495495496, 45.04504504504504, 45.13513513513514, 45.22522522522522, 45.31531531531532, 45.4054054054054, 45.4954954954955, 45.585585585585584, 45.67567567567568, 45.765765765765764, 45.85585585585586, 45.945945945945944, 46.03603603603604, 46.126126126126124, 46.21621621621622, 46.306306306306304, 46.3963963963964, 46.486486486486484, 46.57657657657658, 46.666666666666664, 46.75675675675676, 46.846846846846844, 46.93693693693694, 47.027027027027025, 47.11711711711712, 47.207207207207205, 47.2972972972973, 47.387387387387385, 47.47747747747748, 47.567567567567565, 47.65765765765766, 47.747747747747745, 47.83783783783784, 47.927927927927925, 48.01801801801802, 48.108108108108105, 48.1981981981982, 48.288288288288285, 48.37837837837838, 48.468468468468465, 48.55855855855856, 48.648648648648646, 48.73873873873874, 48.828828828828826, 48.91891891891892, 49.009009009009006, 49.0990990990991, 49.189189189189186, 49.27927927927928, 49.369369369369366, 49.45945945945946, 49.549549549549546, 49.63963963963964, 49.729729729729726, 49.81981981981982, 49.909909909909906, 50.0, 50.09009009009009, 50.18018018018018, 50.27027027027027, 50.36036036036036, 50.45045045045045, 50.54054054054054, 50.63063063063063, 50.72072072072072, 50.81081081081081, 50.9009009009009, 50.99099099099099, 51.08108108108108, 51.17117117117117, 51.26126126126126, 51.35135135135135, 51.44144144144144, 51.53153153153153, 51.62162162162162, 51.71171171171171, 51.8018018018018, 51.89189189189189, 51.98198198198198, 52.07207207207207, 52.16216216216216, 52.25225225225225, 52.34234234234234, 52.43243243243243, 52.52252252252252, 52.61261261261261, 52.7027027027027, 52.79279279279279, 52.88288288288288, 52.97297297297297, 53.06306306306306, 53.15315315315315, 53.24324324324324, 53.33333333333333, 53.42342342342342, 53.51351351351351, 53.6036036036036, 53.69369369369369, 53.78378378378378, 53.87387387387387, 53.96396396396396, 54.05405405405405, 54.14414414414414, 54.23423423423423, 54.32432432432432, 54.41441441441441, 54.5045045045045, 54.59459459459459, 54.68468468468468, 54.77477477477477, 54.86486486486486, 54.95495495495495, 55.04504504504504, 55.13513513513513, 55.22522522522522, 55.31531531531531, 55.4054054054054, 55.49549549549549, 55.585585585585584, 55.67567567567567, 55.765765765765764, 55.85585585585585, 55.945945945945944, 56.03603603603603, 56.126126126126124, 56.21621621621622, 56.306306306306304, 56.3963963963964, 56.486486486486484, 56.57657657657658, 56.666666666666664, 56.75675675675676, 56.846846846846844, 56.93693693693694, 57.027027027027025, 57.11711711711712, 57.207207207207205, 57.2972972972973, 57.387387387387385, 57.47747747747748, 57.567567567567565, 57.65765765765766, 57.747747747747745, 57.83783783783784, 57.927927927927925, 58.01801801801802, 58.108108108108105, 58.1981981981982, 58.288288288288285, 58.37837837837838, 58.468468468468465, 58.55855855855856, 58.648648648648646, 58.73873873873874, 58.828828828828826, 58.91891891891892, 59.009009009009006, 59.0990990990991, 59.189189189189186, 59.27927927927928, 59.369369369369366, 59.45945945945946, 59.549549549549546, 59.63963963963964, 59.729729729729726, 59.81981981981982, 59.909909909909906, 60.0, 60.09009009009009, 60.18018018018018, 60.27027027027027, 60.36036036036036, 60.45045045045045, 60.54054054054054, 60.63063063063063, 60.72072072072072, 60.81081081081081, 60.9009009009009, 60.99099099099099, 61.08108108108108, 61.17117117117117, 61.26126126126126, 61.35135135135135, 61.44144144144144, 61.53153153153153, 61.62162162162162, 61.71171171171171, 61.8018018018018, 61.89189189189189, 61.98198198198198, 62.07207207207207, 62.16216216216216, 62.25225225225225, 62.34234234234234, 62.43243243243243, 62.52252252252252, 62.61261261261261, 62.7027027027027, 62.79279279279279, 62.88288288288288, 62.97297297297297, 63.06306306306306, 63.15315315315315, 63.24324324324324, 63.33333333333333, 63.42342342342342, 63.51351351351351, 63.6036036036036, 63.69369369369369, 63.78378378378378, 63.87387387387387, 63.96396396396396, 64.05405405405405, 64.14414414414415, 64.23423423423424, 64.32432432432432, 64.41441441441441, 64.5045045045045, 64.59459459459458, 64.68468468468468, 64.77477477477477, 64.86486486486487, 64.95495495495496, 65.04504504504504, 65.13513513513513, 65.22522522522522, 65.3153153153153, 65.4054054054054, 65.49549549549549, 65.58558558558559, 65.67567567567568, 65.76576576576576, 65.85585585585585, 65.94594594594594, 66.03603603603602, 66.12612612612612, 66.21621621621621, 66.30630630630631, 66.3963963963964, 66.48648648648648, 66.57657657657657, 66.66666666666666, 66.75675675675674, 66.84684684684684, 66.93693693693693, 67.02702702702703, 67.11711711711712, 67.2072072072072, 67.29729729729729, 67.38738738738738, 67.47747747747746, 67.56756756756756, 67.65765765765765, 67.74774774774775, 67.83783783783784, 67.92792792792793, 68.01801801801801, 68.1081081081081, 68.1981981981982, 68.28828828828829, 68.37837837837839, 68.46846846846847, 68.55855855855856, 68.64864864864865, 68.73873873873873, 68.82882882882882, 68.91891891891892, 69.009009009009, 69.0990990990991, 69.1891891891892, 69.27927927927928, 69.36936936936937, 69.45945945945945, 69.54954954954954, 69.63963963963964, 69.72972972972973, 69.81981981981983, 69.90990990990991, 70.0, 70.09009009009009, 70.18018018018017, 70.27027027027026, 70.36036036036036, 70.45045045045045, 70.54054054054055, 70.63063063063063, 70.72072072072072, 70.8108108108108, 70.9009009009009, 70.99099099099098, 71.08108108108108, 71.17117117117117, 71.26126126126127, 71.35135135135135, 71.44144144144144, 71.53153153153153, 71.62162162162161, 71.7117117117117, 71.8018018018018, 71.89189189189189, 71.98198198198199, 72.07207207207207, 72.16216216216216, 72.25225225225225, 72.34234234234233, 72.43243243243242, 72.52252252252252, 72.61261261261261, 72.70270270270271, 72.7927927927928, 72.88288288288288, 72.97297297297297, 73.06306306306305, 73.15315315315314, 73.24324324324324, 73.33333333333333, 73.42342342342343, 73.51351351351352, 73.6036036036036, 73.69369369369369, 73.78378378378378, 73.87387387387386, 73.96396396396396, 74.05405405405405, 74.14414414414414, 74.23423423423424, 74.32432432432432, 74.41441441441441, 74.5045045045045, 74.5945945945946, 74.68468468468468, 74.77477477477477, 74.86486486486486, 74.95495495495496, 75.04504504504504, 75.13513513513513, 75.22522522522522, 75.31531531531532, 75.4054054054054, 75.49549549549549, 75.58558558558558, 75.67567567567568, 75.76576576576576, 75.85585585585585, 75.94594594594594, 76.03603603603604, 76.12612612612612, 76.21621621621621, 76.3063063063063, 76.3963963963964, 76.48648648648648, 76.57657657657657, 76.66666666666666, 76.75675675675676, 76.84684684684684, 76.93693693693693, 77.02702702702702, 77.11711711711712, 77.2072072072072, 77.29729729729729, 77.38738738738738, 77.47747747747748, 77.56756756756756, 77.65765765765765, 77.74774774774774, 77.83783783783784, 77.92792792792793, 78.01801801801801, 78.1081081081081, 78.1981981981982, 78.28828828828829, 78.37837837837837, 78.46846846846846, 78.55855855855856, 78.64864864864865, 78.73873873873873, 78.82882882882882, 78.91891891891892, 79.009009009009, 79.09909909909909, 79.1891891891892, 79.27927927927928, 79.36936936936937, 79.45945945945945, 79.54954954954955, 79.63963963963964, 79.72972972972973, 79.81981981981981, 79.90990990990991, 80.0, 80.09009009009009, 80.18018018018017, 80.27027027027027, 80.36036036036036, 80.45045045045045, 80.54054054054053, 80.63063063063063, 80.72072072072072, 80.8108108108108, 80.9009009009009, 80.990990990991, 81.08108108108108, 81.17117117117117, 81.26126126126125, 81.35135135135135, 81.44144144144144, 81.53153153153153, 81.62162162162161, 81.71171171171171, 81.8018018018018, 81.89189189189189, 81.98198198198197, 82.07207207207207, 82.16216216216216, 82.25225225225225, 82.34234234234233, 82.43243243243244, 82.52252252252252, 82.61261261261261, 82.7027027027027, 82.7927927927928, 82.88288288288288, 82.97297297297297, 83.06306306306305, 83.15315315315316, 83.24324324324324, 83.33333333333333, 83.42342342342342, 83.51351351351352, 83.6036036036036, 83.69369369369369, 83.78378378378378, 83.87387387387388, 83.96396396396396, 84.05405405405405, 84.14414414414414, 84.23423423423424, 84.32432432432432, 84.41441441441441, 84.5045045045045, 84.5945945945946, 84.68468468468468, 84.77477477477477, 84.86486486486486, 84.95495495495496, 85.04504504504504, 85.13513513513513, 85.22522522522522, 85.31531531531532, 85.4054054054054, 85.49549549549549, 85.58558558558558, 85.67567567567568, 85.76576576576576, 85.85585585585585, 85.94594594594594, 86.03603603603604, 86.12612612612612, 86.21621621621621, 86.3063063063063, 86.3963963963964, 86.48648648648648, 86.57657657657657, 86.66666666666666, 86.75675675675676, 86.84684684684684, 86.93693693693693, 87.02702702702702, 87.11711711711712, 87.2072072072072, 87.29729729729729, 87.38738738738738, 87.47747747747748, 87.56756756756756, 87.65765765765765, 87.74774774774774, 87.83783783783784, 87.92792792792793, 88.01801801801801, 88.1081081081081, 88.1981981981982, 88.28828828828829, 88.37837837837837, 88.46846846846846, 88.55855855855856, 88.64864864864865, 88.73873873873873, 88.82882882882882, 88.91891891891892, 89.009009009009, 89.09909909909909, 89.18918918918918, 89.27927927927928, 89.36936936936937, 89.45945945945945, 89.54954954954954, 89.63963963963964, 89.72972972972973, 89.81981981981981, 89.9099099099099, 90.0, 90.09009009009009, 90.18018018018017, 90.27027027027026, 90.36036036036036, 90.45045045045045, 90.54054054054053, 90.63063063063062, 90.72072072072072, 90.8108108108108, 90.9009009009009, 90.990990990991, 91.08108108108108, 91.17117117117117, 91.26126126126125, 91.35135135135135, 91.44144144144144, 91.53153153153153, 91.62162162162161, 91.71171171171171, 91.8018018018018, 91.89189189189189, 91.98198198198197, 92.07207207207207, 92.16216216216216, 92.25225225225225, 92.34234234234233, 92.43243243243244, 92.52252252252252, 92.61261261261261, 92.7027027027027, 92.7927927927928, 92.88288288288288, 92.97297297297297, 93.06306306306305, 93.15315315315316, 93.24324324324324, 93.33333333333333, 93.42342342342342, 93.51351351351352, 93.6036036036036, 93.69369369369369, 93.78378378378378, 93.87387387387388, 93.96396396396396, 94.05405405405405, 94.14414414414414, 94.23423423423424, 94.32432432432432, 94.41441441441441, 94.5045045045045, 94.5945945945946, 94.68468468468468, 94.77477477477477, 94.86486486486486, 94.95495495495496, 95.04504504504504, 95.13513513513513, 95.22522522522522, 95.31531531531532, 95.4054054054054, 95.49549549549549, 95.58558558558558, 95.67567567567568, 95.76576576576576, 95.85585585585585, 95.94594594594594, 96.03603603603604, 96.12612612612612, 96.21621621621621, 96.3063063063063, 96.3963963963964, 96.48648648648648, 96.57657657657657, 96.66666666666666, 96.75675675675676, 96.84684684684684, 96.93693693693693, 97.02702702702702, 97.11711711711712, 97.2072072072072, 97.29729729729729, 97.38738738738738, 97.47747747747748, 97.56756756756756, 97.65765765765765, 97.74774774774774, 97.83783783783784, 97.92792792792793, 98.01801801801801, 98.1081081081081, 98.1981981981982, 98.28828828828829, 98.37837837837837, 98.46846846846846, 98.55855855855856, 98.64864864864865, 98.73873873873873, 98.82882882882882, 98.91891891891892, 99.009009009009, 99.09909909909909, 99.18918918918918, 99.27927927927928, 99.36936936936937, 99.45945945945945, 99.54954954954954, 99.63963963963964, 99.72972972972973, 99.81981981981981, 99.9099099099099, 100.0], "expected": [1.4279937100703566, 1.4235170400165968, 1.4189226908202506, 1.4142145986739152, 1.4093966244190368, 1.4044725530546107, 1.399446093381604, 1.3943208777766964, 1.3891004620888936, 1.3837883256525434, 1.3783878714103133, 1.3729024261397291, 1.3673352407769532, 1.361689490831586, 1.3559682768863806, 1.350174625175915, 1.3443114882384066, 1.33838174563503, 1.332388204731272, 1.326333601535052, 1.3202206015865159, 1.3140518008946336, 1.3078297269159125, 1.3015568395707564, 1.2952355322932056, 1.2888681331099985, 1.2824569057451, 1.276004050746049, 1.269511706628673, 1.262981951036919, 1.25641680191474, 1.2498182186871651, 1.2431881034478633, 1.236528302150686, 1.2298406058028497, 1.2231267516575808, 1.2163884244042036, 1.2096272573538027, 1.2028448336187483, 1.1960426872844914, 1.189222304572191, 1.1823851249908472, 1.1755325424777392, 1.1686659065260792, 1.161786523298909, 1.1548956567283515, 1.1479945295994436, 1.1410843246178557, 1.1341661854608898, 1.1272412178112348, 1.1203104903730203, 1.1133750358697887, 1.1064358520240725, 1.0994939025183113, 1.0925501179369166, 1.0856053966893284, 1.0786606059139687, 1.0717165823630324, 1.0647741332681038, 1.0578340371866197, 1.0508970448292383, 1.0439638798681987, 1.037035239726801, 1.0301117963501314, 1.0231941969572216, 1.0162830647748178, 1.0093789997529705, 1.0024825792626755, 0.9955943587758013, 0.9887148725275603, 0.9818446341617898, 0.9749841373593161, 0.9681338564496934, 0.9612942470066002, 0.954465746427202, 0.9476487744957786, 0.9408437339319237, 0.9340510109236309, 0.9272709756455749, 0.9205039827629072, 0.9137503719208767, 0.9070104682205936, 0.9002845826812471, 0.8935730126890933, 0.8868760424335218, 0.8801939433305098, 0.8735269744337716, 0.8668753828339038, 0.860239404045824, 0.8536192623848069, 0.8470151713313983, 0.840427333885501, 0.8338559429099136, 0.8273011814636039, 0.8207632231249817, 0.8142422323054501, 0.8077383645534914, 0.8012517668495481, 0.794782577891956, 0.7883309283741696, 0.7818969412535314, 0.7754807320118152, 0.7690824089077842, 0.7627020732219812, 0.7563398194939778, 0.7499957357523033, 0.7436699037372568, 0.737362399116813, 0.7310732916958246, 0.724802645618712, 0.7185505195658384, 0.7123169669437511, 0.7061020360694722, 0.6999057703490175, 0.693728208450314, 0.6875693844706793, 0.6814293280990371, 0.6753080647730123, 0.6692056158310735, 0.663121998659864, 0.6570572268368698, 0.6510113102685674, 0.6449842553241885, 0.6389760649652304, 0.6329867388708523, 0.6270162735592718, 0.6210646625052949, 0.6151318962540873, 0.6092179625313152, 0.6033228463497556, 0.597446530112493, 0.5915889937128036, 0.5857502146308322, 0.5799301680271607, 0.5741288268333617, 0.568346161839635, 0.5625821417796144, 0.5568367334124359, 0.5511099016021488, 0.545401609394555, 0.5397118180915567, 0.53404048732309, 0.5283875751167187, 0.5227530379649619, 0.5171368308904286, 0.5115389075088236, 0.5059592200898958, 0.5003977196163889, 0.49485435584106247, 0.48932907734183806, 0.4838218315751345, 0.47833256492744497, 0.4728612227652133, 0.46740774948306346, 0.4619720885504303, 0.4565541825566501, 0.45115397325454565, 0.4457714016025696, 0.4404064078055366, 0.4350589313539994, 0.4297289110623053, 0.42441628510537743, 0.4191209910542608, 0.4138429659104691, 0.40858214613917576, 0.4033384677012786, 0.39811186608438126, 0.3929022763327185, 0.38770963307606354, 0.38253387055764615, 0.3773749226611165, 0.37223272293658205, 0.36710720462574536, 0.36199830068617717, 0.3569059438147448, 0.35183006647022763, 0.34677060089514405, 0.3417274791368122, 0.3367006330676744, 0.3316899944049024, 0.3266954947293084, 0.3217170655035889, 0.3167546380899117, 0.3118081437668783, 0.3068775137458729, 0.3019626791868232, 0.29706357121338656, 0.2921801209275863, 0.2873122594239076, 0.28245991780287766, 0.27762302718414056, 0.2728015187190477, 0.26799532360277556, 0.2632043730859878, 0.25842859848605454, 0.2536679311978469, 0.24892230270411422, 0.24419164458546194, 0.23947588852994117, 0.23477496634226505, 0.2300888099526562, 0.22541735142534772, 0.2207605229667396, 0.2161182569332278, 0.21149048583871305, 0.2068771423618003, 0.20227815935269994, 0.19769346983983932, 0.19312300703619398, 0.18856670434534892, 0.18402449536729418, 0.1794963139039724, 0.17498209396457431, 0.1704817697706023, 0.165995275760699, 0.16152254659525744, 0.15706351716081346, 0.15261812257423096, 0.14818629818668577, 0.1437679795874536, 0.1393631026075114, 0.13497160332295513, 0.13059341805824076, 0.1262284833892562, 0.12187673614622802, 0.11753811341646785, 0.11321255254696613, 0.10889999114683542, 0.10460036708961015, 0.1003136185154087, 0.09603968383295805, 0.09177850172149091, 0.08753001113251623, 0.08329415129146728, 0.0790708616992343, 0.07486008213358296, 0.07066175265046305, 0.06647581358521153, 0.06230220555365424, 0.05814086945310678, 0.053991746463284016, 0.04985477804711407, 0.04572990595146541, 0.04161707220778683, 0.03751621913266804, 0.03342728932831611, 0.029350225682959162, 0.02528497137117225, 0.021231469854134707, 0.017189664879817098, 0.013159500483101421, 0.009140920985838104, 0.005133870996841097, 0.0011382954118218632, -0.002845860586730224, -0.0068186515297275156, -0.010780131661712114, -0.014730354941138625, -0.018669375040705292, -0.022597245347728792, -0.026514018964572453, -0.030419748709108685, -0.034314487115231926, -0.038198286433406836, -0.04207119863125614, -0.04593327539418854, -0.04978456812605803, -0.05362512794986282, -0.057455005708471334, -0.06127425196538441, -0.06508291700552665, -0.06888105083606458, -0.072668703187256, -0.07644592351332406, -0.08021276099335517, -0.08396926453222532, -0.0877154827615455, -0.09145146404063205, -0.09517725645749697, -0.0988929078298579, -0.10259846570616965, -0.10629397736667014, -0.10997948982444777, -0.11365504982652304, -0.1173207038549465, -0.12097649812791035, -0.12462247860087708, -0.12825869096771877, -0.13188518066186922, -0.13550199285749, -0.13910917247064555, -0.14270676416048997, -0.14629481233046376, -0.14987336112949853, -0.15344245445323268, -0.1570021359452335, -0.16055244899822713, -0.1640934367553358, -0.16762514211132107, -0.17114760771383528, -0.1746608759646741, -0.17816498902103864, -0.18165998879679965, -0.18514591696376553, -0.18862281495295682, -0.1920907239558802, -0.19554968492580826, -0.19899973857906125, -0.20244092539628888, -0.20587328562375767, -0.20929685927463526, -0.21271168613028052, -0.21611780574153147, -0.21951525742999262, -0.22290408028932668, -0.2262843131865419, -0.22965599476328188, -0.2330191634371139, -0.2363738574028142, -0.23972011463365647, -0.24305797288269534, -0.24638746968404868, -0.24970864235418067, -0.25302152799317884, -0.25632616348603293, -0.2596225855039076, -0.26291083050541536, -0.26619093473788513, -0.26946293423862805, -0.2727268648362004, -0.2759827621516628, -0.279230661599837, -0.2824705983905572, -0.28570260752991916, -0.28892672382152473, -0.2921429818677225, -0.29535141607084425, -0.29855206063443734, -0.3017449495644916, -0.30493011667066444, -0.30810759556749706, -0.3112774196756307, -0.3144396222230144, -0.31759423624610994, -0.3207412945910907, -0.32388082991503603, -0.32701287468712104, -0.33013746118979914, -0.33325462151998236, -0.33636438759021253, -0.33946679112983147, -0.3425618636861415, -0.34564963662556375, -0.34873014113478823, -0.3518034082219209, -0.35486946871762254, -0.357928353276243, -0.36098009237695133, -0.36402471632485683, -0.3670622552521269, -0.37009273911909774, -0.3731161977153807, -0.3761326606609593, -0.37914215740728496, -0.3821447172383638, -0.38514036927183604, -0.38812914246005487, -0.39111106559115333, -0.39408616729010904, -0.3970544760197994, -0.40001602008205706, -0.40297082761871034, -0.40591892661262535, -0.40886034488873824, -0.41179511011508213, -0.4147232498038085, -0.4176447913122008, -0.4205597618436847, -0.42346818844883, -0.4263700980263465, -0.4292655173240756, -0.43215447293997467, -0.43503699132309387, -0.4379130987745509, -0.44078282144849457, -0.44364618535306727, -0.4465032163513578, -0.44935394016234914, -0.45219838236186255, -0.45503656838349127, -0.4578685235195323, -0.4606942729219104, -0.4635138416030948, -0.46632725443701484, -0.4691345361599622, -0.47193571137149487, -0.4747308045353294, -0.4775198399802314, -0.4803028419008976, -0.48307983435883284, -0.4858508412832218, -0.4886158864717945, -0.4913749935916853, -0.4941281861802891, -0.4968754876461069, -0.499616921269591, -0.5023525102039799, -0.5050822774761314, -0.5078062459873476, -0.5105244385141945, -0.5132368777093188, -0.5159435861022542, -0.5186445861002273, -0.5213398999889549, -0.524029549933436, -0.52671355797874, -0.529391946050789, -0.5320647359571328, -0.5347319493877215, -0.5373936079156701, -0.5400497329980208, -0.5427003459764963, -0.5453454680782515, -0.547985120416618, -0.5506193239918424, -0.5532480996918235, -0.5558714682928397, -0.5584894504602744, -0.5611020667493349, -0.563709337605767, -0.5663112833665637, -0.5689079242606709, -0.5714992804096853, -0.5740853718285505, -0.5766662184262445, -0.5792418400064678, -0.5818122562683192, -0.5843774868069752, -0.5869375511143567, -0.5894924685797984, -0.5920422584907065, -0.594586940033217, -0.5971265322928475, -0.599661054255143, -0.60219052480632, -0.6047149627339031, -0.6072343867273599, -0.6097488153787283, -0.6122582671832429, -0.6147627605399536, -0.6172623137523424, -0.6197569450289337, -0.6222466724839023, -0.6247315141376752, -0.6272114879175313, -0.6296866116581936, -0.632156903102421, -0.6346223799015926, -0.6370830596162906, -0.6395389597168766, -0.6419900975840652, -0.644436490509494, -0.6468781556962876, -0.6493151102596193, -0.6517473712272681, -0.654174955540173, -0.6565978800529797, -0.6590161615345889, -0.6614298166686954, -0.6638388620543272, -0.6662433142063784, -0.6686431895561392, -0.6710385044518231, -0.6734292751590871, -0.6758155178615535, -0.6781972486613219, -0.680574483579482, -0.6829472385566218, -0.6853155294533302, -0.687679372050699, -0.6900387820508184, -0.6923937750772714, -0.6947443666756233, -0.697090572313908, -0.6994324073831114, -0.7017698871976498, -0.7041030269958471, -0.706431841940407, -0.7087563471188821, -0.7110765575441407, -0.7133924881548277, -0.7157041538158264, -0.7180115693187135, -0.7203147493822102, -0.7226137086526351, -0.7249084617043485, -0.7271990230401967, -0.7294854070919508, -0.7317676282207455, -0.7340457007175122, -0.7363196388034096, -0.7385894566302518, -0.740855168280933, -0.7431167877698497, -0.7453743290433189, -0.7476278059799943, -0.7498772323912788, -0.7521226220217349, -0.7543639885494916, -0.756601345586649, -0.7588347066796788, -0.761064085309823, -0.763289494893491, -0.7655109487826505, -0.7677284602652188, -0.7699420425654508, -0.7721517088443217, -0.7743574721999108, -0.7765593456677804, -0.778757342221352, -0.7809514747722809, -0.7831417561708262, -0.7853281992062212, -0.7875108166070395, -0.7896896210415576, -0.7918646251181164, -0.7940358413854791, -0.7962032823331892, -0.7983669603919218, -0.8005268879338365, -0.8026830772729245, -0.8048355406653557, -0.8069842903098222, -0.8091293383478803, -0.8112706968642881, -0.8134083778873439, -0.8155423933892194, -0.8176727552862914, -0.8197994754394726, -0.8219225656545389, -0.8240420376824534, -0.8261579032196902, -0.8282701739085545, -0.8303788613375017, -0.8324839770414539, -0.8345855325021123, -0.8366835391482701, -0.8387780083561227, -0.8408689514495755, -0.8429563797005465, -0.8450403043292738, -0.8471207365046141, -0.8491976873443429, -0.8512711679154513, -0.8533411892344414, -0.8554077622676187, -0.8574708979313843, -0.8595306070925232, -0.8615869005684919, -0.8636397891277027, -0.8656892834898071, -0.8677353943259788, -0.8697781322591895, -0.8718175078644905, -0.8738535316692854, -0.8758862141536033, -0.877915565750374, -0.8799415968456937, -0.881964317779097, -0.8839837388438204, -0.8859998702870675, -0.8880127223102733, -0.8900223050693624, -0.8920286286750103, -0.8940317031929007, -0.8960315386439791, -0.8980281450047093, -0.9000215322073242, -0.9020117101400768, -0.9039986886474888, -0.9059824775305979, -0.9079630865472033, -0.9099405254121093, -0.9119148037973689, -0.9138859313325217, -0.9158539176048354, -0.9178187721595418, -0.919780504500074, -0.9217391240882983, -0.9236946403447499, -0.9256470626488608, -0.9275964003391916, -0.9295426627136589, -0.9314858590297621, -0.9334259985048076, -0.9353630903161327, -0.9372971436013289, -0.9392281674584598, -0.9411561709462828, -0.943081163084466, -0.9450031528538028, -0.9469221491964291, -0.9488381610160354, -0.9507511971780789, -0.9526612665099942, -0.9545683778014021, -0.9564725398043178, -0.9583737612333578, -0.9602720507659439, -0.9621674170425075, -0.9640598686666918, -0.9659494142055535, -0.967836062189762, -0.969719821113798, -0.9716006994361504, -0.9734787055795122, -0.9753538479309758, -0.9772261348422258, -0.9790955746297307, -0.9809621755749345, -0.9828259459244449, -0.9846868938902246, -0.9865450276497743, -0.9884003553463222, -0.990252885089007, -0.992102624953061, -0.9939495829799943, -0.9957937671777738, -0.9976351855210048, -0.9994738459511087, -1.0013097563765017, -1.0031429246727712, -1.0049733586828489, -1.0068010662171893, -1.0086260550539392, -1.0104483329391116, -1.0122679075867562, -1.0140847866791285, -1.0158989778668597, -1.0177104887691246, -1.0195193269738065, -1.0213255000376642, -1.0231290154864965, -1.0249298808153047, -1.0267281034884557, -1.0285236909398439, -1.0303166505730499, -1.0321069897615018, -1.0338947158486325, -1.0356798361480366, -1.0374623579436275, -1.039242288489793, -1.041019635011549, -1.042794404704693, -1.0445666047359567, -1.0463362422431572, -1.0481033243353488, -1.0498678580929701, -1.0516298505679955, -1.0533893087840804, -1.0551462397367097, -1.0569006503933427, -1.0586525476935593, -1.060401938549202, -1.0621488298445207, -1.063893228436315, -1.065635141154074, -1.0673745748001193, -1.0691115361497416, -1.0708460319513424, -1.0725780689265698, -1.0743076537704563, -1.0760347931515557, -1.077759493712077, -1.0794817620680195, -1.0812016048093076, -1.0829190284999217, -1.084634039678032, -1.0863466448561283, -1.0880568505211519, -1.0897646631346238, -1.0914700891327742, -1.0931731349266711, -1.0948738069023458, -1.0965721114209221, -1.0982680548187387, -1.0999616434074777, -1.1016528834742854, -1.1033417812818975, -1.1050283430687624, -1.1067125750491613, -1.1083944834133308, -1.110074074327583, -1.111751353934424, -1.1134263283526753, -1.1150990036775903, -1.1167693859809713, -1.1184374813112892, -1.1201032956937953, -1.1217668351306411, -1.1234281056009907, -1.1250871130611346, -1.126743863444604, -1.1283983626622835, -1.1300506166025224, -1.1317006311312463, -1.1333484120920687, -1.1349939653063994, -1.1366372965735545, -1.1382784116708653, -1.1399173163537872, -1.141554016356005, -1.1431885173895417, -1.1448208251448622, -1.1464509452909821, -1.14807888347557, -1.1497046453250523, -1.151328236444718, -1.1529496624188191, -1.154568928810676, -1.1561860411627778, -1.1578010049968832, -1.1594138258141218, -1.161024509095094, -1.1626330602999697, -1.164239484868588, -1.1658437882205557, -1.1674459757553437, -1.1690460528523852, -1.1706440248711711, -1.1722398971513481, -1.173833675012811, -1.1754253637558012, -1.1770149686609972, -1.178602494989611, -1.180187947983481, -1.1817713328651633, -1.1833526548380249, -1.1849319190863354, -1.1865091307753572, -1.188084295051437, -1.1896574170420946, -1.1912285018561135, -1.1927975545836293, -1.1943645802962193, -1.1959295840469875, -1.1974925708706554, -1.1990535457836464, -1.2006125137841743, -1.2021694798523277, -1.2037244489501564, -1.2052774260217545, -1.2068284159933476, -1.2083774237733746, -1.2099244542525731, -1.2114695123040597, -1.213012602783416, -1.2145537305287661, -1.216092900360864, -1.2176301170831698, -1.219165385481932, -1.2206987103262692, -1.2222300963682475, -1.2237595483429613, -1.2252870709686114, -1.2268126689465846, -1.2283363469615303, -1.2298581096814374, -1.231377961757715, -1.2328959078252641, -1.2344119525025583, -1.235926100391716, -1.2374383560785782, -1.238948724132783, -1.2404572091078383, -1.2419638155411987, -1.2434685479543375, -1.2449714108528196, -1.2464724087263759, -1.2479715460489744, -1.2494688272788927, -1.2509642568587906, -1.2524578392157795, -1.2539495787614945, -1.2554394798921642, -1.2569275469886818, -1.258413784416675, -1.259898196526572, -1.2613807876536745, -1.2628615621182246, -1.2643405242254724, -1.2658176782657449, -1.2672930285145114, -1.2687665792324538, -1.2702383346655308, -1.2717082990450432, -1.2731764765877038, -1.2746428714956988, -1.2761074879567558, -1.2775703301442072, -1.2790314022170548, -1.2804907083200354, -1.2819482525836818, -1.2834040391243893, -1.2848580720444762, -1.2863103554322493, -1.287760893362063, -1.2892096898943837, -1.2906567490758518, -1.2921020749393413, -1.2935456715040217, -1.2949875427754194, -1.2964276927454774, -1.2978661253926151, -1.299302844681789, -1.300737854564551, -1.3021711589791087, -1.3036027618503832, -1.3050326670900676, -1.3064608785966862, -1.3078874002556518, -1.3093122359393212, -1.3107353895070575, -1.3121568648052806, -1.3135766656675296, -1.314994795914515, -1.3164112593541761, -1.3178260597817384, -1.3192392009797653, -1.3206506867182177, -1.3220605207545053, -1.3234687068335418, -1.3248752486878013, -1.3262801500373687, -1.3276834145899967, -1.3290850460411574, -1.3304850480740962, -1.331883424359883, -1.3332801785574673, -1.3346753143137278, -1.3360688352635273, -1.3374607450297613, -1.3388510472234123, -1.340239745443598, -1.341626843277625, -1.3430123443010382, -1.3443962520776713, -1.3457785701596954, -1.3471593020876718, -1.3485384513905998, -1.3499160215859658, -1.3512920161797932, -1.3526664386666905, -1.3540392925298999, -1.3554105812413466, -1.3567803082616856, -1.3581484770403502, -1.3595150910156, -1.3608801536145656, -1.3622436682533001, -1.3636056383368216, -1.3649660672591624, -1.366324958403414, -1.3676823151417745, -1.3690381408355932, -1.3703924388354163, -1.3717452124810336, -1.3730964651015214, -1.3744462000152904, -1.3757944205301273, -1.377141129943241, -1.3784863315413074, -1.3798300286005105, -1.3811722243865905, -1.3825129221548833, -1.3838521251503662, -1.3851898366077002, -1.3865260597512732, -1.387860797795242, -1.389194053943576, -1.3905258313900983, -1.3918561333185275, -1.3931849629025215, -1.3945123233057162, -1.3958382176817694, -1.3971626491744003, -1.398485620917431, -1.3998071360348288, -1.4011271976407433, -1.4024458088395506, -1.4037629727258898, -1.405078692384706, -1.406392970891289, -1.4077058113113115, -1.4090172167008705, -1.410327190106525, -1.4116357345653356, -1.4129428531049033, -1.4142485487434076, -1.4155528244896456, -1.4168556833430692, -1.418157128293824, -1.4194571623227856, -1.4207557884016, -1.4220530094927182, -1.423348828549435, -1.424643248515925, -1.4259362723272808, -1.4272279029095483, -1.4285181431797642, -1.4298069960459918, -1.4310944644073573, -1.4323805511540857, -1.433665259167537, -1.4349485913202402, -1.4362305504759318, -1.4375111394895879, -1.4387903612074608, -1.4400682184671136, -1.441344714097456, -1.4426198509187762, -1.4438936317427784, -1.445166059372615, -1.4464371366029218, -1.4477068662198502, -1.448975251001103, -1.4502422937159676, -1.4515079971253475, -1.4527723639817978, -1.4540353970295572, -1.4552970990045806, -1.4565574726345731, -1.4578165206390215, -1.4590742457292267, -1.4603306506083367, -1.4615857379713788, -1.4628395105052898, -1.4640919708889506, -1.4653431217932156, -1.4665929658809451, -1.4678415058070364, -1.4690887442184557, -1.4703346837542681, -1.4715793270456692, -1.472822676716016, -1.474064735380856, -1.4753055056479603, -1.4765449901173515, -1.4777831913813353, -1.4790201120245294, -1.4802557546238944, -1.4814901217487637, -1.4827232159608716, -1.483955039814384, -1.4851855958559275, -1.4864148866246187, -1.4876429146520926, -1.4888696824625316, -1.4900951925726962, -1.4913194474919496, -1.4925424497222908, -1.493764201758379, -1.4949847060875643, -1.4962039651899157, -1.497421981538247, -1.4986387575981472, -1.4998542958280061, -1.5010685986790433, -1.5022816685953349, -1.503493508013841, -1.504704119364433, -1.5059135050699197, -1.5071216675460763, -1.5083286092016692, -1.509534332438483, -1.5107388396513475, -1.5119421332281655, -1.513144215549935, -1.5143450889907801, -1.5155447559179744, -1.5167432186919665, -1.5179404796664082, -1.5191365411881774, -1.520331405597406, -1.5215250752275038, -1.5227175524051848, -1.5239088394504914, -1.5250989386768203, -1.5262878523909482, -1.5274755828930537, -1.528662132476746, -1.5298475034290868, -1.5310316980306153, -1.5322147185553736, -1.53339656727093, -1.5345772464384035, -1.5357567583124878, -1.5369351051414757, -1.5381122891672818, -1.5392883126254677]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/medium_c_log.json b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/medium_c_log.json new file mode 100644 index 000000000000..a02ae8143204 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/medium_c_log.json @@ -0,0 +1 @@ +{"x": [0.0, 0.001001001001001001, 0.002002002002002002, 0.003003003003003003, 0.004004004004004004, 0.005005005005005005, 0.006006006006006006, 0.007007007007007007, 0.008008008008008008, 0.009009009009009009, 0.01001001001001001, 0.011011011011011011, 0.012012012012012012, 0.013013013013013013, 0.014014014014014014, 0.015015015015015015, 0.016016016016016016, 0.017017017017017015, 0.018018018018018018, 0.01901901901901902, 0.02002002002002002, 0.02102102102102102, 0.022022022022022022, 0.023023023023023025, 0.024024024024024024, 0.025025025025025023, 0.026026026026026026, 0.02702702702702703, 0.028028028028028028, 0.029029029029029027, 0.03003003003003003, 0.031031031031031032, 0.03203203203203203, 0.03303303303303303, 0.03403403403403403, 0.035035035035035036, 0.036036036036036036, 0.037037037037037035, 0.03803803803803804, 0.03903903903903904, 0.04004004004004004, 0.04104104104104104, 0.04204204204204204, 0.043043043043043044, 0.044044044044044044, 0.04504504504504504, 0.04604604604604605, 0.04704704704704705, 0.04804804804804805, 0.04904904904904905, 0.050050050050050046, 0.05105105105105105, 0.05205205205205205, 0.05305305305305305, 0.05405405405405406, 0.055055055055055056, 0.056056056056056056, 0.057057057057057055, 0.058058058058058054, 0.05905905905905906, 0.06006006006006006, 0.06106106106106106, 0.062062062062062065, 0.06306306306306306, 0.06406406406406406, 0.06506506506506507, 0.06606606606606606, 0.06706706706706707, 0.06806806806806806, 0.06906906906906907, 0.07007007007007007, 0.07107107107107107, 0.07207207207207207, 0.07307307307307308, 0.07407407407407407, 0.07507507507507508, 0.07607607607607608, 0.07707707707707707, 0.07807807807807808, 0.07907907907907907, 0.08008008008008008, 0.08108108108108109, 0.08208208208208208, 0.08308308308308308, 0.08408408408408408, 0.08508508508508508, 0.08608608608608609, 0.08708708708708708, 0.08808808808808809, 0.0890890890890891, 0.09009009009009009, 0.09109109109109109, 0.0920920920920921, 0.09309309309309309, 0.0940940940940941, 0.09509509509509509, 0.0960960960960961, 0.0970970970970971, 0.0980980980980981, 0.0990990990990991, 0.10010010010010009, 0.1011011011011011, 0.1021021021021021, 0.1031031031031031, 0.1041041041041041, 0.10510510510510511, 0.1061061061061061, 0.10710710710710711, 0.10810810810810811, 0.1091091091091091, 0.11011011011011011, 0.1111111111111111, 0.11211211211211211, 0.11311311311311312, 0.11411411411411411, 0.11511511511511512, 0.11611611611611611, 0.11711711711711711, 0.11811811811811812, 0.11911911911911911, 0.12012012012012012, 0.12112112112112113, 0.12212212212212212, 0.12312312312312312, 0.12412412412412413, 0.12512512512512514, 0.12612612612612611, 0.12712712712712712, 0.12812812812812813, 0.12912912912912913, 0.13013013013013014, 0.13113113113113112, 0.13213213213213212, 0.13313313313313313, 0.13413413413413414, 0.13513513513513514, 0.13613613613613612, 0.13713713713713713, 0.13813813813813813, 0.13913913913913914, 0.14014014014014015, 0.14114114114114115, 0.14214214214214213, 0.14314314314314314, 0.14414414414414414, 0.14514514514514515, 0.14614614614614616, 0.14714714714714713, 0.14814814814814814, 0.14914914914914915, 0.15015015015015015, 0.15115115115115116, 0.15215215215215216, 0.15315315315315314, 0.15415415415415415, 0.15515515515515516, 0.15615615615615616, 0.15715715715715717, 0.15815815815815815, 0.15915915915915915, 0.16016016016016016, 0.16116116116116116, 0.16216216216216217, 0.16316316316316315, 0.16416416416416416, 0.16516516516516516, 0.16616616616616617, 0.16716716716716717, 0.16816816816816815, 0.16916916916916916, 0.17017017017017017, 0.17117117117117117, 0.17217217217217218, 0.17317317317317318, 0.17417417417417416, 0.17517517517517517, 0.17617617617617617, 0.17717717717717718, 0.1781781781781782, 0.17917917917917917, 0.18018018018018017, 0.18118118118118118, 0.18218218218218218, 0.1831831831831832, 0.1841841841841842, 0.18518518518518517, 0.18618618618618618, 0.1871871871871872, 0.1881881881881882, 0.1891891891891892, 0.19019019019019018, 0.19119119119119118, 0.1921921921921922, 0.1931931931931932, 0.1941941941941942, 0.19519519519519518, 0.1961961961961962, 0.1971971971971972, 0.1981981981981982, 0.1991991991991992, 0.20020020020020018, 0.2012012012012012, 0.2022022022022022, 0.2032032032032032, 0.2042042042042042, 0.20520520520520522, 0.2062062062062062, 0.2072072072072072, 0.2082082082082082, 0.2092092092092092, 0.21021021021021022, 0.2112112112112112, 0.2122122122122122, 0.2132132132132132, 0.21421421421421422, 0.21521521521521522, 0.21621621621621623, 0.2172172172172172, 0.2182182182182182, 0.21921921921921922, 0.22022022022022023, 0.22122122122122123, 0.2222222222222222, 0.22322322322322322, 0.22422422422422422, 0.22522522522522523, 0.22622622622622623, 0.2272272272272272, 0.22822822822822822, 0.22922922922922923, 0.23023023023023023, 0.23123123123123124, 0.23223223223223222, 0.23323323323323322, 0.23423423423423423, 0.23523523523523523, 0.23623623623623624, 0.23723723723723725, 0.23823823823823823, 0.23923923923923923, 0.24024024024024024, 0.24124124124124124, 0.24224224224224225, 0.24324324324324323, 0.24424424424424424, 0.24524524524524524, 0.24624624624624625, 0.24724724724724725, 0.24824824824824826, 0.24924924924924924, 0.2502502502502503, 0.25125125125125125, 0.25225225225225223, 0.25325325325325326, 0.25425425425425424, 0.2552552552552553, 0.25625625625625625, 0.25725725725725723, 0.25825825825825827, 0.25925925925925924, 0.2602602602602603, 0.26126126126126126, 0.26226226226226224, 0.26326326326326327, 0.26426426426426425, 0.2652652652652653, 0.26626626626626626, 0.26726726726726724, 0.2682682682682683, 0.26926926926926925, 0.2702702702702703, 0.27127127127127126, 0.27227227227227224, 0.2732732732732733, 0.27427427427427425, 0.2752752752752753, 0.27627627627627627, 0.2772772772772773, 0.2782782782782783, 0.27927927927927926, 0.2802802802802803, 0.28128128128128127, 0.2822822822822823, 0.2832832832832833, 0.28428428428428426, 0.2852852852852853, 0.2862862862862863, 0.2872872872872873, 0.2882882882882883, 0.28928928928928926, 0.2902902902902903, 0.2912912912912913, 0.2922922922922923, 0.2932932932932933, 0.29429429429429427, 0.2952952952952953, 0.2962962962962963, 0.2972972972972973, 0.2982982982982983, 0.29929929929929927, 0.3003003003003003, 0.3013013013013013, 0.3023023023023023, 0.3033033033033033, 0.30430430430430433, 0.3053053053053053, 0.3063063063063063, 0.3073073073073073, 0.3083083083083083, 0.30930930930930933, 0.3103103103103103, 0.3113113113113113, 0.3123123123123123, 0.3133133133133133, 0.31431431431431434, 0.3153153153153153, 0.3163163163163163, 0.3173173173173173, 0.3183183183183183, 0.31931931931931934, 0.3203203203203203, 0.3213213213213213, 0.32232232232232233, 0.3233233233233233, 0.32432432432432434, 0.3253253253253253, 0.3263263263263263, 0.32732732732732733, 0.3283283283283283, 0.32932932932932935, 0.3303303303303303, 0.3313313313313313, 0.33233233233233234, 0.3333333333333333, 0.33433433433433435, 0.3353353353353353, 0.3363363363363363, 0.33733733733733734, 0.3383383383383383, 0.33933933933933935, 0.34034034034034033, 0.34134134134134136, 0.34234234234234234, 0.3433433433433433, 0.34434434434434436, 0.34534534534534533, 0.34634634634634637, 0.34734734734734735, 0.3483483483483483, 0.34934934934934936, 0.35035035035035034, 0.35135135135135137, 0.35235235235235235, 0.3533533533533533, 0.35435435435435436, 0.35535535535535534, 0.3563563563563564, 0.35735735735735735, 0.35835835835835833, 0.35935935935935936, 0.36036036036036034, 0.3613613613613614, 0.36236236236236236, 0.36336336336336333, 0.36436436436436437, 0.36536536536536535, 0.3663663663663664, 0.36736736736736736, 0.3683683683683684, 0.36936936936936937, 0.37037037037037035, 0.3713713713713714, 0.37237237237237236, 0.3733733733733734, 0.3743743743743744, 0.37537537537537535, 0.3763763763763764, 0.37737737737737737, 0.3783783783783784, 0.3793793793793794, 0.38038038038038036, 0.3813813813813814, 0.38238238238238237, 0.3833833833833834, 0.3843843843843844, 0.38538538538538536, 0.3863863863863864, 0.38738738738738737, 0.3883883883883884, 0.3893893893893894, 0.39039039039039036, 0.3913913913913914, 0.3923923923923924, 0.3933933933933934, 0.3943943943943944, 0.39539539539539537, 0.3963963963963964, 0.3973973973973974, 0.3983983983983984, 0.3993993993993994, 0.40040040040040037, 0.4014014014014014, 0.4024024024024024, 0.4034034034034034, 0.4044044044044044, 0.40540540540540543, 0.4064064064064064, 0.4074074074074074, 0.4084084084084084, 0.4094094094094094, 0.41041041041041043, 0.4114114114114114, 0.4124124124124124, 0.4134134134134134, 0.4144144144144144, 0.41541541541541543, 0.4164164164164164, 0.4174174174174174, 0.4184184184184184, 0.4194194194194194, 0.42042042042042044, 0.4214214214214214, 0.4224224224224224, 0.42342342342342343, 0.4244244244244244, 0.42542542542542544, 0.4264264264264264, 0.4274274274274274, 0.42842842842842843, 0.4294294294294294, 0.43043043043043044, 0.4314314314314314, 0.43243243243243246, 0.43343343343343343, 0.4344344344344344, 0.43543543543543545, 0.4364364364364364, 0.43743743743743746, 0.43843843843843844, 0.4394394394394394, 0.44044044044044045, 0.44144144144144143, 0.44244244244244246, 0.44344344344344344, 0.4444444444444444, 0.44544544544544545, 0.44644644644644643, 0.44744744744744747, 0.44844844844844844, 0.4494494494494494, 0.45045045045045046, 0.45145145145145144, 0.45245245245245247, 0.45345345345345345, 0.4544544544544544, 0.45545545545545546, 0.45645645645645644, 0.4574574574574575, 0.45845845845845845, 0.45945945945945943, 0.46046046046046046, 0.46146146146146144, 0.4624624624624625, 0.46346346346346345, 0.46446446446446443, 0.46546546546546547, 0.46646646646646645, 0.4674674674674675, 0.46846846846846846, 0.4694694694694695, 0.47047047047047047, 0.47147147147147145, 0.4724724724724725, 0.47347347347347346, 0.4744744744744745, 0.4754754754754755, 0.47647647647647645, 0.4774774774774775, 0.47847847847847846, 0.4794794794794795, 0.4804804804804805, 0.48148148148148145, 0.4824824824824825, 0.48348348348348347, 0.4844844844844845, 0.4854854854854855, 0.48648648648648646, 0.4874874874874875, 0.48848848848848847, 0.4894894894894895, 0.4904904904904905, 0.49149149149149146, 0.4924924924924925, 0.4934934934934935, 0.4944944944944945, 0.4954954954954955, 0.4964964964964965, 0.4974974974974975, 0.4984984984984985, 0.4994994994994995, 0.5005005005005005, 0.5015015015015015, 0.5025025025025025, 0.5035035035035035, 0.5045045045045045, 0.5055055055055055, 0.5065065065065065, 0.5075075075075075, 0.5085085085085085, 0.5095095095095095, 0.5105105105105106, 0.5115115115115115, 0.5125125125125125, 0.5135135135135135, 0.5145145145145145, 0.5155155155155156, 0.5165165165165165, 0.5175175175175175, 0.5185185185185185, 0.5195195195195195, 0.5205205205205206, 0.5215215215215215, 0.5225225225225225, 0.5235235235235235, 0.5245245245245245, 0.5255255255255256, 0.5265265265265265, 0.5275275275275275, 0.5285285285285285, 0.5295295295295295, 0.5305305305305306, 0.5315315315315315, 0.5325325325325325, 0.5335335335335335, 0.5345345345345345, 0.5355355355355356, 0.5365365365365365, 0.5375375375375375, 0.5385385385385385, 0.5395395395395395, 0.5405405405405406, 0.5415415415415415, 0.5425425425425425, 0.5435435435435435, 0.5445445445445445, 0.5455455455455456, 0.5465465465465466, 0.5475475475475475, 0.5485485485485485, 0.5495495495495496, 0.5505505505505506, 0.5515515515515516, 0.5525525525525525, 0.5535535535535535, 0.5545545545545546, 0.5555555555555556, 0.5565565565565566, 0.5575575575575575, 0.5585585585585585, 0.5595595595595596, 0.5605605605605606, 0.5615615615615616, 0.5625625625625625, 0.5635635635635635, 0.5645645645645646, 0.5655655655655656, 0.5665665665665666, 0.5675675675675675, 0.5685685685685685, 0.5695695695695696, 0.5705705705705706, 0.5715715715715716, 0.5725725725725725, 0.5735735735735735, 0.5745745745745746, 0.5755755755755756, 0.5765765765765766, 0.5775775775775776, 0.5785785785785785, 0.5795795795795796, 0.5805805805805806, 0.5815815815815816, 0.5825825825825826, 0.5835835835835835, 0.5845845845845846, 0.5855855855855856, 0.5865865865865866, 0.5875875875875876, 0.5885885885885885, 0.5895895895895896, 0.5905905905905906, 0.5915915915915916, 0.5925925925925926, 0.5935935935935935, 0.5945945945945946, 0.5955955955955956, 0.5965965965965966, 0.5975975975975976, 0.5985985985985985, 0.5995995995995996, 0.6006006006006006, 0.6016016016016016, 0.6026026026026026, 0.6036036036036035, 0.6046046046046046, 0.6056056056056056, 0.6066066066066066, 0.6076076076076076, 0.6086086086086087, 0.6096096096096096, 0.6106106106106106, 0.6116116116116116, 0.6126126126126126, 0.6136136136136137, 0.6146146146146146, 0.6156156156156156, 0.6166166166166166, 0.6176176176176176, 0.6186186186186187, 0.6196196196196196, 0.6206206206206206, 0.6216216216216216, 0.6226226226226226, 0.6236236236236237, 0.6246246246246246, 0.6256256256256256, 0.6266266266266266, 0.6276276276276276, 0.6286286286286287, 0.6296296296296297, 0.6306306306306306, 0.6316316316316316, 0.6326326326326326, 0.6336336336336337, 0.6346346346346347, 0.6356356356356356, 0.6366366366366366, 0.6376376376376376, 0.6386386386386387, 0.6396396396396397, 0.6406406406406406, 0.6416416416416416, 0.6426426426426426, 0.6436436436436437, 0.6446446446446447, 0.6456456456456456, 0.6466466466466466, 0.6476476476476476, 0.6486486486486487, 0.6496496496496497, 0.6506506506506506, 0.6516516516516516, 0.6526526526526526, 0.6536536536536537, 0.6546546546546547, 0.6556556556556556, 0.6566566566566566, 0.6576576576576576, 0.6586586586586587, 0.6596596596596597, 0.6606606606606606, 0.6616616616616616, 0.6626626626626626, 0.6636636636636637, 0.6646646646646647, 0.6656656656656657, 0.6666666666666666, 0.6676676676676676, 0.6686686686686687, 0.6696696696696697, 0.6706706706706707, 0.6716716716716716, 0.6726726726726726, 0.6736736736736737, 0.6746746746746747, 0.6756756756756757, 0.6766766766766766, 0.6776776776776777, 0.6786786786786787, 0.6796796796796797, 0.6806806806806807, 0.6816816816816816, 0.6826826826826827, 0.6836836836836837, 0.6846846846846847, 0.6856856856856857, 0.6866866866866866, 0.6876876876876877, 0.6886886886886887, 0.6896896896896897, 0.6906906906906907, 0.6916916916916916, 0.6926926926926927, 0.6936936936936937, 0.6946946946946947, 0.6956956956956957, 0.6966966966966966, 0.6976976976976977, 0.6986986986986987, 0.6996996996996997, 0.7007007007007007, 0.7017017017017017, 0.7027027027027027, 0.7037037037037037, 0.7047047047047047, 0.7057057057057057, 0.7067067067067067, 0.7077077077077077, 0.7087087087087087, 0.7097097097097097, 0.7107107107107107, 0.7117117117117117, 0.7127127127127127, 0.7137137137137137, 0.7147147147147147, 0.7157157157157157, 0.7167167167167167, 0.7177177177177178, 0.7187187187187187, 0.7197197197197197, 0.7207207207207207, 0.7217217217217217, 0.7227227227227228, 0.7237237237237237, 0.7247247247247247, 0.7257257257257257, 0.7267267267267267, 0.7277277277277278, 0.7287287287287287, 0.7297297297297297, 0.7307307307307307, 0.7317317317317317, 0.7327327327327328, 0.7337337337337337, 0.7347347347347347, 0.7357357357357357, 0.7367367367367368, 0.7377377377377378, 0.7387387387387387, 0.7397397397397397, 0.7407407407407407, 0.7417417417417418, 0.7427427427427428, 0.7437437437437437, 0.7447447447447447, 0.7457457457457457, 0.7467467467467468, 0.7477477477477478, 0.7487487487487487, 0.7497497497497497, 0.7507507507507507, 0.7517517517517518, 0.7527527527527528, 0.7537537537537538, 0.7547547547547547, 0.7557557557557557, 0.7567567567567568, 0.7577577577577578, 0.7587587587587588, 0.7597597597597597, 0.7607607607607607, 0.7617617617617618, 0.7627627627627628, 0.7637637637637638, 0.7647647647647647, 0.7657657657657657, 0.7667667667667668, 0.7677677677677678, 0.7687687687687688, 0.7697697697697697, 0.7707707707707707, 0.7717717717717718, 0.7727727727727728, 0.7737737737737738, 0.7747747747747747, 0.7757757757757757, 0.7767767767767768, 0.7777777777777778, 0.7787787787787788, 0.7797797797797797, 0.7807807807807807, 0.7817817817817818, 0.7827827827827828, 0.7837837837837838, 0.7847847847847848, 0.7857857857857857, 0.7867867867867868, 0.7877877877877878, 0.7887887887887888, 0.7897897897897898, 0.7907907907907907, 0.7917917917917918, 0.7927927927927928, 0.7937937937937938, 0.7947947947947948, 0.7957957957957957, 0.7967967967967968, 0.7977977977977978, 0.7987987987987988, 0.7997997997997998, 0.8008008008008007, 0.8018018018018018, 0.8028028028028028, 0.8038038038038038, 0.8048048048048048, 0.8058058058058059, 0.8068068068068068, 0.8078078078078078, 0.8088088088088088, 0.8098098098098098, 0.8108108108108109, 0.8118118118118118, 0.8128128128128128, 0.8138138138138138, 0.8148148148148148, 0.8158158158158159, 0.8168168168168168, 0.8178178178178178, 0.8188188188188188, 0.8198198198198198, 0.8208208208208209, 0.8218218218218218, 0.8228228228228228, 0.8238238238238238, 0.8248248248248248, 0.8258258258258259, 0.8268268268268268, 0.8278278278278278, 0.8288288288288288, 0.8298298298298298, 0.8308308308308309, 0.8318318318318318, 0.8328328328328328, 0.8338338338338338, 0.8348348348348348, 0.8358358358358359, 0.8368368368368369, 0.8378378378378378, 0.8388388388388388, 0.8398398398398398, 0.8408408408408409, 0.8418418418418419, 0.8428428428428428, 0.8438438438438438, 0.8448448448448448, 0.8458458458458459, 0.8468468468468469, 0.8478478478478478, 0.8488488488488488, 0.8498498498498498, 0.8508508508508509, 0.8518518518518519, 0.8528528528528528, 0.8538538538538538, 0.8548548548548548, 0.8558558558558559, 0.8568568568568569, 0.8578578578578578, 0.8588588588588588, 0.8598598598598598, 0.8608608608608609, 0.8618618618618619, 0.8628628628628628, 0.8638638638638638, 0.8648648648648649, 0.8658658658658659, 0.8668668668668669, 0.8678678678678678, 0.8688688688688688, 0.8698698698698699, 0.8708708708708709, 0.8718718718718719, 0.8728728728728729, 0.8738738738738738, 0.8748748748748749, 0.8758758758758759, 0.8768768768768769, 0.8778778778778779, 0.8788788788788788, 0.8798798798798799, 0.8808808808808809, 0.8818818818818819, 0.8828828828828829, 0.8838838838838838, 0.8848848848848849, 0.8858858858858859, 0.8868868868868869, 0.8878878878878879, 0.8888888888888888, 0.8898898898898899, 0.8908908908908909, 0.8918918918918919, 0.8928928928928929, 0.8938938938938938, 0.8948948948948949, 0.8958958958958959, 0.8968968968968969, 0.8978978978978979, 0.8988988988988988, 0.8998998998998999, 0.9009009009009009, 0.9019019019019019, 0.9029029029029029, 0.9039039039039038, 0.9049049049049049, 0.9059059059059059, 0.9069069069069069, 0.9079079079079079, 0.9089089089089089, 0.9099099099099099, 0.9109109109109109, 0.9119119119119119, 0.9129129129129129, 0.9139139139139139, 0.914914914914915, 0.9159159159159159, 0.9169169169169169, 0.9179179179179179, 0.9189189189189189, 0.91991991991992, 0.9209209209209209, 0.9219219219219219, 0.9229229229229229, 0.9239239239239239, 0.924924924924925, 0.9259259259259259, 0.9269269269269269, 0.9279279279279279, 0.9289289289289289, 0.92992992992993, 0.9309309309309309, 0.9319319319319319, 0.9329329329329329, 0.933933933933934, 0.934934934934935, 0.9359359359359359, 0.9369369369369369, 0.9379379379379379, 0.938938938938939, 0.93993993993994, 0.9409409409409409, 0.9419419419419419, 0.9429429429429429, 0.943943943943944, 0.944944944944945, 0.9459459459459459, 0.9469469469469469, 0.9479479479479479, 0.948948948948949, 0.94994994994995, 0.950950950950951, 0.9519519519519519, 0.9529529529529529, 0.953953953953954, 0.954954954954955, 0.955955955955956, 0.9569569569569569, 0.9579579579579579, 0.958958958958959, 0.95995995995996, 0.960960960960961, 0.9619619619619619, 0.9629629629629629, 0.963963963963964, 0.964964964964965, 0.965965965965966, 0.9669669669669669, 0.9679679679679679, 0.968968968968969, 0.96996996996997, 0.970970970970971, 0.9719719719719719, 0.9729729729729729, 0.973973973973974, 0.974974974974975, 0.975975975975976, 0.9769769769769769, 0.9779779779779779, 0.978978978978979, 0.97997997997998, 0.980980980980981, 0.9819819819819819, 0.9829829829829829, 0.983983983983984, 0.984984984984985, 0.985985985985986, 0.986986986986987, 0.9879879879879879, 0.988988988988989, 0.98998998998999, 0.990990990990991, 0.991991991991992, 0.992992992992993, 0.993993993993994, 0.994994994994995, 0.995995995995996, 0.996996996996997, 0.997997997997998, 0.998998998998999, 1.0], "c": [1.0, 1.009009009009009, 1.018018018018018, 1.027027027027027, 1.0360360360360361, 1.045045045045045, 1.054054054054054, 1.063063063063063, 1.072072072072072, 1.0810810810810811, 1.09009009009009, 1.0990990990990992, 1.1081081081081081, 1.117117117117117, 1.1261261261261262, 1.135135135135135, 1.1441441441441442, 1.1531531531531531, 1.1621621621621623, 1.1711711711711712, 1.1801801801801801, 1.1891891891891893, 1.1981981981981982, 1.2072072072072073, 1.2162162162162162, 1.2252252252252251, 1.2342342342342343, 1.2432432432432432, 1.2522522522522523, 1.2612612612612613, 1.2702702702702702, 1.2792792792792793, 1.2882882882882882, 1.2972972972972974, 1.3063063063063063, 1.3153153153153152, 1.3243243243243243, 1.3333333333333333, 1.3423423423423424, 1.3513513513513513, 1.3603603603603602, 1.3693693693693694, 1.3783783783783785, 1.3873873873873874, 1.3963963963963963, 1.4054054054054055, 1.4144144144144144, 1.4234234234234235, 1.4324324324324325, 1.4414414414414414, 1.4504504504504505, 1.4594594594594594, 1.4684684684684686, 1.4774774774774775, 1.4864864864864864, 1.4954954954954955, 1.5045045045045045, 1.5135135135135136, 1.5225225225225225, 1.5315315315315314, 1.5405405405405406, 1.5495495495495497, 1.5585585585585586, 1.5675675675675675, 1.5765765765765765, 1.5855855855855856, 1.5945945945945947, 1.6036036036036037, 1.6126126126126126, 1.6216216216216215, 1.6306306306306306, 1.6396396396396398, 1.6486486486486487, 1.6576576576576576, 1.6666666666666665, 1.6756756756756757, 1.6846846846846848, 1.6936936936936937, 1.7027027027027026, 1.7117117117117115, 1.7207207207207207, 1.7297297297297298, 1.7387387387387387, 1.7477477477477477, 1.7567567567567568, 1.7657657657657657, 1.7747747747747749, 1.7837837837837838, 1.7927927927927927, 1.8018018018018018, 1.810810810810811, 1.8198198198198199, 1.8288288288288288, 1.8378378378378377, 1.8468468468468469, 1.855855855855856, 1.864864864864865, 1.8738738738738738, 1.8828828828828827, 1.8918918918918919, 1.900900900900901, 1.90990990990991, 1.9189189189189189, 1.9279279279279278, 1.936936936936937, 1.945945945945946, 1.954954954954955, 1.9639639639639639, 1.9729729729729728, 1.981981981981982, 1.990990990990991, 2.0, 2.009009009009009, 2.018018018018018, 2.027027027027027, 2.036036036036036, 2.045045045045045, 2.054054054054054, 2.063063063063063, 2.0720720720720722, 2.081081081081081, 2.09009009009009, 2.0990990990990994, 2.108108108108108, 2.1171171171171173, 2.126126126126126, 2.135135135135135, 2.1441441441441444, 2.153153153153153, 2.1621621621621623, 2.171171171171171, 2.18018018018018, 2.1891891891891895, 2.198198198198198, 2.2072072072072073, 2.2162162162162162, 2.225225225225225, 2.2342342342342345, 2.243243243243243, 2.2522522522522523, 2.2612612612612613, 2.27027027027027, 2.2792792792792795, 2.288288288288288, 2.2972972972972974, 2.3063063063063063, 2.315315315315315, 2.3243243243243246, 2.333333333333333, 2.3423423423423424, 2.3513513513513513, 2.3603603603603602, 2.3693693693693696, 2.378378378378378, 2.3873873873873874, 2.3963963963963963, 2.4054054054054053, 2.4144144144144146, 2.423423423423423, 2.4324324324324325, 2.4414414414414414, 2.4504504504504503, 2.4594594594594597, 2.468468468468468, 2.4774774774774775, 2.4864864864864864, 2.4954954954954953, 2.5045045045045047, 2.5135135135135136, 2.5225225225225225, 2.5315315315315314, 2.5405405405405403, 2.5495495495495497, 2.5585585585585586, 2.5675675675675675, 2.5765765765765765, 2.5855855855855854, 2.5945945945945947, 2.6036036036036037, 2.6126126126126126, 2.621621621621622, 2.6306306306306304, 2.6396396396396398, 2.6486486486486487, 2.6576576576576576, 2.666666666666667, 2.6756756756756754, 2.684684684684685, 2.6936936936936937, 2.7027027027027026, 2.711711711711712, 2.7207207207207205, 2.72972972972973, 2.7387387387387387, 2.7477477477477477, 2.756756756756757, 2.7657657657657655, 2.774774774774775, 2.7837837837837838, 2.7927927927927927, 2.801801801801802, 2.8108108108108105, 2.81981981981982, 2.828828828828829, 2.8378378378378377, 2.846846846846847, 2.8558558558558556, 2.864864864864865, 2.873873873873874, 2.8828828828828827, 2.891891891891892, 2.9009009009009006, 2.90990990990991, 2.918918918918919, 2.9279279279279278, 2.936936936936937, 2.9459459459459456, 2.954954954954955, 2.963963963963964, 2.972972972972973, 2.981981981981982, 2.990990990990991, 3.0, 3.009009009009009, 3.018018018018018, 3.027027027027027, 3.036036036036036, 3.045045045045045, 3.054054054054054, 3.063063063063063, 3.0720720720720722, 3.081081081081081, 3.09009009009009, 3.099099099099099, 3.108108108108108, 3.1171171171171173, 3.126126126126126, 3.135135135135135, 3.144144144144144, 3.153153153153153, 3.1621621621621623, 3.171171171171171, 3.18018018018018, 3.189189189189189, 3.1981981981981984, 3.2072072072072073, 3.2162162162162162, 3.225225225225225, 3.234234234234234, 3.2432432432432434, 3.2522522522522523, 3.2612612612612613, 3.27027027027027, 3.279279279279279, 3.2882882882882885, 3.2972972972972974, 3.3063063063063063, 3.315315315315315, 3.324324324324324, 3.3333333333333335, 3.3423423423423424, 3.3513513513513513, 3.3603603603603602, 3.369369369369369, 3.3783783783783785, 3.3873873873873874, 3.3963963963963963, 3.4054054054054053, 3.414414414414414, 3.4234234234234235, 3.4324324324324325, 3.4414414414414414, 3.4504504504504503, 3.4594594594594597, 3.4684684684684686, 3.4774774774774775, 3.4864864864864864, 3.4954954954954953, 3.5045045045045047, 3.5135135135135136, 3.5225225225225225, 3.5315315315315314, 3.5405405405405403, 3.5495495495495497, 3.5585585585585586, 3.5675675675675675, 3.5765765765765765, 3.5855855855855854, 3.5945945945945947, 3.6036036036036037, 3.6126126126126126, 3.6216216216216215, 3.6306306306306304, 3.6396396396396398, 3.6486486486486487, 3.6576576576576576, 3.6666666666666665, 3.6756756756756754, 3.684684684684685, 3.6936936936936937, 3.7027027027027026, 3.7117117117117115, 3.720720720720721, 3.72972972972973, 3.7387387387387387, 3.7477477477477477, 3.7567567567567566, 3.765765765765766, 3.774774774774775, 3.7837837837837838, 3.7927927927927927, 3.8018018018018016, 3.810810810810811, 3.81981981981982, 3.828828828828829, 3.8378378378378377, 3.8468468468468466, 3.855855855855856, 3.864864864864865, 3.873873873873874, 3.8828828828828827, 3.8918918918918917, 3.900900900900901, 3.90990990990991, 3.918918918918919, 3.9279279279279278, 3.9369369369369367, 3.945945945945946, 3.954954954954955, 3.963963963963964, 3.972972972972973, 3.981981981981982, 3.990990990990991, 4.0, 4.009009009009009, 4.018018018018018, 4.027027027027027, 4.036036036036036, 4.045045045045045, 4.054054054054054, 4.063063063063063, 4.072072072072072, 4.081081081081081, 4.09009009009009, 4.099099099099099, 4.108108108108108, 4.117117117117117, 4.126126126126126, 4.135135135135135, 4.1441441441441444, 4.153153153153153, 4.162162162162162, 4.171171171171171, 4.18018018018018, 4.1891891891891895, 4.198198198198198, 4.207207207207207, 4.216216216216216, 4.225225225225225, 4.2342342342342345, 4.243243243243244, 4.252252252252252, 4.261261261261261, 4.27027027027027, 4.2792792792792795, 4.288288288288289, 4.297297297297297, 4.306306306306306, 4.315315315315315, 4.324324324324325, 4.333333333333334, 4.342342342342342, 4.351351351351351, 4.36036036036036, 4.36936936936937, 4.378378378378379, 4.387387387387387, 4.396396396396396, 4.405405405405405, 4.414414414414415, 4.423423423423424, 4.4324324324324325, 4.441441441441441, 4.45045045045045, 4.45945945945946, 4.468468468468469, 4.4774774774774775, 4.486486486486486, 4.495495495495495, 4.504504504504505, 4.513513513513514, 4.5225225225225225, 4.531531531531531, 4.54054054054054, 4.54954954954955, 4.558558558558559, 4.5675675675675675, 4.576576576576576, 4.585585585585585, 4.594594594594595, 4.603603603603604, 4.612612612612613, 4.621621621621621, 4.63063063063063, 4.63963963963964, 4.648648648648649, 4.657657657657658, 4.666666666666666, 4.675675675675675, 4.684684684684685, 4.693693693693694, 4.702702702702703, 4.711711711711711, 4.7207207207207205, 4.72972972972973, 4.738738738738739, 4.747747747747748, 4.756756756756756, 4.7657657657657655, 4.774774774774775, 4.783783783783784, 4.792792792792793, 4.801801801801801, 4.8108108108108105, 4.81981981981982, 4.828828828828829, 4.837837837837838, 4.846846846846846, 4.8558558558558556, 4.864864864864865, 4.873873873873874, 4.882882882882883, 4.891891891891891, 4.900900900900901, 4.90990990990991, 4.918918918918919, 4.927927927927928, 4.936936936936936, 4.945945945945946, 4.954954954954955, 4.963963963963964, 4.972972972972973, 4.981981981981982, 4.990990990990991, 5.0, 5.009009009009009, 5.018018018018018, 5.027027027027027, 5.036036036036036, 5.045045045045045, 5.054054054054054, 5.063063063063063, 5.072072072072072, 5.081081081081081, 5.09009009009009, 5.099099099099099, 5.108108108108108, 5.117117117117117, 5.126126126126126, 5.135135135135135, 5.1441441441441444, 5.153153153153153, 5.162162162162162, 5.171171171171171, 5.18018018018018, 5.1891891891891895, 5.198198198198198, 5.207207207207207, 5.216216216216216, 5.225225225225225, 5.2342342342342345, 5.243243243243243, 5.252252252252252, 5.261261261261261, 5.27027027027027, 5.2792792792792795, 5.288288288288288, 5.297297297297297, 5.306306306306306, 5.315315315315315, 5.324324324324325, 5.333333333333333, 5.342342342342342, 5.351351351351351, 5.36036036036036, 5.36936936936937, 5.378378378378378, 5.387387387387387, 5.396396396396397, 5.405405405405405, 5.414414414414415, 5.423423423423423, 5.4324324324324325, 5.441441441441442, 5.45045045045045, 5.45945945945946, 5.468468468468468, 5.4774774774774775, 5.486486486486487, 5.495495495495495, 5.504504504504505, 5.513513513513513, 5.5225225225225225, 5.531531531531532, 5.54054054054054, 5.54954954954955, 5.558558558558558, 5.5675675675675675, 5.576576576576577, 5.585585585585585, 5.594594594594595, 5.603603603603603, 5.612612612612613, 5.621621621621622, 5.63063063063063, 5.63963963963964, 5.648648648648648, 5.657657657657658, 5.666666666666667, 5.675675675675675, 5.684684684684685, 5.693693693693693, 5.702702702702703, 5.711711711711712, 5.7207207207207205, 5.72972972972973, 5.738738738738738, 5.747747747747748, 5.756756756756757, 5.7657657657657655, 5.774774774774775, 5.783783783783783, 5.792792792792793, 5.801801801801802, 5.8108108108108105, 5.81981981981982, 5.828828828828828, 5.837837837837838, 5.846846846846847, 5.8558558558558556, 5.864864864864865, 5.873873873873874, 5.882882882882883, 5.891891891891892, 5.900900900900901, 5.90990990990991, 5.918918918918919, 5.927927927927928, 5.936936936936937, 5.945945945945946, 5.954954954954955, 5.963963963963964, 5.972972972972973, 5.981981981981982, 5.990990990990991, 6.0, 6.009009009009009, 6.018018018018018, 6.027027027027027, 6.036036036036036, 6.045045045045045, 6.054054054054054, 6.063063063063063, 6.072072072072072, 6.081081081081081, 6.09009009009009, 6.099099099099099, 6.108108108108108, 6.117117117117117, 6.126126126126126, 6.135135135135135, 6.1441441441441444, 6.153153153153153, 6.162162162162162, 6.171171171171171, 6.18018018018018, 6.1891891891891895, 6.198198198198198, 6.207207207207207, 6.216216216216216, 6.225225225225225, 6.2342342342342345, 6.243243243243243, 6.252252252252252, 6.261261261261261, 6.27027027027027, 6.2792792792792795, 6.288288288288288, 6.297297297297297, 6.306306306306306, 6.315315315315315, 6.324324324324325, 6.333333333333333, 6.342342342342342, 6.351351351351351, 6.36036036036036, 6.36936936936937, 6.378378378378378, 6.387387387387387, 6.396396396396397, 6.405405405405405, 6.414414414414415, 6.423423423423423, 6.4324324324324325, 6.441441441441442, 6.45045045045045, 6.45945945945946, 6.468468468468468, 6.4774774774774775, 6.486486486486487, 6.495495495495495, 6.504504504504505, 6.513513513513513, 6.5225225225225225, 6.531531531531532, 6.54054054054054, 6.54954954954955, 6.558558558558558, 6.5675675675675675, 6.576576576576577, 6.585585585585585, 6.594594594594595, 6.603603603603603, 6.612612612612613, 6.621621621621622, 6.63063063063063, 6.63963963963964, 6.648648648648648, 6.657657657657658, 6.666666666666667, 6.675675675675675, 6.684684684684685, 6.693693693693693, 6.702702702702703, 6.711711711711712, 6.7207207207207205, 6.72972972972973, 6.738738738738738, 6.747747747747748, 6.756756756756757, 6.7657657657657655, 6.774774774774775, 6.783783783783783, 6.792792792792793, 6.801801801801802, 6.8108108108108105, 6.81981981981982, 6.828828828828828, 6.837837837837838, 6.846846846846847, 6.8558558558558556, 6.864864864864865, 6.873873873873873, 6.882882882882883, 6.891891891891892, 6.900900900900901, 6.90990990990991, 6.918918918918919, 6.927927927927928, 6.936936936936937, 6.945945945945946, 6.954954954954955, 6.963963963963964, 6.972972972972973, 6.981981981981982, 6.990990990990991, 7.0, 7.009009009009009, 7.018018018018018, 7.027027027027027, 7.036036036036036, 7.045045045045045, 7.054054054054054, 7.063063063063063, 7.072072072072072, 7.081081081081081, 7.09009009009009, 7.099099099099099, 7.108108108108108, 7.117117117117117, 7.126126126126126, 7.135135135135135, 7.1441441441441444, 7.153153153153153, 7.162162162162162, 7.171171171171171, 7.18018018018018, 7.1891891891891895, 7.198198198198198, 7.207207207207207, 7.216216216216216, 7.225225225225225, 7.2342342342342345, 7.243243243243243, 7.252252252252252, 7.261261261261261, 7.27027027027027, 7.2792792792792795, 7.288288288288288, 7.297297297297297, 7.306306306306306, 7.315315315315315, 7.324324324324325, 7.333333333333333, 7.342342342342342, 7.351351351351351, 7.36036036036036, 7.36936936936937, 7.378378378378378, 7.387387387387387, 7.396396396396396, 7.405405405405405, 7.414414414414415, 7.423423423423423, 7.4324324324324325, 7.441441441441442, 7.45045045045045, 7.45945945945946, 7.468468468468468, 7.4774774774774775, 7.486486486486487, 7.495495495495495, 7.504504504504505, 7.513513513513513, 7.5225225225225225, 7.531531531531532, 7.54054054054054, 7.54954954954955, 7.558558558558558, 7.5675675675675675, 7.576576576576577, 7.585585585585585, 7.594594594594595, 7.603603603603603, 7.612612612612613, 7.621621621621622, 7.63063063063063, 7.63963963963964, 7.648648648648648, 7.657657657657658, 7.666666666666667, 7.675675675675675, 7.684684684684685, 7.693693693693693, 7.702702702702703, 7.711711711711712, 7.7207207207207205, 7.72972972972973, 7.738738738738738, 7.747747747747748, 7.756756756756757, 7.7657657657657655, 7.774774774774775, 7.783783783783783, 7.792792792792793, 7.801801801801802, 7.8108108108108105, 7.81981981981982, 7.828828828828828, 7.837837837837838, 7.846846846846847, 7.8558558558558556, 7.864864864864865, 7.873873873873873, 7.882882882882883, 7.891891891891892, 7.900900900900901, 7.90990990990991, 7.918918918918919, 7.927927927927928, 7.936936936936937, 7.945945945945946, 7.954954954954955, 7.963963963963964, 7.972972972972973, 7.981981981981982, 7.990990990990991, 8.0, 8.00900900900901, 8.018018018018019, 8.027027027027028, 8.036036036036036, 8.045045045045045, 8.054054054054054, 8.063063063063062, 8.072072072072071, 8.08108108108108, 8.09009009009009, 8.0990990990991, 8.108108108108109, 8.117117117117118, 8.126126126126126, 8.135135135135135, 8.144144144144144, 8.153153153153152, 8.162162162162161, 8.17117117117117, 8.18018018018018, 8.18918918918919, 8.198198198198199, 8.207207207207208, 8.216216216216216, 8.225225225225225, 8.234234234234235, 8.243243243243242, 8.252252252252251, 8.26126126126126, 8.27027027027027, 8.27927927927928, 8.288288288288289, 8.297297297297298, 8.306306306306306, 8.315315315315315, 8.324324324324325, 8.333333333333332, 8.342342342342342, 8.35135135135135, 8.36036036036036, 8.36936936936937, 8.378378378378379, 8.387387387387388, 8.396396396396396, 8.405405405405405, 8.414414414414415, 8.423423423423422, 8.432432432432432, 8.441441441441441, 8.45045045045045, 8.45945945945946, 8.468468468468469, 8.477477477477478, 8.486486486486488, 8.495495495495495, 8.504504504504505, 8.513513513513512, 8.522522522522522, 8.531531531531531, 8.54054054054054, 8.54954954954955, 8.558558558558559, 8.567567567567568, 8.576576576576578, 8.585585585585585, 8.594594594594595, 8.603603603603602, 8.612612612612612, 8.621621621621621, 8.63063063063063, 8.63963963963964, 8.64864864864865, 8.657657657657658, 8.666666666666668, 8.675675675675675, 8.684684684684685, 8.693693693693692, 8.702702702702702, 8.711711711711711, 8.72072072072072, 8.72972972972973, 8.73873873873874, 8.747747747747749, 8.756756756756758, 8.765765765765765, 8.774774774774775, 8.783783783783782, 8.792792792792792, 8.801801801801801, 8.81081081081081, 8.81981981981982, 8.82882882882883, 8.837837837837839, 8.846846846846848, 8.855855855855856, 8.864864864864865, 8.873873873873872, 8.882882882882882, 8.891891891891891, 8.9009009009009, 8.90990990990991, 8.91891891891892, 8.927927927927929, 8.936936936936938, 8.945945945945946, 8.954954954954955, 8.963963963963964, 8.972972972972972, 8.981981981981981, 8.99099099099099, 9.0, 9.00900900900901, 9.018018018018019, 9.027027027027026, 9.036036036036036, 9.045045045045045, 9.054054054054054, 9.063063063063064, 9.072072072072071, 9.08108108108108, 9.09009009009009, 9.0990990990991, 9.108108108108109, 9.117117117117116, 9.126126126126126, 9.135135135135135, 9.144144144144144, 9.153153153153154, 9.162162162162161, 9.17117117117117, 9.18018018018018, 9.18918918918919, 9.198198198198199, 9.207207207207206, 9.216216216216216, 9.225225225225225, 9.234234234234235, 9.243243243243244, 9.252252252252251, 9.26126126126126, 9.27027027027027, 9.27927927927928, 9.288288288288289, 9.297297297297296, 9.306306306306306, 9.315315315315315, 9.324324324324325, 9.333333333333334, 9.342342342342342, 9.35135135135135, 9.36036036036036, 9.36936936936937, 9.378378378378379, 9.387387387387387, 9.396396396396396, 9.405405405405405, 9.414414414414415, 9.423423423423424, 9.432432432432432, 9.441441441441441, 9.45045045045045, 9.45945945945946, 9.468468468468469, 9.477477477477477, 9.486486486486486, 9.495495495495495, 9.504504504504505, 9.513513513513514, 9.522522522522522, 9.531531531531531, 9.54054054054054, 9.54954954954955, 9.558558558558559, 9.567567567567567, 9.576576576576576, 9.585585585585585, 9.594594594594595, 9.603603603603604, 9.612612612612612, 9.621621621621621, 9.63063063063063, 9.63963963963964, 9.64864864864865, 9.657657657657657, 9.666666666666666, 9.675675675675675, 9.684684684684685, 9.693693693693694, 9.702702702702702, 9.711711711711711, 9.72072072072072, 9.72972972972973, 9.73873873873874, 9.747747747747749, 9.756756756756756, 9.765765765765765, 9.774774774774775, 9.783783783783784, 9.792792792792794, 9.801801801801801, 9.81081081081081, 9.81981981981982, 9.82882882882883, 9.837837837837839, 9.846846846846846, 9.855855855855856, 9.864864864864865, 9.873873873873874, 9.882882882882884, 9.891891891891891, 9.9009009009009, 9.90990990990991, 9.91891891891892, 9.927927927927929, 9.936936936936936, 9.945945945945946, 9.954954954954955, 9.963963963963964, 9.972972972972974, 9.981981981981981, 9.99099099099099, 10.0], "expected": [0.3665129205816643, 0.3680089786087605, 0.36947847665436845, 0.3709215455909474, 0.37233831607420875, 0.3737289185503323, 0.37509348326276337, 0.37643214025859206, 0.37774501939452815, 0.37903225034249044, 0.38029396259480824, 0.38153028546905626, 0.38274134811253113, 0.3839272795063735, 0.38508820846935665, 0.3862242636613399, 0.38733557358640563, 0.38842226659568346, 0.3894844708898729, 0.3905223145214755, 0.3915359253967413, 0.39252543127734085, 0.3934909597817712, 0.39443263838650167, 0.39535059442687465, 0.396244955097759, 0.39711584745397105, 0.3979633984104721, 0.398787734742342, 0.39958898308454627, 0.40036726993149635, 0.4011227216364124, 0.4018554644104977, 0.4025656243219291, 0.40325332729467084, 0.4039186991071188, 0.40456186539058037, 0.4051829516275997, 0.4057820831501262, 0.4063593851375462, 0.40691498261456943, 0.4074490004489836, 0.40796156334928413, 0.4084527958621779, 0.4089228223699751, 0.4093717670878659, 0.40979975406109387, 0.4102069071620288, 0.4105933500871411, 0.41095920635389005, 0.4113045992975217, 0.41162965206778707, 0.41193448762558715, 0.41221922873953964, 0.41248399798248264, 0.4127289177279137, 0.4129541101463686, 0.4131596972017481, 0.41334580064758814, 0.41351254202329024, 0.4136600426503025, 0.4137884236282632, 0.4138978058311105, 0.4139883099031561, 0.41406005625513315, 0.4141131650602164, 0.4141477562500225, 0.4141639495105888, 0.414161864278339, 0.41414161973603336, 0.4141033348087117, 0.41404712815962597, 0.41397311818617455, 0.4138814230158278, 0.41377216050206156, 0.41364544822028915, 0.41350140346380426, 0.41334014323972973, 0.413161784264978, 0.412966442962226, 0.4127542354559045, 0.4125252775682053, 0.41227968481511107, 0.41201757240244147, 0.41173905522192894, 0.4114442478473169, 0.4111332645304858, 0.41080621919760985, 0.41046322544534225, 0.4101043965370369, 0.40972984539899904, 0.40933968461677717, 0.4089340264314868, 0.4085129827361768, 0.4080766650722348, 0.40762518462583, 0.4071586522244039, 0.4066771783332006, 0.40618087305184386, 0.4056698461109576, 0.4051442068688369, 0.4046040643081612, 0.404049527032762, 0.4034807032644348, 0.40289770083980725, 0.40230062720725007, 0.401689589423849, 0.40106469415242213, 0.4004260476585942, 0.3997737558079238, 0.3991079240630829, 0.398428657481095, 0.3977360607106254, 0.397030237989328, 0.3963112931412498, 0.39557932957428854, 0.3948344502777116, 0.3940767578197289, 0.39330635434512373, 0.3925233415729415, 0.39172782079423824, 0.39091989286988243, 0.3900996582284197, 0.3892672168639942, 0.38842266833432715, 0.38756611175875405, 0.38669764581632315, 0.38581736874394706, 0.3849253783346181, 0.3840217719356779, 0.3831066464471473, 0.3821800983201146, 0.38124222355517934, 0.3802931177009562, 0.3793328758526368, 0.378361592650606, 0.377379362279119, 0.3763862784650325, 0.37538243447659514, 0.37436792312229067, 0.37334283674974245, 0.37230726724466867, 0.37126130602989565, 0.37020504406442695, 0.36913857184256477, 0.36806197939308793, 0.3669753562784829, 0.3658787915942282, 0.36477237396813295, 0.3636561915597277, 0.3625303320597063, 0.36139488268942266, 0.36024993020043483, 0.3590955608741038, 0.3579318605212411, 0.35675891448180597, 0.355576807624651, 0.35438562434732124, 0.3531854485758955, 0.35197636376488006, 0.35075845289714863, 0.34953179848392646, 0.348296482564826, 0.34705258670792266, 0.3458001920098802, 0.34453937909611654, 0.343270228121018, 0.34199281876819354, 0.3407072302507734, 0.3394135413117493, 0.33811183022435737, 0.3368021747925007, 0.3354846523512142, 0.33415933976716794, 0.3328263134392092, 0.3314856492989474, 0.33013742281137065, 0.328781708975505, 0.3274185823251094, 0.32604811692940544, 0.3246703863938448, 0.32328546386091056, 0.3218934220109539, 0.32049433306306374, 0.31908826877597124, 0.3176753004489853, 0.3162554989229615, 0.3148289345813037, 0.31339567735099133, 0.3119557967036456, 0.3105093616566178, 0.30905644077411054, 0.30759710216832753, 0.30613141350065, 0.30465944198284245, 0.3031812543782835, 0.30169691700322426, 0.30020649572807223, 0.2987100559787004, 0.2972076627377803, 0.2956993805461404, 0.2941852735041475, 0.2926654052731108, 0.29113983907670793, 0.2896086377024353, 0.28807186350307656, 0.28652957839819454, 0.2849818438756416, 0.28342872099309147, 0.2818702703795889, 0.28030655223711953, 0.2787376263421952, 0.2771635520474616, 0.275584388283319, 0.27400019355956134, 0.27241102596703193, 0.270816943179294, 0.2692180024543186, 0.26761426063618277, 0.2660057741567889, 0.26439259903759144, 0.26277479089134026, 0.2611524049238381, 0.25952549593570673, 0.2578941183241697, 0.25625832608484267, 0.2546181728135382, 0.25297371170807953, 0.2513249955701245, 0.24967207680700176, 0.24801500743355365, 0.24635383907398922, 0.2446886229637479, 0.24301940995136884, 0.24134625050037, 0.23966919469113307, 0.23798829222279771, 0.23630359241516202, 0.23461514421058824, 0.23292299617591655, 0.23122719650438145, 0.22952779301753976, 0.2278248331671952, 0.22611836403733515, 0.22440843234606841, 0.2226950844475667, 0.22097836633401094, 0.2192583236375413, 0.21753500163221068, 0.215808445235938, 0.21407869901246815, 0.21234580717333185, 0.21060981357980735, 0.20887076174488536, 0.20712869483523363, 0.20538365567316358, 0.20363568673859755, 0.2018848301710371, 0.2001311277715297, 0.19837462100463937, 0.19661535100041258, 0.19485335855634758, 0.19308868413935912, 0.19132136788774634, 0.18955144961315776, 0.18777896880255276, 0.1860039646201664, 0.18422647590946634, 0.18244654119511336, 0.18066419868491707, 0.1788794862717877, 0.17709244153568768, 0.1753031017455806, 0.1735115038613741, 0.17171768453586406, 0.16992168011667116, 0.1681235266481756, 0.166323259873449, 0.1645209152361814, 0.16271652788260352, 0.16091013266340662, 0.1591017641356556, 0.15729145656469923, 0.15547924392607682, 0.15366515990741603, 0.1518492379103296, 0.15003151105230503, 0.14821201216858912, 0.1463907738140684, 0.14456782826514222, 0.14274320752159014, 0.1409169433084373, 0.13908906707780633, 0.13725961001077303, 0.1354286030192066, 0.13359607674760995, 0.13176206157495113, 0.12992658761648754, 0.12808968472558688, 0.12625138249553716, 0.1244117102613528, 0.12257069710157364, 0.12072837184005646, 0.11888476304775893, 0.11703989904451828, 0.1151938079008198, 0.11334651743956217, 0.111498055237812, 0.10964844862855246, 0.10779772470242344, 0.10594591030945755, 0.1040930320608024, 0.10223911633044147, 0.10038418925690411, 0.09852827674496605, 0.09667140446734818, 0.09481359786640005, 0.0929548821557807, 0.09109528232212943, 0.08923482312672858, 0.08737352910715947, 0.08551142457894834, 0.08364853363720504, 0.08178488015825497, 0.07992048780125986, 0.07805538000983385, 0.0761895800136464, 0.07432311083002358, 0.07245599526553385, 0.07058825591757201, 0.06871991517592946, 0.06685099522435839, 0.06498151804212947, 0.06311150540557658, 0.06124097888963686, 0.059369959869382066, 0.05749846952153719, 0.055626528825997265, 0.053754158567329804, 0.05188137933627167, 0.05000821153121778, 0.0481346753596985, 0.046260790839851254, 0.044386577801883244, 0.042512055889523524, 0.04063724456146936, 0.03876216309282116, 0.03688683057651203, 0.03501126592472576, 0.03313548787030798, 0.03125951496816921, 0.029383365596676467, 0.027507057959040827, 0.025630610084693403, 0.023754039830651257, 0.021877364882880397, 0.02000060275764462, 0.01812377080284926, 0.016246886199374526, 0.014369965962401737, 0.012493026942731132, 0.010616085828088876, 0.008739159144429746, 0.006862263257227922, 0.004985414372760803, 0.003108628539384634, 0.001231921648801153, -0.0006446905626832203, -0.0025211925129078735, -0.004397568772614653, -0.006273804064214689, -0.008149883260563763, -0.010025791383742334, -0.01190151360384873, -0.013777035237796826, -0.015652341748123265, -0.017527418741802366, -0.0194022519690696, -0.021276827322253094, -0.02315113083461239, -0.02502514867918561, -0.02689886716764505, -0.02877227274916004, -0.030645352009268566, -0.03251809166875477, -0.03439047858253816, -0.036262499738565136, -0.03813414225671347, -0.040005393387702017, -0.041876240512008285, -0.04374667113879325, -0.04561667290483642, -0.047486233573474146, -0.049355341033550035, -0.05122398329836985, -0.0530921485046649, -0.054959824911563114, -0.05682700089956746, -0.05869366496954188, -0.06055980574170405, -0.06242541195462556, -0.06429047246424055, -0.06615497624286022, -0.06801891237819546, -0.0698822700723853, -0.07174503864103528, -0.07360720751226003, -0.07546876622573395, -0.07732970443174984, -0.07919001189028377, -0.08104967847006651, -0.0829086941476625, -0.0847670490065559, -0.0866247332362432, -0.08848173713133185, -0.0903380510906481, -0.0921936656163478, -0.09404857131303862, -0.09590275888690433, -0.0977562191448385, -0.09960894299358454, -0.10146092143888179, -0.10331214558461747, -0.10516260663198668, -0.10701229587865758, -0.10886120471794432, -0.11070932463798382, -0.1125566472209217, -0.11440316414210397, -0.11624886716927268, -0.1180937481617703, -0.11993779906974938, -0.12178101193338926, -0.12362337888211622, -0.12546489213383288, -0.12730554399415217, -0.1291453268556368, -0.13098423319704572, -0.13282225558258573, -0.13465938666116986, -0.13649561916568026, -0.13833094591223818, -0.1401653597994792, -0.1419988538078334, -0.14383142099881352, -0.14566305451430558, -0.1474937475758676, -0.14932349348403326, -0.15115228561762062, -0.15298011743304696, -0.15480698246364746, -0.15663287431900313, -0.15845778668426905, -0.16028171331951213, -0.1621046480590521, -0.16392658481080874, -0.16574751755565278, -0.16756744034676452, -0.16938634730899527, -0.17120423263823517, -0.17302109060078685, -0.17483691553274106, -0.1766517018393614, -0.17846544399447145, -0.18027813653984687, -0.18208977408461396, -0.18390035130465213, -0.18570986294200065, -0.18751830380427123, -0.18932566876406537, -0.19113195275839642, -0.19293715078811424, -0.19474125791733873, -0.19654426927289478, -0.19834618004375232, -0.20014698548047125, -0.2019466808946522, -0.2037452616583901, -0.20554272320373193, -0.2073390610221407, -0.20913427066396315, -0.21092834773790087, -0.21272128791048742, -0.21451308690556728, -0.21630374050378348, -0.2180932445420629, -0.21988159491311352, -0.22166878756491953, -0.22345481850024318, -0.22523968377613204, -0.22702337950342694, -0.22880590184627772, -0.23058724702166064, -0.23236741129889973, -0.2341463909991943, -0.23592418249514704, -0.23770078221030025, -0.23947618661867104, -0.24125039224429534, -0.2430233956607719, -0.24479519349081194, -0.24656578240579255, -0.24833515912531307, -0.2501033204167558, -0.25187026309485017, -0.2536359840212406, -0.25540048010405764, -0.2571637482974942, -0.25892578560138224, -0.2606865890607772, -0.2624461557655423, -0.2642044828499373, -0.26596156749221306, -0.26771740691420587, -0.2694719983809376, -0.27122533920021924, -0.2729774267222552, -0.27472825833925585, -0.27647783148504723, -0.2782261436346896, -0.2799731923040958, -0.28171897504965376, -0.28346348946785216, -0.28520673319491074, -0.28694870390641125, -0.28868939931693266, -0.29042881717968955, -0.29216695528617487, -0.2939038114658027, -0.29563938358555575, -0.2973736695496386, -0.29910666729912705, -0.30083837481162745, -0.3025687901009352, -0.3042979112166968, -0.3060257362440764, -0.307752263303421, -0.30947749054993406, -0.3112014161733473, -0.31292403839759825, -0.3146453554805093, -0.31636536571346835, -0.3180840674211157, -0.31980145896103007, -0.3215175387234177, -0.3232323051308081, -0.32494575663774516, -0.32665789173048926, -0.32836870892671494, -0.3300782067752155, -0.3317863838556073, -0.3334932387780398, -0.335198770182905, -0.3369029767405503, -0.3386058571509951, -0.34030741014364857, -0.34200763447702964, -0.34370652893849085, -0.3454040923439427, -0.34710032353758274, -0.3487952213916231, -0.3504887848060256, -0.3521810127082348, -0.35387190405291513, -0.3555614578216907, -0.3572496730228853, -0.3589365486912689, -0.360622083887801, -0.3623062776993783, -0.3639891292385885, -0.36567063764345853, -0.3673508020772126, -0.36902962172802595, -0.37070709580878664, -0.37238322355685394, -0.3740580042338222, -0.37573143712528684, -0.3774035215406097, -0.37907425681268925, -0.3807436422977318, -0.3824116773750238, -0.3840783614467071, -0.38574369393755653, -0.38740767429475836, -0.3890703019876908, -0.39073157650770796, -0.3923914973679226, -0.39405006410299465, -0.39570727626891844, -0.3973631334428133, -0.3990176352227151, -0.4006707812273706, -0.40232257109603353, -0.40397300448826035, -0.4056220810837118, -0.4072698005819516, -0.40891616270225006, -0.4105611671833899, -0.41220481378346935, -0.413847102279713, -0.41548803246827815, -0.41712760416406935, -0.4187658172005483, -0.42040267142955007, -0.4220381667210987, -0.4236723029632242, -0.4253050800617821, -0.4269364979402749, -0.42856655653967435, -0.430195255818244, -0.43182259575136595, -0.43344857633136896, -0.435073197567354, -0.43669645948502683, -0.4383183621265288, -0.43993890555026827, -0.44155808983075867, -0.44317591505845033, -0.44479238133957094, -0.4464074887959619, -0.44802123756492107, -0.44963362779904203, -0.45124465966605803, -0.4528543333486874, -0.45446264904447675, -0.45606960696565096, -0.45767520733895883, -0.4592794504055251, -0.4608823364207008, -0.462483865653915, -0.4640840383885287, -0.46568285492169065, -0.4672803155641929, -0.4688764206403283, -0.4704711704877497, -0.4720645654573294, -0.4736566059130207, -0.47524729223172074, -0.47683662480313405, -0.478424604029636, -0.48001123032614157, -0.48159650411997007, -0.4831804258507154, -0.48476299597011424, -0.48634421494191804, -0.48792408324176356, -0.4895026013570481, -0.4910797697868006, -0.4926555890415594, -0.4942300596432476, -0.49580318212505026, -0.49737495703129386, -0.4989453849173245, -0.5005144663493903, -0.5020822019045226, -0.5036485921704164, -0.5052136377453184, -0.506777339237908, -0.5083396972671868, -0.5099007124623609, -0.5114603854627334, -0.5130187169175905, -0.5145757074860919, -0.5161313578371629, -0.5176856686493837, -0.5192386406108845, -0.5207902744192384, -0.522340570781356, -0.5238895304133815, -0.5254371540405876, -0.5269834423972749, -0.5285283962266699, -0.5300720162808239, -0.5316143033205122, -0.5331552581151371, -0.5346948814426283, -0.5362331740893471, -0.5377701368499885, -0.5393057705274868, -0.5408400759329205, -0.5423730538854193, -0.5439047052120703, -0.5454350307478261, -0.5469640313354142, -0.5484917078252453, -0.5500180610753246, -0.5515430919511631, -0.5530668013256893, -0.5545891900791603, -0.5561102590990787, -0.5576300092801036, -0.5591484415239681, -0.5606655567393937, -0.5621813558420068, -0.5636958397542571, -0.5652090094053344, -0.5667208657310886, -0.5682314096739486, -0.5697406421828424, -0.5712485642131182, -0.5727551767264659, -0.5742604806908408, -0.5757644770803848, -0.5772671668753503, -0.5787685510620271, -0.580268630632664, -0.5817674065853973, -0.5832648799241762, -0.5847610516586902, -0.5862559228042964, -0.5877494943819483, -0.5892417674181255, -0.5907327429447625, -0.5922224219991791, -0.5937108056240125, -0.595197894867147, -0.5966836907816491, -0.5981681944256965, -0.5996514068625153, -0.6011333291603117, -0.6026139623922075, -0.6040933076361757, -0.6055713659749755, -0.6070481384960886, -0.6085236262916579, -0.609997830458423, -0.6114707520976594, -0.612942392315117, -0.614412752220959, -0.6158818329297033, -0.6173496355601596, -0.6188161612353741, -0.6202814110825688, -0.6217453862330827, -0.6232080878223164, -0.6246695169896743, -0.6261296748785073, -0.6275885626360579, -0.6290461814134038, -0.6305025323654048, -0.6319576166506455, -0.6334114354313843, -0.6348639898734985, -0.6363152811464305, -0.6377653104231376, -0.6392140788800384, -0.6406615876969616, -0.6421078380570946, -0.6435528311469338, -0.6449965681562346, -0.6464390502779606, -0.6478802787082347, -0.6493202546462921, -0.6507589792944293, -0.6521964538579581, -0.6536326795451585, -0.6550676575672296, -0.6565013891382455, -0.6579338754751076, -0.6593651177974997, -0.6607951173278427, -0.6622238752912495, -0.6636513929154803, -0.6650776714308995, -0.666502712070432, -0.667926516069518, -0.6693490846660741, -0.6707704191004467, -0.6721905206153725, -0.6736093904559374, -0.6750270298695323, -0.6764434401058157, -0.6778586224166712, -0.6792725780561676, -0.6806853082805198, -0.6820968143480496, -0.6835070975191458, -0.6849161590562262, -0.6863240002236989, -0.687730622287926, -0.6891360265171833, -0.6905402141816261, -0.6919431865532497, -0.6933449449058549, -0.6947454905150109, -0.6961448246580201, -0.697542948613882, -0.6989398636632576, -0.7003355710884365, -0.7017300721733005, -0.7031233682032904, -0.7045154604653725, -0.7059063502480033, -0.7072960388410989, -0.7086845275360001, -0.7100718176254409, -0.7114579104035158, -0.7128428071656476, -0.7142265092085567, -0.7156090178302289, -0.7169903343298847, -0.7183704600079477, -0.7197493961660164, -0.7211271441068318, -0.7225037051342476, -0.7238790805532025, -0.7252532716696892, -0.7266262797907255, -0.7279981062243264, -0.7293687522794747, -0.7307382192660941, -0.7321065084950188, -0.7334736212779697, -0.7348395589275225, -0.7362043227570843, -0.7375679140808649, -0.73893033421385, -0.7402915844717766, -0.7416516661711038, -0.7430105806289914, -0.7443683291632698, -0.7457249130924168, -0.7470803337355333, -0.7484345924123174, -0.7497876904430386, -0.7511396291485161, -0.7524904098500923, -0.7538400338696107, -0.7551885025293908, -0.7565358171522057, -0.7578819790612582, -0.759226989580158, -0.7605708500328991, -0.7619135617438377, -0.7632551260376694, -0.7645955442394066, -0.7659348176743574, -0.7672729476681035, -0.7686099355464803, -0.7699457826355522, -0.7712804902615964, -0.7726140597510771, -0.7739464924306282, -0.7752777896270329, -0.7766079526672014, -0.7779369828781524, -0.7792648815869934, -0.7805916501209005, -0.7819172898070992, -0.7832418019728459, -0.7845651879454075, -0.7858874490520436, -0.7872085866199879, -0.7885286019764292, -0.7898474964484941, -0.7911652713632279, -0.7924819280475763, -0.7937974678283702, -0.7951118920323054, -0.7964252019859266, -0.7977373990156105, -0.7990484844475477, -0.800358459607727, -0.8016673258219179, -0.8029750844156552, -0.8042817367142214, -0.8055872840426317, -0.8068917277256167, -0.8081950690876085, -0.8094973094527238, -0.8107984501447478, -0.8120984924871208, -0.8133974378029216, -0.8146952874148526, -0.8159920426452256, -0.8172877048159467, -0.8185822752485012, -0.8198757552639414, -0.8211681461828692, -0.8224594493254249, -0.8237496660112712, -0.8250387975595807, -0.8263268452890213, -0.8276138105177439, -0.8288996945633686, -0.8301844987429701, -0.8314682243730671, -0.8327508727696074, -0.834032445247956, -0.8353129431228822, -0.8365923677085473, -0.8378707203184921, -0.8391480022656248, -0.8404242148622083, -0.8416993594198494, -0.8429734372494851, -0.8442464496613733, -0.8455183979650794, -0.8467892834694647, -0.8480591074826768, -0.8493278713121366, -0.8505955762645281, -0.8518622236457875, -0.8531278147610917, -0.8543923509148487, -0.8556558334106851, -0.8569182635514375, -0.8581796426391423, -0.8594399719750229, -0.8606992528594827, -0.8619574865920924, -0.8632146744715818, -0.86447081779583, -0.8657259178618548, -0.8669799759658037, -0.8682329934029435, -0.8694849714676527, -0.8707359114534113, -0.871985814652791, -0.8732346823574471, -0.874482515858109, -0.875729316444572, -0.876975085405688, -0.878219824029357, -0.8794635336025192, -0.880706215411145, -0.8819478707402282, -0.8831885008737778, -0.8844281070948086, -0.8856666906853339, -0.8869042529263582, -0.8881407950978675, -0.8893763184788247, -0.8906108243471582, -0.8918443139797569, -0.8930767886524618, -0.8943082496400588, -0.895538698216272, -0.8967681356537549, -0.8979965632240849, -0.8992239821977555, -0.9004503938441694, -0.901675799431632, -0.9029002002273444, -0.9041235974973966, -0.9053459925067607, -0.906567386519285, -0.9077877807976876, -0.9090071766035498, -0.910225575197308, -0.9114429778382513, -0.9126593857845124, -0.913874800293063, -0.9150892226197068, -0.9163026540190744, -0.9175150957446168, -0.9187265490486007, -0.9199370151821028, -0.9211464953950023, -0.9223549909359777, -0.9235625030525003, -0.924769032990829, -0.9259745819960054, -0.9271791513118471, -0.9283827421809455, -0.929585355844657, -0.9307869935431009, -0.9319876565151537, -0.9331873459984431, -0.9343860632293449, -0.9355838094429774, -0.9367805858731961, -0.9379763937525908, -0.9391712343124792, -0.9403651087829042, -0.9415580183926273, -0.9427499643691272, -0.943940947938592, -0.9451309703259188, -0.9463200327547061, -0.9475081364472522, -0.9486952826245499, -0.9498814725062821, -0.9510667073108197, -0.9522509882552157, -0.9534343165552027, -0.9546166934251894, -0.9557981200782553, -0.9569785977261489, -0.9581581275792829, -0.9593367108467313, -0.9605143487362257, -0.9616910424541518, -0.9628667932055466, -0.9640416021940944, -0.965215470622124, -0.9663883996906056, -0.967560390599147, -0.9687314445459912, -0.9699015627280139]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/runner.py new file mode 100644 index 000000000000..8e1ebba927ec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/runner.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python +# +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Generate fixtures.""" + +import os +import json +import numpy as np +from scipy.stats import bradford + +# Get the file path: +FILE = os.path.realpath(__file__) + +# Extract the directory in which this file resides: +DIR = os.path.dirname(FILE) + + +def gen(x, c, name): + """Generate fixture data and write to file. + + # Arguments + + * `x`: domain + * `c`: shape parameter + * `name::str`: output filename + + # Examples + + ``` python + python> x = linspace(0, 1, 2001) + python> c = linspace(0.1, 1000, 2001) + python> gen(x, c, './data.json') + ``` + """ + y = bradford.logpdf(x, c) + + # Store data to be written to file as a dictionary: + data = { + "x": x.tolist(), + "c": c.tolist(), + "expected": y.tolist() + } + + # Based on the script directory, create an output filepath: + filepath = os.path.join(DIR, name) + + # Write the data to the output filepath as JSON: + with open(filepath, "w", encoding="utf-8") as outfile: + json.dump(data, outfile) + + +def main(): + """Generate fixture data.""" + x = np.linspace(0, 1, 1000) + + # Small shape parameter: + c = np.linspace(0.1, 1, 1000) + gen(x, c, "small_c_log.json") + + # Medium shape parameter: + c = np.linspace(1, 10, 1000) + gen(x, c, "medium_c_log.json") + + # Large shape parameter: + c = np.linspace(10, 100, 1000) + gen(x, c, "large_c_log.json") + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/small_c_log.json b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/small_c_log.json new file mode 100644 index 000000000000..315622776a31 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/fixtures/python/small_c_log.json @@ -0,0 +1 @@ +{"x": [0.0, 0.001001001001001001, 0.002002002002002002, 0.003003003003003003, 0.004004004004004004, 0.005005005005005005, 0.006006006006006006, 0.007007007007007007, 0.008008008008008008, 0.009009009009009009, 0.01001001001001001, 0.011011011011011011, 0.012012012012012012, 0.013013013013013013, 0.014014014014014014, 0.015015015015015015, 0.016016016016016016, 0.017017017017017015, 0.018018018018018018, 0.01901901901901902, 0.02002002002002002, 0.02102102102102102, 0.022022022022022022, 0.023023023023023025, 0.024024024024024024, 0.025025025025025023, 0.026026026026026026, 0.02702702702702703, 0.028028028028028028, 0.029029029029029027, 0.03003003003003003, 0.031031031031031032, 0.03203203203203203, 0.03303303303303303, 0.03403403403403403, 0.035035035035035036, 0.036036036036036036, 0.037037037037037035, 0.03803803803803804, 0.03903903903903904, 0.04004004004004004, 0.04104104104104104, 0.04204204204204204, 0.043043043043043044, 0.044044044044044044, 0.04504504504504504, 0.04604604604604605, 0.04704704704704705, 0.04804804804804805, 0.04904904904904905, 0.050050050050050046, 0.05105105105105105, 0.05205205205205205, 0.05305305305305305, 0.05405405405405406, 0.055055055055055056, 0.056056056056056056, 0.057057057057057055, 0.058058058058058054, 0.05905905905905906, 0.06006006006006006, 0.06106106106106106, 0.062062062062062065, 0.06306306306306306, 0.06406406406406406, 0.06506506506506507, 0.06606606606606606, 0.06706706706706707, 0.06806806806806806, 0.06906906906906907, 0.07007007007007007, 0.07107107107107107, 0.07207207207207207, 0.07307307307307308, 0.07407407407407407, 0.07507507507507508, 0.07607607607607608, 0.07707707707707707, 0.07807807807807808, 0.07907907907907907, 0.08008008008008008, 0.08108108108108109, 0.08208208208208208, 0.08308308308308308, 0.08408408408408408, 0.08508508508508508, 0.08608608608608609, 0.08708708708708708, 0.08808808808808809, 0.0890890890890891, 0.09009009009009009, 0.09109109109109109, 0.0920920920920921, 0.09309309309309309, 0.0940940940940941, 0.09509509509509509, 0.0960960960960961, 0.0970970970970971, 0.0980980980980981, 0.0990990990990991, 0.10010010010010009, 0.1011011011011011, 0.1021021021021021, 0.1031031031031031, 0.1041041041041041, 0.10510510510510511, 0.1061061061061061, 0.10710710710710711, 0.10810810810810811, 0.1091091091091091, 0.11011011011011011, 0.1111111111111111, 0.11211211211211211, 0.11311311311311312, 0.11411411411411411, 0.11511511511511512, 0.11611611611611611, 0.11711711711711711, 0.11811811811811812, 0.11911911911911911, 0.12012012012012012, 0.12112112112112113, 0.12212212212212212, 0.12312312312312312, 0.12412412412412413, 0.12512512512512514, 0.12612612612612611, 0.12712712712712712, 0.12812812812812813, 0.12912912912912913, 0.13013013013013014, 0.13113113113113112, 0.13213213213213212, 0.13313313313313313, 0.13413413413413414, 0.13513513513513514, 0.13613613613613612, 0.13713713713713713, 0.13813813813813813, 0.13913913913913914, 0.14014014014014015, 0.14114114114114115, 0.14214214214214213, 0.14314314314314314, 0.14414414414414414, 0.14514514514514515, 0.14614614614614616, 0.14714714714714713, 0.14814814814814814, 0.14914914914914915, 0.15015015015015015, 0.15115115115115116, 0.15215215215215216, 0.15315315315315314, 0.15415415415415415, 0.15515515515515516, 0.15615615615615616, 0.15715715715715717, 0.15815815815815815, 0.15915915915915915, 0.16016016016016016, 0.16116116116116116, 0.16216216216216217, 0.16316316316316315, 0.16416416416416416, 0.16516516516516516, 0.16616616616616617, 0.16716716716716717, 0.16816816816816815, 0.16916916916916916, 0.17017017017017017, 0.17117117117117117, 0.17217217217217218, 0.17317317317317318, 0.17417417417417416, 0.17517517517517517, 0.17617617617617617, 0.17717717717717718, 0.1781781781781782, 0.17917917917917917, 0.18018018018018017, 0.18118118118118118, 0.18218218218218218, 0.1831831831831832, 0.1841841841841842, 0.18518518518518517, 0.18618618618618618, 0.1871871871871872, 0.1881881881881882, 0.1891891891891892, 0.19019019019019018, 0.19119119119119118, 0.1921921921921922, 0.1931931931931932, 0.1941941941941942, 0.19519519519519518, 0.1961961961961962, 0.1971971971971972, 0.1981981981981982, 0.1991991991991992, 0.20020020020020018, 0.2012012012012012, 0.2022022022022022, 0.2032032032032032, 0.2042042042042042, 0.20520520520520522, 0.2062062062062062, 0.2072072072072072, 0.2082082082082082, 0.2092092092092092, 0.21021021021021022, 0.2112112112112112, 0.2122122122122122, 0.2132132132132132, 0.21421421421421422, 0.21521521521521522, 0.21621621621621623, 0.2172172172172172, 0.2182182182182182, 0.21921921921921922, 0.22022022022022023, 0.22122122122122123, 0.2222222222222222, 0.22322322322322322, 0.22422422422422422, 0.22522522522522523, 0.22622622622622623, 0.2272272272272272, 0.22822822822822822, 0.22922922922922923, 0.23023023023023023, 0.23123123123123124, 0.23223223223223222, 0.23323323323323322, 0.23423423423423423, 0.23523523523523523, 0.23623623623623624, 0.23723723723723725, 0.23823823823823823, 0.23923923923923923, 0.24024024024024024, 0.24124124124124124, 0.24224224224224225, 0.24324324324324323, 0.24424424424424424, 0.24524524524524524, 0.24624624624624625, 0.24724724724724725, 0.24824824824824826, 0.24924924924924924, 0.2502502502502503, 0.25125125125125125, 0.25225225225225223, 0.25325325325325326, 0.25425425425425424, 0.2552552552552553, 0.25625625625625625, 0.25725725725725723, 0.25825825825825827, 0.25925925925925924, 0.2602602602602603, 0.26126126126126126, 0.26226226226226224, 0.26326326326326327, 0.26426426426426425, 0.2652652652652653, 0.26626626626626626, 0.26726726726726724, 0.2682682682682683, 0.26926926926926925, 0.2702702702702703, 0.27127127127127126, 0.27227227227227224, 0.2732732732732733, 0.27427427427427425, 0.2752752752752753, 0.27627627627627627, 0.2772772772772773, 0.2782782782782783, 0.27927927927927926, 0.2802802802802803, 0.28128128128128127, 0.2822822822822823, 0.2832832832832833, 0.28428428428428426, 0.2852852852852853, 0.2862862862862863, 0.2872872872872873, 0.2882882882882883, 0.28928928928928926, 0.2902902902902903, 0.2912912912912913, 0.2922922922922923, 0.2932932932932933, 0.29429429429429427, 0.2952952952952953, 0.2962962962962963, 0.2972972972972973, 0.2982982982982983, 0.29929929929929927, 0.3003003003003003, 0.3013013013013013, 0.3023023023023023, 0.3033033033033033, 0.30430430430430433, 0.3053053053053053, 0.3063063063063063, 0.3073073073073073, 0.3083083083083083, 0.30930930930930933, 0.3103103103103103, 0.3113113113113113, 0.3123123123123123, 0.3133133133133133, 0.31431431431431434, 0.3153153153153153, 0.3163163163163163, 0.3173173173173173, 0.3183183183183183, 0.31931931931931934, 0.3203203203203203, 0.3213213213213213, 0.32232232232232233, 0.3233233233233233, 0.32432432432432434, 0.3253253253253253, 0.3263263263263263, 0.32732732732732733, 0.3283283283283283, 0.32932932932932935, 0.3303303303303303, 0.3313313313313313, 0.33233233233233234, 0.3333333333333333, 0.33433433433433435, 0.3353353353353353, 0.3363363363363363, 0.33733733733733734, 0.3383383383383383, 0.33933933933933935, 0.34034034034034033, 0.34134134134134136, 0.34234234234234234, 0.3433433433433433, 0.34434434434434436, 0.34534534534534533, 0.34634634634634637, 0.34734734734734735, 0.3483483483483483, 0.34934934934934936, 0.35035035035035034, 0.35135135135135137, 0.35235235235235235, 0.3533533533533533, 0.35435435435435436, 0.35535535535535534, 0.3563563563563564, 0.35735735735735735, 0.35835835835835833, 0.35935935935935936, 0.36036036036036034, 0.3613613613613614, 0.36236236236236236, 0.36336336336336333, 0.36436436436436437, 0.36536536536536535, 0.3663663663663664, 0.36736736736736736, 0.3683683683683684, 0.36936936936936937, 0.37037037037037035, 0.3713713713713714, 0.37237237237237236, 0.3733733733733734, 0.3743743743743744, 0.37537537537537535, 0.3763763763763764, 0.37737737737737737, 0.3783783783783784, 0.3793793793793794, 0.38038038038038036, 0.3813813813813814, 0.38238238238238237, 0.3833833833833834, 0.3843843843843844, 0.38538538538538536, 0.3863863863863864, 0.38738738738738737, 0.3883883883883884, 0.3893893893893894, 0.39039039039039036, 0.3913913913913914, 0.3923923923923924, 0.3933933933933934, 0.3943943943943944, 0.39539539539539537, 0.3963963963963964, 0.3973973973973974, 0.3983983983983984, 0.3993993993993994, 0.40040040040040037, 0.4014014014014014, 0.4024024024024024, 0.4034034034034034, 0.4044044044044044, 0.40540540540540543, 0.4064064064064064, 0.4074074074074074, 0.4084084084084084, 0.4094094094094094, 0.41041041041041043, 0.4114114114114114, 0.4124124124124124, 0.4134134134134134, 0.4144144144144144, 0.41541541541541543, 0.4164164164164164, 0.4174174174174174, 0.4184184184184184, 0.4194194194194194, 0.42042042042042044, 0.4214214214214214, 0.4224224224224224, 0.42342342342342343, 0.4244244244244244, 0.42542542542542544, 0.4264264264264264, 0.4274274274274274, 0.42842842842842843, 0.4294294294294294, 0.43043043043043044, 0.4314314314314314, 0.43243243243243246, 0.43343343343343343, 0.4344344344344344, 0.43543543543543545, 0.4364364364364364, 0.43743743743743746, 0.43843843843843844, 0.4394394394394394, 0.44044044044044045, 0.44144144144144143, 0.44244244244244246, 0.44344344344344344, 0.4444444444444444, 0.44544544544544545, 0.44644644644644643, 0.44744744744744747, 0.44844844844844844, 0.4494494494494494, 0.45045045045045046, 0.45145145145145144, 0.45245245245245247, 0.45345345345345345, 0.4544544544544544, 0.45545545545545546, 0.45645645645645644, 0.4574574574574575, 0.45845845845845845, 0.45945945945945943, 0.46046046046046046, 0.46146146146146144, 0.4624624624624625, 0.46346346346346345, 0.46446446446446443, 0.46546546546546547, 0.46646646646646645, 0.4674674674674675, 0.46846846846846846, 0.4694694694694695, 0.47047047047047047, 0.47147147147147145, 0.4724724724724725, 0.47347347347347346, 0.4744744744744745, 0.4754754754754755, 0.47647647647647645, 0.4774774774774775, 0.47847847847847846, 0.4794794794794795, 0.4804804804804805, 0.48148148148148145, 0.4824824824824825, 0.48348348348348347, 0.4844844844844845, 0.4854854854854855, 0.48648648648648646, 0.4874874874874875, 0.48848848848848847, 0.4894894894894895, 0.4904904904904905, 0.49149149149149146, 0.4924924924924925, 0.4934934934934935, 0.4944944944944945, 0.4954954954954955, 0.4964964964964965, 0.4974974974974975, 0.4984984984984985, 0.4994994994994995, 0.5005005005005005, 0.5015015015015015, 0.5025025025025025, 0.5035035035035035, 0.5045045045045045, 0.5055055055055055, 0.5065065065065065, 0.5075075075075075, 0.5085085085085085, 0.5095095095095095, 0.5105105105105106, 0.5115115115115115, 0.5125125125125125, 0.5135135135135135, 0.5145145145145145, 0.5155155155155156, 0.5165165165165165, 0.5175175175175175, 0.5185185185185185, 0.5195195195195195, 0.5205205205205206, 0.5215215215215215, 0.5225225225225225, 0.5235235235235235, 0.5245245245245245, 0.5255255255255256, 0.5265265265265265, 0.5275275275275275, 0.5285285285285285, 0.5295295295295295, 0.5305305305305306, 0.5315315315315315, 0.5325325325325325, 0.5335335335335335, 0.5345345345345345, 0.5355355355355356, 0.5365365365365365, 0.5375375375375375, 0.5385385385385385, 0.5395395395395395, 0.5405405405405406, 0.5415415415415415, 0.5425425425425425, 0.5435435435435435, 0.5445445445445445, 0.5455455455455456, 0.5465465465465466, 0.5475475475475475, 0.5485485485485485, 0.5495495495495496, 0.5505505505505506, 0.5515515515515516, 0.5525525525525525, 0.5535535535535535, 0.5545545545545546, 0.5555555555555556, 0.5565565565565566, 0.5575575575575575, 0.5585585585585585, 0.5595595595595596, 0.5605605605605606, 0.5615615615615616, 0.5625625625625625, 0.5635635635635635, 0.5645645645645646, 0.5655655655655656, 0.5665665665665666, 0.5675675675675675, 0.5685685685685685, 0.5695695695695696, 0.5705705705705706, 0.5715715715715716, 0.5725725725725725, 0.5735735735735735, 0.5745745745745746, 0.5755755755755756, 0.5765765765765766, 0.5775775775775776, 0.5785785785785785, 0.5795795795795796, 0.5805805805805806, 0.5815815815815816, 0.5825825825825826, 0.5835835835835835, 0.5845845845845846, 0.5855855855855856, 0.5865865865865866, 0.5875875875875876, 0.5885885885885885, 0.5895895895895896, 0.5905905905905906, 0.5915915915915916, 0.5925925925925926, 0.5935935935935935, 0.5945945945945946, 0.5955955955955956, 0.5965965965965966, 0.5975975975975976, 0.5985985985985985, 0.5995995995995996, 0.6006006006006006, 0.6016016016016016, 0.6026026026026026, 0.6036036036036035, 0.6046046046046046, 0.6056056056056056, 0.6066066066066066, 0.6076076076076076, 0.6086086086086087, 0.6096096096096096, 0.6106106106106106, 0.6116116116116116, 0.6126126126126126, 0.6136136136136137, 0.6146146146146146, 0.6156156156156156, 0.6166166166166166, 0.6176176176176176, 0.6186186186186187, 0.6196196196196196, 0.6206206206206206, 0.6216216216216216, 0.6226226226226226, 0.6236236236236237, 0.6246246246246246, 0.6256256256256256, 0.6266266266266266, 0.6276276276276276, 0.6286286286286287, 0.6296296296296297, 0.6306306306306306, 0.6316316316316316, 0.6326326326326326, 0.6336336336336337, 0.6346346346346347, 0.6356356356356356, 0.6366366366366366, 0.6376376376376376, 0.6386386386386387, 0.6396396396396397, 0.6406406406406406, 0.6416416416416416, 0.6426426426426426, 0.6436436436436437, 0.6446446446446447, 0.6456456456456456, 0.6466466466466466, 0.6476476476476476, 0.6486486486486487, 0.6496496496496497, 0.6506506506506506, 0.6516516516516516, 0.6526526526526526, 0.6536536536536537, 0.6546546546546547, 0.6556556556556556, 0.6566566566566566, 0.6576576576576576, 0.6586586586586587, 0.6596596596596597, 0.6606606606606606, 0.6616616616616616, 0.6626626626626626, 0.6636636636636637, 0.6646646646646647, 0.6656656656656657, 0.6666666666666666, 0.6676676676676676, 0.6686686686686687, 0.6696696696696697, 0.6706706706706707, 0.6716716716716716, 0.6726726726726726, 0.6736736736736737, 0.6746746746746747, 0.6756756756756757, 0.6766766766766766, 0.6776776776776777, 0.6786786786786787, 0.6796796796796797, 0.6806806806806807, 0.6816816816816816, 0.6826826826826827, 0.6836836836836837, 0.6846846846846847, 0.6856856856856857, 0.6866866866866866, 0.6876876876876877, 0.6886886886886887, 0.6896896896896897, 0.6906906906906907, 0.6916916916916916, 0.6926926926926927, 0.6936936936936937, 0.6946946946946947, 0.6956956956956957, 0.6966966966966966, 0.6976976976976977, 0.6986986986986987, 0.6996996996996997, 0.7007007007007007, 0.7017017017017017, 0.7027027027027027, 0.7037037037037037, 0.7047047047047047, 0.7057057057057057, 0.7067067067067067, 0.7077077077077077, 0.7087087087087087, 0.7097097097097097, 0.7107107107107107, 0.7117117117117117, 0.7127127127127127, 0.7137137137137137, 0.7147147147147147, 0.7157157157157157, 0.7167167167167167, 0.7177177177177178, 0.7187187187187187, 0.7197197197197197, 0.7207207207207207, 0.7217217217217217, 0.7227227227227228, 0.7237237237237237, 0.7247247247247247, 0.7257257257257257, 0.7267267267267267, 0.7277277277277278, 0.7287287287287287, 0.7297297297297297, 0.7307307307307307, 0.7317317317317317, 0.7327327327327328, 0.7337337337337337, 0.7347347347347347, 0.7357357357357357, 0.7367367367367368, 0.7377377377377378, 0.7387387387387387, 0.7397397397397397, 0.7407407407407407, 0.7417417417417418, 0.7427427427427428, 0.7437437437437437, 0.7447447447447447, 0.7457457457457457, 0.7467467467467468, 0.7477477477477478, 0.7487487487487487, 0.7497497497497497, 0.7507507507507507, 0.7517517517517518, 0.7527527527527528, 0.7537537537537538, 0.7547547547547547, 0.7557557557557557, 0.7567567567567568, 0.7577577577577578, 0.7587587587587588, 0.7597597597597597, 0.7607607607607607, 0.7617617617617618, 0.7627627627627628, 0.7637637637637638, 0.7647647647647647, 0.7657657657657657, 0.7667667667667668, 0.7677677677677678, 0.7687687687687688, 0.7697697697697697, 0.7707707707707707, 0.7717717717717718, 0.7727727727727728, 0.7737737737737738, 0.7747747747747747, 0.7757757757757757, 0.7767767767767768, 0.7777777777777778, 0.7787787787787788, 0.7797797797797797, 0.7807807807807807, 0.7817817817817818, 0.7827827827827828, 0.7837837837837838, 0.7847847847847848, 0.7857857857857857, 0.7867867867867868, 0.7877877877877878, 0.7887887887887888, 0.7897897897897898, 0.7907907907907907, 0.7917917917917918, 0.7927927927927928, 0.7937937937937938, 0.7947947947947948, 0.7957957957957957, 0.7967967967967968, 0.7977977977977978, 0.7987987987987988, 0.7997997997997998, 0.8008008008008007, 0.8018018018018018, 0.8028028028028028, 0.8038038038038038, 0.8048048048048048, 0.8058058058058059, 0.8068068068068068, 0.8078078078078078, 0.8088088088088088, 0.8098098098098098, 0.8108108108108109, 0.8118118118118118, 0.8128128128128128, 0.8138138138138138, 0.8148148148148148, 0.8158158158158159, 0.8168168168168168, 0.8178178178178178, 0.8188188188188188, 0.8198198198198198, 0.8208208208208209, 0.8218218218218218, 0.8228228228228228, 0.8238238238238238, 0.8248248248248248, 0.8258258258258259, 0.8268268268268268, 0.8278278278278278, 0.8288288288288288, 0.8298298298298298, 0.8308308308308309, 0.8318318318318318, 0.8328328328328328, 0.8338338338338338, 0.8348348348348348, 0.8358358358358359, 0.8368368368368369, 0.8378378378378378, 0.8388388388388388, 0.8398398398398398, 0.8408408408408409, 0.8418418418418419, 0.8428428428428428, 0.8438438438438438, 0.8448448448448448, 0.8458458458458459, 0.8468468468468469, 0.8478478478478478, 0.8488488488488488, 0.8498498498498498, 0.8508508508508509, 0.8518518518518519, 0.8528528528528528, 0.8538538538538538, 0.8548548548548548, 0.8558558558558559, 0.8568568568568569, 0.8578578578578578, 0.8588588588588588, 0.8598598598598598, 0.8608608608608609, 0.8618618618618619, 0.8628628628628628, 0.8638638638638638, 0.8648648648648649, 0.8658658658658659, 0.8668668668668669, 0.8678678678678678, 0.8688688688688688, 0.8698698698698699, 0.8708708708708709, 0.8718718718718719, 0.8728728728728729, 0.8738738738738738, 0.8748748748748749, 0.8758758758758759, 0.8768768768768769, 0.8778778778778779, 0.8788788788788788, 0.8798798798798799, 0.8808808808808809, 0.8818818818818819, 0.8828828828828829, 0.8838838838838838, 0.8848848848848849, 0.8858858858858859, 0.8868868868868869, 0.8878878878878879, 0.8888888888888888, 0.8898898898898899, 0.8908908908908909, 0.8918918918918919, 0.8928928928928929, 0.8938938938938938, 0.8948948948948949, 0.8958958958958959, 0.8968968968968969, 0.8978978978978979, 0.8988988988988988, 0.8998998998998999, 0.9009009009009009, 0.9019019019019019, 0.9029029029029029, 0.9039039039039038, 0.9049049049049049, 0.9059059059059059, 0.9069069069069069, 0.9079079079079079, 0.9089089089089089, 0.9099099099099099, 0.9109109109109109, 0.9119119119119119, 0.9129129129129129, 0.9139139139139139, 0.914914914914915, 0.9159159159159159, 0.9169169169169169, 0.9179179179179179, 0.9189189189189189, 0.91991991991992, 0.9209209209209209, 0.9219219219219219, 0.9229229229229229, 0.9239239239239239, 0.924924924924925, 0.9259259259259259, 0.9269269269269269, 0.9279279279279279, 0.9289289289289289, 0.92992992992993, 0.9309309309309309, 0.9319319319319319, 0.9329329329329329, 0.933933933933934, 0.934934934934935, 0.9359359359359359, 0.9369369369369369, 0.9379379379379379, 0.938938938938939, 0.93993993993994, 0.9409409409409409, 0.9419419419419419, 0.9429429429429429, 0.943943943943944, 0.944944944944945, 0.9459459459459459, 0.9469469469469469, 0.9479479479479479, 0.948948948948949, 0.94994994994995, 0.950950950950951, 0.9519519519519519, 0.9529529529529529, 0.953953953953954, 0.954954954954955, 0.955955955955956, 0.9569569569569569, 0.9579579579579579, 0.958958958958959, 0.95995995995996, 0.960960960960961, 0.9619619619619619, 0.9629629629629629, 0.963963963963964, 0.964964964964965, 0.965965965965966, 0.9669669669669669, 0.9679679679679679, 0.968968968968969, 0.96996996996997, 0.970970970970971, 0.9719719719719719, 0.9729729729729729, 0.973973973973974, 0.974974974974975, 0.975975975975976, 0.9769769769769769, 0.9779779779779779, 0.978978978978979, 0.97997997997998, 0.980980980980981, 0.9819819819819819, 0.9829829829829829, 0.983983983983984, 0.984984984984985, 0.985985985985986, 0.986986986986987, 0.9879879879879879, 0.988988988988989, 0.98998998998999, 0.990990990990991, 0.991991991991992, 0.992992992992993, 0.993993993993994, 0.994994994994995, 0.995995995995996, 0.996996996996997, 0.997997997997998, 0.998998998998999, 1.0], "c": [0.1, 0.10090090090090091, 0.1018018018018018, 0.10270270270270271, 0.10360360360360361, 0.1045045045045045, 0.10540540540540541, 0.10630630630630632, 0.10720720720720721, 0.10810810810810811, 0.10900900900900902, 0.10990990990990991, 0.11081081081081082, 0.11171171171171172, 0.11261261261261261, 0.11351351351351352, 0.11441441441441443, 0.11531531531531532, 0.11621621621621622, 0.11711711711711711, 0.11801801801801802, 0.11891891891891893, 0.11981981981981982, 0.12072072072072072, 0.12162162162162163, 0.12252252252252252, 0.12342342342342343, 0.12432432432432433, 0.12522522522522522, 0.12612612612612614, 0.12702702702702703, 0.12792792792792793, 0.12882882882882885, 0.12972972972972974, 0.13063063063063063, 0.13153153153153152, 0.13243243243243244, 0.13333333333333333, 0.13423423423423425, 0.13513513513513514, 0.13603603603603603, 0.13693693693693693, 0.13783783783783785, 0.13873873873873874, 0.13963963963963966, 0.14054054054054055, 0.14144144144144144, 0.14234234234234233, 0.14324324324324325, 0.14414414414414414, 0.14504504504504506, 0.14594594594594595, 0.14684684684684685, 0.14774774774774774, 0.14864864864864866, 0.14954954954954955, 0.15045045045045047, 0.15135135135135136, 0.15225225225225225, 0.15315315315315314, 0.15405405405405406, 0.15495495495495495, 0.15585585585585587, 0.15675675675675677, 0.15765765765765766, 0.15855855855855855, 0.15945945945945947, 0.16036036036036036, 0.16126126126126128, 0.16216216216216217, 0.16306306306306306, 0.16396396396396395, 0.16486486486486487, 0.16576576576576577, 0.16666666666666669, 0.16756756756756758, 0.16846846846846847, 0.16936936936936936, 0.17027027027027028, 0.17117117117117117, 0.1720720720720721, 0.17297297297297298, 0.17387387387387387, 0.17477477477477477, 0.17567567567567569, 0.17657657657657658, 0.1774774774774775, 0.1783783783783784, 0.17927927927927928, 0.18018018018018017, 0.1810810810810811, 0.18198198198198198, 0.1828828828828829, 0.1837837837837838, 0.18468468468468469, 0.18558558558558558, 0.1864864864864865, 0.1873873873873874, 0.1882882882882883, 0.1891891891891892, 0.1900900900900901, 0.19099099099099098, 0.1918918918918919, 0.1927927927927928, 0.1936936936936937, 0.1945945945945946, 0.1954954954954955, 0.1963963963963964, 0.1972972972972973, 0.1981981981981982, 0.19909909909909912, 0.2, 0.2009009009009009, 0.2018018018018018, 0.20270270270270271, 0.2036036036036036, 0.20450450450450453, 0.20540540540540542, 0.2063063063063063, 0.2072072072072072, 0.20810810810810812, 0.209009009009009, 0.20990990990990993, 0.21081081081081082, 0.21171171171171171, 0.2126126126126126, 0.21351351351351353, 0.21441441441441442, 0.21531531531531534, 0.21621621621621623, 0.21711711711711712, 0.218018018018018, 0.21891891891891893, 0.21981981981981982, 0.22072072072072074, 0.22162162162162163, 0.22252252252252253, 0.22342342342342342, 0.22432432432432434, 0.22522522522522523, 0.22612612612612612, 0.22702702702702704, 0.22792792792792793, 0.22882882882882882, 0.22972972972972974, 0.23063063063063063, 0.23153153153153153, 0.23243243243243245, 0.23333333333333334, 0.23423423423423423, 0.23513513513513515, 0.23603603603603604, 0.23693693693693693, 0.23783783783783785, 0.23873873873873874, 0.23963963963963963, 0.24054054054054055, 0.24144144144144145, 0.24234234234234234, 0.24324324324324326, 0.24414414414414415, 0.24504504504504504, 0.24594594594594596, 0.24684684684684685, 0.24774774774774774, 0.24864864864864866, 0.24954954954954955, 0.25045045045045045, 0.25135135135135134, 0.25225225225225223, 0.2531531531531531, 0.25405405405405407, 0.25495495495495496, 0.25585585585585585, 0.2567567567567568, 0.2576576576576577, 0.2585585585585586, 0.2594594594594595, 0.26036036036036037, 0.26126126126126126, 0.26216216216216215, 0.26306306306306304, 0.26396396396396393, 0.2648648648648649, 0.26576576576576577, 0.26666666666666666, 0.2675675675675676, 0.2684684684684685, 0.2693693693693694, 0.2702702702702703, 0.2711711711711712, 0.27207207207207207, 0.27297297297297296, 0.27387387387387385, 0.27477477477477474, 0.2756756756756757, 0.2765765765765766, 0.2774774774774775, 0.2783783783783784, 0.2792792792792793, 0.2801801801801802, 0.2810810810810811, 0.281981981981982, 0.2828828828828829, 0.28378378378378377, 0.28468468468468466, 0.28558558558558556, 0.2864864864864865, 0.2873873873873874, 0.2882882882882883, 0.28918918918918923, 0.2900900900900901, 0.290990990990991, 0.2918918918918919, 0.2927927927927928, 0.2936936936936937, 0.2945945945945946, 0.2954954954954955, 0.29639639639639637, 0.2972972972972973, 0.2981981981981982, 0.2990990990990991, 0.30000000000000004, 0.30090090090090094, 0.30180180180180183, 0.3027027027027027, 0.3036036036036036, 0.3045045045045045, 0.3054054054054054, 0.3063063063063063, 0.3072072072072072, 0.3081081081081081, 0.309009009009009, 0.3099099099099099, 0.31081081081081086, 0.31171171171171175, 0.31261261261261264, 0.31351351351351353, 0.3144144144144144, 0.3153153153153153, 0.3162162162162162, 0.3171171171171171, 0.318018018018018, 0.31891891891891894, 0.31981981981981983, 0.3207207207207207, 0.32162162162162167, 0.32252252252252256, 0.32342342342342345, 0.32432432432432434, 0.32522522522522523, 0.3261261261261261, 0.327027027027027, 0.3279279279279279, 0.3288288288288288, 0.32972972972972975, 0.33063063063063064, 0.33153153153153153, 0.3324324324324325, 0.33333333333333337, 0.33423423423423426, 0.33513513513513515, 0.33603603603603605, 0.33693693693693694, 0.33783783783783783, 0.3387387387387387, 0.3396396396396396, 0.34054054054054056, 0.34144144144144145, 0.34234234234234234, 0.3432432432432433, 0.3441441441441442, 0.3450450450450451, 0.34594594594594597, 0.34684684684684686, 0.34774774774774775, 0.34864864864864864, 0.34954954954954953, 0.3504504504504504, 0.3513513513513513, 0.3522522522522522, 0.3531531531531532, 0.3540540540540541, 0.354954954954955, 0.3558558558558559, 0.3567567567567568, 0.35765765765765767, 0.35855855855855856, 0.35945945945945945, 0.36036036036036034, 0.36126126126126124, 0.3621621621621621, 0.363063063063063, 0.363963963963964, 0.3648648648648649, 0.3657657657657658, 0.3666666666666667, 0.3675675675675676, 0.3684684684684685, 0.36936936936936937, 0.37027027027027026, 0.37117117117117115, 0.37207207207207205, 0.37297297297297294, 0.37387387387387383, 0.37477477477477483, 0.3756756756756757, 0.3765765765765766, 0.3774774774774775, 0.3783783783783784, 0.3792792792792793, 0.3801801801801802, 0.3810810810810811, 0.38198198198198197, 0.38288288288288286, 0.38378378378378375, 0.38468468468468464, 0.38558558558558564, 0.38648648648648654, 0.3873873873873874, 0.3882882882882883, 0.3891891891891892, 0.3900900900900901, 0.390990990990991, 0.3918918918918919, 0.3927927927927928, 0.39369369369369367, 0.39459459459459456, 0.39549549549549545, 0.39639639639639646, 0.39729729729729735, 0.39819819819819824, 0.39909909909909913, 0.4, 0.4009009009009009, 0.4018018018018018, 0.4027027027027027, 0.4036036036036036, 0.4045045045045045, 0.4054054054054054, 0.40630630630630626, 0.40720720720720727, 0.40810810810810816, 0.40900900900900905, 0.40990990990990994, 0.41081081081081083, 0.4117117117117117, 0.4126126126126126, 0.4135135135135135, 0.4144144144144144, 0.4153153153153153, 0.4162162162162162, 0.4171171171171171, 0.4180180180180181, 0.41891891891891897, 0.41981981981981986, 0.42072072072072075, 0.42162162162162165, 0.42252252252252254, 0.42342342342342343, 0.4243243243243243, 0.4252252252252252, 0.4261261261261261, 0.427027027027027, 0.4279279279279279, 0.4288288288288289, 0.4297297297297298, 0.4306306306306307, 0.43153153153153156, 0.43243243243243246, 0.43333333333333335, 0.43423423423423424, 0.43513513513513513, 0.436036036036036, 0.4369369369369369, 0.4378378378378378, 0.4387387387387387, 0.4396396396396397, 0.4405405405405406, 0.4414414414414415, 0.4423423423423424, 0.44324324324324327, 0.44414414414414416, 0.44504504504504505, 0.44594594594594594, 0.44684684684684683, 0.4477477477477477, 0.4486486486486486, 0.4495495495495495, 0.4504504504504505, 0.4513513513513514, 0.4522522522522523, 0.4531531531531532, 0.4540540540540541, 0.45495495495495497, 0.45585585585585586, 0.45675675675675675, 0.45765765765765765, 0.45855855855855854, 0.45945945945945943, 0.4603603603603603, 0.4612612612612613, 0.4621621621621622, 0.4630630630630631, 0.463963963963964, 0.4648648648648649, 0.4657657657657658, 0.4666666666666667, 0.46756756756756757, 0.46846846846846846, 0.46936936936936935, 0.47027027027027024, 0.47117117117117113, 0.47207207207207214, 0.472972972972973, 0.4738738738738739, 0.4747747747747748, 0.4756756756756757, 0.4765765765765766, 0.4774774774774775, 0.4783783783783784, 0.47927927927927927, 0.48018018018018016, 0.48108108108108105, 0.48198198198198194, 0.48288288288288295, 0.48378378378378384, 0.48468468468468473, 0.4855855855855856, 0.4864864864864865, 0.4873873873873874, 0.4882882882882883, 0.4891891891891892, 0.4900900900900901, 0.49099099099099097, 0.49189189189189186, 0.49279279279279276, 0.49369369369369376, 0.49459459459459465, 0.49549549549549554, 0.49639639639639643, 0.4972972972972973, 0.4981981981981982, 0.4990990990990991, 0.5, 0.5009009009009009, 0.5018018018018018, 0.5027027027027027, 0.5036036036036036, 0.5045045045045046, 0.5054054054054055, 0.5063063063063064, 0.5072072072072072, 0.5081081081081081, 0.509009009009009, 0.5099099099099099, 0.5108108108108108, 0.5117117117117117, 0.5126126126126126, 0.5135135135135135, 0.5144144144144144, 0.5153153153153154, 0.5162162162162163, 0.5171171171171172, 0.5180180180180181, 0.518918918918919, 0.5198198198198198, 0.5207207207207207, 0.5216216216216216, 0.5225225225225225, 0.5234234234234234, 0.5243243243243243, 0.5252252252252252, 0.5261261261261262, 0.5270270270270271, 0.527927927927928, 0.5288288288288289, 0.5297297297297298, 0.5306306306306307, 0.5315315315315315, 0.5324324324324324, 0.5333333333333333, 0.5342342342342342, 0.5351351351351351, 0.536036036036036, 0.536936936936937, 0.5378378378378379, 0.5387387387387388, 0.5396396396396397, 0.5405405405405406, 0.5414414414414415, 0.5423423423423424, 0.5432432432432432, 0.5441441441441441, 0.545045045045045, 0.5459459459459459, 0.5468468468468468, 0.5477477477477478, 0.5486486486486487, 0.5495495495495496, 0.5504504504504505, 0.5513513513513514, 0.5522522522522523, 0.5531531531531532, 0.5540540540540541, 0.554954954954955, 0.5558558558558558, 0.5567567567567567, 0.5576576576576576, 0.5585585585585586, 0.5594594594594595, 0.5603603603603604, 0.5612612612612613, 0.5621621621621622, 0.5630630630630631, 0.563963963963964, 0.5648648648648649, 0.5657657657657658, 0.5666666666666667, 0.5675675675675675, 0.5684684684684684, 0.5693693693693693, 0.5702702702702703, 0.5711711711711712, 0.5720720720720721, 0.572972972972973, 0.5738738738738739, 0.5747747747747748, 0.5756756756756757, 0.5765765765765766, 0.5774774774774775, 0.5783783783783784, 0.5792792792792792, 0.5801801801801801, 0.5810810810810811, 0.581981981981982, 0.5828828828828829, 0.5837837837837838, 0.5846846846846847, 0.5855855855855856, 0.5864864864864865, 0.5873873873873874, 0.5882882882882883, 0.5891891891891892, 0.5900900900900901, 0.590990990990991, 0.591891891891892, 0.5927927927927928, 0.5936936936936937, 0.5945945945945946, 0.5954954954954955, 0.5963963963963964, 0.5972972972972973, 0.5981981981981982, 0.5990990990990991, 0.6, 0.6009009009009009, 0.6018018018018018, 0.6027027027027027, 0.6036036036036035, 0.6045045045045044, 0.6054054054054054, 0.6063063063063063, 0.6072072072072072, 0.6081081081081081, 0.609009009009009, 0.6099099099099099, 0.6108108108108108, 0.6117117117117117, 0.6126126126126126, 0.6135135135135135, 0.6144144144144144, 0.6153153153153152, 0.6162162162162163, 0.6171171171171171, 0.618018018018018, 0.6189189189189189, 0.6198198198198198, 0.6207207207207207, 0.6216216216216216, 0.6225225225225225, 0.6234234234234234, 0.6243243243243243, 0.6252252252252252, 0.6261261261261261, 0.6270270270270271, 0.627927927927928, 0.6288288288288288, 0.6297297297297297, 0.6306306306306306, 0.6315315315315315, 0.6324324324324324, 0.6333333333333333, 0.6342342342342342, 0.6351351351351351, 0.636036036036036, 0.6369369369369369, 0.6378378378378379, 0.6387387387387388, 0.6396396396396397, 0.6405405405405405, 0.6414414414414414, 0.6423423423423423, 0.6432432432432432, 0.6441441441441441, 0.645045045045045, 0.6459459459459459, 0.6468468468468468, 0.6477477477477477, 0.6486486486486487, 0.6495495495495496, 0.6504504504504505, 0.6513513513513514, 0.6522522522522523, 0.6531531531531531, 0.654054054054054, 0.6549549549549549, 0.6558558558558558, 0.6567567567567567, 0.6576576576576576, 0.6585585585585585, 0.6594594594594595, 0.6603603603603604, 0.6612612612612613, 0.6621621621621622, 0.6630630630630631, 0.663963963963964, 0.6648648648648648, 0.6657657657657657, 0.6666666666666666, 0.6675675675675675, 0.6684684684684684, 0.6693693693693693, 0.6702702702702703, 0.6711711711711712, 0.6720720720720721, 0.672972972972973, 0.6738738738738739, 0.6747747747747748, 0.6756756756756757, 0.6765765765765765, 0.6774774774774774, 0.6783783783783783, 0.6792792792792792, 0.6801801801801801, 0.6810810810810811, 0.681981981981982, 0.6828828828828829, 0.6837837837837838, 0.6846846846846847, 0.6855855855855856, 0.6864864864864865, 0.6873873873873874, 0.6882882882882883, 0.6891891891891891, 0.69009009009009, 0.6909909909909909, 0.6918918918918919, 0.6927927927927928, 0.6936936936936937, 0.6945945945945946, 0.6954954954954955, 0.6963963963963964, 0.6972972972972973, 0.6981981981981982, 0.6990990990990991, 0.7, 0.7009009009009008, 0.7018018018018017, 0.7027027027027027, 0.7036036036036036, 0.7045045045045045, 0.7054054054054054, 0.7063063063063063, 0.7072072072072072, 0.7081081081081081, 0.709009009009009, 0.7099099099099099, 0.7108108108108108, 0.7117117117117117, 0.7126126126126126, 0.7135135135135136, 0.7144144144144144, 0.7153153153153153, 0.7162162162162162, 0.7171171171171171, 0.718018018018018, 0.7189189189189189, 0.7198198198198198, 0.7207207207207207, 0.7216216216216216, 0.7225225225225225, 0.7234234234234234, 0.7243243243243244, 0.7252252252252253, 0.7261261261261261, 0.727027027027027, 0.7279279279279279, 0.7288288288288288, 0.7297297297297297, 0.7306306306306306, 0.7315315315315315, 0.7324324324324324, 0.7333333333333333, 0.7342342342342342, 0.7351351351351352, 0.7360360360360361, 0.736936936936937, 0.7378378378378379, 0.7387387387387387, 0.7396396396396396, 0.7405405405405405, 0.7414414414414414, 0.7423423423423423, 0.7432432432432432, 0.7441441441441441, 0.745045045045045, 0.745945945945946, 0.7468468468468469, 0.7477477477477478, 0.7486486486486487, 0.7495495495495496, 0.7504504504504504, 0.7513513513513513, 0.7522522522522522, 0.7531531531531531, 0.754054054054054, 0.7549549549549549, 0.7558558558558558, 0.7567567567567568, 0.7576576576576577, 0.7585585585585586, 0.7594594594594595, 0.7603603603603604, 0.7612612612612613, 0.7621621621621621, 0.763063063063063, 0.7639639639639639, 0.7648648648648648, 0.7657657657657657, 0.7666666666666666, 0.7675675675675676, 0.7684684684684685, 0.7693693693693694, 0.7702702702702703, 0.7711711711711712, 0.7720720720720721, 0.772972972972973, 0.7738738738738739, 0.7747747747747747, 0.7756756756756756, 0.7765765765765765, 0.7774774774774774, 0.7783783783783784, 0.7792792792792793, 0.7801801801801802, 0.7810810810810811, 0.781981981981982, 0.7828828828828829, 0.7837837837837838, 0.7846846846846847, 0.7855855855855856, 0.7864864864864864, 0.7873873873873873, 0.7882882882882882, 0.7891891891891892, 0.7900900900900901, 0.790990990990991, 0.7918918918918919, 0.7927927927927928, 0.7936936936936937, 0.7945945945945946, 0.7954954954954955, 0.7963963963963964, 0.7972972972972973, 0.7981981981981981, 0.799099099099099, 0.7999999999999999, 0.8009009009009009, 0.8018018018018018, 0.8027027027027027, 0.8036036036036036, 0.8045045045045045, 0.8054054054054054, 0.8063063063063063, 0.8072072072072072, 0.8081081081081081, 0.809009009009009, 0.8099099099099099, 0.8108108108108107, 0.8117117117117117, 0.8126126126126126, 0.8135135135135135, 0.8144144144144144, 0.8153153153153153, 0.8162162162162162, 0.8171171171171171, 0.818018018018018, 0.8189189189189189, 0.8198198198198198, 0.8207207207207207, 0.8216216216216216, 0.8225225225225226, 0.8234234234234235, 0.8243243243243243, 0.8252252252252252, 0.8261261261261261, 0.827027027027027, 0.8279279279279279, 0.8288288288288288, 0.8297297297297297, 0.8306306306306306, 0.8315315315315315, 0.8324324324324324, 0.8333333333333334, 0.8342342342342343, 0.8351351351351352, 0.836036036036036, 0.8369369369369369, 0.8378378378378378, 0.8387387387387387, 0.8396396396396396, 0.8405405405405405, 0.8414414414414414, 0.8423423423423423, 0.8432432432432432, 0.8441441441441442, 0.8450450450450451, 0.845945945945946, 0.8468468468468469, 0.8477477477477477, 0.8486486486486486, 0.8495495495495495, 0.8504504504504504, 0.8513513513513513, 0.8522522522522522, 0.8531531531531531, 0.854054054054054, 0.854954954954955, 0.8558558558558559, 0.8567567567567568, 0.8576576576576577, 0.8585585585585586, 0.8594594594594595, 0.8603603603603603, 0.8612612612612612, 0.8621621621621621, 0.863063063063063, 0.8639639639639639, 0.8648648648648648, 0.8657657657657658, 0.8666666666666667, 0.8675675675675676, 0.8684684684684685, 0.8693693693693694, 0.8702702702702703, 0.8711711711711712, 0.872072072072072, 0.8729729729729729, 0.8738738738738738, 0.8747747747747747, 0.8756756756756756, 0.8765765765765766, 0.8774774774774775, 0.8783783783783784, 0.8792792792792793, 0.8801801801801802, 0.8810810810810811, 0.881981981981982, 0.8828828828828829, 0.8837837837837837, 0.8846846846846846, 0.8855855855855855, 0.8864864864864864, 0.8873873873873874, 0.8882882882882883, 0.8891891891891892, 0.8900900900900901, 0.890990990990991, 0.8918918918918919, 0.8927927927927928, 0.8936936936936937, 0.8945945945945946, 0.8954954954954955, 0.8963963963963963, 0.8972972972972972, 0.8981981981981982, 0.8990990990990991, 0.9, 0.9009009009009009, 0.9018018018018018, 0.9027027027027027, 0.9036036036036036, 0.9045045045045045, 0.9054054054054054, 0.9063063063063063, 0.9072072072072072, 0.908108108108108, 0.909009009009009, 0.9099099099099099, 0.9108108108108108, 0.9117117117117117, 0.9126126126126126, 0.9135135135135135, 0.9144144144144144, 0.9153153153153153, 0.9162162162162162, 0.9171171171171171, 0.918018018018018, 0.9189189189189189, 0.9198198198198199, 0.9207207207207208, 0.9216216216216216, 0.9225225225225225, 0.9234234234234234, 0.9243243243243243, 0.9252252252252252, 0.9261261261261261, 0.927027027027027, 0.9279279279279279, 0.9288288288288288, 0.9297297297297297, 0.9306306306306307, 0.9315315315315316, 0.9324324324324325, 0.9333333333333333, 0.9342342342342342, 0.9351351351351351, 0.936036036036036, 0.9369369369369369, 0.9378378378378378, 0.9387387387387387, 0.9396396396396396, 0.9405405405405405, 0.9414414414414415, 0.9423423423423424, 0.9432432432432433, 0.9441441441441442, 0.945045045045045, 0.9459459459459459, 0.9468468468468468, 0.9477477477477477, 0.9486486486486486, 0.9495495495495495, 0.9504504504504504, 0.9513513513513513, 0.9522522522522523, 0.9531531531531532, 0.9540540540540541, 0.954954954954955, 0.9558558558558559, 0.9567567567567568, 0.9576576576576576, 0.9585585585585585, 0.9594594594594594, 0.9603603603603603, 0.9612612612612612, 0.9621621621621621, 0.9630630630630631, 0.963963963963964, 0.9648648648648649, 0.9657657657657658, 0.9666666666666667, 0.9675675675675676, 0.9684684684684685, 0.9693693693693693, 0.9702702702702702, 0.9711711711711711, 0.972072072072072, 0.9729729729729729, 0.9738738738738739, 0.9747747747747748, 0.9756756756756757, 0.9765765765765766, 0.9774774774774775, 0.9783783783783784, 0.9792792792792793, 0.9801801801801802, 0.981081081081081, 0.9819819819819819, 0.9828828828828828, 0.9837837837837837, 0.9846846846846847, 0.9855855855855856, 0.9864864864864865, 0.9873873873873874, 0.9882882882882883, 0.9891891891891892, 0.9900900900900901, 0.990990990990991, 0.9918918918918919, 0.9927927927927928, 0.9936936936936936, 0.9945945945945945, 0.9954954954954955, 0.9963963963963964, 0.9972972972972973, 0.9981981981981982, 0.9990990990990991, 1.0], "expected": [0.04803356251924885, 0.04834842771974508, 0.048661215463431814, 0.048971926723158955, 0.04928056248034441, 0.04958712372496773, 0.0498916114555618, 0.05019402667920712, 0.050494370411521564, 0.050792643676655674, 0.05108884750728116, 0.05138298294458595, 0.051675051038263704, 0.0519650528465059, 0.05225298943599367, 0.05253886188188815, 0.052822671267821864, 0.05310441868588864, 0.053384105236636045, 0.053661732029053784, 0.053937300180565466, 0.054210810817017424, 0.054482265072669615, 0.05475166409018524, 0.05501900902061974, 0.05528430102341038, 0.05554754126636649, 0.05580873092565691, 0.05606787118580002, 0.056324963239652165, 0.05658000828839622, 0.05683300754153019, 0.05708396221685466, 0.057332873540462286, 0.05757974274672428, 0.05782457107827929, 0.05806735978601985, 0.05830811012908162, 0.05854682337482794, 0.05878350079883964, 0.059018143684900645, 0.05925075332498454, 0.05948133101924165, 0.05970987807598658, 0.05993639581168191, 0.06016088555092721, 0.06038334862644238, 0.060603786379055835, 0.06082220015768867, 0.06103859131934167, 0.0612529612290782, 0.06146531126001247, 0.061675642793292094, 0.061883957218084824, 0.06209025593156194, 0.06229454033888368, 0.062496811853184585, 0.06269707189555472, 0.06289532189502793, 0.0630915632885627, 0.06328579752102748, 0.06347802604518456, 0.06366825032167243, 0.06385647181899151, 0.0640426920134844, 0.0642269123893225, 0.06440913443848448, 0.06458935966074507, 0.06476758956365247, 0.06494382566251386, 0.0651180694803771, 0.06529032254801265, 0.06546058640389724, 0.06562886259419357, 0.06579515267273392, 0.06595945820100245, 0.06612178074811476, 0.06628212189080045, 0.06644048321338548, 0.06659686630777223, 0.06675127277342018, 0.06690370421732875, 0.06705416225401589, 0.06720264850550088, 0.0673491646012835, 0.067493712178325, 0.06763629288102796, 0.06777690836121762, 0.06791556027812083, 0.06805225029834695, 0.06818698009586643, 0.0683197513519919, 0.06845056575535649, 0.0685794250018945, 0.06870633079482058, 0.06883128484460721, 0.06895428886896657, 0.069075344592827, 0.06919445374831353, 0.06931161807472633, 0.06942683931851869, 0.0695401192332761, 0.06965145957969482, 0.0697608621255596, 0.06986832864572198, 0.06997386092207872, 0.07007746074354967, 0.0701791299060562, 0.07027887021249617, 0.07037668347272631, 0.07047257150353559, 0.07056653612862474, 0.07065857917858201, 0.07074870249086251, 0.07083690790976362, 0.07092319728640291, 0.0710075724786944, 0.0710900353513256, 0.07117058777573451, 0.07124923163008566, 0.07132596879924682, 0.07140080117476627, 0.07147373065484777, 0.07154475914432722, 0.07161388855464852, 0.0716811208038417, 0.07174645781649477, 0.07180990152373337, 0.07187145386319514, 0.07193111677900424, 0.07198889222174881, 0.07204478214845537, 0.07209878852256456, 0.07215091331390559, 0.07220115849867302, 0.07224952605940047, 0.07229601798493639, 0.07234063627041859, 0.07238338291725023, 0.07242425993307244, 0.07246326933174141, 0.07250041313330148, 0.07253569336395986, 0.07256911205606187, 0.07260067124806485, 0.0726303729845125, 0.07265821931600842, 0.0726842122991917, 0.07270835399671059, 0.07273064647719499, 0.07275109181523244, 0.07276969209134129, 0.07278644939194427, 0.07280136580934181, 0.07281444344168678, 0.07282568439295715, 0.07283509077293077, 0.07284266469715699, 0.07284840828693169, 0.07285232366926955, 0.07285441297687813, 0.0728546783481303, 0.07285312192703841, 0.07284974586322636, 0.07284455231190289, 0.07283754343383524, 0.07282872139532072, 0.07281808836816119, 0.07280564652963464, 0.07279139806246812, 0.07277534515481157, 0.0727574900002079, 0.07273783479756904, 0.0727163817511449, 0.07269313307049886, 0.07266809097047856, 0.07264125767118866, 0.07261263539796213, 0.07258222638133546, 0.07255003285701767, 0.07251605706586395, 0.07248030125384806, 0.07244276767203356, 0.07240345857654734, 0.07236237622854959, 0.07231952289420712, 0.07227490084466574, 0.07222851235602024, 0.07218035970928872, 0.07213044519038242, 0.07207877109007826, 0.07202533970399039, 0.07197015333254284, 0.07191321428093986, 0.07185452485913821, 0.07179408738181878, 0.07173190416835794, 0.0716679775427996, 0.07160230983382596, 0.07153490337472979, 0.07146576050338509, 0.07139488356221911, 0.07132227489818409, 0.07124793686272747, 0.07117187181176439, 0.07109408210564841, 0.0710145701091427, 0.07093333819139185, 0.07085038872589303, 0.07076572409046736, 0.0706793466672301, 0.07059125884256247, 0.07050146300708465, 0.07040996155562342, 0.07031675688718605, 0.07022185140493055, 0.07012524751613666, 0.07002694763217743, 0.0699269541684897, 0.06982526954454518, 0.06972189618382262, 0.06961683651377744, 0.069510092965814, 0.06940166797525504, 0.06929156398131493, 0.06917978342706889, 0.0690663287594246, 0.0689512024290933, 0.06883440689056065, 0.06871594460205853, 0.06859581802553372, 0.06847402962662172, 0.06835058187461597, 0.06822547724244041, 0.06809871820661846, 0.06797030724724439, 0.0678402468479565, 0.06770853949590515, 0.0675751876817261, 0.06744019389950989, 0.06730356064677424, 0.06716529042443264, 0.0670253857367697, 0.06688384909140664, 0.06674068299927724, 0.06659588997459616, 0.06644947253482994, 0.06630143320066957, 0.06615177449600068, 0.06600049894787428, 0.06584760908647835, 0.06569310744510867, 0.06553699656014106, 0.06537927897099949, 0.06521995722013062, 0.06505903385297375, 0.06489651141793104, 0.06473239246633959, 0.06456667955244279, 0.06439937523336091, 0.06423048206906237, 0.06406000262233677, 0.06388793945876248, 0.0637142951466812, 0.06353907225716905, 0.0633622733640057, 0.06318390104364743, 0.06300395787519857, 0.06282244644038246, 0.06263936932351208, 0.06245472911146344, 0.06226852839364561, 0.06208076976197217, 0.06189145581083352, 0.06170058913706805, 0.061508172339933734, 0.061314208021080265, 0.06111869878451914, 0.060921647236597126, 0.060723055985967764, 0.060522927643561396, 0.06032126482255907, 0.060118070138363296, 0.05991334620856961, 0.05970709565293968, 0.05949932109337151, 0.059290025153872675, 0.059079210460532064, 0.05886687964149156, 0.058653035326918054, 0.05843768014897647, 0.058220816741800206, 0.05800244774146527, 0.05778257578596059, 0.05756120351516203, 0.05733833357080316, 0.057113968596448524, 0.05688811123746572, 0.05666076414099811, 0.056431929955936336, 0.05620161133289188, 0.055969810924169305, 0.055736531383738595, 0.05550177536720809, 0.05526554553179659, 0.055027844536307234, 0.05478867504109881, 0.05454803970805959, 0.05430594120058002, 0.05406238218352549, 0.05381736532320925, 0.05357089328736541, 0.053322968745122344, 0.05307359436697545, 0.05282277282476036, 0.052570506791625955, 0.05231679894200838, 0.05206165195160388, 0.05180506849734156, 0.05154705125735769, 0.051287602910969274, 0.051026726138646505, 0.050764423621987576, 0.050500698043691936, 0.05023555208753258, 0.04996898843833289, 0.04970100978193721, 0.049431618805186144, 0.049160818195892055, 0.048888610642808986, 0.048614998835610886, 0.048339985464863434, 0.04806357322199882, 0.04778576479928946, 0.047506562889822704, 0.04722597018747583, 0.046943989386889186, 0.04666062318344075, 0.04637587427322173, 0.04608974535301047, 0.04580223912024715, 0.04551335827300804, 0.04522310550998037, 0.04493148353043887, 0.044638495034217594, 0.04434414272168768, 0.04404842929373102, 0.04375135745171539, 0.043452929897468934, 0.043153149333258166, 0.04285201846175943, 0.04254953998603725, 0.04224571660951782, 0.041940551035965806, 0.0416340459694601, 0.04132620411436606, 0.04101702817531735, 0.04070652085718513, 0.040394684865059594, 0.04008152290422012, 0.039767037680118, 0.03945123189834524, 0.03913410826461717, 0.03881566948474244, 0.03849591826460617, 0.0381748573101392, 0.037852489327300114, 0.037528817022048376, 0.03720384310032179, 0.036877570268014276, 0.03655000123094976, 0.03622113869486194, 0.03589098536536945, 0.03555954394795288, 0.03522681714793218, 0.03489280767044317, 0.034557518220414994, 0.03422095150254785, 0.03388311022128795, 0.033543997080809185, 0.033203614784984965, 0.03286196603737152, 0.03251905354117935, 0.03217487999925726, 0.03182944811406437, 0.03148276058765272, 0.031134820121639963, 0.030785629417193185, 0.030435191175001458, 0.030083508095257994, 0.029730582877635827, 0.029376418221266784, 0.029021016824720938, 0.028664381385983265, 0.028306514602432546, 0.027947419170821327, 0.027587097787252084, 0.027225553147158785, 0.02686278794528333, 0.02649880487565569, 0.026133606631571913, 0.02576719590557434, 0.025399575389430787, 0.02503074777411068, 0.024660715749769527, 0.024289482005723173, 0.023917049230431454, 0.023543420111473406, 0.02316859733553206, 0.022792583588368196, 0.022415381554805863, 0.02203699391870749, 0.02165742336295731, 0.02127667256943825, 0.020894744219015007, 0.020511640991512085, 0.02012736556569473, 0.019741920619249665, 0.019355308828764572, 0.01896753286970951, 0.018578595416416252, 0.01818849914206108, 0.017797246718642842, 0.017404840816965854, 0.017011284106619288, 0.016616579255960346, 0.016220728932091113, 0.015823735800845916, 0.015425602526765407, 0.015026331773085062, 0.014625926201709969, 0.01422438847320166, 0.013821721246754681, 0.01341792718018458, 0.013013008929902132, 0.012606969150901592, 0.012199810496737823, 0.01179153561951286, 0.011382147169853305, 0.010971647796895415, 0.010560040148266274, 0.01014732687006675, 0.009733510606853374, 0.009318594001620478, 0.008902579695783445, 0.008485470329161342, 0.008067268539958244, 0.007647976964748558, 0.007227598238457532, 0.0068061349943455305, 0.006383589863991233, 0.005959965477272446, 0.005535264462353988, 0.005109489445664581, 0.004682643051887887, 0.004254727903937903, 0.0038257466229498402, 0.0033957018282575586, 0.002964596137382958, 0.0025324321660139073, 0.002099212527994364, 0.0016649398353023519, 0.001229616698039039, 0.0007932457244089823, 0.0003558295207072735, -8.262930869816527e-05, -0.0005221281613809276, -0.0009626644368727703, -0.0014042355366775659, -0.0018468388642881126, -0.002290471825200804, -0.0027351318269304894, -0.0031808162790265266, -0.0036275225930863563, -0.004075248182772831, -0.004523990463825495, -0.004973746854079528, -0.005424514773476172, -0.005876291644081952, -0.006329074890098033, -0.00678286193788049, -0.007237650215948369, -0.007693437155004008, -0.00815022018794214, -0.008607996749868483, -0.00906676427810898, -0.009526520212228327, -0.00998726199404151, -0.010448987067627312, -0.010911692879343033, -0.011375376877837493, -0.011840036514064877, -0.012305669241298566, -0.012772272515142782, -0.013239843793548698, -0.013708380536825222, -0.014177880207652892, -0.01464834027109729, -0.015119758194621273, -0.015592131448099783, -0.016065457503828956, -0.016539733836543207, -0.017014957923423817, -0.01749112724411549, -0.017968239280734627, -0.018446291517885783, -0.018925281442669875, -0.019405206544701358, -0.019886064316114734, -0.02036785225158165, -0.020850567848319932, -0.021334208606106058, -0.021818772027287617, -0.02230425561679455, -0.022790656882151417, -0.023277973333487623, -0.023766202483550734, -0.024255341847716386, -0.024745388944000923, -0.02523634129307146, -0.025728196418258048, -0.026220951845564236, -0.02671460510367822, -0.02720915372398341, -0.027704595240571644, -0.02820092719024943, -0.02869814711255381, -0.02919625254975837, -0.02969524104688819, -0.030195110151725765, -0.03069585741482664, -0.031197480389523604, -0.03169997663194374, -0.03220334370101177, -0.032707579158466574, -0.03321268056886579, -0.03371864549959966, -0.03422547152089821, -0.03473315620584297, -0.03524169713037613, -0.035751091873309646, -0.036261338016334875, -0.03677243314403337, -0.037284374843883826, -0.03779716070627423, -0.03831078832450917, -0.03882525529481987, -0.03934055921637349, -0.03985669769128024, -0.040373668324606295, -0.040891468724377655, -0.04141009650159448, -0.0419295492702341, -0.04244982464726494, -0.04297092025265093, -0.04349283370936339, -0.04401556264338606, -0.04453910468372779, -0.04506345746242573, -0.04558861861455884, -0.04611458577825132, -0.046641356594684366, -0.047168928708101646, -0.0476972997658188, -0.04822646741823076, -0.04875642931881933, -0.049287183124161534, -0.04981872649393612, -0.050351057090933016, -0.0508841725810592, -0.05141807063334637, -0.05195274891995972, -0.05248820511620294, -0.053024436900527466, -0.053561441954539026, -0.05409921796300359, -0.054637762613856916, -0.05517707359820841, -0.055717148610351375, -0.05625798534776586, -0.056799581511130126, -0.05734193480432253, -0.057885042934432425, -0.05842890361176247, -0.058973514549839866, -0.05951887346541828, -0.06006497807848718, -0.0606118261122769, -0.06115941529326478, -0.061707743351182, -0.06225680801901914, -0.06280660703303184, -0.06335713813274776, -0.0639083990609714, -0.06446038756379129, -0.065013101390584, -0.06556653829402072, -0.06612069603007334, -0.06667557235801898, -0.06723116504044688, -0.06778747184326127, -0.06834449053569074, -0.06890221889028879, -0.0694606546829433, -0.07001979569287853, -0.07057963970266316, -0.07114018449821155, -0.07170142786879358, -0.07226336760703383, -0.07282600150892247, -0.07338932737381505, -0.07395334300444023, -0.07451804620690275, -0.07508343479068952, -0.07564950656867296, -0.07621625935711618, -0.07678369097567665, -0.07735179924741166, -0.07792058199878192, -0.07849003705965524, -0.07906016226331262, -0.07963095544644964, -0.08020241444918336, -0.08077453711505402, -0.08134732129103088, -0.08192076482751362, -0.08249486557833968, -0.08306962140078408, -0.08364503015556693, -0.08422108970685363, -0.08479779792226143, -0.08537515267286051, -0.08595315183318006, -0.08653179328120807, -0.08711107489839856, -0.08769099456967261, -0.08827155018342199, -0.08885273963151312, -0.08943456080928926, -0.09001701161557316, -0.09060008995267196, -0.09118379372637932, -0.0917681208459772, -0.09235306922423939, -0.092938636777436, -0.09352482142533342, -0.09411162109119868, -0.09469903370180272, -0.09528705718742049, -0.09587568948183672, -0.09646492852234455, -0.0970547722497528, -0.09764521860838316, -0.09823626554607745, -0.09882791101419525, -0.09942015296762009, -0.10001298936475851, -0.10060641816754502, -0.10120043734144184, -0.1017950448554413, -0.10239023868206965, -0.10298601679738667, -0.10358237718098855, -0.10417931781600996, -0.10477683668912545, -0.10537493179055113, -0.10597360111404626, -0.10657284265691525, -0.10717265442000948, -0.10777303440772698, -0.10837398062801663, -0.1089754910923774, -0.1095775638158612, -0.1101801968170726, -0.11078338811817223, -0.1113871357448755, -0.11199143772645678, -0.11259629209574643, -0.11320169688913728, -0.11380765014658047, -0.1144141499115896, -0.11502119423124037, -0.1156287811561722, -0.116236908740589, -0.11684557504225898, -0.11745477812251669, -0.11806451604626358, -0.1186747868819674, -0.1192855887016648, -0.11989691958095999, -0.12050877759902656, -0.12112116083860773, -0.12173406738601698, -0.12234749533113681, -0.12296144276742163, -0.12357590779189728, -0.12419088850515943, -0.12480638301137698, -0.12542238941828893, -0.12603890583720798, -0.12665593038301692, -0.12727346117417346, -0.12789149633270439, -0.1285100339842103, -0.12912907225786352, -0.12974860928640897, -0.13036864320616237, -0.13098917215701233, -0.1316101942824174, -0.13223170772940865, -0.1328537106485875, -0.13347620119412634, -0.1340991775237679, -0.1347226377988238, -0.13534658018417603, -0.13597100284827493, -0.13659590396313928, -0.13722128170435605, -0.13784713425107867, -0.13847345978602718, -0.13910025649548852, -0.13972752256931345, -0.14035525620091824, -0.1409834555872817, -0.14161211892894626, -0.14224124443001523, -0.14287083029815476, -0.143500874744589, -0.1441313759841027, -0.1447623322350374, -0.14539374171929315, -0.14602560266232514, -0.14665791329314326, -0.1472906718443113, -0.14792387655194578, -0.14855752565571434, -0.1491916173988349, -0.14982615002807373, -0.1504611217937446, -0.15109653094970765, -0.15173237575336782, -0.15236865446567333, -0.15300536535111275, -0.15364250667771778, -0.15428007671705637, -0.1549180737442357, -0.15555649603789656, -0.1561953418802162, -0.15683460955690187, -0.15747429735719398, -0.1581144035738597, -0.1587549265031956, -0.15939586444502155, -0.16003721570268345, -0.16067897858304703, -0.16132115139649927, -0.16196373245694543, -0.16260672008180585, -0.1632501125920159, -0.16389390831202294, -0.16453810556978513, -0.16518270269676794, -0.16582769802794367, -0.16647308990178844, -0.16711887666027966, -0.1677650566488957, -0.1684116282166117, -0.16905858971589766, -0.16970593950271806, -0.17035367593652653, -0.17100179738026683, -0.17165030220036753, -0.17229918876674247, -0.17294845545278528, -0.17359810063537034, -0.17424812269484666, -0.17489852001504036, -0.17554929098324565, -0.17620043399022864, -0.17685194743022112, -0.1775038297009189, -0.17815607920347937, -0.17880869434251837, -0.17946167352610856, -0.18011501516577616, -0.18076871767649796, -0.18142277947669824, -0.1820771989882485, -0.182731974636461, -0.18338710485008874, -0.18404258806132154, -0.18469842270578474, -0.18535460722253208, -0.18601114005404865, -0.18666801964624377, -0.18732524444844986, -0.1879828129134184, -0.18864072349731836, -0.18929897465973158, -0.18995756486365206, -0.19061649257547933, -0.19127575626501978, -0.19193535440547937, -0.1925952854734637, -0.19325554794897293, -0.19391614031540058, -0.19457706105952724, -0.19523830867152067, -0.19589988164493094, -0.19656177847668718, -0.19722399766709467, -0.19788653771983156, -0.19854939714194556, -0.1992125744438503, -0.19987606813932254, -0.20053987674549836, -0.20120399878287057, -0.20186843277528366, -0.20253317724993247, -0.20319823073735652, -0.2038635917714398, -0.20452925888940277, -0.2051952306318034, -0.20586150554253044, -0.20652808216880184, -0.20719495906116026, -0.20786213477346963, -0.2085296078629114, -0.20919737688998183, -0.20986544041848743, -0.21053379701554115, -0.21120244525156087, -0.21187138370026176, -0.2125406109386573, -0.2132101255470515, -0.21387992610903778, -0.21455001121149425, -0.21522037944457967, -0.2158910294017308, -0.21656195967965772, -0.21723316887833946, -0.2179046556010226, -0.2185764184542139, -0.21924845604768023, -0.21992076699444085, -0.22059334991076815, -0.2212662034161783, -0.22193932613343265, -0.22261271668852983, -0.22328637371070414, -0.22396029583242005, -0.22463448168937006, -0.22530892992046936, -0.22598363916785136, -0.2266586080768658, -0.2273338352960724, -0.22800931947723863, -0.22868505927533403, -0.2293610533485279, -0.23003730035818407, -0.23071379896885688, -0.23139054784828741, -0.23206754566739982, -0.23274479110029558, -0.23342228282425195, -0.23410001951971465, -0.234777999870297, -0.23545622256277277, -0.23613468628707476, -0.2368133897362877, -0.23749233160664682, -0.23817151059753153, -0.2388509254114629, -0.23953057475409753, -0.24021045733422547, -0.24089057186376367, -0.24157091705775371, -0.24225149163435625, -0.24293229431484753, -0.24361332382361428, -0.24429457888814998, -0.24497605823905041, -0.24565776061000935, -0.2463396847378141, -0.24702182936234107, -0.24770419322655182, -0.24838677507648751, -0.24906957366126725, -0.24975258773307954, -0.2504358160471828, -0.25111925736189555, -0.25180291043859715, -0.2524867740417192, -0.2531708469387445, -0.2538551279001995, -0.2545396156996528, -0.2552243091137082, -0.25590920692200164, -0.25659430790719623, -0.2572796108549779, -0.25796511455405124, -0.2586508177961341, -0.2593367193759537, -0.26002281809124234, -0.26070911274273245, -0.2613956021341517, -0.26208228507221937, -0.2627691603666414, -0.2634562268301053, -0.2641434832782764, -0.26483092852979273, -0.2655185614062604, -0.2662063807322504, -0.26689438533529136, -0.2675825740458673, -0.26827094569741194, -0.26895949912630424, -0.2696482331718639, -0.27033714667634723, -0.2710262384849403, -0.27171550744575856, -0.2724049524098372, -0.27309457223113026, -0.273784365766504, -0.27447433187573345, -0.2751644694214964, -0.27585477726937047, -0.27654525428782606, -0.277235899348225, -0.277926711324812, -0.27861768909471274, -0.27930883153792885, -0.28000013753733105, -0.28069160597865805, -0.28138323575050833, -0.2820750257443377, -0.2827669748544534, -0.2834590819780107, -0.2841513460150051, -0.2848437658682732, -0.2855363404434808, -0.28622906864912473, -0.28692194939652366, -0.2876149815998159, -0.28830816417595306, -0.28900149604469577, -0.28969497612861006, -0.29038860335306055, -0.29108237664620784, -0.29177629493900126, -0.2924703571651767, -0.2931645622612502, -0.29385890916651314, -0.2945533968230286, -0.29524802417562585, -0.2959427901718946, -0.29663769376218263, -0.2973327338995886, -0.298027909539959, -0.2987232196418811, -0.2994186631666815, -0.3001142390784177, -0.300809946343877, -0.3015057839325675, -0.30220175081671763, -0.3028978459712668, -0.3035940683738665, -0.3042904170048679, -0.3049868908473246, -0.3056834888869824, -0.3063802101122768, -0.3070770535143285, -0.307774018086937, -0.308471102826577, -0.3091683067323928, -0.3098656288061953, -0.3105630680524539, -0.31126062347829464, -0.3119582940934943, -0.31265607891047487, -0.31335397694429984, -0.31405198721266925, -0.31475010873591364, -0.3154483405369909, -0.3161466816414799, -0.31684513107757706, -0.31754368787609016, -0.31824235107043514, -0.31894111969662897, -0.3196399927932874, -0.32033896940161766, -0.3210380485654159, -0.321737229331061, -0.3224365107475093, -0.323135891866291, -0.3238353717415046, -0.32453494942981315, -0.3252346239904369, -0.3259343944851516, -0.326634259978281]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.factory.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.factory.js new file mode 100644 index 000000000000..51ad29f4c89f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.factory.js @@ -0,0 +1,187 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var factory = require( './../lib/factory.js' ); + + +// FIXTURES // + +var smallC = require( './fixtures/python/small_c_log.json' ); +var mediumC = require( './fixtures/python/medium_c_log.json' ); +var largeC = require( './fixtures/python/large_c_log.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof factory, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns a function', function test( t ) { + var logpdf = factory( 1.0 ); + t.strictEqual( typeof logpdf, 'function', 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the created function returns `NaN`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 1.0 ); + y = logpdf( NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + logpdf = factory( NaN ); + y = logpdf( 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + logpdf = factory( NaN ); + y = logpdf( NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `c <= 0`, the created function always returns `NaN`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( -1.0 ); + y = logpdf( 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.5 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a valid `c`, the function returns `-Infinity` when `x` is outside [0,1]', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 1.0 ); + y = logpdf( -1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( -0.5 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( 1.5 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( 10.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given small `c`', function test( t ) { + var expected; + var logpdf; + var delta; + var tol; + var c; + var i; + var x; + var y; + + expected = smallC.expected; + x = smallC.x; + c = smallC.c; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( c[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 750.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given a medium `c`', function test( t ) { + var expected; + var logpdf; + var delta; + var tol; + var c; + var i; + var x; + var y; + + expected = mediumC.expected; + x = mediumC.x; + c = mediumC.c; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( c[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 150.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given a large `c`', function test( t ) { + var expected; + var logpdf; + var delta; + var tol; + var c; + var i; + var x; + var y; + + expected = largeC.expected; + x = largeC.x; + c = largeC.c; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( c[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1350.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.js new file mode 100644 index 000000000000..c8fb79a7c82a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var logpdf = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof logpdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a factory method for generating `logpdf` functions', function test( t ) { + t.strictEqual( typeof logpdf.factory, 'function', 'exports a factory method' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.logpdf.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.logpdf.js new file mode 100644 index 000000000000..653bb95aba84 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.logpdf.js @@ -0,0 +1,165 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var logpdf = require( './../lib' ); + + +// FIXTURES // + +var smallC = require( './fixtures/python/small_c_log.json' ); +var mediumC = require( './fixtures/python/medium_c_log.json' ); +var largeC = require( './fixtures/python/large_c_log.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof logpdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y; + + y = logpdf( NaN, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `c <= 0`, the function returns `NaN`', function test( t ) { + var y; + + y = logpdf( 0.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.5, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 1.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a number outside [0,1] for `x` and a valid `c`, the function returns `-Infinity`', function test( t ) { + var y; + + y = logpdf( 2.0, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( -0.5, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( NINF, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( PINF, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given small parameter `c`', function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = smallC.expected; + x = smallC.x; + c = smallC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c:'+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 750.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given medium parameter `c`', function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = mediumC.expected; + x = mediumC.x; + c = mediumC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c:'+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 150.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given large parameter `c`', function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = largeC.expected; + x = largeC.x; + c = largeC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+'. c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1350.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.native.js new file mode 100644 index 000000000000..46be450fbd68 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/test/test.native.js @@ -0,0 +1,180 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var EPS = require( '@stdlib/constants/float64/eps' ); + + +// FIXTURES // + +var smallC = require( './fixtures/python/small_c_log.json' ); +var mediumC = require( './fixtures/python/medium_c_log.json' ); +var largeC = require( './fixtures/python/large_c_log.json' ); + + +// VARIABLES // + +var logpdf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( logpdf instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof logpdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { + var y; + + y = logpdf( NaN, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `c <= 0`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = logpdf( 0.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 0.5, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = logpdf( 1.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a number outside [0,1] for `x` and a valid `c`, the function returns `-Infinity`', opts, function test( t ) { + var y; + + y = logpdf( 2.0, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( -0.5, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( NINF, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + y = logpdf( PINF, 1.0 ); + t.strictEqual( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given small parameter `c`', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = smallC.expected; + x = smallC.x; + c = smallC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( expected[i] !== null ) { + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+', c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 800.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[i]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given medium parameter `c`', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = mediumC.expected; + x = mediumC.x; + c = mediumC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( expected[i] !== null ) { + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+', c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 150.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[i]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given large parameter `c`', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var c; + var y; + var i; + + expected = largeC.expected; + x = largeC.x; + c = largeC.c; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], c[i] ); + if ( expected[i] !== null ) { + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'x: '+x[i]+', c: '+c[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 1350.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. c: '+c[i]+'. y: '+y+'. E: '+expected[i]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + } + t.end(); +}); From ebc937ab262ef57ccefc35f7315210b1e0c2e4e6 Mon Sep 17 00:00:00 2001 From: Bhargav Dabhade Date: Fri, 30 Jan 2026 02:38:06 +0000 Subject: [PATCH 2/2] fix: update-copyright-years Signed-off-by: Bhargav Dabhade --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../base/dists/bradford/logpdf/benchmark/benchmark.native.js | 2 +- .../@stdlib/stats/base/dists/bradford/logpdf/binding.gyp | 2 +- .../@stdlib/stats/base/dists/bradford/logpdf/include.gypi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js index 27e49fb163bf..6b671ada9c35 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/benchmark/benchmark.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2025 The Stdlib Authors. +* Copyright (c) 2026 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp index 68a1ca11d160..0d6508a12e99 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/binding.gyp @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2025 The Stdlib Authors. +# Copyright (c) 2026 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi index ecfaf82a3279..bee8d41a2caf 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi +++ b/lib/node_modules/@stdlib/stats/base/dists/bradford/logpdf/include.gypi @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2025 The Stdlib Authors. +# Copyright (c) 2026 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.