diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/README.md b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/README.md new file mode 100644 index 000000000000..f5bbc02c1ed7 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/README.md @@ -0,0 +1,257 @@ + + +# Variance + +> [Log-logistic][log-logistic-distribution] distribution [variance][variance]. + +
+ +The [variance][variance] for a [log-logistic][log-logistic-distribution] random variable with scale `α > 0` and shape `β > 2` is + + + +```math +\operatorname{Var}\left[ X \right] = \alpha^2 \left( \frac{2b}{\sin 2b} - \frac{b^2}{\sin^2 b} \right), \quad b = \frac{\pi}{\beta} +``` + + + +where `b = π/β`. + +
+ + + + + +
+ +## Usage + +```javascript +var variance = require( '@stdlib/stats/base/dists/log-logistic/variance' ); +``` + +#### variance( alpha, beta ) + +Returns the [variance][variance] of a [log-logistic][log-logistic-distribution] distribution with scale parameter `alpha` and shape parameter `beta`. + +```javascript +var y = variance( 1.0, 3.0 ); +// returns ~0.956 + +y = variance( 4.0, 3.0 ); +// returns ~15.300 + +y = variance( 2.0, 5.0 ); +// returns ~0.715 +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = variance( NaN, 3.0 ); +// returns NaN + +y = variance( 1.0, NaN ); +// returns NaN +``` + +If provided `alpha <= 0`, the function returns `NaN`. + +```javascript +var y = variance( 0.0, 3.0 ); +// returns NaN + +y = variance( -1.0, 3.0 ); +// returns NaN +``` + +If provided `beta <= 2`, the function returns `NaN`. + +```javascript +var y = variance( 2.0, 2.0 ); +// returns NaN + +y = variance( 2.0, 1.5 ); +// returns NaN +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var variance = require( '@stdlib/stats/base/dists/log-logistic/variance' ); + +var opts = { + 'dtype': 'float64' +}; +var alpha = uniform( 10, 0.1, 10.0, opts ); +var beta = uniform( 10, 2.1, 10.0, opts ); + +logEachMap( 'α: %0.4f, β: %0.4f, Var(X;α,β): %0.4f', alpha, beta, variance ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/log-logistic/variance.h" +``` + +#### stdlib_base_dists_log_logistic_variance( alpha, beta ) + +Returns the variance of a log-logistic distribution with scale parameter `alpha` and shape parameter `beta`. + +```c +double out = stdlib_base_dists_log_logistic_variance( 1.0, 3.0 ); +// returns ~0.956 +``` + +The function accepts the following arguments: + +- **alpha**: `[in] double` scale parameter. +- **beta**: `[in] double` shape parameter. + +```c +double stdlib_base_dists_log_logistic_variance( const double alpha, const double beta ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/log-logistic/variance.h" +#include +#include + +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); +} + +int main( void ) { + double alpha; + double beta; + double v; + int i; + + for ( i = 0; i < 25; i++ ) { + alpha = random_uniform( 0.1, 10.0 ); + beta = random_uniform( 2.1, 10.0 ); + v = stdlib_base_dists_log_logistic_variance( alpha, beta ); + printf( "α: %lf, β: %lf, Var(X;α,β): %lf\n", alpha, beta, v ); + } +} +``` + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/benchmark.js new file mode 100644 index 000000000000..7187ae9e6971 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/benchmark.js @@ -0,0 +1,59 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var pkg = require( './../package.json' ).name; +var variance = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var alpha; + var beta; + var opts; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + alpha = uniform( 100, EPS, 10.0, opts ); + beta = uniform( 100, 2.1, 10.0, opts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = variance( alpha[ i % alpha.length ], beta[ i % beta.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/log-logistic/variance/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/benchmark.native.js new file mode 100644 index 000000000000..a31ec1a84098 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/benchmark.native.js @@ -0,0 +1,69 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var variance = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( variance instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s::native', pkg ), opts, function benchmark( b ) { + var arrayOpts; + var alpha; + var beta; + var y; + var i; + + arrayOpts = { + 'dtype': 'float64' + }; + alpha = uniform( 100, EPS, 10.0, arrayOpts ); + beta = uniform( 100, 2.1, 10.0, arrayOpts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = variance( alpha[ i % alpha.length ], beta[ i % beta.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/log-logistic/variance/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/c/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/c/benchmark.c new file mode 100644 index 000000000000..3a7274f615dc --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/benchmark/c/benchmark.c @@ -0,0 +1,140 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/log-logistic/variance.h" +#include "stdlib/constants/float64/eps.h" +#include +#include +#include +#include +#include + +#define NAME "log-logistic-variance" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [min,max). +* +* @param min minimum value (inclusive) +* @param max maximum value (exclusive) +* @return random number +*/ +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double alpha[ 100 ]; + double beta[ 100 ]; + double elapsed; + double y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + alpha[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 ); + beta[ i ] = random_uniform( 2.1, 10.0 ); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_dists_log_logistic_variance( alpha[ i % 100 ], beta[ i % 100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/repl.txt new file mode 100644 index 000000000000..09476d506ccb --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/repl.txt @@ -0,0 +1,44 @@ + +{{alias}}( α, β ) + Returns the variance of a log-logistic distribution with scale parameter + `α` and shape parameter `β`. + + If provided `NaN` as any argument, the function returns `NaN`. + + If provided `α <= 0`, the function returns `NaN`. + + If provided `β <= 2`, the function returns `NaN`. + + Parameters + ---------- + α: number + Scale parameter. + + β: number + Shape parameter. + + Returns + ------- + out: number + Variance. + + Examples + -------- + > var y = {{alias}}( 1.0, 3.0 ) + ~0.956 + > y = {{alias}}( 4.0, 3.0 ) + ~15.300 + > y = {{alias}}( 1.0, 2.0 ) + NaN + > y = {{alias}}( NaN, 3.0 ) + NaN + > y = {{alias}}( 2.0, NaN ) + NaN + > y = {{alias}}( -1.0, 3.0 ) + NaN + > y = {{alias}}( 2.0, -1.0 ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/index.d.ts new file mode 100644 index 000000000000..f6b356ab5b6a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/index.d.ts @@ -0,0 +1,66 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Returns the variance of a log-logistic distribution with scale parameter `alpha` and shape parameter `beta`. +* +* ## Notes +* +* - If provided `alpha <= 0`, the function returns `NaN`. +* - If provided `beta <= 2`, the function returns `NaN`. +* +* @param alpha - scale parameter +* @param beta - shape parameter +* @returns variance +* +* @example +* var y = variance( 1.0, 3.0 ); +* // returns ~0.956 +* +* @example +* var y = variance( 4.0, 3.0 ); +* // returns ~15.300 +* +* @example +* var y = variance( 1.0, 2.0 ); +* // returns NaN +* +* @example +* var y = variance( NaN, 3.0 ); +* // returns NaN +* +* @example +* var y = variance( 2.0, NaN ); +* // returns NaN +* +* @example +* var y = variance( -1.0, 3.0 ); +* // returns NaN +* +* @example +* var y = variance( 2.0, -1.0 ); +* // returns NaN +*/ +declare function variance( alpha: number, beta: number ): number; + + +// EXPORTS // + +export = variance; diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/test.ts new file mode 100644 index 000000000000..8610f73ed9f5 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/docs/types/test.ts @@ -0,0 +1,56 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import variance = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + variance( 1.0, 3.0 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + variance( true, 3 ); // $ExpectError + variance( false, 2 ); // $ExpectError + variance( '5', 1 ); // $ExpectError + variance( [], 1 ); // $ExpectError + variance( {}, 2 ); // $ExpectError + variance( ( x: number ): number => x, 2 ); // $ExpectError + + variance( 9, true ); // $ExpectError + variance( 9, false ); // $ExpectError + variance( 5, '5' ); // $ExpectError + variance( 8, [] ); // $ExpectError + variance( 9, {} ); // $ExpectError + variance( 8, ( x: number ): number => x ); // $ExpectError + + variance( [], true ); // $ExpectError + variance( {}, false ); // $ExpectError + variance( false, '5' ); // $ExpectError + variance( {}, [] ); // $ExpectError + variance( '5', ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + variance(); // $ExpectError + variance( 3 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/example.c new file mode 100644 index 000000000000..422eb2335ce2 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/c/example.c @@ -0,0 +1,40 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/log-logistic/variance.h" +#include +#include + +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); +} + +int main( void ) { + double alpha; + double beta; + double v; + int i; + + for ( i = 0; i < 25; i++ ) { + alpha = random_uniform( 0.1, 10.0 ); + beta = random_uniform( 2.1, 10.0 ); + v = stdlib_base_dists_log_logistic_variance( alpha, beta ); + printf( "α: %lf, β: %lf, Var(X;α,β): %lf\n", alpha, beta, v ); + } +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/index.js new file mode 100644 index 000000000000..6647d9459bb1 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var variance = require( './../lib' ); + +var opts = { + 'dtype': 'float64' +}; +var alpha = uniform( 10, 0.1, 10.0, opts ); +var beta = uniform( 10, 2.1, 10.0, opts ); + +logEachMap( 'α: %0.4f, β: %0.4f, Var(X;α,β): %0.4f', alpha, beta, variance ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + '=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "statistics", + "stats", + "distribution", + "dist", + "moments", + "continuous", + "variance", + "var", + "dispersion", + "log-logistic", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/addon.c new file mode 100644 index 000000000000..be45b8cfe331 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/addon.c @@ -0,0 +1,22 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/log-logistic/variance.h" +#include "stdlib/math/base/napi/binary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_log_logistic_variance ) diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/main.c new file mode 100644 index 000000000000..8b5be4bd39e3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/src/main.c @@ -0,0 +1,51 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/log-logistic/variance.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/special/sin.h" +#include "stdlib/constants/float64/pi.h" + +/** +* Returns the variance of a log-logistic distribution with scale parameter `alpha` and shape parameter `beta`. +* +* @param alpha scale parameter +* @param beta shape parameter +* @return variance +* +* @example +* double v = stdlib_base_dists_log_logistic_variance( 1.0, 3.0 ); +* // returns ~0.956 +*/ +double stdlib_base_dists_log_logistic_variance( const double alpha, const double beta ) { + double b2; + double b; + double s; + if ( + stdlib_base_is_nan( alpha ) || + stdlib_base_is_nan( beta ) || + alpha <= 0.0 || + beta <= 2.0 + ) { + return 0.0 / 0.0; // NaN + } + b = STDLIB_CONSTANT_FLOAT64_PI / beta; + b2 = 2.0 * b; + s = stdlib_base_sin( b ); + return ( alpha * alpha ) * ( ( b2 / stdlib_base_sin( b2 ) ) - ( ( b * b ) / ( s * s ) ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..98be20b58ed3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/REQUIRE @@ -0,0 +1,3 @@ +Distributions 0.23.8 +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/data.json new file mode 100644 index 000000000000..1d14150248d0 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"alpha":[3.1268431751077364,9.459683995606856,5.631740622608084,7.753741513378361,0.6080096698460223,6.985343311397939,8.941428246813663,8.850279871690882,4.942438631532952,9.290139542205752,5.307738422962927,4.45779352608997,9.554018761195318,10.000011072672104,0.7015398955871354,8.374812160161639,9.630351871593987,1.3773030796310293,0.9093981455090104,2.7879389616896444,8.373958469196502,3.9072318213100234,3.834827872246249,6.416183352855986,9.34608969969537,4.3223971768603136,8.554145820843019,4.976126882662581,7.733507116174066,6.939868380784729,5.020577596743288,3.732285159455541,9.206343077173493,7.013067635683263,3.0958051629694485,1.0081044421775398,8.623781772905243,2.325278852664218,0.3409208285938413,5.450580377093647,7.062612655726452,1.468722368796893,7.663548453208527,1.086037093051505,0.2821166452579459,1.2758431265421233,8.531933359703325,6.627568025537585,7.799856218991083,4.4550239631334545,5.932453353570965,6.126285416547115,7.840820385442885,9.254168900810976,5.364261120388305,5.5897165249946585,8.463339347705368,8.58925299237029,8.775657844951654,3.56052847065762,5.788672464543744,0.36958335687101485,6.242528728827205,4.302243295802946,4.314415608470332,6.398568158012836,9.00141061037126,8.646265250588456,1.7308403097730296,1.695065111687416,4.301142335335124,7.693973255742661,8.87403521056435,8.353504289953165,9.03798562397033,7.558306628316238,9.596634385670889,9.603105576255667,6.212119330103862,3.9603465469258734,8.897248834689842,9.131732931804887,3.140528681367467,6.084099604982344,6.148594637079823,6.442821292775945,8.70374267026253,7.101546434465649,3.015494532473316,9.338429249864244,3.4617668627075115,9.96652779079267,6.865298644704537,9.96609945336861,0.8332216985629369,6.746663992242334,9.027270337724904,1.4140012510429467,2.0971143701791704,9.640992126476707,7.180256743028213,1.798966180340008,8.140768570356197,8.726437762690798,4.218987670816313,0.335732146165053,6.142762560921618,9.549944406719652,1.3253294787798364,0.13863404591403553,6.126852024231796,8.589902423300567,9.510616160647238,2.5056285398594516,1.7375947637732148,0.13641266949236056,1.0758209201158742,4.866290990844609,2.8542947311017874,8.147992479572958,7.592165129693015,9.116568399917844,6.798364844222123,0.8019157510945939,2.6988769330897733,1.4061430688250898,7.77785590554349,1.9768591321430584,9.893985298983791,7.559839428805646,2.5141729266597235,9.276624108222405,7.493746285846704,0.7234377563166149,7.831007092458647,8.295588145203672,2.0728763366221745,10.096291920651707,7.1335548473694494,0.6947309984727889,0.6426369300585854,5.796459962380292,8.610408637034828,3.421968089941634,9.686400534733872,5.1898503957629885,7.936166459046555,5.350291610306984,4.1785495634180005,4.568308039704737,2.1163815469944924,1.6518506919443432,3.970284546199053,9.7757203235241,10.05055433176734,8.471597074954731,8.361876674224796,6.444935785062806,6.840445018495871,6.1115671268389535,1.7144797932054856,5.377218958393694,1.8266326366092611,4.355602237216964,3.1595932043925523,3.3367202220301895,8.181272417952083,0.8775374598755025,6.676644119348996,7.420971962103569,6.222551426160268,4.289847418165002,4.2316641433165945,4.620675124254895,3.0859293132189305,8.284382578506783,5.15473226187472,2.2197093583491623,7.911194851736324,3.8911375454783004,5.8177504945997125,5.166416230648971,10.005182185820798,8.805587031089392,8.39225266236577,5.8589328836057,5.48891449360098,1.8280449213203576,1.7088742744976781,4.530463508282727,3.576590144514289,7.4187579445356295,5.36800977420094,6.2887736918853,8.889080615128488,1.2493814760009991,5.376704733386019,2.78984309490639,0.6751161104709645,4.816330350528278,4.518005195782452,3.2937260572184046,1.2818614201188594,3.5194023530649674,7.887382933167348,9.344700320847197,6.082692806809905,7.9232804733008155,4.925508626419634,2.424979551862235,7.417638223528821,9.550835305624984,8.240076454752932,9.70937692829486,1.074298864120995,2.064041062627463,4.671779467916631,0.8005926642823756,4.804113998301007,8.440375610856194,5.059253749823657,0.268540197149164,3.950840742477373,5.647135939781986,3.039435366725803,5.301134957233504,9.540539122466804,7.724625312760711,1.786480672362969,9.658535917016351,0.3512325662077197,9.423452223463192,9.614057506686402,3.423565718954292,7.118391787811713,8.211966448290582,1.7328933878922748,8.553883276657771,0.619690782031269,0.7141344114880209,4.813773966908193,9.299848981593307,9.999035839061815,8.402452591879559,5.6919887102550835,6.185035735356902,3.1450380763593655,7.397870978496102,5.293578070004067,3.839756010273893,8.593679553584813,8.318601640964074,2.7000804755867724,7.662955962092036,6.341633537086245,4.352910832298603,4.996105774364438,9.61759036030463,0.23666885809218266,2.3979210613821897,6.328507956115658,8.12674058157018,1.0706639864786205,9.823013155420844,5.780193184396625,5.05754041283419,6.226259892811102,3.8370932433690785,9.535959176280958,5.2051736366392305,0.9826589705399301,7.938264579907723,4.343824115285375,7.290970354705856,10.094409060622962,5.249189116951276,2.2155097942821853,7.7239815760239825,4.970606477476479,4.6427070027551345,5.6340479101116365,5.823552086395943,7.32198991310087,2.396838837260049,7.370575971789964,9.89709012229964,2.083229283290584,6.94280791328436,6.846803173833729,7.2589247435239885,1.6592869282312828,7.503292929457018,0.17915123868383667,8.755020946706441,2.743299902959131,6.061951336606733,5.01270987893409,3.60697451988099,6.043565748348726,5.136530415861424,2.129388675325267,4.757460815647681,8.643056574506005,4.2705528383170055,8.245660509567841,8.2171636297436,1.183774277592592,10.066554862944448,9.655020723204812,7.793464006850834,1.9799599115044753,8.68988182042985,1.795999148588634,5.473848256764746,7.129725912729928,9.854971291362292,9.345393599134503,0.26404088893269495,4.655478731562875,0.9520365001195273,8.13408970356587,8.219124328459456,6.582920935213723,0.9040141789555644,8.244711190447003,6.03091582239511,5.124264021164315,6.5665570646556874,0.8865770509377356,4.731530451904186,0.4450239227127294,10.085989627459114,1.0816820701161756,4.440042286968972,6.44453080013385,0.8796250810120819,1.0080690543475146,2.076651931416178,6.234826584665752,0.291463183366094,5.389916610601076,0.7860780555335344,5.361346019392068,10.079346445629614,8.350367723342295,8.271883082058988,9.576403791482377,2.03136596667523,7.670703235075544,5.488570994838969,9.100838843845251,5.206257172500764,5.1185837702159995,7.657671619615488,6.7018561767384695,5.811151502131456,3.9914015952212814,7.412548502124905,3.3904724269368756,7.177532899639793,5.716037662732747,8.597958828003792,7.383354605927963,3.577257363538695,6.530416885225821,0.9835304365046093,6.741886531810207,6.214108329765545,0.18524975919813827,4.6959170984092085,0.2409719716827762,5.917448182822162,9.831037518803805,3.2076834257428755,4.068597388052934,7.785425971036147,0.31862339778472626,9.013469127071604,5.0607151690272465,4.068471157444559,9.804630092473413,3.2648191569275107,6.900209777727712,6.346501160903791,0.6492334998671178,0.2327075257866861,4.184932722405028,3.6939573096850045,6.185348202080876,6.568173208388057,3.787305457346173,9.908156638921609,8.870151190202664,4.38535228819457,5.4432136225247225,0.2274841547006167,8.09316843113728,0.10035485239539446,6.609840762691312,7.525206998038735,1.6194738515527696,1.6832078544546714,5.475897025380299,6.8474522344268935,8.773134816572421,4.502394636104016,0.7626927964018259,5.19701613349029,4.852309409623648,4.815499757279561,7.481331924285584,2.4472858543600693,7.976572277921535,4.472179404091127,4.066764373580827,9.950827292497653,0.1720056937251301,6.564021499082616,2.2777197689015796,5.5961316501597045,9.482838942987684,7.907092701988931,2.3470212807823643,0.1140515044640921,7.273329364681059,5.914104006550028,7.250455702252307,8.191746549773372,0.1790325661920821,4.831711413866257,0.6047778922931834,5.6856329480240015,9.743670404413917,6.299679629414721,0.8830490394360867,8.817605871872944,8.01463639300353,8.241294417397528,1.590456043666788,4.486177672581112,9.380944804740862,8.829356504003679,8.837239309026069,5.643699045196727,1.4632056187510445,1.5522719963420428,8.937936082777998,7.085956924183691,5.405631928807126,3.4045170277489367,2.198359990935801,9.942316812118404,7.49922781255917,9.40589322300648,4.061097042011708,1.0626471762564504,7.964035106103709,4.942739677827969,0.2184796141773925,7.096377091435296,2.7230098649857273,7.463073193798942,0.7170651534155735,1.5512440578311937,5.686312156297921,5.321527461676537,1.8862294027413296,2.9200775556793346,4.060417645615029,9.691959835763907,1.8107401304655213,4.642909292759578,4.372402833250322,9.225093967160975,3.861727737167302,6.087913988832252,4.428333293113146,0.5005705340618293,6.2143164541044635,1.933896456854285,6.273856662859699,7.203623409248003,5.4701956433180925,6.958805190158205,9.765721489508032,6.438635978155862,4.024299482988833,2.5137764730386603,6.956356213692623,4.5942298410476266,4.506069861554003,1.4683709566218228,4.825234233012427,3.9059377674294695,3.416838754852368,10.04013008301039,9.95687498794351,8.297477730529696,8.788497514803828,0.696478443234264,5.369193386247796,1.9307312032224844,4.63317524814383,9.163524989661012,0.5013730273336036,8.397885173182374,2.660021564533599,6.605177740681807,4.355998054085256,8.262677387850777,2.418397069591023,0.43878184199301773,8.13165406065636,10.026163396279332,0.6209234655371941,3.5655105327313974,9.3805355239808,4.251087843558215,7.8656572678003664,1.3686187558719942,5.67271705679271,2.2827012164056093,7.741714740531231,8.835190891088223,8.794647563397358,6.48148222023112,9.037902287203558,4.453508628000383,5.419607309873059,0.21867270753588178,9.07590322062751,2.776921526631253,4.4620114717810475,6.802105257699636,6.73276560645913,2.2929482489974187,8.054448673840318,4.796481830946607,2.4151874914980387,8.22229248419373,8.69380736153081,2.15065156857542,9.305803944449842,3.7485198441599707,6.439978545497636,10.006836940736147,9.635824572013046,3.7335611010828695,1.1030061391978252,1.664459552081109,2.5969225428065648,8.551968203101412,8.995342524921908,0.19928011943150073,9.809906358036887,9.737850517269164,3.062973606200672,7.4512376965824,1.6899402618817005,9.002330654998326,7.88502911057147,5.473826925871668,9.634322713158568,9.606987030591032,9.190793038254247,4.090117715212201,6.073711618699489,0.2785320801431289,7.8514923517598865,8.098833763753904,3.304182777063127,2.5126250340070446,1.6227603788182965,3.5735587929759203,5.37347966579312,4.692281551391685,7.69308507164145,1.7128070786292293,6.822677822097878,6.716848351696167,9.262683145553526,8.96103802106707,6.810363804459663,7.735010710080943,9.979757325152116,4.907076832129103,5.660289199467093,5.276181161461853,7.095614150692349,8.96594940246003,5.442409170671186,2.662839607937023,1.8593084170294827,8.897967673125702,7.885326548163842,6.438210770118824,2.9590185900604085,3.9579935580922867,9.269734963431782,5.475183083048967,9.759728979443965,7.909347056253108,3.927173833235044,1.9671077726279107,1.5496971008306537,8.129865837424685,3.729352128097616,2.2114285460249716,2.2898886439932684,0.99381878315969,2.1555325400021985,1.2039633116133663,1.5547922432351735,9.037596078971259,4.805152339752972,8.156793681323595,2.3970656308226235,5.534222892019667,8.026500443273441,1.9743205673080877,4.7046210408145965,1.1973861208572845,6.611845109709381,3.1017757624159112,6.058217088416177,3.064085649174976,1.5552000334945049,6.181437794951737,5.748665204604971,2.329168899189854,9.52356207841949,8.089175132584279,0.32064096328602953,0.13705574239843413,1.2739963634390972,4.013400607292946,0.26747018466041095,5.848514923089764,8.616417484728851,5.735224307323274,2.0847210816510087,4.369842659809654,5.9227019782449535,0.3018890173480747,2.933969083759951,8.574459717767505,8.752775304804798,8.999648374370057,2.639335670589449,8.692420789438934,7.758073236313081,7.04864704339242,3.0091896480713767,8.769892589561872,7.595122439912787,6.4733977261639835,7.05788849398242,6.038074925812431,8.441722660812509,2.7237301825712588,5.989376713549139,4.681126745575346,8.916036120067607,2.0282002330455184,7.722569999422451,9.868783036052793,6.244448132497853,4.40357931041036,5.72813946218611,0.46652896192882365,5.1000008097739205,5.139910141998,8.14169964076077,9.235165084500041,7.47750983447852,5.655154506495904,8.560192074410846,8.590456694871145,8.150777455895833,6.448142865407866,8.991452549677518,6.829211748301685,4.695449456795154,10.058765274172814,4.608977448213793,0.507059169905436,2.599528770169609,5.842430010043454,9.035393443631175,6.364459521550022,3.7100788213980027,3.0222726833532465,6.279873020388756,9.843727317950467,6.210323016557676,2.7342125580935037,5.7000634293491945,1.2478923119475915,2.6780435081134466,7.321392487700889,7.795685625255981,8.411950744566747,8.906440579700057,4.459859919350644,0.8594811201743812,8.232602035487409,2.814046899631013,0.7500520508284235,6.67791859148654,4.00284549648614,4.678319791910953,9.666955093914014,8.938153653476988,6.17908482715217,8.542984787507294,4.10278203564234,1.551027398702901,6.793821116020553,2.9066511380354587,9.604291100660076,5.756459067324536,7.053738806559386,9.346815979499013,9.576730753043103,10.005682152405372,8.98803216416384,0.17042612243009284,4.728365240344686,1.1218476576648906,2.3065168655588852,1.5871381074331203,9.224851028016785,7.966359986739207,9.923481873541077,4.363292433762398,3.9289561079406132,5.343230101938171,9.611497657850453,7.2771881106323,6.624592782261125,4.055672521007086,5.105215568925637,8.72835001130917,9.732161964144622,5.637713102776919,0.8118407797681148,8.201529494365325,0.7823983582278592,8.434332323784375,9.120546602856518,3.3734050896329006,1.1997072817118448,0.3904258806948967,7.0383870762046445,8.402072615098396,7.22138828807358,3.9800481502815566,1.0897265394309963,3.727605798161718,5.581006342145006,6.513141766833602,2.712550967223916,7.6061927326738825,8.505394613373388,0.8846568500506878,3.8911187066989106,9.778136901937073,7.224111150156077,3.202159967917091,0.26850703578270674,9.927499063819667,6.1382933644757935,1.4791898197344455,2.9640081566050958,7.878277828831699,2.6332096694719187,4.810832121358721,9.215134368295749,4.309668933576993,4.3550145580506765,4.254819973247928,7.516835270212416,9.584074040339214,1.2936175006595463,4.881400315517142,4.155607760653328,3.4060095815390268,2.8021250047654234,4.522777220471211,3.140895098847986,9.602571142391152,5.504197761146982,9.664481698195038,0.27148201903888325,1.697276893522054,8.900489998685446,2.1590300204241375,8.426864804288396,7.2028153995418105,3.9880116796730545,8.803180211603031,3.3459697456057937,3.4188359518390365,2.670438490427962,0.4627790199154057,1.3862528565338839,8.390191806757633,3.696083865383238,6.717922658028475,5.627466782282763,5.159443410625606,8.329767422333845,5.282396028344963,4.096107113906751,9.370750801732468,5.641633255621947,7.38749079281423,7.299765391193815,4.723105290056587,8.721169063967212,4.8578195735911605,7.44542067638867,4.411073950478086,8.089592218367983,5.298570748066897,4.266523163839545,2.9969821385412976,7.477928281819116,0.8578176902228917,9.533893919773343,4.591392413723235,1.7797692974614654,7.068918527434535,3.6576412073498354,0.6487952078132929,0.8347075672020953,2.391535568341847,5.138177001470768,1.4303648703394878,9.503205712012807,3.1004919107991236,8.756445566462961,6.007629391091148,5.678391784679873,0.9788954747744693,7.649586450140895,2.168110322722465,3.6351400909644704,7.592377533530405,4.47479301697604,1.424416084323381,0.34583204966481695,0.526911298352246,6.783526920954847,9.726945191555144,3.8340996211167986,6.509732885644528,8.471162841010198,5.581337927895962,7.8522377153728735,2.7063770596958947,5.499555924401774,0.7209428849465492,6.275150687098854,2.2147639226062266,3.6060232815366553,3.938467049149018,9.478637122754488,0.4346900368998906,5.634198776062512,4.284603131686495,4.141762862522691,7.784766482523461,2.14462054356498,9.284349764509491,6.401463331943417,9.09112397531979,8.29569901465549,1.825771556657917,2.6281124224644645,5.162572802594799,4.648189396662291,0.37161877743656413,2.9388905359519044,0.3928727680990406,6.801289912090359,8.682796360062936,9.842999985346333,9.867844763152734,2.3018608041031388,3.6939520550110347,2.776209278974487,5.551711494528321,8.613355510911944,7.587699315191211,4.588875724170609,9.04665751729505,1.2853843118129338,3.7769372917296304,7.920205698385382,1.5176746358864723,2.327540671313003,8.355305607756186,6.892745011386898,3.3564995739577363,2.1495930128386234,2.2631754704784046,2.1532105664831414,1.902645454208306,6.930155355270685,9.201721464633591,6.130878435622469,4.317281497398436,5.565197536290425,9.76407304095433,7.353021738830105,2.347032872842829,2.6156492125530084,7.007752179147022,5.754958106859149,8.509940226105988,6.088360511177645,3.9398068308406375,2.4352600588661653,0.4094719641808552,2.7922589034467205,1.8826453721749647,0.28936243779012927,1.74632558354902,5.484071160372443,6.279559104523603,7.921160251021749,2.904909082825059,6.870680615902449,7.348004111233771,1.1030254929645056,3.759883240189114,6.559891975059578,7.7090487966048915,5.7939634867826175,5.68357964464761,5.996802368240472,5.6671038710964705,4.667643032211112,3.9564280676930266,0.8538579447033544,7.299528070345565,3.988384637528417,3.8341234289986024,6.918332849364407,8.231965748724765,2.3244790481189948,0.950307934415615,2.369421432803104,9.02384078255137,3.11698211265405,6.610839531369335,4.277325641558057,5.640692961351182,7.929346290794126,5.192169535290136,5.860730440250538,7.425650378729685,8.615349362661098,1.9826472091263048,2.6616267078415565,6.792097205074658,1.3613244316577355,7.068756338843994,8.044561024036952,3.6869968758451424,8.212244136798448,0.14641993095387265,3.670333295354037,7.598726074965793,5.671079102991404,1.2795478511533998,2.8863866365163937,5.280613257355093,4.734612638422977,5.541632042436888,8.879944875443055,2.419419950612053,7.122185845801289,3.579011341105527,5.15941162565766,0.7796211471507352,7.852547231511436,6.0229001745973765,9.733942919995085,4.464442604428234,1.134138663964065,8.214200186331693,6.961583505864535,6.390274674628012,2.460445064354524,2.7367033083434356,8.031469613388062,5.677955408329139,10.084430179470527],"beta":[7.22481772225899,4.075214434117521,9.753680109456198,7.444739541607705,3.239526853309004,8.113083772263408,8.339503762074683,5.418716338270475,5.046775732772897,9.622239944808985,8.19415694658219,3.109226369783077,3.9182057454338666,8.565649641016297,4.62641255165358,7.859193641228307,7.380848396212457,4.73121973159904,9.623907364483554,9.99661911405282,3.933635411401696,6.496988717580562,5.1274312041064025,6.062799786097756,9.908663769111648,3.6845142873500625,2.791735256398083,5.017721955736032,2.9217616248381053,5.917808924144342,6.207597845336398,2.4437088334792523,3.4561436995411134,5.8589730167120315,5.21040720134952,7.371336421746879,8.602874979924474,3.822889780089126,7.487341132126383,9.359045410297547,2.9637697764221262,7.498841457170242,2.2800998770687495,7.0475646118959325,7.540977293645522,6.751435035727178,7.07978960107531,9.545282781476848,4.377343168824575,6.295487625483538,6.726927878725672,6.961831269664325,5.068738568042926,3.346180129350573,9.748412069727081,8.717109937735916,6.137941472844389,4.117475221000388,3.3779233099874246,6.992945218386431,6.04814724995326,2.4625149248401574,8.941755197528423,3.6218520231884095,3.2990090415926203,3.5418732272981255,9.05671279493544,9.684126438545473,6.884035928903387,9.02476503673683,8.691114420225734,2.6254678739746784,2.286156234611392,9.689752332801973,4.435303651787301,2.9943595021683733,8.080378452172214,3.120222115290449,6.917407753167586,7.6659029888994645,7.612884033027411,9.867977415769131,4.103837545782097,9.484755333442404,2.9886245897790586,2.466237363656458,7.869954142543985,9.441928368189958,6.118671157934228,8.415149925846496,8.593310286945703,6.254424397935518,4.262557054132483,3.0563395054407985,5.329379098985891,6.0406516082994255,9.13650031950737,9.344611886734617,6.557616188901136,6.742968110858335,8.07405206774997,5.36777552354728,5.431013500015496,10.07906044529719,2.961524156172213,4.050684681381259,6.336534250146693,3.70520483983385,6.398422476498473,5.714862422883286,2.7769533019476644,3.4120221086214104,7.794891390065073,2.9047023505396754,2.107057369074758,9.693171068179103,8.554950468831356,9.011243832235163,9.113273700236034,8.713555899963492,7.0652184939149745,9.991842382846292,3.139589370482948,7.375053592186321,4.969338697217731,8.006315593963642,5.8841300986868745,4.832202643378039,6.951630657102244,6.457105906430263,9.428857765164949,7.945439655244019,8.476389303260236,2.139177666392053,7.753192938531594,5.98888463881285,8.018393088789436,3.908219415485186,4.048733045016961,8.965838925606057,5.416617714024358,5.9316292815308245,4.222658612874442,4.077221644067265,6.559541576346783,6.8410560671556855,7.005533566484148,7.834196357151294,5.567976279300336,3.661830689674224,7.182849147769183,7.887758097657661,9.384656715501054,10.055198169595872,7.802106201507343,5.980045995332256,6.895582022014132,2.8303859452374724,3.825196409591188,5.046733417372552,7.60946993327701,8.239798116586103,7.269443417907221,9.575849295615022,7.426415103290822,3.8967851229902135,5.571030803586133,4.388485727483717,5.808721726352349,4.256003509575169,3.793601542860736,2.730124365368512,3.9991787477071292,3.6827746311343605,3.4227885533555757,9.58032196075395,7.152199183320679,8.857793723950547,2.424843487436464,3.6740807995669242,9.443896191572952,5.641363819976945,6.623763760963122,7.891583028778491,4.493877154306007,2.258814291971125,6.129254958239434,6.429916143291058,5.660676404509262,2.880071349525973,8.30811894301367,2.7935133180470113,8.061160864169128,4.517900494998976,9.503825047238237,4.959276454895575,3.5367961345713597,2.793137642112916,8.62006796077078,4.814577670282846,7.871965620921349,5.878201645573375,9.041595764944134,8.79266831692915,7.069553524507299,2.502188775857632,2.113380607986731,7.758811082127007,5.755302742100776,4.924640352738386,2.3896727638311046,3.524200852044157,7.865117904322663,9.63373217372665,3.230839160801666,8.716271755893377,9.035184938319768,8.020422976692144,6.281660893499801,3.9145565176913633,7.884389488365967,4.04642211124971,2.379467896274662,5.373751192522576,9.76236138506663,4.347390001992169,5.873159798161517,5.559509690191643,8.399021288890768,8.728376875901283,6.085350303152245,9.882956511311683,4.909716535435583,4.890493330799881,8.789961660484012,7.305899950699446,7.864779296277664,9.490875386313487,4.423164625456732,4.240008932288832,4.040972338585657,2.3938231117844944,3.476866191678235,4.230488144833448,9.257669238754849,8.274298030770247,2.725953303295562,3.720260823720315,5.498084504774438,4.772916794331712,7.73324186478572,2.305311181826966,8.443120153600406,9.523895742610156,9.036369596735119,2.5610822197307095,9.858671616763141,8.758520575437204,9.098462712831884,6.571787848398866,4.744490498880605,3.177267392001158,5.857803211430614,2.5874988172454656,8.055823065341338,7.238543501746655,8.23673018239159,9.515247404984535,5.889492031642964,6.809067751683726,3.9544909786366884,2.765708447605012,9.609425676022335,8.01074939630145,6.940282291584511,6.3797647184047435,8.028174985225396,5.3191802025283685,8.986739521573064,3.1794740119076335,5.233907122192029,2.790346601797721,6.6835201604238925,7.536064740945337,6.9556762215151,6.2747368731416575,8.597621032393114,10.049493999184888,4.524678303708077,4.060140006315134,7.125508618033031,5.118146029708502,2.72626119924942,3.785179697222706,7.085199845412712,4.861638043356146,4.83615974959409,6.61305257580282,9.84545860139019,3.367229436790509,2.429983778092247,9.35931318838305,9.916510948808142,9.628113722844846,6.069570515320864,2.7756245096468875,8.447119112436663,4.859703086458966,5.583158840374681,4.856068183866499,8.381912450044613,8.203621310367081,2.323896917194341,7.932539752537371,4.574839472733002,4.609317304120724,6.6064927817967,9.876154923488686,5.239605433671484,4.989455965925284,3.2035455121641605,4.845325786301915,4.454467129225625,3.787333502754524,6.536271103245612,3.77454260478372,3.0552294448327477,2.8133681095685836,3.77609712230609,5.771413623956889,8.353112516138559,6.03096665466421,3.5513438142992793,9.215435253276462,4.938293176279757,6.483044978252144,9.83945944324191,3.3173317811617706,5.487645571006523,3.5222710319204764,5.426997520843576,5.89480362883905,9.69971623470972,4.033041757252423,5.200094370040556,6.406170686334018,9.624098916241179,8.994540895074534,7.66225078021383,7.60222447557244,7.064043410968214,6.950924996133782,3.8189464324001974,3.689974182090691,3.256250711074881,7.62937891992661,6.661439762257899,7.915108838747532,2.3528084749115616,9.172277424509028,8.98217706116339,8.353135493714523,2.3421745874782594,4.929990402621568,8.052839137709753,6.207782526193132,9.867082996452991,3.6244906722514716,8.29273181557693,7.4235722550886845,7.471999748608882,6.319737738405381,5.957069035881499,9.528224419585959,3.7628186594617365,4.851201307449603,3.789019604081209,9.22796326812635,9.872490867861007,5.060862888268254,2.7135575377438834,6.756394808199875,8.349328601852035,7.857138133649048,3.389319904172383,6.272202764618751,8.724077077630001,8.363098983358011,8.534034937061957,9.92951981942585,7.931396216364025,2.6224345372348776,6.140412371871665,6.640474406277349,10.046357636863197,5.28103847187891,5.329827695322313,6.983003216605207,2.5241001287780764,6.726215128435541,2.584413852682014,9.305101734373183,2.374890332549739,8.013185213917968,9.348667257921,5.1665111146816916,6.929371364289802,9.394770187221187,9.319816654200789,8.241618114775061,6.7894931138668575,4.5176444089169525,4.597335236822971,3.3701158845367387,4.267884858196588,4.5399375594600055,6.923357061740308,3.5248047572684205,9.0868219111214,7.746489052441737,3.614613587245707,9.596408553005107,5.857987671146363,5.873892405893992,8.704899511609472,9.052208138831737,6.220564381342406,7.083492685559882,4.223198384597572,2.8256557267399374,2.3465926266825874,5.415696608282243,5.065569265642566,7.55252745657781,3.063484423763525,3.188472258937027,7.2731493985805145,8.611975904964424,8.741400466729488,4.764455359983483,8.352263489273488,6.558745575571791,6.1822027461124005,5.5548229045417,2.4669417196336973,9.305867558805055,3.9319199021379965,8.573269728674392,3.0808833123857773,6.662427379254394,2.5843374908566124,5.572028358192551,4.97354901999398,6.2184475050113,6.325732213182819,2.7941581132593867,8.361710253438149,7.087485096785196,8.474454823945338,8.830626760073127,6.322355914689787,5.822527788919695,9.43460862329482,9.192653443638553,8.05494158373411,5.95802483677628,9.29470852971319,3.600158898703279,6.384479962573419,2.470528665557405,8.898047995563406,4.948506893545387,3.2520491340909534,5.903650576392476,7.37111310266827,8.803741935598648,6.588549440768672,9.682629648149785,5.448419208142848,9.595947517602875,2.994109812125466,7.152655253236302,9.41232047517306,6.244455682313067,5.425559711154811,8.31185975862252,3.5745383770058576,9.32450634014475,9.160413991162601,4.418417403202827,6.68056417258928,7.073485166944119,2.8988157211525425,3.832348738444161,8.714144027720282,2.4617202276884105,6.836488701136821,9.800377166779832,7.708824355512954,4.541882081763767,2.4904178318609653,4.887751658222955,4.562980642586826,9.945182768504203,4.290234867329493,3.3873809161984654,6.023144419462028,3.2495361320358644,7.394538383606545,6.1011939763178855,10.018219827847455,3.461324184599555,5.524665302783232,7.7602984915318025,7.286982264965578,8.134846530548467,4.892445621718572,8.95384741538343,5.532570875740857,4.526161766265247,8.23574316844679,2.242117467546017,3.230556952228427,2.218634195893927,3.9129414594307392,6.958589180395014,3.6231135451991094,9.488864233155086,5.436499268591943,8.036771229710903,3.4054022266230652,4.283638724073436,7.255101354179162,2.6713435306102205,8.209352562511105,9.04021429601922,3.665779833802407,4.4592805913520035,3.6550510956841493,2.5264840615363586,9.080353411211076,8.612823325717454,9.622042078761396,6.777946300763073,5.804797957147734,5.236322912938469,4.654999118728949,8.504181242591308,9.950952321564046,5.318591413592388,3.3890819919614343,3.051927123251954,8.677652155231879,3.432949617199671,9.62898706065464,8.771892955314264,8.770360845191162,2.9707260586999564,9.983324441194522,6.968162648367789,6.594956803894391,9.401475464874498,7.898155442753303,9.613046005747698,8.855780938967486,6.0746053261525095,2.4820151537021595,8.652561614747961,3.0267349633355685,8.51098032991161,10.073684668658156,9.300911657982192,3.6239047420601573,6.1278967946533545,2.45390095680365,5.857024790704383,4.4110825544472725,5.101863482213961,7.813573913133991,9.764629857828897,5.887487413373904,5.573446804136873,4.897587981138733,3.0273858344595914,8.812727753562246,4.607662765675478,5.678136134562839,4.481657340396259,3.8951963183403273,8.45320478969905,5.297655818809199,7.636865796529344,10.082183826295015,5.3442641016876475,9.464736837208772,5.735663262547222,7.973201871623502,8.020750037830567,2.184184011350307,6.2381979557803415,3.564680068128529,7.988270696061029,8.448397339505844,2.9451175685197906,4.3083086697079,7.465630271052069,8.38940414673502,9.53017108197368,7.254570194247606,6.404306252615752,7.19892188771866,2.792268048644211,4.0610538998642,4.3390562209137595,8.683331039165195,7.240814514512735,3.1574510082577443,8.137235662257888,9.408624156666145,4.508511679755509,4.9424352483049,3.2103338204133656,9.540161150506561,2.741085350160709,6.637014116234726,3.5072026900534037,5.880139389242528,8.249612574146468,8.552746965667467,2.9361567768190295,9.42535744305163,8.324970705318421,6.889221152054217,6.902133560541582,3.3219320563109247,4.4800955381786025,4.244997644292768,6.158713281210028,6.568932944882528,3.8750569863595676,10.057533031333394,6.374745088539296,4.865189430581733,9.069521054314595,7.054450640834119,2.311033108528654,2.9094384768716384,6.232170193022267,5.123687980968672,5.56785911099384,9.468813757759568,8.984061360351753,7.071114192631168,2.2837256215718402,7.072808976192093,9.904264805125337,5.1776750217162295,5.366803335257407,9.623994735459908,6.819124931569011,4.289438133623101,6.357205707750531,4.34627702838131,8.867154388851594,3.0418440071801167,8.422943860240698,2.3760595075759547,5.48690952443302,5.047173722936122,3.241575290512817,2.4982464381545326,2.2384473213337652,8.10209543861107,6.857962888284169,5.367600342809146,3.4590095559356295,4.426054310524785,6.389918044397183,5.077309316755773,8.057187903638901,7.9921660248158855,7.654453497607776,4.267400841624072,9.114075621402852,6.165545145509411,6.154323232936553,8.174173436006429,4.01826860694587,8.177635868090094,5.3348766536606504,2.8065097594855,9.513027470516283,6.219428578088294,2.6361379814868067,5.861918981173227,5.9761894964784315,4.562301960658415,10.080223346329369,9.520066192105649,6.032364614606976,7.833745633349377,10.08561631227412,2.9317098781495745,9.461058825807534,8.598077903756437,2.877937915718372,5.949327231575872,7.773627726849215,8.721519856273432,2.7882130133346315,2.95421988514055,7.67117687904023,6.5925431004437804,7.931300432895831,4.55569531684746,4.177515999185891,7.4931024513739715,5.691849763768946,6.378038731957062,7.2490858772241005,8.326373624828623,3.522798487326655,9.566914354836754,5.958666803927546,8.962080922259101,4.752926850982787,4.998250615560709,7.032883944714737,7.181596513960631,8.182437844070712,2.9366641940782894,3.378878076722575,9.565759334788988,5.616605753752266,3.1064117819916697,3.8436070068864523,10.024584078478142,6.298741468436086,2.5456007466974486,5.094886363209,8.334916676091217,8.446808004184785,4.013822333412989,2.4392741733758876,8.492429633388607,5.0399609589536585,9.273373658181413,5.415485592646148,8.198409162454178,6.207670451416,2.9567064249194224,9.902934642830756,4.850847484341198,3.212827099942245,2.9513907647410114,7.053690722422484,7.660943887159089,2.373559214164271,6.533932162820408,2.7197882384272947,6.065802941935413,4.787272466609691,2.966835171063981,2.9830049664457445,7.4161388720916115,4.0003410036569065,8.772410125046738,4.778566181363786,7.892752229314789,4.27997166811844,9.950311537778173,10.07894250953689,4.302230074982395,8.693479029208271,8.535659259828664,5.058248926340276,5.889801953230199,8.015208985444394,9.526171523260624,7.036987030161114,6.405593961411217,7.126637631522662,2.1686400537743666,3.5959880835829865,4.206865967901747,9.251227714252817,7.593733524234485,4.9727099338616,6.564863435192313,8.620255161877317,8.642963932239605,7.923477630951336,5.961846167888721,8.772374406651545,9.006430365153618,4.2261553476064435,6.888708603043705,2.3647392915015177,4.12605914127499,8.82209449214941,4.439176549805378,5.298840616717191,2.2123907014567243,4.656110455168738,3.6015853962246704,2.934743538279926,4.161009941608839,2.6092011009100182,2.6020615204835065,7.7015168975538675,2.9606177910700153,7.8129769323567295,6.057179355824491,9.23226603283489,6.334135203314663,5.477306367056771,9.800788620642887,2.2054347060145347,5.53127259906792,9.601747375139855,7.686368780601596,3.199863223664757,2.928807204651282,6.066353091894673,2.972234225508528,9.150180021146257,3.2513076402104875,3.1765864643521975,3.5394875728373143,6.474839143587392,8.22952827337724,2.1038461060379983,4.807812989081961,6.987116021803876,5.988180665735737,5.733996110126105,6.441818586231424,4.679445214953608,5.857596048446375,7.821732376591335,4.448896685554621,10.012353916130282,3.351422174357578,5.560040839357942,9.793224485637246,4.965599084077644,3.0787296655501213,3.427621874718168,6.554511743955521,9.67678229735075,9.881567732108827,3.462618285513343,2.9959791580647983,7.492313105046627,5.171073743411085,4.990403157795381,3.4065260114316396,9.067004900616565,3.0626353250065805,2.578930324024187,2.284913903485085,3.1296131936270064,4.397184372631893,9.8451220762395,2.640461166808836,7.651526044209504,6.86543359312709,7.182649032767399,9.494383693739469,5.141193963543316,5.1618833733564635,9.8577295256447,9.809062375900355,3.1904358625954923,8.855627698558491,3.7275399231188335,6.792517534153456,9.293214065520994,2.2356313762913644,3.042843775334928,4.0471041038518525,3.4386882579508833,7.667582719190419,3.7201942315899497,8.299065159909473,2.960579931566867,9.15602181696158,2.6591564523897273,5.768221110601095,2.9326314374681046,2.788232722279037,9.09577670302102,5.242202558955851,2.797638195686512,3.499807472582462,4.685600899945568,6.781573949328603,8.557909841796873,6.731281870259146,4.149816241862574,6.662048868024726,7.54961741044543,10.006721592726123,3.3739042943108344,4.948480346509221,2.8528366718032347,8.859889569697321,6.137183217442638,2.760157897351331,3.060746427127262,9.638263345230579,8.627591450964903,2.9169990822335587,5.797873978306219,8.617428702616932,4.450035794325515,9.949445855649355,5.736037644261719,6.550079243333698,5.352006972952944,7.5255018933760685,6.758691055185212,4.303486151498468,8.925002339391899,3.7921290594587824,3.9740399226961043,6.6201831124686645,7.995917090925994,7.048261718727325,9.694578640708654,9.372005578515843,8.381926071403962,5.233191028734927,6.6678342403349955,5.235500252030786,8.636730456510822,9.05350391462583,7.26653429915576,6.82034448600119,2.3920065506900303,4.1670764653139205,3.4921937657945876,4.420587069875127,4.219921198038639,6.635140694829785,4.4577573639537444,7.392399743211907,9.859266088166514,8.820122757709246,3.7724513024543547,7.561217207530721,8.70262896669005,6.174304837456608,9.401037139638609,7.541124572606403,9.2649217844071,5.806956108875241,8.300281001734454,9.75228342777729,5.260784101417265,9.201235331123634,8.322344127856413,7.260441255989747,2.863178246906061,4.4473409536031685,9.384877671208512,2.731525361818966,2.7983071645928406,7.410576490338769,6.133634079663047,2.5769991245670565,2.6888717853175357,10.057169463058914,8.045283993965763,9.564952406131578,9.242816085131896,8.990936039872654,7.17502481970771,3.5901981701636934,3.697643293747404,10.053534390117386,7.16362889821081,9.32086858179897,8.79667387984824,8.533694134404405,2.9408635502847837,3.5397613019563203,6.8042536695496025,5.65128425565551,4.39833203016738,2.8133371266915765,8.557363851488676,2.53017534953157,8.792774252042467,4.371466491789658,5.7561698922570095,5.900267510515331,5.322409090227739,5.3444415614633165,9.218709070720562],"expected":[0.7103478502496092,28.49128020422747,1.184714308716328,4.079020316594494,0.2575668693927352,2.7282226260624887,4.204860514146383,11.358866203963263,4.257603977948,3.319644197295283,1.540667480065359,16.321918969405047,32.81662808615684,4.957429333995471,0.10848585520349115,4.210525465102126,6.417091652018879,0.3931424906951277,0.03179747207964061,0.2753574659897629,24.90138971319911,1.4200519953448374,2.4587598768284997,4.518783233150742,3.1538566065024596,8.197066151631022,97.97963801146281,4.382072389818806,64.3782469860109,5.607464514058012,2.613611544475763,41.32601212563916,46.386281663810074,5.86836400367336,1.5368788082870175,0.07052473319439363,3.651752161238844,2.1023173602675054,0.0077841213252234165,1.2134286590357322,50.331623051283955,0.1439689366528342,314.192934273332,0.09073056665205467,0.005244782254061089,0.13833816212546257,5.541032680244755,1.7190774854595743,15.678389801603132,1.9897592423752573,3.0165345996396997,2.9699196460065993,10.593628651249073,52.74521194172311,1.0761036925531353,1.4903313871273045,7.631610044431039,22.76684543052941,45.80120262915934,0.9928829443209397,3.6997637363271165,0.38352240150690947,1.7579329892193052,8.603646172299488,12.093274112053454,20.549880255977616,3.5545361132118307,2.8359006841812198,0.2433226090187029,0.12702361055477426,0.8882218444530684,110.3564841761136,410.2260318329739,2.643789464569601,20.272533330090727,55.080500658324326,5.195815644541123,74.65126330932206,3.0993651476590727,0.9958536859196173,5.1056457454641135,3.0376233965131414,3.0743111610521803,1.468789227564769,36.75897353907494,115.31497294652641,4.53382506049439,2.020833449828728,0.9762167720026329,4.495756764287908,0.5898826408507909,10.115569897238009,13.121434148679606,87.65640579198536,0.10504139268197173,5.0408175254854894,3.507265464866349,0.08193758662472567,0.4002060526740431,7.922541622397773,2.9137657514271567,0.4807439099836219,9.555458903958137,2.650604001280403,18.021854520862643,0.03655422752365057,3.724672663695997,39.27516349177833,0.1694168845744,0.002438604890099144,51.62921982743715,42.29898717482235,5.531195562936798,6.94303692790304,49.88948806118554,0.000704479267031832,0.05753501582375088,1.0503397416448603,0.35258393756411477,3.1695210628863433,4.40848655502245,2.947400335310885,36.477988761968156,0.0445747389961955,1.3225422306530474,0.11386869701021357,7.142568711395838,0.7647720476651462,7.772621254890923,5.394143784677466,0.25404980978811287,5.041277237875832,2.8489992570441776,6.432751945488302,3.7955826763154836,7.782223606321406,0.24662047426712908,36.94332077075261,16.527361510977997,0.021645141830956546,0.05994871183179643,3.8896684065599407,21.219653093748057,3.7227207861250244,8.53225138115177,2.2197412249479402,4.912300549311505,1.7308023094679938,2.364135360924851,9.347569606493535,0.3297991218422048,0.16247735331745342,0.640024980761171,3.3433206101892483,6.164222919662057,8.145208736153917,5.656994495279595,51.960777507431025,18.15825655839702,6.510246827203868,0.18977739802818736,1.561864271221741,0.23902202442236706,0.7373612555204266,0.6811299242602921,4.0725748424161266,9.050347129236686,0.1970085834589024,5.432774483073669,15.400900143678065,15.433805455293445,27.638434675830858,6.040198088812518,9.38219808760762,5.397075759954781,2.6648064444260684,1.9757811052653043,0.22690366333506845,196.62444730300345,6.70622548862968,1.3556223312627398,3.4975924348762146,8.896673335209908,4.612068359467235,16.840299509681653,202.48116686190528,3.2209932196021422,0.31857926269339093,0.37941090261194504,23.62062455721066,0.6784320029604097,73.46119940398852,1.6343679174993004,9.315238573548392,3.1217045854469094,0.2849527710914578,14.582997086914212,10.395562013053421,0.022281955511370452,4.584591437483625,1.2209478245685947,1.2840537985088905,0.07234813024057377,0.5797124383020039,4.751272335476659,219.6336005285363,573.4117201104646,3.87922575157531,3.0249328513601186,1.0937257109915046,193.5219120391764,46.59195966974329,4.069248395818014,3.616677534369294,0.8125794086736948,0.20325053619863004,0.9624590035218161,0.03676714688220404,2.3260055206614783,25.687321101954893,1.525598434014922,0.023462181942181484,56.822885640871384,4.723797226659676,0.34441422593522236,7.387009927069018,10.796136373603783,8.110268803978508,0.16523237658466514,4.437041920248056,0.01342000063990689,3.224257615488369,17.33115204648813,2.220917851079357,2.373186492088938,4.775980854502518,0.17998543686023227,2.89925794572896,0.09605315889385331,0.14421004042606256,7.5702904902121935,300.0328086579936,53.563187032291474,20.096791259573294,1.3549731226592452,2.0473065660010015,14.975762169853452,23.254013479005316,3.9167606539568953,2.983391023294985,4.597499615112616,332.41253233998356,0.373097054350915,2.3093386566391447,1.7729462047925952,41.009755380852624,0.9111143036801063,4.366321346326234,0.002432691999709926,0.5205940405692601,8.237046700183003,49.67620900323298,0.13684230570581069,196.09692966989977,1.8977981572012748,1.8503296253496428,2.095760450178352,0.5801677771126715,10.712570122591824,2.257374158036987,0.3372763629606468,88.48248821307656,0.727850503636711,3.0575854328017193,8.121396937250498,2.676146962320481,0.28096145372860937,9.070965688601492,1.1023914010621672,16.167868787236994,5.031266084786504,45.52432939113039,4.6653154793266065,0.3791309286248063,4.307671966034948,9.89795196510235,0.21338521360160134,1.6884176237593544,10.99526525685137,16.966990880127263,0.20649172955036524,9.457685968586636,0.0485643118487593,30.773914176912964,0.5718445441421114,7.07456733699555,4.906439924380866,1.1606900674914906,1.3370578890348863,15.875908376931632,14.021393381988924,0.9243835856445209,2.6926330275005737,0.7005556334652747,7.44293655176138,93.09372913403617,0.07163934731696608,19.529976446003264,12.536071421731888,11.729388379687219,0.20387845824099038,4.119104143758969,14.381750002673128,1.7616775918471688,11.56000316369881,21.629223225237844,7.809784931749785,0.0025351026243807554,3.4256581023702153,0.16281541788682374,48.16261932472827,13.123671412821295,10.623594698073509,0.32750390159871295,6.2334850608037025,14.737058044719952,23.209519332565538,55.56078397166831,0.31804956838445275,2.7721382996574344,0.010378522801176644,11.309713988056608,0.5818504448596566,0.8327137192904073,7.667745038125924,0.07233838362183394,0.037248973754380466,2.743649961668388,5.459605463887062,0.043473921433587255,4.196627606214299,0.07263347912092784,1.086610225888316,33.39032849390269,11.23914601729337,6.5806455293619965,3.5259056685108314,0.18376805937729415,3.7399582297442273,1.9490997128434606,6.337057369443619,2.152674376956506,10.220940836760683,25.601069923549275,30.675271098415035,2.167397739770609,1.397152561278088,3.2465069383770397,45.96325808139176,2.198412424150085,1.4594497143104683,3.873975808912222,226.67073241481273,2.3731991781752066,2.424411229129162,0.10029475870463549,1.6560564781115588,17.905071285842784,0.001827549256143113,1.505867658417312,0.003907137082733579,3.4784070884210077,11.07252635136262,0.4042508031663456,6.775502941725414,11.736843601460043,0.04062504164444709,3.4215424162300434,0.9320169954342928,2.8639100139634186,149.1175444722607,0.9043168127782025,2.4976372427336355,2.419412141458019,0.24759611421212538,0.005477357119718146,0.8339076776030419,0.7131865946437327,1.9121639527801906,1.5506259166229148,0.8436102082898664,184.24799940990988,8.374772951284159,1.6990868726333068,1.0385116975463,0.008014931968400129,9.907928445680282,0.0007913615780218858,103.73796044154159,4.854943643034624,5.368672028313648,0.11718038225895908,110.88472182930268,2.6950751667515567,3.151259455066929,3.3228960920747137,0.04653203903776725,1.094075200737869,0.9704784581140254,1.2519803272134717,4.694680901697686,1.4109147007029283,14.272707305813285,11.996710252086851,4.5874278616537225,23.005971382715543,0.0023714439732655545,21.994178040636232,0.22595289874430743,1.942070499342409,42.0847206009439,2.4188214574457807,0.6575283116327936,0.0015423809410616781,2.531089294356654,1.5360706761549383,5.423601828458527,5.101824771811422,0.00917045243557932,29.44352106310339,1.496109018083304,4.694548773727584,16.386294058773316,2.6061579666566796,0.6814061655018204,57.66565041086531,4.59617717798283,3.3272492909287976,0.11992014292561648,4.092154771176631,4.612748600153484,7.0912234797829,8.178008110538062,4.338385374861944,5.9356914105097145,0.0996408489638064,28.407329949101715,2.4842847313850993,24.932980829180515,1.0161385843914323,9.894513953053194,13.35991302704136,10.188255005532396,9.135076405264963,1.6346145070161666,1.505467990247844,3.3162365160725256,1.8550013473579334,0.002422898196887523,2.3347795774489413,0.7358350552538668,6.748398490787126,0.02063820184235278,0.10219297776172599,1.8370999711149558,3.2430274556644116,0.14751046141816182,4.045520889571935,1.5984662349537282,257.7839913669843,0.14950284820059986,3.9579944844921426,13.122209527063182,9.96670940761427,1.0349603005587245,1.7298676690484558,1.7648356550722717,0.009508442455254115,5.523097581103166,0.1447043844031677,37.96445124837698,3.8580243971837294,1.2072217959144744,4.950310004971783,13.785966895653102,2.1964542743688584,7.874338601837014,0.2601763373415239,2.070839430010166,5.295655690290574,1.7687601354585138,0.16445953228248975,25.992406051582634,5.885036351674851,0.5572845029369706,283.68589245666834,8.18302476154693,2.5453605108864856,4.842704453678351,0.11256820442334763,74.8541615309747,0.7074106785443696,4.917221444968607,3.007952371551959,0.0686682217883827,41.513902451703274,0.7891399614804039,30.035563841575943,1.3073617538315843,7.380280338779328,0.20623943816177703,0.10480572382026744,9.130725122836136,6.208935568804638,0.027467430235335703,0.70657052906581,16.655815823842392,0.81282669303938,8.51243881562299,0.43892936237379665,1.7401433440156517,33.34958702626411,42.212209887786024,565.2828400161909,27.9252123135802,3.3278775111252674,37.92399884580494,0.7862562523822672,4.22419239285077,0.002730551935657629,47.55591292744242,2.115990249507498,1.4327143922897643,78.17361442338697,2.4688099671242645,0.2315679842290831,28.95264629284642,5.62272707824427,2.6290282403780245,159.542069400949,3.296946263381251,0.22653770256888778,3.3309963544886347,1.183293802731354,5.0628781168650425,15.853020516873103,20.120796898818547,0.7021044815772141,0.043527138243081284,0.4213478765200055,3.962522843466374,64.94295359128527,3.8982475565685855,0.02226683395502108,3.6958900856867136,4.461235066083352,0.44155203704490914,55.44011746438387,0.10146469936577321,6.399502570238343,5.5825997818109,1.2118508490470914,5.510751709565686,3.5572844696147214,3.8919878180344964,1.8276489461848529,98.02921050858873,0.0037614081637080805,56.71862241570745,3.2978742108696593,0.38044883351058373,0.2613723812982108,1.22170288111604,1.366001151614011,83.12308363182859,2.629201624654835,14.919674291833928,0.4969565690002065,2.831223922995925,1.6811590071765976,10.115816138831264,10.845953884068319,8.754455378418582,54.99717501224519,4.638144396676498,5.367958962385739,4.130822801544596,6.7077449800113875,18.440362965072072,4.103128294617671,4.550639271153772,0.45408965320494304,0.12024996177936788,11.893799427142191,2.478527001766933,5.21218164818039,0.5089390154116821,0.898560482167636,763.1459718994713,3.071881739900085,46.75723437102749,3.620907730907278,0.7881861981371372,4.016930684887631,0.6480433530017538,4.455883326766625,0.7218824236291908,0.1920532787676468,0.37739815331282606,0.09505490765796545,0.34036382357824807,1.9390685421409506,0.7778697134129041,21.589794448873345,1.1107686087585884,4.809470982359109,4.431939829084965,1.701144873897745,2.6013793856732814,0.923512475612486,4.077219281448907,1.0349809050655363,1.7129184847505463,14.148721621695719,3.2465938365593803,4.877555762193197,0.28604192720995075,2.058536217487773,1.6437394628635191,5.710054882724068,3.648185938550062,3.4548183636326795,0.008335793702930399,0.0015164052037566942,1.0272389461937228,3.8849973176989994,0.020159619853978506,3.614816996954726,6.728644658713044,12.246916368931366,0.15197072493046238,1.8581069270751676,6.740033686809897,0.003985816356972085,0.6606887370596837,345.0205566044952,84.08749135141116,8.318890677363072,1.16692268791938,10.231178061779474,2.396938474189561,2.218254816592995,0.6912294014886565,404.93138946744693,4.4010138608633635,1.514472987997594,8.119739076302656,5.418331651425019,2.7399214174507263,0.6159816261452903,9.804663599325416,2.146295198327583,20.912031200407842,0.18900189436614886,53.71004589351243,5.010638613912646,143.61551217994008,2.724402789148429,5.717677622448992,0.1512719728111004,66.11634769943059,172.25779813891344,3.717461746428252,6.988567079728035,8.30649785118274,17.450812718630676,18.294415831874677,7.1402759188605405,11.397058891609891,2.360860853024521,4.674363232510815,2.9712281042662467,6.117443691745737,4.377951455579267,2.2389496860488505,0.02721815493177197,0.3715679477912245,11.345907740762899,4.484704964318698,6.112457011313303,17.951770655313272,0.360110288821579,4.070514615403914,176.45735589622615,4.59613966628543,0.8498041551709471,7.445645856907271,0.05418979957510385,0.28229828507555577,5.956039075251486,3.674999774585454,2.4595648345142207,84.07047857913285,0.7935282776526091,0.03631717226379708,78.27051636947758,0.9100999441698236,0.034614099263022634,2.1247260943882087,21.591149719656823,22.406539910326163,5.924263179970718,7.179591561292147,2.245645613526851,16.7928147830459,4.973955848378213,0.16083592483599315,5.915371819536444,0.821090431450968,6.6504891703445175,1.748901531175538,25.4490951989099,3.4024205293373764,10.500220079202698,4.493849254799635,16.53461134588097,0.005193196444018807,1.7281302848455116,0.0927050062534922,0.2918675283494599,2.6492723633160495,50.5573535597787,2.4722584083529098,13.046366654514545,15.695899097517827,5.898865167598092,1.0053837510278134,9.250093757202501,119.0710679657141,7.460650426332186,0.8661499974764559,1.3325310839392777,25.409532640699958,284.74597507865406,1.6057836329072936,0.11528438635263644,2.80280076366701,0.0889068225944195,3.8858875159664144,8.625081377422495,11.606202838861577,0.052032301679301875,0.029522222689542146,35.65186181005955,72.58394109861469,4.003456849056405,1.007257019519168,4.411558114861222,1.2752840270060188,47.728623031612784,4.650801891560489,1.4767803919117581,58.1084529796168,70.92646740812656,0.05356557802739265,5.1025575733005955,4.497642556595829,10.526294645563706,0.6097065854062247,0.01983287057722233,3.5265016779157774,1.3115264250556793,0.592849252021156,0.42155369470952325,3.1008237300428467,1.2013177206015784,2.7261472026423013,4.87832944683741,0.7300594448769672,1.4640264953456488,1.7414660732265572,4.236151402715389,904.598559913395,0.7971132543859528,6.895985081520146,0.7233174593246938,0.752497774268904,1.423102773248237,1.856602178791054,0.4822613501325341,4.481626567687256,1.785833587431401,10.679620891487817,0.0034670390410841347,0.1279221828788779,22.61811488271453,0.3780083162049157,272.0634271556436,15.910061194671009,0.7389339900260463,19.185074340486917,1.7190345117306631,87.63919750631015,1.5443521816986523,0.10147166670298345,2.027095686649536,21.048512467999064,26.411272352365973,88.68110583869736,1.9898176063473325,26.988826159575808,4.220897635640316,3.069773091417318,0.7058951950387792,8.675644165665073,4.491507318140828,2.0174915691606636,415.77379852201915,3.071112760263429,2.93898554566054,1.4893568726268696,40.53653489897246,20.715095368751328,7.173062222025679,27.970724835020153,0.7808873694122713,6.170471030210226,42.09695035831063,0.3702140173545396,8.523469348527083,1.1418789486680767,54.1446352529359,9.913483917693448,1.0498056625550927,0.04761556286952269,0.08767397534163657,0.5428649403918989,5.6391695063201075,0.24425608502835072,5.48007208878375,2.365053051078175,2.7071891042290357,22.099547383474448,4.381541349121034,0.03548240366029318,10.646034318055996,4.022699311408511,7.450927275223648,5.251458961906846,0.7608360486313387,0.07369105237260679,0.06501864944044487,0.2670501865731449,3.0772238618528833,15.47339337734744,2.639348011964807,24.435927630626583,3.1403034156752234,27.253501799840944,127.85533219627881,38.36282094868021,24.18342298708956,0.1322168868808555,1.4415974075049967,8.849016570056024,0.8291384918306772,1.2678089372561987,6.615781120814286,0.007481213402069306,5.270484931767325,3.0162230391983487,0.6262812771135348,2.2362449927658283,3.402931294693302,3.9717778446697456,17.299770673827283,6.9251992026327445,2.854246648064489,22.051112111408386,6.211683349917991,8.6667906934013,12.041538391488057,0.00876414706108509,3.6700917788241885,0.008205822473803944,46.901393039563835,3.229651525104926,167.92769925324032,12.073971666950369,5.607524471021304,18.386758566761472,0.33495687573661836,4.865341332718659,98.2954596604387,30.13366626609534,4.481661946225967,6.883463147293364,0.08207049898942954,1.220848990130508,18.90828230596424,0.20195618746443159,0.3560718062725099,2.4678146713757694,28.379671961732292,2.068588862417137,5.563478690713843,0.23575486183835495,0.4941230467995986,5.135707696030136,42.127514712962345,3.2450699400303695,1.8340351273636262,20.214450503961796,3.7919973881854383,4.663921312596181,13.292145317242971,0.19714418474086393,0.8601573968651107,4.480998636550561,4.9569621939784225,4.794526115544887,3.142377421190674,4.202201659372102,0.26862929127015267,0.06691616584374402,2.6817870057256585,0.31540363907825425,0.004836056917893056,0.23453930176398777,1.138226937043894,1.6057685688383652,3.263131555295506,1.3379961737084292,4.130617490003578,8.551325910269878,0.05922720971577882,0.6206494059658845,3.085507434213225,4.932422480671867,117.1601574420156,9.61680701732512,18.96764379485668,8.046504162473225,6.2476780001344325,1.385583986070554,0.17835864045856395,3.6736361154134203,0.5805602638228485,0.6833415052113315,19.42814998382092,4.438534457934288,0.25866711426137384,0.0948591403605401,0.22708873182918635,5.365789906953079,0.40563171056805103,5.3302046901157105,0.9723480991030522,1.1888508595227698,9.83489787448639,1.1425534381002742,1.8147802743950041,3.9612832286325825,87.83380542874482,0.9680611151011486,0.28762442907578917,69.09767411981473,2.4524111624499287,3.4258146807332093,6.906738036706561,28.31817907833096,109.91253345525243,0.000749718310215353,0.76744203073326,2.2497529018766875,1.3497405790940253,0.0729771848878127,0.6149745586423522,13.355962689411209,9.719237528661182,1.0747566686759433,5.841897686625995,0.24121538103382612,2.3717423270506783,0.6402671633384274,27.81509541789865,0.30571241140401156,5.146004229623001,4.732585296382957,24.08450495640212,25.683312001722292,0.06390200542212411,157.72915702688178,2.268189703977136,10.564455835350529,0.7545343853318439,0.8783655239164289,9.792319158099566,4.84268290528393,4.292285745057848]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/runner.jl new file mode 100644 index 000000000000..eff2ed31a5f0 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/fixtures/julia/runner.jl @@ -0,0 +1,72 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import Distributions: var, LogLogistic +import JSON + +""" + gen( alpha, beta, name ) + +Generate fixture data and write to file. + +# Arguments + +* `alpha`: scale parameter +* `beta`: shape parameter +* `name::AbstractString`: output filename + +# Examples +``` julia +julia> alpha = rand( 1000 ) .* 10.0 .+ 0.1; +julia> beta = rand( 1000 ) .* 8.0 .+ 2.1; +julia> gen( alpha, beta, "data.json" ); +``` +""" +function gen( alpha, beta, name ) + z = Array{Float64}( undef, length(alpha) ); + for i in eachindex(alpha) + z[ i ] = var( LogLogistic( alpha[i], beta[i] ) ); + end + + # Store data to be written to file as a collection: + data = Dict([ + ("alpha", alpha), + ("beta", beta), + ("expected", z) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Generate fixtures: +alpha = ( rand( 1000 ) .* 10.0 ) .+ 0.1; +beta = ( rand( 1000 ) .* 8.0 ) .+ 2.1; +gen( alpha, beta, "data.json" ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.js new file mode 100644 index 000000000000..f6f8f6bad41a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.js @@ -0,0 +1,118 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var variance = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof variance, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y = variance( NaN, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = variance( 1.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a nonpositive `alpha`, the function returns `NaN`', function test( t ) { + var y; + + y = variance( 0.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( -1.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NINF, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `beta`, the function returns `NaN`', function test( t ) { + var y; + + y = variance( 2.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 2.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 1.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( PINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NaN, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `beta <= 2`, the function returns `NaN`', function test( t ) { + var y; + + y = variance( 2.0, 2.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 2.0, 1.5 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns the variance of a log-logistic distribution', function test( t ) { + var expected; + var alpha; + var beta; + var y; + var i; + + expected = data.expected; + alpha = data.alpha; + beta = data.beta; + for ( i = 0; i < alpha.length; i++ ) { + y = variance( alpha[ i ], beta[ i ] ); + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.native.js new file mode 100644 index 000000000000..a47f50171843 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/log-logistic/variance/test/test.native.js @@ -0,0 +1,127 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// VARIABLES // + +var variance = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( variance instanceof Error ) +}; + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof variance, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { + var y = variance( NaN, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = variance( 1.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a nonpositive `alpha`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = variance( 0.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( -1.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NINF, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `beta`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = variance( 2.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 2.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 1.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( PINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( NaN, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `beta <= 2`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = variance( 2.0, 2.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = variance( 2.0, 1.5 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns the variance of a log-logistic distribution', opts, function test( t ) { + var expected; + var alpha; + var beta; + var y; + var i; + + expected = data.expected; + alpha = data.alpha; + beta = data.beta; + for ( i = 0; i < alpha.length; i++ ) { + y = variance( alpha[ i ], beta[ i ] ); + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' ); + } + t.end(); +});