From 5bdb01ecfcf4d0b10888624fc6d2572800f4a7d4 Mon Sep 17 00:00:00 2001 From: Jaysukh Makvana <111515433+Jaysukh-409@users.noreply.github.com> Date: Thu, 2 Jan 2025 13:59:54 +0530 Subject: [PATCH 01/87] feat: add `stats/base/dists/planck/mode` PR-URL: https://github.com/stdlib-js/stdlib/pull/4350 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Co-authored-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- .../stats/base/dists/planck/mode/README.md | 137 ++++++++++++++++++ .../dists/planck/mode/benchmark/benchmark.js | 52 +++++++ .../base/dists/planck/mode/docs/repl.txt | 26 ++++ .../dists/planck/mode/docs/types/index.d.ts | 52 +++++++ .../base/dists/planck/mode/docs/types/test.ts | 44 ++++++ .../base/dists/planck/mode/examples/index.js | 31 ++++ .../stats/base/dists/planck/mode/lib/index.js | 43 ++++++ .../stats/base/dists/planck/mode/lib/main.js | 60 ++++++++ .../stats/base/dists/planck/mode/package.json | 68 +++++++++ .../stats/base/dists/planck/mode/test/test.js | 67 +++++++++ 10 files changed, 580 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/README.md create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/examples/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/main.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/package.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/mode/test/test.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/README.md b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/README.md new file mode 100644 index 000000000000..0d62c5c213a4 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/README.md @@ -0,0 +1,137 @@ + + +# Mode + +> Planck (discrete exponential) distribution [mode][mode]. + + + +
+ +The [mode][mode] for a Planck random variable with shape parameter `λ` is + + + +```math +\mathop{\mathrm{mode}}\left( X \right) = 0 +``` + + + +
+ + + + + +
+ +## Usage + +```javascript +var mode = require( '@stdlib/stats/base/dists/planck/mode' ); +``` + +#### mode( lambda ) + +Returns the [mode][mode] of a Planck distribution with shape parameter `lambda`. + +```javascript +var v = mode( 0.1 ); +// returns 0 + +v = mode( 1.5 ); +// returns 0 +``` + +If provided a shape parameter `lambda` is nonpositive or `NaN`, the function returns `NaN`. + +```javascript +var v = mode( NaN ); +// returns NaN + +v = mode( -1.5 ); +// returns NaN +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var mode = require( '@stdlib/stats/base/dists/planck/mode' ); + +var lambda = uniform( 10, 0.1, 5.0 ); + +var v; +var i; +for ( i = 0; i < lambda.length; i++ ) { + v = mode( lambda[ i ] ); + console.log( 'λ: %d, mode(X;λ): %d', lambda[ i ].toFixed( 4 ), v.toFixed( 4 ) ); +} +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/benchmark/benchmark.js new file mode 100644 index 000000000000..8e8500b8b07b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/benchmark/benchmark.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var mode = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var lambda; + var y; + var i; + + lambda = uniform( 100, 0.1, 10.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = mode( lambda[ i % lambda.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/planck/mode/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/repl.txt new file mode 100644 index 000000000000..b4567e8a667f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/repl.txt @@ -0,0 +1,26 @@ + +{{alias}}( λ ) + Returns the mode of a Planck distribution with shape parameter `λ`. + + If `lambda <= 0`, the function returns `NaN`. + + Parameters + ---------- + λ: number + Shape parameter. + + Returns + ------- + out: integer + Mode. + + Examples + -------- + > var v = {{alias}}( 0.1 ) + 0 + > v = {{alias}}( 1.5 ) + 0 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/index.d.ts new file mode 100644 index 000000000000..488fb5289de0 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/index.d.ts @@ -0,0 +1,52 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Returns the mode of a Planck distribution. +* +* ## Notes +* +* - If `lambda <= 0`, the function returns `NaN`. +* +* @param lambda - shape parameter +* @returns mode +* +* @example +* var v = mode( 0.1 ); +* // returns 0 +* +* @example +* var v = mode( 1.5 ); +* // returns 0 +* +* @example +* var v = mode( -1.1 ); +* // returns NaN +* +* @example +* var v = mode( NaN ); +* // returns NaN +*/ +declare function mode( lambda: number ): number; + + +// EXPORTS // + +export = mode; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/test.ts new file mode 100644 index 000000000000..a1f70068852e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import mode = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + mode( 0.3 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + mode( true ); // $ExpectError + mode( false ); // $ExpectError + mode( null ); // $ExpectError + mode( undefined ); // $ExpectError + mode( '5' ); // $ExpectError + mode( [] ); // $ExpectError + mode( {} ); // $ExpectError + mode( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + mode(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/examples/index.js new file mode 100644 index 000000000000..987223b2b815 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var mode = require( './../lib' ); + +var lambda = uniform( 10, 0.1, 5.0 ); + +var v; +var i; +for ( i = 0; i < lambda.length; i++ ) { + v = mode( lambda[ i ] ); + console.log( 'λ: %d, mode(X;λ): %d', lambda[ i ].toFixed( 4 ), v.toFixed( 4 ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/index.js new file mode 100644 index 000000000000..06b9e6b178ba --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/index.js @@ -0,0 +1,43 @@ +/** +* @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'; + +/** +* Planck distribution mode. +* +* @module @stdlib/stats/base/dists/planck/mode +* +* @example +* var mode = require( '@stdlib/stats/base/dists/planck/mode' ); +* +* var v = mode( 0.1 ); +* // returns 0 +* +* v = mode( 1.5 ); +* // returns 0 +*/ + +// MODULES // + +var mode = require( './main.js' ); + + +// EXPORTS // + +module.exports = mode; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/main.js new file mode 100644 index 000000000000..59a3282ae45b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/lib/main.js @@ -0,0 +1,60 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); + + +// MAIN // + +/** +* Returns the mode of a Planck distribution. +* +* @param {PositiveNumber} lambda - shape parameter +* @returns {NonNegativeInteger} mode +* +* @example +* var v = mode( 0.1 ); +* // returns 0 +* +* @example +* var v = mode( 1.5 ); +* // returns 0 +* +* @example +* var v = mode( -1.1 ); +* // returns NaN +* +* @example +* var v = mode( NaN ); +* // returns NaN +*/ +function mode( lambda ) { + if ( isnan( lambda ) || lambda <= 0.0 ) { + return NaN; + } + return 0; +} + + +// EXPORTS // + +module.exports = mode; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/package.json b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/package.json new file mode 100644 index 000000000000..04c5b8bceac3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/package.json @@ -0,0 +1,68 @@ +{ + "name": "@stdlib/stats/base/dists/planck/mode", + "version": "0.0.0", + "description": "Planck (discrete exponential) distribution mode.", + "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", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "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", + "planck", + "parameter", + "memoryless", + "life-time", + "discrete", + "location", + "center", + "mode", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/mode/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/test/test.js new file mode 100644 index 000000000000..1a9f3da7a9e6 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/mode/test/test.js @@ -0,0 +1,67 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var mode = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof mode, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for `lambda`, the function returns `NaN`', function test( t ) { + var v = mode( NaN ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a shape parameter `lambda` which is nonpositive, the function returns `NaN`', function test( t ) { + var v; + + v = mode( 0.0 ); + t.equal( isnan( v ), true, 'returns expected value' ); + + v = mode( -1.5 ); + t.equal( isnan( v ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns `0.0` as the mode of a Planck distribution', function test( t ) { + var lambda; + var i; + var y; + + lambda = uniform( 10, 0.1, 10.0 ); + + for ( i = 0; i < lambda.length; i++ ) { + y = mode( lambda[ i ] ); + t.equal( y, 0.0, 'returns expected value' ); + } + t.end(); +}); From 28ad0864fff4451b470bd107c69301ba9e059898 Mon Sep 17 00:00:00 2001 From: Jaysukh Makvana <111515433+Jaysukh-409@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:02:44 +0530 Subject: [PATCH 02/87] feat: add `stats/base/dists/planck/logpmf` PR-URL: https://github.com/stdlib-js/stdlib/pull/4182 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Co-authored-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- .../stats/base/dists/planck/logpmf/README.md | 152 ++++++++++++++ .../planck/logpmf/benchmark/benchmark.js | 79 ++++++++ .../base/dists/planck/logpmf/docs/repl.txt | 64 ++++++ .../dists/planck/logpmf/docs/types/index.d.ts | 114 +++++++++++ .../dists/planck/logpmf/docs/types/test.ts | 98 +++++++++ .../dists/planck/logpmf/examples/index.js | 33 +++ .../base/dists/planck/logpmf/lib/factory.js | 78 +++++++ .../base/dists/planck/logpmf/lib/index.js | 60 ++++++ .../base/dists/planck/logpmf/lib/main.js | 77 +++++++ .../base/dists/planck/logpmf/package.json | 67 ++++++ .../test/fixtures/python/large_lambda.json | 1 + .../logpmf/test/fixtures/python/runner.py | 87 ++++++++ .../test/fixtures/python/small_lambda.json | 1 + .../dists/planck/logpmf/test/test.factory.js | 190 ++++++++++++++++++ .../base/dists/planck/logpmf/test/test.js | 38 ++++ .../dists/planck/logpmf/test/test.logpmf.js | 140 +++++++++++++ 16 files changed, 1279 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/README.md create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/examples/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/main.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/package.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/large_lambda.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/runner.py create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/small_lambda.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.logpmf.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/README.md b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/README.md new file mode 100644 index 000000000000..bd177c1db4d7 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/README.md @@ -0,0 +1,152 @@ + + +# Logarithm of Probability Mass Function + +> Evaluate the logarithm of the [probability mass function][pmf] (PMF) for a Planck (discrete exponential) distribution. + +
+ +The [probability mass function][pmf] (PMF) for a Planck random variable is defined as + + + +```math +\Pr(X = x, \lambda) = \begin{cases}(1 - e^{-\lambda})e^{-\lambda x} & \text{for } x = 0, 1, 2, \ldots \\ 0 & \text{otherwise} \end{cases} +``` + + + +where `λ` is the shape parameter and `x` denotes the count of events in a quantized system. + +
+ + + +
+ +## Usage + +```javascript +var logpmf = require( '@stdlib/stats/base/dists/planck/logpmf' ); +``` + +#### logpmf( x, lambda ) + +Evaluates the logarithm of the [probability mass function][pmf] (PMF) of a Planck (discrete exponential) distribution with shape parameter `lambda`. + +```javascript +var y = logpmf( 4.0, 0.3 ); +// returns ~-2.5502 + +y = logpmf( 2.0, 1.7 ); +// returns ~-3.6017 + +y = logpmf( -1.0, 2.5 ); +// returns -Infinity +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = logpmf( NaN, 0.0 ); +// returns NaN + +y = logpmf( 0.0, NaN ); +// returns NaN +``` + +If provided a shape parameter `lambda` which is nonpositive number, the function returns `NaN`. + +```javascript +var y = logpmf( 2.0, -1.0 ); +// returns NaN +``` + +#### logpmf.factory( lambda ) + +Returns a function for evaluating the logarithm of the [probability mass function][pmf] (PMF) of a Planck (discrete exponential) distribution with shape parameter `lambda`. + +```javascript +var mylogpmf = logpmf.factory( 0.5 ); +var y = mylogpmf( 3.0 ); +// returns ~-2.4328 + +y = mylogpmf( 1.0 ); +// returns ~-1.4328 +``` + +
+ + + +
+ +## Notes + +- In virtually all cases, using the `logpmf` or `logcdf` functions is preferable to manually computing the logarithm of the `pmf` or `cdf`, respectively, since the latter is prone to overflow and underflow. + +
+ + + +
+ +## Examples + + + +```javascript +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var logpmf = require( '@stdlib/stats/base/dists/planck/logpmf' ); + +var x = discreteUniform( 10, 0, 5 ); +var lambda = uniform( 10, 0.1, 5.0 ); + +var y; +var i; +for ( i = 0; i < lambda.length; i++ ) { + y = logpmf( x[ i ], lambda[ i ] ); + console.log( 'x: %d, λ: %d, ln( P( X = x; λ ) ): %d', x[ i ], lambda[ i ].toFixed( 4 ), y.toFixed( 4 ) ); +} +``` + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/benchmark/benchmark.js new file mode 100644 index 000000000000..2d48249bfa8f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/benchmark/benchmark.js @@ -0,0 +1,79 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var logpmf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var lambda; + var x; + var y; + var i; + + x = discreteUniform( 100, 0, 40 ); + lambda = uniform( 100, 0.1, 10.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = logpmf( x[ i % x.length ], lambda[ i % lambda.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( pkg+':factory', function benchmark( b ) { + var mylogpmf; + var x; + var y; + var i; + + x = discreteUniform( 100, 0, 40 ); + mylogpmf = logpmf.factory( 0.3 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = mylogpmf( 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/planck/logpmf/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/repl.txt new file mode 100644 index 000000000000..1ae67dfc813e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/repl.txt @@ -0,0 +1,64 @@ + +{{alias}}( x, λ ) + Evaluates the logarithm of the probability mass function (PMF) for a Planck + distribution with shape parameter `λ` at a value `x`. + + If provided `NaN` as any argument, the function returns `NaN`. + + If `λ <= 0`, the function returns `NaN`. + + Parameters + ---------- + x: number + Input value. + + λ: number + Shape parameter. + + Returns + ------- + out: number + Evaluated logPMF. + + Examples + -------- + > var y = {{alias}}( 4.0, 0.3 ) + ~-2.5502 + > y = {{alias}}( 2.0, 1.7 ) + ~-3.6017 + > y = {{alias}}( -1.0, 2.5 ) + -Infinity + > y = {{alias}}( 0.0, NaN ) + NaN + > y = {{alias}}( NaN, 0.5 ) + NaN + // Invalid shape parameter: + > y = {{alias}}( 2.0, -1.0 ) + NaN + + +{{alias}}.factory( λ ) + Returns a function for evaluating the logarithm of the probability mass + function (PMF) of a Planck distribution with shape parameter `λ`. + + Parameters + ---------- + λ: number + Shape parameter. + + Returns + ------- + logpmf: Function + Logarithm of the probability mass function (PMF). + + Examples + -------- + > var mylogpmf = {{alias}}.factory( 0.5 ); + > var y = mylogpmf( 3.0 ) + ~-2.4328 + > y = mylogpmf( 1.0 ) + ~-1.4328 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/index.d.ts new file mode 100644 index 000000000000..387dba3e316d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/index.d.ts @@ -0,0 +1,114 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the natural logarithm of the probability mass function (PMF) for a Planck distribution. +* +* @param x - input value +* @returns evaluated PMF +*/ +type Unary = ( x: number ) => number; + +/** +* Interface for the natural logarithm of the probability mass function (PMF) of a Planck distribution. +*/ +interface LogPMF { + /** + * Evaluates the logarithm of the probability mass function (PMF) for a Planck distribution with shape parameter `lambda` at a value `x`. + * + * ## Notes + * + * - If `lambda <= 0`, the function returns `NaN`. + * + * @param x - input value + * @param lambda - shape parameter + * @returns logarithm of PMF + * + * @example + * var y = logpmf( 4.0, 0.3 ); + * // returns ~-2.5502 + * + * @example + * var y = logpmf( 2.0, 1.7 ); + * // returns ~-3.6017 + * + * @example + * var y = logpmf( -1.0, 2.5 ); + * // returns -Infinity + * + * @example + * var y = logpmf( 0.0, NaN ); + * // returns NaN + * + * @example + * var y = logpmf( NaN, 0.5 ); + * // returns NaN + * + * @example + * // Invalid shape parameter: + * var y = logpmf( 2.0, -1.0 ); + * // returns NaN + */ + ( x: number, lambda: number ): number; + + /** + * Returns a function for evaluating the logarithm of the probability mass function (PMF) for a Planck distribution with shape parameter `lambda`. + * + * @param lambda - shape parameter + * @returns logPMF + * + * @example + * var mylogpmf = logpmf.factory( 0.5 ); + * var y = mylogpmf( 3.0 ); + * // returns ~-2.4327 + * + * y = mylogpmf( 1.0 ); + * // returns ~-1.4327 + */ + factory( lambda: number ): Unary; +} + +/** +* Evaluates the natural logarithm of the probability mass function (PMF) for a Planck distribution. +* +* @param x - input value +* @param lambda - shape parameter +* @returns evaluated logPMF +* +* @example +* var y = logpmf( 4.0, 0.3 ); +* // returns ~-2.5502 +* +* y = logpmf( 2.0, 1.7 ); +* // returns ~-3.6017 +* +* var mylogpmf = logpmf.factory( 0.5 ); +* y = mylogpmf( 3.0 ); +* // returns ~-2.4327 +* +* y = mylogpmf( 1.0 ); +* // returns ~-1.4327 +*/ +declare var logPMF: LogPMF; + + +// EXPORTS // + +export = logPMF; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/test.ts new file mode 100644 index 000000000000..344fadf696c9 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/docs/types/test.ts @@ -0,0 +1,98 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import logpmf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + logpmf( 2.0, 0.4 ); // $ExpectType number + logpmf( 1.0, 0.2 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + logpmf( true, 0.3 ); // $ExpectError + logpmf( false, 0.2 ); // $ExpectError + logpmf( '5', 0.1 ); // $ExpectError + logpmf( [], 0.1 ); // $ExpectError + logpmf( {}, 0.4 ); // $ExpectError + logpmf( ( x: number ): number => x, 0.2 ); // $ExpectError + + logpmf( 0.0, true ); // $ExpectError + logpmf( 1.0, false ); // $ExpectError + logpmf( 0.0, '5' ); // $ExpectError + logpmf( 1.0, [] ); // $ExpectError + logpmf( 2.0, {} ); // $ExpectError + logpmf( 3.0, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + logpmf(); // $ExpectError + logpmf( 0.0 ); // $ExpectError + logpmf( 1.0, 0.3, 4.0 ); // $ExpectError +} + +// Attached to main export is a `factory` method which returns a function... +{ + logpmf.factory( 0.4 ); // $ExpectType Unary +} + +// The `factory` method returns a function which returns a number... +{ + const fcn = logpmf.factory( 0.4 ); + fcn( 2.0 ); // $ExpectType number +} + +// The compiler throws an error if the function returned by the `factory` method is provided an invalid argument... +{ + const fcn = logpmf.factory( 0.4 ); + 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 = logpmf.factory( 0.4 ); + fcn(); // $ExpectError + fcn( 2.0, 0.0 ); // $ExpectError + fcn( 2.0, 0.0, 1.0 ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided a value other than a number... +{ + logpmf.factory( true ); // $ExpectError + logpmf.factory( false ); // $ExpectError + logpmf.factory( '5' ); // $ExpectError + logpmf.factory( [] ); // $ExpectError + logpmf.factory( {} ); // $ExpectError + logpmf.factory( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + logpmf.factory( 0.0, 0.2 ); // $ExpectError + logpmf.factory( 0.0, 0.4, 8.0 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/examples/index.js new file mode 100644 index 000000000000..5f47a89e33a2 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/examples/index.js @@ -0,0 +1,33 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var logpmf = require( './../lib' ); + +var x = discreteUniform( 10, 0, 5 ); +var lambda = uniform( 10, 0.1, 5.0 ); + +var y; +var i; +for ( i = 0; i < lambda.length; i++ ) { + y = logpmf( x[ i ], lambda[ i ] ); + console.log( 'x: %d, λ: %d, ln( P( X = x; λ ) ): %d', x[ i ], lambda[ i ].toFixed( 4 ), y.toFixed( 4 ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/factory.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/factory.js new file mode 100644 index 000000000000..9a02a76317c8 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/factory.js @@ -0,0 +1,78 @@ +/** +* @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 constantFunction = require( '@stdlib/utils/constant-function' ); +var isNonNegativeInteger = require( '@stdlib/math/base/assert/is-nonnegative-integer' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var expm1 = require( '@stdlib/math/base/special/expm1' ); +var ln = require( '@stdlib/math/base/special/ln' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// MAIN // + +/** +* Returns a function for evaluating the logarithm of the probability mass function (PMF) for a Planck distribution with shape parameter `lambda`. +* +* @param {PositiveNumber} lambda - shape parameter +* @returns {Function} logPMF +* +* @example +* var logpmf = factory( 0.5 ); +* var y = logpmf( 3.0 ); +* // returns ~-2.4328 +* +* y = logpmf( 1.0 ); +* // returns ~-1.4328 +*/ +function factory( lambda ) { + if ( isnan( lambda ) || lambda <= 0.0 ) { + return constantFunction( NaN ); + } + return logpmf; + + /** + * Evaluates the logarithm of the probability mass function (PMF) for a Planck distribution. + * + * @private + * @param {number} x - input value + * @returns {NonPositiveNumber} evaluated logPMF + * + * @example + * var y = logpmf( 2.0 ); + * // returns + */ + function logpmf( x ) { + if ( isnan( x ) ) { + return NaN; + } + if ( isNonNegativeInteger( x ) ) { + return ln( -expm1( -lambda ) ) - ( lambda * x ); + } + return NINF; + } +} + + +// EXPORTS // + +module.exports = factory; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/index.js new file mode 100644 index 000000000000..1084bd9a8c43 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/index.js @@ -0,0 +1,60 @@ +/** +* @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'; + +/** +* Evaluate the logarithm of the probability mass function (PMF) for a Planck distribution. +* +* @module @stdlib/stats/base/dists/planck/logpmf +* +* @example +* var logpmf = require( '@stdlib/stats/base/dists/planck/logpmf' ); +* +* var y = logpmf( 4.0, 0.3 ); +* // returns ~-2.5502 +* +* y = logpmf( 2.0, 1.7 ); +* // returns ~-3.6017 +* +* y = logpmf( -1.0, 0.5 ); +* // returns 0.0 +* +* var mylogpmf = logpmf.factory( 0.5 ); +* y = mylogpmf( 3.0 ); +* // returns ~-2.4328 +* +* y = mylogpmf( 1.0 ); +* // returns ~-1.4328 +*/ + +// 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/planck/logpmf/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/main.js new file mode 100644 index 000000000000..be92ba4b2b82 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/lib/main.js @@ -0,0 +1,77 @@ +/** +* @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 isNonNegativeInteger = require( '@stdlib/math/base/assert/is-nonnegative-integer' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var expm1 = require( '@stdlib/math/base/special/expm1' ); +var ln = require( '@stdlib/math/base/special/ln' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// MAIN // + +/** +* Evaluates the logarithm of the probability mass function (PMF) for a Planck distribution with shape parameter `lambda` at a value `x`. +* +* @param {number} x - input value +* @param {PositiveNumber} lambda - shape parameter +* @returns {NonPositiveNumber} logarithm of PMF +* +* @example +* var y = logpmf( 4.0, 0.3 ); +* // returns ~-2.5502 +* +* @example +* var y = logpmf( 2.0, 1.7 ); +* // returns ~-3.6017 +* +* @example +* var y = logpmf( -1.0, 2.5 ); +* // returns -Infinity +* +* @example +* var y = logpmf( 0.0, NaN ); +* // returns NaN +* +* @example +* var y = logpmf( NaN, 0.5 ); +* // returns NaN +* +* @example +* // Invalid shape parameter: +* var y = logpmf( 2.0, -1.0 ); +* // returns NaN +*/ +function logpmf( x, lambda ) { + if ( isnan( x ) || isnan( lambda ) || lambda <= 0.0 ) { + return NaN; + } + if ( isNonNegativeInteger( x ) ) { + return ln( -expm1( -lambda ) ) - ( lambda * x ); + } + return NINF; +} + + +// EXPORTS // + +module.exports = logpmf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/package.json b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/package.json new file mode 100644 index 000000000000..e13245ee25e9 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/package.json @@ -0,0 +1,67 @@ +{ + "name": "@stdlib/stats/base/dists/planck/logpmf", + "version": "0.0.0", + "description": "Evaluate the logarithm of the probability mass function (PMF) for a Planck (discrete exponential) distribution.", + "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", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "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", + "probability", + "pmf", + "discrete distribution", + "logarithm", + "log", + "planck", + "univariate", + "discrete" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/large_lambda.json b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/large_lambda.json new file mode 100644 index 000000000000..d4cd2afb2208 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/large_lambda.json @@ -0,0 +1 @@ +{"x": [9.0, 9.0, 2.0, 6.0, 0.0, 7.0, 3.0, 4.0, 5.0, 7.0, 1.0, 5.0, 10.0, 3.0, 1.0, 4.0, 6.0, 10.0, 5.0, 1.0, 5.0, 1.0, 6.0, 9.0, 0.0, 5.0, 3.0, 2.0, 3.0, 5.0, 8.0, 2.0, 3.0, 7.0, 9.0, 2.0, 1.0, 4.0, 7.0, 9.0, 5.0, 7.0, 9.0, 8.0, 6.0, 4.0, 4.0, 1.0, 9.0, 3.0, 0.0, 4.0, 9.0, 9.0, 6.0, 2.0, 2.0, 3.0, 5.0, 0.0, 7.0, 3.0, 2.0, 1.0, 1.0, 6.0, 7.0, 2.0, 8.0, 8.0, 8.0, 10.0, 6.0, 5.0, 0.0, 8.0, 9.0, 7.0, 1.0, 9.0, 1.0, 1.0, 8.0, 5.0, 3.0, 2.0, 0.0, 2.0, 9.0, 4.0, 3.0, 6.0, 5.0, 8.0, 1.0, 1.0, 5.0, 5.0, 6.0, 7.0, 9.0, 1.0, 5.0, 8.0, 2.0, 8.0, 9.0, 7.0, 4.0, 4.0, 7.0, 8.0, 6.0, 4.0, 4.0, 5.0, 5.0, 7.0, 10.0, 6.0, 7.0, 2.0, 2.0, 3.0, 9.0, 3.0, 4.0, 2.0, 3.0, 3.0, 6.0, 2.0, 6.0, 8.0, 9.0, 4.0, 2.0, 10.0, 1.0, 5.0, 0.0, 4.0, 8.0, 6.0, 8.0, 3.0, 1.0, 5.0, 10.0, 1.0, 4.0, 7.0, 3.0, 7.0, 3.0, 4.0, 6.0, 0.0, 2.0, 10.0, 2.0, 4.0, 5.0, 5.0, 4.0, 7.0, 9.0, 3.0, 4.0, 7.0, 0.0, 4.0, 3.0, 0.0, 4.0, 0.0, 0.0, 5.0, 4.0, 9.0, 0.0, 9.0, 1.0, 4.0, 4.0, 8.0, 10.0, 6.0, 3.0, 8.0, 2.0, 6.0, 2.0, 4.0, 10.0, 9.0, 9.0, 1.0, 3.0, 2.0, 1.0, 2.0, 6.0, 5.0, 2.0, 6.0, 2.0, 5.0, 4.0, 6.0, 7.0, 2.0, 9.0, 9.0, 3.0, 8.0, 8.0, 4.0, 10.0, 1.0, 3.0, 6.0, 1.0, 9.0, 2.0, 8.0, 10.0, 2.0, 2.0, 9.0, 0.0, 9.0, 1.0, 5.0, 2.0, 2.0, 8.0, 3.0, 6.0, 2.0, 9.0, 8.0, 2.0, 9.0, 2.0, 3.0, 4.0, 10.0, 1.0, 3.0, 1.0, 8.0, 6.0, 4.0, 10.0, 9.0, 8.0, 6.0, 5.0, 3.0, 5.0, 4.0, 0.0, 3.0, 10.0, 7.0, 4.0, 5.0, 1.0, 3.0, 10.0, 2.0, 9.0, 4.0, 9.0, 8.0, 8.0, 4.0, 9.0, 9.0, 10.0, 7.0, 6.0, 9.0, 10.0, 2.0, 3.0, 6.0, 2.0, 5.0, 0.0, 5.0, 1.0, 9.0, 1.0, 4.0, 3.0, 5.0, 8.0, 4.0, 0.0, 1.0, 10.0, 10.0, 8.0, 2.0, 7.0, 6.0, 9.0, 6.0, 0.0, 6.0, 1.0, 1.0, 4.0, 0.0, 7.0, 0.0, 9.0, 7.0, 10.0, 4.0, 5.0, 9.0, 4.0, 4.0, 8.0, 8.0, 3.0, 1.0, 4.0, 6.0, 0.0, 0.0, 7.0, 8.0, 8.0, 10.0, 5.0, 7.0, 3.0, 1.0, 7.0, 4.0, 7.0, 8.0, 7.0, 8.0, 9.0, 1.0, 4.0, 3.0, 2.0, 2.0, 6.0, 5.0, 7.0, 8.0, 4.0, 2.0, 10.0, 0.0, 7.0, 8.0, 2.0, 2.0, 2.0, 5.0, 9.0, 7.0, 3.0, 1.0, 6.0, 2.0, 5.0, 3.0, 6.0, 8.0, 2.0, 1.0, 9.0, 7.0, 3.0, 1.0, 9.0, 3.0, 10.0, 9.0, 8.0, 5.0, 9.0, 3.0, 0.0, 2.0, 3.0, 4.0, 7.0, 5.0, 9.0, 5.0, 3.0, 1.0, 4.0, 8.0, 4.0, 7.0, 7.0, 7.0, 9.0, 3.0, 3.0, 10.0, 3.0, 2.0, 3.0, 2.0, 1.0, 5.0, 3.0, 2.0, 7.0, 3.0, 4.0, 7.0, 3.0, 10.0, 3.0, 9.0, 1.0, 8.0, 7.0, 9.0, 7.0, 7.0, 4.0, 8.0, 8.0, 3.0, 2.0, 9.0, 2.0, 5.0, 9.0, 3.0, 9.0, 8.0, 1.0, 6.0, 4.0, 3.0, 3.0, 6.0, 2.0, 3.0, 6.0, 1.0, 2.0, 8.0, 5.0, 2.0, 8.0, 2.0, 7.0, 1.0, 6.0, 10.0, 8.0, 7.0, 2.0, 5.0, 10.0, 2.0, 10.0, 3.0, 0.0, 9.0, 2.0, 7.0, 6.0, 1.0, 4.0, 0.0, 1.0, 4.0, 5.0, 5.0, 5.0, 5.0, 8.0, 4.0, 3.0, 6.0, 8.0, 8.0, 5.0, 9.0, 5.0, 7.0, 2.0, 1.0, 8.0, 1.0, 8.0, 0.0, 6.0, 7.0, 1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 4.0, 3.0, 2.0, 2.0, 6.0, 10.0, 7.0, 10.0, 8.0, 9.0, 7.0, 7.0, 2.0, 2.0, 4.0, 4.0, 6.0, 0.0, 6.0, 3.0, 4.0, 4.0, 2.0, 1.0, 7.0, 10.0, 1.0, 3.0, 7.0, 6.0, 9.0, 3.0, 2.0, 3.0, 9.0, 2.0, 6.0, 2.0, 3.0, 3.0, 0.0, 6.0, 6.0, 6.0, 10.0, 1.0, 10.0, 7.0, 0.0, 3.0, 0.0, 2.0, 9.0, 9.0, 3.0, 2.0, 6.0, 9.0, 6.0, 1.0, 3.0, 2.0, 4.0, 4.0, 7.0, 10.0, 5.0, 1.0, 1.0, 2.0, 1.0, 8.0, 6.0, 10.0, 3.0, 5.0, 7.0, 3.0, 1.0, 9.0, 3.0, 10.0, 6.0, 3.0, 0.0, 2.0, 2.0, 1.0, 1.0, 8.0, 9.0, 9.0, 2.0, 6.0, 1.0, 7.0, 9.0, 7.0, 6.0, 6.0, 5.0, 7.0, 4.0, 7.0, 4.0, 8.0, 0.0, 10.0, 3.0, 6.0, 5.0, 7.0, 1.0, 3.0, 1.0, 6.0, 2.0, 3.0, 9.0, 9.0, 4.0, 8.0, 9.0, 8.0, 2.0, 6.0, 1.0, 7.0, 8.0, 1.0, 1.0, 4.0, 8.0, 3.0, 0.0, 3.0, 8.0, 8.0, 8.0, 8.0, 3.0, 2.0, 4.0, 7.0, 4.0, 9.0, 1.0, 5.0, 2.0, 9.0, 8.0, 7.0, 1.0, 6.0, 7.0, 1.0, 9.0, 7.0, 9.0, 9.0, 8.0, 6.0, 9.0, 6.0, 3.0, 4.0, 7.0, 9.0, 5.0, 4.0, 4.0, 8.0, 8.0, 7.0, 6.0, 0.0, 9.0, 4.0, 3.0, 6.0, 6.0, 1.0, 8.0, 9.0, 1.0, 2.0, 5.0, 7.0, 9.0, 2.0, 6.0, 7.0, 9.0, 3.0, 1.0, 8.0, 7.0, 4.0, 5.0, 1.0, 6.0, 1.0, 6.0, 3.0, 3.0, 2.0, 6.0, 10.0, 8.0, 3.0, 9.0, 2.0, 9.0, 0.0, 7.0, 7.0, 5.0, 7.0, 8.0, 4.0, 8.0, 8.0, 0.0, 3.0, 7.0, 1.0, 8.0, 9.0, 8.0, 2.0, 7.0, 8.0, 3.0, 4.0, 4.0, 1.0, 2.0, 7.0, 3.0, 6.0, 6.0, 3.0, 3.0, 10.0, 0.0, 3.0, 0.0, 8.0, 1.0, 9.0, 1.0, 6.0, 0.0, 4.0, 4.0, 2.0, 6.0, 1.0, 1.0, 5.0, 2.0, 0.0, 7.0, 6.0, 9.0, 10.0, 5.0, 3.0, 8.0, 3.0, 0.0, 8.0, 2.0, 2.0, 9.0, 7.0, 8.0, 6.0, 8.0, 1.0, 9.0, 9.0, 9.0, 6.0, 8.0, 2.0, 2.0, 3.0, 2.0, 6.0, 1.0, 7.0, 5.0, 3.0, 7.0, 6.0, 10.0, 5.0, 3.0, 0.0, 10.0, 8.0, 4.0, 9.0, 2.0, 1.0, 4.0, 7.0, 8.0, 1.0, 5.0, 2.0, 8.0, 1.0, 0.0, 1.0, 0.0, 9.0, 7.0, 1.0, 6.0, 2.0, 7.0, 8.0, 1.0, 4.0, 4.0, 8.0, 4.0, 4.0, 5.0, 9.0, 7.0, 2.0, 7.0, 4.0, 9.0, 2.0, 10.0, 0.0, 1.0, 7.0, 3.0, 4.0, 3.0, 3.0, 5.0, 3.0, 2.0, 9.0, 0.0, 6.0, 7.0, 1.0, 5.0, 1.0, 3.0, 0.0, 6.0, 5.0, 1.0, 1.0, 0.0, 3.0, 8.0, 8.0, 8.0, 5.0, 8.0, 2.0, 5.0, 10.0, 5.0, 2.0, 10.0, 4.0, 6.0, 10.0, 4.0, 10.0, 8.0, 7.0, 9.0, 9.0, 2.0, 8.0, 5.0, 6.0, 0.0, 6.0, 9.0, 10.0, 9.0, 2.0, 1.0, 8.0, 7.0, 1.0, 10.0, 4.0, 5.0, 7.0, 9.0, 6.0, 6.0, 8.0, 5.0, 8.0, 1.0, 5.0, 8.0, 10.0, 2.0, 10.0, 0.0, 3.0, 2.0, 10.0, 1.0, 5.0, 9.0, 1.0, 9.0, 10.0, 10.0, 9.0, 9.0, 4.0, 3.0, 4.0, 9.0, 5.0, 3.0, 0.0, 8.0, 4.0, 1.0, 9.0, 8.0, 4.0, 4.0, 4.0, 5.0, 6.0, 5.0, 4.0, 5.0, 1.0, 9.0, 2.0, 4.0, 10.0, 5.0, 6.0, 5.0, 5.0, 1.0, 1.0, 8.0, 3.0, 3.0, 4.0, 3.0, 6.0, 9.0, 1.0, 1.0, 5.0, 3.0, 1.0, 3.0, 1.0, 4.0, 0.0, 4.0, 10.0, 3.0, 7.0, 9.0, 3.0, 0.0, 4.0, 7.0, 4.0, 9.0, 7.0, 9.0, 7.0], "lambda": [14.517417650065793, 10.500259555267803, 18.933359033691985, 15.323533610533119, 11.978348732880711, 11.436860570809385, 14.672160556532216, 17.49226315582475, 19.770194280475327, 13.260434381304648, 19.4294199064568, 16.32303104210846, 11.55297654011212, 13.782470314979506, 14.99043616566452, 16.36331480496053, 11.787867544575366, 16.461034002376692, 10.320409214567457, 19.01563031570774, 16.362626407475044, 17.685220948708782, 19.658142222133, 13.521393819571184, 17.998266768678832, 11.246038016355836, 19.806836427940954, 13.470686493891803, 11.93952643981779, 17.1929049838724, 12.635519592363693, 14.283978637648413, 10.729235141023333, 13.383513338137012, 15.748800922711686, 19.25650633917598, 18.599729381057042, 16.21527676229465, 16.470470508798954, 10.461972170262237, 10.316623520928323, 16.303481301110132, 11.072001047077356, 11.058706020302019, 15.923334328439978, 16.166089538730432, 13.311735218758045, 17.829753932054672, 13.838918096898068, 15.847964685834729, 16.64011785892432, 12.874447654620619, 19.818641265642263, 11.250266933195727, 18.065461507340643, 19.077329300197647, 10.77349603294013, 17.026831910077703, 18.145997399451517, 10.53564495004925, 10.838295375568036, 11.077598506406732, 12.306365368492997, 16.380385696960452, 12.376439231398667, 14.347164168347398, 17.969798715768018, 10.079215637390774, 16.004778220992904, 18.862876033346865, 10.33115931807624, 16.385511833603175, 12.42267497816071, 13.438356265985792, 17.170806877773114, 17.095384007366405, 10.296397606122367, 19.130342931390672, 11.146483193349383, 19.19508204866724, 19.171600359484934, 17.127446586714967, 12.039011376661406, 16.097695055373705, 16.55912279861176, 10.274028875215397, 12.389050440023178, 10.454557405408721, 14.172375563052963, 14.872340671374905, 16.092424162031833, 18.2369731363168, 19.85999967378248, 19.471523511920058, 17.488356306473662, 10.38184322807584, 11.047482561671444, 17.14092966633212, 13.097578368777043, 16.358341771989338, 15.64854589935155, 15.66620953307472, 16.891519953575077, 12.03256195363163, 15.339927696882452, 17.815630464408216, 18.21893054687304, 19.615048147984048, 14.810395502942328, 14.406736706288767, 18.75183894166407, 10.569669977665333, 12.945837824712385, 13.049770768012614, 13.015393361603103, 11.084808429422246, 19.395054800604587, 13.011446320671745, 17.8460489338709, 14.607735722277729, 14.040228440903824, 18.26789328290141, 10.107247984673675, 10.453244025872069, 16.25621732872059, 15.100498376189124, 13.945686338050438, 19.995944953960723, 17.037752787102907, 10.774350058618694, 14.619879110743225, 10.38066413336227, 19.88613536273646, 14.93872417083603, 10.588588040589762, 14.943128815984277, 18.64674757214749, 16.670348637388727, 18.63415573346213, 12.121004318262422, 16.71928034267714, 13.217390788342762, 11.322090385260953, 19.26692573268112, 19.96591617296613, 12.812483509779701, 14.462533590654068, 13.781675902165986, 14.005171306074207, 19.81623447558384, 16.775667518523154, 13.478138151957241, 14.313887503177368, 16.644293267715025, 11.958588661109669, 19.875545934101456, 14.429378050163324, 16.557958404504138, 16.122951523803145, 17.94173781918313, 10.298582202607777, 13.371642181438272, 13.837003030441506, 16.514692687631587, 12.872286712616791, 19.240471797029716, 13.156674836079103, 11.306740739019753, 17.745098522247883, 17.343482893068384, 11.894434713410579, 11.203980747242134, 11.705553719570055, 18.958466410950457, 11.206126183580162, 12.91456571747941, 10.048081392423038, 15.464147760257061, 18.685422729546914, 11.091716537824482, 10.82547727224886, 18.456783974928854, 11.730093152635122, 19.485890009455357, 14.474074989920389, 18.685805433306584, 10.630889680448757, 13.054117275888908, 17.23322297479014, 15.465020944112137, 13.75868651515262, 15.037844184963738, 15.402382515957509, 15.062235639642275, 11.513792293369598, 18.40118866455756, 19.320308207647884, 17.556844477721224, 17.557788345860384, 14.751294732770909, 17.303265597825437, 19.54828139359481, 15.962437077850812, 15.403210522526287, 19.739233992721495, 16.83844948016702, 11.616494394319124, 13.26241543162147, 15.869461199945011, 18.978471396139525, 14.86325466558305, 10.71573724131156, 13.11832568041272, 16.237693928640113, 19.88126573297993, 19.892431390457652, 10.19798427226099, 11.813469418053469, 19.392782751099148, 10.487593524860186, 19.27823321912512, 17.28842938578675, 12.952578992106574, 18.99738389468468, 13.93092625534708, 10.562273436536922, 19.377688497473223, 16.254055371269853, 11.511726320617548, 10.209240836352748, 10.463473723108104, 12.064031267837228, 17.265763295370153, 16.242469495498074, 16.505951388978016, 10.034996403758855, 12.88877877170913, 15.91558162021565, 17.62357505330793, 11.420725194824499, 15.71748655032184, 12.31938249757023, 19.524807409266778, 14.69817023165909, 12.076309414008714, 13.837732543593598, 16.43549190810037, 14.414740852468215, 11.856385116407447, 19.942346451393792, 13.339683983798672, 10.928693779430853, 13.614374535781362, 13.605232103898068, 17.44798301653187, 17.209219834785436, 14.072459354453981, 18.23385416113647, 16.76455786837968, 11.479266368244899, 14.686089889130184, 15.541850664759986, 10.731240027276096, 12.737088632257871, 18.895639826013948, 13.404045135720171, 10.349868239288766, 17.08206884392287, 19.05154550606553, 13.892440816797798, 13.514453083226247, 12.165345620315136, 17.55541027276045, 17.381870532178496, 13.74436110548955, 12.036984482879504, 13.559218727481055, 10.383188825498497, 17.527602924537607, 13.835647577995159, 17.54059192486883, 18.190172790742448, 14.831651126944395, 17.08464132636749, 16.70065376110145, 14.13023745339372, 12.703943681129454, 16.27283184534571, 17.94266761414371, 14.058092754642292, 12.20217787202558, 19.455906453550803, 18.330920952020406, 16.10972631014318, 11.673575401854775, 14.396037221948047, 14.004502763219438, 19.85888514627205, 18.76022929253184, 19.356825713732068, 15.845559512244964, 18.64170281711508, 17.89140503543484, 14.94644529366246, 10.667237329907584, 17.209429256990116, 15.111641080406534, 10.407635108501117, 17.192212508488026, 18.895063660068793, 18.615868002257685, 13.984012392783736, 13.856353795780322, 17.99830125536759, 17.554742400559206, 13.008757510185815, 17.395534725366957, 13.446641492714825, 16.231842529809963, 11.188295248078425, 16.640308959219716, 17.780961275077303, 14.236768791423923, 10.888348317704828, 17.863262639910122, 11.695728495373656, 11.86072825888436, 14.760944399985682, 10.45848919728763, 13.749816229592605, 17.922593565664933, 12.330266149026432, 19.530151295483293, 13.526896416507075, 10.564749565903186, 16.83123535086903, 11.543642960932903, 16.451150598838858, 12.421831870231157, 12.587370618244432, 11.007505053010101, 14.827145504161685, 10.545411736916222, 17.273220390081125, 14.899962150956314, 10.47931271682825, 10.118680719679938, 19.93797575295411, 10.24053041972144, 12.578511861144095, 18.711484312265696, 11.497399118862123, 16.500633335191342, 14.123798003203234, 18.479164727677947, 17.003331837574493, 16.021997950337216, 16.15614129575488, 17.88383955538042, 18.837429851594692, 19.187572633717874, 10.147368347247536, 16.46225829150681, 18.694832388300224, 18.874083369237276, 10.063572516010796, 10.526626662076744, 10.278141485513068, 17.136874242185904, 15.45681802122074, 11.382493543512195, 15.773276649976616, 11.701872465044145, 18.472473933802164, 15.818545140559758, 18.32957127299502, 12.451364304278249, 11.171588668609962, 15.308567412916139, 17.39931083364861, 15.08969832759011, 12.23917404119857, 11.367950556594899, 14.070770458956316, 14.249331071829213, 14.060818991722039, 18.389534349903343, 16.255521824895702, 11.268615408977587, 12.138060882989173, 10.643989436727722, 12.253264838436067, 18.654221383015255, 17.330841066834335, 14.700798277810522, 11.831700198273783, 13.291676076918915, 14.988719593987065, 18.87469550835975, 14.401258219387826, 19.66949486831119, 19.15930752575843, 12.239380527717836, 11.090476165434795, 19.71344333420207, 19.572595705919436, 14.871701744164433, 17.233253925049148, 14.142285590220869, 19.138294981267386, 15.206411075381975, 17.774723701446018, 13.920509246613843, 19.861883037418593, 12.663334810888383, 18.905239781198407, 16.67899229979041, 13.793928034933067, 10.620255175696279, 15.834818356005176, 14.010719445476594, 18.92066185488795, 11.660455782010608, 13.683623508637101, 17.36947010058472, 18.29136933876119, 19.38569288639653, 18.00393755445571, 17.243961708907616, 15.722669462896874, 14.345229920137971, 10.387837209323813, 18.10205585361147, 12.939751287826017, 14.905380761933841, 12.016249979537113, 14.858918734094786, 16.259289444574666, 11.295870974746727, 11.862217363082921, 19.587032594904862, 12.143491199947462, 17.817463675704293, 15.678678777285578, 10.439502559439553, 10.969441589038569, 17.994515502601146, 16.091285357643578, 12.417029619082209, 19.902123774312543, 11.629837530570201, 14.280820757413526, 19.12893595630502, 17.363055869092896, 14.825882050901173, 17.743070530653615, 17.158539600641838, 11.507479362484915, 15.522634015292887, 12.180410784197077, 10.641853280829475, 14.457363533791888, 14.964165148042945, 19.629623485331383, 10.766683340479524, 17.955362168228906, 11.606277834083325, 11.474636920445088, 11.530243383677208, 13.484419539435143, 10.03906853297307, 11.183111023328728, 17.06189965250548, 13.1752047590813, 19.153441180754978, 17.989163489274414, 18.40867141714121, 12.751946760361854, 17.39115062946913, 19.923904653545073, 12.088309315583654, 19.513319104007998, 16.66097994378395, 17.33665964540868, 17.99880445251325, 17.087991471235497, 15.320121426446072, 13.48958715794938, 11.290575849021026, 17.242013738345065, 13.196530967920385, 12.27100439845432, 11.151011657738412, 15.361497520955592, 15.544249794776054, 12.836953526120167, 17.74084493005745, 10.817698185675539, 11.570656392489262, 18.54831926099645, 10.624869627926497, 11.126353836073307, 17.591554498599066, 13.942730713919744, 11.576040064321774, 14.231230429978062, 16.155802695249918, 12.147357427683438, 18.59484603824053, 16.71613876117799, 14.974483758014273, 13.114205502081761, 13.69144729884417, 11.882266347627125, 10.235991377394365, 13.631753366974218, 14.505183076923796, 12.288908795843072, 18.00176638023639, 13.608869604172503, 12.70301610450523, 10.7059576434483, 17.75155364932677, 19.120535483756214, 11.077675600638251, 18.33852837463501, 12.052568672387023, 13.157152004296002, 19.467316091454784, 18.101367401640108, 19.686654987875592, 15.998939814393813, 12.404179975050017, 12.521519052217148, 14.833021850950098, 11.77372252161804, 13.956151989229712, 15.243137393740955, 18.342985190638927, 14.056950408142411, 11.064639304212385, 18.590996335057177, 19.693099190609768, 18.267779979919975, 18.336585642664655, 13.619762277462373, 15.756944161085368, 10.11588453997086, 19.87730316245084, 17.928601189506168, 15.849217342896065, 19.80261036762563, 14.634940368690582, 14.941653498702681, 16.689890637859456, 11.403923497907675, 13.815863986859203, 16.235321946593956, 17.793719454957195, 12.725918651433396, 15.136988143874296, 17.292613979403377, 14.411667099424886, 16.171725386281565, 17.960109876756494, 17.758508525262172, 11.6544689605064, 15.405978090125496, 18.523894555650763, 13.287067761745757, 12.721349770532502, 19.4352249638917, 19.160044392711733, 17.468413637476345, 13.211269390072092, 15.724237140354393, 19.517643548248703, 12.678116807471119, 18.793611255967825, 19.85158996400764, 14.56872147021949, 16.582307553823924, 14.376288961724164, 10.225788717554849, 12.679090992937144, 11.711013354117258, 16.225099486187652, 13.597074386592505, 18.007118629442868, 14.224659324953091, 15.665656042169232, 10.325791901591261, 18.558436961737435, 19.02440000738479, 14.28418068046829, 11.415558157547546, 12.773259780695525, 11.291253635010989, 12.356053214036294, 10.52971465823933, 13.736011442581614, 18.128283950782453, 11.956845222197947, 19.76623601885617, 10.160568246153494, 10.909374271106122, 13.010100142365527, 10.243321616104192, 19.20824658692561, 16.65566828675147, 12.51220838334372, 12.93507514258976, 19.808181082872462, 13.421022660812273, 15.626703189331575, 16.445214328047566, 15.704219387578757, 11.333179139564345, 17.898894619894875, 10.85791339027763, 18.273490215426914, 17.89267709554298, 19.52246884496636, 17.33481478898812, 18.67562687253547, 11.010277370352235, 13.089601017389052, 19.02230167622006, 10.022145122531015, 10.26772408305174, 12.991427945032587, 12.474103078837695, 14.891162158513822, 14.224027102444746, 18.495862135924273, 10.874763636622394, 12.51864144161907, 10.915532435038456, 13.439775179161249, 12.953204635640905, 15.513268760646445, 17.460508638953424, 15.491383502378222, 16.882543362855902, 12.842792917773927, 12.303552218340677, 10.038388843465398, 15.579315455773417, 16.6706284394787, 18.00762470862086, 16.69461919141156, 10.065017346258582, 17.476211338132412, 18.640381854170208, 12.584782993539031, 11.55817703715908, 18.858955876137323, 15.734385548541034, 18.336566678902095, 19.392386762346238, 11.793316653606244, 11.325927902825034, 18.79664343123052, 19.72832364713361, 14.333919354526481, 15.569862509748194, 19.932265841958113, 19.76976382241091, 18.83162866936986, 13.599333552876978, 11.523151998175521, 14.925383084153754, 18.040377293354897, 19.71117880811193, 18.443968654184296, 14.09921782400413, 17.6106466540459, 18.316619807827017, 14.452633006332421, 13.012012783126506, 17.60010232238759, 15.513938405327497, 11.733866143298519, 17.608496821139763, 18.546946934746877, 13.04587961312107, 13.151224220919762, 19.771315576875455, 13.496045365061814, 12.807939379486424, 17.26024542760605, 14.488521580716291, 18.815000384370318, 17.924577984463482, 13.551138128146494, 19.589558670487673, 16.99939493398137, 19.32800602714817, 15.278756747007117, 19.62914489748824, 11.6653419691143, 10.00109483193272, 10.031167213820213, 13.614921492495375, 12.016630799524197, 17.61220348120333, 10.333838890560138, 14.196861003294252, 19.97957006532886, 16.115847703134136, 18.646883676822377, 17.130264377745803, 17.618044851420365, 16.43180496758778, 17.97657985164582, 11.507093699172074, 11.717884695039935, 18.05465987360671, 13.259358885307755, 19.753507669229915, 10.734338149292197, 10.44531316443808, 11.023030940533015, 15.19175404702569, 19.164029591451488, 10.622010591115803, 17.350341072774597, 12.036783946875827, 17.623858907704797, 11.622470716486445, 10.285737998847022, 16.24192702121396, 19.66253015169589, 12.050523208144883, 16.00678725556498, 17.218257661877473, 18.033265142926712, 12.74588102782776, 10.63542713357244, 15.331941533556336, 15.385680511199817, 14.02369472511938, 16.778246067085007, 15.325219815713208, 13.864065188971109, 17.74510150044042, 17.93192264826223, 10.62303482166468, 17.37977731662883, 18.79105210709148, 17.685511988029926, 16.902530740905863, 18.29899237358839, 13.967976898922075, 14.302560274056638, 10.128709447739935, 12.519969947562139, 18.638609535974837, 11.572386826546762, 18.69663066877689, 15.769357990135921, 11.881883435903205, 13.898439246407142, 19.746735421065033, 16.71618618925817, 19.925537923556618, 13.321878888393124, 12.483955034561063, 11.147519949718474, 13.022293398434842, 11.98503525242969, 12.561082806531909, 19.949291763319472, 12.732165252988482, 13.245377300669192, 12.882236042335883, 19.60257064383927, 13.238583527222321, 15.30119641295773, 14.531022264878622, 14.493270425208742, 12.067945865285504, 14.392774824074205, 18.80000439576556, 14.314876833611612, 13.890244165400915, 11.716217908671405, 18.756013391427025, 13.121637780720423, 11.837223725008853, 17.52802913247294, 14.772458283285903, 15.117758688429985, 19.074024999523402, 17.407472347723335, 17.758385573373218, 17.335716016781944, 17.53044812839292, 19.154947854236276, 18.85495533728877, 10.46638170386264, 19.48092798612219, 11.780714747318399, 13.645687067006307, 12.027635603240565, 10.06895924402929, 19.16019756494766, 17.0815545545075, 14.717635111106455, 12.928322574586447, 15.089799250535467, 19.818711147795224, 13.116790522399423, 15.470951564310687, 17.64387410475122, 12.99226088532131, 18.182714346820724, 13.40300067897766, 18.740156095170974, 19.981943396704995, 12.775271535890244, 10.586268912265966, 16.721256388728246, 19.301662356098475, 15.891125961533234, 13.564324616866129, 17.74667890024622, 17.66814590141408, 11.044420070065888, 15.12862148523358, 17.060112926734607, 10.381432020672133, 10.412046511247372, 11.58051747960771, 15.72233236061739, 12.534447811516014, 15.25296539892784, 15.890580152772705, 18.823799660525495, 14.867118291014403, 10.58432718053503, 16.227853804635785, 15.295716128539851, 16.389517234479285, 11.006975556562837, 12.715966550707659, 10.660967892680418, 18.648912690136328, 14.51026175334766, 12.04977620742374, 18.47568815375045, 18.77210064523749, 14.843215346926854, 10.138980695000543, 10.74276944929671, 10.473561102882671, 12.181843521834168, 15.085783477159936, 17.25088737168397, 17.846366747385314, 17.896442743382217, 10.265065396516599, 13.807631271863094, 19.302033930513332, 10.961647379915506, 16.99393734804428, 12.073706087051924, 16.470224257284205, 15.552532456864476, 11.689738567597153, 19.29114916771487, 12.322135722494572, 15.286475349863432, 15.978550038357113, 16.756567235115586, 14.879852297165597, 18.940627257311323, 15.680329352065097, 13.5061818141233, 10.25084911531345, 10.404809496730508, 15.691266987801285, 10.057732568240679, 13.00782298111967, 13.390727514256017, 13.548419839084858, 10.96384538034873, 17.444879940170807, 15.952469738783904, 10.814428917443339, 16.835825222357368, 13.366892702836713, 16.242337118567328, 13.116401729825911, 11.511614029546939, 14.355670630963283, 10.649867418187387, 12.902168618792675, 18.92039015196715, 10.167032485260261, 17.377125359653665, 15.702866272131928, 18.216987830858397, 13.161830802018727, 19.52375013097332, 19.16382085310869, 10.896703931371881, 19.11423064177726, 17.406585742368545, 14.52003469444673, 10.26700354190499, 15.22785966880408, 14.504887477056029, 13.628061844885842, 12.69626600282478, 19.936355594315604, 16.829918878536066, 12.822670869140502, 18.48250670460356, 16.587606838071416, 11.322628677945731, 11.601329800242212, 18.69583451964625, 15.143379671281696, 10.046681919726304, 12.08148601707962, 12.428618923148784, 17.233339238768234, 15.05725662446683, 18.129936390040463, 17.567950356349453, 11.716082237801949, 15.802989805039234, 19.545028400663412, 17.935688322131682, 13.662898005276901, 19.93994486658835, 11.547961847889525, 13.58239697616115, 17.871985614289407, 16.767481001410026, 12.953448521815545, 17.86821803886861, 13.403088794731001, 10.520240743797252, 12.309276796627133, 10.904211264922214, 17.575397451296872, 14.769386057047813, 19.776950752737083, 17.167420744361717, 19.08090562823049, 12.862563397362436, 15.537993002301146, 17.083716701976208, 16.827284016698965, 16.893656267271506, 13.575935423979386, 17.511177726823206, 13.61240181512892, 12.328416894777792, 17.967282371408665, 18.298375839211857, 14.170507268928887, 19.031997567346977, 17.854328617012598, 11.946143628708857, 15.896428683176591, 17.987563522601533, 12.67873935887402, 14.956677538210931, 15.666149437476555, 12.726061960259527, 16.48297593702432, 12.797445381004318, 14.034204490991977, 16.65676102501373, 15.367410113654117, 18.229546702352103, 13.083191661891878, 16.29658444631453, 18.08800067060904, 14.274245087354169, 19.39406406411811, 14.46085590497675, 18.612845180537605, 12.238670364263935, 12.874017337206372, 17.211432058917424, 18.044734260337133, 11.641839109983152, 11.78974905197798, 17.652468559925808, 19.68165829770787, 11.765436311687413, 14.0948474865453, 13.141697983059869, 14.392734297833343, 19.60305370047962, 17.746719456291004], "expected": [-130.6567593462314, -94.50236352709221, -37.866718073372866, -91.94120188454588, -6.278712631211285e-06, -80.05803478604986, -44.016482094178784, -69.96905264860402, -98.8509714049703, -92.82304241120774, -19.429419910103586, -81.61515529201229, -115.52977500857102, -41.347411978531184, -14.990436474506522, -65.45325929809543, -70.72721286364225, -164.61034009473514, -51.60207902700768, -19.015630321223643, -81.81313211568242, -17.685220969573194, -117.94885333569921, -121.69254571808212, -1.5256399815505043e-08, -56.230203140799034, -59.42050928632322, -26.941374399526122, -35.81858584671421, -85.96452495349827, -101.08415999325963, -28.56795790125748, -32.18772731868448, -93.68459490729111, -141.73920844907656, -38.513012682687126, -18.599729389417693, -64.86110713991776, -115.29329363189433, -94.15777813653524, -51.58315068380492, -114.12436919084931, -99.64802496524929, -88.4696639119759, -95.54000609214197, -64.6643582502357, -53.24694252999107, -17.829753950111282, -124.55026384894738, -47.543894188517804, -5.9331953667244824e-08, -51.497793181189635, -178.3677713932514, -101.25241540267214, -108.39276905830879, -38.15465860558116, -21.54701301349948, -51.08049577053644, -90.72998701041872, -2.657255441356741e-05, -75.86808726223492, -33.23281097402243, -24.612735259859175, -16.38038577388924, -12.376443448185546, -86.08298559771701, -125.78859102607308, -20.158473217963515, -128.038225879942, -150.90300827320115, -82.6493071464112, -163.8551184125672, -74.53605389522299, -67.19178278805929, -3.489902794363828e-08, -136.76307209656426, -92.66761221014434, -133.9124005246528, -11.146497619384633, -172.75573844261496, -19.171600364204256, -17.127446623160512, -96.31209692244207, -80.48847537892955, -49.67736846017281, -20.54809226905264, -4.163941909069817e-06, -20.9091436278771, -127.55138076734389, -59.48936303305546, -48.27727258869589, -109.42183882991743, -99.2999983712833, -155.7721880988569, -17.488356331877736, -10.381874218641517, -55.23742873567859, -85.70464836761803, -78.58547226285378, -114.5083924825688, -140.83691325409134, -15.666209690202033, -84.45759981401842, -96.26050157643775, -30.679855611512863, -142.52504373357917, -163.97037493409277, -137.3053370389173, -59.241582381535366, -57.62694737880323, -131.2628725988294, -84.55738550494235, -77.67502933440699, -52.199085222637535, -52.061575672216655, -55.4240574908854, -96.97527400679722, -91.08012647930916, -178.46048935647377, -87.64641478650252, -98.28159988506862, -36.5357865774536, -20.214536753066653, -31.359760932549015, -146.3059560455846, -45.30149540522137, -55.78274623014323, -39.991889909990974, -51.11325840117429, -32.323071105592945, -87.71927511182977, -20.761359293853147, -119.3168121787285, -119.50979369192123, -95.2973175676043, -59.77251558774071, -37.293495152271625, -166.7034864314524, -18.634155741539853, -60.605027035284216, -5.481618631591803e-08, -52.869564972068716, -90.57673518475926, -115.60155440037695, -159.72732938586165, -38.437453255865485, -14.46253411425641, -68.90838054524403, -140.05171388798212, -19.8162344780608, -67.1026701259034, -94.34696846496247, -42.94166311704818, -116.51005293308991, -35.87577238734376, -79.50218373874014, -86.57626884223362, -6.441248397829232e-08, -32.245903147121886, -179.41737820797496, -20.597198086596688, -53.48657028447961, -69.18501613094485, -82.57346350541845, -51.489149418718185, -134.68330258361323, -118.4100754572548, -33.92023450693686, -70.9803941086433, -121.40438028084309, -6.828324022145459e-06, -44.815936608932034, -35.11666940662946, -5.840400846681587e-09, -44.82451832509451, -2.461931172566907e-06, -4.3269621217630487e-05, -77.32073899359713, -74.7416909258617, -99.82546407856252, -1.9886542147714392e-05, -166.1110557840051, -11.730101200617545, -77.94356004126799, -57.89630047727553, -149.48644347412377, -106.30892096290717, -78.32470579659326, -51.69966895715778, -123.72016774504108, -27.517374088775348, -90.22706540432449, -30.804765236479536, -60.248942846013755, -115.13793292508136, -165.61069799121486, -173.88277387289816, -17.556844501443663, -52.67336506128121, -29.502589857820023, -17.30326562839486, -39.09656279042771, -95.7746225839476, -77.01605281702663, -39.47846798811821, -101.03069692966014, -23.232997804817625, -66.31207889673482, -63.47784492800737, -113.87082838256188, -104.04278300980948, -21.431496675789333, -118.06493313180822, -146.1392454464887, -59.643797201260796, -159.13945112595644, -81.58391142410105, -47.25388507639489, -193.92782751477435, -10.487621405456474, -57.83469966161735, -103.73057634574683, -12.952581362208003, -170.9764550577796, -27.86185340169024, -84.49821336659176, -193.77688497857264, -32.50811082982749, -23.023462653283854, -91.88320435626893, -2.8561256038724148e-05, -108.57628717367335, -17.265763327107766, -81.21234756579534, -33.01190284580706, -20.07003664705438, -103.11023269991561, -47.74674498309469, -105.74145034203868, -22.841461355553253, -141.45737910216994, -98.55506444494159, -39.04961482184856, -132.28353249861308, -24.152624520827516, -41.51319860880437, -65.74196770520571, -144.14740907391655, -11.856392209553606, -59.82703935636486, -13.339685593143857, -87.42956817173166, -81.68624843748, -54.42092964961466, -174.47983019176942, -154.88297854665282, -112.57967560903997, -109.40312497887301, -83.822789394288, -34.43780944710791, -73.43044986435991, -62.167402836974404, -2.1851759760713416e-05, -38.21126883681423, -188.95639826635858, -93.82831745906986, -41.39950495467242, -85.4103442577518, -19.051545511386845, -41.67732337634825, -135.14453218355038, -24.33069644848256, -157.99869247860053, -69.52748215697251, -123.69925102314821, -96.29588178417626, -108.47375111197903, -41.53278625088624, -157.74842634526482, -124.52082918202129, -175.40591927279945, -127.33120954778953, -88.98990712365575, -153.76177197534687, -167.00653766686128, -28.26047563677592, -38.11183408250957, -97.63699115773838, -35.88533524441608, -70.29046455781102, -5.019524437746017e-06, -97.27953227130547, -18.33092096295952, -144.98753689212907, -11.673583917792328, -57.58414944739591, -42.01350911745162, -99.2944257337338, -150.08183434737563, -77.42730285884964, -1.3132910044733908e-07, -18.641702825132068, -178.91405037132543, -149.4644532593561, -85.33792193533532, -34.41885854755707, -105.78148783643417, -62.44584085247523, -154.72991261055216, -113.37038196663545, -8.22680593701776e-09, -83.90407520163248, -13.856354755760389, -17.998301270623465, -70.21896962600918, -2.2406234837319783e-06, -121.76874310544373, -1.446099292416708e-06, -146.08658285753805, -78.31808057183419, -166.40308965151777, -71.1238451192687, -71.18384461334045, -97.99515353407914, -71.45305057710208, -46.78292231085133, -94.88583313348119, -118.08755558839651, -31.375496295840694, -13.749817297493417, -71.69037427911543, -73.98160131021295, -3.2973349660642157e-09, -1.3345775619450416e-06, -73.95327277162902, -134.64988285596255, -92.34915338500517, -164.51150606006166, -62.10916338081054, -88.1115977425886, -33.02253173599054, -14.827145867785738, -73.81790847269936, -69.09288159182633, -104.29973539478141, -83.83452984705796, -70.8308053578553, -159.50380602582592, -92.16480947204187, -12.578515306407699, -74.84593725653941, -34.49220751311301, -33.001266738595504, -28.24759674111084, -110.87498837549961, -85.01665922913413, -112.15398576244719, -129.24913046230594, -71.53535823862762, -37.674859709781245, -191.87572634182328, -3.9179819304062066e-05, -115.23580811142904, -149.55865911400397, -37.74816674482918, -20.127187636498697, -21.053280137433898, -51.390741804514626, -154.2318682157767, -108.19772634227178, -34.14749202380523, -15.773276791150064, -70.21124306860294, -36.94494787709958, -79.09272583772402, -54.98871382993895, -74.70818973805859, -89.37272341724841, -30.617135050517078, -17.399310861418574, -135.80728522796903, -85.674223125604, -34.10386322995715, -14.070771233671739, -128.24398029449168, -42.182457757629585, -183.8953435093498, -146.29969651122119, -90.14893603930349, -60.69030976684968, -95.79592877455974, -36.75979928483981, -7.917254216926877e-09, -34.661682163406645, -44.1023952460271, -47.32680806351465, -93.04173422692355, -74.94359827930793, -169.8722595815885, -72.00629165362876, -59.00848460780202, -19.159307530536125, -48.95752694708663, -88.72382458053339, -78.85377333955338, -137.00816994459637, -104.10191255692901, -120.63277750813036, -127.28057103323405, -57.414884948681305, -45.61923347499706, -177.7472370335383, -41.76152864016763, -39.72376607720362, -37.99000759774197, -37.8104795685565, -16.67899235686012, -68.96964119648297, -31.860789943795336, -31.669636844757683, -98.0750369409993, -56.761985570729266, -46.64183175644245, -95.7853657014398, -52.10841033036529, -182.91369339899234, -58.15707866299938, -162.03543800527152, -17.24396174134476, -125.78135585167671, -100.41661002973615, -93.49056568927587, -126.71439098903265, -90.57826141548239, -59.62152338399556, -96.13000588149106, -118.87135022501045, -48.77786842055611, -22.59175437368863, -106.75996331964373, -39.174065192924736, -60.71746132265728, -160.35717309961854, -47.03603648703695, -93.95555228914054, -87.75554993241325, -17.994515517914884, -96.54771224857876, -49.66812252538158, -59.706371325210725, -34.889521488384396, -85.68492517242164, -38.25787191753507, -52.089167636073924, -88.9552926694908, -17.743070550345276, -34.31707923661346, -92.05984495453946, -77.61317025785125, -24.36082669837712, -85.13485014163562, -28.91472759390018, -104.74915635336372, -19.62962348831651, -64.60012113369478, -179.55362169821427, -92.8502317814329, -80.32246883347955, -23.060496595714458, -67.42209908966322, -100.3907289911062, -22.366235953854627, -170.61899656396926, -39.52561617430661, -4.8058054318305214e-09, -161.90247141886564, -36.817342844403235, -89.26363021921296, -104.34690380481229, -19.923904655769192, -48.353242887239595, -3.3533060828806976e-09, -16.660980001890938, -69.34663861120016, -89.99402227781447, -85.43995739408975, -76.60060735433407, -67.44793717505712, -90.32461928232595, -68.96805498588066, -39.58959476079502, -73.62603107639397, -89.20810762276199, -122.8919803807462, -77.72124915138835, -115.53258439569933, -88.70422467002278, -75.72390734157489, -23.14132222406199, -18.548319269798167, -84.99898132770694, -11.126368555439893, -140.7324360117057, -8.805401828648209e-07, -69.45624977433349, -99.61861366971173, -16.155802791549423, -24.294720157746905, -18.59484604664211, -33.43227757734465, -14.974484071822555, -26.22841302054804, -54.765790327464806, -35.64680595480282, -20.47201861172788, -27.263507935673157, -87.03109896328324, -122.88909256095111, -126.01236467685783, -136.08869727126682, -101.62413187798337, -96.35364120230835, -124.26087556481271, -133.84374839126008, -22.155366654887292, -36.677056760126234, -48.21028051912718, -52.62860994880496, -116.80389655223988, -1.3761824885541665e-08, -118.1199299300732, -47.99681955583599, -49.61672400161752, -50.08607985619106, -29.666044063393734, -11.773730226020309, -97.69306479340914, -152.4313741772871, -18.34298520144686, -42.17085200992359, -77.45249078587577, -111.54597801877705, -177.23789271828943, -54.80333995141201, -36.67317129620663, -40.85928804860858, -141.8124975932664, -20.231809512939748, -119.26381897703526, -35.85720239536948, -47.54765215953779, -59.40783110538782, -4.4068295264104895e-07, -89.64992131649777, -100.13934388360786, -68.42355213915367, -138.15864086823916, -16.235322035532352, -177.9371945682911, -89.08143353309872, -2.667409136274729e-07, -51.87784196910691, -5.509251813557772e-07, -32.34345086734143, -161.64098890665824, -159.82657674674957, -34.96341556173107, -30.811956384081306, -111.14336734292392, -119.58361155200204, -76.32810160987465, -19.435224967517374, -57.48013318290938, -34.93682730086847, -52.84507939015317, -62.89694870968666, -136.62350484107975, -126.78117119334588, -93.96805628672625, -19.851589966398556, -14.568721941071859, -33.164615170510885, -14.376289532488933, -81.80634596509337, -76.07454907322091, -117.11014174418376, -48.675298548415185, -67.9853731770929, -126.04983042122203, -42.6739786390749, -15.665656199383537, -92.9321598915834, -55.67531089392541, -190.24400007931567, -85.70508470864394, -34.24668549535508, -2.8355961437391456e-06, -22.582519751716887, -24.712110731705355, -10.52974138884704, -13.736012525326801, -145.02627161965597, -107.61161341497105, -177.89612417230947, -20.321175158345028, -65.45626391281392, -13.010102379982692, -71.70328690778489, -172.87421928688002, -116.58967806567674, -75.07325398150246, -77.61045326749115, -99.0409054168593, -93.94716010931124, -62.506812920785386, -115.11650036843278, -62.81687770158203, -90.66544508572338, -1.6850346593458394e-08, -108.57915315461925, -54.82047065786649, -107.35606259021331, -97.61234422815458, -121.34370355253687, -18.67562688028505, -33.03084864212361, -13.089603084001098, -114.13381006279958, -20.04433465164123, -30.8032069861011, -116.92285378508424, -112.26693153396909, -59.56464897513079, -113.79221748419366, -166.46275923259424, -86.99812802313856, -25.037286541071325, -65.49321278414365, -13.439776635224087, -90.67243481810539, -124.1061502682651, -17.460508665074883, -15.49138368952298, -67.5301734979827, -102.7423459873181, -36.910661190636674, -4.369106242212082e-05, -46.73794653871176, -133.36502757337865, -144.06099768408117, -133.55695358747732, -80.52018131303267, -52.42863404011172, -37.280763716368, -50.33913539788159, -80.90724881772933, -75.43582351100078, -141.60947008364133, -18.336566689779623, -96.96193381551555, -23.58664086212248, -101.93336318174144, -150.37314745671046, -138.09826553263986, -14.333919949993962, -93.41917523150852, -139.52586089591242, -19.76976382500569, -169.48465803095894, -95.1953361114617, -103.70837788188447, -134.32844808698482, -144.32301836146647, -118.26707285142292, -165.99571789742848, -84.5953076970121, -52.83193998461755, -73.26647924240474, -101.16843157313902, -117.10811728148005, -88.00051163465608, -62.05575380428096, -46.93547259086863, -140.86797459164634, -148.37557548678882, -91.32115945081914, -78.90734726862377, -2.590757389756367e-09, -121.46440966194874, -51.23176025688998, -51.78073631473138, -86.931129994468, -112.89000231296329, -17.924578000886566, -108.40910632778603, -176.3060280374962, -16.999394975405806, -38.656012058332365, -76.39378396651922, -137.40401428540423, -104.98808630837138, -20.002235015145462, -60.187047290653375, -95.30445166959083, -108.14968323861022, -52.83661046605487, -10.333871405118044, -113.57488870929276, -139.85699045940572, -64.4633909127616, -93.23441839208743, -17.1302644140888, -105.70826913083634, -16.431805040660922, -107.85947912546578, -34.52129115605484, -35.15366223195829, -36.10931976163327, -79.55615505579634, -197.53507669493646, -85.87472697850195, -31.33596857800473, -99.20729478637094, -30.3835083465768, -172.47626632781856, -2.4373882112108962e-05, -121.45238753858588, -84.25749355045853, -88.11929456070878, -81.35730397786135, -82.28593810756546, -64.96770817320873, -157.30024121645562, -96.40419150667458, -1.117739622264306e-07, -51.654773018914135, -126.23285601521867, -12.745883942131647, -85.08344111762842, -137.98747402150093, -123.08544429760839, -28.04739026229656, -117.44772252127241, -122.6017587466799, -41.59219651951908, -70.98040602141339, -71.72769060935182, -10.623059170594795, -34.7595546615754, -131.53736475654514, -53.05653598494811, -101.41518449107294, -109.79395425282436, -41.90393155535438, -42.90768143660659, -101.28713439514863, -3.6529769462716113e-06, -55.91582861596634, -9.422763801947175e-06, -149.57304535780364, -15.769358131863665, -106.93695783769746, -13.898440166824347, -118.48041252904542, -5.4986058663662244e-08, -79.70215169644696, -53.28751719182887, -24.96791385605876, -66.88513410939746, -13.022295608933804, -11.985041489299503, -62.80541753849728, -39.89858352880731, -2.9545512623755376e-06, -92.71764287318861, -77.2934187968406, -176.42313579762043, -132.38583705278322, -76.50598229113571, -43.59306728357784, -115.94616390942322, -36.20384333647849, -5.61432354224973e-07, -150.4000351729677, -28.629754274138563, -27.780489258792926, -105.44596933847156, -131.2920937471402, -104.97310424721711, -71.02334958042483, -140.22423308419948, -14.772458667349342, -136.0598284677897, -171.66622500091364, -156.66725115705427, -106.5503134596317, -138.68572816384892, -35.0608962811428, -38.309895713271125, -56.56486601834366, -20.932791886045198, -116.88556792019683, -11.780722398037442, -95.5198106541405, -60.138183992958815, -30.20692010767841, -134.12138295940707, -102.48932736520207, -147.17635151677143, -64.64161530122684, -45.26939803123624, -2.4708314313997573e-09, -131.1679072351731, -123.7676127054933, -70.57549644075004, -116.93035024578461, -36.36542870632811, -13.403002189583267, -74.9606243879492, -139.8736037790337, -102.2021751170193, -10.58629417307832, -83.6062819983492, -38.60332471634071, -127.12900781774506, -13.564325902416053, -1.9620735562249683e-08, -17.66814592263781, -1.597617381756955e-05, -136.15759363608421, -119.42079052612632, -10.381463023984177, -62.47230913601336, -23.16104430567626, -110.05632667287351, -100.27558609259866, -15.252965636459413, -63.56232073663852, -75.29519864878431, -118.93694667749088, -42.33733403205047, -64.91141530814822, -76.47858087029017, -147.50565518654307, -77.04884548167993, -25.431936104216284, -74.62679869135135, -74.59565076850471, -130.5923562793277, -24.099558260728262, -184.75688154696928, -7.036882101797197e-09, -14.843215704754225, -70.9729043748384, -32.22832994915581, -41.89427268612269, -36.545535688140795, -45.25735071223483, -86.25443689063312, -53.53910025991506, -35.792885503656144, -92.38562339807442, -1.0079109172983653e-06, -115.81220358722221, -76.73154901425593, -16.99393738969541, -60.368536142909306, -16.470224327603177, -46.65759754663734, -8.379398887018204e-06, -115.74689501047678, -61.610683064578055, -15.28647557956722, -15.978550153332245, -5.2809897628239015e-08, -44.6395572364517, -151.52501806443613, -125.44263497144507, -108.04945587549754, -51.254280904682275, -83.2385062607722, -31.38253412884159, -50.2887056952217, -130.0782320539151, -66.95363910053986, -27.096840984329503, -109.63847112023028, -69.77951978721615, -95.71481855071659, -108.14430928190954, -67.34330093821534, -133.6689285945144, -129.93869703685527, -91.81481412074231, -103.60453627909554, -129.2010362613247, -21.299758540639825, -103.21735144298339, -94.60195076590283, -61.00223332845443, -2.8392939069934152e-08, -94.21719778426339, -163.95289048998478, -131.61830994279165, -175.7137511820784, -38.32764171097356, -10.896722450717341, -152.91384513921608, -121.84610022414849, -14.520035188790612, -102.67007018103463, -60.911438918786786, -72.52443788716896, -95.39643412037, -114.26639708796746, -119.61813356809023, -100.97951332029128, -102.58136965201527, -92.41253353241827, -132.7008547671021, -11.322640774104295, -58.00665815515973, -149.56667616476457, -151.43379697785844, -20.093407169672183, -120.81486583421292, -4.002397817938672e-06, -51.70001774908824, -30.114513537813078, -181.29936391377885, -17.56795037980989, -58.58041935054586, -142.22690838239356, -19.545028403912056, -161.42119491542675, -136.62898121764326, -199.3994486680722, -103.93166628675519, -122.24157404797602, -71.48794247446756, -50.30244305646676, -51.81379645530363, -160.81396236719274, -67.01544548412751, -31.560749216449793, -4.509724279159075e-06, -87.23370850021156, -70.30158982847387, -14.769386442292996, -177.99255677720996, -137.33936598991113, -76.32362251808931, -51.45025618279451, -62.15197218782678, -85.41858354795572, -100.96370414939813, -84.4682813824021, -54.3037429666275, -87.55588865894691, -13.612403040335364, -110.95575647722846, -35.93456475855384, -73.19350336814841, -141.70507339046486, -95.15998784216124, -107.12597171969388, -59.73072462775545, -79.48214354069853, -17.987563538022105, -12.67874247556781, -119.65342062513352, -46.99844846956642, -38.1781888534175, -65.93190381752527, -38.392338910851095, -84.2052277495198, -149.9108492834762, -15.36741032549932, -18.22954671445832, -65.41596038935964, -48.88975342259694, -18.08800068455605, -42.82273589414573, -19.394064067896135, -57.84342414438852, -8.251711681356683e-09, -48.954686296706754, -128.74017593587388, -51.63429621026194, -126.31313983692363, -104.77656078038574, -35.36925473784508, -2.1559084638994216e-08, -78.72663319366525, -82.35806195031994, -56.37939070246653, -118.27528380924296, -100.74914064628851, -176.4274833073821, -124.22703621365697]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/runner.py new file mode 100644 index 000000000000..1ccc2449f54e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/runner.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# +# @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. + +"""Generate fixtures.""" + +import os +import json +import numpy as np +from scipy.stats import planck + +# 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, lam, name): + """ + Generate fixture data and write to file. + + # Arguments + + * `x`: input values. + * `lam`: shape parameter. + * `name::str`: output filename. + + # Examples + + ```python + python> x = np.random.rand(1000) * 10.0 + python> lam = np.random.rand(1000) + python> gen(x, lam, "data.json") + ``` + """ + # Compute PDF values: + z = np.array(planck.logpmf(x, lam)) + + # Store data to be written to file as a dictionary: + data = { + "x": x.tolist(), + "lambda": lam.tolist(), + "expected": z.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) + + # Include trailing newline: + with open(filepath, "a", encoding='utf-8') as outfile: + outfile.write("\n") + + +def main(): + """Generate fixture data.""" + # Large shape parameter: + x = np.round(np.random.rand(1000) * 10.0) + lam = (np.random.rand(1000) * 10.0) + 10.0 + gen(x, lam, "large_lambda.json") + + # Small shape parameter: + x = np.round(np.random.rand(1000) * 10.0) + lam = np.random.rand(1000) * 0.5 + gen(x, lam, "small_lambda.json") + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/small_lambda.json b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/small_lambda.json new file mode 100644 index 000000000000..e80bd8696bdd --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/fixtures/python/small_lambda.json @@ -0,0 +1 @@ +{"x": [9.0, 2.0, 5.0, 6.0, 7.0, 7.0, 8.0, 2.0, 3.0, 0.0, 5.0, 5.0, 9.0, 3.0, 6.0, 2.0, 6.0, 8.0, 5.0, 4.0, 3.0, 1.0, 6.0, 7.0, 2.0, 1.0, 7.0, 6.0, 1.0, 8.0, 9.0, 2.0, 6.0, 0.0, 3.0, 3.0, 1.0, 1.0, 6.0, 2.0, 3.0, 3.0, 7.0, 3.0, 6.0, 4.0, 5.0, 3.0, 1.0, 9.0, 2.0, 3.0, 5.0, 10.0, 4.0, 2.0, 6.0, 8.0, 4.0, 1.0, 5.0, 7.0, 1.0, 5.0, 5.0, 1.0, 0.0, 0.0, 3.0, 7.0, 1.0, 6.0, 9.0, 1.0, 5.0, 8.0, 1.0, 6.0, 2.0, 4.0, 1.0, 8.0, 8.0, 9.0, 4.0, 9.0, 7.0, 4.0, 5.0, 1.0, 8.0, 8.0, 8.0, 3.0, 1.0, 6.0, 4.0, 4.0, 1.0, 1.0, 5.0, 2.0, 3.0, 7.0, 1.0, 2.0, 7.0, 3.0, 2.0, 9.0, 5.0, 4.0, 4.0, 5.0, 1.0, 4.0, 1.0, 4.0, 0.0, 6.0, 8.0, 4.0, 7.0, 6.0, 8.0, 7.0, 6.0, 4.0, 3.0, 8.0, 2.0, 0.0, 6.0, 9.0, 3.0, 8.0, 3.0, 2.0, 2.0, 7.0, 1.0, 9.0, 1.0, 7.0, 3.0, 9.0, 5.0, 7.0, 7.0, 7.0, 5.0, 5.0, 3.0, 3.0, 5.0, 4.0, 2.0, 9.0, 8.0, 0.0, 1.0, 5.0, 2.0, 9.0, 9.0, 0.0, 7.0, 10.0, 7.0, 9.0, 8.0, 8.0, 9.0, 10.0, 5.0, 6.0, 8.0, 5.0, 9.0, 4.0, 4.0, 0.0, 9.0, 1.0, 6.0, 7.0, 5.0, 5.0, 4.0, 9.0, 9.0, 3.0, 10.0, 8.0, 7.0, 2.0, 2.0, 1.0, 5.0, 8.0, 2.0, 6.0, 2.0, 5.0, 5.0, 3.0, 9.0, 7.0, 5.0, 10.0, 2.0, 7.0, 5.0, 4.0, 1.0, 6.0, 0.0, 5.0, 1.0, 3.0, 10.0, 8.0, 9.0, 2.0, 1.0, 8.0, 10.0, 8.0, 4.0, 9.0, 2.0, 7.0, 3.0, 8.0, 5.0, 2.0, 6.0, 6.0, 4.0, 9.0, 8.0, 8.0, 7.0, 4.0, 0.0, 7.0, 1.0, 10.0, 1.0, 9.0, 8.0, 9.0, 4.0, 10.0, 1.0, 9.0, 9.0, 6.0, 7.0, 7.0, 0.0, 5.0, 4.0, 7.0, 3.0, 7.0, 10.0, 1.0, 4.0, 4.0, 3.0, 4.0, 3.0, 5.0, 3.0, 5.0, 6.0, 6.0, 1.0, 5.0, 2.0, 0.0, 6.0, 6.0, 0.0, 1.0, 8.0, 2.0, 3.0, 10.0, 1.0, 7.0, 3.0, 1.0, 0.0, 4.0, 8.0, 9.0, 4.0, 4.0, 9.0, 9.0, 3.0, 10.0, 8.0, 0.0, 1.0, 6.0, 7.0, 4.0, 4.0, 9.0, 5.0, 3.0, 1.0, 4.0, 1.0, 6.0, 9.0, 9.0, 3.0, 6.0, 2.0, 0.0, 2.0, 0.0, 4.0, 6.0, 5.0, 5.0, 3.0, 4.0, 10.0, 1.0, 2.0, 9.0, 4.0, 6.0, 9.0, 1.0, 5.0, 9.0, 0.0, 2.0, 7.0, 9.0, 5.0, 5.0, 8.0, 5.0, 10.0, 9.0, 5.0, 5.0, 10.0, 1.0, 9.0, 6.0, 7.0, 7.0, 6.0, 4.0, 4.0, 6.0, 6.0, 1.0, 6.0, 2.0, 6.0, 8.0, 0.0, 7.0, 9.0, 1.0, 2.0, 8.0, 2.0, 4.0, 6.0, 3.0, 2.0, 7.0, 6.0, 5.0, 6.0, 8.0, 8.0, 3.0, 5.0, 1.0, 7.0, 0.0, 2.0, 2.0, 3.0, 10.0, 5.0, 0.0, 7.0, 2.0, 0.0, 1.0, 8.0, 8.0, 9.0, 8.0, 8.0, 3.0, 6.0, 9.0, 9.0, 5.0, 6.0, 6.0, 9.0, 4.0, 6.0, 6.0, 3.0, 4.0, 5.0, 6.0, 9.0, 7.0, 4.0, 3.0, 8.0, 9.0, 9.0, 4.0, 6.0, 5.0, 1.0, 3.0, 1.0, 1.0, 9.0, 0.0, 9.0, 3.0, 9.0, 1.0, 5.0, 9.0, 9.0, 5.0, 2.0, 5.0, 9.0, 9.0, 5.0, 3.0, 6.0, 5.0, 3.0, 2.0, 3.0, 6.0, 6.0, 6.0, 10.0, 1.0, 5.0, 4.0, 2.0, 4.0, 5.0, 8.0, 8.0, 7.0, 8.0, 1.0, 8.0, 1.0, 3.0, 5.0, 1.0, 6.0, 7.0, 1.0, 8.0, 0.0, 6.0, 0.0, 10.0, 0.0, 4.0, 1.0, 9.0, 6.0, 3.0, 9.0, 8.0, 3.0, 3.0, 6.0, 9.0, 4.0, 3.0, 4.0, 2.0, 4.0, 6.0, 6.0, 10.0, 3.0, 5.0, 7.0, 6.0, 2.0, 8.0, 8.0, 9.0, 3.0, 0.0, 7.0, 8.0, 7.0, 10.0, 4.0, 10.0, 8.0, 8.0, 6.0, 1.0, 4.0, 4.0, 6.0, 9.0, 2.0, 7.0, 4.0, 3.0, 7.0, 3.0, 4.0, 9.0, 7.0, 9.0, 8.0, 7.0, 1.0, 7.0, 4.0, 9.0, 3.0, 8.0, 5.0, 8.0, 6.0, 0.0, 3.0, 4.0, 6.0, 10.0, 8.0, 2.0, 7.0, 0.0, 8.0, 0.0, 0.0, 2.0, 6.0, 3.0, 6.0, 9.0, 3.0, 10.0, 5.0, 8.0, 5.0, 1.0, 7.0, 3.0, 4.0, 9.0, 6.0, 5.0, 2.0, 8.0, 0.0, 6.0, 5.0, 4.0, 3.0, 3.0, 2.0, 1.0, 9.0, 8.0, 9.0, 2.0, 4.0, 7.0, 2.0, 5.0, 8.0, 1.0, 4.0, 10.0, 8.0, 9.0, 7.0, 8.0, 6.0, 4.0, 9.0, 8.0, 9.0, 1.0, 2.0, 1.0, 2.0, 9.0, 8.0, 1.0, 8.0, 4.0, 1.0, 7.0, 2.0, 4.0, 7.0, 8.0, 8.0, 2.0, 7.0, 4.0, 4.0, 8.0, 2.0, 5.0, 7.0, 5.0, 4.0, 3.0, 9.0, 7.0, 4.0, 10.0, 9.0, 7.0, 9.0, 4.0, 2.0, 0.0, 9.0, 4.0, 7.0, 10.0, 2.0, 2.0, 6.0, 7.0, 3.0, 5.0, 3.0, 6.0, 2.0, 3.0, 0.0, 5.0, 8.0, 8.0, 9.0, 7.0, 1.0, 4.0, 6.0, 1.0, 6.0, 5.0, 3.0, 1.0, 7.0, 8.0, 0.0, 0.0, 2.0, 5.0, 5.0, 2.0, 6.0, 4.0, 1.0, 2.0, 10.0, 4.0, 9.0, 7.0, 2.0, 5.0, 2.0, 4.0, 9.0, 5.0, 7.0, 5.0, 6.0, 2.0, 7.0, 3.0, 7.0, 1.0, 9.0, 3.0, 2.0, 9.0, 9.0, 3.0, 10.0, 5.0, 6.0, 3.0, 4.0, 9.0, 0.0, 6.0, 10.0, 5.0, 10.0, 9.0, 4.0, 2.0, 8.0, 6.0, 8.0, 10.0, 9.0, 2.0, 7.0, 4.0, 6.0, 4.0, 5.0, 4.0, 8.0, 0.0, 6.0, 10.0, 6.0, 9.0, 9.0, 3.0, 2.0, 4.0, 6.0, 1.0, 5.0, 6.0, 9.0, 1.0, 9.0, 5.0, 1.0, 8.0, 8.0, 4.0, 2.0, 2.0, 3.0, 9.0, 2.0, 8.0, 10.0, 5.0, 5.0, 4.0, 3.0, 3.0, 3.0, 3.0, 1.0, 7.0, 10.0, 9.0, 6.0, 3.0, 3.0, 5.0, 6.0, 0.0, 9.0, 8.0, 2.0, 5.0, 3.0, 3.0, 1.0, 7.0, 7.0, 0.0, 10.0, 2.0, 6.0, 8.0, 1.0, 8.0, 1.0, 6.0, 2.0, 8.0, 1.0, 9.0, 7.0, 2.0, 1.0, 8.0, 4.0, 8.0, 4.0, 6.0, 2.0, 1.0, 8.0, 7.0, 9.0, 1.0, 2.0, 1.0, 6.0, 5.0, 7.0, 4.0, 7.0, 7.0, 8.0, 5.0, 4.0, 2.0, 1.0, 2.0, 10.0, 2.0, 0.0, 4.0, 8.0, 7.0, 1.0, 5.0, 10.0, 6.0, 0.0, 5.0, 2.0, 7.0, 8.0, 2.0, 8.0, 9.0, 5.0, 4.0, 4.0, 9.0, 9.0, 7.0, 8.0, 3.0, 2.0, 8.0, 10.0, 3.0, 0.0, 5.0, 0.0, 4.0, 4.0, 4.0, 8.0, 1.0, 6.0, 2.0, 6.0, 6.0, 2.0, 8.0, 4.0, 7.0, 7.0, 3.0, 6.0, 6.0, 3.0, 1.0, 3.0, 7.0, 5.0, 1.0, 2.0, 9.0, 2.0, 8.0, 6.0, 1.0, 5.0, 5.0, 4.0, 9.0, 3.0, 4.0, 2.0, 5.0, 3.0, 0.0, 4.0, 1.0, 0.0, 8.0, 3.0, 1.0, 3.0, 5.0, 3.0, 10.0, 0.0, 8.0, 5.0, 8.0, 1.0, 6.0, 8.0, 1.0, 4.0, 3.0, 9.0, 4.0, 9.0, 8.0, 1.0, 1.0, 9.0, 8.0, 1.0, 5.0, 9.0, 9.0, 4.0, 8.0, 7.0, 5.0, 0.0, 5.0, 2.0, 1.0, 4.0, 2.0, 7.0, 7.0, 6.0, 3.0, 6.0, 1.0, 4.0, 8.0, 1.0, 7.0, 6.0, 4.0, 2.0, 6.0, 4.0, 3.0, 4.0, 3.0, 2.0, 2.0, 4.0, 10.0, 4.0, 1.0, 2.0, 7.0, 10.0, 8.0, 1.0, 3.0, 6.0, 1.0, 8.0, 3.0, 5.0, 9.0, 4.0, 2.0, 7.0, 1.0, 7.0, 4.0, 2.0, 7.0, 1.0, 5.0, 4.0, 4.0, 2.0, 3.0, 4.0, 4.0, 8.0], "lambda": [0.23421079099056874, 0.3201210865486436, 0.019587424870426362, 0.15955815237077686, 0.017076273134265407, 0.1992451402145688, 0.031954106033458496, 0.1952735943470002, 0.15431889335482535, 0.23835833813871488, 0.04235078326633984, 0.3636399471373613, 0.168723526620972, 0.20568561638522642, 0.4363746469972793, 0.25765850182520306, 0.22024530942422793, 0.36689406358413534, 0.46274513679925394, 0.248041881537639, 0.34292824295271046, 0.29180116642384213, 0.43196245198970457, 0.39064356077277596, 0.3369164340205975, 0.4391592867037491, 0.4611619165967514, 0.12549885305029812, 0.34349324508639517, 0.03886765774361489, 0.27566910629899055, 0.020650216940392097, 0.07572908388513044, 0.2503182755634239, 0.08659876694514951, 0.18453432807203707, 0.37447556295794326, 0.469821789016505, 0.46751210889077416, 0.35460049496104673, 0.07938063365628306, 0.006728845816492912, 0.080745510081555, 0.26713613856175294, 0.4427758079922847, 0.39726683650905253, 0.3610591967777023, 0.030767721031508544, 0.3221880480655331, 0.3242870499033103, 0.2039176512747894, 0.18516926946281848, 0.23660738067202247, 0.055111592913567875, 0.10977152388585132, 0.3122354830571861, 0.1285672603773108, 0.41899151311298777, 0.4994724082225284, 0.10938914232280034, 0.4870249506313579, 0.3541293404153169, 0.3612851417867698, 0.434150763716177, 0.023782389525677017, 0.16826045335518885, 0.1267932825019102, 0.36299052762382095, 0.2762067861677085, 0.454688388523739, 0.42515818823029977, 0.04918883435095989, 0.24832138115920993, 0.2080603722188768, 0.0008825315841041181, 0.1575145212979126, 0.4713375596416941, 0.0688759163653394, 0.4519250799688742, 0.10658405671731203, 0.31059533315599136, 0.1572350340589781, 0.4785474424232396, 0.35936524740981696, 0.04938125301090468, 0.03129323591098698, 0.320539692247626, 0.2615171549768535, 0.4714228659694726, 0.43060188099732993, 0.06845114764460297, 0.2943057203199711, 0.4666606947366479, 0.29555682627034896, 0.083700904251643, 0.08419760107767682, 0.14032790279179458, 0.13188414903581647, 0.282756016642614, 0.34802309497664985, 0.20825126462894522, 0.1745649620145348, 0.49465956049475895, 0.3186172935797443, 0.13390823633710458, 0.24873891183404045, 0.43783952673337645, 0.27462624361932153, 0.2192610411892582, 0.15424842971153935, 0.44188147604731265, 0.1861049960738318, 0.23975462066891695, 0.19552928355762877, 0.34519281576373, 0.42802187747650644, 0.45916189360181636, 0.3088658357789577, 0.029374837562327616, 0.4922854119186678, 0.01100616615055211, 0.4140206867658991, 0.2815966960635408, 0.12197084362279464, 0.126518590704855, 0.167991105991446, 0.45463315026825685, 0.4797321604753257, 0.356472034668509, 0.16751328804797, 0.44870451160717745, 0.18008909397497846, 0.28878390025059025, 0.3482232261534106, 0.2514283513300228, 0.41599600801905695, 0.02408775612734887, 0.308445969728132, 0.24685793966316488, 0.38534429958749183, 0.033852046666715596, 0.3209302758779897, 0.27043340247472364, 0.49597058644540315, 0.32805913013150334, 0.44050588111936545, 0.40616465000718655, 0.32744328718766413, 0.2644985214952268, 0.17077575886025914, 0.1033098144915599, 0.36449578617232753, 0.38037472913398324, 0.3649600448138212, 0.06729637636179497, 0.15105928063235408, 0.16134710974175298, 0.3008641653903247, 0.09467761904345495, 0.2285958246264403, 0.4482335118753987, 0.4036048326194179, 0.4918930373861635, 0.1681150171360843, 0.37644487823726897, 0.43181626757225117, 0.23239681172073706, 0.43677044291380734, 0.4700940982516152, 0.44284242904789395, 0.41024344815981223, 0.05202597993887331, 0.36172744951519253, 0.16907336400415585, 0.23267822013754696, 0.24967089019229655, 0.15307369546229566, 1.672984832301605e-05, 0.1476571699017889, 0.3525224207560184, 0.2859854758811884, 0.41067995509575084, 0.25236304376401403, 0.0985720106035251, 0.398910018082744, 0.460243681019915, 0.26331488457427893, 0.16771904510885471, 0.3591384289408351, 0.417571712687686, 0.12238870600680496, 0.241906130697584, 0.2628922155851003, 0.38576442006125033, 0.02061525371083045, 0.4780852678256458, 0.1897029255316261, 0.0919975960176671, 0.08057379279669319, 0.05529023259150584, 0.11773314777374388, 0.31479669305389474, 0.03465821595400159, 0.08557918910460671, 0.42977855067355586, 0.1727685139826965, 0.07058263047727753, 0.2725637302599085, 0.45634729297998367, 0.4317370614622735, 0.10259122544125959, 0.3853235717622766, 0.18694963719661134, 0.4026391061825961, 0.4517277295757012, 0.17485350296969843, 0.20724014248966321, 0.2326762007120428, 0.1809471073119177, 0.4178143237650903, 0.23707677092324736, 0.18165227624149288, 0.26446596855921595, 0.3123851168740784, 0.0777701922655924, 0.3689454324808215, 0.2142148388959062, 0.11521942564929405, 0.485568738869349, 0.43039597159457843, 0.48219913262672903, 0.19239976612922532, 0.45532959328728806, 0.107066108578039, 0.4325373636955255, 0.3142664593249083, 0.09818081888969676, 0.27763092340894385, 0.16031540003668854, 0.1334920963193988, 0.27059498409690635, 0.03616441718754443, 0.13950173561867502, 0.3418565848850183, 0.11185989816554975, 0.26026031891306817, 0.28896542822755567, 0.2465666509008087, 0.4660027169956258, 0.46771309123574534, 0.15704301415757316, 0.18745212640542502, 0.06161707174169717, 0.12342158035075451, 0.4289715302167322, 0.38452749199044894, 0.2119370718849271, 0.34708458595686503, 0.18595459981508322, 0.4550720703883042, 0.0969074529436103, 0.17511149336593979, 0.17267203665353176, 0.08962706997819453, 0.2878821787428281, 0.15390082470874178, 0.27346900015887365, 0.303164575096546, 0.2086750671108849, 0.31579090027404005, 0.19618227981944514, 0.046641215761209, 0.3899820516462951, 0.13279861994631542, 0.16143580253780576, 0.1299119283441627, 0.01750222861927392, 0.47878056618768294, 0.4634359004397131, 0.3290088961897091, 0.3816247786860767, 0.22039498132852997, 0.2776411342499618, 0.40317498460786144, 0.43399531349343723, 0.30664353893046087, 0.4820616169689648, 0.14227280781974194, 0.04400984423666754, 0.07507527415559812, 0.4194092125934362, 0.07723820986610708, 0.22290088674914427, 0.005425032234720628, 0.23274332710807405, 0.056037709478675535, 0.17014807250622715, 0.24184681537160357, 0.21109151966253825, 0.2553645205688588, 0.08939321878963347, 0.3881263780542996, 0.3687670923437447, 0.035614827533372195, 0.28392233130507377, 0.3400975784360748, 0.004364683267874092, 0.038116702436361005, 0.3614548886363809, 0.29310859690103275, 0.13999577660285595, 0.40473161406502345, 0.11342050618230498, 0.4432202489810043, 0.13979440502614104, 0.3510163713013619, 0.04121381505464228, 0.14415336839895532, 0.46567126990989205, 0.3308406173363997, 0.40443985331923515, 0.12936504838498725, 0.13860646395230536, 0.1875669289392513, 0.20208491904559, 0.499163901851329, 0.45047673943835786, 0.1650764313315652, 0.06941093415031246, 0.23068018919023547, 0.3497469556814567, 0.4750058265251099, 0.43918143483448746, 0.34252009605258155, 0.4314010122565487, 0.3073485210163029, 0.36717804200545073, 0.44356890169430824, 0.0008276690698517108, 0.4532220433395628, 0.35787353901287844, 0.001993302007382236, 0.4931363620162585, 0.01207226389809224, 0.34247261684252317, 0.15265940423636482, 0.32450878615000606, 0.0823622988158616, 0.1640457954447871, 0.006843451315824645, 0.32384368490954535, 0.0033558831379234544, 0.13344319360526868, 0.27726415327245957, 0.13577849560819732, 0.1714032563323712, 0.25867603501290587, 0.44233714179166583, 0.426000542283171, 0.004879756093265686, 0.4850875267485801, 0.16981749256201484, 0.06107207073942722, 0.2781712185913884, 0.17038621773519147, 0.1237611630373282, 0.38848802341801275, 0.2849114008669487, 0.36004049085184897, 0.3571775152033262, 0.1292896901562091, 0.49193345882210743, 0.014041123931989086, 0.1311704103690236, 0.1642780120846961, 0.429615931179095, 0.25825028950755824, 0.29685663690513403, 0.36889941153934935, 0.31094028463709394, 0.18643354914961224, 0.23037478086848068, 0.46808568524469146, 0.37729021571933163, 0.2580146840890989, 0.20104291934481905, 0.183449178240442, 0.26288650483717524, 0.3913323445868305, 0.24367239979759842, 0.2461117505847441, 0.36298237467125916, 0.4332617649437593, 0.11917746762661335, 0.43289208745877766, 0.45825430005769413, 0.1302870807116917, 0.4339318307225652, 0.20326481703788102, 0.49545570187762233, 0.2352224401613024, 0.20673386862784987, 0.22983733489049024, 0.4258754772276029, 0.32301205647720377, 0.31914682309095427, 0.06379358187235568, 0.4815115448825899, 0.4377361639621273, 0.37455212909234636, 0.3507755923635707, 0.1892628754851451, 0.49575067797539957, 0.192738665479475, 0.11203768334510156, 0.014514815616369692, 0.002428344788665826, 0.36463522171208623, 0.3152031157577128, 0.20156808655997155, 0.37211405739341613, 0.0897065764889412, 0.46919330383837304, 0.18248601261045622, 0.19669940324318352, 0.057244395711725404, 0.4139681959866245, 0.21570309846858948, 0.27641030684119466, 0.3199237636701469, 0.3414336625418801, 0.1371674436803587, 0.23497316379755873, 0.14621150141230266, 0.13368052869681352, 0.11670854643787226, 0.47643177809732845, 0.3060187366738161, 0.35630033905333225, 0.19742920274571862, 0.25983983020308704, 0.15063228397381423, 0.08857196978970511, 0.02459512306710815, 0.04971748534098974, 0.2962060101657735, 0.3870950086248783, 0.4775748987981552, 0.003019697987298564, 0.27209284030494035, 0.3720324839311076, 0.06063471147047256, 0.3087805268370473, 0.2411862264442291, 0.3823891233639472, 0.4979052985952539, 0.05273796060967373, 0.4772202093905325, 0.15083245678472046, 0.19637169643551727, 0.11726985217873565, 0.2843638527777446, 0.37609028601514205, 0.22331550598014654, 0.31046876892505904, 0.12361498705749907, 0.004347739441635634, 0.26085067413140106, 0.2789087727146747, 0.09608904640866134, 0.49926996763398845, 0.05097408620568877, 0.14618665386514734, 0.40908390305851616, 0.22891157110472393, 0.33353892087692316, 0.4226694682913476, 0.1386296465360337, 0.28493449938077076, 0.3213553324450671, 0.24969913696474477, 0.07458704650491776, 0.4520931388090337, 0.037792790090740436, 0.4283589854818681, 0.22243047237875135, 0.12003050696005746, 0.453920426765277, 0.041677385455777316, 0.45004086292677437, 0.364009567264686, 0.4549240086604427, 0.0348778745018225, 0.07026564694360155, 0.314516289506046, 0.0006559589435125579, 0.2292529324054809, 0.07588109726957698, 0.1266408169185187, 0.18834321016342137, 0.2775337288213698, 0.36671211434705464, 0.02054335521034223, 0.4197494078529825, 0.35774765852671453, 0.19521014044187013, 0.12898358818529587, 0.4488375869905328, 0.029552394376501867, 0.44290009175171763, 0.41013496209150463, 0.20386631453168552, 0.028221862633940942, 0.3363298836508943, 0.23858365439837725, 0.01921873836606891, 0.4703263930785246, 0.050389838261420905, 0.278503373109518, 0.24332675518833718, 0.1093040600174019, 0.13636463608394245, 0.4467893771049005, 0.45321346141102314, 0.049810455677122556, 0.218363148770635, 0.24124765263092768, 0.20137902003604052, 0.06372904804055873, 0.07821405997652953, 0.48161013134641484, 0.026449832069809998, 0.41552633317373566, 0.2546945203399397, 0.07037408829014064, 0.46569485309539077, 0.16571234042366012, 0.47700400783044267, 0.43800912718530344, 0.344779532041748, 0.3470780127882843, 0.45254749351037366, 0.42154540460290374, 0.46472380958240544, 0.4432845614857753, 0.021771852613783393, 0.45457288686794645, 0.35157385179138584, 0.21034758610351817, 0.09440110214071529, 0.23734963735591452, 0.17710627742676727, 0.2566130188381103, 0.2632833153964512, 0.39020040795711686, 0.27729441894654827, 0.24205865787507785, 0.18084580775781767, 0.12080166030525391, 0.2774779056220008, 0.24246459630156786, 0.27909284280494057, 0.3394632821558114, 0.13887944037061234, 0.48667553588808, 0.25786111631814235, 0.3089959565491122, 0.035863449172339856, 0.2759774686003757, 0.4452054368162187, 0.1986973306456825, 0.09983399649980379, 0.07114829260529243, 0.35791826485263806, 0.24225370740344954, 0.3907131552210012, 0.3846966230105446, 0.2055528784344221, 0.37814892226611524, 0.028204888922334803, 0.10998488697474307, 0.19295064297508502, 0.41669395734562603, 0.18190831545740804, 0.2983345856995651, 0.1750339797933519, 0.20441489416414932, 0.24454232096174505, 0.43750277821622957, 0.20050911307800728, 0.13910300083468707, 0.4451453199627621, 0.21756313736618277, 0.003272967546572636, 0.299312083140545, 0.036791860223061246, 0.2930328962746835, 0.07887958514445148, 0.1544388106079317, 0.2582431856505667, 0.3899908979862065, 0.09280684658938276, 0.3750987869120615, 0.14896363212195296, 0.4325809835006669, 0.09781764315984132, 0.2885351007919555, 0.1735955904175806, 0.40574392603563475, 0.41917297457957375, 0.31801725214508225, 0.24893101906701404, 0.0004534655667816634, 0.4693424008531915, 0.4939634801217436, 0.36168400351427044, 0.4101291464189768, 0.11783543915329903, 0.3957611257105019, 0.4702752072611839, 0.07335606051807642, 0.3635390734462026, 0.35276909270178736, 0.2586365618001824, 0.07720583104495432, 0.020445744975614577, 0.18585816542272926, 0.12645373113650493, 0.08358391892233813, 0.26271869737213577, 0.22391773147559546, 0.4015151900154223, 0.18190413087394858, 0.44826118449764885, 0.4139853348181298, 0.21733587376036656, 0.058576999657120044, 0.009656810454054587, 0.16071645257908151, 0.3359882751029691, 0.2318501576250615, 0.2538878057059843, 0.18988402538114402, 0.32306277676679, 0.4547768198775389, 0.15734013171598316, 0.26266931112258035, 0.15062543738584278, 0.15705574212421852, 0.442662162169578, 0.4139823029264987, 0.19019190375054212, 0.0246751879869041, 0.0198779570045709, 0.32795433516711014, 0.03127979161172556, 0.46979652115857634, 0.2221178708197789, 0.2732194367212743, 0.4158445995319922, 0.025424376305232643, 0.22341835864428178, 0.47471660859846987, 0.42979010586924943, 0.3254208203056383, 0.1571621379750469, 0.2784215736272932, 0.375942485952076, 0.2475208351538586, 0.4004942308884269, 0.2181935367501368, 0.29915240800829995, 0.40415148754456603, 0.045027157762917214, 0.4674761579584435, 0.47229019159926877, 0.27809704656135575, 0.4632222036265257, 0.2594467634782289, 0.029233284021870032, 0.1747366168214129, 0.40843519506479, 0.46111112397164816, 0.4615767336287437, 0.33485381659117985, 0.25941745119329224, 0.1377988558503303, 0.17245321835678717, 0.0004145376515468646, 0.11495811398876593, 0.12651263374252208, 0.3290346598548419, 0.4899367528248453, 0.06807904114665692, 0.4746624467577054, 0.3422364546014481, 0.1842148940705181, 0.15112922492950787, 0.1454153627620534, 0.004099897252409113, 0.3302708282226196, 0.11197508394766953, 0.3274117574758821, 0.0026189258577354324, 0.2442051554828123, 0.1148056263323407, 0.225032061017031, 0.26698068311509743, 0.1347292180578331, 0.2548978324635327, 0.2960480770129477, 0.4215303233021638, 0.2222295306599122, 0.41346998896515486, 0.09542971471893558, 0.30847424286574887, 0.4478075285525501, 0.017392936591940633, 0.2792026883451539, 0.4191108951251098, 0.2318391140442535, 0.05441633455549755, 0.04517516130968857, 0.40168146286503215, 0.10632929347374853, 0.40402144620339187, 0.4767120170983614, 0.23778861699410192, 0.40572751735082035, 0.3329407663968661, 0.26037429655790967, 0.3456861363814059, 0.486652884726778, 0.08938597032057677, 0.07955647758775619, 0.1255241927661085, 0.1429403467025429, 0.05560009256824072, 0.08427448088917938, 0.044905449928503205, 0.30414085583653194, 0.3599740346757643, 0.3691885776823073, 0.4958296507446188, 0.25527941013536626, 0.13317170780232584, 0.09708592345827832, 0.478969851354647, 0.1384212767402329, 0.26477209433513305, 0.0790513880139943, 0.42675633350611075, 0.07629458977811865, 0.42819859291341533, 0.32680492651063076, 0.3447532227709416, 0.10087949605827118, 0.13979710449660326, 0.40819531023551187, 0.18993175562153441, 0.08713605923345369, 0.08920147344983309, 0.29761428577164184, 0.4278356082631619, 0.004917557768611913, 0.042515594187578276, 0.4956745921868907, 0.26227940654691656, 0.26820111751163894, 0.46176120802853027, 0.4990537041480458, 0.15716616364568564, 0.007778414897024688, 0.4013809133986374, 0.4155207632105013, 0.4647563496760541, 0.05709694835205592, 0.37496555467293563, 0.18023151996271208, 0.124736425580737, 0.07667976890034711, 0.29360188301573664, 0.38294904619534703, 0.06552461378358615, 0.4676618800092886, 0.4971723270024244, 0.007590681990645942, 0.38394856332322513, 0.32866727547382935, 0.1518508275351988, 0.32706332146885875, 0.024136729430369874, 0.05692243114643386, 0.25830780501353595, 0.29339468998000423, 0.4770541429047017, 0.49864412216129, 0.4734907594925477, 0.2067623455579099, 0.11734389089442149, 0.24500830607227908, 0.310372889892112, 0.16313591103095, 0.042899333840748954, 0.0512301218647957, 0.43463155467723735, 0.1998925967971718, 0.12911862885361008, 0.042638047137096624, 0.4531019721114127, 0.3581419959765415, 0.12060796940575291, 0.357706332690134, 0.011819744950356648, 0.17530031415883934, 0.08859327496439645, 0.2554203675447563, 0.3940829490409915, 0.32319433070701825, 0.008907662972784947, 0.37438652751183, 0.21118269667154033, 0.4016231899825289, 0.1094676027118292, 0.1262735517424335, 0.11616697885696942, 0.4199786216411445, 0.38430088742311175, 0.1388356976587624, 0.3280925621629372, 0.05723363676123572, 0.162493806389352, 0.3083606174393693, 0.3358470657123973, 0.2137171325331073, 0.14612556358718615, 0.31488548934332206, 0.027749062406876357, 0.44126202302505413, 0.3034618323659264, 0.14219863682748984, 0.49170362023443565, 0.47920827961579654, 0.45077452093701575, 0.05825484609237175, 0.15512942107796113, 0.22786518290648383, 0.38207490337767785, 0.48669847041384995, 0.2780077922139826, 0.3701901343025242, 0.0014119733535631895, 0.3908195876693565, 0.0888517505363009, 0.08786966658843681, 0.3691107220212811, 0.35830010223198416, 0.21141239978967974, 0.1254517927461613, 0.4874769371745128, 0.16290243890788547, 0.23541548718951583, 0.028638134317463204, 0.22756798847113735, 0.12063388726749441, 0.12828687045555842, 0.02651203984423478, 0.03304596509745045, 0.07001923723833059, 0.06139554653255941, 0.024173271641830585, 0.10619583866371007, 0.45636270521595645, 0.12683326205472234, 0.41652514015585007, 0.4419489866030297, 0.3694211125371278, 0.30747177642427675, 0.3464929037050683, 0.044940766719734515, 0.46998982271225287, 0.3058870717857858, 0.07787127947500078, 0.3916627362986897, 0.12766073771423292, 0.23010512764767987, 0.2945669493401115, 0.189088571918835, 0.45402338774759515, 0.35680040064896007, 0.4400956106633786, 0.13385299129865558, 0.045658760891441885, 0.12823630224181432, 0.318766193181428, 0.22301456659154123, 0.2843761852958067, 0.374012367215094, 0.0801679471631101, 0.32730447608557345, 0.3585836444611083, 0.45680056398225716, 0.09824774523710628, 0.024252446497871782, 0.240433977138704, 0.11792548903864358, 0.3776906111254206, 0.3662071449408345, 0.4408834506013168, 0.31385404447766996, 0.3848830110898533, 0.22291776538370817, 0.24209930685485226, 0.3552575610468207, 0.41311901128403783, 0.4232282796583072, 0.4564661309999561, 0.31610813545022626, 0.23866461608131084, 0.0762418363949044, 0.20296179268569087, 0.30909909848969397, 0.24876392807319853, 0.25283796781368806, 0.006341564868257821, 0.2769458419599896, 0.06921557708688736, 0.0859328011883243, 0.24618813107839832, 0.29300898291860733, 0.013164998534960337, 0.03938871020553153, 0.26025003645640993, 0.08036122437403709, 0.3845487561471564, 0.41807749546016365, 0.25770599856937265, 0.2153433333178647, 0.03789253244202062, 0.4105100171474466, 0.3628565886144903, 0.16017704846633168, 0.4425601140702389, 0.01147863408998484, 0.197669854561156, 0.3510912450211969, 0.2632145489842369, 0.3021515876394378, 0.25919777830680796, 0.20312320345574736, 0.15556819165696123, 0.036691092347733656, 0.08481002352114247, 0.045953125760921754, 0.16985554525061353, 0.40532967862595, 0.10150647522200806, 0.331197087552202, 0.2141688221702665, 0.45023332738453997, 0.27586605035369266, 0.44166757283520935, 0.0968694467244996, 0.0919334593473008, 0.3695430485598285, 0.19490668220757013, 0.04460022022815496, 0.10737623083290121, 0.10172066077315728, 0.2106046780855304, 0.009687930093663755, 0.43654481658560085, 0.1692534392345043, 0.4557985123471561, 0.1895892302379492, 0.3970005056913175, 0.3326269360561074, 0.4567389503729958, 0.43355429702660503, 0.15095207979366104, 0.13890183115370647, 0.3967540341760996, 0.48271998404497785, 0.1201990668627031, 0.02347869973801836, 0.25048321534067153, 0.23642257115840137, 0.37156522915738355, 0.4507547461171627, 0.10467126431079488, 0.16771189603733927, 0.20179782434050192, 0.495882113350459, 0.19184612577986826, 0.18296547839588173, 0.46654822808432667, 0.33745801444421086, 0.2749281502852837, 0.26638655403309164, 0.2683305807257143], "expected": [-3.6742516989474656, -1.9350924198995962, -4.04058235759961, -2.8714142634102915, -4.198125213574704, -3.105904341068214, -3.7150219493424856, -2.1199493222445662, -2.4078581417332137, -1.5507931249971456, -3.3946229391955134, -3.006107074647849, -3.381181473797737, -2.299543914513084, -3.6577675959478158, -1.9975018278123897, -2.9425874721292207, -4.115679144223066, -3.306770745697005, -2.5077839175927226, -2.2655877104688855, -1.6658390791894162, -3.639409954159895, -3.863436083259227, -1.9254862055090318, -1.4736090275857878, -4.223874831605889, -2.890545042009779, -1.5789163743839891, -3.5779049406477594, -3.904246141358128, -3.931637228478917, -3.0725930957985566, -1.5075717666297863, -2.749252933089143, -2.3343714518782757, -1.5381058902031302, -1.4509541825759633, -3.7900682849556806, -1.9180309762641736, -2.811070527131466, -5.02490072212682, -3.1217726016088174, -2.252001714611863, -3.684579002787705, -2.7042806104447745, -2.999113002485774, -3.5889367370761738, -1.6115804970402592, -4.202475252782786, -2.0981011646738774, -2.3331491008404863, -2.7403621869678774, -3.4769403623907675, -2.7028239622595196, -1.9405275003143807, -2.8863016409722073, -4.4240284018682505, -2.9314555877037702, -2.3764288219319547, -3.388213559812045, -3.688843250991114, -1.5545827590921373, -3.2143513026674504, -3.8695894838384643, -2.0334534915389133, -2.1279240907790276, -1.1893897307430799, -2.25015248072881, -4.189706431005382, -1.485510921539785, -3.331715236413591, -3.749516607137069, -1.8802144856307785, -7.037569871704127, -3.1860774865889, -1.4499475418804106, -3.1229445088651993, -1.9155561568969746, -2.7179763001693837, -1.631141058929476, -3.1854814434964793, -4.795129343758231, -4.4320106607584835, -3.2302984566280837, -3.7615982485821555, -3.5375194463308177, -2.515234580876606, -3.3355826552373378, -1.4807603005052015, -3.2632744921653973, -3.7211284169641647, -4.719711322780642, -2.249705949734049, -2.6057649614213565, -3.021577888522567, -2.594428632646993, -2.618585450062511, -1.683975836637522, -1.5724794932270723, -2.7125855088323565, -2.1806013535242172, -2.425019343238465, -3.5291680033709745, -2.21071584086559, -2.010622126674728, -4.1017243415615585, -2.2503955629690524, -2.063642553131604, -3.3335597177243645, -3.238939100616877, -2.517474040244258, -2.504641136879463, -2.7058637020059457, -1.5764813562233242, -2.76705759089763, -1.4583260759002836, -2.560772779996009, -3.542268301987486, -3.89847441198824, -4.602846969061484, -2.7378003896804444, -3.375952759415478, -2.8961639396080936, -3.1421071730454764, -3.0426019373688757, -3.734782572874959, -2.88375108655994, -2.2738625234707133, -3.2093866250207492, -1.9147770313293595, -1.8029971593012168, -3.1156995447005817, -4.35798481890799, -2.2579638222687763, -4.40584552463137, -3.81033458282169, -1.9433625305443216, -2.0135492697807846, -3.8375208517362283, -3.4364861407024163, -4.181081176708372, -1.7103341119152016, -4.410789531524842, -2.2582880993810295, -4.996565161069254, -3.1280379212731804, -3.567801583803887, -3.310745248430135, -3.047007239737592, -2.8377822121131087, -3.0084375122992206, -2.291888647905023, -2.279783875197071, -3.0685902638612754, -2.568899088058641, -2.226480579448987, -4.055537170785763, -3.161663938010521, -1.587921316990046, -1.4664338030866413, -3.1203674169171376, -1.92916521834144, -3.3790222372489596, -4.5473123342788275, -1.0479058715663336, -3.2000357279560427, -5.406501088788021, -4.271337177282281, -5.013386425464696, -4.371071150713442, -3.3981201237068537, -4.447829007623588, -3.551502082268868, -2.735574238888311, -3.0078764870179198, -3.1769860910204404, -10.998408123328353, -3.314696947588507, -2.6238192965810505, -2.5353433936695318, -1.0882634762722807, -3.7716832716291084, -2.464421122751583, -3.505312910468841, -4.219016313332622, -2.779749268730669, -2.706748002865748, -2.6348018798903765, -4.832975525087889, -3.262621844493293, -2.2634398891249603, -4.093501397940986, -4.225333057270919, -4.036320700832797, -1.9236738580415067, -2.1350542768624883, -2.5236366031761857, -2.961467203093259, -3.3649986167491215, -2.4330900655669905, -3.1978811367814415, -3.4488159595055006, -2.9286935437930577, -3.2005828084366916, -2.3592490514743925, -3.3212986106493934, -3.3410172529798623, -3.285749070345157, -5.3654231665771, -2.5330424339971542, -3.837419848850182, -2.7036831897359437, -2.714844789549872, -1.4637792405269217, -2.8790809690987325, -1.6757082409011197, -2.735571850254878, -1.9796073042400142, -2.3278051315787502, -3.926336561490506, -3.2483308175034393, -3.8395568369105026, -1.9404185777564837, -2.6704003466935413, -4.127477424011099, -3.7881203866168627, -3.1397289522064775, -2.8976889312841116, -4.9241048775342895, -1.9252264799070469, -3.0896362748700588, -2.371763650611083, -3.143893135339556, -3.2092588270477003, -1.9390684442661552, -2.9587181200145607, -3.0828541014612436, -2.5509608071645453, -3.281145525936378, -3.6041404220155626, -3.6270226464936033, -3.015130520760008, -2.6068539242259203, -2.2459167435310423, -3.2952045957613505, -1.6714195745394094, -3.986540919846343, -1.453535935760543, -5.194076335231492, -3.1850737625709464, -3.4535633255179095, -3.0639349417032467, -3.387441272143464, -1.4821663869219852, -4.602597848087839, -3.562997206954389, -3.3092221154251376, -3.0754718392599196, -4.191726071866926, -2.382061312434976, -2.7041682746870768, -2.5321433810199516, -3.083966222757946, -2.2493408186182795, -3.024716365127922, -4.164877395890164, -1.6443997285787104, -2.5042010127666763, -2.5695823290704842, -2.3137459009556114, -3.2750655011349297, -2.3002628383770003, -2.7485791402342374, -2.387587370873875, -2.7547110242794486, -4.159178778879074, -3.8390534696199086, -1.4553081428174925, -2.916713193520384, -1.9113184742793399, -1.6205083674920442, -3.082883458194118, -3.522258237623075, -1.043883484430282, -1.6381197633363536, -4.817543121375706, -2.304847646435424, -3.277295690801403, -3.377319557326922, -1.4907033904721334, -3.1398990117528265, -2.2791118202317437, -5.224867759751048, -1.5719346538823904, -3.1337692846945298, -3.216138848212967, -3.714559601960962, -2.5035193732572294, -2.5114879531386456, -3.2636130883344387, -4.627355974457178, -2.2826150355109815, -3.70889606308621, -3.6690378003415187, -1.2437567014534918, -5.440755885226041, -3.5148007385326965, -3.723091879064399, -2.542623652421236, -2.595307534600053, -4.7426654193559665, -2.7999299061556555, -2.3567875111343075, -2.1764599415408394, -2.6213674927096697, -3.2507317114499656, -2.8730086909314565, -5.179133253563633, -4.2445479091559495, -2.313985517044531, -2.8852926455175463, -2.3218323541893517, -1.7659375472170327, -2.102578558493036, -0.9340423408292022, -2.8161530291391337, -2.873208327351614, -3.0492702722596445, -2.733247790122376, -2.2695681111412753, -2.8725707694582048, -5.426223923567018, -1.5803215287471553, -1.9114772687352901, -4.095651008012397, -2.6485984191655327, -3.6879153340594133, -7.104759985182549, -1.4626620203981133, -2.990549351828683, -6.236898918689209, -0.9434255383582406, -4.447019284681032, -3.635225990372386, -3.328839446692559, -2.905857087097572, -2.9493374970309634, -3.2008778696289526, -5.0221001271376355, -4.523487057282046, -5.728920733380293, -2.747275120750935, -2.8045363556910403, -3.4216365933344655, -2.0196173304387983, -3.806814662116313, -3.6827350074231435, -4.040768610107133, -5.359257219786556, -3.866709435605413, -2.5360084144135224, -3.0703695395991586, -3.084409323513474, -2.8759886131858377, -2.274405300174236, -3.464384523648027, -1.9644755372736817, -3.3564065776594516, -4.060221240984324, -2.1096481816278274, -4.388849743820371, -4.399147294104838, -2.2272967737575917, -2.2157659043460565, -4.488920451348438, -1.9966744326873926, -2.546691691893018, -3.3894135788020168, -2.252420138871241, -2.1443164724895754, -3.193648292077734, -3.792548134995612, -3.043912628264693, -3.029061948655042, -3.3114181519644967, -3.2537337823757957, -2.253257749200535, -3.084153237314974, -1.7749663923508285, -3.245285186189233, -1.1894083611072872, -1.9117583169613268, -2.424493508428008, -2.3445931177809705, -5.583266545338887, -2.753886713894144, -1.0440003175830992, -3.116010828370671, -1.9307092453861334, -1.5625305409333383, -1.8846436212552944, -3.4218007245379565, -4.466004147888162, -4.194336573912534, -3.8506116686746332, -3.2941785754235964, -2.4064735180929673, -3.663452818162628, -4.534430946722099, -4.3748551588537925, -2.704072096980241, -3.9138420784699917, -2.8976740356393913, -3.2527550338782514, -4.297893276518717, -6.03632940607401, -3.3734529322433024, -2.2536126547156763, -2.506992114548183, -3.0294192880643327, -2.9939686628670676, -5.204920990784519, -3.0683396838600094, -2.509614310854847, -3.0606443831887598, -4.3935655619003615, -3.581093888108876, -3.9085853935272565, -2.5750684842004983, -3.2890680158894434, -2.740189991446419, -1.7984442550552424, -2.433550737505613, -2.212078740170525, -2.322570855308787, -5.25809265518163, -1.3332193790488704, -4.411550479981501, -2.3117538674162903, -3.81335664613731, -2.1179168020270076, -2.9107588199551726, -3.938835569263664, -3.473611710039712, -2.8421800615282167, -1.910586975534262, -3.356210974837194, -5.831285207740588, -3.883411058694035, -3.029192397799622, -3.014956057846446, -3.1782283741896173, -2.7462875561989484, -2.2935933196738216, -1.9318003161452073, -3.1268867451958635, -3.8322374143073468, -2.8710488300668233, -2.902555804657256, -3.374038075468034, -1.6806794523742123, -3.0405360502554273, -2.502012413222566, -1.9418308236486679, -2.6462143152377515, -5.462011016856433, -3.5582043730345307, -3.6443559424651393, -3.062763115641361, -4.928038256212975, -3.0527907557635636, -3.1645672999681054, -1.5004976534788557, -2.2734275993923077, -2.927828728531343, -1.4877363288514351, -2.8762413883617883, -3.3891241634272244, -1.6129416235873615, -3.507344648218019, -2.6328501590455113, -3.7239707462370064, -3.2944738163524105, -5.337929212264601, -1.6122953238953783, -2.6595463921112072, -1.4621435444395667, -3.5736594001843605, -3.7152576682672036, -2.279093739948599, -5.100794632732306, -3.652313866936426, -2.9011963168280137, -2.2534081275101037, -7.333676072292092, -3.648643321661719, -2.919812708448466, -2.508975115530053, -2.5155562284144013, -1.9724398136575, -2.647785708161478, -4.018731962125477, -3.5891380615839643, -4.778950854849709, -2.3153268612035407, -2.7567867385982407, -4.158996161759043, -3.7136446848212166, -1.9135012557620716, -4.370417195210959, -3.3214233656863397, -3.8357328395436427, -2.262108590555707, -1.5499564725154111, -4.095994667115156, -4.7429026893140485, -3.3657837379046063, -4.199380773320996, -2.5058546855234667, -3.3608166111975524, -3.1507475554284703, -4.595073954406565, -3.728735713132223, -3.0741426708901796, -2.5022439710407203, -2.5051218628213188, -2.9098409460821197, -3.3583715446146827, -2.7435861221308846, -4.33305043226689, -3.751500564415532, -2.3253675233493705, -3.2751978861234767, -2.90003311048284, -2.8508314743116854, -3.370625187750215, -4.3082978218440235, -4.978621147108596, -3.990527984846694, -3.6562765307675, -1.4631650184547391, -4.018025065291133, -2.848586615004795, -5.016572513715975, -3.9033190416245294, -4.643671472370455, -2.9738467905715917, -3.3451055180058344, -2.9734384068282695, -1.5545495960854578, -2.349570658540446, -2.5122024209472227, -3.0429795440687846, -5.031863103810746, -3.6364762229873357, -2.02128168015725, -3.0650917140884224, -2.1733981100254165, -3.6373701391419235, -1.535683525962744, -1.4125137741515337, -1.9242508266758833, -2.876061903416559, -2.413672532119248, -3.028662422640766, -4.105913564645591, -3.453505112590521, -4.182028002373978, -3.2496042867019046, -3.303255388762524, -2.852918238164195, -2.7495004796726756, -3.7065055737073047, -2.263213609191877, -2.6916381784920214, -4.603759440814079, -2.916385792033623, -3.0463351511271117, -3.638739026059592, -3.1417798757117645, -1.7402454131983163, -3.5766896602413967, -2.7033698186117423, -2.5483395536329456, -2.354117871433876, -2.301315230634442, -2.0172322300104657, -1.4749637113811656, -3.5100575539404937, -3.154110008923232, -5.029992187571158, -2.067202566332763, -5.736786106624082, -3.44737907819659, -3.3944018973504293, -2.8355760435848802, -3.2100500656553774, -2.098621916211775, -2.5131707050775853, -5.030207115990661, -3.165734206158177, -4.538148727487788, -3.0203559042213017, -4.507139277769936, -2.9600663513225633, -2.5378800365405914, -3.398929659167437, -4.344006294208238, -4.844304482839, -1.6184651124649385, -2.0103263885577607, -7.699271408788034, -1.9206170745746234, -5.387800681751329, -4.085853688028874, -1.4994781152727614, -3.1394889614184933, -2.7013519107429644, -1.4506519940820486, -3.1623764041114493, -1.9152155370790476, -2.6242225969694446, -3.28932000162468, -3.2172815051701456, -4.063751902294668, -2.145977972895731, -3.0156155990186764, -2.8577406922327633, -2.5160313217204737, -3.397689023258405, -1.909589620842768, -2.7033698708710676, -4.155979653608244, -3.1517132474719727, -2.502355402666828, -3.0422896902825523, -4.731827679752762, -3.0324110159271465, -2.5979269984027993, -3.8938518751597977, -3.7801126223818544, -3.083970096455742, -4.194660043080737, -2.825841398056549, -2.2416644183987224, -1.465320918139124, -3.3229555705013984, -2.556877770920399, -4.12676334592399, -5.221615514695098, -2.1336947035815803, -3.7636196758997844, -4.047334106105851, -3.5700610072927406, -3.5742215286064183, -3.330157134297864, -2.2799047995590427, -3.0702979112419526, -1.9098602205068154, -3.761005252041497, -1.6083394376824776, -3.346606357283808, -4.489989381002612, -3.884304516254229, -3.342488639021171, -3.3635528076635315, -1.536350894643237, -2.5075528048404157, -3.511594177145282, -1.8476802341685976, -3.1475666985032804, -3.1220021556766184, -3.258000042130718, -1.4525321109540204, -4.283061237310409, -3.6403896925718895, -0.9922348360087392, -1.4761240084874425, -3.6054949577009854, -2.7042549980228516, -3.134874424042146, -1.9180503586493072, -3.764494233575636, -2.5962357815264836, -1.7356404228834845, -2.3256662996658712, -3.567149205578633, -7.790212163726182, -3.254738946339352, -3.015591052710719, -1.9296719051554523, -3.398149458824616, -2.857090374528945, -2.8717622544099717, -4.318624225037053, -2.7034206536816465, -3.022137713512567, -2.727064643426437, -5.523441997733109, -1.9289785134225856, -3.0287696472303813, -2.258015235076528, -5.964632681387488, -1.7735707328324262, -3.2546191164052516, -2.277015520577498, -1.9850624957771836, -3.2836596611687034, -3.7857161394239642, -2.2497524958898993, -5.28253923051703, -2.7242500256671356, -3.5636121677995893, -2.682989853024883, -2.5602893145319894, -5.049221719828365, -4.060374961738342, -3.0873887718342448, -5.262975895983527, -2.734588194055715, -3.482339037776603, -3.52628687249163, -2.712948651271287, -2.506566656112915, -4.333677449668279, -3.8300197558809326, -3.4552215413326444, -5.155362850176532, -4.258113491913097, -1.9937476343502902, -3.6498958866608535, -2.9002935965184937, -2.9954674594146105, -2.889028544640664, -2.7649834008805216, -2.5877082658030917, -3.3620423958831407, -2.5155175110574364, -3.39499751748323, -4.379892060432348, -3.3561611987125604, -4.4980664642764125, -5.4016818174860495, -2.2561607004921846, -2.3483063800165507, -2.7686528336114438, -3.839881027908314, -2.1842872044097104, -2.7822130568970023, -3.051230812364556, -4.8981503542987666, -2.6873526108517503, -4.908426709405611, -2.911372829990905, -1.577108861465259, -3.150880307214459, -3.15502438068184, -2.7259553861229446, -2.1344172066061167, -2.657808288606821, -2.7287313624723932, -4.035604814719033, -1.9109900661404582, -5.356741493647458, -3.6042227727383533, -3.4178295466102444, -2.7780170132807984, -2.519927804804156, -2.380003039448734, -2.431373707831764, -2.399504233882381, -4.88362463344389, -1.508211976654788, -3.987444678325529, -5.6371998699381685, -3.4052897848086343, -3.412345766831583, -2.34297024357858, -2.5174816378268337, -2.9896111244600343, -3.1303536321982355, -1.1452248950054336, -3.3476343665263046, -4.726039436053804, -1.9314713477352383, -4.922580187951995, -2.294931830635278, -2.258547945501728, -2.111672285594922, -3.5661232599516954, -3.905021752513932, -2.8943920074543663, -4.06305673754924, -1.9561391207958376, -3.8315126079521753, -4.9239987923387645, -1.4485350157959622, -3.3318845279560385, -2.3180885861835834, -2.9965171949148903, -1.9419024702424514, -3.1987182166208425, -3.213171301924996, -3.458004407138624, -4.085134596692562, -2.1080422416037963, -2.240007082596674, -3.517355950707177, -2.8220573118971926, -4.065693997423177, -2.6573397562482657, -3.3478083555267406, -4.467527386324885, -2.002925068905434, -3.1764151541576107, -3.277780508664598, -4.668519340624919, -1.6099444978925281, -4.743109215852536, -1.538212897333659, -2.925861622170216, -3.11445664140734, -3.0326344111683436, -2.6368713754560646, -3.023416772707387, -4.010052652543372, -4.216740938879899, -2.7372574027009904, -2.586394857908049, -3.0035611067463694, -2.0597561674796387, -1.9434280953705434, -4.612798264951508, -2.075492378570087, -1.9954622473507608, -2.568402972826012, -3.82038817339505, -4.119481712577084, -1.643858078338881, -2.7317804735902813, -5.862713521233299, -3.8409236587686766, -1.0137229995074506, -3.163188251655787, -2.250316575415537, -3.1858274958472244, -4.203700117229373, -1.9270062822670198, -3.639954094354, -4.50484128080834, -6.570532781878393, -2.6918412989500218, -2.820289978408278, -3.2663407655458565, -4.49754013052547, -3.7082917236079376, -3.3490883429227543, -2.5142593199958037, -1.927322768055088, -3.198169049953601, -3.9159577909071293, -3.653215379288858, -1.591933359948693, -2.7778751430808004, -2.1169441465172754, -3.7494312078834815, -3.5585171467952064, -2.9738675540163078, -3.312123070081996, -3.7587432936017406, -2.9322734521937175, -1.9167113654276122, -2.888627967340601, -3.5760034093374045, -1.9133082026442216, -4.130217637124102, -2.559058951974717, -3.6535923246937645, -3.439381550199135, -2.390821732461232, -3.168909672683622, -3.0586087439648613, -2.301790249835309, -2.249191166533959, -2.272381735081332, -3.427888296535077, -2.70403755805653, -1.462067303771056, -1.9172809344942143, -4.993614392880878, -2.3448992248297933, -3.474572381625482, -2.8867314746610924, -1.6172164221439913, -2.725026850717473, -2.818159032621698, -2.6607002944014115, -3.2849592302038184, -2.257970390361355, -2.633867864500626, -1.9168304166290793, -2.8602234164107987, -3.8040968354914635, -1.543119210927184, -2.6677876363903037, -1.5342791157394942, -1.1820781201454151, -4.558398039280188, -2.2532153988074954, -1.5259756875260975, -2.2790948624456697, -2.747512487761255, -2.2730605478711396, -5.214668131217406, -1.064005402052079, -4.6555361907364325, -2.886105614878491, -3.458972988188351, -2.6879654984892025, -2.912273376913253, -3.79745792113872, -1.7618196539430593, -2.510115084973035, -5.082823517738773, -3.911725055413302, -2.981799827633685, -3.2702436146549796, -3.491734305114419, -1.663490781261755, -4.349933873580229, -3.6084041499308492, -3.5554172456805837, -2.641496273812972, -3.0645488553392317, -4.836552387026178, -3.8013772179449115, -2.5026351734814827, -3.5950279191384698, -3.9621683078834535, -3.003978801956498, -1.910495246697736, -3.2411120680421455, -4.4959589721492055, -1.9160342956399057, -2.621488955796974, -1.9899370952701338, -3.459162256300032, -3.2913494767377194, -2.9125248571266122, -2.404151591766117, -3.543657276414493, -2.594256897008955, -3.2868344876279707, -3.21537723940333, -1.5042128812943452, -3.0485019730777476, -3.2532564102022943, -2.5028399375624817, -1.9151406138122777, -3.0778002717928215, -2.796587100294615, -2.6730432241200917, -2.800038666737926, -2.283205085825817, -2.1209187350997714, -3.221434151576364, -2.7141291184134233, -3.3531606888675793, -2.5036461032929265, -4.651402473000213, -1.9122983760259686, -3.044565512415788, -5.5629473977221915, -3.2729067288441964, -1.5127600283911018, -2.2603222201089546, -3.743769411114083, -1.4782498598782343, -3.1729362645953048, -2.4593404793620026, -3.100035615139161, -5.304468061350532, -2.658899901141348, -3.8103354437104433, -3.260374602497286, -1.7944404752715353, -3.7710241395955113, -2.816776706380237, -2.518152355553711, -3.0421752011077836, -1.9014894992485116, -3.418543797722446, -2.5128361535836556, -2.520407979681591, -1.9197113771626122, -2.262676810347813, -2.525274749462333, -2.5185913125775534, -3.5933472284387658]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.factory.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.factory.js new file mode 100644 index 000000000000..c697773630ab --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.factory.js @@ -0,0 +1,190 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var factory = require( './../lib/factory.js' ); + + +// FIXTURES // + +var smallLambda = require( './fixtures/python/small_lambda.json' ); +var largeLambda = require( './fixtures/python/large_lambda.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 logpmf = factory( 0.5 ); + t.equal( typeof logpmf, 'function', 'returns a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the returned function returns `NaN`', function test( t ) { + var logpmf; + var y; + + logpmf = factory( 0.5 ); + y = logpmf( NaN ); + t.equal( isnan( y ), true, 'returns expected value' ); + + logpmf = factory( NaN ); + y = logpmf( 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a finite `lambda`, the function returns a function which returns `-Infinity` when provided `+infinity` for `x`', function test( t ) { + var logpmf; + var y; + + logpmf = factory( 1.0 ); + y = logpmf( PINF ); + t.equal( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a finite `lambda`, the function returns a function which returns `-Infinity` when provided a negative integer for `x`', function test( t ) { + var logpmf; + var y; + + logpmf = factory( 0.4 ); + y = logpmf( -4.0 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( -1.0 ); + t.equal( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a finite `lambda`, the function returns a function which returns `-Infinity` when provided a non-integer for `x`', function test( t ) { + var logpmf; + var y; + + logpmf = factory( 0.4 ); + y = logpmf( 1.3 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( 1.4 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( 3.2 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( 4.8 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( -1.2 ); + t.equal( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a `lambda` which is nonpositive, the returned function always returns `NaN`', function test( t ) { + var logpmf; + var y; + + logpmf = factory( 0.0 ); + + y = logpmf( 2.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = logpmf( 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + logpmf = factory( -1.5 ); + + y = logpmf( 2.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = logpmf( 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the returned function evaluates the logpmf for `x` given small `lambda`', function test( t ) { + var expected; + var logpmf; + var lambda; + var delta; + var tol; + var i; + var x; + var y; + + expected = smallLambda.expected; + x = smallLambda.x; + lambda = smallLambda.lambda; + for ( i = 0; i < x.length; i++ ) { + logpmf = factory( lambda[ i ] ); + y = logpmf( x[ i ] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[i], 'x: '+x[ i ]+'. lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. lambda: '+lambda[ i ]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the returned function evaluates the logpmf for `x` given large `lambda`', function test( t ) { + var expected; + var logpmf; + var lambda; + var delta; + var tol; + var i; + var x; + var y; + + expected = largeLambda.expected; + x = largeLambda.x; + lambda = largeLambda.lambda; + for ( i = 0; i < x.length; i++ ) { + logpmf = factory( lambda[ i ] ); + y = logpmf( x[ i ] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[i], 'x: '+x[ i ]+'. lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. lambda: '+lambda[ i ]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.js new file mode 100644 index 000000000000..5d2d6e2f6a68 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var logpmf = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof logpmf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a factory method for generating `logpmf` functions', function test( t ) { + t.equal( typeof logpmf.factory, 'function', 'exports a factory method' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.logpmf.js b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.logpmf.js new file mode 100644 index 000000000000..42721405ea14 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/logpmf/test/test.logpmf.js @@ -0,0 +1,140 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var logpmf = require( './../lib' ); + + +// FIXTURES // + +var smallLambda = require( './fixtures/python/small_lambda.json' ); +var largeLambda = require( './fixtures/python/large_lambda.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof logpmf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y = logpmf( NaN, 1.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + y = logpmf( 0.0, NaN ); + t.equal( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `+infinity` for `x` and a valid `lambda`, the function returns `-Infinity`', function test( t ) { + var y = logpmf( PINF, 0.01 ); + t.equal( y, NINF, 'returns -Infinity' ); + t.end(); +}); + +tape( 'if provided a negative integer for `x` and a valid `lambda`, the function returns `-Infinity`', function test( t ) { + var y = logpmf( -20.0, 0.5 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( -4.0, 0.5 ); + t.equal( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a non-integer for `x` and a valid `lambda`, the function returns `-Infinity`', function test( t ) { + var y = logpmf( -1.3, 0.5 ); + t.equal( y, NINF, 'returns expected value' ); + + y = logpmf( 2.4, 0.5 ); + t.equal( y, NINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a shape parameter `lambda` which is nonpositive, the function always returns `NaN`', function test( t ) { + var y; + + y = logpmf( 2.0, 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = logpmf( 0.0, -1.5 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the logpmf for `x` given small parameter `lambda`', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var x; + var y; + var i; + + expected = smallLambda.expected; + x = smallLambda.x; + lambda = smallLambda.lambda; + for ( i = 0; i < x.length; i++ ) { + y = logpmf( x[ i ], lambda[ i ] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[ i ]+'. lambda:'+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. lambda: '+lambda[ i ]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function evaluates the logpmf for `x` given large parameter `lambda`', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var x; + var y; + var i; + + expected = largeLambda.expected; + x = largeLambda.x; + lambda = largeLambda.lambda; + for ( i = 0; i < x.length; i++ ) { + y = logpmf( x[ i ], lambda[ i ] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[ i ]+'. lambda:'+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 1.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. lambda: '+lambda[ i ]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); From cc7736de62cf48e0f31053dc172f78df36920e38 Mon Sep 17 00:00:00 2001 From: Jaysukh Makvana <111515433+Jaysukh-409@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:33:59 +0530 Subject: [PATCH 03/87] feat: add `stats/base/dists/planck/entropy` PR-URL: https://github.com/stdlib-js/stdlib/pull/4325 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Co-authored-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- .../stats/base/dists/planck/entropy/README.md | 141 ++++++++++++++++++ .../planck/entropy/benchmark/benchmark.js | 52 +++++++ .../base/dists/planck/entropy/docs/repl.txt | 27 ++++ .../planck/entropy/docs/types/index.d.ts | 56 +++++++ .../dists/planck/entropy/docs/types/test.ts | 44 ++++++ .../dists/planck/entropy/examples/index.js | 31 ++++ .../base/dists/planck/entropy/lib/index.js | 43 ++++++ .../base/dists/planck/entropy/lib/main.js | 69 +++++++++ .../base/dists/planck/entropy/package.json | 69 +++++++++ .../entropy/test/fixtures/python/data.json | 1 + .../entropy/test/fixtures/python/runner.py | 77 ++++++++++ .../base/dists/planck/entropy/test/test.js | 82 ++++++++++ 12 files changed, 692 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/README.md create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/examples/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/main.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/package.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/data.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/runner.py create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/test.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/README.md b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/README.md new file mode 100644 index 000000000000..f00b69fe23d3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/README.md @@ -0,0 +1,141 @@ + + +# Entropy + +> Planck (discrete exponential) distribution [differential entropy][entropy]. + + + +
+ +The [differential entropy][entropy] (in [nats][nats]) for a Planck random variable is + + + +```math +H\left( X \right) = \frac{\lambda e^{-\lambda}}{1 - e^{-\lambda}} - \log\left( 1 - e^{-\lambda} \right) +``` + + + +where `λ` is the shape parameter. + +
+ + + + + +
+ +## Usage + +```javascript +var entropy = require( '@stdlib/stats/base/dists/planck/entropy' ); +``` + +#### entropy( lambda ) + +Returns the [differential entropy][entropy] of a Planck distribution with shape parameter `lambda` (in [nats][nats]). + +```javascript +var v = entropy( 0.1 ); +// returns ~3.3030 + +v = entropy( 1.5 ); +// returns ~0.6833 +``` + +If provided a shape parameter `lambda` which is `NaN` or nonpositive, the function returns `NaN`. + +```javascript +var v = entropy( NaN ); +// returns NaN + +v = entropy( -1.5 ); +// returns NaN +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var entropy = require( '@stdlib/stats/base/dists/planck/entropy' ); + +var lambda = uniform( 10, 0.1, 5.0 ); + +var v; +var i; +for ( i = 0; i < lambda.length; i++ ) { + v = entropy( lambda[ i ] ); + console.log( 'λ: %d, H(X;λ): %d', lambda[ i ].toFixed( 4 ), v.toFixed( 4 ) ); +} +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/benchmark/benchmark.js new file mode 100644 index 000000000000..ce171ab4f102 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/benchmark/benchmark.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var entropy = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var lambda; + var y; + var i; + + lambda = uniform( 100, 0.1, 10.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = entropy( lambda[ i % lambda.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/planck/entropy/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/repl.txt new file mode 100644 index 000000000000..4e26e6fc5a4d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/repl.txt @@ -0,0 +1,27 @@ + +{{alias}}( λ ) + Returns the differential entropy of a Planck distribution with shape + parameter `λ` (in nats). + + If `λ <= 0`, the function returns `NaN`. + + Parameters + ---------- + λ: number + Shape parameter. + + Returns + ------- + out: number + Entropy. + + Examples + -------- + > var v = {{alias}}( 0.1 ) + ~3.3030 + > v = {{alias}}( 1.5 ) + ~0.6833 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/index.d.ts new file mode 100644 index 000000000000..0dafc84dc065 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/index.d.ts @@ -0,0 +1,56 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Returns the differential entropy of a Planck distribution. +* +* ## Notes +* +* - If `lambda <= 0`, the function returns `NaN`. +* +* @param lambda - shape parameter +* @returns differential entropy +* +* @example +* var v = entropy( 0.1 ); +* // returns ~3.3030 +* +* @example +* var v = entropy( 1.5 ); +* // returns ~0.6833 +* +* @example +* var v = entropy( 2.9 ); +* // returns ~0.2255 +* +* @example +* var v = entropy( -1.1 ); +* // returns NaN +* +* @example +* var v = entropy( NaN ); +* // returns NaN +*/ +declare function entropy( lambda: number ): number; + + +// EXPORTS // + +export = entropy; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/test.ts new file mode 100644 index 000000000000..73b13b540212 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import entropy = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + entropy( 0.3 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + entropy( true ); // $ExpectError + entropy( false ); // $ExpectError + entropy( null ); // $ExpectError + entropy( undefined ); // $ExpectError + entropy( '5' ); // $ExpectError + entropy( [] ); // $ExpectError + entropy( {} ); // $ExpectError + entropy( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + entropy(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/examples/index.js new file mode 100644 index 000000000000..acdbbbc7cf6b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var entropy = require( './../lib' ); + +var lambda = uniform( 10, 0.1, 5.0 ); + +var v; +var i; +for ( i = 0; i < lambda.length; i++ ) { + v = entropy( lambda[ i ] ); + console.log( 'λ: %d, H(X;λ): %d', lambda[ i ].toFixed( 4 ), v.toFixed( 4 ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/index.js new file mode 100644 index 000000000000..44dd7cf7b679 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/index.js @@ -0,0 +1,43 @@ +/** +* @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'; + +/** +* Planck distribution differential entropy. +* +* @module @stdlib/stats/base/dists/planck/entropy +* +* @example +* var entropy = require( '@stdlib/stats/base/dists/planck/entropy' ); +* +* var v = entropy( 0.1 ); +* // returns ~3.3030 +* +* v = entropy( 1.5 ); +* // returns ~0.6833 +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/main.js new file mode 100644 index 000000000000..ac3db097a539 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/lib/main.js @@ -0,0 +1,69 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var exp = require( '@stdlib/math/base/special/exp' ); +var expm1 = require( '@stdlib/math/base/special/expm1' ); +var ln = require( '@stdlib/math/base/special/ln' ); + + +// MAIN // + +/** +* Returns the differential entropy of a Planck distribution. +* +* @param {PositiveNumber} lambda - shape parameter +* @returns {PositiveNumber} differential entropy +* +* @example +* var v = entropy( 0.1 ); +* // returns ~3.3030 +* +* @example +* var v = entropy( 1.5 ); +* // returns ~0.6833 +* +* @example +* var v = entropy( 2.9 ); +* // returns ~0.2255 +* +* @example +* var v = entropy( -1.1 ); +* // returns NaN +* +* @example +* var v = entropy( NaN ); +* // returns NaN +*/ +function entropy( lambda ) { + var c; + if ( isnan( lambda ) || lambda <= 0.0 ) { + return NaN; + } + c = -expm1( -lambda ); + return ( lambda * exp( -lambda ) / c ) - ln( c ); +} + + +// EXPORTS // + +module.exports = entropy; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/package.json b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/package.json new file mode 100644 index 000000000000..1c6b072fbcf1 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/package.json @@ -0,0 +1,69 @@ +{ + "name": "@stdlib/stats/base/dists/planck/entropy", + "version": "0.0.0", + "description": "Planck (discrete exponential) distribution differential entropy.", + "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", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "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", + "parameter", + "memoryless", + "life-time", + "discrete", + "entropy", + "shannon", + "information", + "nats", + "planck", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/data.json b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/data.json new file mode 100644 index 000000000000..14e43954d8c1 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/data.json @@ -0,0 +1 @@ +{"lambda": [11.455931688414339, 12.049886662295279, 19.686522775043272, 11.015032049363455, 17.296911359484074, 15.689532162118596, 3.3145508589156147, 5.504482683615719, 6.576128114123461, 13.375086796004984, 10.34069873156734, 9.72980253893475, 11.348605319802008, 6.667030734470609, 11.327226583010956, 18.735451535117857, 1.3853781760477135, 12.9034695366267, 12.229488830745638, 11.965908082806129, 5.264935976789071, 2.6688592326814997, 13.420190489773617, 15.02336736559425, 18.62421960884803, 3.3246336724638903, 16.642827792190545, 7.838647648093957, 19.32238077907249, 8.713855968469682, 13.151286309768249, 12.72787815708906, 1.8364861594947568, 19.45541941060595, 10.207110298518419, 13.101057171120772, 16.198836821780027, 16.02139631723581, 11.327805373182079, 11.719271917838153, 19.27900725230956, 15.14949615392188, 10.788035015716083, 4.629952031050896, 7.967138676369714, 16.388013653758854, 9.781777196936668, 1.489720133199488, 4.762911375368262, 17.085111042135125, 17.27114689397242, 0.6314525438939245, 9.875681214636515, 12.37356050802588, 3.510221231685864, 16.550508607036182, 18.805468045902124, 9.819647302372035, 4.569946306546604, 17.69172599008247, 13.380049133023636, 11.639485949263964, 18.205360286164257, 13.130843377388345, 1.893200595979514, 13.421518255666513, 13.012525005074911, 7.312872821147252, 14.610486338573255, 2.9774252200110274, 8.95320575984725, 12.295380151089423, 0.1391334568336866, 13.289627530342878, 1.612684552703607, 10.52969854365029, 12.275974549213416, 14.228438571930862, 13.10035197031035, 1.7997273825540794, 12.430538769974483, 3.5930056489156303, 5.035635562967046, 9.995223734563057, 4.432582588528875, 10.061750809513889, 4.996590317815972, 1.2120893147912426, 3.162566786062646, 16.446175446235493, 15.65783084247482, 0.6988226706463041, 2.6030168891489702, 9.226719131087691, 2.7889511580524373, 9.407559537483557, 6.27352597907942, 0.8918466974310735, 19.201356769756256, 18.42343513520994, 9.380904484871309, 6.583239633263558, 14.056560183438249, 8.817287253726596, 0.79884222071682, 12.016961828259387, 1.7357210680075852, 3.828483766453954, 18.527888125584102, 13.624422190339287, 1.819162683565283, 16.076281152305953, 13.12256847471418, 15.951335344820938, 14.562306342585325, 15.719197884723286, 1.7469254682523028, 19.925119560622772, 5.350052622355637, 5.9867941498079436, 5.037527512399764, 16.60240804502942, 18.201553121853976, 5.807977966080891, 17.36019344242406, 7.641430760176597, 14.506064896927294, 15.224048463322756, 2.9319622298974735, 0.7331215259553048, 16.728451507423557, 4.475442220772776, 6.179654920215285, 8.329891699598901, 16.822409127051614, 0.9469551708871582, 7.565529619753, 10.91421973203948, 4.96882748842594, 6.904245767540087, 18.156758068598872, 8.321118274971655, 9.36482705932496, 8.782236602144359, 0.10999705924719994, 5.848795530167463, 6.995200993628736, 12.256135889989206, 16.06896859656502, 17.75197134729146, 4.393286048853049, 0.5038119797329244, 3.9755767784535156, 12.361487089377636, 7.658593620236635, 1.9048189599001208, 18.62258185298303, 15.466670198518727, 0.8743134411846332, 19.49789568535689, 6.523562582011852, 18.912500157086427, 13.381315930910082, 8.448693421059254, 6.691053840619863, 13.213082035431064, 2.3250724555671165, 14.283622426025408, 17.20025200822605, 7.533640561966337, 6.23477988552696, 9.727584674219884, 3.773486602398719, 12.953951966753028, 4.935862060103197, 9.753536592752729, 15.875894977643432, 11.966700675484818, 8.281121050287288, 5.085647939470559, 12.931004793673749, 11.935577716612649, 18.456420267496306, 17.083823672733974, 4.3584501243141505, 17.79527235691106, 17.491920060675223, 14.197059847404281, 7.635187392657565, 5.5990143118982205, 6.648272582315567, 19.994988076134895, 0.4541347603044188, 7.691816949973028, 17.293889312851054, 13.715979967583369, 12.453306024856456, 16.903869525410585, 3.2487761099310286, 19.716244322342106, 6.340790601733433, 7.811252058134555, 9.019934644634054, 16.59014568210154, 17.535832036461166, 12.23552882406624, 0.12014274827903959, 4.16161769611003, 18.287326732981533, 14.717328459384404, 5.813201565430067, 9.175315474249452, 14.867864211276249, 17.730375597875224, 3.0839340367858314, 14.292906473520324, 17.898236809670678, 3.6759643169405964, 10.690689839550052, 10.068320036523374, 13.17363211652124, 3.339642209237663, 3.901677732623554, 7.512458010027199, 14.110780920682489, 0.08368225389137729, 17.16511412161733, 6.817821690879848, 6.1018845145962075, 6.9108482382767855, 16.194128523322867, 16.4603607836169, 2.292343026457677, 9.265612956309058, 15.5700463934088, 14.918629303679136, 12.10952803867448, 2.6589704528410607, 6.160755189115661, 14.295452074669763, 15.08178766047216, 7.122831125621428, 3.9046160178542633, 12.637214274710214, 16.287350254889937, 2.746221231114234, 19.90307016856469, 19.107777195277706, 18.874348033178553, 4.650522369116185, 11.071527289551106, 8.416906430953006, 8.087947026087718, 3.579583836554543, 17.507202662086595, 5.632429340640641, 4.6159699291271945, 15.743702000242257, 18.846602974450345, 0.5978344129983681, 2.4274004536582083, 1.9851987742144472, 4.250783974463017, 5.932975648262257, 8.733662033411623, 6.273437630268988, 1.6290165914026722, 10.52434701728702, 0.6673613350099838, 6.59489891788867, 0.1299236362812506, 0.5543008018430418, 9.665955702520767, 13.77368385564601, 7.427373297155205, 17.382015266924682, 14.025642587319938, 5.339391172093785, 12.972921557313429, 17.39362979421525, 11.448832816588883, 12.833506230746249, 9.97529909122241, 1.4837169032781672, 13.252563356719717, 11.59575114026769, 11.602143200133847, 0.46616927775126715, 13.879638732261832, 2.735230438938343, 5.406308268215698, 11.412573630545168, 7.402144953394901, 1.7575992854254152, 14.092935173106317, 18.517626377663806, 5.8897046123091945, 3.8190350438115805, 2.816183010399824, 17.020974910962916, 13.597270182732453, 15.506831456402894, 0.27439509743246715, 2.1596851502136394, 17.129776773911594, 14.553078898818303, 7.867428086176076, 6.830997295623433, 7.428932732803637, 18.100060448315407, 0.05941687193334433, 0.6009977779672337, 13.139022611901865, 14.864608978138765, 5.3687191310026305, 14.047751099345575, 10.556681455123968, 8.2423366490271, 1.6576578188567814, 16.133247986949087, 8.038391794617477, 6.604034626842563, 17.267904486308936, 13.772904564279811, 4.708277615144536, 15.134056302907634, 9.238187057087936, 13.94683935568519, 0.14834651846158398, 10.352945641119035, 13.969576076271583, 2.319505905801371, 13.469260371587419, 11.296584882037736, 7.862888361138733, 9.098392277192334, 19.389413441338053, 5.872818598562526, 2.057450344028957, 15.879227291419173, 19.751238582743813, 0.5259230954477134, 9.910172378183981, 1.0210408891869571, 3.203800397566945, 0.5920063127789632, 8.002985049851308, 4.204680129089091, 7.365822973289957, 11.04961770353546, 18.635093737202165, 18.430572535901085, 13.366835063612408, 17.27342268123429, 13.848280312174952, 9.560984965473086, 5.798518034947781, 14.223439772811023, 10.397294045125452, 3.957662597972589, 10.847128197212356, 6.372152049477762, 13.77592335100523, 19.57286281477427, 13.550366257643045, 3.531801806291288, 4.710958958917364, 11.977438517373649, 19.57740280346792, 19.01964766092762, 9.91145460460858, 4.452644662602763, 7.981839652403981, 18.873667066548027, 10.586130066703973, 15.425286434735302, 10.87053378836629, 3.838933666954314, 3.6301448869795605, 14.509520439325971, 16.685455491972846, 8.675882055605904, 14.631515723110022, 4.7469565200121195, 13.12401170179033, 11.506019301955941, 3.1222858684157084, 12.378602388933457, 7.415803246834553, 16.74233565663747, 1.868842583690229, 18.265645772538576, 15.185875598130519, 1.9235342200372907, 11.035376234571967, 1.024248424619545, 19.530923690492845, 7.760671420770251, 18.535411282913376, 0.18844846746755017, 1.6564604842490804, 1.6734009789186999, 0.7173079675473604, 19.486815583846663, 15.81033427359406, 12.05345344221891, 1.7758972830898179, 3.07302520643709, 8.120634799034065, 7.2410846580922765, 12.799976789637245, 10.16498963281454, 10.900420608512924, 2.509931007902344, 13.929474785388303, 9.213657411091036, 4.880781428368133, 4.599270235195596, 3.676083277752775, 6.874933038291449, 10.584191739754791, 9.258092149313704, 2.176126783543455, 3.0140791097076547, 9.075415187017061, 2.013289341922384, 12.770680666444413, 3.871622485162123, 13.637378363771955, 10.898119991103624, 16.78225944842965, 16.097499312431232, 12.301124488555615, 13.333535907286006, 6.881031194337672, 6.944222663370663, 14.58136315144058, 1.829422138410144, 14.283680437652293, 18.95475511858982, 1.9374026962262025, 10.049346234230288, 2.7748561376314584, 0.7612479439657771, 14.266781001034532, 6.976650857359246, 3.996465859598206, 6.163197675909058, 15.078736660152865, 7.014897333489644, 3.2275174915512794, 16.188507995129275, 8.870248512082675, 9.90205465402806, 13.025881179581233, 4.204649069541451, 12.523259381031014, 1.0204767588753283, 15.091488051358478, 15.205048465804031, 7.477839812875224, 1.9244993899569174, 6.3229813738768765, 2.5676212401147724, 16.226001642885766, 11.031763441981731, 9.277119865118465, 13.977914966614724, 14.21677798649161, 17.692010381984964, 0.8014524783294297, 6.747644997149305, 18.849668825610287, 9.87355341286438, 13.596451134803711, 8.285102712233844, 19.865438261219957, 18.4099248352327, 13.152759339537166, 13.006504074562745, 16.731700037648938, 15.880547954183397, 5.1964553554313, 10.280461150210119, 8.005805566247535, 3.781901680306412, 9.1776456189423, 8.427152854474528, 12.2127697886831, 5.007524879956944, 11.065581221862468, 2.515540693704079, 18.543235905480408, 14.09992345112181, 0.8520486859365928, 11.819523200021907, 14.550051316152306, 19.556978819496788, 13.589615137789146, 2.3954235896893517, 6.0667424816519855, 16.94298274303656, 6.724858735584112, 13.191275735530578, 1.8233345939646073, 17.03623717200249, 5.071599893345371, 0.6965586257307232, 3.594695136704451, 12.204998839540814, 15.890221536657803, 16.05765858846984, 15.267718137538491, 14.041325177186092, 12.88743422867648, 11.230960783627333, 9.752381121941555, 7.963699710924468, 2.743021575225466, 12.140345636580655, 6.759315684449532, 18.660364253135175, 14.467097876272074, 4.701423510182576, 19.850318210661765, 6.036548617630142, 0.4623775435706978, 17.98213286640166, 13.51193615077756, 15.467687488089872, 11.846388438869706, 19.14103192375938, 4.594933556180212, 1.547731880502372, 4.738970659294424, 11.138618849611259, 17.4818403046761, 0.9629741551026805, 10.186444856639625, 12.819798954491016, 1.5752216642827954, 14.47192285012163, 19.85157448656286, 11.596635574661743, 13.088751722983973, 2.971248449121695, 0.26174356706883506, 12.406686441726414, 7.3072082956480795, 17.801043610290158, 1.8970982364465128, 14.57855364707273, 11.319772679579154, 17.33243104048436, 17.1494703309536, 6.714016351368423, 8.537528928238158, 9.750513670331578, 7.436695130952852, 14.44109615303708, 16.81086368570537, 10.182221430323237, 10.821211985105478, 9.994054240515407, 16.479894957058377, 17.388456939157134, 8.838770396953567, 4.730685744718528, 16.24831482531006, 16.265472200579342, 6.130047565383229, 6.1321701370485115, 6.8666660002260365, 1.976496985176377, 9.783049621686551, 17.318755802453744, 11.284509872013688, 7.849905614419184, 1.8804968869258198, 6.217973986259193, 7.524663079586011, 19.027720284761983, 15.089868092945762, 6.349212881466542, 6.526487286034461, 17.659287030189454, 4.55575357988195, 18.17125500529803, 13.40597424234464, 10.365510514107331, 16.32442267599472, 12.683738489448846, 13.496251298140782, 19.811743344830397, 11.279477788251025, 10.647222554255144, 3.454763060605106, 14.844113553850386, 13.75545217375797, 16.783770528684716, 9.20636903548033, 13.791362689421675, 8.169130490230167, 14.400516539948862, 1.7504237928079824, 5.224472040415398, 7.142322915746497, 11.725865221065918, 9.164035624455849, 0.877082866092016, 3.644088096256244, 12.47036109071143, 11.220909560804094, 11.721552468390515, 18.287959061014504, 7.638249532408901, 14.886148657061952, 8.437682277133895, 1.9536591395976144, 18.12205911935135, 2.8589182389752166, 8.470111004349562, 13.485012409075985, 4.096675914664784, 8.450445630681697, 18.31809971969532, 18.008550080658587, 17.238065960425587, 17.058661053795824, 16.220413527185155, 8.566082982881209, 17.534101012500585, 7.478226896681541, 5.0156737158341125, 5.878789067070684, 6.323545481795996, 13.692492380391702, 8.123856504498946, 18.011850873645418, 3.082549663709362, 16.581768538956158, 8.181614507601369, 11.51576268674831, 3.3762589942275034, 1.317875605973795, 18.590662287829968, 7.9850686060152825, 2.8649303159021944, 16.501804868156505, 5.532061449035761, 6.606363918728187, 18.24616747751538, 12.410810543303331, 1.3513427033025538, 11.887063604406888, 0.6565804386141649, 6.736492838306846, 1.7360038966792324, 14.366743868059011, 11.748693195309112, 5.863574157668847, 13.752471204713427, 18.254705238750514, 18.4645036614006, 1.1615011001026776, 4.788866725428312, 8.49215349721125, 0.019839070222509303, 4.359449767106511, 11.36244853430836, 6.274048337307869, 8.72987029193906, 6.085234749711015, 18.91669864937815, 17.014897928548503, 4.739337504745665, 14.021426886110122, 10.56092948250024, 16.57569520041489, 18.913272083519214, 5.774786903106291, 3.250018331275397, 2.8338639297200707, 16.05728948077235, 19.376855630239284, 5.860415155352568, 8.55461311454749, 16.76122955774723, 16.380058569781134, 19.677978300016758, 15.132298497040352, 11.886806694403425, 18.786910642763047, 8.297651841868479, 2.7475121277976156, 15.14631092803155, 7.145718159202481, 14.273913122034967, 15.967525543987225, 18.346621706520956, 5.699036250314638, 8.525000702677607, 0.1166902397538494, 2.9070212686880903, 19.526395385792508, 18.212161701630183, 4.199780676678877, 7.693989416126865, 4.011946783490692, 15.280209932552411, 9.385924825262695, 8.909211538181843, 19.162553854644244, 19.306571507117432, 11.575642148115556, 4.396914598847694, 10.914567655194045, 8.561307999005338, 3.8400530483018014, 7.401155447775027, 18.02572851804351, 10.235151665888747, 13.275177149759717, 14.316343342437943, 10.014188312510331, 16.305015435790878, 6.289779392469077, 17.158309783129006, 2.4569623410112595, 17.788242060268313, 6.548792569584634, 8.257431484930965, 9.060167017906942, 1.596386615676606, 5.211514593564068, 2.533047068580301, 16.912860923178087, 11.456118256611871, 12.829011524663532, 17.078356770102076, 16.90123771039104, 12.954207002151595, 17.575648077004217, 1.817924811228866, 6.260559844488778, 19.80349507824085, 8.875249425723586, 18.475305515869735, 0.48376190068155633, 3.920409125167299, 6.676278970829732, 14.038783124530333, 13.617316195538622, 7.391643026734651, 10.922017636448446, 17.06809174401846, 9.520174077556895, 2.312842569332161, 0.6984100027725293, 1.8237316423348204, 11.24827485145749, 12.931893687981933, 4.033206411960453, 2.4895672307706884, 14.51566230023776, 19.31215843228262, 2.8551455150935734, 8.027386262867973, 4.0254209605011475, 8.60251468907684, 11.770153840002946, 10.547485565582935, 18.27407143134778, 6.59211805404486, 19.759931701923648, 9.520142857479556, 10.715702946543226, 12.62815677933516, 14.42976536667464, 12.133558205896051, 11.004618897668223, 6.825300287076283, 15.749350273948707, 5.725489436494291, 2.884799483129854, 3.7148123549347956, 2.122889584731804, 5.799373299414141, 16.352136230377507, 16.18426999173432, 15.718999058661465, 10.822274975699104, 16.03950080830639, 12.757721709101036, 11.005221715935578, 6.88756877257469, 8.260325771702048, 6.88952616835496, 17.25687027594799, 10.72114712648192, 12.355567806501586, 3.340139566497713, 4.370210579522114, 19.330862287004962, 1.097833204092058, 18.417971642259502, 10.16074103786627, 11.33141296557238, 1.4045925096402656, 9.478435399268648, 4.787336406289178, 10.526042349882099, 13.985916457660288, 15.644363330715926, 7.910104332797456, 16.961196314450596, 8.923555507595076, 3.344046845978963, 6.171113860661704, 4.091372275318339, 1.4064030413146256, 3.7426093843298536, 6.467717033330544, 7.5498959089997975, 15.837104183366908, 10.197580651472203, 4.601376767153072, 10.559548162245687, 17.843961655322136, 5.608278397762032, 2.4359245961297815, 9.071933267145486, 2.981765283751301, 3.8963674722500263, 15.148451254982225, 3.341345090777408, 17.90963606101775, 7.0382314479996255, 16.5211598545809, 12.8334966183804, 4.964994957282951, 17.570778721821366, 12.902946066004073, 12.885704049423925, 6.178379491608932, 16.903805743152883, 10.472008029703881, 5.305438190570624, 8.499608205939019, 2.3488383879974273, 1.1776962778589284, 3.9698393925158992, 3.881461751178641, 18.589485529907968, 12.712374274249342, 17.93103514208771, 17.324502505075547, 17.8467125979873, 15.30034047526048, 2.1853765380686996, 19.190382892155625, 16.289386684378567, 5.031484465624249, 5.077503216355225, 7.375184807925321, 1.175991037436408, 12.116361849766406, 13.979710466703583, 1.7545794293950467, 7.721298162824661, 0.12306559108930637, 13.190921295952725, 14.409043256090243, 10.230132995368304, 6.9073259820065065, 19.115975426009452, 17.178561621321126, 15.045313527346648, 15.200353275964956, 14.217385529502316, 1.9203681360276104, 14.22003973732792, 11.803197514904424, 10.08487421663084, 18.471585223587617, 10.04878008306907, 12.922375432644808, 12.273387060945717, 0.9262362156174309, 13.450514877430791, 5.566812070733755, 10.15999394295897, 14.213874809375074, 16.680550636744616, 3.3353499523199925, 8.112746639434132, 6.23685654962149, 10.168812455600246, 14.64475897816504, 4.675928820783666, 12.176638967664923, 16.839608548053324, 9.445975678936222, 1.6598978038972478, 16.0588632959969, 18.56571527511543, 3.1647790455608438, 7.922325940008584, 6.170283059170507, 12.437842622257493, 19.41497467234069, 19.413505310516467, 14.39398088504822, 18.41522030898577, 0.034095243897784844, 7.192387624951085, 0.5914196687178896, 5.955433306718756, 0.8277068095591145, 10.494139569206329, 18.499608893744607, 7.771558906994683, 4.552314656046638, 18.875064160110313, 18.777606917229527, 9.991542098702332, 3.3288287890083335, 3.8216904457932532, 7.014937204431842, 2.1284905630539885, 16.42173521734296, 6.3777010197809965, 5.627502968308362, 12.245201554301042, 13.052751903668849, 2.017561481435417, 5.011317310671459, 11.20429498095843, 5.545302076715113, 11.408709035324602, 6.437140820698406, 1.5536568750179525, 11.054956635959597, 16.234515260845207, 17.089322842979037, 3.5151913257396794, 10.251206437725974, 10.654128777306157, 18.27837515907818, 11.73125882937006, 1.1128775000970426, 15.198208566758321, 0.046391352956898224, 12.909027839071713, 19.50543140109183, 4.600966968349458, 7.644656862992436, 5.18961125037354, 16.81510840243994, 7.88117168889507, 7.5801178870659065, 11.50362005563807, 4.411722902873814, 19.551687215278623, 2.3406289770593647, 19.792168477698088, 8.749731172420208, 14.90461155227652, 14.039046940704864, 8.69981311997927, 3.685000316862306, 5.7389833029806585, 1.0040840029883324, 15.119248728011085, 10.890549277477056, 0.42355575924657884, 0.7396798547020333, 6.515676215229256, 19.771231134634903, 0.9603846984836539, 5.87935226458886, 16.45377231522719, 10.859817612522768, 4.143477674526366, 18.918862435405327, 10.084104164687693, 12.118892615896295, 0.33754403918483833, 18.102769625798302, 14.406905886890627, 4.383232584224979, 15.108627662877478, 16.24564767055867, 17.82928337706081, 1.9766091696596688, 14.5239895516002, 11.667438252665294, 15.944309572983887, 0.17596753878222016, 14.990465881220466], "expected": [0.0001318659638645087, 7.627986155683395e-05, 5.83363547486927e-08, 0.00019768064276475772, 5.628914341024223e-07, 2.561928386728185e-06, 0.16205754930133826, 0.026563225265650137, 0.010569068191286425, 2.232979501364909e-05, 0.000366222329961622, 0.0006382881879680582, 0.00014554126782433666, 0.009765384470500767, 0.00014842887491139836, 1.4406014663597934e-07, 0.7503449272399066, 3.4611356029349094e-05, 6.461682121120123e-05, 8.242856545224636e-05, 0.032542841275045524, 0.27067172260750405, 2.141198567352036e-05, 4.788377363541839e-06, 1.6010193943160223e-07, 0.16075443086185542, 1.0439505962007737e-06, 0.0034855069198811263, 8.248428925553997e-08, 0.0015961723421102415, 2.7495755512780037e-05, 4.073403269730168e-05, 0.5217965640354982, 7.268203812612632e-08, 0.0004136350012395889, 2.8809498123343126e-05, 1.5864765970414577e-06, 1.8749565901242016e-06, 0.0001483499546330689, 0.00010347859430123842, 8.59567974522538e-08, 4.254186302963617e-06, 0.00024336937407680795, 0.05541430166457413, 0.00310965142166344, 1.327474250172184e-06, 0.0006088942623197987, 0.6890354080974394, 0.049606441056287684, 6.876251416634531e-07, 5.76769159823981e-07, 1.476182451628888, 0.0005591443150814995, 5.655614051165173e-05, 0.13850045705315575, 1.1389251240099767e-06, 1.3479510180148024e-07, 0.0005883245745613605, 0.05824588257312914, 3.8746318299822473e-07, 2.2226931536883682e-05, 0.00011137008901845646, 2.381962668604375e-07, 2.8023094546483116e-05, 0.4988510237363767, 2.1385543327044742e-05, 3.12787601679734e-05, 0.005547318801792355, 7.04957651441293e-06, 0.2120233661491927, 0.001287325794063261, 6.079766754927898e-05, 2.973127883500023, 2.417740663410471e-05, 0.6238724600094155, 0.00030820457735708566, 6.18985325357698e-05, 1.0076815241779648e-05, 2.8828380016391363e-05, 0.5372585309866218, 5.365135690868492e-05, 0.12956175041980283, 0.039479605263711554, 0.0005015941566553012, 0.06526419374008152, 0.0004721486091682868, 0.04079562068998829, 0.8667052172131073, 0.18298225721354588, 1.2566577712841306e-06, 2.639422902958625e-06, 1.3784610489469034, 0.2851026462307854, 0.0010061523849277008, 0.2461720263788798, 0.0008545385376662542, 0.013738857303058207, 1.1469568740396316, 9.254165246320302e-08, 1.937000919106019e-07, 0.0008753767327319269, 0.010503927202621562, 1.1831493573283485e-05, 0.0014546327704408183, 1.2507642022729972, 7.863428510441183e-05, 0.5653509637108929, 0.10707353682456981, 1.7542670572672556e-07, 1.770385514714434e-05, 0.5290241088674736, 1.7805457891566017e-06, 2.8239399009918624e-05, 2.0027514095665667e-06, 7.374708708827484e-06, 2.491463903822778e-06, 0.5603226926785537, 4.6483462654338036e-08, 0.030281908474345514, 0.017589777263704382, 0.0394168938555898, 1.0845208604413889e-06, 2.390574488415907e-07, 0.020504813269459382, 5.302016170620199e-07, 0.004150982923700663, 7.773164688168376e-06, 3.966788979548071e-06, 0.21981189828001385, 1.332541575487288, 9.629342769089618e-07, 0.06299103552445884, 0.014898799252694462, 0.0022508665748695025, 8.812253333269571e-07, 1.0910488236989044, 0.004439134914008189, 0.0002168142252919898, 0.0417571227059358, 0.007939498263093935, 2.494262639835061e-07, 0.002268570532778967, 0.0008881877180796844, 0.0015011514238269014, 3.2078056349282615, 0.019800542944141113, 0.007332049928078273, 6.304443377034382e-05, 1.7928457758218904e-06, 3.6598538246449104e-07, 0.06741785318427188, 1.6960615765031588, 0.09498954766842459, 5.719142987054342e-05, 0.004088420835144301, 0.494282062113662, 1.6035097883796536e-07, 3.1587579465591403e-06, 1.1655707145682064, 6.980407481214748e-08, 0.011062979308621839, 1.2176748538391207e-07, 2.2200747875550254e-05, 0.0020241324638372517, 0.009563188723020012, 2.5960939862293134e-05, 0.35486709520302895, 9.570357518764613e-06, 6.167410861289424e-07, 0.004565985503391422, 0.01420653052198689, 0.0006395732480254143, 0.1119617929231092, 3.302694146797791e-05, 0.04292733860799225, 0.0006246953185968322, 2.150073386890964e-06, 8.236829344284439e-05, 0.002351036304366071, 0.037853948430075855, 3.3738007336188326e-05, 8.476821240735695e-05, 1.8773336505315974e-07, 6.884619283886529e-07, 0.06938430487123333, 3.5128535348261555e-07, 4.68098940183065e-07, 1.0376600807842257e-05, 0.004173974016678471, 0.024510186111898626, 0.00992617126101753, 4.349132565504868e-08, 1.7979104958819816, 0.003969938948210005, 5.64501838686242e-07, 1.6256057905300738e-05, 5.253256009964317e-05, 8.159990737861592e-07, 0.17081239769951323, 5.670938178185338e-08, 0.012962434689924588, 0.0035712476166884785, 0.0012122912352752712, 1.0971366903614768e-06, 4.4905238425950234e-07, 6.425703402295194e-05, 3.119675885569734, 0.08157918422915453, 2.203874975092629e-07, 6.378585209281426e-06, 0.020413341045416467, 0.001053905746065837, 5.539712643607002e-06, 3.735443832459291e-07, 0.19481165507426335, 9.487676787376112e-06, 3.1865138591034115e-07, 0.12116371628323928, 0.00026603697052504345, 0.0004693355568414821, 2.693061166482636e-05, 0.15883344013507536, 0.10088613699298322, 0.004652209661681438, 1.1247420509361221e-05, 3.4810200732920054, 6.375640212805715e-07, 0.008562260611920973, 0.015931756044330656, 0.007893790438053438, 1.593527456822895e-06, 1.2399648804038103e-06, 0.3641265962354128, 0.0009714476502613802, 2.8664116851447687e-06, 5.282353058133377e-06, 7.219184671187573e-05, 0.27279238321286214, 0.015143644461139475, 9.465130915232305e-06, 4.533120711528032e-06, 0.006555864914582274, 0.10064509112390121, 4.430518940317174e-05, 1.4595605831855754e-06, 0.2546297586035312, 4.7469704891954306e-08, 1.0114906420073618e-07, 1.262605546902862e-07, 0.05447461237897722, 0.00018770052421199224, 0.002082491180542042, 0.002792808299114372, 0.130972179199642, 4.613805490938342e-07, 0.023822086336897894, 0.056061956112245015, 2.434717872544452e-06, 1.2963148914025664e-07, 1.5292015657009101, 0.3274063264679159, 0.46383963731463185, 0.0758182969325788, 0.01842174011575443, 0.0015680553894993124, 0.013739906386956734, 0.6157400151612293, 0.00030971458459117256, 1.4227765654659943, 0.010397978244148405, 3.0415114572989665, 1.6027522907255798, 0.0006763239991023181, 1.5404739008777123e-05, 0.005014966521551509, 5.193735392062326e-07, 1.217795075648311e-05, 0.0305565179084908, 3.2450391965229936e-05, 5.137005292720405e-07, 0.00013272971520407445, 3.6932818190028754e-05, 0.0005107616758995346, 0.6924050689689969, 2.502525889761562e-05, 0.00011594637543015565, 0.00011526606170294557, 1.7722122835237895, 1.3955399334249116e-05, 0.2568507560192788, 0.028872153475042663, 0.00013722988318684763, 0.005127771578623688, 0.5555768606131882, 1.1436418657159193e-05, 1.7714302234358958e-07, 0.019118365931196507, 0.10789845734460238, 0.24092575336722344, 7.30571655773659e-07, 1.8157362284236565e-05, 3.041812646902252e-06, 2.296317550897401, 0.40421021665208634, 6.592117548851593e-07, 7.438660118251184e-06, 0.00339761420965074, 0.008464316329564932, 0.005008074306681066, 2.6319544728062167e-07, 3.8233241392095234, 1.5240793582152385, 2.781090971007847e-05, 5.556634931807569e-06, 0.029806873240303438, 1.1929195233357323e-05, 0.0003007014004197818, 0.002433820942852366, 0.6017553245446289, 1.6875597813448115e-06, 0.0029187334236928223, 0.01031569276562893, 5.78539629571883e-07, 1.54159352676526e-05, 0.051917889402607185, 4.316249485437223e-06, 0.0009957941588039012, 1.3107333896984348e-05, 2.9091208421469927, 0.00036215512758405575, 1.2832168600321418e-05, 0.35642513802311004, 2.0456035552952094e-05, 0.0001526670121426491, 0.003411331741634524, 0.0011295796204614302, 7.739082370979609e-08, 0.019397125321206923, 0.43812701650366487, 2.1433437322442836e-06, 5.4851700712681694e-08, 1.654045965617304, 0.000541899831381989, 1.021514183673634, 0.17706029420194425, 1.5387141860800533, 0.0030121146241143242, 0.07874614908060695, 0.00529457076428986, 0.00019151019060843722, 1.5845815773718282e-07, 1.9239317027388623e-07, 2.2501892928308527e-05, 5.755297252710694e-07, 1.4369605340878031e-05, 0.0007437903677331867, 0.02067148684230153, 1.0123989025786117e-05, 0.0003477979307294038, 0.09638767402917675, 0.00023055431901833107, 0.012615256154689416, 1.537260866511568e-05, 6.499926057315911e-08, 1.8968158877227196e-05, 0.1361145657917437, 0.051802055164614724, 8.155604347858779e-05, 6.471911247146111e-08, 1.0998372010939169e-07, 0.0005412690112384078, 0.06419046170085782, 0.003069279976250048, 1.2634223414433088e-07, 0.0002927190760007743, 3.2839478788652546e-06, 0.00022566557718729492, 0.10616829007601308, 0.12573491588563834, 7.748076812661718e-06, 1.002801616451282e-06, 0.0016514793708595405, 6.912175196384245e-06, 0.05027096222009603, 2.8201554168030278e-05, 0.0001259280856672136, 0.18895234824851453, 5.629292231395319e-05, 0.005066394421819271, 9.504008671564098e-07, 0.5085735800596977, 2.249647163440767e-07, 4.1114435323975245e-06, 0.4870136354115504, 0.00019402753993393986, 1.018637297064478, 6.764506295285061e-08, 0.003735039301173837, 1.7417897190345703e-07, 2.6704090801658866, 0.6023329971112551, 0.5942152860199459, 1.3534167192255944, 7.054365895258248e-08, 2.2868383924608874e-06, 7.602904569088181e-05, 0.5475403415935549, 0.19651020710438402, 0.0027126905593448307, 0.005908995765624174, 3.8099583083702255e-05, 0.00042980888372172736, 0.00021957225748778111, 0.3068047803971209, 1.3321430675798564e-05, 0.0010180799474515919, 0.04495384404004085, 0.056845083586661835, 0.12115205934852928, 0.00814557787115484, 0.00029323795912760943, 0.0009780648486515417, 0.3990100086745757, 0.20593986422421937, 0.0011532074886793013, 0.45366347441868005, 3.9148980211079444e-05, 0.1033839402525084, 1.7491442605167258e-05, 0.00022003545370043743, 9.152595979174874e-07, 1.7453298409455934e-06, 6.0475542360695817e-05, 2.3209882863352315e-05, 0.008102278092468707, 0.00766666354011321, 7.2443610992966784e-06, 0.524731119136929, 9.569838666284722e-06, 1.16977100250666e-07, 0.4816992662375962, 0.0004775060571732266, 0.24893111280756783, 1.296597400426148, 9.72217602663912e-06, 0.007452118715341495, 0.0933839342215229, 0.015111782466585684, 4.5461097466396445e-06, 0.007206638824499555, 0.17373853114467402, 1.6019853023031795e-06, 0.001387030592933517, 0.0005459104505171633, 3.089319030337322e-05, 0.07874815783090408, 4.923800591973415e-05, 1.0220212549893124, 4.492068188782437e-06, 4.038143921529081e-06, 0.004796581251150222, 0.48664182066461903, 0.013163726139657122, 0.2931704334390612, 1.5463989470236136e-06, 0.00019467134561232074, 0.0009614088284514464, 1.2732696258793975e-05, 1.018719819339093e-05, 3.8735890075320994e-07, 1.247670594254159, 0.009102942955750823, 1.292546307443359e-07, 0.000560225759983707, 1.8171220505741073e-05, 0.0023426962686571642, 4.920138116680471e-08, 1.9619823211879104e-07, 2.745814105041886e-05, 3.145413482256303e-05, 9.599871051605717e-07, 2.1406824438854074e-06, 0.03448006130212526, 0.00038689537676202387, 0.0030045692165670632, 0.11120014536268755, 0.0010516933946874245, 0.0020635004967808758, 6.562320171903765e-05, 0.04042284666034792, 0.0001887269387180213, 0.3054519882546642, 1.7289062637477076e-07, 1.1362034706382161e-05, 1.189822396896067, 9.434551069729093e-05, 7.459763003952068e-06, 6.598896338228059e-08, 1.8287296059093083e-05, 0.335752290463152, 0.01642114160268275, 7.864131114717804e-07, 0.009285590043366411, 2.649256200276711e-05, 0.527273958527356, 7.201154988310656e-07, 0.03830390730255767, 1.3815776167111742, 0.12938525251129576, 6.609624862031432e-05, 2.1212891433398385e-06, 1.812036515732266e-06, 3.8075095309072477e-06, 1.2000971165171652e-05, 3.513027122296164e-05, 0.00016215181012634163, 0.0006253503915408241, 0.003119170626912579, 0.2552743926469021, 7.016554473199038e-05, 0.009010762118352032, 1.5470285830220973e-07, 8.061730503724166e-06, 0.05221512724657685, 4.991476436229512e-08, 0.01685331120708219, 1.7802342249768666, 2.9430926812855836e-07, 1.9659235124801576e-05, 3.155741153986258e-06, 9.203709673472566e-05, 9.800250522874413e-08, 0.05705017445365199, 0.6573998455628721, 0.050606800594495085, 0.00017649590235240304, 4.7258338241134895e-07, 1.0754927078983367, 0.00042149354383155856, 3.740545251634196e-05, 0.6429742071880595, 8.02542929323897e-06, 4.985510069944819e-08, 0.00011585200709594092, 2.914075059909665e-05, 0.21306557790274672, 2.3432396964790216, 5.484887222872425e-05, 0.005575049101758453, 3.4937108010335656e-07, 0.4973133752256268, 7.263432871230872e-06, 0.00014944897398206774, 5.443032327731671e-07, 6.470586361121124e-07, 0.00937375455067119, 0.0018694541671479654, 0.0006264105462753161, 0.0049739051829745095, 8.260188920474265e-06, 8.908809373085624e-07, 0.0004231177116029412, 0.00023609003658115667, 0.0005021277227604088, 1.2173386352524682e-06, 5.162194948339721e-07, 0.0014268272426227174, 0.050957509367568106, 1.5142348551971e-06, 1.4899567933520989e-06, 0.015549861299175134, 0.015521443841762156, 0.008204640059867796, 0.4670394662918599, 0.0006081917094682939, 5.513862192972671e-07, 0.00015436992762630572, 0.003450862838638091, 0.5038972662947929, 0.014414183467113855, 0.004602335077597687, 1.0914342965407567e-07, 4.498898094158645e-06, 0.012868291436623195, 0.011034914866407184, 3.9954356735108315e-07, 0.058935792961402, 2.460224682984035e-07, 2.169714679825351e-05, 0.00035802883759188895, 1.4094579281134267e-06, 4.24354124354893e-05, 1.9948434584332543e-05, 5.178186062158267e-08, 0.00015508514387678173, 0.0002768230503593522, 0.14481835005735783, 5.6643684023852415e-06, 1.5668809237153937e-05, 9.139552700628272e-07, 0.0010247961026518264, 1.5152905059822827e-05, 0.002597982300616797, 8.579671340324253e-06, 0.558762514823836, 0.03367434640776495, 0.006444651208062425, 0.00010285185535435074, 0.001064680567062341, 1.1626027572877917, 0.12432654456388233, 5.1709678065765045e-05, 0.00016365527334268358, 0.00010326138451679503, 2.2025540516290307e-07, 0.004162682134418554, 5.445610159668478e-06, 0.002044163239042726, 0.47554632694927845, 2.577652603441359e-07, 0.23291192580674608, 0.001985723830161442, 2.0158256985570023e-05, 0.08603841232144517, 0.0020209628587213894, 2.14049777593931e-07, 2.8703514172951926e-07, 5.950889287093898e-07, 7.050228598207478e-07, 1.5545601306985012e-06, 0.001822258445546548, 4.4978836914466086e-07, 0.004794942869810844, 0.04014719087051698, 0.019298113258435237, 0.013157303629822183, 1.661583092174296e-05, 0.002704917830499732, 2.861389388324359e-07, 0.19502641664577022, 1.1058392697547037e-06, 0.002569235505841222, 0.00012480422498446797, 0.15423933908153525, 0.7933413816850803, 1.6528257691373815e-07, 0.0030604820767250623, 0.23180558759625586, 1.1924497051618265e-06, 0.02594758877353876, 0.010294814972953193, 2.2915767874457676e-07, 5.46399377363064e-05, 0.7716763830840424, 8.864836174824049e-05, 1.438481071828364, 0.009191890942046314, 0.5652234460255625, 8.854917307404246e-06, 0.00010071086859839315, 0.01955140930659537, 1.571241226729833e-05, 2.273103054949633e-07, 1.8629932730405e-07, 0.9046681306245516, 0.04854352188486239, 0.0019469452010907771, 4.920118441376471, 0.06932711207547554, 0.0001437012815631383, 0.013732656242356967, 0.0015734000895389203, 0.016161818743966043, 1.2128288398999145e-07, 7.347769812544507e-07, 0.05059132577354395, 1.2225966598044853e-05, 0.0002995367543594867, 1.1121915210174592e-06, 1.216782429471787e-07, 0.02109543288450421, 0.17064289492115714, 0.23757808336865255, 1.8126662510042355e-06, 7.832054362429768e-08, 0.019604404770614783, 0.0018410735293854913, 9.33605803553734e-07, 1.3374643600180446e-06, 5.881264148152128e-08, 4.323372205513497e-06, 8.866937177196917e-05, 1.3719123676626135e-07, 0.00231660105808263, 0.25437013296211475, 4.266916708487954e-06, 0.006425469328846552, 9.65759252368924e-06, 1.9724696397238577e-06, 2.0833804075931682e-07, 0.022506118999452554, 0.0018905402174689424, 3.1487995443116565, 0.22420215621738876, 6.793708743749524e-08, 2.366654753834854e-07, 0.07906362907847568, 0.003962310184572846, 0.09221093039119468, 3.763130177437067e-06, 0.0008714139315523368, 0.0013392862891802957, 9.601832908309709e-08, 8.373347907414775e-08, 0.00011811269471960126, 0.06721614792259414, 0.0002167451316955668, 0.0018300681317869416, 0.10607175979948916, 0.00513224645672598, 2.8240141856557623e-07, 0.0004032031733004303, 2.4504511168198892e-05, 9.282104066240246e-06, 0.0004930197642847112, 1.4354689234798718e-06, 0.013547184383191427, 6.416765646576885e-07, 0.31987406733149687, 3.5363137141140747e-07, 0.01082316035950091, 0.0024012652286767794, 0.0011691563992181507, 0.6321049979561963, 0.034044684331835134, 0.301268047087627, 8.091011174545541e-07, 0.00013184333866941172, 3.708714034212177e-05, 6.920267204954351e-07, 8.180291954381058e-07, 3.301912296076562e-05, 4.324511025392661e-07, 0.5295445834880639, 0.01389366164736546, 5.21900449324977e-08, 0.0013808098288572105, 1.844000550187953e-07, 1.7358568008174013, 0.09935896795892195, 0.009687053899856905, 1.2029483716273455e-05, 1.7821443203926417e-05, 0.00517546103125884, 0.00021527087799923532, 6.987699856418228e-07, 0.0007717812136743138, 0.35829916209046997, 1.379028292505619, 0.5271077117493447, 0.00015959403395214054, 3.3710181873734525e-05, 0.09062320053447648, 0.31176552511845823, 7.7036845158038e-06, 8.328988001785576e-08, 0.23360880603869982, 0.002947449630151218, 0.09120155629509258, 0.0017637455448698857, 9.873849238002631e-05, 0.00030323795533599085, 2.2317476417620538e-07, 0.010423152819447145, 5.439971453241092e-08, 0.0007718030203558581, 0.0002600200991099797, 4.467861344413151e-05, 8.348185206910535e-06, 7.060692116700678e-05, 0.0001995767904096144, 0.00850653105751885, 2.421821376927708e-06, 0.022003352891331082, 0.22818558028141453, 0.11741394520291158, 0.4160983274260657, 0.020656363915670536, 1.3731261874772078e-06, 1.6083922652954408e-06, 2.4919296865143e-06, 0.0002358604108601199, 1.8432753678324156e-06, 3.9622291221689295e-05, 0.00019946653203544587, 0.008056108780523846, 0.0023950722113788066, 0.008042335604951146, 5.846053795444995e-07, 0.0002587284924995929, 5.750548060017288e-05, 0.15877016300008684, 0.0687143264821289, 8.182179040527237e-08, 0.9554134589859014, 1.947064841805432e-07, 0.0004314746686720049, 0.00014785898314340166, 0.7386028598053189, 0.0008014858914786339, 0.04860557497610328, 0.00030923543133605383, 1.2637969976830259e-05, 2.673046955126868e-06, 0.003271286663647321, 7.730032360530744e-07, 0.0013221213856068367, 0.15827389919700846, 0.015008965825896474, 0.08641279505043542, 0.7375073295434998, 0.1147998084578605, 0.0116124468702432, 0.0045008848272011, 2.2299775910079456e-06, 0.0004172406883002023, 0.05674571854907638, 0.0002999149680276492, 3.3545798744845446e-07, 0.024317501171598838, 0.3252165319112589, 0.001156830377976753, 0.21129402854229623, 0.10132318354995448, 4.258358281411379e-06, 0.1586168891440759, 3.152296524767368e-07, 0.007060785967906872, 1.1708852109892316e-06, 3.693314754099172e-05, 0.04189156647678005, 4.3444808121899746e-07, 3.462817503148069e-05, 3.518672133202185e-05, 0.014915200032169293, 8.160482145844032e-07, 0.0003248747087153713, 0.031447265759989844, 0.0019340001679191009, 0.3482913394740837, 0.8922972381888234, 0.09543518402620191, 0.10255973435819324, 1.6546724912650023e-07, 4.13237685577601e-05, 3.089048674397896e-07, 5.483986356963909e-07, 3.3458526732400256e-07, 3.6926940921861723e-06, 0.39611427002421856, 9.351196028489994e-08, 1.456762899798635e-06, 0.03961753849224065, 0.03811419565416548, 0.005251075985033976, 0.8935899735254726, 7.173755685931222e-05, 1.2711378807574722e-05, 0.5569152021801592, 0.0038676348871002123, 3.0956686135051688, 2.650129178682937e-05, 8.511535812534458e-06, 0.0004050508585669442, 0.007918142247649687, 1.0036411392123398e-07, 6.295134479636767e-07, 4.690851529325308e-06, 4.055972855320535e-06, 1.0181417393745034e-05, 0.4882353876199854, 1.0156200739909832e-05, 9.57762916824226e-05, 0.00046232017126339415, 1.8505199833753853e-07, 0.0004777520049218531, 3.400932560860797e-05, 6.204680708495633e-05, 1.1116227158395091, 2.081610813962345e-05, 0.025191589732710108, 0.0004317682492065154, 1.021486718095922e-05, 1.0074528129258022e-06, 0.15938054340260432, 0.0027318146534450923, 0.014181075076631411, 0.00042831547966656777, 6.82701798994557e-06, 0.053335256375916254, 6.78515364469219e-05, 8.670342852761449e-07, 0.0008253659873332837, 0.6006762192916704, 1.8099826779521497e-06, 1.6924195612773445e-07, 0.18265972283957432, 0.0032359686486709265, 0.015019724242690682, 5.328988598761642e-05, 7.553226018966937e-08, 7.563788159900957e-08, 8.63226387472249e-06, 1.9521526020446545e-07, 4.3786458150532175, 0.006167414374722319, 1.5396771920039474, 0.01807001065857692, 1.217161843471294, 0.00031837654477220975, 1.801971197016556e-07, 0.0036991702146784234, 0.05910414451628586, 1.2617471480570888e-07, 1.3840847276498854e-07, 0.000503275754711813, 0.16021523565082868, 0.10766601052899374, 0.007206387103258042, 0.4142660861087457, 1.2859451707458358e-06, 0.012554781461740737, 0.023922338276284746, 6.36849945395174e-05, 3.0131735859717036e-05, 0.45213608315201337, 0.04029433027988845, 0.00016617086600708843, 0.02565697250610948, 0.00013771836156543227, 0.011924504664007768, 0.6542606719114836, 0.00019057484212852877, 1.5340471786968278e-06, 6.848945582260808e-07, 0.13794742584582145, 0.000397348300837391, 0.00027508080480902495, 2.2226596349148098e-07, 0.00010234195907582691, 0.9431079274357826, 4.064142965569588e-06, 4.070731864214453, 3.44332690182629e-05, 6.930549781961707e-08, 0.05676503557901315, 0.004139151706880752, 0.03467971216462974, 8.873188313980135e-07, 0.0033564157878039663, 0.004382265910949748, 0.0001262063668202009, 0.06639900392663109, 6.632199984772983e-08, 0.35054891505647856, 5.2755802235571386e-08, 0.0015456031252919684, 5.352203972450867e-06, 1.2026521530237079e-05, 0.0016164086732519606, 0.12028135335246533, 0.02175111941785647, 1.0369007324886768, 4.3766177552030294e-06, 0.00022156655908841808, 1.8665117222040846, 1.3240273732907604, 0.011139002609053074, 5.3817764966132864e-08, 1.077987085601636, 0.019288798863479485, 1.2476903422225294e-06, 0.00022789098203708, 0.0828018110952809, 1.2103388541413275e-07, 0.00046264419152328986, 7.157004104901858e-05, 2.0907931414794163, 2.6252060014454115e-07, 8.528564421848815e-06, 0.06797976714954818, 4.4204352722693346e-06, 1.5180441692997111e-06, 3.401530834751432e-07, 0.4669980690919109, 7.643900605534708e-06, 0.00010853962561459329, 2.0160359038968086e-06, 2.738744932367392, 4.938381461424489e-06]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/runner.py new file mode 100644 index 000000000000..8b3d34e9c760 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/fixtures/python/runner.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# +# @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. + +"""Generate fixtures.""" + +import os +import json +import numpy as np +from scipy.stats import planck + +# Get the file path: +FILE = os.path.realpath(__file__) + +# Extract the directory in which this file resides: +DIR = os.path.dirname(FILE) + + +def gen(lam, name): + """ + Generate fixture data and write to file. + + # Arguments + + * `lam`: shape parameter. + * `name::str`: output filename. + + # Examples + + ```python + python> lam = np.random.rand(1000) * 20.0 + python> gen(lam, "data.json") + ``` + """ + # Compute entropy values: + z = np.array(planck.entropy(lam)) + + # Store data to be written to file as a dictionary: + data = { + "lambda": lam.tolist(), + "expected": z.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) + + # Include trailing newline: + with open(filepath, "a", encoding='utf-8') as outfile: + outfile.write("\n") + + +def main(): + """Generate fixture data.""" + lam = np.random.rand(1000) * 20.0 + gen(lam, "data.json") + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/test.js new file mode 100644 index 000000000000..4901f2c3368f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/entropy/test/test.js @@ -0,0 +1,82 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var entropy = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/python/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof entropy, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for `lambda`, the function returns `NaN`', function test( t ) { + var v = entropy( NaN ); + t.equal( isnan( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a shape parameter `lambda` which is nonpositive, the function returns `NaN`', function test( t ) { + var v; + + v = entropy( 0.0 ); + t.equal( isnan( v ), true, 'returns expected value' ); + + v = entropy( -1.0 ); + t.equal( isnan( v ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns the entropy of a Planck distribution', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var i; + var y; + + expected = data.expected; + lambda = data.lambda; + for ( i = 0; i < expected.length; i++ ) { + y = entropy( lambda[ i ] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 2.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. lambda: '+lambda[ i ]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); From 0e7298ca00456449550fc4af203d60068f5175bd Mon Sep 17 00:00:00 2001 From: Jaysukh Makvana <111515433+Jaysukh-409@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:40:39 +0530 Subject: [PATCH 04/87] feat: add `stats/base/dists/planck/quantile` PR-URL: https://github.com/stdlib-js/stdlib/pull/4392 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Co-authored-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- .../base/dists/planck/quantile/README.md | 154 ++++++++++++++++++ .../planck/quantile/benchmark/benchmark.js | 78 +++++++++ .../base/dists/planck/quantile/docs/repl.txt | 74 +++++++++ .../planck/quantile/docs/types/index.d.ts | 132 +++++++++++++++ .../dists/planck/quantile/docs/types/test.ts | 98 +++++++++++ .../dists/planck/quantile/examples/index.js | 32 ++++ .../base/dists/planck/quantile/lib/factory.js | 80 +++++++++ .../base/dists/planck/quantile/lib/index.js | 60 +++++++ .../base/dists/planck/quantile/lib/main.js | 83 ++++++++++ .../base/dists/planck/quantile/package.json | 67 ++++++++ .../test/fixtures/python/large_lambda.json | 1 + .../quantile/test/fixtures/python/runner.py | 87 ++++++++++ .../test/fixtures/python/small_lambda.json | 1 + .../planck/quantile/test/test.factory.js | 148 +++++++++++++++++ .../base/dists/planck/quantile/test/test.js | 38 +++++ .../planck/quantile/test/test.quantile.js | 111 +++++++++++++ 16 files changed, 1244 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/README.md create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/examples/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/index.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/main.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/package.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/large_lambda.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/runner.py create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/small_lambda.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.factory.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.quantile.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/README.md b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/README.md new file mode 100644 index 000000000000..68e2a38f95bb --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/README.md @@ -0,0 +1,154 @@ + + +# Quantile Function + +> Planck (discrete exponential) distribution [quantile function][quantile-function]. + +
+ +The [quantile function][quantile-function] for a Planck random variable is + + + +```math +Q(p;\lambda) = \left\lceil -\frac{\ln(1-p)}{\lambda} \right\rceil \!-1 +``` + + + +for `0 < p < 1` and where `λ` is the shape parameter. + +
+ + + +
+ +## Usage + +```javascript +var quantile = require( '@stdlib/stats/base/dists/planck/quantile' ); +``` + +#### quantile( p, lambda ) + +Evaluates the [quantile function][quantile-function] for a Planck distribution with shape parameter `lambda` at a probability `p`. + +```javascript +var y = quantile( 0.8, 0.4 ); +// returns 4 + +y = quantile( 0.5, 1.4 ); +// returns 0 + +y = quantile( 0.9, 2.1 ); +// returns 1 +``` + +If provided an input probability `p` outside the interval `[0,1]`, the function returns `NaN`. + +```javascript +var y = quantile( 1.9, 0.5 ); +// returns NaN + +y = quantile( -0.1, 0.5 ); +// returns NaN +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = quantile( NaN, 1.0 ); +// returns NaN + +y = quantile( 0.0, NaN ); +// returns NaN +``` + +If provided a shape parameter `lambda` which is nonpositive, the function returns `NaN`. + +```javascript +var y = quantile( 0.4, -1.0 ); +// returns NaN +``` + +#### quantile.factory( lambda ) + +Returns a function for evaluating the [quantile function][quantile-function] for a Planck distribution with shape parameter `lambda`. + +```javascript +var myquantile = quantile.factory( 0.4 ); +var y = myquantile( 0.4 ); +// returns 1 + +y = myquantile( 0.8 ); +// returns 4 + +y = myquantile( 1.0 ); +// returns Infinity +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var quantile = require( '@stdlib/stats/base/dists/planck/quantile' ); + +var lambda = uniform( 10, 0.1, 10.0 ); +var p = uniform( 10, 0.0, 1.0 ); + +var y; +var i; +for ( i = 0; i < lambda.length; i++ ) { + y = quantile( p[ i ], lambda[ i ] ); + console.log( 'p: %d, λ: %d, Q(p;λ): %d', p[ i ].toFixed( 4 ), lambda[ i ].toFixed( 4 ), y.toFixed( 4 ) ); +} +``` + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/benchmark/benchmark.js new file mode 100644 index 000000000000..c4882aa6ecdb --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/benchmark/benchmark.js @@ -0,0 +1,78 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var quantile = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var lambda; + var p; + var y; + var i; + + p = uniform( 100, 0.0, 1.0 ); + lambda = uniform( 100, 0.1, 10.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = quantile( p[ i % p.length ], lambda[ i % lambda.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( pkg+':factory', function benchmark( b ) { + var myquantile; + var p; + var y; + var i; + + myquantile = quantile.factory( 0.3 ); + p = uniform( 100, 0.0, 1.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = myquantile( p[ i % p.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/planck/quantile/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/repl.txt new file mode 100644 index 000000000000..7ef7c3b90665 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/repl.txt @@ -0,0 +1,74 @@ + +{{alias}}( p, λ ) + Evaluates the quantile function for a Planck distribution with shape + parameter `λ` at a probability `p`. + + If `p < 0` or `p > 1`, the function returns `NaN`. + + If `λ <= 0`, the function returns `NaN`. + + If provided `NaN` as any argument, the function returns `NaN`. + + Parameters + ---------- + p: number + Input probability. + + λ: number + Shape parameter. + + Returns + ------- + out: number + Evaluated quantile function. + + Examples + -------- + > var y = {{alias}}( 0.8, 0.4 ) + 4 + > y = {{alias}}( 0.5, 1.4 ) + 0 + > y = {{alias}}( 0.9, 2.1 ) + 1 + + > y = {{alias}}( 0.2, -0.1 ) + NaN + + > y = {{alias}}( NaN, 0.8 ) + NaN + > y = {{alias}}( 0.4, NaN ) + NaN + + > y = {{alias}}( -0.5, 1.0 ) + NaN + > y = {{alias}}( 1.5, 1.0 ) + NaN + + +{{alias}}.factory( λ ) + Returns a function for evaluating the quantile function of a Planck + distribution with shape parameter `λ`. + + Parameters + ---------- + λ: number + Shape parameter. + + Returns + ------- + quantile: Function + Quantile function. + + Examples + -------- + > var myquantile = {{alias}}.factory( 0.4 ); + > var y = myquantile( 0.4 ) + 1 + > y = myquantile( 0.8 ) + 4 + > y = myquantile( 1.0 ) + Infinity + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/index.d.ts new file mode 100644 index 000000000000..190f02fb9c86 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/index.d.ts @@ -0,0 +1,132 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the quantile function for a Planck distribution. +* +* ## Notes +* +* - If `p < 0` or `p > 1`, the function returns `NaN`. +* +* @param p - input value +* @returns evaluated quantile function +*/ +type Unary = ( p: number ) => number; + +/** +* Interface for the quantile function of a Planck distribution. +*/ +interface Quantile { + /** + * Evaluates the quantile function for a Planck distribution with shape parameter `lambda` at a probability `p`. + * + * ## Notes + * + * - If `p < 0` or `p > 1`, the function returns `NaN`. + * - If `lambda <= 0`, the function returns `NaN`. + * + * @param p - input value + * @param lambda - shape parameter + * @returns evaluated quantile function + * + * @example + * var y = quantile( 0.8, 0.4 ); + * // returns 4 + * + * @example + * var y = quantile( 0.5, 1.4 ); + * // returns 0 + * + * @example + * var y = quantile( 0.9, 2.1 ); + * // returns 1 + * + * @example + * var y = quantile( 0.2, -0.1 ); + * // returns NaN + * + * @example + * var y = quantile( NaN, 0.8 ); + * // returns NaN + * + * @example + * var y = quantile( 0.4, NaN ); + * // returns NaN + * + * @example + * var y = quantile( -0.5, 1.0 ); + * // returns NaN + * + * @example + * var y = quantile( 1.5, 1.0 ); + * // returns NaN + */ + ( p: number, lambda: number ): number; + + /** + * Returns a function for evaluating the quantile function for a Planck distribution with shape parameter `lambda`. + * + * @param lambda - shape parameter + * @returns quantile function + * + * @example + * var myquantile = quantile.factory( 0.4 ); + * var y = myquantile( 0.4 ); + * // returns 1 + * + * y = myquantile( 0.8 ); + * // returns 4 + * + * y = myquantile( 1.0 ); + * // returns Infinity + */ + factory( lambda: number ): Unary; +} + +/** +* Evaluates the quantile function for a Planck distribution with shape parameter `lambda` at a probability `p`. +* +* @param p - input value +* @param lambda - shape parameter +* @returns evaluated quantile function +* +* @example +* var y = quantile( 0.8, 0.4 ); +* // returns 4 +* +* y = quantile( 0.5, 1.4 ); +* // returns 0 +* +* var myquantile = quantile.factory( 0.4 ); +* y = myquantile( 0.4 ); +* // returns 1 +* +* y = myquantile( 0.8 ); +* // returns 4 +* +* y = myquantile( 1.0 ); +* // returns Infinity +*/ +declare var quantile: Quantile; + + +// EXPORTS // + +export = quantile; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/test.ts new file mode 100644 index 000000000000..99fbca207304 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/docs/types/test.ts @@ -0,0 +1,98 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import quantile = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + quantile( 0.2, 0.2 ); // $ExpectType number + quantile( 0.1, 0.2 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + quantile( true, 0.3 ); // $ExpectError + quantile( false, 0.2 ); // $ExpectError + quantile( '5', 0.1 ); // $ExpectError + quantile( [], 0.1 ); // $ExpectError + quantile( {}, 0.2 ); // $ExpectError + quantile( ( x: number ): number => x, 0.2 ); // $ExpectError + + quantile( 0.9, true ); // $ExpectError + quantile( 0.9, false ); // $ExpectError + quantile( 0.5, '5' ); // $ExpectError + quantile( 0.8, [] ); // $ExpectError + quantile( 0.9, {} ); // $ExpectError + quantile( 0.8, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + quantile(); // $ExpectError + quantile( 0.2 ); // $ExpectError + quantile( 0.2, 0.8, 4.0 ); // $ExpectError +} + +// Attached to main export is a `factory` method which returns a function... +{ + quantile.factory( 0.3 ); // $ExpectType Unary +} + +// The `factory` method returns a function which returns a number... +{ + const fcn = quantile.factory( 0.3 ); + fcn( 0.2 ); // $ExpectType number +} + +// The compiler throws an error if the function returned by the `factory` method is provided an invalid argument... +{ + const fcn = quantile.factory( 0.3 ); + 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 = quantile.factory( 0.3 ); + fcn(); // $ExpectError + fcn( 0.2, 0.8 ); // $ExpectError + fcn( 0.2, 0.8, 1.0 ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided a value other than a number... +{ + quantile.factory( true ); // $ExpectError + quantile.factory( false ); // $ExpectError + quantile.factory( '5' ); // $ExpectError + quantile.factory( [] ); // $ExpectError + quantile.factory( {} ); // $ExpectError + quantile.factory( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + quantile.factory( 0.2, 0.2 ); // $ExpectError + quantile.factory( 0.3, 0.4, 8.0 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/examples/index.js new file mode 100644 index 000000000000..a6d226c46b3f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/examples/index.js @@ -0,0 +1,32 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var quantile = require( './../lib' ); + +var lambda = uniform( 10, 0.1, 10.0 ); +var p = uniform( 10, 0.0, 1.0 ); + +var y; +var i; +for ( i = 0; i < lambda.length; i++ ) { + y = quantile( p[ i ], lambda[ i ] ); + console.log( 'p: %d, λ: %d, Q(p;λ): %d', p[ i ].toFixed( 4 ), lambda[ i ].toFixed( 4 ), y.toFixed( 4 ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/factory.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/factory.js new file mode 100644 index 000000000000..07c75e225c4a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/factory.js @@ -0,0 +1,80 @@ +/** +* @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 constantFunction = require( '@stdlib/utils/constant-function' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var ceil = require( '@stdlib/math/base/special/ceil' ); +var ln = require( '@stdlib/math/base/special/ln' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); + + +// MAIN // + +/** +* Returns a function for evaluating the quantile function for a Planck distribution with shape parameter `lambda`. +* +* @param {PositiveNumber} lambda - success probability +* @returns {Function} quantile function +* +* @example +* var quantile = factory( 0.4 ); +* var y = quantile( 0.4 ); +* // returns 1 +* +* y = quantile( 0.8 ); +* // returns 4 +* +* y = quantile( 1.0 ); +* // returns Infinity +*/ +function factory( lambda ) { + if ( isnan( lambda ) || lambda <= 0.0 ) { + return constantFunction( NaN ); + } + return quantile; + + /** + * Evaluates the quantile function for a Planck distribution. + * + * @private + * @param {Probability} p - input value + * @returns {NonNegativeInteger} evaluated quantile function + * + * @example + * var y = quantile( 0.3 ); + * // returns + */ + function quantile( p ) { + if ( isnan( p ) || p < 0.0 || p > 1.0 ) { + return NaN; + } + if ( p === 1.0 ) { + return PINF; + } + return ceil( -ln( 1.0-p ) / lambda ) - 1.0; + } +} + + +// EXPORTS // + +module.exports = factory; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/index.js new file mode 100644 index 000000000000..fed299058b43 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/index.js @@ -0,0 +1,60 @@ +/** +* @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'; + +/** +* Planck distribution quantile function. +* +* @module @stdlib/stats/base/dists/planck/quantile +* +* @example +* var quantile = require( '@stdlib/stats/base/dists/planck/quantile' ); +* +* var y = quantile( 0.8, 0.4 ); +* // returns 4 +* +* y = quantile( 0.5, 1.4 ); +* // returns 0 +* +* var myquantile = quantile.factory( 0.4 ); +* y = myquantile( 0.4 ); +* // returns 1 +* +* y = myquantile( 0.8 ); +* // returns 4 +* +* y = myquantile( 1.0 ); +* // returns Infinity +*/ + +// 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/planck/quantile/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/main.js new file mode 100644 index 000000000000..52f5fef9da70 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/lib/main.js @@ -0,0 +1,83 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var ceil = require( '@stdlib/math/base/special/ceil' ); +var ln = require( '@stdlib/math/base/special/ln' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); + + +// MAIN // + +/** +* Evaluates the quantile function for a Planck distribution with shape parameter `lambda` at a probability `p`. +* +* @param {Probability} p - input value +* @param {PositiveNumber} lambda - shape parameter +* @returns {NonNegativeInteger} evaluated quantile function +* +* @example +* var y = quantile( 0.8, 0.4 ); +* // returns 4 +* +* @example +* var y = quantile( 0.5, 1.4 ); +* // returns 0 +* +* @example +* var y = quantile( 0.9, 2.1 ); +* // returns 1 +* +* @example +* var y = quantile( 0.2, -0.1 ); +* // returns NaN +* +* @example +* var y = quantile( NaN, 0.8 ); +* // returns NaN +* +* @example +* var y = quantile( 0.4, NaN ); +* // returns NaN +* +* @example +* var y = quantile( -0.5, 1.0 ); +* // returns NaN +* +* @example +* var y = quantile( 1.5, 1.0 ); +* // returns NaN +*/ +function quantile( p, lambda ) { + if ( isnan( lambda ) || isnan( p ) || lambda <= 0.0 || p < 0.0 || p > 1.0 ) { // eslint-disable-line max-len + return NaN; + } + if ( p === 1.0 ) { + return PINF; + } + return ceil( -ln( 1.0-p ) / lambda ) - 1.0; +} + + +// EXPORTS // + +module.exports = quantile; diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/package.json b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/package.json new file mode 100644 index 000000000000..84ddb4a3d480 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/package.json @@ -0,0 +1,67 @@ +{ + "name": "@stdlib/stats/base/dists/planck/quantile", + "version": "0.0.0", + "description": "Planck (discrete exponential) distribution quantile function.", + "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", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "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", + "probability", + "cdf", + "inverse", + "failure times", + "memoryless property", + "discrete", + "planck", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/large_lambda.json b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/large_lambda.json new file mode 100644 index 000000000000..1f8d1bd1ebe6 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/large_lambda.json @@ -0,0 +1 @@ +{"r": [0.9544555848274979, 0.7403580906863967, 0.2519726241201691, 0.9066083415025643, 0.10472160992685564, 0.17746797020152416, 0.9591828428488697, 0.7304673004774859, 0.635565019532496, 0.39282381518757303, 0.4342203791048863, 0.21925873707696664, 0.7533254901997656, 0.9177567133953949, 0.06207527148340519, 0.317107207060741, 0.8223198170589929, 0.5283732324772701, 0.1614598319686854, 0.6686071724611999, 0.8169267398292239, 0.042033087993004425, 0.780506415802706, 0.8868025369421134, 0.14518278699465836, 0.6013787715088863, 0.4273210250402978, 0.2756699240950683, 0.1759593701987915, 0.23163581285215884, 0.24775025776554183, 0.1549499044997137, 0.8839846451544837, 0.16823237306824246, 0.07461839268650572, 0.9129877527174196, 0.4076927432913836, 0.43643543977611576, 0.7884021058143497, 0.5531586070578656, 0.8751417613252777, 0.12481549351198806, 0.8549237378239185, 0.21318434378215012, 0.007827108820905981, 0.03309542095571594, 0.9005305401667352, 0.4291683395170298, 0.042759531655934935, 0.9501902588323883, 0.4810228819919401, 0.4941627251415758, 0.8965897060168878, 0.1377988383125328, 0.6631699406355545, 0.4186391484678994, 0.17073572969163264, 0.8279123511189063, 0.5797688649485492, 0.5966264660743866, 0.16994069084040753, 0.09523572082621146, 0.05427273742722638, 0.9761650309531114, 0.26897955574664456, 0.6901836132088518, 0.37367553303509027, 0.12079493858635781, 0.09204159010612012, 0.6622925808038305, 0.09022398616874594, 0.6275171224837608, 0.8272869195279748, 0.016452105779083848, 0.5984856275971281, 0.08178684809601466, 0.3495744781905695, 0.2013859253761504, 0.9690800010631048, 0.18132349309616191, 0.11950144359254733, 0.12729153196596377, 0.5698557061146327, 0.45611478299972164, 0.8003493939447622, 0.5322317625732769, 0.07054389088868873, 0.14901169215991106, 0.6280833204346117, 0.605316111379996, 0.23684720523700153, 0.053575685743366463, 0.579608898201778, 0.5241481067933355, 0.3917847074759454, 0.9821917380752108, 0.15744429838209373, 0.8904051177102867, 0.9996922539902703, 0.49761196910095007, 0.6188648832751831, 0.06840736378637113, 0.17016400262944198, 0.7204086858683758, 0.9903701261927274, 0.41671729969797267, 0.3731318937142717, 0.2918054772375278, 0.5804303054077983, 0.09043978994369983, 0.7104915043954665, 0.9408814051587858, 0.06609737716740371, 0.18864212554170356, 0.20098788460686856, 0.39087779508615295, 0.43559137957645877, 0.8180935539971042, 0.378152108932039, 0.5202737798238333, 0.2607998399624405, 0.6610476261694279, 0.279741026385396, 0.6984025350272727, 0.8379216646052672, 0.6183665320047211, 0.33855163035899494, 0.9137593260740818, 0.4424961407937579, 0.23063911182349284, 0.9553761789496812, 0.3986303898391891, 0.431473149477129, 0.06951053643354765, 0.17521439897021274, 0.25508549472311404, 0.3668454727262611, 0.3780250702729926, 0.2588493004995315, 0.11767379495387431, 0.6743467268464577, 0.12775651343437677, 0.6154068406003567, 0.7778870992661352, 0.08078358949913012, 0.10314977400212233, 0.36654207823600204, 0.2832565347124395, 0.18492498435134652, 0.7143114292485556, 0.7527501462134853, 0.7242625134047287, 0.9071346752916971, 0.2676443856151459, 0.9906997532108772, 0.6009670366238961, 0.5643890138246974, 0.9540917307352753, 0.6730226495232922, 0.7837448832278171, 0.9905521011656488, 0.810467573964875, 0.48239383675983005, 0.648068523229573, 0.6145483046932879, 0.5741120864168191, 0.4038078262125615, 0.42644200078978656, 0.6374993536204376, 0.3534703176857811, 0.6963738895040151, 0.8949055438535621, 0.044731905885125545, 0.4685211726094758, 0.8986753697340045, 0.4614026511071374, 0.6460808785256439, 0.0934692143389162, 0.5260559468343587, 0.5470169316904766, 0.35003798504907135, 0.3947449215703206, 0.8687929477999942, 0.8612764940958464, 0.809632784012324, 0.20324278986453603, 0.5871114827976872, 0.6337471655213693, 0.01789081178831675, 0.8775392469317896, 0.4303173279841763, 0.4504004351918296, 0.5715842358767452, 0.24816787171039034, 0.8345900025729356, 0.4204083834979071, 0.48082726389359987, 0.8962695754660712, 0.5509359674545503, 0.900293435069848, 0.49803004695431297, 0.9592123436575225, 0.7197896056812687, 0.663512260604006, 0.24671596824031905, 0.04435449642575584, 0.7489436338767156, 0.8942620781577427, 0.10982654165787609, 0.7309359345915588, 0.09805112287692752, 0.7612158674636504, 0.6491543485784098, 0.4396606922088464, 0.7873692622868186, 0.21747321676179543, 0.27819978467955697, 0.025859952034126277, 0.07369535293179252, 0.2332950590924373, 0.2807993386343115, 0.780907869685212, 0.6275810987026325, 0.8181344558347825, 0.3257909457189473, 0.5782287766784618, 0.4000159832728678, 0.7889837221179912, 0.23825799859099672, 0.7288098732098229, 0.9236659819669766, 0.8404137227938077, 0.6845162466664836, 0.5033302841847802, 0.7903054656220869, 0.09113763345188708, 0.5814958327054145, 0.8809116832409908, 0.9122823453363125, 0.40810224895261027, 0.4993163281026095, 0.4982581239593208, 0.2438053546265364, 0.5895115366310014, 0.41462421011230177, 0.08018617084902369, 0.08344834470301987, 0.9537411798415036, 0.4024424493128791, 0.4349033379456855, 0.5894778789168267, 0.525395259759944, 0.742384062268148, 0.5897518228228003, 0.5746091605842067, 0.48455023970844235, 0.9971742090272192, 0.5801216779588502, 0.3453488874633682, 0.837271110948858, 0.5720494726169524, 0.5510882378156213, 0.1474026712307962, 0.8792405390394964, 0.1545575358395126, 0.277307496159071, 0.21178304134292902, 0.42008334024706895, 0.4844438199874551, 0.7629227286347695, 0.018191150533511613, 0.559724892006026, 0.31959801497719054, 0.42484124055468686, 0.5045022335945112, 0.41792277630394237, 0.8406756874397227, 0.7584689612373772, 0.6627959232140231, 0.4504234556891311, 0.6188812086557282, 0.2520511112897321, 0.6768894585664594, 0.3661259749132949, 0.9116865527641543, 0.23213232856306942, 0.4908392834870331, 0.738939475306359, 0.5620610076127113, 0.8266539544720171, 0.01875064686052219, 0.6833938264409025, 0.15622407261938154, 0.47847063703984216, 0.16225735863292068, 0.626861835172884, 0.6962144668652144, 0.43806475373402887, 0.7492544031589252, 0.7040677230630416, 0.01759954618456372, 0.9865958010578765, 0.03185187514267629, 0.30381137581155415, 0.5060214422564072, 0.3092472118168026, 0.0032909179014989354, 0.7127498654249984, 0.8883115575635208, 0.32149983437858787, 0.8009411838074117, 0.04638748648727131, 0.7297664812389735, 0.8989291363884553, 0.35566706525255143, 0.013896858858623018, 0.6346983893556364, 0.03891941107879826, 0.5364478561568168, 0.9346052901800616, 0.5693971256780886, 0.8276623763303008, 0.7062849172073955, 0.5488628711485576, 0.9915643236365863, 0.27360242982737326, 0.428510889022807, 0.5861745987579853, 0.29525251091454774, 0.30807814828126157, 0.8896455694157437, 0.5027114714348876, 0.9199076411196865, 0.23282426413852708, 0.4818500620085011, 0.16670153256358888, 0.6636973144358316, 0.7694941061195618, 0.15883471872883104, 0.5024009822955197, 0.7607385012668226, 0.573308268589688, 0.7128052915538216, 0.47458114042107746, 0.3058585053783185, 0.09592156921231909, 0.3377952791739445, 0.952001594343004, 0.8846612747528495, 0.5982256970401872, 0.6369596346886195, 0.02693587765302574, 0.5035915271181381, 0.47394620282309596, 0.7634217079612763, 0.6406562340181134, 0.11079848192330677, 0.11522602110249769, 0.923058921556633, 0.9629263060398169, 0.15060125521144674, 0.5968283212517348, 0.29721872055541865, 0.5405791996023788, 0.46497597047053163, 0.1474020065524796, 0.02372847455167626, 0.4812350611515559, 0.6967296144435504, 0.40179152923066985, 0.07337169310561187, 0.6573405093113526, 0.28539098302246435, 0.009244331607107803, 0.8334697295352289, 0.23464663972541577, 0.3073779897627624, 0.058093662575568694, 0.04610850727102267, 0.5546424186668094, 0.2049655844224303, 0.06441181531467033, 0.14571754478580512, 0.9136148842072573, 0.9633426345737295, 0.11450279429572519, 0.8566414099373426, 0.12902084871220154, 0.7809907033457243, 0.2985570720128967, 0.46729112914902193, 0.7217325778549142, 0.2546352230908381, 0.1256851780716386, 0.39866286655515215, 0.29130009236984944, 0.5981952924368953, 0.5728623455467942, 0.1919052600398845, 0.9814586395989626, 0.462482396448342, 0.7489914511611149, 0.7412085483495735, 0.9946184453248871, 0.9936217361154278, 0.8775986486201842, 0.006560143058748524, 0.07987839637588312, 0.09255693443709223, 0.6803478962534361, 0.30716860052772965, 0.059662614018199944, 0.9495076917578638, 0.08768176932411165, 0.001824941895294807, 0.404622906816846, 0.24973904196073338, 0.31896231963901933, 0.8108683556212708, 0.39186369848808034, 0.4459274394891427, 0.010718097594918707, 0.7550653191418718, 0.3223419376369112, 0.8164182930492055, 0.17922455006075122, 0.33949473635875504, 0.06751194311674491, 0.27312836940117935, 0.7977878633194752, 0.5534685165687104, 0.9664165966522394, 0.6163821629133173, 0.762601699536449, 0.013349048692931964, 0.19665098565332462, 0.5163939212920239, 0.964244464765071, 0.7121324678477916, 0.7343086132847295, 0.19586167380919972, 0.33987362838875446, 0.7917335907775159, 0.46270781969142505, 0.1568263181861438, 0.5605860508617901, 0.41770569345363284, 0.023095063092301582, 0.671615089714368, 0.8998883033166025, 0.3242808596725315, 0.4522441487686394, 0.8767106808480611, 0.34638967803599197, 0.763273507178805, 0.17403742007770107, 0.18792541092877746, 0.42265489606353224, 0.22032773490032842, 0.052433649773522606, 0.6410772493293125, 0.5404297486773655, 0.6738850368969902, 0.025304861036353765, 0.9214332930951719, 0.8048750272010128, 0.1118679959599429, 0.7260315135398228, 0.5033264679667974, 0.11766109467832087, 0.8893669830512008, 0.08419669816230901, 0.14675588040793208, 0.3528936945566066, 0.106742390640025, 0.4577293580973604, 0.4575372804000559, 0.6559996666974696, 0.6990217090015802, 0.6186309438534915, 0.7109303170901605, 0.7890954090368631, 0.09348311842786117, 0.7131596022185958, 0.29420168216011433, 0.4242046278295408, 0.762301071285519, 0.8726250099662999, 0.07445780740456609, 0.012498265444291112, 0.7062697218305279, 0.25387072967397084, 0.8754763532429322, 0.5280531041312686, 0.5829766765032436, 0.9945414245536217, 0.007846602377753031, 0.7792711615538326, 0.1954933824064189, 0.06442714559787988, 0.796829720341162, 0.21965903814918053, 0.5990052965486369, 0.4747824713914609, 0.7555350342577766, 0.15843456375281983, 0.920282178759835, 0.9786594229398783, 0.6198631794907337, 0.5393122117536336, 0.5580758017265334, 0.7522073552221554, 0.613052578061908, 0.2698946896821819, 0.8910459023406836, 0.2947695305170457, 0.7168595679123648, 0.29624731565202467, 0.6638787200527321, 0.6279389121599652, 0.23444823075221521, 0.8166093093653645, 0.24446679560588835, 0.43326733879830737, 0.04482406194098443, 0.769363895627691, 0.150690618852507, 0.5358252851058666, 0.355291232307269, 0.4552392093245221, 0.24930691227037804, 0.6992456820243974, 0.043882588746269935, 0.9286801324853223, 0.781469537754247, 0.32539601043627964, 0.19458764045459065, 0.7217863037850774, 0.3483230790280828, 0.1543237930443374, 0.862092603487542, 0.5366933873577592, 0.8594865514074684, 0.7870106889721089, 0.5112783992131956, 0.892563029233438, 0.06661275929610178, 0.8308797345950213, 0.9407309207505831, 0.8838656404719337, 0.8660628180316879, 0.8793239885674379, 0.7101769887414117, 0.3337894505736897, 0.0678709014864235, 0.1932201424648582, 0.5837218281767435, 0.6091161543324661, 0.19244190681541684, 0.9153377133525555, 0.7325385293104899, 0.13014919306577044, 0.036541357319163636, 0.9175541295305089, 0.7969717718229588, 0.6279623899970435, 0.3145432427626199, 0.3344187748743471, 0.16101661909664966, 0.9814209788159267, 0.06251830806129965, 0.17117506937088667, 0.8970387438084556, 0.7192892308962439, 0.5475936657425622, 0.1757228924966735, 0.29220323055501063, 0.9544985974535637, 0.9242099841273987, 0.8187163403702354, 0.37894026796105584, 0.9060269224413243, 0.86495574862838, 0.8004715385214718, 0.6051661957081984, 0.9906111694781868, 0.02354600171460486, 0.9094001255113112, 0.8420117032204392, 0.3018285803933285, 0.7619290368450714, 0.9929127172137747, 0.1443610370107673, 0.8528333012391964, 0.4723144305526621, 0.3543726213854874, 0.06595743147076516, 0.8587686511990039, 0.5686616638655381, 0.6436028532937127, 0.31520733149241165, 0.942429717423015, 0.019969123451064164, 0.9573148842278032, 0.5610370701248902, 0.345767904655891, 0.637298280485113, 0.9501619387313595, 0.9023645158518087, 0.9001019571783025, 0.8510965244457804, 0.6781184643216009, 0.6467959684732545, 0.7507085898201029, 0.5707487724114384, 0.15914298607556376, 0.30946353708794383, 0.08526069353495203, 0.8824923282206909, 0.3257522816406303, 0.11516900557473231, 0.040447664677833894, 0.238115328455202, 0.26047504305684877, 0.8944597315897932, 0.38237254819193456, 0.7268236594938281, 0.686853227933618, 0.7412494215062803, 0.61642140245942, 0.04255093012732547, 0.5607856894823714, 0.5237019474579192, 0.7024804237374815, 0.9367806480428362, 0.337324229011002, 0.061949124323642524, 0.842676203644689, 0.9437679496408095, 0.5057797484709146, 0.38114666220988436, 0.5070669191140688, 0.5289429822897412, 0.6652231370760142, 0.4118754305707273, 0.4246092692547606, 0.6993349883208757, 0.9293332961736703, 0.05436059403671578, 0.15166388115177754, 0.5673979679815983, 0.018521914524938232, 0.15432250613035525, 0.7315744365962857, 0.869731505164773, 0.8899914747350662, 0.8945133422677615, 0.043440442011210334, 0.6551082366206871, 0.6756908312893908, 0.8189066836659483, 0.3694706686672956, 0.6592093878094065, 0.3469781254891232, 0.15019537679216788, 0.5747951247927865, 0.3797777903585545, 0.7449604363694184, 0.2539521278936667, 0.6824352721089039, 0.9143258007441811, 0.48346786025546284, 0.5280720667633579, 0.1707052035347203, 0.6241750807425153, 0.7158663835907636, 0.8010822444600842, 0.3555368934693094, 0.3974174139974719, 0.2938188813472842, 0.1079901029295749, 0.9936302130520833, 0.22386695901191278, 0.644094229466804, 0.7744846884522795, 0.4530274523330595, 0.1333681288918489, 0.3058805713784929, 0.7543141356461199, 0.2654505251459711, 0.5873384982201626, 0.6355219203606196, 0.45227008329992835, 0.09381607601797337, 0.7079547662865675, 0.8092468116714526, 0.48436408689374166, 0.7041669871746071, 0.31315398564782215, 0.22922817832776932, 0.13113355472725918, 0.926413910105858, 0.5164413189557261, 0.06004436331227003, 0.24682439573718795, 0.30472404935355035, 0.2698646146079917, 0.0935337717465291, 0.08141482139970269, 0.7288075421649551, 0.7739842330434357, 0.8876829583626448, 0.11371787095608377, 0.39110346338949187, 0.34158204930068203, 0.5364802571045646, 0.3083296110221079, 0.5982339119362032, 0.5021506536361843, 0.5899564172393897, 0.28927866564852167, 0.8379878797549081, 0.10851917693075963, 0.3608324497709353, 0.5307241664769408, 0.9160278952770236, 0.47001249459548455, 0.2776419258332392, 0.16717861772144804, 0.5535561505077309, 0.9914372868676019, 0.058454096343101725, 0.16224579812680429, 0.0819099784003765, 0.12348426486872788, 0.18331711573765885, 0.636717030800838, 0.48300950933021936, 0.546676664649808, 0.5750653862608988, 0.6631090372096365, 0.41139734184639465, 0.17172487812618797, 0.678129444580649, 0.04414916225824239, 0.1668524637575134, 0.15734545805562294, 0.04740650887417186, 0.33566621335299474, 0.743523779653463, 0.5604545044272673, 0.31430876494986715, 0.013888572361703377, 0.27053859429659466, 0.36711651661116873, 0.5372220678360071, 0.3608055782184847, 0.5351832202416135, 0.17118711352785565, 0.13674203055839618, 0.34257592060522224, 0.8531958068276321, 0.07131958380091585, 0.11563202953108065, 0.5021794177899086, 0.9176905632700192, 0.11417685885673823, 0.733345160174861, 0.8144453632138027, 0.799913501701463, 0.12751399953736386, 0.976691052223234, 0.881475190006092, 0.314141608757753, 0.2277932705117519, 0.6164787594316575, 0.06459280229867115, 0.9904451937278883, 0.7912145861241413, 0.6895044084136714, 0.9382021970130643, 0.28084880017385394, 0.20143588754197672, 0.16526139245653826, 0.32507365813700684, 0.9412861421004475, 0.888537826767357, 0.12126715648597375, 0.6779372596904892, 0.26250726837496574, 0.7386104268737769, 0.5466959707899951, 0.17720423098335492, 0.5116228501225129, 0.9523198697693187, 0.31838793406375465, 0.8269255967585047, 0.21134221953272625, 0.5611323780100061, 0.646307827362364, 0.8619677410533254, 0.16673004569933536, 0.05552131886903422, 0.11631100703096431, 0.44094285065214667, 0.5294855369942151, 0.9583552070733045, 0.4715024451664519, 0.43492441033075435, 0.6537362220992303, 0.6230468378462019, 0.1497472319742118, 0.35651929096774115, 0.3019958117699124, 0.7341835092953298, 0.29627041100719076, 0.15538045250986177, 0.8125400580411011, 0.6664003087316595, 0.13633044298056796, 0.8245837672462037, 0.5921284664682147, 0.916179141354857, 0.704377796571236, 0.6055471528212574, 0.9373371454723403, 0.9108747985117938, 0.6121746898202135, 0.8414060683611387, 0.7720867844338214, 0.5196200593874966, 0.8422746693417956, 0.7120321508883802, 0.7526639104157907, 0.6241084117146982, 0.6680470392241485, 0.7512312826266448, 0.02725750432925922, 0.9894897764782035, 0.7994117310946816, 0.3751052892794472, 0.36378215897385524, 0.9937313584776343, 0.5585546831320446, 0.8323006340827832, 0.10413305465959122, 0.2860223361399129, 0.9700634188512529, 0.6432471376539862, 0.15331126553455765, 0.021698036820599342, 0.7265321701435142, 0.09826168291444748, 0.13798494486866608, 0.04672555860628569, 0.9789323224538913, 0.41615612581622385, 0.009106886444161133, 0.9384052160368184, 0.0910805724196736, 0.36356185306879096, 0.5281419635382008, 0.4817766218940417, 0.31926293870870703, 0.8195431212702993, 0.10389324595554728, 0.8530280806167805, 0.3814117876376033, 0.1590088116011562, 0.7327175168279276, 0.10641020278923452, 0.6699533178550239, 0.4790654430974488, 0.07975259712073479, 0.24128563923784585, 0.2173336332763437, 0.42482132503494685, 0.8340195682790744, 0.7893817185225145, 0.17486298041370452, 0.7747091613028828, 0.3497880003777387, 0.24284870754657017, 0.04023442400838095, 0.00013217623788708277, 0.073800843781331, 0.8830941740068048, 0.014456683059574593, 0.7569029609512159, 0.4754606701454911, 0.10073778457392557, 0.5822448705704482, 0.3611954034353415, 0.8402819331154479, 0.5097805889755943, 0.2761204595193246, 0.696174965853414, 0.346560670565756, 0.9163253031230412, 0.1248802748398884, 0.1693078718631248, 0.19255771144668687, 0.224213239722033, 0.9498688299880469, 0.5271875865156698, 0.3127345526623788, 0.5545815436659484, 0.5541437355280344, 0.669183101148907, 0.6290530709661524, 0.8329744214327617, 0.40802467927134944, 0.8357431279859965, 0.2401021760234785, 0.9309454701712842, 0.7574956674306902, 0.06370635963610294, 0.5457338750286026, 0.37557853738150226, 0.5430836254492855, 0.21688593930710576, 0.5512635778409783, 0.3800509899145871, 0.9560851548027325, 0.1923335609847998, 0.3135345793638141, 0.6237788058116817, 0.5582654684449452, 0.48597665552435143, 0.9214866426766223, 0.492891462552858, 0.18484356989550266, 0.5663638109341775, 0.9661047609299539, 0.8436266966718143, 0.147131010464852, 0.3566208148871106, 0.5280561452822411, 0.7811479495552294, 0.9948359564163731, 0.6528183570085757, 0.5318023251404792, 0.8315241120005973, 0.7265742959666626, 0.198162178377995, 0.3422245655506304, 0.595981212312827, 0.3370544661597378, 0.11892330342371371, 0.057564901082487685, 0.5773176344367559, 0.19415469717374945, 0.5305523801397429, 0.32205268360192196, 0.9264810882416519, 0.98629792033637, 0.3190937491226594, 0.8995916368967918, 0.30588500499109195, 0.31987271375685855, 0.5759294136551657, 0.6041736225372069, 0.5163909668412967, 0.5958715611705515, 0.5110227896561538, 0.9190921422823376, 0.9013741942783015, 0.8801453979060184, 0.30019786255337433, 0.722913937293593, 0.5553814112331819, 0.6451518068069404, 0.8185033209334887, 0.46457915562670615, 0.4893799133734831, 0.9358423720414842, 0.6336203806078669, 0.845653747450809, 0.17808707019992853, 0.4936179351367256, 0.8738236803960654, 0.8595637494387147, 0.5583680316713145, 0.18614014968574744, 0.9936865248801747, 0.4512483910372943, 0.48911429915600524, 0.47101577709246445, 0.12762669333046428, 0.16982835907829252, 0.26588168555399627, 0.4559669589283186, 0.20606781032507326, 0.9769631202927935, 0.7519421901293496, 0.9032320837282445, 0.10469778936186558, 0.2116143357271938, 0.11502753059844151, 0.8188975410641246], "lambda": [17.820471566505866, 10.964932529402425, 11.978359844095825, 11.671990961777839, 14.829999757774768, 19.857176012831452, 16.550597865174964, 12.409026231615021, 12.710872030695793, 19.10180676467578, 11.18961196780841, 15.160286160412419, 16.235452434302903, 19.08548715230683, 17.255155821219574, 15.538091363617394, 10.810978644762566, 12.198489791106255, 15.000685048709224, 10.364876820820454, 10.405504142190182, 11.618261483276047, 19.72291606705301, 15.64059288052315, 18.376097026384862, 16.874453571642437, 16.816060385526278, 18.686040484969134, 14.897126468636381, 11.339195261133344, 16.162569342788224, 16.77531301640449, 19.467329327095875, 18.64841207115968, 19.866537947937566, 18.101232869826106, 11.725755541477996, 15.810623798366723, 13.429344065075012, 19.73076935851003, 13.924897547641862, 13.751030403388642, 12.074533068445168, 16.02771406291739, 12.140848229141916, 14.813639005568309, 12.968264257014997, 13.254502038783219, 10.733527552516707, 12.878269969095333, 12.238564267342769, 19.573672809233447, 16.900206580636265, 18.778626725129072, 19.092740127965225, 14.35413660918968, 16.25580700688478, 15.502890195745337, 13.036095350892914, 16.30896644092068, 16.733532289473317, 12.362243116890948, 16.50106127852014, 18.21309858656773, 13.313466765475289, 16.10942087368345, 13.40828323003091, 18.16683742943244, 18.38319641517625, 18.02704676566468, 11.054523920670887, 11.677811732266303, 14.188645855460049, 15.808023447875579, 17.122995272828767, 14.277561192041656, 16.67484280996164, 11.205290418880496, 10.70676698205148, 13.36616984009024, 19.562889486777134, 18.337607760339782, 17.845007206211648, 17.07582556635796, 15.18998506109685, 12.618920549754275, 12.097438116015478, 12.23253376193393, 17.866492851058176, 18.82455085595176, 11.013371827475238, 17.26548529985504, 18.917015147196658, 12.88533427964718, 11.854184365920688, 11.399330339454725, 10.34126794998228, 16.21846475702553, 14.616674965635106, 18.13533336804856, 17.847772861814686, 10.269927844628302, 10.18226794538689, 16.901820435161067, 18.159183866699756, 10.181840846730953, 17.11060523367543, 10.318264938851208, 15.268804620110416, 11.291811363112595, 14.097602660864126, 15.699904161717981, 14.721528682083985, 12.521341475405418, 14.874805208195268, 12.649540359270533, 14.483381906151674, 18.99675411483817, 14.806984574842023, 19.199214534187515, 16.53663487190496, 11.415474091054215, 18.040961977566788, 11.568255793031081, 11.807902697388645, 19.25286551615301, 13.202613160529388, 15.138517668445846, 13.449202954768815, 10.19626124416381, 12.656053600783235, 14.0977061838603, 10.928706313208354, 19.664543830648, 11.85486504752464, 19.76639274376908, 12.058047658938845, 11.599363723112681, 11.357586796410807, 14.631034708187661, 16.121415934729725, 18.899349473510995, 11.966969643316666, 12.974623925678275, 14.684648188860681, 18.56114601244362, 10.941254774770423, 14.364378687101116, 12.179016014895184, 13.663018338451941, 14.419169240508502, 10.755588707446444, 13.13407081617828, 17.46917914361277, 15.093920585782346, 16.34764539052131, 12.129146456651329, 10.982544935116037, 19.309859169652803, 14.33873631986732, 11.127768036369236, 12.8859171877942, 18.034464783740347, 13.220907198822012, 19.556432062229266, 11.361349106453195, 14.074601999238556, 13.246178432816574, 10.240534057476253, 10.494169325021304, 13.16395460659398, 12.580438077579554, 12.204936648884537, 17.469961374011973, 18.367434722874968, 16.564046506637197, 18.490398643062445, 15.001291389568301, 17.763978397060658, 19.824276823614667, 11.650588439717378, 16.731549581209016, 17.248227819057213, 11.50936433921854, 13.058282244753936, 15.898383259896207, 11.618021545535765, 19.22387773824991, 17.377358397136263, 13.226155619132916, 18.191116624925698, 10.152550997720628, 18.66105138358474, 10.860217506848205, 12.184490918570571, 10.237137615779382, 19.84103011570668, 10.712833276009414, 14.22543558099029, 19.149787132663235, 19.975901792932827, 19.521924738807524, 16.20430207567857, 13.258175366461646, 10.507838928886784, 12.803572993365622, 18.039962884196342, 16.88635575217253, 14.65016978989738, 13.36023304447857, 18.390900745129848, 11.555458629355641, 19.75048963160712, 14.299920540400581, 19.806849045593786, 12.18716932528862, 19.089813219008963, 10.152760396249558, 13.618181795271326, 17.584200132812057, 19.217531457117587, 13.752869505542094, 14.005903495176609, 17.8717852179294, 10.688179909137858, 18.739695000058315, 10.101105425631815, 13.64155700791624, 18.257204442165857, 13.081828570406532, 15.339792903355901, 13.790275192955585, 16.168208082314685, 14.495061652592657, 11.590164963992645, 15.499810725169901, 10.129837425405483, 10.580673854179269, 19.454287805964547, 14.963082143217356, 17.21077702972523, 18.903912580871076, 18.27942949323244, 12.154105873041264, 18.870399541632757, 12.26666903687315, 14.780087639831983, 12.6488294617708, 16.23943595364167, 19.83758496944261, 13.938580926284757, 19.01142050244284, 12.70686169957891, 15.929453719907217, 19.075376816685075, 15.41403674335551, 19.19060429172564, 11.43685167382263, 14.576709629209388, 17.703694150338144, 11.235383470718142, 18.152841434923474, 15.568061907415974, 10.39372204068368, 18.665356864955264, 17.465452347917605, 12.99430704516687, 15.588525269945066, 15.485407611725869, 11.290184088136172, 19.478537937386772, 14.896190956934538, 18.014313385719174, 14.265210264020837, 14.78063383812567, 16.50732103190281, 19.749975897002752, 18.86607337636287, 11.859114125093566, 10.445059080899515, 19.95185108788661, 12.052434859358385, 16.483416047663233, 15.69551620638399, 15.584277022576279, 12.063673430525549, 19.546332929350566, 14.45499572874375, 12.603226862115722, 18.662189581683755, 19.733451735623767, 17.22780165713057, 17.50659026267836, 17.867767525328787, 17.64367077841633, 19.365719261997953, 14.888033601886473, 15.325354814339285, 12.66364294093929, 12.65327929505607, 17.46021061934693, 18.34199295325066, 17.86319085194202, 17.722692551455687, 10.449874822382219, 19.197141835889596, 15.721159249601962, 15.477391485470244, 18.755947673180593, 19.14189784982588, 18.380919375083586, 17.02987386267963, 11.553182028596984, 11.091032491200433, 19.270814436883263, 14.915822277658133, 10.595434722820045, 14.072928484359876, 15.424179866292544, 18.75409682229703, 11.06003803915311, 19.375094984990916, 15.516072655871564, 17.537999730204785, 12.104105749572962, 11.130714729784897, 18.118394765047185, 15.827304337156248, 13.505432923556782, 13.715437954218284, 14.705055318095106, 12.900369612767195, 15.480360691665567, 15.961749142551286, 14.276782334816561, 12.830944694522643, 11.038211247610267, 14.687787021277918, 14.734611102173629, 11.233207287787154, 19.344799133073273, 10.204041667444919, 13.73596849038892, 12.710925740062274, 10.130669790546614, 18.732463561322422, 18.1469383150429, 18.401163113622303, 14.552397141334476, 19.899612826360514, 10.072685242570357, 19.10548745209848, 14.663162283843063, 16.6548729967631, 17.39558977517413, 12.57490025270713, 17.52964514284653, 17.316623295019994, 13.73845714049336, 16.626855702732136, 17.117378739267807, 11.275724257525233, 14.16190595697172, 12.936315812750937, 13.866364420945645, 17.098345220241818, 14.606946483122414, 11.05891929208414, 18.966926023554933, 12.86122773976933, 18.909138906178928, 15.118772896247368, 15.950236960061098, 18.499164233832165, 13.980790004509464, 19.628959708310532, 19.171115020310264, 17.6239198127274, 12.02106939051056, 10.087717162816288, 10.516443220702765, 17.527651829126256, 17.569389839069025, 10.756841405688558, 13.071359372796195, 15.651705772388777, 14.63051508690744, 11.7115876321056, 17.73024340604141, 16.65055509201192, 10.923600251336476, 13.205325228106073, 11.42917388567829, 18.884249329110038, 18.031056269478704, 10.92739258922473, 15.267769095456877, 19.822673757589662, 13.093352722591803, 14.715236373464284, 17.21260149911532, 10.131208959783773, 10.565544674934117, 14.245503381845285, 17.1801183265099, 11.435458429497341, 12.539087418012588, 16.006146439011797, 12.216995073182527, 17.169874352388046, 12.835280362411492, 12.622235345850264, 18.401196969249703, 19.483151881993045, 18.98862160312837, 18.08171859997713, 12.448581018487847, 14.900421065981094, 11.156026868774413, 17.196818765181657, 13.16230066776948, 18.23474207522624, 16.867817594049058, 18.063484592218536, 18.38398714487942, 18.315170395482074, 18.483985128829595, 15.069992760688605, 13.069387971480307, 16.618529087857244, 15.04378842927919, 19.49421842137553, 17.69462897443061, 11.136309264810837, 10.948443598207831, 19.925578441083054, 16.239397319358527, 14.829809935798043, 15.687584401153654, 17.698097642948134, 15.782390982576494, 10.753564445863722, 19.55319050257799, 14.808992829280864, 11.781058062550828, 18.784525928873506, 18.120204452847815, 15.8318737932228, 16.053488893058592, 11.995868432415264, 11.110412232924693, 17.4389252266824, 19.86230942493831, 11.316219741360221, 19.692294356879387, 11.892239020225603, 16.94096715237363, 14.900375296102407, 18.402727192649806, 19.885079190384438, 16.303433364210598, 19.51112937785137, 18.047832527898294, 17.081318779267153, 17.33384181933332, 13.565977042202658, 10.751649724488644, 13.213162773663452, 10.396542264314425, 18.978637281369203, 14.830954863951062, 12.696165229166665, 18.365284404171852, 15.71947685300086, 18.438856936618958, 15.097793523328539, 16.808470986357364, 17.204299451319983, 16.629447825971564, 18.387201618827298, 15.186990766687172, 17.375025891968704, 15.11909161743445, 17.838794105587713, 14.846204971047381, 11.40520014922031, 16.763449488029323, 12.330863889998648, 15.362218614310978, 18.88982488448654, 18.909024475808053, 14.826357658989034, 10.844266380922425, 13.477606719769124, 18.91992873138404, 18.35062944022292, 18.547821054322768, 15.562344146127398, 11.750097976319328, 16.707269607973583, 14.85644819869361, 15.39147845096775, 12.110732126149149, 15.520498547652723, 19.061401652815384, 15.542506459595515, 18.96418435868859, 11.980540093134444, 15.999680649801657, 10.433053927126357, 12.367327894362123, 10.989872062436541, 12.865383698118038, 19.00476466398208, 13.080617046183484, 19.802304906306517, 15.759800921825164, 12.669051475259295, 10.08278724016585, 19.582672595777463, 11.337293607275704, 13.763573556111602, 16.31267113873713, 11.74599301168467, 11.626936917544969, 16.08350724067786, 18.058485260884154, 16.747414673990257, 12.095054976282013, 17.324969920597606, 10.976693471008772, 11.291338102726375, 16.002125527029026, 15.983632694598935, 11.138239759955548, 16.77160288158012, 16.194095066684895, 16.68493590088047, 11.439448848799845, 16.40710497855851, 15.479625540547694, 13.673159158294903, 18.375213935551045, 18.757550745190187, 15.73082437951381, 15.996428987186777, 19.174802376686507, 13.859088396837466, 19.28049892111594, 16.654095191792795, 12.610686662246632, 18.360550556089102, 18.866697794653632, 13.8115360814529, 14.892660604536104, 12.51548325229092, 10.062954841105256, 18.136310517649, 10.55211414880887, 11.89770734530989, 13.188855856019298, 18.89273416487699, 10.917337195215648, 12.513940969789276, 19.931643040269716, 14.580931457218119, 11.947495458108172, 18.17206305659598, 13.076231121792222, 12.87346178039782, 12.808964335346142, 11.080426044659237, 11.807066573239878, 16.99272420445998, 19.01029286577753, 13.108382668707758, 12.472255282763689, 13.098283695374633, 18.457447903405676, 18.61810980564891, 12.62201561955189, 13.395669522758398, 19.314989429781875, 12.808378537855813, 17.074688555014326, 12.72094951471733, 18.87990635056456, 14.693807652222159, 15.193941010982785, 11.924171402114453, 18.015262309150906, 12.050660760658687, 15.25491654563242, 16.718769692260604, 15.993569066367908, 15.631931976556217, 16.740166123349205, 19.217326589036787, 10.562935971096014, 16.577237930058338, 15.904982633252606, 19.722769055379448, 18.447444523769143, 11.94326189729085, 14.684662332236309, 12.252287664582907, 11.081646497179513, 14.282570570281054, 11.358157537480661, 17.39416414314532, 19.185438088805334, 17.563602095262592, 18.996869055445, 16.417745084000046, 15.64769162360049, 18.15773287199699, 12.893932373981766, 16.474625237527782, 11.587513437433856, 10.301084475415927, 11.011417853547705, 10.9198629238247, 18.97368806688525, 10.891570317024607, 12.725076374766509, 14.413835781481243, 14.017544989909172, 18.61209100369267, 10.079048402640758, 17.727472872932996, 10.250928421355379, 12.736030053360043, 10.73964047549923, 11.745628096302429, 15.513419324132943, 17.81442434083351, 10.425257317019481, 19.6806289017164, 19.577323018113006, 19.180057622709796, 13.436807079984835, 14.244110602267472, 15.027741718073507, 10.282552850432122, 18.97923213187695, 18.556711356069446, 18.480237102176822, 14.618722903038414, 17.910685709087158, 12.271640706435683, 13.439451431072712, 10.601968322792638, 11.17527672013215, 19.590745920408466, 19.6118187348818, 14.008182527565577, 16.04627969418334, 11.29066997564936, 18.780064729184346, 11.315122475831082, 18.14600474335832, 18.29886903427705, 15.401184376856383, 14.49186786445426, 13.916871087369714, 14.296073249003342, 17.625011897892584, 17.180354995569633, 10.706768673006106, 18.15172860047157, 19.846800487453283, 17.154376298530075, 15.01042177106979, 15.18618159946335, 18.64804685538267, 17.517695632950282, 10.610039823791865, 10.50598090262722, 17.61916416958442, 18.51129675296184, 18.76776500717071, 12.498758607859324, 16.387943214098087, 17.548853860966112, 13.266460344441365, 11.363470950110017, 17.266864584403788, 18.231772354615348, 11.758715090061084, 17.703431260407648, 11.22921765538271, 12.196257023617623, 13.161733969421924, 18.19767298197235, 12.814591399425648, 12.012500771802106, 16.076565637068313, 13.166078562893745, 11.627888153036361, 13.348787900274205, 17.55891316455125, 19.849137353282813, 19.00131236606558, 18.5334349575272, 11.47738008243317, 13.576698789611259, 16.418121036162614, 17.07233159771935, 14.860689119009104, 10.358840199891553, 14.045210369632567, 17.313518296956925, 19.581764527186657, 10.896014269603238, 17.149677494402205, 13.340924629687738, 15.931901665569473, 17.803466425210797, 18.498935508987323, 12.58133064408274, 17.887070644828267, 12.45959720022693, 11.914394823784097, 18.18059813271783, 15.261921029428363, 19.215077000328115, 14.220447410019975, 17.691956800760025, 15.1587617400188, 12.320132220285831, 18.99091005319139, 13.669293016449775, 17.303587346472895, 19.902059756032315, 12.718477994391495, 13.149065109263438, 19.40586860801486, 16.12485760945568, 18.194633825591946, 13.039222581219276, 11.016244296778423, 12.528876216177027, 13.920766082998355, 11.939402798198737, 19.193353740342637, 18.64951409782239, 10.96481350638099, 15.375551524010854, 17.726124977937314, 15.568750543804347, 16.053471754835808, 13.46881021037031, 14.081151316904137, 17.256122386103062, 16.293243944918885, 10.293799778974282, 11.092784061252765, 18.335982715353452, 19.072966884233388, 14.39460793883729, 11.628765129058976, 13.37059631289383, 15.007563733640424, 17.60368942128575, 11.146005615021522, 15.437826215400516, 14.324789469715942, 13.761850916904276, 11.380559787781436, 14.507232149296145, 13.150414150468928, 16.300103898023625, 11.409364619239257, 16.93263921361457, 15.006103151710374, 18.715763419038797, 14.317664585876269, 10.183606506780396, 19.35613460821005, 11.05232797238094, 10.57651816868766, 17.869252836164033, 15.2816481858898, 16.827635063415464, 17.401446757962894, 11.163514915059258, 17.916226550400488, 19.248942312952522, 18.58494016283425, 14.048118883092464, 18.62537114940074, 10.47399588508476, 18.124317294251153, 15.73211649249092, 10.003867072939757, 17.164047277104125, 14.812105375437614, 18.75717447450107, 16.559729263860543, 12.843433262942607, 12.455473840830017, 13.409025489872224, 15.942822347724116, 17.849441944404667, 17.099406156102486, 19.252218507170134, 17.248468106576865, 11.822986235228969, 13.322203820927397, 17.451722470706507, 18.322932377286858, 14.474989890248555, 19.09591763792063, 14.40386007086408, 12.375248767694035, 19.060573350904676, 10.703446688852782, 17.24828663441852, 10.120849552884504, 13.94296871018641, 14.36068346159533, 19.37718474381365, 12.639238248928553, 13.694561876645647, 13.787679746937624, 12.738300524711903, 12.806214918692554, 11.450972775068758, 17.663791492894667, 13.92089411701436, 18.263493359773747, 14.45792100150658, 16.361621960433837, 10.457435230321177, 18.750650253789587, 14.17041567235123, 12.957032113209147, 18.46076834256242, 14.56405955665352, 12.637097049705076, 12.535078998321618, 17.567322597048555, 17.791356501823227, 16.045316857195616, 18.201102948743703, 16.86841660660339, 19.200962840491542, 18.120844035221445, 11.450406954723116, 15.267645836143853, 15.233422468125589, 19.566296582320682, 11.556524669614854, 16.47746765110459, 11.488439711958591, 16.024370507196053, 11.01025864639483, 16.43929074023441, 14.497596848997638, 15.424235096032515, 19.294579058922025, 19.980243531182317, 19.167949231133207, 12.346729674397595, 11.733122264085331, 19.189032511541004, 15.123901272977474, 19.11045916373972, 16.15564905341583, 10.511248111059063, 11.557273495753588, 11.16818888901268, 13.179553062053706, 16.04011285470621, 18.40038292720065, 16.739711719261564, 12.984452157254092, 10.699929518858305, 14.613929341438189, 18.752533114811946, 19.155708558189954, 12.385612222623992, 12.929910688301588, 14.466685773782398, 13.459782961751092, 10.274137675580837, 19.449686875934198, 17.97121653252781, 14.759776060857494, 15.022073805736056, 11.134798744744923, 12.880343507073741, 17.61651467759296, 16.929532998801147, 17.860036421939565, 15.712087840206934, 16.99005006738112, 12.951623503202825, 16.06470458205262, 13.642875992376897, 15.483949231301382, 14.189162226621768, 16.33588299322542, 14.243620748086375, 10.662048395523387, 17.531863561974706, 10.769060176836806, 13.8114569258483, 11.995518873497371, 10.169235621451522, 16.099234285637387, 15.922398127379228, 17.677294363052997, 14.95078917489117, 16.687733819211317, 12.07423541371378, 13.998622733628093, 11.040020929378336, 14.767253527615674, 13.994503059793825, 15.415970905586066, 17.470866179346668, 12.520340933042696, 12.115334821869412, 12.779606396678945, 16.506828804403646, 17.7868140542151, 15.545274064056315, 18.440828465647655, 19.78478865081304, 11.243844034835536, 12.70242215858117, 15.312267526382378, 10.491393462973125, 14.58342305373378, 17.032172415855506, 19.108243509729697, 16.429261030910816, 13.967846578078042, 18.331724382050666, 19.798579410093886, 13.315772730343472, 16.861774768615092, 10.81984154295797, 18.77696715752181, 11.973214551059588, 12.512290854472617, 14.271515595528687, 18.52521693832493, 10.822567269756334, 10.654418041316985, 17.04869745102922, 18.31404956786972, 17.052949408454296, 18.810079035524794, 16.50389219844134, 17.907025134027712, 14.040637138262746, 11.48364013640305, 15.766947103953708, 14.347134347303193, 16.504906631709275, 10.188982504932167, 18.525558786960715, 18.908996767624487, 18.718622150851324, 15.377346681098016, 17.71460357914292, 16.96240452321024, 13.186885766525936, 11.115749088558806, 12.157330260694925, 17.328056936538687, 17.705793261717147, 16.637133632456393, 12.256076526430073, 15.112694233678955, 10.77950417448834, 18.649287898094787, 14.973710878903669, 15.010779378131348, 14.763046367152626, 15.038367524391589, 15.745168554424712, 15.131390183500514, 12.983116192834323, 16.91089474127847, 17.80080559203478, 15.116667289271675, 14.216910532120899, 13.471229386312793, 12.314767050197787, 14.749330903842424, 11.517449144408788, 11.657827858070677, 13.969107728595736, 10.152482968492034, 13.525771001979686, 15.902866351900226, 14.006096634584296], "expected": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/runner.py new file mode 100644 index 000000000000..b1744111ade9 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/runner.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# +# @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. + +"""Generate fixtures.""" + +import os +import json +import numpy as np +from scipy.stats import planck + +# Get the file path: +FILE = os.path.realpath(__file__) + +# Extract the directory in which this file resides: +DIR = os.path.dirname(FILE) + + +def gen(r, lam, name): + """ + Generate fixture data and write to file. + + # Arguments + + * `r`: input values. + * `lam`: shape parameter. + * `name::str`: output filename. + + # Examples + + ```python + python> r = np.random.rand(1000) + python> lam = np.random.rand(1000) + python> gen(r, lam, "data.json") + ``` + """ + # Compute quantile values: + z = np.array(planck.ppf(r, lam)) + + # Store data to be written to file as a dictionary: + data = { + "r": r.tolist(), + "lambda": lam.tolist(), + "expected": z.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) + + # Include trailing newline: + with open(filepath, "a", encoding='utf-8') as outfile: + outfile.write("\n") + + +def main(): + """Generate fixture data.""" + # Large shape parameter: + r = np.random.rand(1000) + lam = (np.random.rand(1000) * 10.0) + 10.0 + gen(r, lam, "large_lambda.json") + + # Small shape parameter: + r = np.random.rand(1000) + lam = np.random.rand(1000) * 0.5 + gen(r, lam, "small_lambda.json") + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/small_lambda.json b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/small_lambda.json new file mode 100644 index 000000000000..cbf983cd1c69 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/fixtures/python/small_lambda.json @@ -0,0 +1 @@ +{"r": [0.7462536237075819, 0.19432916923683086, 0.9630896747513285, 0.9082820305873366, 0.5282922574879091, 0.14382341173708202, 0.7898545264867911, 0.4088406552563817, 0.2941938866424547, 0.5486243307494847, 0.5427570160330144, 0.7070990522090317, 0.9434102780588776, 0.5538701110477441, 0.7339479403465565, 0.5471307155110778, 0.386214741962729, 0.7668556894704668, 0.7421989078739687, 0.10181961950873164, 0.2809096285055014, 0.6802221511354455, 0.300503392455469, 0.6433984117926028, 0.164024359024181, 0.896690778957723, 0.0046375828677400754, 0.7423324055069999, 0.8822492091541738, 0.5813129672399421, 0.257389449971518, 0.9338678037646482, 0.6400011500037533, 0.5873201217038521, 0.7661047329356491, 0.8461014139378851, 0.44435285474017816, 0.3170737964981336, 0.7780747746649465, 0.377234852341668, 0.8327000787840414, 0.9501267429125752, 0.8126531900663412, 0.1348344803453606, 0.2950853652070512, 0.4900859963314078, 0.15825830946682573, 0.9652914115533768, 0.6529275910349998, 0.8003856147222496, 0.5884738806500939, 0.5499714807569905, 0.6825643532219486, 0.48833792806735166, 0.7722928951414395, 0.9830979861221427, 0.052419303083640734, 0.4275532039283938, 0.46953946268025526, 0.15182997979456503, 0.09542712276590648, 0.23529390553892882, 0.12536861454600978, 0.8593066499386505, 0.884950465309422, 0.7641945522363833, 0.36186792576947624, 0.5681666880975698, 0.3233390508091972, 0.14683747451820273, 0.25727154654772866, 0.19463537153737442, 0.9540793215424902, 0.8624715029746807, 0.6146193380448067, 0.7974266473101017, 0.6757605646973008, 0.4954894749437212, 0.7349369962978834, 0.0801372342867972, 0.9555806227128675, 0.397437689061109, 0.7979468316040806, 0.006180240562026262, 0.08163402491713145, 0.5290430562865387, 0.18187597203823946, 0.4406894555434977, 0.07928880752917256, 0.9474082847029426, 0.07930581301484252, 0.060368192893259454, 0.22714331930455978, 0.694608941815124, 0.9550924587784622, 0.13102717926431195, 0.06272154730386315, 0.6578780925998203, 0.3309048853587301, 0.1602917444924502, 0.6648358734654557, 0.9914248787423542, 0.6511843375034468, 0.26931254912407376, 0.014476636241109175, 0.9643200909898764, 0.11238017426151847, 0.19246262004691017, 0.45923393765970255, 0.8141403084097588, 0.09860227855249015, 0.7304585097136922, 0.16909886299734112, 0.28272729587916645, 0.06168029630583105, 0.34282332008881355, 0.8590973144776887, 0.5162134966577315, 0.9208812159971411, 0.6105537839077709, 0.06937911419570775, 0.39300832796291396, 0.8661577099122314, 0.8020348218075041, 0.4072631086251802, 0.34294076834851683, 0.11046564744853915, 0.5729978879963458, 0.7150140991366559, 0.9498087866296151, 0.2774776590061869, 0.5317513823717794, 0.5586250530345177, 0.021666386030200657, 0.332447077620043, 0.4785178811255735, 0.9798553028611127, 0.062115493130244226, 0.9280015422372483, 0.9870855415533668, 0.5676075311756527, 0.09336440087979914, 0.021094878644738135, 0.7336726911277442, 0.7040964308145078, 0.7414800568070707, 0.24429067870378984, 0.48271518101103295, 0.29300045856374246, 0.9385092692428604, 0.9840202637899833, 0.985531095788565, 0.49984304344663755, 0.9229743635924785, 0.8275295208991112, 0.5143917532027202, 0.14081931574841133, 0.46160904539976344, 0.0695894342439024, 0.8202946788764967, 0.10159176572258855, 0.5955525655614761, 0.3472370303040342, 0.662251415833399, 0.8167000781782493, 0.8807287712529497, 0.5642452234549361, 0.2012584368596273, 0.7264412823925696, 0.42752116448100164, 0.040863444888951994, 0.4872647665017259, 0.6715292183696857, 0.088186122514882, 0.9570775468674882, 0.01933374159321788, 0.9820051566860873, 0.34770875360668263, 0.6050040042222696, 0.6226196518717376, 0.9439265764002412, 0.1014842350835301, 0.4936102091285438, 0.17987215091698316, 0.8843431173024847, 0.024849439870057166, 0.2653112825350187, 0.629902287129211, 0.3077820000024387, 0.9030452980233857, 0.6206370126564876, 0.6508535749040545, 0.7450898910718672, 0.03866439242331443, 0.8309905980815543, 0.045746086405404895, 0.6019709328964133, 0.8106945018132465, 0.9723774792278271, 0.10499301661488991, 0.9978113939436283, 0.417054539444926, 0.19382579647948583, 0.42947397292097056, 0.09123227732385963, 0.7150359002890956, 0.8351120971233259, 0.9646913819548718, 0.9417493612545678, 0.8262060569064599, 0.9624455166858126, 0.3492461325410825, 0.5412230288136919, 0.44587296594629455, 0.29782343689805446, 0.7143239439051977, 0.7491155737210482, 0.952375957297747, 0.7630368930061346, 0.7141547562144596, 0.21999684766000482, 0.9812291810448298, 0.5757367459966756, 0.8828587391321299, 0.49739073165825043, 0.46328294678326465, 0.008243717280739249, 0.4503376892135784, 0.11276512128756222, 0.11568146390110234, 0.7608707066303753, 0.6910418111974326, 0.9836445240475852, 0.9189913538371711, 0.5809188925636849, 0.44918670367502134, 0.7694847057699098, 0.9140505929431306, 0.15488004947959266, 0.29278946985693854, 0.39316183488945655, 0.6954870101815906, 0.3525299281983877, 0.4786749275125456, 0.20636149032227558, 0.8074421833564503, 0.6243258883883884, 0.8180506783350775, 0.10189143988078853, 0.28687050803479186, 0.6557244249886961, 0.685988881079356, 0.7968394636964611, 0.5636305591783725, 0.06122023572380597, 0.6551529178937662, 0.11953422739954056, 0.18637283450870645, 0.8922276134253156, 0.07951826557737829, 0.15595317497493755, 0.7309161412298387, 0.6337666976761736, 0.04781443144759856, 0.9196067411029119, 0.44603206212060187, 0.6213378661843145, 0.49806404319504216, 0.6522235820315478, 0.7865642767034247, 0.20995427809640654, 0.6263902592489927, 0.2834017980346699, 0.45214837662445295, 0.31298283474423483, 0.1834861334924872, 0.34399561169575577, 0.46232613259100885, 0.7696027478995552, 0.08904283839158533, 0.20076423666422294, 0.8981242483695608, 0.38629313506410357, 0.226275618022443, 0.22940051281692797, 0.6155747427344371, 0.770028142198512, 0.6377594084425595, 0.3132405791883992, 0.1661486170744092, 0.21881090676218418, 0.9640228810925372, 0.16303550619752682, 0.7219531428080788, 0.4474923392747967, 0.2153588310176744, 0.12329093179805206, 0.8078011516706292, 0.7462019229098604, 0.10602952593122672, 0.04168198616568475, 0.5575568087229702, 0.4264867407499783, 0.07273910182858145, 0.4499709543270086, 0.33695130549142327, 0.7230401489702846, 0.05660677928483138, 0.10878002082986449, 0.2873590520237945, 0.005831251134162163, 0.3698520329369124, 0.5402839016714037, 0.8703074600990652, 0.6249833729061999, 0.5000208887493702, 0.5762068646487658, 0.5216542310792623, 0.754667747273089, 0.7945091437531978, 0.6221263361546877, 0.06638190311604009, 0.6269827299442127, 0.6752263913994733, 0.6015238556750878, 0.22597714550943482, 0.8206088073747263, 0.714770737207965, 0.7581606315265247, 0.8490017820445915, 0.04781959801504132, 0.5803012478386674, 0.15269670364834032, 0.9591314398089852, 0.010525093807077113, 0.877089160282886, 0.28551219828845187, 0.9616935020538493, 0.005515070126426824, 0.7102307702402411, 0.5769661141701014, 0.09691228545522046, 0.05352163313349334, 0.5920932207728213, 0.6400277131305135, 0.1022521183077788, 0.8541035095945705, 0.15549774139605654, 0.027431922650263618, 0.9558718342311092, 0.435990595575265, 0.26593711329862324, 0.6418499940511095, 0.5840856341670048, 0.9507318294803769, 0.3944884764734772, 0.6837826332423507, 0.93098501018002, 0.32603499657109314, 0.4753681350457547, 0.15298088442105773, 0.9726663366814727, 0.39734704902133167, 0.9960342721075267, 0.41087520619638496, 0.07359566527637385, 0.26352098759920417, 0.7370239377306047, 0.44115374168181487, 0.41870445152756375, 0.9886394030073348, 0.18312395016035887, 0.8505656201135628, 0.8354174294334351, 0.947918249380341, 0.8655082365029378, 0.5251901618054121, 0.37060485561717904, 0.8338176936530468, 0.18299929240659474, 0.1946488678474796, 0.7618789884574255, 0.700952427576246, 0.3633944240907201, 0.11617921472953607, 0.6312375633233178, 0.9544515679343862, 0.38902569867545234, 0.05740113060980434, 0.8183750366664452, 0.9770198968283318, 0.6161983282959902, 0.01879426033389686, 0.26359338007884625, 0.04801045875891652, 0.6961492098148734, 0.21567422697406646, 0.8064308274117564, 0.052005907767367354, 0.16291653543899676, 0.6346658261970729, 0.33881722694778404, 0.31167518101689307, 0.818232106801728, 0.105533795921815, 0.23159106309518596, 0.8224091561682025, 0.065392999910459, 0.15896721240612743, 0.39081598404771156, 0.16250954434200804, 0.474905922255624, 0.5234454145768495, 0.9518629270546466, 0.3902008697638528, 0.34387840863994745, 0.1910306664263709, 0.25145599895715987, 0.5908715034040632, 0.6952187761615632, 0.1112475570979744, 0.610805191434731, 0.6324732094243539, 0.5672509883356794, 0.3432587168749879, 0.8959099577683934, 0.7147814246979688, 0.9141751436431295, 0.3249017093108708, 0.27891002217162, 0.5198126581604927, 0.3478263780050841, 0.5611302377617654, 0.6097937446923387, 0.7651978664523218, 0.8951296583606283, 0.8211043860120727, 0.6714218894060738, 0.7514855518460114, 0.855573648167156, 0.2592376939468203, 0.4425023841736254, 0.8026980439906591, 0.8586889682561757, 0.39304876577084624, 0.5775150301354603, 0.8801912845701618, 0.06873371176598353, 0.11648967674824773, 0.12697415730260986, 0.6479420141944563, 0.04484905983326448, 0.16161111515422466, 0.07943624146266193, 0.26641505942627763, 0.12161043124541182, 0.8896570546513326, 0.966235928596332, 0.8526014921419162, 0.4989176346980547, 0.4289189844868827, 0.4120515344844077, 0.5504083568131876, 0.5667420355908431, 0.47309599067861585, 0.43242557804621007, 0.018726265124853092, 0.48477419811523537, 0.6143730374675757, 0.7611060433521549, 0.3436671858582929, 0.8654996395001884, 0.22586737091801334, 0.8902279693435599, 0.8148976201137534, 0.4397654687144881, 0.418520904144852, 0.8145976146230842, 0.17176879430427217, 0.18553916347741306, 0.20193233409338696, 0.4217893448883999, 0.413153020065791, 0.2570874604715706, 0.7162844634708949, 0.10179891134151586, 0.6721931075860732, 0.7481140377564408, 0.5804188585222422, 0.8623874793611103, 0.4186670500300337, 0.29639532859953055, 0.4552769117279075, 0.9566431660727154, 0.3993128993111731, 0.1370292693358106, 0.20373728168949323, 0.16948146013052356, 0.2972324460794892, 0.31431869769986254, 0.9001709240361125, 0.5830985216958707, 0.8483198356011512, 0.1975170492360716, 0.7668331954587341, 0.14752597761526876, 0.9084218303157205, 0.10639742180705347, 0.751080760346818, 0.10802150158976054, 0.34396254842863716, 0.11728433871463118, 0.02743981670821949, 0.8385976113292468, 0.8932165405389684, 0.0916963948070284, 0.5206809245942315, 0.31064987647037345, 0.24016395487541797, 0.0032325109746772496, 0.9571244060066437, 0.009405789141974652, 0.6702657276185954, 0.9388034176588003, 0.7754683418179826, 0.44065100550516245, 0.6799636968067274, 0.9461275944009778, 0.8075398310807663, 0.6258892932759934, 0.4201999563323897, 0.43303998910849395, 0.9231316220328063, 0.31184352398471127, 0.06546573492329866, 0.4644496599395729, 0.6030462408714162, 0.2269719819963919, 0.5734112332114667, 0.09524902998104934, 0.8122257383775353, 0.34864318079612344, 0.2983694210389628, 0.9053505163237417, 0.5081285304409683, 0.6410781729877705, 0.9230989259590818, 0.45402542031542936, 0.22202496016818585, 0.30053924923522735, 0.6914914109134354, 0.7365802165277726, 0.628733974156353, 0.010619565934596231, 0.4918695824613817, 0.22282604355309032, 0.20234322527327286, 0.24178093540733736, 0.6672296047365912, 0.392170894284956, 0.558617069922958, 0.8286150981129196, 0.017104550625848924, 0.6808021612971272, 0.9118163207502276, 0.8581240830003032, 0.5931973063540582, 0.2230396055189342, 0.7051237424242617, 0.5821701490924572, 0.7530483083512897, 0.4917198783566794, 0.0353098948972862, 0.5937867703163382, 0.5725949207712834, 0.9784053524089333, 0.10883221240320828, 0.18037270442332143, 0.9158166226351836, 0.35847769691225373, 0.9350980538110688, 0.24766955800236357, 0.26982832614937546, 0.9167706581852683, 0.3732116894163158, 0.5519110408953829, 0.707093570155962, 0.8240660881894875, 0.8474080359554704, 0.8167499942924713, 0.7681008420574675, 0.49947722783084025, 0.05729441826071213, 0.78019263104173, 0.7986794133800038, 0.21087231665787354, 0.08114266359473432, 0.9426557254679003, 0.008795322204405709, 0.608246189399286, 0.8778125172930996, 0.6141084202111986, 0.8683479020339993, 0.5337016007008468, 0.5218635364077598, 0.4308043847397688, 0.018302175742226034, 0.3247002579040622, 0.5650947457562723, 0.9611097238947911, 0.22461172269365048, 0.19358835848719358, 0.24597565226905316, 0.9392804127167907, 0.5055704937046706, 0.7866536459371986, 0.8758686148198527, 0.6056036152780916, 0.3353679093394064, 0.6615190623118288, 0.5654215755239216, 0.7858408014212898, 0.06314436775959631, 0.8957376378293204, 0.767423759995931, 0.6482123255099259, 0.49290362729324877, 0.19817769483932046, 0.7514860540714816, 0.6235413739853978, 0.21783298257853134, 0.6651378917291094, 0.5038504057739213, 0.9804643103137889, 0.9363043813186295, 0.8575627047976353, 0.7913246012344379, 0.23693044450660206, 0.2375774314154936, 0.34530701992157065, 0.5609701141466588, 0.8293516916438731, 0.7232384041639206, 0.2835129612431434, 0.4208055672246148, 0.7759731797847448, 0.039922197332008524, 0.2262163604090649, 0.52480866407402, 0.7110664671821292, 0.16343976180385633, 0.34345738334041764, 0.6941286643489852, 0.9831385268253223, 0.9890329223060161, 0.04465233211604347, 0.28170830913814593, 0.0681922429436439, 0.7243131029234896, 0.5900572469182757, 0.244060435550572, 0.42964239805241966, 0.7644270313298076, 0.45307427873483874, 0.708129823429618, 0.31993792744292027, 0.5821149273261865, 0.5647489268857618, 0.4011583883903761, 0.00335881587331055, 0.7955414204768629, 0.8760205244286093, 0.5483713873692776, 0.8837493585449555, 0.5854156238761552, 0.04400103348578943, 0.6612814376945427, 0.3101208317042431, 0.5938010258239295, 0.03937333946281574, 0.8345423491688857, 0.22897938029748544, 0.8146954246731005, 0.037541497358362985, 0.6544189310100182, 0.044779106227311294, 0.5163429650807673, 0.40103002979168745, 0.9197289970459496, 0.13131601701295836, 0.9609190807196053, 0.054113381198521604, 0.9796987464812059, 0.8730304482381095, 0.9845905319396598, 0.6854352038876087, 0.017888888255248703, 0.8128053862561759, 0.3075882482723157, 0.5178335442544811, 0.2189716592214993, 0.9125955279919457, 0.8493459428530594, 0.3306199288270242, 0.21763383884519305, 0.4999058201704054, 0.5369080949535282, 0.5726716133746554, 0.8488811874390223, 0.4601853597611809, 0.9882181636937805, 0.9811088930484112, 0.4198451212452804, 0.9914868116318657, 0.07941937117050901, 0.9929819315207857, 0.49601258930760195, 0.6145707940943701, 0.962964603157714, 0.5771527642837295, 0.18890826214571776, 0.09582646341043655, 0.446315321936541, 0.7039371684125806, 0.7977493707006736, 0.08249882038019918, 0.5907396323885403, 0.6909061132656298, 0.6237500631459595, 0.5262045039431629, 0.7298133575451808, 0.42350926745855344, 0.22788628020462043, 0.8590188253899671, 0.26301651163388773, 0.08424672823410417, 0.9047783718286204, 0.22512346206435807, 0.7625385871862002, 0.10634465422182171, 0.774576648960009, 0.9942000835715769, 0.6042369567260276, 0.9096478099568478, 0.676233790752557, 0.6944879414761341, 0.851184020301292, 0.7113236333639211, 0.15707148726039388, 0.4449192847158383, 0.285231192131702, 0.9356768308341203, 0.3545057078140167, 0.9779837032989301, 0.9046558938970213, 0.6225507484368603, 0.0935442636551096, 0.8204206838009603, 0.9365699604639467, 0.31170418936641275, 0.34233241841272755, 0.5110984891019759, 0.2088708133328736, 0.8477100031978516, 0.1343941024423002, 0.6407557071787545, 0.10289178549278244, 0.6166563713039974, 0.024563634756903818, 0.6869606784461667, 0.0628613851431502, 0.8959611279388019, 0.264737742183747, 0.14775398009949592, 0.8490006041571015, 0.15418775429740972, 0.5857366212014882, 0.25541824753647835, 0.9758881076088175, 0.5895554408504758, 0.7893601106084638, 0.35179178642244613, 0.6617575482888283, 0.501126282773861, 0.7910829527710618, 0.34881288587722903, 0.9438002515214072, 0.39137622362790225, 0.9328157822607316, 0.04820622462376811, 0.933085728389283, 0.14031585100274313, 0.28512448106466504, 0.27040096155849513, 0.7330431479658515, 0.5991691767560401, 0.655831998037911, 0.39793599534755664, 0.9456784565477588, 0.041975562288774415, 0.015458380406756622, 0.029214222895026842, 0.17815744526088018, 0.21564450459638118, 0.5804239629011166, 0.07649252231972137, 0.41744495969468787, 0.13890414107465232, 0.010515513659167475, 0.1733723132627265, 0.6140014935757089, 0.4073094433879004, 0.7241051485315656, 0.8670361197099143, 0.7303231918896281, 0.9754670005581184, 0.9108732941708285, 0.20804351528780096, 0.377959108613517, 0.30373752774057106, 0.7503253395227845, 0.4431686786291562, 0.7295636846911393, 0.3458209308367759, 0.9990102102833864, 0.023816777230453945, 0.4121576512512656, 0.017540208949308744, 0.10748607625045559, 0.6764785976915529, 0.5683817599326257, 0.6432465633879865, 0.697233172830048, 0.029691477042522285, 0.19360779835675357, 0.008842789932465678, 0.6109799968094064, 0.8501598585129023, 0.3727522749898796, 0.7856931214676317, 0.6328470240080772, 0.22695075671954967, 0.7556082070752209, 0.4920386836188866, 0.6485614832588317, 0.17257271095160798, 0.7665041852646957, 0.6712006063329234, 0.7933801191676186, 0.8379365364165843, 0.5658089789208417, 0.4824607080989701, 0.21461901338982503, 0.2538716641675771, 0.37807563346238315, 0.1482014045156016, 0.11944680493685267, 0.5374606673784603, 0.5575866828192043, 0.35208962899234086, 0.6429204442934353, 0.5800496476125405, 0.24477126387835957, 0.9060155543395465, 0.6457455327883665, 0.46300684969673256, 0.8030568898084001, 0.008561096234795285, 0.4800370060565282, 0.9063691378769559, 0.6790170987332369, 0.9984540808667304, 0.24507911336793153, 0.5436717539084625, 0.9445585357807141, 0.8147145591029148, 0.636287417443421, 0.04719521623512368, 0.2936143280714334, 0.5809031658185868, 0.06406084822131497, 0.7010203251635366, 0.9985421293023831, 0.6807064122318754, 0.050686919209465775, 0.2778627834164791, 0.6136524973509422, 0.5351834760477097, 0.8855502018639503, 0.33578801418091575, 0.9812173447383147, 0.7791240899433652, 0.7493911123605596, 0.9603697125595835, 0.13185193221350644, 0.4298173391331782, 0.5065733056192903, 0.6031024959880005, 0.5136153454453769, 0.06767547870292445, 0.1329883138421104, 0.11156521727887025, 0.08968736594816507, 0.8045381041491119, 0.8213636301367575, 0.8591961628124916, 0.5553968278390694, 0.0936251605831635, 0.2483367698176847, 0.8974856055352869, 0.6861750951662099, 0.9502539959877101, 0.35076562603422945, 0.38750138460394556, 0.8725630819199787, 0.8736914857433836, 0.48621035433340665, 0.49096823755657637, 0.44323646974974207, 0.7833386251582365, 0.6977679776810295, 0.5241037703719598, 0.06838473716423477, 0.42838637992186135, 0.5500262542848259, 0.601779090377618, 0.9902408856747604, 0.9222671595038143, 0.36855920298872635, 0.01187700195514707, 0.8306970679693717, 0.233487725472859, 0.21790041504184743, 0.846178054212103, 0.5922768528445205, 0.13255998110606926, 0.11327267857012757, 0.09692502202565112, 0.747747703482499, 0.34399997963405193, 0.4817678040709821, 0.8058176426112745, 0.38097798025804497, 0.3686153385414239, 0.7676484088221466, 0.4530194710189732, 0.052755077515742155, 0.31536912741330014, 0.42362035448617474, 0.7245411545234157, 0.9213705851534426, 0.5424612759769876, 0.7177242415498644, 0.6847078452962764, 0.7058384862866343, 0.3316567964003375, 0.476895621954468, 0.09001314427299345, 0.9188385431970276, 0.4139792550560022, 0.8050015449354061, 0.08932122552465804, 0.6576678199668323, 0.9495175629703048, 0.13558543940947843, 0.8176739523055885, 0.8012330448041369, 0.3444159075914094, 0.21852997546016595, 0.05572897576528735, 0.10374744361491994, 0.6664250934626548, 0.4603137446257535, 0.03304460199906445, 0.08378217590054748, 0.6507256446175618, 0.9285773150747385, 0.3918135432587506, 0.09701791413645255, 0.6471185031334411, 0.357525306767038, 0.8215957020477335, 0.6454705881041165, 0.15252639949026126, 0.5367645058872053, 0.8154563076581075, 0.9237435173910441, 0.9269594106729153, 0.7931684284076841, 0.3294922742685553, 0.2707000387450459, 0.9937069354588218, 0.3720729206754836, 0.1449065203876383, 0.46670954350070915, 0.9030729252148894, 0.5540468226905289, 0.334481945528898, 0.200466037145153, 0.09043350437490527], "lambda": [0.11869274299832627, 0.03303683027198856, 0.26229621460008534, 0.33149876682771806, 0.21232183235198615, 0.3079694951928432, 0.43357727762424547, 0.2622216702571413, 0.29776806386742005, 0.44754691469645375, 0.07024738146818721, 0.4221389190663488, 0.09020483306317095, 0.08761695536826741, 0.12865024590236718, 0.23804304428729933, 0.24902210128488067, 0.47440453916403913, 0.3926027273466486, 0.15512427400983153, 0.25383213990014647, 0.005588800168093766, 0.16851142170689726, 0.4658398787372138, 0.10561764912082772, 0.287997001081781, 0.34792842406200364, 0.19475988475111972, 0.2965000868511411, 0.44533439427146093, 0.4716257091900384, 0.2017118921429415, 0.031316057124483154, 0.3969901784289555, 0.3763507017229067, 0.19479599135558867, 0.02771740842458531, 0.16487360669074058, 0.12572240755589587, 0.1886242182531897, 0.0032380179236096707, 0.18079081827849575, 0.04792903102717827, 0.008056000993033274, 0.1457155657148827, 0.2368568154041762, 0.09711776591567545, 0.12114408024821127, 0.1909373770784974, 0.37649232637479546, 0.016356914161907876, 0.2660549918646877, 0.15963692888115333, 0.41738216484492496, 0.025642458090935183, 0.061609169750482196, 0.043700114107848465, 0.2855087684421282, 0.10317740580712947, 0.06492650520434173, 0.1299961419716757, 0.3702353860989719, 0.40445145389347265, 0.3875845848064458, 0.055836270791726705, 0.047443582216531555, 0.14136515253080773, 0.16206556055647353, 0.46472974411571627, 0.4331730510514954, 0.32057680418606255, 0.16485989036579585, 0.048308839094685974, 0.4933678347254432, 0.3535178200561204, 0.04911428097017645, 0.16727642934788828, 0.4029520176892069, 0.15763996252527362, 0.13975098291367566, 0.2622914814001569, 0.11150172601281616, 0.1387885802690943, 0.24591369244733607, 0.24107860115252994, 0.3292577681799555, 0.052098221921319354, 0.15322837610454593, 0.4783583496569019, 0.009475808068444724, 0.3139663782164335, 0.321549770499793, 0.05464894233489642, 0.3807094099687474, 0.16086805190760012, 0.41116978394631937, 0.31645183675389615, 0.13453465324603003, 0.40529797470419343, 0.2272843971927599, 0.2923780602635624, 0.46251734821340623, 0.1968923018568483, 0.3043045105041668, 0.024453988201632193, 0.12897006040306158, 0.30473344362832916, 0.011181182622690966, 0.45206901020804974, 0.002780708591940906, 0.13605284222562225, 0.19483039219193415, 0.46458163882577974, 0.49447222075852065, 0.3847459932735712, 0.40673969754014483, 0.0652091784352753, 0.14453692315170652, 0.3889939180470314, 0.23780578135158897, 0.09300970374707784, 0.47341096015250356, 0.30014579196605107, 0.38471904946590135, 0.27109047224808946, 0.4893076871854219, 0.24283523473047086, 0.04256328263688225, 0.1444382213667012, 0.4197330448494505, 0.117310661377511, 0.1241484368489576, 0.1986025497043633, 0.15386387181067585, 0.4491624884893472, 0.4962472157919883, 0.10647384980262259, 0.08513030967465568, 0.18855975998448438, 0.07103748827290057, 0.48284378589214083, 0.23802349696769648, 0.382547446043097, 0.13808255736412028, 0.2807515700407935, 0.3880499328176819, 0.49232616608349994, 0.14077248081654536, 0.29690001897700674, 0.2001797405334712, 0.40731855804054484, 0.05941274765377047, 0.3297786201997955, 0.17119610018520887, 0.29237841066717185, 0.4202985585830734, 0.01547430906497188, 0.4405501306352142, 0.1825866775183082, 0.30874182809960077, 0.39802084339893956, 0.4873864158373952, 0.4113987280347975, 0.19214537615628263, 0.1557573388018908, 0.11485247819449745, 0.27105564478250527, 0.0738396837170594, 0.21162500444047294, 0.11411873033879205, 0.2560956425411427, 0.33044173740612415, 0.47479994827246436, 0.20028210071131464, 0.43323940113403214, 0.14291651217820905, 0.05394207292707903, 0.3618274441250588, 0.2885066955368776, 0.49287533828389646, 0.1328903758604037, 0.28328045971230814, 0.2890538055970838, 0.3225577805921107, 0.035984585197788355, 0.284461423279504, 0.31541749590281143, 0.3278521409249076, 0.2311764319784808, 0.4650230746860323, 0.23454207151725576, 0.2187504127285907, 0.2538267841791192, 0.16578182185678186, 0.26271062433454584, 0.3372034215111329, 0.31316736949444424, 0.23520553500172764, 0.253390994481125, 0.11044566444260395, 0.20565949533007627, 0.09872114027674517, 0.4494066520263414, 0.28634296990609454, 0.1172041436972091, 0.2608472076504798, 0.35269814616899303, 0.17679396922542412, 0.12594378891313152, 0.17673810578217564, 0.006920568285572415, 0.3458661743527866, 0.37025471251835745, 0.3719841115714065, 0.2096951063583657, 0.0765654277080805, 0.315821013077792, 0.3595236240989997, 0.026362270190624093, 0.42946152643262303, 0.4039821726219868, 0.18293081798986693, 0.26397014504882205, 0.36949351229852717, 0.1178502437132194, 0.2892780829037436, 0.43971042445171943, 0.2524227951985203, 0.0011765006108048759, 0.44052029734709613, 0.38234931072211875, 0.4089626647130729, 0.3484684845070229, 0.09974474765478963, 0.36993362758864995, 0.3062155245525679, 0.44163418428022705, 0.11504360506402123, 0.07586446033322297, 0.21277401787574862, 0.4345300300073662, 0.10857463520784971, 0.31962116587614087, 0.4067739906318806, 0.13699832794927985, 0.44910925224320797, 0.35841376972774636, 0.3763540302573808, 0.0009829890607275238, 0.3992727054887829, 0.10181869148632366, 0.4614844948398094, 0.23636163763758805, 0.0704478392863283, 0.48222325682456624, 0.13920880887797948, 0.12213156558983423, 0.007430130233381682, 0.38630236376956917, 0.009568902172457816, 0.15680839714707667, 0.2307931421127794, 0.17438976884261354, 0.3829249077457571, 0.4453925509864058, 0.05759206643791598, 0.2413159873935592, 0.17039528972375978, 0.17371440265452642, 0.13304510079441756, 0.1352709265962132, 0.1072012731982454, 0.04199807266113964, 0.3208645079469934, 0.4019699561008691, 0.47622799820902734, 0.2431798603751933, 0.41109301506950807, 0.275757017916253, 0.0857218366709055, 0.014558167331628569, 0.22686186593626761, 0.15580762207990978, 0.3988995911552295, 0.3569238932248966, 0.03414080937219843, 0.23028472429906627, 0.0254130781544043, 0.4609501756856843, 0.25688065635891183, 0.3166158649340668, 0.11842556896795126, 0.23837355411870065, 0.10835016667619424, 0.20798019941273543, 0.1324420696074916, 0.2736706400472529, 0.0031870349255914143, 0.09741962669839666, 0.41884591831841284, 0.2404273966619654, 0.2941903454751402, 0.36532912875602397, 0.2608384659244371, 0.21277893414091364, 0.03463225671401893, 0.08561894411128995, 0.2729694631846692, 0.1774684789436185, 0.26498758504224595, 0.4126738858171855, 0.07568488285658387, 0.41912479453700147, 0.2910774023943863, 0.13414883968479824, 0.11378851481700869, 0.10517600420401557, 0.0843036001731966, 0.17032229834479962, 0.4977571998154127, 0.4192608987367899, 0.2928901347416309, 0.2154740702813709, 0.34468861968092085, 0.18245712490145904, 0.43917167505553284, 0.15048568162435766, 0.13560000354760815, 0.449983026738537, 0.4204638126292619, 0.2402710497175809, 0.05278338993694992, 0.39140903393931353, 0.3722506391465984, 0.25977006460913793, 0.39693177927606593, 0.2159339381225206, 0.41870235233921876, 0.05743638112620697, 0.38563229277665995, 0.20206424549032587, 0.2724517041121083, 0.4727530640458707, 0.290029117191416, 0.45393597575969574, 0.4951211861067562, 0.003482624627416109, 0.2324878142254374, 0.3802185415764291, 0.03852203543248384, 0.06676677407248821, 0.3878388360335989, 0.18097492676025778, 0.31540308625683217, 0.0436085244815258, 0.06183352047590579, 0.12803264477456117, 0.07763858657457118, 0.49726901364672405, 0.1996063981653584, 0.2667551328806721, 0.26357271117370534, 0.30048020208001625, 0.30438573471984015, 0.22210722437399927, 0.23655100379037003, 0.3509314062104276, 0.3119484507221995, 0.13978464825187809, 0.1691336763007127, 0.09483046140053686, 0.4840393753750629, 0.4147387525293193, 0.15575974606808274, 0.45908983068548737, 0.25527563413814336, 0.235278158777803, 0.00772897631243985, 0.4797036856842717, 0.4969506359416256, 0.44566874420039915, 0.2554308856736498, 0.4499203166593572, 0.34791017841170363, 0.34081288797998655, 0.3388942440900641, 0.12777258402819391, 0.059974628244428174, 0.31774409652624197, 0.021947146219099933, 0.2462747579179328, 0.19633297682267042, 0.0010248014117807402, 0.20439927635360333, 0.3820062256673566, 0.26419841862393867, 0.30807290551661665, 0.411609244815743, 0.42047767929085106, 0.4588267086457916, 0.47071896460244156, 0.41712692935721785, 0.25090024267029387, 0.3873201076805338, 0.1555217485202785, 0.0829157968090864, 0.35986027395950554, 0.28808844445666587, 0.47249414266391965, 0.4279264517894696, 0.2521103865018791, 0.34709324433398314, 0.40005816900446955, 0.37823960528783246, 0.12180079734930871, 0.18841881633083923, 0.3562651592533876, 0.41663550016706397, 0.3363051032406924, 0.08932140137450884, 0.2619181781176531, 0.4922899804013546, 0.03366073234095035, 0.38304091253712247, 0.029645138587289066, 0.3717315523895633, 0.022346636801140518, 0.24861216197221053, 0.09268388824927742, 0.25369153104160136, 0.4670284631809803, 0.20366855466796602, 0.123879568320445, 0.43767188068441826, 0.12873187215010423, 0.27098384936372544, 0.32649509271657345, 0.20010005960266958, 0.46499842175648665, 0.28822124312206954, 0.36865766830045715, 0.01386903323984029, 0.02546854911109292, 0.10155437835006659, 0.20490826872830403, 0.010972642303334612, 0.01882167744001023, 0.11387925898710205, 0.20163255116183582, 0.34538538455728507, 0.08283890270689703, 0.48195944776860306, 0.06747104495066147, 0.28762357163886687, 0.39567714671059634, 0.06739812121673694, 0.133880226705952, 0.3776691777096679, 0.28016991318071277, 0.13683412417363272, 0.32966288807685573, 0.06539658354951305, 0.12514218524271692, 0.35607501926223245, 0.36326666572537764, 0.33531174565375543, 0.33947036045391377, 0.039219852605118344, 7.157337058544266e-05, 0.03373715984172354, 0.4339371058275222, 0.48100071650878073, 0.3256431924133684, 0.22464447835445855, 0.3399781741132577, 0.08623507887637161, 0.33399611315353545, 0.29609156246892754, 0.4570130181645371, 0.04792194848027348, 0.038768517647558676, 0.24845975098106793, 0.39834548657782065, 0.4480963094683331, 0.42283510629165544, 0.29893595524947586, 0.4231620308914067, 0.2845494538743408, 0.1679208394820047, 0.2507206931994759, 0.30196903850135565, 0.3911288626890546, 0.06510410780649944, 0.10872658975198507, 0.029175953852372982, 0.06832082327641353, 0.39698839454034324, 0.19301864199559488, 0.1648867721791612, 0.23405425457081114, 0.43554628841086884, 0.1381032233714371, 0.03626344091144801, 0.11816458456740803, 0.03693373488994883, 0.4748445060032335, 0.35826422032971705, 0.3541621186262993, 0.49964591591336477, 0.4338492747425835, 0.46311728780130496, 0.06601740428309644, 0.16714622689477326, 0.34586923264533204, 0.4164099365608611, 0.26752967392453614, 0.1273520922567774, 0.2942251351882922, 0.28203595904961876, 0.012861176524801399, 0.3999918698526061, 0.216041052246692, 0.16954381003982977, 0.06312774190404702, 0.04112491387295664, 0.1931362534198856, 0.0784399882240509, 0.39515351666319104, 0.21700776009374811, 0.2948180353927339, 0.15402675915358366, 0.07117967680579468, 0.025339119712656788, 0.031121986070341445, 0.2716276513926849, 0.17094252101108764, 0.2899663549599285, 0.49768823375387633, 0.4672534128783847, 0.16026808267049647, 0.4627466085786978, 0.05452747686315795, 0.3262956478258967, 0.4771269154347661, 0.13715886354112017, 0.33262008029187706, 0.06831433814457, 0.43347883021675143, 0.06897432882277083, 0.12517245946793332, 0.26181409233190445, 0.19986635789850438, 0.4926954841066322, 0.21313521617191822, 0.28286990052337874, 0.21542941796125203, 0.14598770340325012, 0.2974298855851948, 0.06577424977713042, 0.49839682667128504, 0.3823347971268323, 0.16886865743906387, 0.12998845685949934, 0.3215602749788648, 0.36985172770320845, 0.20093662197437606, 0.4345925782349001, 0.421349843794975, 0.011920824454953405, 0.3040976607589384, 0.40938309999462164, 0.21377125634739114, 0.05516096455016317, 0.21387724976584732, 0.15449179103073757, 0.057482127977276753, 0.3247574043453502, 0.09582696914140232, 0.24441878829464703, 0.45741404154595217, 0.008292849418973569, 0.039669809723561156, 0.3736701070879061, 0.14522052091464266, 0.0034200269714206866, 0.4346726816388638, 0.33388526093671994, 0.15586086282588174, 0.4803585920182432, 0.2724300406600329, 0.4427191877675305, 0.13842947848602644, 0.06619451974719126, 0.24550958105504622, 0.38718123887899164, 0.2593587070084042, 0.46585751129459735, 0.36102499120449044, 0.35654574445957243, 0.09866396102414321, 0.24056090886514997, 0.4985887195636358, 0.22510076497070702, 0.1415104257643574, 0.35992012537665796, 0.3331765891687767, 0.36601055769184093, 0.020209168919625653, 0.3282769675660541, 0.39473318057750256, 0.10175852246296846, 0.29056171869124725, 0.3689477545976796, 0.15227157854698126, 0.4508284589847724, 0.4848518680940308, 0.48764181270791845, 0.20161236116021075, 0.0372518862447907, 0.13802424979747369, 0.08359244242561942, 0.11815073321180325, 0.4083228119124898, 0.49445453457696575, 0.3519872243413412, 0.39403313265728634, 0.32230825748701464, 0.41812745623222575, 0.2358478689657717, 0.2454050017169933, 0.3920742655024593, 0.048942597606496385, 0.3781234629292398, 0.22873477036365886, 0.32859187401172874, 0.010408336845101784, 0.3330546374077761, 0.2958343300881319, 0.02703572611457683, 0.0038885450454624326, 0.36429625023949985, 0.02244319568024966, 0.09355151759077368, 0.006954988969105846, 0.38129045290112606, 0.43057743756775857, 0.11132933762864194, 0.4482505665108088, 0.13929195202819256, 0.4736420043529702, 0.049487470549729906, 0.12591639461203763, 0.2911980003145704, 0.07076434291045713, 0.06026435050285561, 0.27441092162600833, 0.21865195664212067, 0.48295039559246294, 0.29947929003497553, 0.16691279229863742, 0.08873097365459603, 0.15199173586976056, 0.4181799309690651, 0.29127024912722504, 0.3987008474144783, 0.3378259481213086, 0.4222301486054217, 0.06409284671412652, 0.09940341228051713, 0.005248532166602982, 0.20239690544339084, 0.41314104853182376, 0.36143828556720975, 0.4251301435384012, 0.12455928344149458, 0.08256160763981679, 0.41283064224796046, 0.36803804376519683, 0.4080345613361484, 0.23098485581069617, 0.22612076231563571, 0.14381508092933443, 0.45543600639529, 0.28250850310798403, 0.28453867317269904, 0.15998107837497771, 0.3295301318485066, 0.493518633387603, 0.3221606966427171, 0.41796533528763447, 0.08907909974832179, 0.2582324869935567, 0.2001457166709879, 0.1709756062581061, 0.3436095786842655, 0.24361627864171947, 0.4816715996907824, 0.4967750270684401, 0.04954820338017568, 0.34310254784194644, 0.009839209218664935, 0.3068360891166182, 0.44379538486428893, 0.38012523241684115, 0.12626076578176343, 0.44435213045611066, 0.15599209863312374, 0.43572734039221117, 0.0801377599187677, 0.05366084259517945, 0.49020634357210957, 0.2538895201047088, 0.3825201674407459, 0.43228474215565726, 0.1890605572682557, 0.4033829203752873, 0.11625710298659958, 0.04497782870351097, 0.2551149963056197, 0.21190972660133162, 0.07796236822662717, 0.25375191194369306, 0.20119353125115996, 0.3637880175704598, 0.3255423282161364, 0.041233135914097385, 0.07388505348429814, 0.07207962564381909, 0.14636229024820152, 0.31660404388591973, 0.08326688315213354, 0.0704843953803096, 0.1666902281041875, 0.2927801559541405, 0.49477465029936185, 0.08334248934185562, 0.05828117420737672, 0.38072543558990984, 0.3784651640395225, 0.45196382670478313, 0.36676157155480243, 0.32272484636794735, 0.3887985442338071, 0.17050096067083814, 0.19209592067216869, 0.4591533464309152, 0.18052876679211988, 0.27428723942058153, 0.009706534711373616, 0.2629309791775029, 0.39575780559865087, 0.4560318870096285, 0.2188322818919759, 0.48506896593434046, 0.34116239124706993, 0.09690798106794496, 0.10559340103890452, 0.47453208722618034, 0.34503191943149686, 0.31289657707186547, 0.28092044971241836, 0.40480928007550193, 0.3924501825345857, 0.06500261444872402, 0.08236581883271687, 0.3378207837976913, 0.37224128318015665, 0.13491320001812046, 0.358589059750193, 0.4320294022468539, 0.2866839795750583, 0.09331427492688238, 0.18380848620602852, 0.0328564238717734, 0.24819430151599592, 0.1185889236119026, 0.4895762943981495, 0.011493220733647447, 0.45153849292729786, 0.12744107300526342, 0.3829334702534033, 0.23633162763311616, 0.38326228275719754, 0.44932977494924686, 0.3894886124637714, 0.03323453953515487, 0.01003300042630273, 0.34479489446132855, 0.1333067929911258, 0.07408430687186562, 0.07818901067107742, 0.10325860879721743, 0.46122724766710277, 0.3076197147182261, 0.24874655264856343, 0.21377032925116551, 0.16499186431854396, 0.24319045913569454, 0.4891479310920348, 0.30583871351935094, 0.20789349840985388, 0.39744095118313977, 0.04854803175466449, 0.33806436380706195, 0.04723106615341849, 0.17873198484177066, 0.44154110676648983, 0.09230673856219923, 0.38317699275312656, 0.22086763814192456, 0.17800014193230435, 0.13909126746505607, 0.061648750703262034, 0.1991565563069308, 0.09268104438782748, 0.06834640441743906, 0.37367962408410066, 0.16187978374664408, 0.1056392711140497, 0.4215798287087052, 0.1860622850149361, 0.48765844562290256, 0.3803440527463615, 0.05122190860983045, 0.2408112306693338, 0.14188537037411147, 0.3114262790274082, 0.30458028154493266, 0.4135087771036594, 0.21806541506001825, 0.17983384616824233, 0.4641139597289056, 0.1682319349093499, 0.17628487498832335, 0.019539465643411913, 0.20412690765591435, 0.48913402775586334, 0.35012109658318635, 0.43143185983479, 0.15276996734980747, 0.28758157482818686, 0.4171174643788504, 0.11765815968789611, 0.2560853322208503, 0.48357837954827565, 0.34714331338781523, 0.21857838127797963, 0.08126451863400713, 0.23152785982718854, 0.0013770746799243727, 0.4629003824149525, 0.03339461615623318, 0.08302273211338956, 0.014655526853111722, 0.3691859112450707, 0.08490373611458107, 0.27774962137845477, 0.4498659350608322, 0.4677924594470558, 0.04875329521878452, 0.09773678783621065, 0.496891547006969, 0.21911464988631996, 0.1243297060264737, 0.33420771146710343, 0.3463391639562473, 0.3490748974151434, 0.14098048035786453, 0.0850319004239013, 0.0952738715732509, 0.3795144032366342, 0.11607394676352528, 0.18761322168482775, 0.4601644632964441, 0.037338429973916065, 0.38879336890933236, 0.233884228404926, 0.17952556347060433, 0.08673669835462833, 0.24331910388992523, 0.04769202736559991, 0.006364373594645978, 0.2283782914970261, 0.43751799270696234, 0.15788662961373207, 0.023420568356262272, 0.14061280042682128, 0.051227239042442974, 0.21596087450415502, 0.0447780192783116, 0.04207963750123189, 0.19620841691344137, 0.4322974560649247, 0.18629037854619312, 0.04257814199198201, 0.3584065545962655, 0.21169204557012655, 0.4412078267375418, 0.3773947513702056, 0.3622855105465947, 0.287745357501777, 0.28235301726464135, 0.07718763863636241, 0.2824312405945318, 0.01149765149581744, 0.17325661474097376, 0.33979390035919244, 0.17175853192528528, 0.3188151067828781, 0.015405519970635662, 0.11244723538708196, 0.32419906686241984, 0.21092554205578556, 0.39306973830684383, 0.052656669164593384, 0.49405587960270136, 0.12492455813471798, 0.4973486606250149, 0.4469915989166607, 0.2725290908550184, 0.1294130105833003, 0.021189191940719998, 0.2345648377380991, 0.08248362775918716, 0.34741599364344955, 0.4600149952794051, 0.2127354291890105, 0.02224448741928986, 0.27384644401718866, 0.40497757995586425, 0.22866275196120667, 0.31167379745387375, 0.22444482239468033, 0.26627658857843917, 0.3701284200164505, 0.17995804020050304, 0.3083140410256097, 0.35382850242722025, 0.4928990291064823, 0.011006821420119717, 0.07216961337769395, 0.3290914774054746, 0.14451087895453812, 0.20680276160472594, 0.10774561258664966, 0.4409283392524962, 0.07560486934029209, 0.13239208082425374, 0.04698671716135566, 0.44949254386276083, 0.37072331308391765, 0.3823184691882801, 0.40237184472619875, 0.21956771597339708, 0.3801936148869511, 0.12040728292818281, 0.24799521438142513, 0.38279516062878655, 0.40171825788199284, 0.25026839514149424, 0.40126870033606754, 0.41973766404165, 0.3083999870763011, 0.4143048382112812, 0.14348027481619013, 0.037000385665188984, 0.4610760888774248, 0.3963678578892963, 0.22249594014859825, 0.022464460009485765, 0.47043362146660406, 0.0008925725442541221, 0.3644348722358255, 0.2692582883547171, 0.3013408677701271, 0.46781754939859443, 0.49071887997882974, 0.36771715459826876, 0.38625474557923306, 0.3705709866754393, 0.1993506115157394, 0.2081425580475324, 0.15078191129155627, 0.402875478529422, 0.3598768230154652, 0.3432418493954254, 0.15888072654854968, 0.4297017037767549, 0.43570895607747695, 0.11194432569424495, 0.024789451634363302, 0.06515441580042775, 0.05634555983527506, 0.043675643780008044, 0.32234356858552116, 0.36792766229383683, 0.10602691236942124, 0.42410530968172067, 0.4848920026227695, 0.05820648366105702], "expected": [11.0, 6.0, 12.0, 7.0, 3.0, 0.0, 3.0, 2.0, 1.0, 1.0, 11.0, 2.0, 31.0, 9.0, 10.0, 3.0, 1.0, 3.0, 3.0, 0.0, 1.0, 204.0, 2.0, 2.0, 1.0, 7.0, 0.0, 6.0, 7.0, 1.0, 0.0, 13.0, 32.0, 2.0, 3.0, 9.0, 21.0, 2.0, 11.0, 2.0, 552.0, 16.0, 34.0, 17.0, 2.0, 2.0, 1.0, 27.0, 5.0, 4.0, 54.0, 3.0, 7.0, 1.0, 57.0, 66.0, 1.0, 1.0, 6.0, 2.0, 0.0, 0.0, 0.0, 5.0, 38.0, 30.0, 3.0, 5.0, 0.0, 0.0, 0.0, 1.0, 63.0, 4.0, 2.0, 32.0, 6.0, 1.0, 8.0, 0.0, 11.0, 4.0, 11.0, 0.0, 0.0, 2.0, 3.0, 3.0, 0.0, 310.0, 0.0, 0.0, 4.0, 3.0, 19.0, 0.0, 0.0, 7.0, 0.0, 0.0, 3.0, 10.0, 5.0, 1.0, 0.0, 25.0, 0.0, 19.0, 1.0, 605.0, 0.0, 6.0, 0.0, 0.0, 0.0, 1.0, 30.0, 5.0, 6.0, 3.0, 0.0, 1.0, 6.0, 4.0, 1.0, 0.0, 0.0, 19.0, 8.0, 7.0, 2.0, 6.0, 4.0, 0.0, 0.0, 1.0, 36.0, 0.0, 13.0, 61.0, 1.0, 0.0, 0.0, 9.0, 4.0, 3.0, 0.0, 4.0, 1.0, 13.0, 10.0, 71.0, 2.0, 14.0, 6.0, 1.0, 9.0, 1.0, 0.0, 5.0, 0.0, 1.0, 1.0, 5.0, 10.0, 18.0, 3.0, 3.0, 6.0, 4.0, 0.0, 2.0, 2.0, 0.0, 7.0, 0.0, 74.0, 1.0, 3.0, 1.0, 21.0, 0.0, 2.0, 0.0, 59.0, 0.0, 0.0, 3.0, 1.0, 5.0, 4.0, 4.0, 5.0, 0.0, 6.0, 0.0, 2.0, 7.0, 14.0, 1.0, 29.0, 5.0, 0.0, 1.0, 0.0, 4.0, 5.0, 18.0, 22.0, 9.0, 474.0, 1.0, 2.0, 1.0, 1.0, 16.0, 4.0, 8.0, 54.0, 2.0, 0.0, 21.0, 3.0, 5.0, 5.0, 2.0, 0.0, 2.0, 101.0, 0.0, 3.0, 2.0, 11.0, 25.0, 2.0, 1.0, 3.0, 21.0, 2.0, 1.0, 1.0, 10.0, 1.0, 1.0, 1.0, 3.0, 2.0, 4.0, 109.0, 0.0, 10.0, 2.0, 6.0, 11.0, 0.0, 7.0, 1.0, 27.0, 5.0, 8.0, 1.0, 5.0, 5.0, 0.0, 5.0, 10.0, 4.0, 4.0, 6.0, 11.0, 1.0, 9.0, 7.0, 1.0, 0.0, 0.0, 1.0, 1.0, 5.0, 1.0, 15.0, 10.0, 3.0, 0.0, 0.0, 28.0, 6.0, 39.0, 0.0, 0.0, 0.0, 28.0, 0.0, 11.0, 2.0, 1.0, 0.0, 517.0, 14.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 11.0, 14.0, 0.0, 0.0, 1.0, 0.0, 6.0, 1.0, 7.0, 7.0, 6.0, 8.0, 8.0, 8.0, 3.0, 2.0, 0.0, 4.0, 3.0, 5.0, 0.0, 11.0, 9.0, 3.0, 4.0, 0.0, 16.0, 0.0, 8.0, 0.0, 5.0, 1.0, 7.0, 0.0, 3.0, 4.0, 0.0, 0.0, 3.0, 2.0, 0.0, 552.0, 0.0, 0.0, 81.0, 8.0, 0.0, 5.0, 2.0, 69.0, 8.0, 8.0, 34.0, 0.0, 3.0, 0.0, 13.0, 1.0, 18.0, 2.0, 0.0, 0.0, 4.0, 4.0, 3.0, 47.0, 0.0, 4.0, 11.0, 6.0, 7.0, 3.0, 59.0, 3.0, 0.0, 0.0, 5.0, 2.0, 1.0, 0.0, 2.0, 24.0, 8.0, 0.0, 77.0, 15.0, 4.0, 18.0, 1.0, 0.0, 4.0, 0.0, 3.0, 0.0, 0.0, 2.0, 0.0, 1.0, 4.0, 0.0, 3.0, 4.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 8.0, 4.0, 2.0, 0.0, 0.0, 2.0, 13.0, 0.0, 1.0, 29.0, 2.0, 14.0, 6.0, 56.0, 9.0, 4.0, 1.0, 1.0, 2.0, 6.0, 2.0, 11.0, 8.0, 5.0, 5.0, 2.0, 6.0, 0.0, 42.0, 63.0, 19.0, 2.0, 78.0, 112.0, 0.0, 0.0, 0.0, 12.0, 0.0, 2.0, 0.0, 0.0, 1.0, 16.0, 8.0, 6.0, 5.0, 1.0, 8.0, 6.0, 2.0, 1.0, 1.0, 0.0, 16.0, 13313.0, 42.0, 0.0, 4.0, 0.0, 9.0, 4.0, 6.0, 1.0, 5.0, 0.0, 4.0, 5.0, 2.0, 1.0, 0.0, 2.0, 0.0, 2.0, 4.0, 5.0, 7.0, 1.0, 0.0, 9.0, 28.0, 17.0, 2.0, 0.0, 0.0, 2.0, 1.0, 5.0, 6.0, 52.0, 1.0, 39.0, 0.0, 6.0, 0.0, 2.0, 0.0, 0.0, 1.0, 0.0, 5.0, 5.0, 0.0, 5.0, 1.0, 0.0, 0.0, 7.0, 0.0, 6.0, 44.0, 36.0, 3.0, 14.0, 7.0, 7.0, 3.0, 3.0, 7.0, 101.0, 12.0, 0.0, 3.0, 3.0, 0.0, 1.0, 0.0, 3.0, 7.0, 1.0, 4.0, 5.0, 3.0, 37.0, 1.0, 3.0, 2.0, 4.0, 6.0, 2.0, 0.0, 2.0, 1.0, 1.0, 0.0, 16.0, 0.0, 2.0, 10.0, 0.0, 3.0, 6.0, 9.0, 2.0, 0.0, 102.0, 2.0, 3.0, 3.0, 0.0, 4.0, 5.0, 66.0, 0.0, 2.0, 10.0, 0.0, 329.0, 7.0, 0.0, 17.0, 136.0, 1.0, 3.0, 11.0, 3.0, 6.0, 3.0, 4.0, 0.0, 6.0, 4.0, 0.0, 0.0, 7.0, 0.0, 9.0, 8.0, 1.0, 9.0, 5.0, 2.0, 1.0, 0.0, 19.0, 2.0, 8.0, 2.0, 0.0, 0.0, 18.0, 1.0, 3.0, 4.0, 4.0, 10.0, 7.0, 9.0, 13.0, 0.0, 4.0, 4.0, 2.0, 2.0, 0.0, 5.0, 3.0, 0.0, 22.0, 1.0, 17.0, 8.0, 187.0, 4.0, 0.0, 10.0, 108.0, 2.0, 78.0, 13.0, 47.0, 1.0, 3.0, 0.0, 0.0, 5.0, 2.0, 3.0, 3.0, 4.0, 57.0, 74.0, 0.0, 1.0, 0.0, 4.0, 5.0, 3.0, 3.0, 3.0, 2.0, 3.0, 1.0, 2.0, 12.0, 5.0, 0.0, 7.0, 5.0, 2.0, 5.0, 7.0, 0.0, 2.0, 1.0, 2.0, 0.0, 7.0, 1.0, 3.0, 0.0, 3.0, 0.0, 2.0, 1.0, 7.0, 0.0, 36.0, 0.0, 19.0, 12.0, 12.0, 4.0, 0.0, 3.0, 7.0, 2.0, 25.0, 7.0, 4.0, 1.0, 1.0, 1.0, 4.0, 1.0, 23.0, 11.0, 9.0, 15.0, 1.0, 11.0, 0.0, 12.0, 5.0, 21.0, 12.0, 4.0, 2.0, 0.0, 2.0, 3.0, 4.0, 2.0, 12.0, 16.0, 6.0, 2.0, 15.0, 7.0, 1.0, 6.0, 0.0, 1.0, 40.0, 0.0, 3.0, 0.0, 4.0, 15.0, 2.0, 14.0, 5.0, 2.0, 10.0, 4.0, 17.0, 2.0, 0.0, 6.0, 2.0, 7.0, 6.0, 10.0, 0.0, 3.0, 7.0, 1.0, 1.0, 1.0, 0.0, 28.0, 1.0, 3.0, 0.0, 7.0, 0.0, 2.0, 0.0, 24.0, 1.0, 4.0, 7.0, 1.0, 1.0, 25.0, 8.0, 6.0, 4.0, 1.0, 2.0, 1.0, 4.0, 12.0, 286.0, 1.0, 20.0, 0.0, 34.0, 1.0, 0.0, 1.0, 5.0, 4.0, 6.0, 2.0, 5.0, 0.0, 0.0, 0.0, 4.0, 0.0, 18.0, 0.0, 1.0, 1.0, 0.0, 0.0, 5.0, 3.0, 20.0, 10.0, 14.0, 54.0, 6.0, 1.0, 4.0, 0.0, 7.0, 1.0, 3.0, 8.0, 28.0, 0.0, 1.0, 0.0, 0.0, 5.0, 4.0, 2.0, 7.0, 0.0, 11.0, 0.0, 1.0, 5.0, 1.0, 10.0, 3.0, 0.0, 11.0, 2.0, 2.0, 0.0, 6.0, 13.0, 6.0, 1321.0, 1.0, 19.0, 2.0, 19.0, 1.0, 1.0, 0.0, 1.0, 1.0, 8.0, 10.0, 1.0, 1.0, 19.0, 3.0, 1.0, 4.0, 0.0, 7.0, 24.0, 2.0, 55.0, 1.0, 1.0, 77.0, 4.0, 4.0, 0.0, 4.0, 3.0, 1.0, 189.0, 28.0, 2.0, 0.0, 13.0, 6.0, 14.0, 10.0, 9.0, 94.0, 7.0, 3.0, 17.0, 3.0, 1.0, 3.0, 2.0, 1.0, 0.0, 0.0, 0.0, 1.0, 5.0, 149.0, 11.0, 2.0, 0.0, 0.0, 147.0, 10.0, 9.0, 2.0, 1.0, 39.0, 4.0, 5.0, 1.0, 1.0, 5.0, 9.0, 35.0, 0.0, 6.0, 2.0, 2.0, 21.0, 114.0, 1.0, 0.0, 7.0, 0.0, 1.0, 7.0, 2.0, 0.0, 0.0, 0.0, 2.0, 38.0, 9.0, 4.0, 3.0, 2.0, 13.0, 1.0, 0.0, 2.0, 11.0, 2.0, 6.0, 2.0, 3.0, 5.0, 3.0, 3.0, 2.0, 0.0, 6.0, 2.0, 4.0, 0.0, 3.0, 7.0, 1.0, 45.0, 3.0, 1.0, 1.0, 2.0, 0.0, 1230.0, 1.0, 0.0, 0.0, 2.0, 5.0, 1.0, 0.0, 2.0, 2.0, 8.0, 6.0, 0.0, 2.0, 4.0, 16.0, 6.0, 3.0, 3.0, 12.0, 77.0, 8.0, 3.0, 1.0, 6.0, 7.0, 0.0, 0.0, 1.0]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.factory.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.factory.js new file mode 100644 index 000000000000..c2d4f8ddfa2b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.factory.js @@ -0,0 +1,148 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var factory = require( './../lib/factory.js' ); + + +// FIXTURES // + +var smallLambda = require( './fixtures/python/small_lambda.json' ); +var largeLambda = require( './fixtures/python/large_lambda.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 quantile = factory( 1.0 ); + t.equal( typeof quantile, 'function', 'returns a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the returned function returns `NaN`', function test( t ) { + var quantile; + var y; + + quantile = factory( 1.0 ); + y = quantile( NaN ); + t.equal( isnan( y ), true, 'returns expected value' ); + + quantile = factory( NaN ); + y = quantile( 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a valid shape parameter `lambda`, the function returns a function which returns `NaN` when provided a number outside `[0,1]` for `p`', function test( t ) { + var quantile; + var y; + + quantile = factory( 0.8 ); + y = quantile( -0.1 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = quantile( 1.1 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a valid shape parameter `lambda`, the function returns a function which returns `+Infinity` when provided `1.0` for `p`', function test( t ) { + var quantile; + var y; + + quantile = factory( 0.5 ); + y = quantile( 1.0 ); + t.equal( y, PINF, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a shape parameter `lambda` which is nonpositive, the returned function always returns `NaN`', function test( t ) { + var quantile; + var y; + + quantile = factory( -1.0 ); + + y = quantile( 0.4 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = quantile( 0.8 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + quantile = factory( 0.0 ); + + y = quantile( 0.4 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = quantile( 0.8 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the returned function evaluates the quantile for `p` given small parameter `lambda`', function test( t ) { + var quantile; + var expected; + var lambda; + var p; + var y; + var i; + + expected = smallLambda.expected; + p = smallLambda.r; + lambda = smallLambda.lambda; + for ( i = 0; i < p.length; i++ ) { + quantile = factory( lambda[ i ] ); + y = quantile( p[ i ] ); + t.equal( y, expected[ i ], 'p: '+p[ i ]+', lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } + t.end(); +}); + +tape( 'the returned function evaluates the quantile for `p` given large parameter `lambda`', function test( t ) { + var quantile; + var expected; + var lambda; + var p; + var y; + var i; + + expected = largeLambda.expected; + p = largeLambda.r; + lambda = largeLambda.lambda; + for ( i = 0; i < p.length; i++ ) { + quantile = factory( lambda[ i ] ); + y = quantile( p[ i ] ); + t.equal( y, expected[ i ], 'p: '+p[ i ]+', lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.js new file mode 100644 index 000000000000..6ad40b0c38e2 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var quantile = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof quantile, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a factory method for generating `quantile` functions', function test( t ) { + t.equal( typeof quantile.factory, 'function', 'exports a factory method' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.quantile.js b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.quantile.js new file mode 100644 index 000000000000..a76f7130beaa --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/planck/quantile/test/test.quantile.js @@ -0,0 +1,111 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var quantile = require( './../lib' ); + + +// FIXTURES // + +var smallLambda = require( './fixtures/python/small_lambda.json' ); +var largeLambda = require( './fixtures/python/large_lambda.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof quantile, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y = quantile( NaN, 1.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + y = quantile( 0.0, NaN ); + t.equal( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a number outside `[0,1]` for `p` and a valid `lambda`, the function returns `NaN`', function test( t ) { + var y = quantile( 2.2, 0.8 ); + t.equal( isnan( y ), true, 'returns expected value' ); + y = quantile( -0.2, 0.8 ); + t.equal( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `1.0` for `p` and a valid `lambda`, the function returns `+Infinity`', function test( t ) { + var y = quantile( 1.0, 0.5 ); + t.equal( y, PINF, 'returns expected value' ); + y = quantile( 1.0, 1.5 ); + t.equal( y, PINF, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a shape parameter `lambda` which is nonpositive, the function always returns `NaN`', function test( t ) { + var y; + + y = quantile( 0.8, -1.5 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + y = quantile( 0.9, 0.0 ); + t.equal( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the quantile for `p` given small parameter `lambda`', function test( t ) { + var expected; + var lambda; + var p; + var y; + var i; + + expected = smallLambda.expected; + p = smallLambda.r; + lambda = smallLambda.lambda; + for ( i = 0; i < p.length; i++ ) { + y = quantile( p[ i ], lambda[ i ] ); + t.equal( y, expected[ i ], 'p: '+p[ i ]+', lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } + t.end(); +}); + +tape( 'the function evaluates the quantile for `p` given large parameter `lambda`', function test( t ) { + var expected; + var lambda; + var p; + var y; + var i; + + expected = largeLambda.expected; + p = largeLambda.r; + lambda = largeLambda.lambda; + for ( i = 0; i < p.length; i++ ) { + y = quantile( p[ i ], lambda[ i ] ); + t.equal( y, expected[ i ], 'p: '+p[ i ]+', lambda: '+lambda[ i ]+', y: '+y+', expected: '+expected[ i ] ); + } + t.end(); +}); From 768f5dc17c4623169146069387a380bda219e2c7 Mon Sep 17 00:00:00 2001 From: Aayush Khanna <96649223+aayush0325@users.noreply.github.com> Date: Thu, 2 Jan 2025 15:55:32 +0530 Subject: [PATCH 05/87] feat: add C ndarray interface and refactor implementation for `stats/base/smskrange` PR-URL: https://github.com/stdlib-js/stdlib/pull/4404 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Co-authored-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- .../@stdlib/stats/base/smskrange/README.md | 173 ++++++++++++++---- .../base/smskrange/benchmark/benchmark.js | 31 ++-- .../smskrange/benchmark/benchmark.native.js | 27 +-- .../smskrange/benchmark/benchmark.ndarray.js | 31 ++-- .../benchmark/benchmark.ndarray.native.js | 27 +-- .../smskrange/benchmark/c/benchmark.length.c | 56 +++++- .../stats/base/smskrange/docs/repl.txt | 22 +-- .../stats/base/smskrange/examples/c/example.c | 10 +- .../stats/base/smskrange/examples/index.js | 27 +-- .../@stdlib/stats/base/smskrange/include.gypi | 2 +- .../include/stdlib/stats/base/smskrange.h | 8 +- .../@stdlib/stats/base/smskrange/lib/index.js | 4 +- .../stats/base/smskrange/lib/ndarray.js | 4 +- .../base/smskrange/lib/ndarray.native.js | 20 +- .../stats/base/smskrange/lib/smskrange.js | 60 +----- .../stats/base/smskrange/manifest.json | 70 ++++++- .../@stdlib/stats/base/smskrange/src/addon.c | 66 +++++++ .../stats/base/smskrange/src/addon.cpp | 153 ---------------- .../smskrange/src/{smskrange.c => main.c} | 40 ++-- .../stats/base/smskrange/test/test.ndarray.js | 13 +- .../smskrange/test/test.ndarray.native.js | 15 +- .../base/smskrange/test/test.smskrange.js | 13 +- .../smskrange/test/test.smskrange.native.js | 13 +- 23 files changed, 455 insertions(+), 430 deletions(-) create mode 100644 lib/node_modules/@stdlib/stats/base/smskrange/src/addon.c delete mode 100644 lib/node_modules/@stdlib/stats/base/smskrange/src/addon.cpp rename lib/node_modules/@stdlib/stats/base/smskrange/src/{smskrange.c => main.c} (57%) diff --git a/lib/node_modules/@stdlib/stats/base/smskrange/README.md b/lib/node_modules/@stdlib/stats/base/smskrange/README.md index b2816e520d9c..e63c44af60bb 100644 --- a/lib/node_modules/@stdlib/stats/base/smskrange/README.md +++ b/lib/node_modules/@stdlib/stats/base/smskrange/README.md @@ -40,7 +40,7 @@ var smskrange = require( '@stdlib/stats/base/smskrange' ); #### smskrange( N, x, strideX, mask, strideMask ) -Computes the [range][range] of a single-precision floating-point strided array `x` according to a `mask`. +Computes the [range][range] of a single-precision floating-point strided array according to a mask. ```javascript var Float32Array = require( '@stdlib/array/float32' ); @@ -57,22 +57,20 @@ The function has the following parameters: - **N**: number of indexed elements. - **x**: input [`Float32Array`][@stdlib/array/float32]. -- **strideX**: index increment for `x`. +- **strideX**: stride length for `x`. - **mask**: mask [`Uint8Array`][@stdlib/array/uint8]. If a `mask` array element is `0`, the corresponding element in `x` is considered valid and **included** in computation. If a `mask` array element is `1`, the corresponding element in `x` is considered invalid/missing and **excluded** from computation. -- **strideMask**: index increment for `mask`. +- **strideMask**: stride length for `mask`. -The `N` and `stride` parameters determine which elements are accessed at runtime. For example, to compute the [range][range] of every other element in `x`, +The `N` and stride parameters determine which elements in the strided arrays are accessed at runtime. For example, to compute the [range][range] of every other element in `x`, ```javascript var Float32Array = require( '@stdlib/array/float32' ); var Uint8Array = require( '@stdlib/array/uint8' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x = new Float32Array( [ 1.0, 2.0, -7.0, -2.0, 4.0, 3.0, 5.0, 6.0 ] ); var mask = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] ); -var N = floor( x.length / 2 ); -var v = smskrange( N, x, 2, mask, 2 ); +var v = smskrange( 4, x, 2, mask, 2 ); // returns 11.0 ``` @@ -83,7 +81,6 @@ Note that indexing is relative to the first index. To introduce offsets, use [`t ```javascript var Float32Array = require( '@stdlib/array/float32' ); var Uint8Array = require( '@stdlib/array/uint8' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x0 = new Float32Array( [ 2.0, 1.0, -2.0, -2.0, 3.0, 4.0, 5.0, 6.0 ] ); var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element @@ -91,15 +88,13 @@ var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd var mask0 = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] ); var mask1 = new Uint8Array( mask0.buffer, mask0.BYTES_PER_ELEMENT*1 ); // start at 2nd element -var N = floor( x0.length / 2 ); - -var v = smskrange( N, x1, 2, mask1, 2 ); +var v = smskrange( 4, x1, 2, mask1, 2 ); // returns 6.0 ``` #### smskrange.ndarray( N, x, strideX, offsetX, mask, strideMask, offsetMask ) -Computes the [range][range] of a single-precision floating-point strided array according to a `mask` and using alternative indexing semantics. +Computes the [range][range] of a single-precision floating-point strided array according to a mask and using alternative indexing semantics. ```javascript var Float32Array = require( '@stdlib/array/float32' ); @@ -117,18 +112,16 @@ The function has the following additional parameters: - **offsetX**: starting index for `x`. - **offsetMask**: starting index for `mask`. -While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offset` parameter supports indexing semantics based on a starting index. For example, to calculate the [range][range] for every other value in `x` starting from the second value +While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on a starting indices. For example, to calculate the [range][range] for every other element in `x` starting from the second element ```javascript var Float32Array = require( '@stdlib/array/float32' ); var Uint8Array = require( '@stdlib/array/uint8' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x = new Float32Array( [ 2.0, 1.0, -2.0, -2.0, 3.0, 4.0, 5.0, 6.0 ] ); var mask = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] ); -var N = floor( x.length / 2 ); -var v = smskrange.ndarray( N, x, 2, 1, mask, 2, 1 ); +var v = smskrange.ndarray( 4, x, 2, 1, mask, 2, 1 ); // returns 6.0 ``` @@ -153,26 +146,19 @@ var v = smskrange.ndarray( N, x, 2, 1, mask, 2, 1 ); ```javascript -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); -var Float32Array = require( '@stdlib/array/float32' ); -var Uint8Array = require( '@stdlib/array/uint8' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var bernoulli = require( '@stdlib/random/array/bernoulli' ); var smskrange = require( '@stdlib/stats/base/smskrange' ); -var mask; -var x; -var i; - -x = new Float32Array( 10 ); -mask = new Uint8Array( x.length ); -for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - mask[ i ] = 1; - } else { - mask[ i ] = 0; - } - x[ i ] = round( (randu()*100.0) - 50.0 ); -} +var uniformOptions = { + 'dtype': 'float32' +}; +var bernoulliOptions = { + 'dtype': 'uint8' +}; + +var x = uniform( 10, -50.0, 50.0, uniformOptions ); +var mask = bernoulli( x.length, 0.2, bernoulliOptions ); console.log( x ); console.log( mask ); @@ -184,6 +170,125 @@ console.log( v ); + + +
+ +### Usage + +```c +#include "stdlib/stats/base/smskrange.h" +``` + +#### stdlib_strided_smskrange( N, \*X, strideX, \*Mask, strideMask ) + +Computes the [range][range] of a single-precision floating-point strided array according to a mask. + +```c +#include + +const float x[] = { 1.0f, -2.0f, 2.0f }; +const uint8_t mask[] = { 0, 1, 0 }; + +float v = stdlib_strided_smskrange( 3, x, 1, mask, 1 ); +// returns 1.0f +``` + +The function accepts the following arguments: + +- **N**: `[in] CBLAS_INT` number of indexed elements. +- **X**: `[in] float*` input array. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. +- **Mask**: `[in] uint8_t*` mask array. If a `Mask` array element is `0`, the corresponding element in `X` is considered valid and included in computation. If a `Mask` array element is `1`, the corresponding element in `X` is considered invalid/missing and excluded from computation. +- **strideMask**: `[in] CBLAS_INT` stride length for `Mask`. + +```c +float stdlib_strided_smskrange( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const uint8_t *Mask, const CBLAS_INT strideMask ); +``` + + + +#### stdlib_strided_smskrange_ndarray( N, \*X, strideX, offsetX, \*Mask, strideMask, offsetMask ) + +Computes the [range][range] of a single-precision floating-point strided array according to a mask and using alternative indexing semantics. + +```c +#include + +const float x[] = { 1.0f, -2.0f, 2.0f }; +const uint8_t mask[] = { 0, 1, 0 }; + +float v = stdlib_strided_smskrange( 3, x, 1, 0, mask, 1, 0 ); +// returns 1.0f +``` + +The function accepts the following arguments: + +- **N**: `[in] CBLAS_INT` number of indexed elements. +- **X**: `[in] float*` input array. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. +- **offsetX**: `[in] CBLAS_INT` starting index for `X`. +- **Mask**: `[in] uint8_t*` mask array. If a `Mask` array element is `0`, the corresponding element in `X` is considered valid and included in computation. If a `Mask` array element is `1`, the corresponding element in `X` is considered invalid/missing and excluded from computation. +- **strideMask**: `[in] CBLAS_INT` stride length for `Mask`. +- **offsetMask**: `[in] CBLAS_INT` starting index for `Mask`. + +```c +float stdlib_strided_smskrange_ndarray( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX, const uint8_t *Mask, const CBLAS_INT strideMask, const CBLAS_INT offsetMask ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/smskrange.h" +#include +#include + +int main( void ) { + // Create a strided array: + const float x[] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f }; + + // Create a mask array: + const uint8_t mask[] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }; + + // Specify the number of elements: + const int N = 5; + + // Specify the stride lengths: + const int strideX = 2; + const int strideMask = 2; + + // Compute the range: + float v = stdlib_strided_smskrange( N, x, strideX, mask, strideMask ); + + // Print the result: + printf( "range: %f\n", v ); +} +``` + +
+ + + + + + + + + +