diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/README.md b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/README.md new file mode 100644 index 000000000000..884b206da883 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/README.md @@ -0,0 +1,244 @@ + + +# Entropy + +> [Anglit][anglit-distribution] distribution [differential entropy][entropy]. + +
+ +The [differential entropy][entropy] for an [anglit][anglit-distribution] random variable is + + + +```math +h\left( X \right) = 1 - \ln(2) + \ln(\sigma) +``` + + + +where `σ > 0` is the scale parameter. + +
+ + + +
+ +## Usage + +```javascript +var entropy = require( '@stdlib/stats/base/dists/anglit/entropy' ); +``` + +#### entropy( mu, sigma ) + +Returns the [differential entropy][entropy] of an [Anglit][anglit-distribution] distribution with location parameter mu and scale parameter sigma + +```javascript +var v = entropy( 0.0, 1.0 ); +// returns ~0.307 + +v = entropy( 0.0, 2.0 ); +// returns ~1.000 + +v = entropy( 1.0, 0.5 ); +// returns ~-0.386 +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var v = entropy( NaN, 1.0 ); +// returns NaN + +v = entropy( 0.0, NaN ); +// returns NaN +``` + +If provided `sigma <= 0`, the function returns `NaN`. + +```javascript +var y = entropy( 0.0, -1.0 ); +// returns NaN + +y = entropy( 0.0, 0.0 ); +// returns NaN +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var entropy = require( '@stdlib/stats/base/dists/anglit/entropy' ); + +var opts = { + 'dtype': 'float64' +}; + +var mu = uniform( 25, -5.0, 5.0, opts ); +var sigma = uniform( mu.length, 0.5, 5.0, opts ); + +logEachMap( 'μ: %lf, σ: %lf, H(X;μ,σ): %lf', mu, sigma, entropy ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/anglit/entropy.h" +``` + +#### stdlib_base_dists_anglit_entropy( mu, sigma ) + +Returns the differential entropy of an Anglit distribution with location parameter `mu` and scale parameter `sigma`. + +```c +double out = stdlib_base_dists_anglit_entropy( 0.0, 1.0 ); +// returns ~0.307 +``` + +The function accepts the following arguments: + +- **mu**: `[in] double` location parameter. +- **sigma**: `[in] double` scale parameter. + +```c +The function accepts the following arguments: + +- **mu**: `[in] double` location parameter. +- **sigma**: `[in] double` scale parameter. + +```c +double stdlib_base_dists_anglit_entropy( const double mu, const double sigma ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/anglit/entropy.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 mu; + double sigma; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + mu = random_uniform( -5.0, 5.0 ); + sigma = random_uniform( 0.5, 10.0 ); + y = stdlib_base_dists_anglit_entropy( mu, sigma ); + printf( "μ: %lf, σ: %lf, h(X;μ,σ): %lf\n", mu, sigma, y ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/benchmark.js new file mode 100644 index 000000000000..0494c852c3bf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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 pkg = require( './../package.json' ).name; +var entropy = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var sigma; + var opts; + var mu; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + mu = uniform( 100, -5.0, 5.0, opts ); + sigma = uniform( 100, 0.1, 10.0, opts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = entropy( mu[ i % mu.length ], sigma[ i % sigma.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/anglit/entropy/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/benchmark.native.js new file mode 100644 index 000000000000..d419f077b75e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/benchmark.native.js @@ -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. +*/ + +'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 format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var entropy = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( entropy instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s::native', pkg ), opts, function benchmark( b ) { + var arrayOpts; + var sigma; + var mu; + var y; + var i; + + arrayOpts = { + 'dtype': 'float64' + }; + + mu = uniform( 100, -5.0, 5.0, arrayOpts ); + sigma = uniform( 100, 0.1, 10.0, arrayOpts ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = entropy( mu[ i % mu.length ], sigma[ i % sigma.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/anglit/entropy/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/c/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/benchmark/c/benchmark.c new file mode 100644 index 000000000000..bfcc03463fd6 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy.h" +#include +#include +#include +#include +#include + +#define NAME "anglit-entropy" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [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 sigma[ 100 ]; + double mu[ 100 ]; + double elapsed; + double y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + mu[ i ] = random_uniform( -5.0, 5.0 ); + sigma[ i ] = random_uniform( 0.1, 10.0 ); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_dists_anglit_entropy( mu[ i%100 ], sigma[ i%100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%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/anglit/entropy/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/repl.txt new file mode 100644 index 000000000000..6f3e3770df10 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/repl.txt @@ -0,0 +1,32 @@ + +{{alias}}( mu, sigma ) + Returns the differential entropy of an Anglit distribution (in nats). + + If provided `NaN` as any argument, the function returns `NaN`. + + If provided `sigma <= 0`, the function returns `NaN`. + + Parameters + ---------- + mu: number + Location parameter. + + sigma: number + Scale parameter. + + Returns + ------- + out: number + Entropy. + + Examples + -------- + > var v = {{alias}}( 0.0, 1.0 ) + ~0.307 + > v = {{alias}}( 0.0, 2.0 ) + ~1.000 + > v = {{alias}}( 1.0, 0.5 ) + ~-0.386 + + See Also + -------- diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/index.d.ts new file mode 100644 index 000000000000..23f3f7dcb903 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/index.d.ts @@ -0,0 +1,62 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the differential entropy of an Anglit distribution (in nats). +* +* ## Notes +* +* - If provided `sigma <= 0`, the function returns `NaN`. +* - If provided `NaN` as any argument, the function returns `NaN`. +* +* @param mu - location parameter +* @param sigma - scale parameter +* @returns entropy +* +* @example +* var v = entropy( 0.0, 1.0 ); +* // returns ~0.307 +* +* @example +* var v = entropy( 0.0, 2.0 ); +* // returns ~1.000 +* +* @example +* var v = entropy( 1.0, 0.5 ); +* // returns ~-0.386 +* +* @example +* var v = entropy( 0.0, -1.0 ); +* // returns NaN +* +* @example +* var v = entropy( NaN, 1.0 ); +* // returns NaN +* +* @example +* var v = entropy( 0.0, NaN ); +* // returns NaN +*/ +declare function entropy( mu: number, sigma: number ): number; + + +// EXPORTS // + +export = entropy; diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/test.ts new file mode 100644 index 000000000000..1e3156fd3dfd --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/docs/types/test.ts @@ -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. +*/ + +import entropy = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + entropy( 0, 1 ); // $ExpectType number + entropy( 2, 4 ); // $ExpectType number + entropy( -3, 0.5 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + entropy( true, 1 ); // $ExpectError + entropy( false, 2 ); // $ExpectError + entropy( '5', 1 ); // $ExpectError + entropy( [], 1 ); // $ExpectError + entropy( {}, 2 ); // $ExpectError + entropy( ( x: number ): number => x, 2 ); // $ExpectError + + entropy( 1, true ); // $ExpectError + entropy( 2, false ); // $ExpectError + entropy( 1, '5' ); // $ExpectError + entropy( 2, [] ); // $ExpectError + entropy( 2, {} ); // $ExpectError + entropy( 2, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + entropy(); // $ExpectError + entropy( 1 ); // $ExpectError + entropy( 1, 2, 3 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/examples/c/example.c new file mode 100644 index 000000000000..c17e387daceb --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy.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 sigma; + double mu; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + mu = random_uniform( -5.0, 5.0 ); + sigma = random_uniform( 0.5, 5.0 ); + y = stdlib_base_dists_anglit_entropy( mu, sigma ); + printf( "μ: %lf, σ: %lf, h(X;μ,σ): %lf\n", mu, sigma, y ); + } +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/examples/index.js new file mode 100644 index 000000000000..6d8dcea01df9 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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 entropy = require( './../lib' ); + +var opts = { + 'dtype': 'float64' +}; +var mu = uniform( 10, -5.0, 5.0, opts ); +var sigma = uniform( 10, 0.5, 5.0, opts ); + +logEachMap( 'μ: %lf, σ: %lf, H(X;μ,σ): %lf', mu, sigma, entropy ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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", + "entropy", + "continuous", + "probability", + "prob", + "anglit", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/addon.c new file mode 100644 index 000000000000..1bfdabeec67a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/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/anglit/entropy.h" +#include "stdlib/math/base/napi/binary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_anglit_entropy ) diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/main.c new file mode 100644 index 000000000000..ffb1cc220c94 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/src/main.c @@ -0,0 +1,46 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/anglit/entropy.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/special/ln.h" +#include "stdlib/constants/float64/ln_two.h" + +/** +* Returns the differential entropy of an Anglit distribution with location parameter `mu` and scale parameter `sigma`. +* +* @param mu location parameter +* @param sigma scale parameter +* @return entropy +* +* @example +* double y = stdlib_base_dists_anglit_entropy( 0.0, 1.0 ); +* // returns ~0.307 +*/ +double stdlib_base_dists_anglit_entropy( const double mu, const double sigma ) { + + if ( + stdlib_base_is_nan( mu ) || + stdlib_base_is_nan( sigma ) || + sigma <= 0.0 + ) { + return 0.0 / 0.0; // NaN + } + + return 1.0 - STDLIB_CONSTANT_FLOAT64_LN2 + stdlib_base_ln( sigma ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/data.json b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/data.json new file mode 100644 index 000000000000..acdee8e7fca0 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/data.json @@ -0,0 +1 @@ +{"mu": [-3.180929733436686, -1.7694073383982598, -3.6737122231523536, 0.48528347090787527, 2.3721258645716192, -3.984423536114181, 2.28175908076941, -4.116455265376211, 4.619707005265038, -4.9055292118771865, -4.544389829633478, 1.6154552078533202, 3.4134824285723138, 2.5992133823493067, -4.058043386303147, 4.499604218477902, 2.917539520614163, -4.945526855116099, 0.31995453951301833, -4.420768764237957, -1.9574247410127388, 3.0552329630847392, -3.349149303169235, 3.096340754054424, 1.175998666386092, 1.2172137955207667, -4.111589372119191, 1.1200464804743238, -2.047306008490261, 4.930903642448026, 2.3783391703397285, 0.1748631571132755, 0.6672152009154786, -3.519455423812823, -4.819244254705772, 1.9374931464983582, -0.061504087725180234, -1.1888704907856562, -0.9975585178638209, -1.106046458362476, -4.620502098277378, 1.2833879552120697, -0.6557628473835724, 3.2195536238460125, -1.5553751296697294, -0.8959455219385077, -1.5556871925864768, -2.5451002109393315, -3.842558483686868, 3.292532148914244, 2.0807353595371803, 3.470490289835281, -0.06988685826045682, -2.491453674610523, 0.07084384082340023, -4.44425422810662, -2.797143437651747, -2.405662214800034, -3.445397410760381, -4.760078286591608, -0.3406831424269887, -2.4946767380903134, 2.4708470483028746, -2.5224283601269404, -4.550310437127385, -2.787677667812477, -0.8364183894961847, 1.730541702230287, 2.3281334748496416, -1.0961704093364255, -1.5845622205051924, 0.831785323506673, 1.3384555018964477, 3.1265287952175207, 0.585086169042853, 4.964337296467875, 3.3906901071655717, 1.8812417330753703, -4.877331602535296, 2.101162847926041, 0.8017867048712501, -0.6856962214992119, -3.554394485167852, 4.6220719337407665, 1.6806371518432854, 2.070720406363826, 3.7997253359248297, 3.013824600637463, 4.30334135498452, 3.1941263669679927, 3.5836936763503164, -0.28465286871840867, -3.1386951458157686, -3.049939304981076, -4.143292206761853, 3.60470930685063, -3.9786816038066997, 2.7679732926566185, -2.4555102095950887, -4.103071805514865, 3.4672126239335324, -4.917874108315604, 1.6785965153670537, 3.2903910876352978, 1.7562925313726554, -0.5848145797561157, -0.10002757187375888, 4.296947563831665, 1.3666077146972464, 2.5582567100997347, -2.153363756316745, -2.3658467186769503, -3.141316809521598, -4.712511982745893, -2.0211535618913734, 0.658067280329961, -1.3378729346943699, 0.10366165687538142, -0.3259885904031794, 2.762234259528608, 0.321559426364705, 2.9850129005769297, 0.607117477308222, 0.6456154068436195, 4.365643672495196, -3.0192265465608505, -2.7167622564217475, 0.128606744458021, 2.965006087773655, -1.9766923794731293, 0.27492018282237485, 0.007331627573377908, -3.5681960753233986, 4.368706750600866, 3.7643362669528386, -0.7168453413156497, -3.385622802280798, 4.966934765694123, 2.3775092408583056, 2.890610642642047, -3.5222122421057356, -4.155226717226316, -1.775158219565144, -2.1416412925131976, -1.5691681618541429, 3.712160607792761, 0.8506968157626886, 4.311857115002288, -3.4022719928194833, 2.274194538928204, -2.15975742851922, 1.4272924125743316, 1.9029647544442705, 3.6561845392806607, -3.298084236766703, 1.6272798980862655, 4.966750639644143, -4.930946522275919, -2.2251888473904433, -3.4335644465787185, 0.37124663038551464, 2.3955577685683824, 2.175098778304484, 1.1502386178418122, -0.6592682955035931, -4.443081998426608, 0.9229357312924238, -4.52093676219619, 4.639653933790111, 1.3699804757558827, 0.22836462929761137, -2.3154265641505614, -1.945148363157009, -0.2685048613365124, 4.112076074703802, -4.510870704335529, -4.433172172729289, 3.1760908058999355, -1.2484102061801194, -3.7077135591896884, -3.5467765073908364, 4.925251272132098, 2.285678858731006, 3.625278876071933, 3.54209351369785, 1.1583749548518565, 1.8466350019280409, -4.885396472683948, 4.893076531479929, 2.7919059240475974, 0.07576101519012912, -2.668002610324125, 1.7274496897878926, -1.6744459770260542, -1.6985890161520745, -4.782618064325105, 1.4526714599337511, 2.2103060717960252, 4.459965409109508, -0.6033856021173909, 1.6383223092181511, 4.936957762765736, 0.40913950509151675, -4.233728321667457, 4.630496390787368, 1.5947677964815394, -3.0987357040938726, 1.383435254628762, 3.1325911905584984, -4.228023212369245, 0.9199329857693233, -4.809086166554052, 4.8936036384971064, -0.4299837084441869, -3.7599933646341044, 0.8897341987843053, 4.6880320687402826, -3.222207022125133, -2.2267763416177977, 4.793843354986258, -2.419060382722612, 3.312440616248262, 2.571554494190603, -4.835655969239973, 3.853543004452751, 4.535491786691688, -4.4026920268929635, 3.229398004938437, 2.1019818306772944, 3.238224428609813, -2.4822290548715387, 4.706388913660417, 1.734171235632945, 2.1881211255642583, -2.089686080549172, -1.1508750785771236, -4.267973561030346, 1.1957555646896392, -3.4439690005479164, 1.7794936971818949, 4.827052574363423, 1.4581990879878166, -1.9015811522404178, 3.9669831775378768, 3.1340498842759246, 3.8962812239732934, -2.3852473915172956, -4.32331057022671, -0.7298344089450275, -3.3693109083463915, -3.3265647350721417, 3.0268235544214797, -1.522436069634594, -2.1155424147336, 3.625478615750353, -3.95640965186433, -0.9585871023559109, -4.189589100845639, 3.3965148695851184, -1.6422326892363937, 3.7150451610273567, 1.4795112605145997, -3.373956626742678, 4.995467003977431, -3.749742320949412, 4.4064511480586805, -3.5489508202167763, 1.61024951191484, -3.7379611591461934, 2.7877755889889064, 2.665200052440654, -4.353270216445603, 1.8864697437267903, 1.5961731615715156, -3.1614635377805644, 2.1926269538031793, 1.6805144843474604, -0.6832397408399196, -0.4060028169049632, -4.690278019305554, 3.849510715271702, 4.30077720081486, 3.4009020177745892, 0.15676123589955182, 2.547191807870841, 0.6330070082817034, 1.9886154530388716, -0.3164153368916107, 4.247632805688411, 0.09038120104293768, -0.6051878402879796, -2.778357903293769, -0.36958662279912424, 3.736943757367401, 3.762178256212996, -1.234926288911197, 4.368165605668095, -4.8159184898985785, 4.450026989752423, -3.0140244235104685, 5.333195561406253, -3.2890018644016976, -1.0519579533650774, 6.559747923291109, -6.757661168522784, -3.1910626027900824, 6.557198413895186, -2.2941428566091027, 1.031093258322766, 0.6921917983760295, -6.871979695344299, 8.860939472187745, 3.7616210026529657, 2.524351058266106, 9.8783391933327, -5.531558653253825, 1.0899083729753514, -9.737112215539616, -2.535240124924747, -9.701079275065327, 9.299769716131227, -9.014540032965053, -4.26230269612577, -4.595095115631514, -2.3430912159618504, 3.4233836588486284, -9.24133426760868, 4.607758372245099, 4.965196020960477, 0.5007814136342237, -4.75359121561548, 7.958203441074321, -1.4201457432433013, -0.39792291246600797, -3.6007798504559485, 5.869657605659002, 7.735476560978263, 2.8157516416814445, 1.193814672211392, -6.109139885860917, 1.9877780110371024, -0.808588457608284, -2.0721890384612207, 5.927900395010287, -4.969488234297854, -6.388069840375619, 0.6385822713275751, 8.894155752974115, -6.608765058691266, 4.203748646723664, 4.722957474812873, -2.419488915403223, 7.4355898309281905, 2.898295663051975, 8.778391443861445, -1.7062966717625017, 6.5768235215715585, -8.716607464534434, -7.945237205652158, -6.505591743448682, 2.8080961828616466, -5.38620843952935, -5.798427692354804, 6.583440678191405, -4.630885956659356, 3.3832471304354925, 6.066412690160817, -1.419510286583069, -2.4797954575610497, 5.853699563901607, 8.14018479757, -2.1236749326533255, -9.847444573734489, -2.577243795004529, -2.5053949550855403, -5.95031910275253, -7.021693141837928, 2.441687160624369, -8.999627151885523, 3.2574703343264044, -5.886148679999151, 0.8377720484332745, -7.082565779030087, 7.998865730446106, 5.722455766952345, 1.2741880184418068, 0.3435923607199616, 6.1020669318155285, -1.290031053908578, 9.574304062267377, 5.7028955698049, 7.568222440388688, -2.27851697388404, 8.433861159144179, -7.43368244783464, 0.5495528610571121, 0.8914506282291583, -0.9870525606184728, -5.4871772488468595, 7.045150090503853, -8.832319679023406, 2.3585093948493796, -8.990482808381643, 6.0521494102397355, 1.9132072744997224, -6.497729374892396, -2.4733279279941156, 4.060116141051104, 3.5361681164684775, 1.1468762896020905, 8.730179288840858, 7.293799399990785, 1.3895258386725828, -8.433577651930179, -4.131654810455867, -3.846247613928049, 9.44923806730873, -6.6873086514564095, -6.244037465871399, -9.885981732759499, 4.3382746254344475, -4.228069106483085, 3.7029537474500884, 1.5983843636126238, -8.389644818001685, 9.910736801158734, -4.2321407558874995, -2.8778385195813527, 9.430147739124607, 6.667179903959653, 5.870589799908659, 1.721616108734903, -7.283755860949912, -4.404316218884203, -8.720117790373518, -2.766889991769153, 3.469391261856442, 1.465351427828379, -4.7574575727812825, -3.658174462300183, -1.3506086140804427, 2.8229049038072507, 4.188376364330406, -2.118492432803585, 2.681052144258496, -5.194128396650899, 0.6193839865381285, 4.749114920870392, 3.4015856450887654, 2.6896397318520204, 5.22477156777885, -5.462505701862415, 6.3008438835308205, -2.033461764276141, -4.848290575079379, 4.9568944590198605, 4.16845967338042, 6.269565868417558, 1.4412230563436506, 6.460617614533419, -6.111396996506773, -9.560607107535386, -4.963153443517929, -3.501729181225823, 9.45468698505072, -8.02501089581443, -7.858540601777253, 0.8394787996961703, -3.5888978034348007, -6.490996642370561, 6.332314272135214, -6.862575664571146, 3.834205507490246, 5.888596506777057, 8.356886167469, 5.471611977951358, 1.7586776491438112, -5.154409967655916, 6.736693813332845, 2.244142346194577, -3.5298010072024244, -1.4984925544381085, -0.30441781695058623, 7.3666533674865455, -8.335421449089262, -2.752885127594502, 5.6875006929466565, -0.6172378224916937, -3.6979640861805185, 4.506944522789739, 0.5226427160509939, 9.243433990546855, -1.3038322762120877, 6.726038427256441, 1.0801892611344996, -6.000898662633272, 3.3397769030204767, 1.8061165195484374, -3.973695779363471, -7.111155730209968, -8.32992357328395, 7.6853526670296155, -9.622716823988949, -3.498089078650155, -1.07298131374651, 8.891955155417339, 1.111183240593956, 1.0468415724269136, -8.24888732403932, -2.70132284963557, -8.407779972300759, 3.0880603564909315, -1.9168061997001686, -3.14792848844196, 6.407374552022201, -9.492076747331303, 4.084163538440258, -0.8923849718909054, 1.9832356243235498, 8.079279244422334, 4.132310593819728, -9.575457725896918, -0.999615534679549, 0.21007026350365976, 2.2520358173249644, 1.9328503836915125, 0.9019866514139867, 9.061008109420033, -5.359188186773965, 0.8114691884054217, -5.8464483555154185, -1.8705424967166735, -0.27432837205647687, -9.635802115966934, 9.063859983808559, 1.4329642442780344, -8.627543545378032, -9.293417297855191, -7.4684053695468045, -5.595041063807484, 5.5847696825029445, 8.464415144331653, -2.8870278414953043, 8.261258265934647, -1.1335139550748004, 0.6556709632626223, 9.334230704790318, -0.2922115206849707, -2.084325716363418, 8.792594163739441, 2.4290271256471225, 5.696712983128883, 5.1293619978254235, 2.055999528728778, 2.6544280795378725, -7.124294892446339, 8.2240996635871, 2.6000312056520087, 8.434316824474578, 4.566729563631789, -6.675737986734395, 8.042115008089986, 6.623221010202531, 5.658315036775042, 3.952388208635673, 2.900102571353587, -8.02603021786953, -7.106722114600988, 8.459443944638824, 6.716383655797372, -1.094335378241226, 4.953817206319117, -2.7538665117361427, 5.8952394042133704, -6.964924118910563, 6.833320606787321, -5.150065481892636, -3.6680803201361556, 7.206940651458936, -0.19806900530473825, 7.463522696387599, -0.16123339162750838, 6.9345018948085695, -0.8980803158787776, 8.507237404829503, 7.5529229463755065, 7.642699098958822, -4.567620585950552, 5.107834956344995, 8.333254266236537, -4.009454582081693, -3.544483122112549, 1.7572245062714504, -9.42385883743478, 8.413966400000351, 8.359453305256785, -1.2201260179651623, -4.687729369771761, -9.43953068752281, 9.261421668298134, -3.6824215488804484, -0.27628622555833715, -1.0138129497365291, -8.457401518749785, -6.129429616637125, 6.018028788001594, -5.421284768099227, -5.567980454424806, -17.618568798982096, -1.1799657433999613, 14.272389580545173, -9.621752989477436, -5.991789513983768, -13.802102613771341, -13.58329744662733, -0.9390551869735049, 9.240240659087164, 5.4095080756008365, 13.214084599738115, 15.340614943750111, 3.046396911155405, 14.110374949185307, 7.6291271664535, -9.266005627265175, 15.692458627659349, -18.484674677778052, -7.568538176196276, -7.221230654558642, 7.3169564163722995, -2.918398314701413, -8.91983460909021, -18.755283476737972, 11.700736530142784, -11.096311002918267, -3.0294840809042043, 1.7052340953923846, -9.026529770106828, 14.615560517672002, 17.098175429333452, -17.795712911657017, 16.33418206524147, -19.674199155903317, 16.38536950159562, 3.2435257532748416, 6.438457431601403, 16.09015426736387, 11.545660044345425, 1.972246366505157, 4.046542919406207, 2.0955102626025557, 1.2426556849438413, 5.986456130913005, -8.821223070654604, 1.8138774578585561, 16.57228868445013, 10.204282119113557, -15.512272899523744, 17.594987372838688, -7.047053895691517, -18.121071991464785, 6.140342945539157, -19.90782877771354, 0.44542376439752474, -18.399173691950963, -1.2897260271448445, 9.818213628744516, -5.08278751868299, 14.320870026125128, 11.799060932064798, 17.645129269689967, -10.619628741878806, 19.70867614436456, -10.441056878702671, 19.393955601864363, -16.845225521301877, 15.74758850957533, 8.242556217464738, -17.112094442207805, -3.0978899700001463, 8.309277133183425, -14.608956106697377, 12.945792664034819, -3.07768097264627, 5.320504103957223, -11.173026570753791, -19.30150487827019, 0.29268579448650556, -19.907579750680195, 5.736014221431919, 13.747487281848343, -10.443333450975171, -1.9592368203847776, -10.713233935297954, 0.4212452618661864, 13.727323880997233, -5.506213796794061, 19.602692632960007, 13.613501698777924, -12.41925482919195, 15.484187283626063, 16.66502371724529, 14.25206328940142, 0.591716251711361, 13.791559680190474, -18.661239516095023, 9.566600758244789, -16.91076280482701, -1.3741948261158399, 13.744063505107562, 16.44088258570641, -3.0411223838058703, 10.73342968722994, -4.522669290217621, 13.989996342601337, 14.244145817276205, -3.2538730478438183, -17.75866170017416, 8.251546208599482, -7.060025202915664, -19.426502418159647, 3.4713162282318812, -16.5224747747906, -15.3813958898103, -5.882976801862249, 19.611031065754567, 8.945430325470355, 8.22553961617107, 11.868460666397944, 12.322724744335005, 13.999305315515926, 6.6536202830473385, -16.47630488260088, 7.1363178160439915, -16.602198412940773, 5.178947006385023, -8.965252093578616, 15.989414344071363, 9.822540166919214, -2.863314415970759, -12.114228130085237, 19.283831739233086, 16.94467849008342, -11.43778541137733, 1.1142317397309007, -10.977188804575402, -2.5004635434772595, 6.982080605033122, -1.1888102278561838, 12.05385284725741, -1.3445325913235706, -16.864313477570903, 1.9768561770307542, 16.016211922916717, -2.4721977375334987, -18.766140282730348, 18.508745099079732, -8.602207641062613, -16.57313536146404, -12.219275000955573, -11.764018436622798, 16.110003150305843, -15.738257597872046, -11.393085601392748, -4.871540385621941, -0.04275297751331664, -7.273450191774447, -12.33525963362049, 10.465764876681835, -13.520206260761185, 3.793327692359597, 0.03383622170712286, 13.129630220184374, -10.551492027754762, 15.708764386601999, 1.5253616712027416, 12.32489876683914, -18.713087603705976, -5.742317949630724, 19.657080035034454, 13.559642004293188, -7.43177211761072, 16.1292161179215, 18.85187342866017, -0.5858724484013038, -7.3235919721632605, 1.0183158055327333, -19.756509508192977, -19.26688678879518, -12.371733041074581, -18.732569687189326, 5.042300929343064, -9.255447685918146, -19.209447287690125, -7.825949035174284, 13.869466845706114, 8.384077849142496, 10.550705727231836, 9.837355180285993, -1.462220362309985, 5.987211899797451, 13.05874504866371, 11.840492316386321, 13.711411375364179, -14.1911791567099, -13.777421031934471, -10.308683366184956, -0.11973962026369023, 16.562359741366336, 1.5645079160786501, -15.89158269802267, 1.6224858482915572, 9.438076210141574, -1.8549125967304718, -7.50351935999014, 1.4234634768082017, -8.517032003766554, -16.638271776655046, -6.205358678533223, -0.6504139453273936, 1.8070439897609845, 0.5123949528545353, 0.43915161556138926, -14.65288715204306, -4.298985142629261, -9.377047828329111, -0.3082036367424337, 4.839566255905893, -3.340029924717914, 3.275250652809799, -0.11173429141602753, -3.4453565745578594, 11.802809114676673, -12.88002634810021, 13.080254935418004, 10.053083597809177, -15.011501093100454, -16.260930508334226, 5.378266524228383, 5.9813236728358135, -18.349166689539818, -9.616325812154521, 15.706422651878981, 9.616862143737968, -14.975801450316144, 4.579000253117478, -10.631812894034276, -15.825412838204755, -17.154023141782176, -10.109007560635783, 1.8181677960701492, 9.042459673756156, -0.1669983847272114, -16.32224287703782, -1.772528126249668, 13.376275511912269, -15.461953590604178, -4.392138173898292, 4.421572043181822, 12.86607341395441, 9.300936020243991, 1.262438614852254, -8.025941065241913, -1.1600139619036511, 9.103393603218436, 11.172888770249262, -0.7729048892938266, 15.72250161769567, 12.140811747769256, -8.412938319358556, 19.556461200982028, -4.476727175383633, 11.072152680237707, 6.402415392924038, -2.966113519665683, -15.353517414017844, -10.77802124501018, -8.89451628275705, 18.443257012870838, 6.054940606599516, 8.529216936605867, 15.077626264449876, 13.40981246645184, 8.082866868657945, 7.464279582585107, -9.15966456956884, 10.004277554020042, 9.790659288640214, -7.156837646657689, 9.973386361322909, -6.56284981726078, 12.941002574712165, 8.936595499663813, -16.49654580745765, 2.6305736295990947, -14.291481891166725, -5.676776775378091, 19.21141999332371, -13.516361650504631, 2.254288142695522, 8.421431259937702, 8.81912572476947, -10.169245250223874, 6.278025334031639, 0.3923221308948719, 17.145749812890614, -7.5361366657038875, 12.387523410673445, -1.248898842698388, -8.033891357672736, -1.5031803415187142, 15.996797566882762, 13.070492770540277, -16.236923149353714, 14.223280848390736, 7.843980558453794, 14.90747554300556, -12.571307668511768, -15.84911843660182, -3.9574228368970665, 15.024698564487629, 0.4279622432538801, -8.95277320653685, -15.809240482980487, 19.29461084146336, -8.578825881352877, -4.102322206337764, 16.073300165572014, 4.192914749547111, -1.031661664023268, 13.660852142318404, 0.9720384343192059, 6.9254405521282365, 7.494046078476089, 12.05378644778554, -16.423679825280047, 15.100140844790829, 5.631982115053546, -13.362207505036515, 19.210026728398674, 3.8382107450790386, 2.0402905024338054, -8.900235633442751, 18.057759552259064, -18.099222198821515, 5.672988914879635, -10.477580776159861, -3.4113890405572533, -17.036195894436506, 2.719989987252486, -8.769587116118295, -1.281482665062864, 18.386299813704888, -11.480193535741346, 2.4573905725004117, 7.32550150040597, 12.824369852459832, -7.320094624562582, -19.82689718423858, -8.122779878732441, 9.635966954182443, -19.88899563270039, 12.706134927990668, 14.393288179190016, -14.880378124231207, 4.3395070948681, -13.469968272211958, 2.994846339500814, 5.579786950461983, 12.511246587501525, 18.799934870314694, 1.6551897455179088, -13.912510345666064, -2.8379513573250037, -16.581087081946517, 17.83511879125242, 18.410402216772283, -9.747485691222852, 11.009657496820708, -12.457551607049417, 4.303507714309944, 17.987411106687944, -6.245779166930001, -9.145326998523892, -0.9909960815509606, -9.286799277768667, -17.018297345765507, 10.975285800268537, -16.611651648409257, 5.54411199433201, -0.17158461447079887, 1.65728681275354, -17.927199267245037, 0.2040969321236794, -10.8212823470602, 7.357816541031564, 9.002853826645087, -13.449689004133681, 8.942937626744822, 0.732629929443867, 2.2812682491743494], "sigma": [3.8799786645362584, 2.848938742398699, 1.963769745299956, 0.4307302540644089, 4.718623375161249, 4.202570350185605, 1.0365265202527119, 1.1163590083167048, 1.0153659357680869, 1.2516263211522056, 0.8162225096373673, 4.603824100280828, 2.1361064579818585, 1.1969702440502321, 0.6450035848514597, 3.870939959395572, 2.2199837262884383, 2.962833306906944, 3.292687959563706, 0.35786374064555715, 4.198384459413558, 0.847981973605557, 1.2898583824088323, 1.0858136870735098, 4.3208271369589735, 0.9734779850845693, 3.2302930884275005, 0.3684944135308278, 1.6191617069479762, 0.40222377034489365, 3.8860130523016045, 2.9177681571542493, 3.7672841581354866, 2.970845357177411, 1.768882050856731, 0.4602459698054179, 0.6792188997245021, 3.4500257112820605, 4.736171440453132, 4.386950441117276, 4.416903074146496, 1.8178344765835224, 2.838216328268612, 4.957866015840977, 2.1600743214203293, 1.0440697123959453, 1.0885786700586864, 3.960079170122555, 2.829245414095431, 3.5997101817558343, 3.4496902828176967, 2.8703514986700287, 0.5686679073042996, 0.7209434613613832, 1.030423050606169, 0.21457144301176964, 0.33683308645829424, 0.5517474963457959, 4.798633846169755, 2.1778489563012737, 3.8453460292140766, 1.483044915598812, 4.594541776051972, 0.5211602424600138, 1.5111955073839836, 3.3909253097492598, 0.9883943068300063, 1.0178536543821195, 0.6866109995867056, 4.302971135984645, 2.9888741641661545, 0.9676996483401173, 1.8460402162535499, 1.7537588125765255, 4.32514867263292, 4.191133171614035, 2.9166227110503624, 4.670235122538691, 0.33371301273817855, 0.5374134000782396, 2.2800557917795454, 2.588244251353305, 1.4499959622745846, 2.451482389827273, 3.91298029879901, 0.5523561043299843, 4.286855618958575, 1.1287112962527122, 4.261191643821026, 3.4214376766719217, 2.5703172096295908, 1.309010031303112, 1.6381604798736293, 1.1832141738603437, 2.3394806996863116, 1.72006146833761, 4.051259516748098, 4.252906384778347, 0.49454789642778885, 1.3546937025791164, 0.2921663770912942, 1.9555489168804074, 2.0899072946647657, 3.5124912618563866, 3.3020793756725477, 2.770081150771335, 4.362063616723489, 1.5935248217144808, 4.191218430157463, 4.664598999241546, 3.3412855278009026, 1.8963124235390934, 2.9121858637682476, 4.544656872585408, 4.20164134779545, 4.762831091347844, 3.6845073828673436, 0.6569706961818305, 3.0358049615817286, 0.28695166090787316, 4.200585300389224, 3.525427825191459, 2.418181675913838, 4.395720684641621, 4.313260307532146, 1.3945743750077935, 2.660384994483161, 1.263055614457336, 1.5094901543716117, 3.851496222428474, 4.5074765626157065, 0.5070287882709332, 4.456767247849236, 2.6888384962577696, 1.269016369792334, 1.0680330546314036, 3.230093096737037, 1.3074290682736602, 1.8962527690471631, 4.303948228386183, 1.14414793552518, 2.1320396368978844, 2.324778913713934, 3.199812747649024, 1.0423765953874213, 0.7642047915574384, 4.949539973259674, 3.048394801306039, 4.132185535653068, 1.1181387526809186, 3.148423815299975, 3.6483711522101885, 0.6295314647693288, 1.4823165701119139, 3.1032583014591926, 1.3334156772448533, 3.209335344839706, 3.2659557145523435, 3.966490477303054, 2.7735550859946954, 3.929366911692971, 1.4978785442187268, 4.756393911322951, 3.506879186921027, 3.644976933535979, 2.504058355363407, 3.541562865832596, 2.6689505669990927, 2.6767794774507427, 4.763046014248203, 3.4899503497023803, 3.673945262848974, 2.948778425488825, 4.663119376154548, 1.4913607179775628, 2.736312034187527, 1.1265279045223286, 3.1006835512758424, 3.900661789917401, 0.4810533387266439, 4.966478315197988, 3.7742626546103297, 3.1752468227391266, 0.6784949420656347, 1.0830615635306275, 2.940262974611323, 1.370987383623751, 0.6123048189752117, 0.6401075906875112, 2.9533350055019505, 4.528406733041105, 4.8523017061958305, 0.4577681125919326, 4.013524079679247, 3.65626453965367, 4.785997385239777, 0.5254556255332691, 1.8404541860393264, 0.32253661871394557, 3.167941521135443, 4.460399917735069, 3.2164450396296935, 0.5259156518313817, 1.735106255532953, 0.23865981891464963, 4.383974482186853, 4.672230508312991, 0.6573951403171575, 4.1665845093090494, 2.2858375326324887, 2.1711696773493756, 4.728968830775182, 3.5315261999729066, 4.346617660079308, 4.266667258651663, 2.512551430500979, 3.57936448685121, 3.3574554583037206, 3.8360289271770083, 3.0608954839609845, 3.668911498342337, 1.3786421242592712, 3.1789292731393752, 2.788861272584883, 2.93300342874969, 2.135619390973959, 0.38291613410782643, 0.8488457874320312, 4.753343996345817, 4.395640277105978, 0.9569815629451377, 1.3901148062065882, 0.9464633953417466, 1.656907016743919, 4.630698136518521, 2.0498209719734777, 3.1835170350657465, 1.8859403354654765, 0.8462170972027094, 0.641441856886075, 2.866364654384774, 2.7014274320170664, 3.7425879801291293, 3.0958980583071622, 3.0141143019494914, 4.296461326514328, 1.3031531695065304, 3.204761083050865, 0.26615569549404916, 1.2889979338413495, 0.27899142562579493, 2.250970967902508, 1.5142505572856304, 3.928724729518283, 2.3907776846269964, 1.1496939879032335, 4.140452630618947, 4.3540906477147665, 1.5610227578042448, 2.860725781859182, 3.513746204407091, 3.8427081812646247, 3.3699535307871935, 1.9142297894266358, 4.647673498595293, 0.5145041786283797, 1.759374463744238, 1.2028900520873502, 3.344907489466571, 4.036115367417698, 1.2648370335314112, 1.0902166990193483, 3.56340191492803, 3.2780431958920353, 1.7345591103284994, 1.4528588379998917, 2.591525021829306, 3.9306064353877197, 3.443998584954749, 1.6839977821314605, 0.9382557954625744, 2.7193330885421063, 4.220223490055443, 2.128045161799179, 4.892348551600525, 1.478956556077117, 4.4157515123295665, 2.298602799812996, 1.3700562983114313, 0.8871234060702526, 3.399474035687192, 0.32812843417704274, 3.91324086918339, 3.3494797216465564, 0.19265700943489875, 3.0162671789640663, 3.372484025642082, 2.8449803301940344, 3.924446713717546, 2.3718944199262744, 0.9272344756704928, 5.112874488059701, 4.2837134014780975, 0.8643503937574061, 8.90283967859138, 9.362689046341082, 0.31347129407439434, 5.512125298252367, 5.619455301697826, 8.67009362354784, 6.938086027975026, 1.543385485950148, 9.488054650580738, 0.8094067032098834, 1.491971877515419, 8.88158225593877, 0.9392584867944714, 8.166237957352934, 4.4419031923642605, 7.627410737834718, 6.8319739071815695, 0.6890909823162695, 7.404303100400226, 4.720555993873469, 8.063765714999624, 5.912171446168791, 3.304773793475283, 0.7812786332754584, 9.916155095268987, 4.806946933696732, 0.7603036629885644, 6.748143710037368, 4.8103868287821046, 2.947088468812514, 3.9790978886094424, 1.344510604182176, 1.0941019847925106, 8.104708182658396, 6.925594717010238, 2.0237901019657403, 4.4616357210616515, 4.122175374856917, 5.528954504199426, 4.515017589629653, 1.3118221186142949, 1.9305943476588499, 3.306286572932251, 8.328416859876047, 4.295790015469351, 0.7730674238289604, 2.0767197255363485, 6.426929618408542, 5.620162018255959, 6.404247101635646, 2.9732457209438596, 9.559360255769578, 7.035806685370459, 9.78878307861798, 7.25199110347488, 6.068771017106813, 1.4784120892279857, 9.769640799137989, 1.4537208030708522, 8.525030738342235, 6.832760055840262, 0.4631021326652688, 3.202757808103956, 1.715670586682985, 3.8305655129330973, 1.6517071325437473, 5.463976430419432, 4.848189358134383, 2.926371419899882, 6.055509111326807, 1.4036232266228554, 1.5913423421225381, 7.994171701932025, 9.958471855548513, 5.960492906116254, 5.0599945207710375, 7.563196895213857, 9.68153142443644, 2.2025314071606714, 5.978771618063369, 6.8862241162627935, 6.80433150871678, 8.622358557222432, 2.308546376502069, 6.506183970934363, 7.486306624904307, 8.233925998796337, 7.245713401322122, 5.376154071604314, 1.4662175572153031, 7.222536625809887, 4.736056198892302, 4.388456484010939, 1.2306252338032602, 8.926208440031324, 6.8016763734667025, 7.400348804679409, 2.794764212011973, 3.0077589641965545, 1.630009105762158, 2.4165323301224033, 1.5627066198108839, 3.975640063133935, 8.968912313507884, 0.3576304987637583, 4.933462798839017, 3.0474252577485093, 3.8288574478820916, 7.024416399434003, 1.9051955180226383, 3.3415162328634325, 1.0605675862542083, 5.438031688529599, 0.6841826242417623, 6.84353929048632, 2.962877408135841, 7.965387346403351, 1.9808114017930805, 1.2949029749608754, 1.8449125576669838, 9.39175590351153, 7.355550797206457, 0.27091800675033584, 0.7650724672161804, 0.2690771769921876, 9.140849654065157, 7.576747357729779, 1.1805835230763033, 5.377411897262429, 5.544073324978625, 4.949223014563164, 0.37203295872442643, 0.33915180299443615, 4.97252447110253, 9.408786308823752, 5.2869520527143505, 7.780666809190561, 5.1964378797588155, 7.345499744577954, 2.2388571830410937, 8.303933235422974, 6.7365054148532755, 0.5420823375133482, 7.505063760025301, 4.547844308804835, 3.707469055182778, 0.11580192421397356, 2.870226603803515, 5.504095503999103, 1.0050336640282895, 4.680278741305855, 6.241908005903756, 9.178664535578728, 3.303950961813694, 6.89531850230829, 6.196432390766271, 0.8249560916046041, 6.261051571384834, 0.1798103831137493, 0.19872075518036209, 6.894959079770532, 9.467861462473042, 3.0949845265815137, 2.649577574406111, 6.357676982556169, 2.916258986650939, 8.688821779162822, 4.535934823887064, 9.757546543083302, 9.154183088976525, 5.523707575596648, 3.7648900806663486, 6.009861089392187, 5.89153671040112, 1.7875706383544292, 5.179798799844658, 2.5465757939310025, 9.808277267524202, 9.795818871747228, 4.555381896069795, 8.948121277276504, 6.5078132221775755, 0.8726917803835037, 6.000428667700784, 8.970828528140027, 1.365404611855205, 0.9890637420266027, 1.1463927762927686, 9.12458320348144, 3.5794683491121395, 3.250434830405101, 5.57367113719843, 0.6982529587173615, 9.398991862549316, 3.5583575941186902, 7.701153549640165, 0.9323799283351752, 6.782431047884368, 9.349397804118215, 0.5318034739280827, 6.651720655298601, 2.3489103417505204, 8.16826483545456, 3.49912511234877, 4.2787239168297475, 8.646972268668396, 0.9428164125452934, 9.495662018534945, 5.176475131149943, 3.94468443371839, 9.597155957811246, 9.029924462610877, 3.841029243736776, 0.27122423955381314, 2.0476567935306966, 6.319833020605588, 2.889276188621043, 1.8580250436297823, 9.325716924144439, 7.538637964712077, 2.3897187648780855, 7.105414888497993, 9.000887171115567, 8.756563032399464, 0.42651041213412444, 4.0317695934106625, 0.3627178617625503, 2.3792606833737913, 8.41987243737124, 3.873443123758225, 6.263547732254015, 5.0537140268210115, 3.8672066232649565, 7.813838019705125, 9.254623775428424, 7.7989289548528555, 9.316108054400814, 4.901622173295288, 5.26674330376493, 8.410461072034101, 9.433979767158847, 5.054008368892099, 6.7268350596827835, 9.284189011734354, 9.078287873301687, 1.241729991555683, 9.92582236306736, 9.397838714246006, 9.37299580286617, 7.440704441979857, 3.3081170610270014, 6.259737458073277, 7.579947700538631, 4.342150395752786, 3.9004501843679793, 1.313029327080755, 6.079118464956358, 6.143410508889676, 3.169210066553603, 9.162919648329622, 4.184293599881967, 4.699980763580741, 2.8866166445565304, 0.22653733767959422, 3.952494783596487, 4.636332106075899, 0.23456797472349092, 0.4758155048773449, 4.751307713481965, 1.0903631699968082, 3.0110639516685493, 9.687902453589606, 5.366884506772245, 8.006366777627385, 5.883847245193006, 1.910746522377474, 8.006030641340992, 9.860837890644245, 1.7502040638355, 7.397354546523653, 3.6394320379423273, 6.007369596768957, 4.63123310089957, 5.904422693494275, 5.942472522368782, 5.387338019761511, 8.798850606800318, 0.8050841704300532, 6.64715469415231, 8.616394495667226, 3.234474702854183, 6.36233042283497, 7.084770596609604, 2.8924547837949315, 1.914596403968927, 1.517006469770115, 19.40886947703183, 15.912000093413006, 6.158100434458747, 15.59059652319094, 10.223690293831789, 1.6187126499230902, 13.272971771813758, 19.624126687613114, 14.232406127723237, 12.471521074685343, 10.381879149459929, 12.414099349069232, 7.802816083107112, 10.645428599142425, 15.915842667551322, 6.92117356332038, 7.684828801598984, 14.09050090152721, 13.12878856320415, 2.7136859844619203, 3.03283060391668, 5.468440517249863, 19.05263852700709, 1.5372806510498709, 11.643990880481189, 3.246641738498149, 9.77324580756494, 12.580486112240317, 6.369231426505179, 19.052653713084723, 10.25088408662712, 15.805889918587921, 17.372602694040605, 0.5225415541609182, 11.96604905649035, 12.264679147878532, 5.202436611987727, 2.500999901984209, 17.96839919859573, 5.553400756451693, 13.74907607327863, 13.098348639741708, 9.637436269907495, 11.980734155393714, 19.616864431256342, 0.357367046626355, 10.134950746047453, 12.80498497963142, 13.824978127822552, 11.622920221725403, 14.491290777976529, 7.449435722603494, 15.281769175738779, 8.10989818806397, 1.910022173636042, 11.376637996175177, 2.144854849770569, 17.454410075919263, 7.882761003176951, 9.74513758891124, 8.656570951900932, 4.574837837379855, 9.886194300072537, 1.0996447763849224, 11.242159011579583, 5.728689454024842, 11.50705136111757, 9.044648420913163, 17.880791269233104, 11.551872486326145, 3.7182094958460334, 0.9215670828991174, 0.9640321403410818, 19.233476137020272, 12.4221622847835, 11.534019100070353, 7.401585102877758, 10.68350566613411, 11.83527071964292, 12.982265404572258, 19.387662475725364, 6.924300186470305, 13.97081416031812, 2.8445243570722325, 16.3361484398523, 2.337862946266464, 7.241891996304661, 10.869984604040452, 8.0721091239438, 2.685409540461386, 6.9842056568232005, 5.804028123697828, 14.958050336560639, 18.65002736013134, 5.142349862577581, 7.923299210368082, 3.2868304913337867, 18.92131174676281, 6.920742235287405, 11.23506600420506, 13.596888220573328, 11.44751178616393, 7.515691540973055, 6.5074766927251915, 14.34097557611654, 4.255980302802518, 6.759220948196761, 9.631638280575192, 13.143117048662317, 12.66180841904508, 7.145254632452925, 15.225543070808872, 14.608515733079082, 7.810853036607885, 14.610870684416433, 18.2624504181076, 8.410111920165255, 16.394614574682205, 12.33166298668608, 16.945557111060612, 6.299023194188135, 12.697299124759871, 1.1795453981806336, 10.226774111625748, 3.5409620089725347, 0.6583427913396238, 12.302689489060143, 14.147406433868136, 9.294059031752601, 15.127763856451105, 12.629172166994056, 14.127286441416436, 17.416537455862173, 8.17294066054573, 11.09657873882132, 16.89849123999511, 15.20623197201365, 11.27810182124512, 1.9557144588507294, 2.570456457688563, 0.6328347747527676, 4.568339808032115, 18.896065905694794, 19.682784226782488, 14.179516587541835, 18.60423291275144, 9.793644805447311, 17.604277170689056, 2.9316115284428426, 16.662601599161025, 3.3347254824488473, 11.498041160604279, 15.229617207964056, 12.402122188336302, 15.883466282739727, 19.70944893410588, 7.2725383120423945, 10.348809845471418, 5.044993395843615, 17.73405133369819, 15.247234729261171, 18.47863711718832, 14.838354043919194, 0.2705576350108331, 3.207471531886324, 15.762570050688092, 3.45756018265339, 18.610225124418648, 12.309921774197054, 1.745442962243166, 6.210703706295282, 5.298053415583722, 15.621045317886095, 10.549595445536815, 3.6446654494403323, 10.781539018531987, 10.047364361800952, 6.7501251624552605, 0.22850491890340258, 2.252710662259863, 0.8971162510258099, 3.643442293895924, 2.8960266944976696, 8.167050440481091, 4.707291936280537, 8.76070333210245, 16.61253282237389, 14.60352405508036, 4.547841253578788, 3.5851973555146492, 6.998863678364547, 2.1866429752354866, 2.030948265238632, 10.481839769385012, 9.184106797926887, 3.893028265828464, 9.544169604859393, 14.228797456858949, 8.866843611733058, 10.564996747069511, 2.8123457335637907, 8.126789011393186, 12.686182730157084, 0.33818474442440305, 11.392837823479468, 9.879751393999745, 18.108738077134955, 14.042397344190512, 3.9847581306842352, 13.301942117945377, 15.657784543287375, 11.929532193717089, 2.8163401318884405, 0.9715354875717501, 16.05254639703159, 5.458478260049547, 10.98301670958174, 15.328190495898307, 14.19959570296195, 0.9776226530037959, 9.845781443970942, 16.760077696464982, 16.077242826792, 1.3012858785121053, 19.259727681210776, 14.905732831330537, 6.7681856218612655, 3.437242131783731, 12.665720856010745, 3.5632232196060576, 6.476737482249211, 17.206255801298223, 16.084534519330823, 6.895187375111331, 12.085154905653123, 7.3752138723712335, 0.4053880867223911, 18.940771693838645, 3.1033139207499505, 11.990416582801068, 17.56710315496472, 7.943518204674064, 17.708901302230277, 1.9052330012572212, 10.43637242598661, 16.9733443971881, 2.504147122618907, 8.656702381894418, 11.959480935362103, 3.5787761003068184, 15.863534101406017, 17.398250557858866, 7.059550491839979, 19.484583546985267, 4.7114976062075336, 5.457112253097712, 8.424235765509614, 5.085086862450659, 5.37280240966724, 10.85380377659115, 11.452772387260717, 10.277258926672719, 12.11965909926916, 18.505434724958864, 13.500494952730373, 8.908045995236664, 12.468252568948769, 5.2061853972376415, 12.945848718611993, 17.805816088951136, 12.69432334014978, 10.499102650390832, 9.18613011653444, 9.272358485158746, 0.2371197028710265, 17.566704917488952, 0.8618772701841163, 3.7613801792851986, 4.307180543878574, 5.251591276858535, 8.721476577275816, 9.486033347765982, 14.95909320768384, 2.283110833851273, 17.00977968233224, 12.307380184744181, 13.689560216721375, 15.806912369223081, 2.6634359999881885, 6.993014240794072, 7.7689848848406555, 9.873906970963922, 0.13922297414753496, 8.763575775837968, 2.0969522395765403, 13.82306681917964, 16.835075685082582, 3.543716328883481, 14.996370077375236, 9.0667212387088, 0.98049446398461, 3.086715521874444, 16.12147295917176, 0.1906947793515234, 0.6590588083145307, 3.4572622224348284, 1.8010791306001337, 3.9561605623712923, 16.812900830020013, 3.5987378233372582, 8.504614123327801, 4.548750831247466, 17.399845069607345, 16.63972472248305, 6.487341090340989, 6.068327267420089, 18.751725666006724, 18.576374609981517, 3.866865273925439, 16.290697494341714, 11.94892030329089, 1.6684379634685136, 15.467512101727333, 13.050524462073577, 9.102798931753632, 10.44434665678068, 0.1686410596043765, 5.923982416416526, 0.7979943477820953, 19.055092680142398, 3.6676285801972948, 15.167119828203898, 15.064360210223274, 0.6200838580469564, 13.71069531146332, 5.246652230066764, 17.658247481286185, 1.632682645332516, 13.543191284459617, 7.138993157595668, 1.165875726592508, 2.432533662229707, 5.470385507180484, 19.37374366152989, 4.43910466081897, 18.53232040811452, 19.93940423805681, 6.833172578155756, 18.858667864265986, 12.561550554565112, 10.739432236250428, 4.846631271435986, 9.473631119031584, 9.701594386697385, 1.2014041503515003, 11.719048264033296, 19.760130794810948, 11.435160311338999, 2.3386519622512285, 6.7594405703348865, 1.9088590337177556, 16.411116011467975, 11.574311869905301, 5.542110935447514, 10.510028179793778, 4.18532354670051, 5.1014065014807795, 15.036620180966242, 16.894050406087572, 3.329122298877791, 9.666919314717692, 0.755643245068788, 4.577772408314442, 15.39530257376256, 6.651311449676588, 15.384085194247955, 5.704864669397524, 12.027631379929877, 13.267853766842764, 4.549199627303153, 11.015337795331373, 5.54230562857149, 0.85430971794954, 0.5224254266788189, 15.14148257304496, 2.944240119361089, 12.029189188231848, 9.514505405693356, 1.2481205873456982, 6.432705946402114, 14.767065635413015, 12.292083568598683, 17.883162665800498, 1.2943315424962138, 0.47147393566507056, 14.766231742040047, 14.501526642296884, 10.007478199480616, 17.45827437055132, 10.646636149912633], "expected": [1.662682474229257, 1.3537993732851086, 0.9817187848721475, -0.5354204260102823, 1.8583699186922895, 1.742549145680433, 0.3427280583573307, 0.4169253237074418, 0.3221018948095881, 0.5312965820348775, 0.10378454162979583, 1.8337401037229193, 1.0658375791751848, 0.4866463869351705, -0.13164658485251512, 1.6603501805550547, 1.104352684796671, 1.3929988282332513, 1.4985570596330966, -0.7207501583146959, 1.7415526182110388, 0.14195691848325934, 0.5613852507088273, 0.3891824673697216, 1.7702996702572795, 0.27997275082296175, 1.4794256920092836, -0.6914769080524961, 0.7887613699062801, -0.6038938831421233, 1.6642365291908985, 1.3776718137296466, 1.6332071788424192, 1.3956993638009134, 0.877200556790903, -0.46914139600081795, -0.07995899848259075, 1.545234503001078, 1.862081915786579, 1.7854871448010967, 1.7922916079935471, 0.9044987640665525, 1.350028620878453, 1.9078282288559096, 1.0769954486091518, 0.34997908099681374, 0.3917256923460525, 1.683116836961788, 1.3468628574121118, 1.5877061565935882, 1.5451372733571578, 1.3612873151165208, -0.2576058385003971, -0.020341742306408117, 0.3368222660994912, -1.2322597089747909, -0.7813149442961439, -0.2878119520760739, 1.8751840814619545, 1.085190491822087, 1.6537164129424298, 0.7009501691222466, 1.8317218479795616, -0.34484489797602635, 0.719753883760957, 1.52795565631599, 0.29517925456995453, 0.32454896925987536, -0.06913455827584897, 1.7661585653922263, 1.4017496022123335, 0.2740192989471225, 0.9198957409028864, 0.8686141968521416, 1.7712993344083259, 1.7398239634959154, 1.3772791605308883, 1.848062237292163, -0.7906210792253677, -0.3141348286543708, 1.1310527321857646, 1.257832570046252, 0.6784135912304432, 1.2035457180958187, 1.671152127848349, -0.28670950472338486, 1.762406327682727, 0.42792935556708844, 1.7564016692010695, 1.5369136554783522, 1.2508821386020261, 0.5761239696716187, 0.8004267731327093, 0.47508743104268225, 1.1567818009700872, 0.8492128470324378, 1.7058806440002332, 1.7544554238958971, -0.39725845487293454, 0.610428198461512, -0.923579034980161, 0.9775237493651148, 1.043972527813261, 1.5631783663691055, 1.5014052033142842, 1.3257294355175144, 1.7797980714147217, 0.7728012510465048, 1.739844305888476, 1.8468546906108858, 1.5132084409412054, 0.9467639900457175, 1.3757567745811397, 1.8208050486387939, 1.7423280654822362, 1.8676950779694224, 1.6109896544266618, -0.11326304451515862, 1.4173294350065873, -0.9415886868606279, 1.7420766922555893, 1.5668546171883246, 1.1898687035967124, 1.787484315437208, 1.7685468894538108, 0.6394420806373191, 1.285323666528702, 0.5403866954552172, 0.7186247671400896, 1.6553145214451797, 1.8125902958803204, -0.3723346759634394, 1.801276490333275, 1.2959621340297, 0.5450949078466566, 0.3726715095285197, 1.4793637787784655, 0.5749154850391154, 0.9467325313949596, 1.7663856135065101, 0.44151301830755363, 1.0639319169863526, 1.1504777630822232, 1.4699451111739066, 0.3483561133950591, 0.03793334548173116, 1.9061474570069419, 1.4214679768639749, 1.7256592718319381, 0.418518294415785, 1.4537547709524556, 1.6011336277625339, -0.15592662355888554, 0.7004589335645892, 1.4393054439359338, 0.594596647918533, 1.4729166774602431, 1.4904052543594535, 1.684734512416318, 1.3269827413008386, 1.675331141172376, 0.7109026226223499, 1.866342618918544, 1.561579340880396, 1.6002028566326358, 1.2247655772639434, 1.5714209366821277, 1.2885381685216057, 1.2914672038390393, 1.8677402019822584, 1.5567403291068844, 1.6081189076051223, 1.3882438109769426, 1.8465374376579429, 0.7065417561953635, 1.3134638602805881, 0.4259930710152794, 1.4384754070360746, 1.6679990479023936, -0.42492430426072547, 1.90956381988976, 1.6350578597809342, 1.4622381882085498, -0.08102543487764907, 0.3866446312085788, 1.3853518439371961, 0.6223840176611515, -0.18367223080462386, -0.1392661868681066, 1.3897878615858228, 1.8172229825084623, 1.8863059904097188, -0.474539708027668, 1.6965224976824738, 1.6032948280875914, 1.872547262590896, -0.3366367151630004, 0.916865200839674, -0.8246857833523286, 1.459934833984311, 1.8020912491057266, 1.4751295441521668, -0.33576161739806454, 0.8579214733457446, -1.1258632733595566, 1.7848085483997718, 1.8484894020008134, -0.11261719061619913, 1.7339494571199747, 1.1335853116975771, 1.0821188635923327, 1.8605599919984868, 1.5685829482154943, 1.7762508126852623, 1.7576858404439903, 1.2281515624668802, 1.5820380864552157, 1.5180362024393061, 1.6512905174070074, 1.4255603344103949, 1.6067478430565698, 0.6279518662668706, 1.463397252973814, 1.332486185932145, 1.3828797784594689, 1.0656095369144067, -0.6530864653369278, 0.14297507002572044, 1.8657011890260873, 1.7874660230394794, 0.2628816662552148, 0.6362391575651549, 0.25182983665817693, 0.8118054408868487, 1.8395604615963843, 1.0246052780321748, 1.464839390950075, 0.9412793676607044, 0.13987348322271953, -0.13718391578104322, 1.3598973753597865, 1.300633131273922, 1.6266301648599204, 1.4369308477220617, 1.4101588425979652, 1.7646445560102815, 0.5716396620989477, 1.471490361964133, -1.0168210005879432, 0.5607179404798774, -0.969721410717003, 1.1182144838592243, 0.721773454346399, 1.6751676963551256, 1.1784715235126058, 0.4463486289295492, 1.7276579323684507, 1.7779686014465224, 0.7521940398576249, 1.3579281819585192, 1.5635355824666468, 1.6530301930015323, 1.521751774625336, 0.9561681624362328, 1.8432195909533302, -0.35769878257427357, 0.8718111469869142, 0.49157985748223226, 1.5142918562750434, 1.702135506115972, 0.5417961060726993, 0.39322930236149467, 1.5775685020955392, 1.4940994771892186, 0.85760608546173, 0.6803860472094498, 1.2590993333871232, 1.6756465426757372, 1.54348599513285, 0.828023418235249, 0.24312015533920886, 1.3072394816484696, 1.7467409058144363, 1.0620566133442457, 1.8945252840319644, 0.6981896288881542, 1.792030856978735, 1.1391542794432552, 0.621704652093746, 0.18708164056508603, 1.5304735437094852, -0.8074973601875947, 1.6712187169157633, 1.5156578462444763, -1.3399910048343844, 1.4108728528518282, 1.522502391876893, 1.3524089731786435, 1.6740781960800253, 1.1705417885925944, 0.2313040143531337, 1.9386145876245915, 1.761673070039326, 0.16107577537980694, 2.4932231102980005, 2.5435853599450757, -0.8531946696124199, 2.013803084796596, 2.0330875572423905, 2.4667324087379656, 2.2438787674459113, 0.7408311904914648, 2.5568864216472944, 0.09539905456774136, 0.7069514721937267, 2.4908325425466975, 0.24418826058527732, 2.4068611519267065, 1.7979357509702254, 2.338601254303729, 2.2284664567125856, -0.06552914744032551, 2.3089141506986217, 1.8587794074123711, 2.3942334771475635, 2.083866002355728, 1.5022208466722131, 0.060029391429499146, 2.601018074401228, 1.8769149689101936, 0.032815450500727206, 2.216120280583041, 1.8776303221082875, 1.387670542701763, 1.6879079518914732, 0.6028829032180517, 0.3967867410259469, 2.399297969372282, 2.2420767475386754, 1.0118248609252025, 1.8023682718356318, 1.7232338470626813, 2.0168515581852957, 1.814261902121936, 0.5782699204456386, 0.9646807271041611, 1.502678497759793, 2.426526204720468, 1.7644882963713062, 0.049463808823680455, 1.037642413262414, 2.167349734844789, 2.0332133118012776, 2.163814199344744, 1.3965070108794588, 2.5643736254116436, 2.257865170862658, 2.5880899657657763, 2.2881288855634128, 2.110008935660547, 0.6978214185494485, 2.5861325191216333, 0.6809791602169515, 2.449859448273778, 2.228581519129708, -0.4629548408721368, 1.4708650731288726, 0.846656836275576, 1.6498652652402392, 0.8086621982802624, 2.005029628086398, 1.885458126465403, 1.3806160517468973, 2.10782127405447, 0.6459097319232343, 0.7714307198304171, 2.3855655583491604, 2.605276451107478, 2.09200599946616, 1.928218219887269, 2.3301467899845694, 2.577072913219213, 1.096460157944413, 2.095067951262466, 2.2363757304812424, 2.2244122154082757, 2.4612114812169925, 1.1434708716560922, 2.1796059242101395, 2.319928387862291, 2.4151157554746514, 2.287262858456426, 1.9888260814028258, 0.6895388138144365, 2.2840590438563932, 1.86205758327152, 1.7858303865268192, 0.5143751798387026, 2.4958445373833658, 2.2240219267495047, 2.308379954306811, 1.334600561848835, 1.4080480907333488, 0.7954384206002741, 1.1891864105579268, 0.753272150004941, 1.6870385767557305, 2.5006172299095413, -0.7214021325087955, 1.9028939542055814, 1.421149875753275, 1.6494192616475254, 2.2562449563952955, 0.9514374568848153, 1.5132774853542776, 0.3656570429875441, 2.0002699928730756, -0.0726775830507213, 2.2301578573781113, 1.3930137129385698, 2.381958392680927, 0.9903593790872623, 0.565288588974567, 0.9192847015909668, 2.5466850923575097, 2.302308058141122, -0.9990862425591648, 0.039068098185167044, -1.0059042177724469, 2.519606160548969, 2.331936818522024, 0.47286164676893067, 1.9890600178788733, 2.0195823072464396, 1.906083416945167, -0.6819200104719942, -0.7744546559487743, 1.9107804724615232, 2.5484967858478385, 1.9720947277500986, 2.358494862079804, 1.9548261871685861, 2.3009406654958107, 1.112818368975402, 2.4235821057810463, 2.2143941254615984, -0.3054845554089647, 2.3224307801623167, 1.821506161849869, 1.6172022678897315, -1.8490212778402628, 1.3612438021238207, 2.0123452716645804, 0.3118738569356588, 1.8502104877040662, 2.138138725260102, 2.5237345380627234, 1.5019718329225684, 2.2376955228466238, 2.1308265250288403, 0.11442770307879241, 2.141200973093891, -1.408999591042059, -1.30900186058095, 2.2376433958991133, 2.5547558787998064, 1.4366357260751066, 1.281253040847231, 2.1565158757554133, 1.3771544453664997, 2.468890165999511, 1.8188840171306762, 2.584893809481665, 2.5210637624521004, 2.0159021165106936, 1.6325714852235897, 2.1002544544741633, 2.080369684670763, 0.8877103322057862, 1.9516190332282566, 1.241602450302334, 2.59007946776168, 2.588808468337313, 1.82316218770662, 2.4982964165385058, 2.179856308658138, 0.1706799759779279, 2.098683730732862, 2.500830857816025, 0.6183036230951051, 0.295856320991219, 0.4434731157419508, 2.5178250415346133, 1.5820671029899827, 1.4856416008028859, 2.024906747333089, -0.05232101739335476, 2.5474552542994973, 1.5761519078826947, 2.3482229487206294, 0.23683792050576163, 2.2211884187593607, 2.5421647546898347, -0.32462844835870597, 2.2017283857967467, 1.1608043556998053, 2.4071093233143195, 1.5593657887878885, 1.7605076343047075, 2.464062052366645, 0.2479691196684276, 2.5576878841315924, 1.950977167470172, 1.679221779085526, 2.568319619627181, 2.507396821674589, 1.65259318234859, -0.9979565285841548, 1.0235489312901642, 2.1505456064595307, 1.3678588364312687, 0.9263669385512949, 2.539628663960453, 2.3268943438574468, 1.178028506860501, 2.2677099731615313, 2.5041759664865166, 2.4766562995001746, -0.5452656799326676, 1.7010582040849105, -0.707277167808647, 1.1736426216277944, 2.4374474976236185, 1.6609966269983536, 2.1415995744130574, 1.9269762432715143, 1.6593852630827892, 2.362749086360394, 2.5319761136860746, 2.3608392302268384, 2.5385977701927382, 1.8964190255443127, 1.9682650220467677, 2.4363291161830083, 2.5511708596272413, 1.9270344842994427, 2.2129575790336427, 2.53516566651342, 2.51273843406448, 0.5233583812136338, 2.60199250032058, 2.5473325582630517, 2.5446855874144996, 2.3138183468647058, 1.5032319832265952, 2.140991064067664, 2.332359119405444, 1.7752225277335993, 1.6679447978031332, 0.5791897504448235, 2.1117125155897747, 2.1222328648635935, 1.4603351859145275, 2.5220176862402552, 1.7381907157966525, 1.8544112352925302, 1.3669379245205788, -1.1779926819371225, 1.681199789767489, 1.8407763786925893, -1.1431570427711102, -0.43587227524043404, 1.8652727076977498, 0.3933636436711265, 1.4091463080593503, 2.5777307568529553, 1.9871003932625775, 2.3870898918048504, 2.0790636607941564, 0.9543468345491484, 2.3870479073002637, 2.5954239632112723, 0.866585208483304, 2.307975262021048, 1.5986804553818783, 2.0998398010945296, 1.8396759805670895, 2.0825544986020046, 2.0889781157638283, 1.990904208480393, 2.4814739195300124, 0.09004437195095205, 2.201041717006233, 2.4605195446511794, 1.480719354873866, 2.157247548361897, 2.264800313316026, 1.3689583671805505, 0.9563596647530754, 0.7235917846425204, 3.272582970567767, 3.073926366862327, 2.124621178399936, 3.0535207649714966, 2.631560424542064, 0.7884839922329852, 2.892582589344403, 3.283612582124136, 2.962374305633315, 2.8303005504169647, 2.6469147163862736, 2.8256856903855745, 2.361337524273463, 2.6719833799286934, 3.074167826780666, 2.2414381647660613, 2.346100919227239, 2.952353694862628, 2.881660238700245, 1.3051606720444742, 1.416349195586668, 2.00584629783105, 3.2540584167764863, 0.7368678639770072, 2.7616430621284485, 1.4844739703162602, 2.5865014521805407, 2.8389997116383, 2.1583316265649843, 3.2540592138352014, 2.634216773658817, 3.0672354696653654, 3.1617472269278553, -0.3421979493708386, 2.788926214056047, 2.8135763368310385, 1.9559799145068815, 1.2235434321448957, 3.1954674343863454, 2.021263308454652, 2.9278244466243266, 2.8793389836661945, 2.5725079455872746, 2.790152692002105, 3.283242445884831, -0.7221390641277209, 2.622842739544094, 2.8566873660827663, 2.9333297847728836, 2.7598318492499185, 2.9804006524108995, 2.314991107030541, 3.0335133802285457, 2.3999381336123697, 0.9539676706647365, 2.738414773573864, 1.069924700425748, 3.166445162572262, 2.371531043054541, 2.5836212712235853, 2.465171499616234, 1.8274240721578843, 2.5979920881952623, 0.40184001653191687, 2.726523728340791, 2.052339607432007, 2.7498128287386585, 2.5090260675388385, 3.190579842637606, 2.7537003632960633, 1.6200950535333063, 0.22517311242129762, 0.27022217511545965, 3.2635051290601824, 2.826334977795765, 2.752153670611647, 2.308546999803561, 2.6755538450039134, 2.777936936638928, 2.8704370458858195, 3.2714897283447524, 2.2418898103015734, 2.94382327020318, 1.352248687477922, 3.100233167491765, 1.1560900606974838, 2.2867353171545752, 2.692858104200546, 2.395267621223547, 1.29468606480541, 2.2505040843970705, 2.0654050000219013, 3.0121024583971185, 3.232700432559974, 1.9443629661436836, 2.3766605054921253, 1.4967765433776603, 3.2471417118847388, 2.241375842752347, 2.7258925999337045, 2.91669377869089, 2.7446252145727335, 2.323845859831515, 2.179804595718256, 2.9699736841047604, 1.755177943367776, 2.2177604585041957, 2.5719061533743592, 2.882751022679948, 2.8454430710609406, 2.273301268038926, 3.029827302075327, 2.988457447507848, 2.3623670009645554, 2.988618638527317, 3.2116998815567244, 2.436287601322717, 3.103805720749274, 2.8190230007322836, 3.1368585015662025, 2.147247392274708, 2.848242122945952, 0.47198192790843074, 2.63186201356774, 1.571251263614366, -0.11117670438633465, 2.816670715563493, 2.9563841358367613, 2.5362282016807547, 3.023384540973896, 2.84286220868153, 2.954960955331393, 3.164273002787174, 2.407681597522599, 2.7134896585204547, 3.134077161643832, 3.028558161424799, 2.7297157730911814, 0.9776083982135907, 1.250936312571945, -0.1506930908173036, 1.8260026778256786, 3.2458065667009386, 3.286597175995661, 2.9586512488163637, 3.2302419502221094, 2.5885865055164143, 3.1749947130212037, 1.3824051009765848, 3.120019602400322, 1.5112431813113578, 2.749029506440302, 3.03009485195142, 2.824720421628214, 3.072131531208986, 3.2879509815180366, 2.2909581988838545, 2.6437243417637784, 1.9252491641949416, 3.182339415042276, 3.0312509768225673, 3.2234681338641002, 3.0040681375453997, -1.0004173155194853, 1.4723357614247128, 3.0644909648568617, 1.5474160102526846, 3.230563986980673, 2.817258404961234, 0.8638611894385474, 2.133127027209422, 1.9741922924557405, 3.0554718833721064, 2.6629403322322736, 1.6001173972700302, 2.684688140828383, 2.614163166993805, 2.216413866738546, -1.169344722509972, 1.118987049323103, 0.19828299392519266, 1.599781739346474, 1.3701925116343254, 2.4069606399304737, 1.8559656016652455, 2.4771290102181522, 3.117010219241132, 2.9881156926640573, 1.8215054900531085, 1.5836663423291846, 2.25260062365595, 1.0892202991732827, 1.0153556291578063, 2.6564970334395994, 2.524327287643782, 1.6660401487223293, 2.562783274913834, 2.9621207203713356, 2.489171702570971, 2.6643991626111516, 1.340871735177831, 2.402018709436095, 2.847366246627881, -0.7773101322428381, 2.7398377163035086, 2.597340168332616, 3.2032474079100255, 2.948933954472145, 1.6893294349052739, 2.8947628679129775, 3.057821027662972, 2.7858698421839865, 1.3422910359136204, 0.27797533724618917, 3.082720310452521, 2.0040228634002357, 2.7032029636492525, 3.036546468559646, 2.9600663120195474, 0.28422130066467327, 2.5938959030861604, 3.1258525503105123, 3.084257602493378, 0.570205732350583, 3.2648690866244467, 3.0085987121732853, 2.219085867765821, 1.5415222634105188, 2.845752018448133, 1.577518353443509, 2.1750697280566205, 3.1521258465110433, 3.084711040907884, 2.237676505821704, 2.7988306515235393, 2.304977720889014, -0.5960576124325618, 3.2481696504988355, 1.4393233666439174, 2.7909605320628237, 3.172880833541765, 2.3792090953852525, 3.1809202310398907, 0.9514571309106601, 2.652149872738056, 3.1384969562984146, 1.2248010259913968, 2.4651866821863875, 2.7883771669673947, 1.58187368997863, 3.0708758419336815, 3.1632224779539975, 2.261234199207152, 3.2764763849966894, 1.856858640030214, 2.003772577910446, 2.4379655812387813, 1.9331649308892054, 1.9882024558347924, 2.6913684164759077, 2.7450846500233577, 2.636786402537693, 2.8016816725626414, 3.2249172772993897, 2.909579167377574, 2.4938077321847403, 2.830038438514748, 1.9567002376022318, 2.86762799392519, 3.186377969938347, 2.8480077318882064, 2.658142611083919, 2.52454756989982, 2.533890587926689, -1.1323373705094264, 3.1728581637830553, 0.15821042300824126, 1.6316387784473587, 1.767136343342211, 1.9653839504719612, 2.4726413752822554, 2.5566733623611166, 3.012172175689619, 1.132391733269364, 3.1406412735201017, 2.8170519169012396, 2.923486333806689, 3.067300155524354, 1.2864698379879629, 2.2517645045953, 2.3569923298330973, 2.596748437616373, -1.6648256810967266, 2.4774568346888253, 1.0473377955051146, 2.933191524823609, 3.130317367741388, 1.5720288063392047, 3.014660996415137, 2.511463523031018, 0.2871545399637541, 1.4339604071258685, 3.0870049269825754, -1.350228323547868, -0.11008969030407056, 1.547329830101904, 0.8952388217037253, 1.6821268194272654, 3.1289993177086974, 1.5874359987974072, 2.4474616736916204, 1.821705472126225, 3.163314121575342, 3.118645711576269, 2.1767055728869336, 2.1099358127976484, 3.2381386031418242, 3.2287434105349266, 1.659296991511416, 3.0974470584695832, 2.787493742546613, 0.818740656938345, 3.0455946502598676, 2.875681141065856, 2.5154347605893723, 2.652913661681351, -1.4731299109760414, 2.0858617476468275, 0.0811990549028116, 3.2541872175767943, 1.6063981092189885, 3.0259827350651625, 3.0191845224994114, -0.1710477357346205, 2.9250290273711217, 1.9644430221818316, 3.178055773071328, 0.7970772761053058, 2.9127367522444825, 2.272424571505747, 0.46032532072122617, 1.1957861929545799, 2.006201910023213, 3.2707715493011724, 1.797305522580794, 3.226369076296459, 3.299550705797048, 2.2286418914916486, 3.243825461291044, 2.8374934246571466, 2.680775042714689, 1.8851366998456967, 2.5553650870459, 2.5791430612047797, 0.4903438174639, 2.7680683941510202, 3.2905191309084643, 2.7435456661728033, 1.156427498301206, 2.2177929502028513, 0.953358518459628, 3.104811730241069, 2.7556409679609426, 2.019228282903075, 2.659182685561645, 1.7384368314326974, 1.9363691057528256, 3.0173413906977506, 3.1338143324089307, 1.5095615147801258, 2.575562496422158, 0.026666907201362722, 1.828065325517608, 3.0409152546514777, 2.20166686514207, 3.0401863655588306, 2.048172081070024, 2.7940594372668066, 2.8921969189720196, 1.8218041308424042, 2.7061414660722023, 2.019263412063527, 0.14939133588678638, -0.3424202099488409, 3.024290986898484, 1.3867035792636409, 2.794188948005745, 2.5596703383529897, 0.5284917091951664, 2.16824810064263, 2.999252225657577, 2.815808262302062, 3.1907124564182396, 0.5648471979224345, -0.4450386386040295, 2.999195754254297, 2.981106749000083, 2.610185452904149, 3.166666531665421, 2.6720968072346625]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/runner.py new file mode 100644 index 000000000000..30f4cbe9670e --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/fixtures/python/runner.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Generate entropy fixtures for Anglit distribution.""" + +import os +import json +import numpy as np +from scipy.stats import anglit + + +# Get the file path: +FILE = os.path.realpath(__file__) + +# Extract the directory in which this file resides: +DIR = os.path.dirname(FILE) + + +def gen(loc, sigma, name): + """Generate fixture data and write to file. + + # Arguments + + * `loc`: location parameter + * `sigma`: scale parameter + * `name::str`: output filename + + # Examples + + ``` python + python> loc = np.random.uniform(0.0, 10.0, 300) + python> sigma = np.random.uniform(0.1, 5.0, 300) + python> gen(loc, sigma, './data.json') + ``` + """ + z = anglit.entropy(loc=loc, scale=sigma) + + # Store data to be written to file as a dictionary: + data = { + "mu": loc.tolist(), + "sigma": sigma.tolist(), + "expected": z.tolist() + } + + # Based on the script directory, create an output filepath: + filepath = os.path.join(DIR, name) + + # Write the data to the output filepath as JSON: + with open(filepath, "w", encoding="utf-8") as outfile: + json.dump(data, outfile) + + +def main(): + """Generate fixture data.""" + # Set seed for reproducibility: + np.random.seed(457) + + # Generate data for three different ranges of input values and parameters: + loc_small = np.random.uniform(-5.0, 5.0, 300) + sigma_small = np.random.uniform(0.1, 5.0, 300) + + loc_med = np.random.uniform(-10.0, 10.0, 300) + sigma_med = np.random.uniform(0.1, 10.0, 300) + + loc_large = np.random.uniform(-20.0, 20.0, 400) + sigma_large = np.random.uniform(0.1, 20.0, 400) + + # Concatenate arrays + loc = np.concatenate([loc_small, loc_med, loc_large]) + sigma = np.concatenate([sigma_small, sigma_med, sigma_large]) + + gen(loc, sigma, "data.json") + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.js new file mode 100644 index 000000000000..e7905eae33a0 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.js @@ -0,0 +1,84 @@ +/** +* @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 entropy = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/python/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof entropy, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var v = entropy( NaN, 1.0 ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); + + v = entropy( 0.0, NaN ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `sigma <= 0`, the function returns `NaN`', function test( t ) { + var y; + + y = entropy( 0.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = entropy( 0.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns the differential entropy of an Anglit distribution', function test( t ) { + var expected; + var sigma; + var mu; + var i; + var y; + + expected = data.expected; + mu = data.mu; + sigma = data.sigma; + + for ( i = 0; i < expected.length; i++ ) { + y = entropy( mu[i], sigma[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'mu: '+mu[i]+', sigma: '+sigma[i]+', y: '+y+', expected: '+expected[i] ); + } else { + t.ok( isAlmostSameValue( y, expected[i], 1500 ), 'within tolerance. mu: '+mu[i]+'. sigma: '+sigma[i]+'. y: '+y+'. E: '+expected[i]+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.native.js new file mode 100644 index 000000000000..e19c7cebd85d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/anglit/entropy/test/test.native.js @@ -0,0 +1,93 @@ +/** +* @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 isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); + + +// FIXTURES // + +var data = require( './fixtures/python/data.json' ); + + +// VARIABLES // + +var entropy = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( entropy instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof entropy, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { + var v = entropy( NaN, 1.0 ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); + + v = entropy( 0.0, NaN ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided `sigma <= 0`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = entropy( 0.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = entropy( 0.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function returns the differential entropy of an Anglit distribution', opts, function test( t ) { + var expected; + var sigma; + var mu; + var i; + var y; + + expected = data.expected; + mu = data.mu; + sigma = data.sigma; + + for ( i = 0; i < expected.length; i++ ) { + y = entropy( mu[i], sigma[i] ); + if ( y === expected[i] ) { + t.strictEqual( y, expected[i], 'mu: '+mu[i]+', sigma: '+sigma[i]+', y: '+y+', expected: '+expected[i] ); + } else { + t.ok( isAlmostSameValue( y, expected[i], 1500 ), 'within tolerance. mu: '+mu[i]+'. sigma: '+sigma[i]+'. y: '+y+'. E: '+expected[i]+'.' ); + } + } + t.end(); +});