diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/README.md b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/README.md new file mode 100644 index 000000000000..70e5fc232432 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/README.md @@ -0,0 +1,283 @@ + + +# Moment-Generating Function + +> [Wald][wald-distribution] distribution moment-generating function (MGF). + + + +
+ +The [moment-generating function][mgf] for a [Wald][wald-distribution] random variable is + + + +```math +M_X(t) := \mathbb{E}\!\left[e^{tX}\right] = \exp\left[\frac{\lambda}{\mu}\left(1-\sqrt{1-\frac{2\mu^2 t}{\lambda}}\right)\right] +``` + + + + + +where `mu > 0` is the mean and `lambda > 0` is the shape parameter. The MGF is defined for `t < lambda / (2 * mu^2)`. + +
+ + + + + +
+ +## Usage + +```javascript +var mgf = require( '@stdlib/stats/base/dists/wald/mgf' ); +``` + +#### mgf( t, mu, lambda ) + +Evaluates the [moment-generating function][mgf] (MGF) for a [Wald][wald-distribution] distribution with parameters `mu` (mean) and `lambda` (shape parameter). + +```javascript +var y = mgf( 0.1, 2.0, 3.0 ); +// returns ~1.2405 + +y = mgf( -1.0, 0.5, 2.0 ); +// returns ~0.6237 +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = mgf( NaN, 0.5, 2.0 ); +// returns NaN + +y = mgf( 0.1, NaN, 2.0 ); +// returns NaN + +y = mgf( 0.1, 0.5, NaN ); +// returns NaN +``` + +If provided `mu <= 0`, the function returns `NaN`. + +```javascript +var y = mgf( 0.1, -1.0, 2.0 ); +// returns NaN +``` + +If provided `lambda <= 0`, the function returns `NaN`. + +```javascript +var y = mgf( 0.1, 0.5, -2.0 ); +// returns NaN +``` + +If provided `t >= lambda / (2 * mu^2)`, the function returns `NaN`. + +```javascript +var y = mgf( 1.0, 2.0, 3.0 ); +// returns NaN +``` + +#### mgf.factory( mu, lambda ) + +Returns a function for evaluating the [moment-generating function][mgf] (MGF) of a [Wald][wald-distribution] distribution with parameters `mu` and `lambda`. + +```javascript +var mymgf = mgf.factory( 2.0, 3.0 ); + +var y = mymgf( 0.1 ); +// returns ~1.2405 + +y = mymgf( 0.2 ); +// returns ~1.6085 +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var mgf = require( '@stdlib/stats/base/dists/wald/mgf' ); + +var opts = { + 'dtype': 'float64' +}; +var lambda = uniform( 10, 50.0, 100.0, opts ); +var mu = uniform( 10, 0.1, 2.0, opts ); +var t = uniform( 10, -5.0, 5.0, opts ); + +logEachMap( 't: %0.4f, µ: %0.4f, λ: %0.4f, M_X(t;µ,λ): %0.4f', t, mu, lambda, mgf ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/wald/mgf.h" +``` + +#### stdlib_base_dists_wald_mgf( t, mu, lambda ) + +Evaluates the [moment-generating function][mgf] (MGF) for a [Wald][wald-distribution] distribution with parameters `mu` (mean) and `lambda` (shape parameter). + +```c +double y = stdlib_base_dists_wald_mgf( 0.1, 2.0, 3.0 ); +// returns ~1.2405 +``` + +The function accepts the following arguments: + +- **t**: `[in] double` input value. +- **mu**: `[in] double` mean. +- **lambda**: `[in] double` shape parameter. + +```c +double stdlib_base_dists_wald_mgf( const double t, const double mu, const double lambda ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/wald/mgf.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 lambda; + double mu; + double t; + double y; + int i; + + for ( i = 0; i < 10; i++ ) { + t = random_uniform( -5.0, 5.0 ); + mu = random_uniform( 0.1, 2.0 ); + lambda = random_uniform( 50.0, 100.0 ); + y = stdlib_base_dists_wald_mgf( t, mu, lambda ); + printf( "t: %lf, µ: %lf, λ: %lf, M_X(t;µ,λ): %lf\n", t, mu, lambda, y ); + } +} +``` + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/benchmark.js new file mode 100644 index 000000000000..70e10fdd8e1d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/benchmark.js @@ -0,0 +1,87 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; +var mgf = require( './../lib' ); + + +// MAIN // + +bench(pkg, function benchmark(b) { + var lambda; + var opts; + var mu; + var t; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + t = uniform(100, -5.0, 5.0, opts); + mu = uniform(100, 0.1, 2.0, opts); + lambda = uniform(100, 50.0, 100.0, opts); + + b.tic(); + for (i = 0; i < b.iterations; i++) { + y = mgf( t[ i%t.length ], mu[ i%mu.length], lambda[ i%lambda.length ]); + if (isnan(y)) { + b.fail('should not return NaN'); + } + } + b.toc(); + if (isnan(y)) { + b.fail('should not return NaN'); + } + b.pass('benchmark finished'); + b.end(); +}); + +bench(format('%s:factory', pkg), function benchmark(b) { + var mymgf; + var t; + var y; + var i; + + mymgf = mgf.factory(2.0, 50.0); + t = uniform(100, -5.0, 5.0, { + 'dtype': 'float64' + }); + + b.tic(); + for (i = 0; i < b.iterations; i++) { + y = mymgf( t[ i%t.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/wald/mgf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..d2aa6a7eb780 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/benchmark.native.js @@ -0,0 +1,69 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var mgf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( mgf instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s::native', pkg ), opts, function benchmark( b ) { + var lambda; + var opts; + var mu; + var t; + var y; + var i; + + opts = { + 'dtype': 'float64' + }; + t = uniform( 100, -5.0, 5.0, opts ); + mu = uniform( 100, 0.1, 2.0, opts ); + lambda = uniform( 100, 50.0, 100.0, opts ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = mgf( t[ i%t.length ], mu[ i%mu.length ], lambda[ i%lambda.length ] ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/c/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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/wald/mgf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/c/benchmark.c new file mode 100644 index 000000000000..30424132769f --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/benchmark/c/benchmark.c @@ -0,0 +1,142 @@ +/** +* @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/wald/mgf.h" +#include +#include +#include +#include +#include + +#define NAME "wald-mgf" +#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 lambda[ 100 ]; + double mu[ 100 ]; + double t[ 100 ]; + double elapsed; + double tc; + double y; + int i; + + for ( i = 0; i < 100; i++ ) { + t[ i ] = random_uniform( -5.0, 5.0 ); + mu[ i ] = random_uniform( 0.1, 2.0 ); + lambda[ i ] = random_uniform( 50.0, 100.0 ); + } + + tc = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_dists_wald_mgf( t[ i%100 ], mu[ i%100 ], lambda[ i%100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - tc; + 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/wald/mgf/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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/wald/mgf/docs/repl.txt b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/repl.txt new file mode 100644 index 000000000000..5f5252c69e3a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/repl.txt @@ -0,0 +1,75 @@ + +{{alias}}( x, μ, λ ) + Evaluates the moment-generating function (MGF) for a Wald distribution + with mean `μ` and shape parameter `λ` at a value `t`. + + If provided `NaN` as any argument, the function returns `NaN`. + + If provided `λ <= 0` or `μ <= 0`, the function returns `NaN`. + + If provided `t < λ / (2 * μ ^ 2)`, the function returns `NaN`. + + Parameters + ---------- + x: number + Input value. + + μ: number + Mean. + + λ: number + Shape parameter. + + Returns + ------- + out: number + Evaluated MGF. + + Examples + -------- + > var y = {{alias}}( 0.1, 2.0, 3.0 ) + ~1.2405 + > y = {{alias}}( -1.0, 0.5, 2.0 ) + ~0.6237 + > y = {{alias}}( 0.1, -2.0, 3.0 ) + NaN + > y = {{alias}}( 0.1, 2.0, -3.0 ) + NaN + > y = {{alias}}( NaN, 0.0, 1.0 ) + NaN + > y = {{alias}}( 0.0, NaN, 1.0 ) + NaN + > y = {{alias}}( 0.0, 0.0, NaN ) + NaN + > y = {{alias}}( 1.0, 2.0, 3.0 ) + NaN + + +{{alias}}.factory( μ, λ ) + Returns a function for evaluating the moment-generating function (MGF) of a + Wald distribution with mean `μ` and shape parameter `λ`. + + Parameters + ---------- + μ: number + Mean. + + λ: number + Shape parameter. + + Returns + ------- + mgf: Function + Moment-generating function (MGF). + + Examples + -------- + > var myMGF = {{alias}}.factory( 2.0, 3.0 ); + > var y = myMGF( 0.1 ) + ~1.2405 + > y = myMGF( 0.2 ) + ~1.6085 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/index.d.ts b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/index.d.ts new file mode 100644 index 000000000000..c7eea80bf4a4 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/index.d.ts @@ -0,0 +1,128 @@ +/* +* @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 moment-generating function (MGF) of a Wald distribution. +* +* @param t - input value +* @returns evaluated MGF +*/ +type Unary = ( t: number ) => number; + +/** +* Interface for the moment-generating function (MGF) of a Wald distribution. +*/ +interface MGF { + /** + * Evaluates the moment-generating function (MGF) for a Wald distribution with mean `mu` and shape parameter `lambda` at a value `t`. + * + * ## Notes + * + * - If provided `lambda <= 0` or `mu <= 0`, the function returns `NaN`. + * + * - If provided `t > lambda / ( 2 * mu^2 )`, the function returns `NaN`. + * + * @param t - input value + * @param mu - mean + * @param lambda - shape parameter + * @returns evaluated MGF + * + * @example + * var y = mgf( 0.1, 2.0, 3.0 ); + * // returns ~1.2405 + * + * @example + * var y = mgf( -1.0, 0.5, 2.0); + * //returns ~0.6237 + * + * @example + * var y = mgf ( NaN, 0.5, 2.0); + * // returns NaN + * + * @example + * var y = mgf ( 0.1, NaN, 2.0); + * // returns NaN + * + * @example + * var y = mgf ( 0.1, 0.5, NaN); + * // returns NaN + * + * @example + * var y = mgf ( 0.1, -1.0, 2.0); + * // returns NaN + * + * @example + * var y = mgf ( 0.1, 0.5, -2.0); + * // returns NaN + * + * @example + * var y = mgf ( 1.0, 2.0, 3.0); + * // returns NaN + */ + ( t: number, mu: number, lambda: number ): number; + + /** + * Returns a function for evaluating the moment-generating function (MGF) of a Wald distribution with mean `mu` and shape parameter `lambda`. + * + * @param mu - mean + * @param lambda - shape parameter + * @returns MGF + * + * @example + * var mgf = factory( 2.0, 3.0 ); + * + * var y = mgf( 0.1 ); + * // returns ~1.2405 + * + * y = mgf( 0.2 ); + * // returns ~1.6085 + */ + factory( mu: number, lambda: number ): Unary; +} + +/** +* Wald distribution moment-generating function (MGF). +* +* @param t - input value +* @param mu - mean +* @param lambda - shape parameter +* @returns evaluated MGF +* +* @example +* var y = mgf( 0.1, 2.0, 3.0 ); +* // returns ~1.2405 +* +* y = mgf( -1.0, 0.5, 2.0); +* //returns ~0.6237 +* +* var mymgf = mgf.factory( 2.0, 3.0 ); +* +* y = mymgf( 0.1 ); +* // returns ~1.2405 +* +* y = mymgf( 0.2 ); +* // returns ~1.6085 +*/ +declare var mgf: MGF; + + +// EXPORTS // + +export = mgf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/test.ts b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/test.ts new file mode 100644 index 000000000000..838143a8de29 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/docs/types/test.ts @@ -0,0 +1,120 @@ +/* +* @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 mgf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + mgf( 0.1, 2.0, 3.0 ); // $ExpectType number + mgf( -1.0, 0.5, 2.0 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than three numbers... +{ + mgf( true, 3, 6 ); // $ExpectError + mgf( false, 2, 4 ); // $ExpectError + mgf( '5', 1, 2 ); // $ExpectError + mgf( [], 1, 2 ); // $ExpectError + mgf( {}, 2, 4 ); // $ExpectError + mgf( ( x: number ): number => x, 2, 4 ); // $ExpectError + + mgf( 9, true, 12 ); // $ExpectError + mgf( 9, false, 12 ); // $ExpectError + mgf( 5, '5', 10 ); // $ExpectError + mgf( 8, [], 16 ); // $ExpectError + mgf( 9, {}, 18 ); // $ExpectError + mgf( 8, ( x: number ): number => x, 16 ); // $ExpectError + + mgf( 9, 5, true ); // $ExpectError + mgf( 9, 5, false ); // $ExpectError + mgf( 5, 2, '5' ); // $ExpectError + mgf( 8, 4, [] ); // $ExpectError + mgf( 9, 4, {} ); // $ExpectError + mgf( 8, 5, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + mgf(); // $ExpectError + mgf( 2 ); // $ExpectError + mgf( 2, 0 ); // $ExpectError + mgf( 2, 0, 4, 1 ); // $ExpectError +} + +// Attached to main export is a `factory` method which returns a function... +{ + mgf.factory( 2.0, 3.0 ); // $ExpectType Unary +} + +// The `factory` method returns a function which returns a number... +{ + const fcn = mgf.factory( 2.0, 3.0 ); + fcn( 0.1 ); // $ExpectType number + fcn( 0.2 ); // $ExpectType number +} + +// The compiler throws an error if the function returned by the `factory` method is provided invalid arguments... +{ + const fcn = mgf.factory( 3, 4 ); + fcn( true ); // $ExpectError + fcn( false ); // $ExpectError + fcn( '5' ); // $ExpectError + fcn( [] ); // $ExpectError + fcn( {} ); // $ExpectError + fcn( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided an unsupported number of arguments... +{ + const fcn = mgf.factory( 3, 4 ); + fcn(); // $ExpectError + fcn( 2, 0 ); // $ExpectError + fcn( 2, 0, 1 ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided values other than two numbers... +{ + mgf.factory( true, 3 ); // $ExpectError + mgf.factory( false, 2 ); // $ExpectError + mgf.factory( '5', 1 ); // $ExpectError + mgf.factory( [], 1 ); // $ExpectError + mgf.factory( {}, 2 ); // $ExpectError + mgf.factory( ( x: number ): number => x, 2 ); // $ExpectError + + mgf.factory( 9, true ); // $ExpectError + mgf.factory( 9, false ); // $ExpectError + mgf.factory( 5, '5' ); // $ExpectError + mgf.factory( 8, [] ); // $ExpectError + mgf.factory( 9, {} ); // $ExpectError + mgf.factory( 8, ( x: number ): number => x ); // $ExpectError + + mgf.factory( [], true ); // $ExpectError + mgf.factory( {}, false ); // $ExpectError + mgf.factory( false, '5' ); // $ExpectError + mgf.factory( {}, [] ); // $ExpectError + mgf.factory( '5', ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + mgf.factory( 0 ); // $ExpectError + mgf.factory( 0, 4, 8 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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/wald/mgf/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/c/example.c new file mode 100644 index 000000000000..a3e214f74333 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/c/example.c @@ -0,0 +1,42 @@ +/** +* @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/wald/mgf.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 lambda; + double mu; + double t; + double y; + int i; + + for ( i = 0; i < 10; i++ ) { + t = random_uniform( -5.0, 5.0 ); + mu = random_uniform( 0.1, 2.0 ); + lambda = random_uniform( 50.0, 100.0 ); + y = stdlib_base_dists_wald_mgf( t, mu, lambda ); + printf( "t: %lf, µ: %lf, λ: %lf, M_X(t;µ,λ): %lf\n", t, mu, lambda, y ); + } +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/index.js new file mode 100644 index 000000000000..300cdbb253a9 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/examples/index.js @@ -0,0 +1,32 @@ +/** +* @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 mgf = require( './../lib' ); + +var opts = { + 'dtype': 'float64' +}; +var lambda = uniform( 10, 50.0, 100.0, opts ); +var mu = uniform( 10, 0.1, 2.0, opts ); +var t = uniform( 10, -5.0, 5.0, opts ); + +logEachMap( 't: %0.4f, µ: %0.4f, λ: %0.4f, M_X(t;µ,λ): %0.4f', t, mu, lambda, mgf ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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': [ + ' + */ + function mgf( t ) { + if ( + isnan( t ) || + t > lambda / ( 2.0 * pow( mu, 2.0 ) ) + ) { + return NaN; + } + return exp( lambdaMu * ( 1.0 - sqrt( 1.0 - ( mu2Lambda * t ) ) ) ); + } +} + + +// EXPORTS // + +module.exports = factory; diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/index.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/index.js new file mode 100644 index 000000000000..56a7be6d81e4 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/index.js @@ -0,0 +1,58 @@ +/** +* @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'; + +/** +* Evaluate the moment-generating function (MGF) for a Wald distribution. +* +* @module @stdlib/stats/base/dists/wald/mgf +* +* @example +* var mgf = require( '@stdlib/stats/base/dists/wald/mgf' ); +* +* var y = mgf( 0.1, 2.0, 3.0 ); +* // returns ~1.2405 +* +* y = mgf( -1.0, 0.5, 2.0); +* //returns ~0.6237 +* +* var mymgf = mgf.factory( 2.0, 3.0 ); +* +* y = mymgf( 0.1 ); +* // returns ~1.2405 +* +* y = mymgf( 0.2 ); +* // returns ~1.6085 +*/ + +// MODULES // + +var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var main = require( './main.js' ); +var factory = require( './factory.js' ); + + +// MAIN // + +setReadOnly( main, 'factory', factory ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/main.js new file mode 100644 index 000000000000..16bc84adcab4 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/main.js @@ -0,0 +1,92 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var sqrt = require( '@stdlib/math/base/special/sqrt' ); +var exp = require( '@stdlib/math/base/special/exp' ); +var pow = require( '@stdlib/math/base/special/pow' ); + + +// MAIN // + +/** +* Evaluates the moment-generating function (MGF) for a Wald distribution with mean `mu` and shape parameter `lambda` at a value `t`. +* +* @param {number} t - input value +* @param {PositiveNumber} mu - mean +* @param {PositiveNumber} lambda - shape parameter +* @returns {number} evaluated MGF +* +* @example +* var y = mgf( 0.1, 2.0, 3.0 ); +* // returns ~1.2405 +* +* @example +* var y = mgf( -1.0, 0.5, 2.0); +* //returns ~0.6237 +* +* @example +* var y = mgf ( NaN, 0.5, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, NaN, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, 0.5, NaN); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, -1.0, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, 0.5, -2.0); +* // returns NaN +* +* @example +* var y = mgf ( 1.0, 2.0, 3.0); +* // returns NaN +*/ +function mgf( t, mu, lambda ) { + var mu2Lambda; + var lambdaMu; + if ( + isnan( t ) || + isnan( mu ) || + isnan( lambda ) || + mu <= 0.0 || + lambda <= 0.0 || + t > lambda / ( 2.0 * pow( mu, 2.0 ) ) + ) { + return NaN; + } + lambdaMu = lambda / mu; + mu2Lambda = 2.0 * pow( mu, 2.0 ) / lambda; + return exp( lambdaMu * ( 1.0 - sqrt( 1.0 - ( mu2Lambda * t ) ) ) ); +} + + +// EXPORTS // + +module.exports = mgf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/native.js new file mode 100644 index 000000000000..746fb0cc5d0a --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/lib/native.js @@ -0,0 +1,76 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Returns the moment-generating function (MGF) for a Wald distribution with mean `mu` and shape parameter `lambda` at a value `t`. +* +* @private +* @param {number} t - input value +* @param {PositiveNumber} mu - mean +* @param {PositiveNumber} lambda - shape parameter +* @returns {number} evaluated MGF +* +* @example +* var y = mgf( 0.1, 2.0, 3.0 ); +* // returns ~1.2405 +* +* @example +* var y = mgf( -1.0, 0.5, 2.0); +* //returns ~0.6237 +* +* @example +* var y = mgf ( NaN, 0.5, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, NaN, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, 0.5, NaN); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, -1.0, 2.0); +* // returns NaN +* +* @example +* var y = mgf ( 0.1, 0.5, -2.0); +* // returns NaN +* +* @example +* var y = mgf ( 1.0, 2.0, 3.0); +* // returns NaN +*/ +function mgf( t, mu, lambda ) { + return addon( t, mu, lambda ); +} + + +// EXPORTS // + +module.exports = mgf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/manifest.json b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/manifest.json new file mode 100644 index 000000000000..1a0fdc9eb1b5 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/manifest.json @@ -0,0 +1,88 @@ +{ + "options": { + "task": "build", + "wasm": false + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/ternary", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/sqrt", + "@stdlib/constants/float64/nan", + "@stdlib/math/base/special/pow", + "@stdlib/math/base/special/exp" + ] + }, + { + "task": "benchmark", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/sqrt", + "@stdlib/constants/float64/nan", + "@stdlib/math/base/special/pow", + "@stdlib/math/base/special/exp" + ] + }, + { + "task": "examples", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/sqrt", + "@stdlib/constants/float64/nan", + "@stdlib/math/base/special/pow", + "@stdlib/math/base/special/exp" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/package.json b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/package.json new file mode 100644 index 000000000000..68b0ba368c0b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/package.json @@ -0,0 +1,69 @@ +{ + "name": "@stdlib/stats/base/dists/wald/mgf", + "version": "0.0.0", + "description": "Wald distribution moment-generating function (MGF).", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "gypfile": true, + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "include": "./include", + "lib": "./lib", + "src": "./src", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "statistics", + "stats", + "distribution", + "dist", + "mgf", + "generating functions", + "moments", + "wald", + "inverse gaussian", + "continuous", + "univariate" + ] +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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/wald/mgf/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/addon.c new file mode 100644 index 000000000000..70096a2185a8 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/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/wald/mgf.h" +#include "stdlib/math/base/napi/ternary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_DDD_D( stdlib_base_dists_wald_mgf ) diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/main.c new file mode 100644 index 000000000000..fcc334e0783b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/src/main.c @@ -0,0 +1,54 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/stats/base/dists/wald/mgf.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/special/sqrt.h" +#include "stdlib/constants/float64/nan.h" +#include "stdlib/math/base/special/pow.h" +#include "stdlib/math/base/special/exp.h" + +/** +* Evaluates the moment-generating function (MGF) for a Wald distribution with mean `mu` and shape parameter `lambda` at a value `t`. +* +* @param t input value +* @param mu mean +* @param lambda shape parameter +* @return evaluated MGF +* +* @example +* double y = stdlib_base_dists_wald_mgf( 0.1, 2.0, 3.0 ); +* // returns ~1.2405 +*/ +double stdlib_base_dists_wald_mgf( const double t, const double mu, const double lambda) { + double mu2Lambda; + double lambdaMu; + if( + stdlib_base_is_nan( t ) || + stdlib_base_is_nan( mu ) || + stdlib_base_is_nan( lambda ) || + mu <= 0.0 || + lambda <= 0.0 || + t > lambda / ( 2.0 * stdlib_base_pow( mu, 2.0 ) ) + ) { + return STDLIB_CONSTANT_FLOAT64_NAN; + } + lambdaMu = lambda / mu; + mu2Lambda = 2.0 * stdlib_base_pow( mu, 2.0 ) / lambda; + return stdlib_base_exp( lambdaMu * ( 1.0 - stdlib_base_sqrt( 1.0 - ( mu2Lambda * t ) ) ) ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/data.json new file mode 100644 index 000000000000..85a8fe1c3f4b --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"expected": [18.041536745482, 0.4427426945137653, 15.13549350470743, 0.3854349465278537, 13.076930379208301, 4.149753104621411, 0.16030078040129692, 1.0289857762979968, 0.19278929632867164, 33.053935970516434, 0.19711551502243035, 0.20217275670011245, 0.010270830011081335, 0.4775843561256206, 8.420170337093856, 0.004385346590191378, 4.08183280805828, 1.1625651911506565, 0.06859839327010746, 2.3387292809709312, 1.6710418107997704, 0.3645838851459295, 0.04284442118085432, 0.14750787197798973, 13.156295149767482, 968.1362597420923, 0.4644740392200427, 0.7482313685089936, 2.3455973888300847, 0.006817790724087573, 0.22532213895552278, 0.055608802301068926, 0.0005829413245756421, 1.9972515523233476, 0.17312520230377282, 3.35087739060413, 0.004413594240021421, 0.04531770699189363, 193.25650312779328, 2.187755379337635, 0.001383908178660424, 0.356101860396601, 0.3155968250699853, 6906.122820722679, 2.3142484331719273, 9.069085237828228, 14168.725966743354, 0.06541261857158548, 85.17888838161795, 1177.0211316818115, 0.009815618719199112, 0.14850657387044894, 0.006027698556955906, 1.5400952116098008, 5965.7819854839545, 6.296005425228016, 2.06351068989474, 7.554619797998894, 0.004372045677190613, 39.28241869579545, 0.01691469142782444, 0.14302534295624134, 0.15478813344185338, 1.5039445934136115, 0.26135118769266064, 1.709667352971747, 0.008803045883742549, 1.4941546607405742, 0.3323599200880988, 0.8325490702899339, 1.9128495478690206, 0.00041549887552774805, 0.33725564677556946, 11.540339288874886, 319.1636251349917, 5.472806743318763, 0.22042669341435248, 0.20817568724701696, 2.796101319668271, 0.4755060278233876, 2.714889630553296, 1.2905075083156765, 0.00018315654896388308, 0.20798445198462168, 0.04457498177820475, 0.07372599205218801, 4.125141311857675, 0.5752001518002353, 0.009994085478303247, 0.04152209210424103, 6.296705292087642, 2.2267265357325097, 0.00034261151363258226, 7.217038572083926, 0.0034853610774655914, 0.004214725039411318, 0.05223745827897987, 0.8671065923994238, 0.9019697623771868, 0.1491155725073816, 9.519659786990635, 2.6214314847124776, 0.10079531828236467, 3167.5959115590103, 0.21954903157858185, 0.9846077226601204, 4.710699999015354, 18.696027273229912, 36.4487009974168, 4.239943295938232, 271.18440786885907, 1.709113321244604, 907.7838852400159, 1053.0633885650773, 2.6050251113710905, 23.613788835300955, 0.055595456894100476, 0.6373504954683725, 0.006959538500905817, 0.030892425442055425, 0.3007057549350134, 0.0034173992122122202, 0.11905770178619096, 13.331364648059171, 0.21045719290380935, 0.00028784700516903164, 10.051887391323334, 95.82843684932007, 0.435753884353496, 0.09506138825821339, 4930.583094645177, 3.0245081744188096, 7205.015098952405, 5.594427943483562, 0.04640510728629015, 57.43699169925185, 3.4315293672604485, 0.8687263578233198, 0.4053038336475422, 1.4177697228671002, 0.004638989423212224, 0.03355591468817505, 22.18296127827721, 0.8913442441149371, 0.0006006593472084472, 1.504379944442867, 0.012997714189746495, 5.8459220489254395, 0.3288976111970521, 3.165060436582026, 2.629932393230724, 18.886873388368247, 0.4419063105064483, 1.6124254333318917, 2.8492792519649104, 18.815729679157464, 560.1012515236447, 1.3384059173604435, 24.060631703147468, 91.82417705983536, 0.9260699443701589, 0.03319953253539289, 1.4454312015801534, 0.7351528851532375, 0.08465934618480962, 20.655257468928085, 96.70947116764958, 0.966979359781084, 44.87467482247813, 0.20190207486541986, 14.633526667081902, 0.35404131317021587, 0.29114492318658614, 0.0403511064178387, 0.13988078416337765, 424.6845223363742, 0.25128916585144256, 0.008668308882461862, 0.4146781669382164, 1.4090684154563557, 0.17413063957130523, 31.35916022867813, 1.2170127451890136, 20.300921810251587, 0.22236200790726934, 6.169913472864882, 2.56265466416497, 9.575042762948927, 2.200315104899783, 0.12520152498478798, 0.45599950674406153, 7.862044875596553, 25.267606129737892, 2.605485033954552, 0.017633093205646207, 39.077116940994706, 0.003915811604186249, 0.09093828858319754, 0.8549069185812647, 310.81594338235544, 11.751433516571417, 34.12322173676199, 22.138768500004666, 0.5549987708991727, 0.0023834246394678293, 0.15538594679426007, 0.3642141609406663, 0.07337356807066767, 0.42807070372143763, 0.00018535115652593224, 0.0009720029758943538, 0.35143467832499126, 0.00213880386868659, 5.888725865842723, 0.015404385694719221, 0.010925468309466438, 53.872634961417205, 3.4765503767548434, 0.5026620208004186, 104.27856034959665, 0.24918727525034973, 0.1813343914600119, 2.0023210907342244, 0.8329363559997051, 1452.4454011461828, 0.9926396364182258, 0.1755453733303721, 0.02094648434026525, 177.97718172164207, 0.43144128562233, 0.07196977551012686, 256.0090127344141, 0.02287006634751886, 0.5557351404794113, 0.6182875980407768, 117.92054554832353, 0.00041515080559441033, 2.444314389795134, 0.0001998911742592104, 2.497347836347827, 5.935777075925623, 0.2740071113813337, 0.011310017728421962, 422.061868013293, 2.0178866237745083, 1.8947175921817845, 0.6330768442477007, 0.04981615817485481, 0.00493710725197591, 1283.3293429902071, 0.33737938755148145, 2.0964913977981876, 0.5971339930747481, 2.355350726798822, 233.10457099362537, 1.316807320728998, 42.61134696889683, 3.9850142134053725, 407.76276853168736, 36.309012804722286, 359.2116190009867, 0.08351503911006115, 0.33671407757586563, 6.731779073107909, 0.961661574450374, 0.1011488244552577, 3.382938780157294, 1.2106857530203723, 0.1441489272937166, 0.001543714094484436, 22.549538003563608, 0.27718021964965645, 209.98679114530538, 993.3936048491049, 1.1219302213845734, 0.07917481907695022, 0.3878765583691728, 0.10813125556194632, 0.24332502035379905, 0.5577817250012077, 0.6805540071240889, 0.0828041155691719, 12.844055132783572, 9.362287040068177, 0.9970189570491399, 818.284533288775, 0.13005365001437444, 149.45994415792993, 0.4059808541821251, 13.084410252672079, 1.0233189367329854, 11005.430436566647, 6.324750310730998, 0.003649294288802157, 3.240358473031859, 23.496952117726217, 0.0007563620638547216, 0.07318953926508841, 0.028523870722612053, 0.0008972452965404797, 0.007184812391750688, 11.168782512024187, 0.0019742923057500805, 0.0007878517765619768, 0.02128313845522494, 1.1473042560753244, 0.7289869811578585, 9.031261695107808, 0.21512911422506406, 0.05271225372712594, 0.044488133135983376, 2.257907686818358, 0.007160076507489471, 4.387485954369688, 3369.6453543410344, 7.402277329682436, 0.13484983189779562, 1.742107481087909, 1.639704487640526, 102.32561732939774, 0.07869564264198632, 80.0142227080083, 0.0073241135975855, 0.08737889083363166, 109.20046901540245, 2.0248977591605897, 0.5008156879934362, 0.10220652509176834, 0.0010977710823059793, 25.657353844190542, 5.3950385672345575, 3.592775259929514, 1.0576736259537922, 0.34813974575580103, 6.435171365213238, 0.4310945811491195, 33.09451409025195, 1.504975116948897, 0.49977848722712015, 0.24514719164441054, 29.65715776273508, 44.381763546125676, 1.4025519043342087, 0.12900505137063695, 0.35432567123598163, 3.4092789520558546, 149.0708446157102, 0.20140770640170338, 2638.6785149845264, 1.8830222872538542, 5.121573209724003, 0.047094560882443647, 0.4640061108125015, 21.578582769547985, 0.6651368162972664, 0.15217533216293375, 5.240745596291817, 1.19192590085871, 0.265674151983571, 196.6602597662772, 0.47690033392206027, 15.148507410858066, 0.47119022999623866, 0.43657131436651586, 0.6726718822551483, 0.9870772073068377, 0.32698506794621424, 342.0221762721315, 12.092160652110094, 4.856233561459001, 192.75106863365053, 644.8715421075166, 5.081889227481554, 1.5289114475431487, 6.3208937886397, 0.06545537632447138, 299.8829370605814, 0.04650871899003401, 0.007904390350134518, 129.02300639158983, 9.614668141892642, 1.3682515038948218, 2.8552658555694443, 0.01471351359267836, 0.48413717842235365, 0.11913954596696037, 0.1430340985787894, 0.7907575460556603, 558.1512244246081, 0.7752660160337197, 1.2321212427879178, 0.11264378728353278, 0.34124086148644717, 5.848747417584183, 127.5173307088794, 2.964179388096043, 2.7231102193450334, 12.11179171359802, 0.027725379341335222, 0.7145922400334295, 13.6503286207896, 2.8794456860306723, 216.05466792663105, 190.95677023081598, 3.0510223538051315, 6.62492303421282, 0.4535948642278406, 0.9238703350453538, 6683.652211219166, 0.7850612218875062, 1.3893946402531536, 0.9336918220306731, 0.04387630067523982, 0.9181452737293471, 0.7208501674449018, 3.889610289422317, 0.003900759269771227, 0.9829450129295187, 0.6264898660778235, 0.6099655018563706, 0.001389919620757117, 0.8716185931571893, 2.122799656005446, 21.72372383298496, 8.99567645187043, 0.00018051006199132824, 0.6056928753566976, 0.006589726059114223, 1.469419447579523, 4.720258821036499, 0.14778376492854542, 0.0026571967743674344, 0.00858255038494626, 0.021291599871890315, 751.1974512954604, 1.2097505029945328, 345.59170338414896, 0.06790558892822329, 0.03236534311774683, 1.8694214013675903, 42.695980851049214, 5.865335995884899, 1.4133343019390676, 11.177067212516832, 460.241149574435, 7.520902762647672, 50.59780226262252, 3154.8716195310894, 0.06826492321656227, 0.41760138704814526, 0.8276332293004522, 1.3753228071342576, 0.563196326111302, 9.433835441274788, 0.8211376972838456, 0.13777789012217767, 3154.503333574265, 1.063665252892079, 1091.7515436133006, 1.2736531074855606, 0.8150341730116086, 1.5425164275918872, 1.9541466921846369, 0.6106115612835725, 0.5052829199776898, 1.3479253639981175, 0.00034518282080673614, 11.058468952353063, 5.007481326446439, 21.214878759463208, 19521.12511948635, 0.0016825552003026096, 26.499713597437584, 695.0418972760104, 40.835264604160784, 16.807008703460852, 0.27954457712542563, 1.5482891496698568, 0.018060751666146187, 6.0588780596187615, 0.0699369866659724, 1497.31779155826, 0.29242261466965913, 93.15284966985723, 3.871011745268389, 1.5027094869055093, 0.24249084975596719, 14.645068167604139, 21.63799578370534, 0.001374960810782703, 0.24612837109117966, 0.026593200266340766, 106.55397262128717, 0.04411512864086771, 0.4248127231890088, 0.0074759883867707355, 3.2491384341111984, 0.07531883799255325, 47.24430773384293, 0.040021036776277094, 0.4774330692612928, 0.013490014559409319, 12.041382386553526, 1256.0316940897806, 0.27448137082676494, 4.768498650040673, 0.5324457182293005, 0.030230678505943614, 2.6091907665591645, 10.545345800046505, 10.487575605495927, 1.9154528674094138, 0.23463955238539444, 84.49039957807751, 0.603540080810365, 37.11320691183446, 0.035377797628918115, 0.1078139727013738, 1.7736781752246233, 5.446715140692121, 0.5242715043807231, 4.830074128325308, 0.1324030791970611, 2.7213999940893383, 3.0934826236873127, 0.40163643230282997, 2.9082237753509728, 0.02357671424091015, 0.06640895585920578, 3732.8781657959003, 27.456820675631857, 0.30017263241239106, 0.8689400626842532, 1.2732698710608799, 0.4032664161180256, 1.3494220036011397, 113.018560021082, 1.6847829517230604, 1.5728141976714274, 69.92433241055714, 0.06837561186078175, 0.758994541432574, 6.847123397193079, 0.009826724951815562, 0.35643730120355593, 0.09044317068082215, 0.12997380377951956, 10.72238736789703, 0.007539182104203844, 11329.734748189478, 0.23497448116930492, 9.097846999821398, 0.0015048977335260544, 0.098662408008834, 268.2761823615705, 1.894387116919802, 0.0004883824198675536, 2.0318450829262567, 0.16350988281300385, 2.1298388886686594, 0.0120188627836579, 0.22937769352123716, 0.01895934328400939, 88.87293099974389, 0.018911416225822427, 0.4299119437023525, 5.824978812714162, 0.3830611888552293, 0.7466168130291198, 0.5185967037983253, 76.99519404356583, 0.0009954998373999627, 0.6925335828029514, 0.5213337680790107, 0.2037042677563946, 749.0373855182856, 0.031281197810343976, 0.6353250786075999, 0.1265735078685767, 55.353236549665624, 1.6457052111322403, 4.151743412551547, 0.8930893913593485, 87.17836718402003, 2.4424450114579996, 4.094831049663607, 0.17022468676165428, 5.598934895527544, 2.288135867965054, 10.453591397534872, 2.2056330666195874, 514.7228754021841, 0.0008079578166667636, 0.009231084921522989, 3.1877778532525585, 0.6452255581978793, 3.443393578196319, 13.941067451410735, 0.013689343903914375, 1.4701285687402559, 2.183354690988944, 1.0796333080426748, 0.26435390714878176, 36.57338480435137, 0.25660560202031124, 21.520617619767712, 699.2109793532122, 0.3523118334633232, 0.0021381544105986204, 0.26451759332123104, 0.12464408496513238, 0.23700653564066768, 0.9706361602374968, 0.029953234975352808, 0.08361296821459369, 0.0014564053512617246, 0.007666935903584522, 2.193318359622029, 2.316699345636555, 0.004739191025886681, 0.8303688143574585, 15.78971314866538, 0.32805230224388354, 2.2326665980864076, 0.001006732499515412, 0.5106353853272368, 15.071927178149416, 0.003497764215174234, 8.999780806269598, 2.7321289355889475, 26.6697138115803, 3.421713392941638, 31.54399034134242, 0.05535409554293322, 2.2471077716605343, 6.832596719254609, 0.11546699240406565, 31.48308619015705, 0.12926229919976107, 0.045002264511842624, 0.06429773502165055, 0.4589183599807065, 0.3065171679331469, 336.45764733145865, 9.279968321973595, 0.7227646670546706, 1.1598751231425857, 127.58416581553344, 2.636116401147163, 0.5280409065408315, 0.015656170308594328, 8.58223369279607, 1.5752871325952555, 0.031600433395578616, 75.41034849117179, 1.3885736613035724, 78.92616001287489, 45.51019959411049, 0.005860015476912142, 0.22038439277502725, 0.7694477915254847, 0.010837753267650345, 1407.3858052768692, 0.2727501328039415, 0.0020324994378024008, 0.7445996753087659, 0.0032528117001756982, 9.208522046256903, 100.30733974098415, 0.010795805866939456, 4.027584808014493, 5.208140515327329, 127.56874499616534, 0.09408946912092846, 0.004061743639344574, 1.4121994278848713, 0.0055659993787755685, 0.6979818041696231, 1.1421841433159918, 1.048713715743018, 0.13567102511712667, 0.0640073710303595, 20.21109110115006, 8.309075850248396, 0.029705123691388734, 0.04009926664479601, 27.676056273543704, 87.48347555920319, 0.013168529859698951, 0.16801204445085566, 0.9515515580184288, 37.92744035977535, 0.42154419922571795, 90.21069713510622, 0.002163401664042959, 0.002492847741807259, 0.002237944960696068, 0.04891300003427942, 65.30586046402293, 4236.689467492431, 6.6524623577842, 121.40759140925019, 0.09653848309326929, 0.8564142815303786, 361.7891273223857, 0.6056521402581375, 4.2179934466222075, 0.11056426759237242, 2.600607689256517, 0.004168463963854253, 0.8354965431648544, 1.9829665660611195, 311.5898490617609, 1.7799628831380718, 0.09860877101925106, 0.006496087162841581, 240.04778681089522, 0.026227096925575285, 0.6114574112038279, 2.257477264387369, 103.3511833886944, 2.1448462201742475, 3.597770365050108, 0.16612071012809576, 0.30072809892249674, 0.13182281572419383, 47.30301788194191, 1.2080684526378527, 1.9017963083167908, 7016.615953178714, 0.03275544320267475, 274.51380540673415, 1.6935289824239406, 0.04320088051121152, 29.30939232128435, 0.9924164288275016, 0.005892446850418587, 1.126572740654204, 0.0497192673525473, 1.1919126317690067, 1.0963999835845033, 0.2684747576657649, 177.36575412560538, 0.002188041067915402, 25.922810859176074, 8.779539468706403, 157.88019410122487, 0.5630032866366652, 0.5793483349237062, 0.21180759526911527, 20.757578388778924, 1.6052985626366842, 0.06798081676905914, 0.0010894584630547145, 0.02678628913990327, 3.264362654742458, 0.7614963944174861, 7.021368164015958, 0.6706120773913953, 851.6594824279783, 1.6495435900494422, 0.00043197474650456303, 5.190191588899583, 1.2403440760464761, 0.17876203438807242, 0.4329493239987932, 0.019901091403501502, 144.43409559835442, 8.841298331655288, 0.006270031614681543, 8.753028225876609, 0.8679312531982132, 0.3378060545063099, 0.009032811991429681, 0.704600296790636, 0.7201215885867035, 2.0642712857061385, 2.1815669325735936, 0.3477498716933858, 0.06303177927604812, 6501.15798533642, 0.0004040781621037515, 0.22245817138097945, 0.13865668001108805, 0.08487715785184538, 1.8184051993258632, 0.1290257069402931, 0.023737555115661443, 0.1948609094422469, 0.3813584275178059, 1.788738277872289, 1195.1963452647426, 5.446113045854221, 0.08824890616746497, 5.261847839167983, 0.031145905012393563, 0.039176076985247235, 5.05048849788343, 1.492467692084733, 4.381299051797521, 0.1383194833544017, 0.013277086961616337, 0.5190571751840969, 0.005534706336065218, 0.004472803474930081, 0.08503417637247009, 4.086962666174814, 2.1081625376501294, 0.890088289325442, 2.0158673456784206, 0.5213397870845423, 2.8303078143803853, 670.6417383097923, 0.03761929333652235, 10.5152425820518, 0.0034058693907148855, 305.52656316196135, 7.492192329538409, 0.2560298332649342, 0.7096247821133855, 10.712806844322664, 5.0529473848882995, 15.258679496832432, 0.6736144966303005, 5.957387029931709, 0.0012994101739023948, 0.08356544545960422, 1.887934505060123, 0.23461592724749378, 0.3449105867621408, 109.28681034964046, 0.8260810270786625, 0.0036863549489406303, 2.252660898055366, 4.003828948689059, 0.07563858742145692, 1.1406534929572854, 2.160693771965283, 0.006802282993954595, 0.20648332755558535, 0.2651388948660059, 7.975730167528175, 0.12304300969010269, 0.298945401855775, 7.9626798618288355, 1.2746434641477236, 1.3090177313206388, 27.302901860151547, 5.359813080429379, 0.9800710691055212, 7.648359428478067, 8.044814019699409, 0.5171471304365378, 0.25078614604970756, 0.15164540244076635, 43.896869904719, 2.241870530818943, 12.653315471136088, 12.696785452255426, 1.2308786260017388, 0.01522012576725124, 0.011636086433856923, 0.6529259109725213, 434.7749708591199, 0.8181147710499314, 0.5681539570776881, 0.3763290596104656, 12.234794354270878, 0.3096946715249456, 0.0009914696226752816, 92.30510984632568, 1.4193574999376668, 6.762301919828463, 0.09494717507595103, 6095.778099231744, 3370.5577487555215, 0.06049090814495479, 1.6375529367729296, 143.57038923762175, 7.83669203511304, 2.8592728024764447, 4.792865038079825, 0.13246359603069302, 0.03256393802088175, 0.6818793701669715, 0.03292744419848472, 935.4151168198943, 76.89241547882473, 213.06395295618995, 0.3077314976107381, 0.09289819179030649, 0.11903063330117102, 3.884730453646234, 4.693603155824931, 2.2762667847907854, 0.17427733019945796, 0.6663720792711407, 1418.123710520783, 107.08518665708638, 10.020532210657322, 0.5604757183027914, 1.5307389496482686, 3.596066393175805, 107.58262345536691, 0.9891069185850193, 4.1320981080770105, 0.2204744458197783, 707.9812504620234, 0.03244293911844587, 8.080114441092098, 0.04012278228626169, 0.3943782198147644, 0.0022553659107350005, 0.026121905845585047, 128.9496715447336, 2.807274501618111, 0.18767642851515876, 0.5637149501519112, 10.062457565661893, 1.092064578507082, 1.4586663629025804, 5.576024815097133, 24.616086136198003, 0.0525814053048742, 0.004274066551368536, 0.7592166208398701, 0.18385487889349733, 0.058068372251415167, 0.004056023044668595, 0.013483978532783818, 37.81140085347271, 0.014269571566039906, 1.3835031607751167, 0.012783845823166362, 0.5120805483386004, 0.27246110571403237, 20.100592118451566, 1.2014456806065301, 15.47301122792911, 82.91152529731066, 5.810929190362955, 0.22424532661693247, 1.517297135566113, 64.77607657193604, 0.774295510338777, 9.693916478961038, 2.1772246849802093, 39.38803776843503, 2.514580624711254, 48.82626942979584, 0.044366894783138995, 0.02196555378794817, 66.74917422993394, 0.4446068747202017, 42.62911596660855, 0.5147562655234122, 14.916271609157915, 0.08253996304166761, 0.33095025353246715, 0.007392359081261568, 0.0020054652801192135, 16.60362160566259, 7.956202509484139, 0.20377476238751918, 1.2887440325496988, 2.4278371202653877, 0.3286922888199144, 3460.3356412263583, 0.002907193038599996, 16.13431820034246, 12.239736830346295, 8.81786911857938, 0.8881080268122767, 0.0012074641255545627, 1.5456305840560298, 2.9755496204615826, 3.4645862571472774, 8.407361506983944, 0.7193340061846139, 30.38923796659558, 0.0008238361958917303, 0.8017877600458496, 4.610045681652747, 3.501436894650795, 0.47034077825319476, 2.7149072223218367, 3.26244107864507, 0.19829298775585363, 1.1553668258218346, 0.04285830966209997, 0.001556545334407018, 0.25441722220784846, 83.33858762512033, 14.900573140738208, 0.696815374160638, 1.7767851344335102, 0.002088802034906259, 0.21895642459201328, 139.4390499995467, 676.9923980996458], "lambda": [78.50126614866434, 82.44864242538976, 59.91910297252481, 79.00222264470781, 97.97855250454654, 97.85074353611702, 97.7331034149089, 50.053557936284626, 98.39513372943595, 58.489771493182346, 95.06537115106855, 79.8317484747759, 86.85851616393819, 81.32596274268415, 88.08500172479427, 57.896156562719966, 99.91960117375604, 70.83578899463056, 71.8125488192199, 97.86313244577472, 74.3040474133588, 69.46852054045561, 52.441181444659776, 56.96917528795871, 61.575784356067054, 68.03656694308415, 94.68185059224638, 62.63753783823343, 63.32890514606958, 78.10401204087876, 67.9802240714282, 88.2205465227656, 90.6700166330074, 79.53687052568819, 63.51587857290724, 51.94749312693134, 60.5679845924208, 89.32757167242151, 64.42686273533828, 80.43579110514423, 99.55880843542428, 71.71413835848774, 82.50142087407906, 71.69545888078441, 87.47378838406827, 89.15212415939389, 93.26736122979057, 68.58172391785352, 95.94838573458443, 75.22020935426667, 74.37855069941857, 77.79672818358982, 95.95621131899463, 67.67761681417628, 93.92277848694533, 90.38295907551017, 66.26574684351368, 88.83179791716861, 60.36841086130991, 77.29979373127742, 64.29947274595403, 78.66113426690254, 56.14228348687073, 66.35996808911545, 83.5729552845363, 58.59265158021279, 80.18312576653821, 98.79653043525158, 87.26130521214597, 65.68782203256832, 93.52942850188404, 57.09865560062092, 75.29815749726566, 86.19392730470372, 62.06766089263472, 58.37165510203815, 63.47451762451165, 71.19529802845304, 68.03404046439096, 92.4249742982345, 55.39079636587953, 84.378915433287, 78.87326735399019, 73.60715344473753, 96.33520665638973, 82.88674718881083, 91.90909619908493, 93.93405758951099, 76.59477747468709, 92.45289006030667, 76.805581938176, 92.41533430095285, 94.47182991025602, 53.39894583293432, 72.89077833828316, 87.44895504926922, 59.751217525960186, 98.31473690362594, 88.92521497464354, 84.6648346084, 88.07915275924088, 64.28239466370255, 78.7146920188232, 84.38739686134883, 60.55571222214187, 77.97256729036619, 91.69749622804898, 92.4055599964017, 53.423261028241285, 64.87463257736025, 55.680429832106796, 78.78307854964282, 83.30032708680832, 69.50173287175963, 94.2928081603286, 85.51897153873506, 82.18755187400262, 97.57756680373458, 51.21685380980186, 65.23938646832423, 76.91483271983782, 85.66992758700721, 63.25200939619101, 92.07243555767056, 90.31018540209693, 64.8999357463203, 86.71704750027878, 97.25614208737369, 83.30000691096383, 95.44069780432999, 59.261161483496096, 54.906528998858285, 71.60876700063062, 89.36539413467494, 54.00367287110696, 67.58772829258146, 56.622598476821516, 62.39284364378658, 96.45948338802845, 70.35122778516413, 63.16045918529665, 83.89084744359948, 75.58603847295285, 65.17961289097056, 98.8260900812028, 76.47174666363134, 65.88722651101244, 85.60399838238393, 91.78570721642825, 58.08011289432073, 84.55580498371626, 83.6420404102918, 79.11743237867802, 57.549506576571204, 58.95280638521378, 61.528208175455305, 95.70871210991194, 75.99302321064677, 99.63485246131154, 58.86780134191678, 77.98852594964694, 86.40514584139821, 76.8953409129728, 96.2342476808857, 51.08138208053855, 91.91260219741994, 59.73937559693171, 66.33536016686051, 64.13649429002892, 69.98613817420613, 74.747506210546, 78.90470669250456, 75.82365834886424, 51.706739274190554, 81.21894821333996, 89.50444272151115, 87.43987804892376, 68.84951936455664, 73.07673700653817, 61.0897944148256, 93.3460911408961, 71.42655938300769, 62.46661234904663, 86.43478047127333, 79.76690405522938, 91.47224837057624, 57.70883908233685, 91.27396394532997, 57.49157207602352, 96.4016189341865, 91.6993034313351, 90.87462556176865, 62.25460091164917, 56.45835568366606, 73.78755869850366, 64.3580743392239, 94.78843420416251, 99.51261841495192, 97.62929158363455, 98.85016265091716, 67.82378200716734, 54.57633532318182, 91.73307700874966, 56.858594739641596, 89.97182322007929, 97.04693768809065, 52.9367288605885, 62.65455792884476, 58.87557564609321, 96.59675044118558, 89.98676604381333, 52.95553540347544, 91.99991592431084, 86.22571753161775, 87.46793889062363, 54.47204573585145, 76.34648536934617, 52.672666419575314, 50.07256738489004, 69.17352218247314, 59.50460696895746, 94.93669360737343, 88.5776518980059, 70.85812263669332, 68.34679289967804, 88.4110632193685, 99.55290767072974, 66.10734308589886, 69.38942372119332, 67.73783602362641, 92.37801137440047, 67.34261811960351, 57.53396138761977, 85.38982943894881, 85.64439697782765, 50.915460013766115, 52.91337539969177, 62.62500380680592, 80.13451656718375, 84.94432892097129, 57.09758916387054, 52.915763494259984, 61.406224994886564, 72.18489718018012, 71.57904913914199, 59.0755236039522, 50.349518692013106, 58.57819059545916, 84.14797077735773, 58.82249978894059, 53.93515770326212, 69.71260476348603, 98.67672980144692, 93.25132757865498, 69.22199287179555, 75.29192582834132, 62.809322396256256, 83.9010877004155, 89.8211536672357, 62.85234184526006, 51.8240343561775, 56.982179456946085, 60.18846559304477, 75.26234125484004, 81.68463009886355, 50.62284433601305, 72.01178460833827, 89.33831983787435, 72.49218223391019, 85.86544534945895, 99.87268635215855, 92.52099457665872, 87.71083937369083, 97.24026659010556, 84.90733588717221, 57.94355676684304, 50.44290828106508, 72.85582004922244, 82.43655294222594, 53.86587136785771, 87.04593535988644, 66.79819949666839, 67.38983903852775, 94.14838628242184, 80.13536772858154, 92.62879040020104, 66.79246860718287, 74.35957830413776, 55.18946517303929, 89.8312818542459, 50.578741967564945, 79.70514337489975, 59.407001006916346, 58.10978114665383, 96.72320006764627, 57.34354221216147, 74.87364318475952, 61.41067290593993, 51.483654210203326, 56.34937146025078, 80.47611311716267, 80.61567338476058, 77.9984366518122, 78.97914756977859, 97.93281483972137, 69.7270283856318, 96.04705336031412, 71.91927626422071, 98.34535852405381, 87.5526289877686, 78.74294693149122, 79.07739049474412, 52.63208282309965, 98.92076606361253, 96.29986328056812, 86.38750501394688, 81.88098248894626, 54.86457049815607, 74.99392547703633, 80.151229118792, 51.211926299283434, 52.91763851700435, 86.66892998320688, 59.18003108962932, 94.55232776711583, 65.48845213230094, 52.424049195274364, 96.04315666074051, 84.65981328369232, 71.06121325890257, 92.32690099519027, 94.05086758917022, 84.00708010290398, 59.5839788365704, 62.30861750028633, 75.82629858114042, 82.64290142550897, 94.94120646593507, 72.34504534396457, 61.99525192989846, 61.77738138634645, 74.51509673079917, 72.67520054344594, 65.31859772457037, 93.77578218319157, 73.33891666482461, 87.5186981902387, 71.53595528449826, 62.01715372790329, 90.83400625013579, 78.06483593073027, 91.23340574185441, 70.48282361547228, 79.72394535787181, 60.60709615689942, 89.94065994977548, 56.365891885325915, 90.44413334110766, 54.74488389867458, 88.77416841023567, 99.17597202581607, 70.40119116689682, 73.95324269086736, 63.98035985276757, 86.95924283148986, 84.76724081797133, 79.16782361395977, 75.70807213457499, 65.59064675464008, 70.97984547675627, 66.08883245757312, 92.6638291224408, 57.10933566953169, 63.778841329578164, 84.46340381169452, 99.77099652860605, 51.87852542040322, 54.99483022892557, 98.40764507908375, 82.06906333303057, 89.05402281735073, 67.7381835668894, 91.40346046819076, 77.22036879072971, 67.91358619312716, 86.42820483215249, 87.60324335507893, 73.45874581842227, 55.75486733851211, 74.77588624825107, 58.723156600629316, 68.23588508986582, 50.569327646792004, 56.95321789205129, 61.49349399059863, 67.37030720968603, 84.37065097838094, 50.513464819164795, 65.5640071291577, 63.42903431040581, 82.22830873901799, 73.96413635080368, 50.96742963064837, 95.49052037534341, 76.33462947738283, 79.34226694219608, 98.99045290413437, 71.24352847755024, 57.39426055464061, 74.66105728715212, 62.00988276684486, 79.37852638505862, 84.15435237351858, 70.7911979824861, 85.22203524677275, 54.68766380610076, 79.65951865746578, 90.87903203315457, 64.19606511580152, 57.357778773669054, 57.76500958668486, 76.37137472451988, 98.5382962808462, 51.68299350356448, 66.06579787039254, 62.42917797502072, 68.30368253708903, 95.16039215866783, 67.98517134054254, 63.776027493978184, 94.57382815254059, 95.77025286789421, 66.25770394337269, 91.29771714087445, 55.87673079628075, 86.93343741907637, 80.01371666130011, 83.7330915084491, 61.22575014292856, 99.57592361442849, 55.6736726271253, 76.63043164682327, 63.22183876461732, 66.72393813513642, 74.92612644204675, 52.00511816692087, 87.34892602474767, 52.24400367428231, 69.83368250787177, 74.16588797447689, 85.03773751087694, 66.51457535658528, 59.790606140392704, 66.28256166517716, 77.89535019668513, 97.35054256556009, 52.53235242566227, 56.11579959909826, 72.43733737310298, 99.8884531105544, 68.20982258390553, 50.341962730473426, 87.811904148195, 69.94916335757216, 59.03039088720688, 94.14187879590422, 72.6639041192438, 84.18172055206031, 64.45510472165294, 86.58866890988195, 53.32681584417565, 90.7243961247969, 50.86575557932261, 88.37628555667195, 72.24158674239372, 75.69263806606969, 62.01575078257987, 96.06416255574305, 78.78185821310805, 79.37701218928242, 60.92175953799917, 77.65845044387676, 91.30253584839983, 76.73310352506887, 65.82856921371278, 81.27220621717306, 53.46295609504031, 61.65382403118526, 67.50768273741484, 66.8637382008384, 66.25982627378917, 61.64591629411903, 93.97140099447633, 65.67118483171308, 53.34977196020477, 63.72965422928429, 53.55146524615926, 78.1469018879692, 67.17521420607949, 72.69233965873715, 83.86795937642725, 84.57361661976174, 85.35170396242553, 66.00926689884204, 81.57484298143652, 75.24046733453946, 79.6174346048328, 64.18543237667006, 55.87815182181979, 96.28545277941075, 92.26349995274222, 51.79504957233109, 96.93436422236235, 91.24692618183434, 65.50694737775407, 77.61215767166628, 53.368349186389025, 51.879661653151246, 87.78278469732159, 63.71425276085023, 89.16878504671487, 76.88690430998912, 54.98078847133835, 94.4169459833031, 88.1530818280591, 95.28170023176608, 62.946008883295086, 67.36212226678241, 82.73225703271046, 96.21010215067147, 99.52011708033811, 94.31365784017271, 66.33566093637224, 90.42449395986918, 96.12662355495311, 73.64602941834468, 68.22203968025715, 62.45519558405657, 79.529522977267, 80.7768353743435, 93.41272162106793, 95.99567221221501, 78.03784957244237, 77.84320175758509, 59.81645110367326, 85.21683167304778, 67.72342738039251, 96.62158319942196, 91.47565598765206, 50.74527984186298, 50.561080023145394, 90.72409929624843, 60.07578887561672, 87.62674195093908, 50.954428451511795, 71.6240493738487, 99.05191132942963, 61.34657826004599, 90.76632828470252, 76.60717632164771, 75.79419502571874, 85.4160209081403, 82.25928885717062, 86.14287834008391, 64.97155727159742, 87.37055650073731, 57.58079002225162, 60.98390725780943, 69.92160648826624, 54.58249384179797, 73.89287066717098, 72.19509606812704, 50.179990319724105, 87.03137885906926, 85.20323019538951, 74.43761761227219, 88.42717981674572, 96.244504897012, 59.942008570723026, 65.03192113695441, 55.55144407846799, 93.44896959732529, 50.10153619901334, 72.70917061633874, 72.71492049914536, 62.69897775257972, 71.44775564081071, 95.6919044667724, 81.1858695187081, 53.993778485354795, 53.959516089804055, 82.19852355545076, 90.57950895128002, 61.53020434460426, 95.15831784577946, 56.5702986714152, 75.51725977967803, 76.73333464758497, 84.33736221564784, 80.47854813778625, 83.81588669668707, 51.63139689440597, 71.23904944109148, 85.072226976651, 88.74683125345342, 73.44648643712797, 60.224920808666155, 92.29656320384248, 61.785365826343366, 62.98241281419554, 90.0285935271068, 79.24718763139357, 97.18645405826618, 71.38255971953474, 96.88772390578048, 71.79448107483668, 91.12228514139574, 92.84912687598445, 58.71664125877848, 52.020596052045306, 81.07210415020138, 55.55948417706374, 94.49437241078661, 82.02928830932794, 84.45069634313445, 81.82332734223183, 53.934887981736914, 73.3186062773558, 63.86359762139214, 77.72364539931996, 73.26698163200307, 88.10017148319406, 84.23403034493464, 51.58957589809979, 88.644678564146, 71.99202048250498, 93.87942637522235, 91.64279855647297, 67.01848847443847, 67.52087694693006, 87.24817720333499, 75.9004663438615, 52.91210919205984, 57.40928926407113, 99.2416590065317, 63.60639425858648, 70.20746310583291, 99.91356638582891, 59.35557633083836, 67.91685160575791, 51.985647655502774, 99.36982189872145, 70.37127138344263, 54.60656437159237, 80.3521267635041, 81.98767227531017, 75.02166348291009, 78.66858729510056, 71.23544884245189, 58.89569482029667, 65.6261087228629, 59.058004460516386, 55.18183935756328, 58.452916581234035, 80.16519228356324, 97.25178001615907, 97.36086625922925, 69.42041344144148, 57.07517749276489, 97.41275185982349, 96.1514141403043, 61.86688994148725, 67.67607111536736, 82.48078371099709, 75.7282406438315, 70.52877811833068, 52.52495197771909, 88.78505290139236, 61.859811232163395, 75.66120008859728, 92.04138802299269, 77.31951173871828, 92.1479538384477, 71.34246984017628, 58.66448198155541, 77.94950679964296, 60.6483894938566, 71.04383663374696, 63.06309559569041, 67.60225280626804, 73.21321506499066, 59.359736235057404, 74.23404549860379, 89.63773631317147, 92.30967702860139, 67.2344792851995, 73.3217493902202, 93.24517145368075, 63.36596569345983, 79.82717306515009, 58.44686773466857, 70.98440753226221, 69.83717720017515, 66.76235849464221, 61.984625828579176, 50.96497748000648, 61.01632693283127, 74.66756665768983, 51.080178173245905, 98.56797542165408, 53.94400385659379, 95.21449864345333, 87.28116919915041, 73.61543966109073, 66.31293820752265, 85.25488241105222, 62.10104791861072, 55.196789308791544, 62.464068916465635, 96.86609888711152, 83.02118903616099, 75.99054056662456, 88.97738114238658, 62.87382994185071, 74.5746071830482, 50.59567158688247, 81.42023302367612, 82.66169717279789, 80.2444667681484, 82.89741832498456, 70.430855719585, 63.99515108442171, 94.81755591836617, 55.02415025122245, 55.284400477497655, 71.53986533706569, 72.42360676728191, 52.7925460208601, 84.2018995971474, 87.39957369695367, 51.2863639952273, 70.88685703059744, 65.9008015145213, 58.46891934591289, 96.73552504935749, 60.44864064968039, 55.43117996141413, 77.52008394654531, 57.402592036087064, 75.28495347859715, 55.769064370955405, 85.45204869063478, 63.66479387341762, 82.60195294334781, 58.7709902737173, 85.56898361140446, 62.07206242555692, 83.34970805963523, 56.85387997730418, 51.75128508751247, 59.77886292045652, 52.36164641965529, 79.74540109300654, 87.03268687400029, 94.64048224144875, 88.81690388683052, 83.14132103780753, 88.68986437954271, 62.609242548357216, 88.84029676152572, 93.66159696238012, 55.02499891246657, 74.67550336740946, 67.38006023441339, 80.85422393892198, 63.61378775879465, 72.05042004722904, 69.94117994397321, 50.21551327970219, 88.33153337416084, 67.88673812163887, 96.87891346197046, 87.71989329043362, 64.8312582522957, 65.21251942133091, 68.00143485242889, 64.5470263845573, 98.2354527748557, 93.67539203140518, 70.20510866760871, 64.69464993339786, 84.30857983000516, 80.49780366320678, 95.24307250127032, 87.97692591800772, 87.9444484041256, 74.00868537764555, 50.959329364833984, 51.85112293277396, 86.52458547328817, 67.16679518557166, 87.1493695646875, 51.68166049907036, 96.83467737763931, 94.3477744770194, 65.01892157335979, 69.53247331737775, 61.107741166203525, 59.385982781061884, 77.523051940546, 67.59185615184195, 70.71530431778336, 71.9653178862902, 59.12561283195508, 68.48499687349714, 97.79025147649406, 85.0470120837906, 67.95267651996356, 98.8440375986614, 83.8080773163326, 50.54374398568978, 84.15220372250494, 70.49914547701681, 71.64965403964841, 63.3279251468458, 63.49127618945584, 73.10798766831672, 99.79421265847822, 58.801114169907954, 52.56810354632065, 57.704065979475615, 53.828338494133945, 55.214567463303545, 50.35354735513533, 55.739968651037124, 52.704590579960424, 69.41123245985392, 79.41252152678885, 51.1624519228987, 93.38569813748894, 63.084379318064, 62.43940297515395, 79.48810435438058, 98.8979648686435, 77.11406690021923, 53.41822975104006, 95.43715566465433, 58.190501778928436, 90.33594128570184, 74.57101498306262, 50.417602586358015, 63.931806283777554, 96.93585223137663, 99.45306042374257, 84.031816831076, 67.24313813426754, 58.13971549375702, 67.04398628315943, 98.66793371938945, 75.87227689321125, 72.79505962693872, 59.575894732820046, 84.95483934354982, 64.73896826010036, 88.48400714682498, 56.75296069368782, 99.43195275481982, 73.05509277585813, 91.40817750065648, 63.840978813187654, 80.54688410049101, 94.07505538966522, 60.35086428905161, 70.6179499577194, 92.07868923112409, 51.07948138729406, 89.75076293461584, 85.27061513078888, 68.32761151218757, 70.50241745563551, 54.62221958547229, 96.70861192781513, 99.05010487805694, 64.45708503911634, 51.045274584804865, 99.73071210544266, 89.97913796847294, 60.59195015762441, 61.14777277553988, 97.62909390792021, 67.43891795456553, 85.77503370874601, 91.51939127087954, 86.82490940306107, 71.51859403785083, 89.50019847490938, 89.53032382209506, 56.412328564075246, 68.52890155605897, 61.68938175423232, 65.48165450940567, 80.42963385286023, 57.82630842583286, 61.47195293496561, 74.94434613279027, 97.93071281704266, 96.63003013165108, 52.585947394334674, 74.99511166082978, 74.33639884272256, 88.77534386489921, 96.49434030199458, 73.79733132824889, 86.6663083904202, 65.91041922913735, 64.81833348956289, 84.53876600184573, 81.37257468756377, 86.84317968472138, 94.87674269236089, 98.27494786910854, 59.026777461411264, 87.7198373349608, 92.28806181356573, 58.18109284239625, 62.74016526234628, 81.33860821215885, 53.65292685608776, 78.89135735322644, 73.66176533845488, 72.38061389139456, 66.68065776044763, 75.84769707277476, 80.06136516469456, 80.48172784216524, 60.66377361090014, 59.84532713553088, 91.15192081941103, 58.57416238401223, 91.32901836339055, 57.712006331415296, 94.62944682934354, 81.51171656415583, 55.603781146932256, 78.71470246633274, 80.08033434344604, 63.41994035164373, 77.82064230703749, 57.95996643983874, 65.952571543052, 69.51277326618639, 96.7577912059453, 96.78284036604686, 67.07722620554475, 52.86254290710093, 55.72502083743957, 54.008327196393054, 77.62605710085423, 83.69252744529581, 54.78233042517145, 55.43979700453498, 95.94757927641072, 57.303419149968, 72.15696066382971, 61.11404001075769, 80.035663794802, 99.38746510303292, 58.315897203662, 50.72118152671387, 54.223041603489015, 91.46097775051999, 76.5989707849447, 83.63008849761692, 87.06633149611505, 51.61313374717791, 92.12360707056722, 61.7036342960745, 59.82001638233096, 86.66988644872674, 58.84920478370763, 76.49149457947259, 56.35619797710794, 54.26101216890493, 59.86822500084838, 60.76160169497614, 81.14682859581936, 57.483841934892105, 68.65291680739183, 79.61425165107774, 87.1033108033896, 97.7976248511616, 65.90946727119054, 92.60243521893071, 68.04772505996984, 91.609869136674, 63.15090419414587, 66.83475013698644, 63.5257495618457, 56.085105987983816, 51.47349511267124], "mu": [1.1223086761348746, 0.6819392990158677, 0.5535949680408929, 0.38269519477783265, 0.7111829886860093, 0.7621340917570235, 1.2802156184589895, 0.10323367789228599, 0.5373049708621378, 1.5496352620436384, 1.543722032096617, 0.9953310391532003, 0.9846105016439822, 1.2077420085131039, 0.8016355891697987, 1.4223902485179793, 0.6282026362236839, 1.3057247089889437, 1.3272771397765193, 0.18951440775273043, 0.14218198356006123, 1.772019273114944, 0.967541769547648, 1.8073663350273175, 0.8957499522054723, 1.7615097091821441, 0.6212689814507063, 0.14726003493624626, 0.7831083909348758, 1.2694887755036492, 0.6614611533356652, 0.6637510883765142, 1.898689534519976, 0.8085118540993688, 1.7853250610725566, 0.46089592788429035, 1.151701535921542, 1.7144335979799545, 1.1858042113246463, 0.5174361751425053, 1.402835542996886, 0.21015114782855035, 0.3653903257912686, 1.9034398682252263, 1.1756421278104563, 0.6457550785690214, 1.9379131588165406, 1.1553196054001247, 0.9958865350963321, 1.438422260436576, 1.9710382373052349, 0.5005014327291986, 1.0582224666262101, 0.4564349894295714, 1.7963766244056696, 0.5060774680343234, 0.377288380370579, 0.8555232278507866, 1.1652367421015948, 0.8301566221734493, 1.3898982146531338, 0.45944852126968316, 1.1416769192420444, 0.16466744840581438, 0.3795433662069626, 0.9143806501982369, 0.9941196128311061, 0.2924193484127565, 0.6989879682864462, 0.6563908792407147, 0.8562143823236319, 1.772002049162054, 0.7213340525391081, 1.6430918551981435, 1.8155500863867018, 0.676022248795093, 0.8670470665351557, 1.2105183283872398, 0.267361798924112, 0.523309454694879, 0.4850342663165359, 0.36928276687051165, 1.9596297496870805, 1.014936379077444, 1.754314688087979, 0.5722835332671923, 0.32151920296718695, 0.6043241366849683, 1.5193755129366748, 1.0110881795350852, 1.2461825406074925, 0.44729148127016005, 1.9950407337592344, 0.47166326276725745, 1.7873988456535435, 1.9702528935529806, 0.6386152733954725, 0.8305875172351856, 0.5344020509328778, 1.5318672330845056, 0.5053567684391941, 1.3628414985221435, 0.6742165260038178, 1.6540413927345339, 0.8269603814208496, 0.6304459692594038, 1.2996799314580265, 1.182364743589572, 1.8454853389913815, 0.40290599805316585, 1.2251687691263384, 0.32550852000384795, 1.4312341884869968, 1.693402608113526, 1.689676824396663, 0.7755810947686861, 1.5388446069144182, 0.38361210928541023, 1.3643843604151171, 1.136702178303432, 1.5997182774059007, 1.2347117104358856, 0.876804336592943, 0.5601468672753654, 1.384127261586528, 1.9192648267192292, 1.2613254093678699, 0.9605869820357111, 0.47583404066974355, 0.7439059248603276, 1.5363745623260654, 0.7247324251764649, 1.6129200587867658, 1.2533798787627781, 1.6899317673851888, 0.9357359571623498, 0.7837311989254866, 0.11127904830927496, 1.506949668760532, 1.6378072086960709, 1.2206195891818181, 1.0574522328370888, 0.8404876625437899, 1.774303492075751, 1.999298858975723, 0.20197983682289583, 1.5029496315881976, 0.39319269461862305, 0.35960773498591414, 1.2616382963687112, 0.4648437025892983, 1.3260639777955556, 1.2139703013142262, 0.38237916844734354, 0.34410852968094297, 0.7588732615092318, 1.474604322388658, 0.343819384134725, 1.6290724854888465, 1.1151432846720113, 0.1858788251384279, 0.8498053158614375, 0.25681144036120673, 0.9917666461951182, 0.5481669837822194, 1.5477921529780907, 1.9722935095065839, 1.3047166377370807, 1.5979264621235985, 0.8417806532816887, 0.9197980495411247, 0.8760418680651676, 1.09647562819912, 1.3601616939469303, 1.2168430624408317, 1.7064566915515187, 1.2024498264584838, 1.1592225852567268, 0.323713576688213, 0.7563162703840156, 0.40744360632200416, 1.8856412983010915, 0.48458290452180175, 1.179708090203087, 0.488300892862896, 1.0072334359499, 0.2180978164167615, 1.2521111947574275, 0.5585554052758934, 1.37515661423814, 0.21887264460949934, 1.045269766602717, 0.9140639274764744, 0.9305800308295569, 1.0912498729716158, 1.4063353616181051, 1.9067672660628716, 0.5926137009236515, 1.2900726334742636, 1.5834870159481846, 1.386746648014974, 1.9750887564923358, 0.6646019960126405, 0.29041153773440714, 1.974991395579717, 0.6674808899488662, 0.6149214498192291, 1.0447005401610647, 0.17963638053864855, 1.9533555952390997, 1.9609114840715889, 0.5919305760094871, 1.934971681003236, 1.445252828262385, 1.0204114911675732, 1.5140319848009722, 0.9562945573855272, 0.4078294838769705, 0.9300634041525316, 1.1937090206524852, 1.1088085798373037, 0.44127120310865176, 0.14150011128233417, 0.25148937858161213, 1.567695743456843, 1.151449888894839, 1.1129775362363927, 1.669652159791459, 1.9532896921826004, 0.4450909343805103, 1.0048029816753932, 1.6030417122977, 0.9568061634116176, 0.16465972876093682, 1.3167345624485403, 1.2332142428938015, 1.853042914040124, 0.23152294492414116, 1.909040536425137, 1.219711067047623, 0.5311340668495208, 0.46524168815632194, 1.712464141809706, 1.311354605592056, 1.1948111689311212, 1.481637945884313, 0.7994540726834997, 1.6393484787138144, 1.6330154608185516, 1.8382083931785507, 1.0353109893999994, 0.16026236240919284, 1.0321737710504562, 0.5563616943216364, 1.3230090418531755, 0.30707155283989773, 0.9115829607115995, 0.4077870822661017, 1.919264314109587, 0.9185990028467248, 1.4262383560525103, 1.2719150436437388, 1.2901783794184203, 1.3790170967236615, 0.3169951994225836, 0.8000050439923541, 0.24892260682592882, 1.2873171971279957, 1.5053512909280486, 1.613022929169685, 1.3901408403177387, 0.33731254520886456, 1.8849844141488241, 1.5996800314939015, 0.16549979567970535, 1.1177521053419264, 0.30724452621976417, 1.4558119438928911, 1.379821173678305, 0.4586440059083178, 0.14594400533762392, 0.7084712444148895, 0.8945318494055509, 0.6724697546149964, 0.11044673637538503, 1.812931024739962, 1.267295892033365, 1.1863478935222858, 0.675460054812368, 0.5762704854853402, 1.5681398865941027, 1.694146026085824, 1.7110232110275387, 1.7487524076305516, 1.421535104150573, 0.9227991924594446, 1.9876196172147913, 1.1866000202274702, 0.9188885678124842, 1.6866706327063161, 1.538561292553162, 0.9321334674581281, 1.8015211424635849, 1.5802808921764557, 1.0484165026359726, 0.10470768442449625, 1.9444987760434638, 1.198074663991285, 1.2112058292998862, 0.7759058343938948, 0.6458409435291272, 0.3151710862449342, 1.181872940815303, 1.731360022707076, 1.8516710910635394, 1.354456447139388, 1.944698282368129, 0.9112759939863702, 0.2693220580310347, 1.7698360880181963, 0.8734794501561283, 1.9835816486623545, 1.6980061728197737, 0.6348805149643797, 1.9700428364742044, 1.1767917227503695, 0.2621252345307631, 1.9575397674685633, 1.9243666966297974, 0.8641465510394327, 0.753158900568436, 1.2171520844168586, 0.1366769110124455, 1.3991978815091335, 0.5254184847716864, 0.48178130160211063, 1.9187479199955983, 0.3088280281521407, 0.7181925118896428, 0.7892281163804727, 0.9089674070410804, 1.9682060852338288, 0.5388890734608613, 0.9492091244982789, 0.5215456360486561, 0.8979713515359573, 1.1074093922937147, 1.1448214484705395, 1.9561219296583938, 1.8400796921139375, 0.37847270195573846, 0.7453774582074016, 0.5323591694181479, 0.87027648011739, 0.14488455194793087, 0.43230037378055663, 1.7081892229780096, 1.4060471803432057, 0.29575843957628906, 1.5880853068578313, 0.4631552417924395, 0.600096842320189, 0.7036375209084123, 0.2668171025502307, 0.2867768945591077, 0.6766729789125457, 0.24164622753748832, 1.6639113850366682, 0.6142442998420634, 0.7561654429080039, 1.7810308022151247, 1.9702893483112993, 0.5278668087849544, 0.4778399033838713, 1.6613036614193004, 1.8704681511457883, 1.1206593673587308, 1.1754003593653635, 1.5148833884879203, 1.7376468331086181, 1.4882021424526246, 0.3920288126426885, 1.6671732910536308, 1.564778401127413, 0.24216926550102816, 1.1855302766131688, 1.6281034848253972, 0.3011703882859441, 1.3901845179099757, 0.20073911889129836, 1.809831717292005, 0.8572531885065504, 1.1295246078472647, 1.1633515041019766, 1.5128396621089795, 0.6806485729429711, 1.2719556073615355, 1.07801056792425, 1.2230514808173707, 0.7511582070114435, 1.6976102623891236, 0.6514893125859023, 1.0813499932031883, 1.0857811757342979, 0.9611409947570726, 0.6879996934453032, 0.20940350289012244, 0.1176888333167455, 1.9774289432733105, 0.20291379600376255, 1.6520931421383172, 1.636098592818952, 1.3166523419026015, 1.988956611128057, 0.1934035473112656, 1.046834962234993, 1.8815476861767864, 0.14034580102315822, 0.4748741347794069, 0.2805609814098562, 1.8550625820437923, 0.3595342435738038, 0.5862645756158257, 0.6386494286243625, 1.3966561319519164, 1.9997390849755667, 0.2820690319042797, 1.8281354112078918, 0.1825244087027939, 0.5406826047803494, 1.4462138619064229, 1.4331445259623714, 1.1169204509256179, 1.7221960102176879, 1.9900691941944482, 0.29370724402090265, 1.739943569823726, 1.4202703590179182, 0.7840171695650187, 0.47965565906028773, 0.7647897634355948, 0.7008635003601926, 1.0189290473276484, 0.8334022182586505, 1.757117407261307, 1.8010428355472434, 1.1550921985106297, 1.8369394037452715, 0.6039337175848838, 1.1571338182764839, 0.3080088841907558, 0.1453084958127489, 0.3963481191107783, 0.8878980379406985, 1.6395502461848146, 0.6042372325208659, 1.6280105810036827, 0.15853381673878936, 1.5162513726591298, 1.689458266336756, 0.11026614025546477, 0.1808051779212442, 1.715099457883204, 0.2409617452103348, 0.6869266326021055, 1.2588004715208225, 1.8786004890364973, 0.5779836503835076, 0.4578887265179834, 1.1953643741350424, 1.8012565588471139, 1.8440494787692487, 0.8782183356355515, 1.6083142865661808, 1.48768781856107, 0.7593739122958902, 0.4509081290210831, 0.12884632410339308, 1.3149459454597214, 0.5583059857957422, 1.4160631359066749, 1.3948066493963172, 0.3432330236395841, 0.9337212326304501, 0.6419825512596966, 1.736934864346217, 0.3485388389309718, 1.178638166633387, 1.9294934104938208, 1.838873043424004, 0.7368007889479525, 1.2051724524534657, 1.6649991121712062, 1.4844234595299708, 0.5956015829594856, 1.6913776514004808, 0.8074056661911959, 0.8862606103329547, 0.9346406198007253, 1.6058494247226145, 0.4503963002645004, 1.4004410122050373, 0.577951147024538, 1.463859691016364, 1.0943091826656117, 0.34556691669108797, 0.17316294345111571, 1.1309882864111709, 0.4658739949397469, 0.9654792702437934, 1.5347377543227676, 1.6393713300504458, 1.9077756544589328, 1.1773664383144347, 0.1230311036427764, 1.451583287873741, 1.1854933815740591, 1.488582448879268, 0.4309598714381584, 0.540953758520186, 0.6836822106153713, 0.4607097799500187, 1.3238192410618679, 0.5179234723197511, 0.617405821334756, 1.1042083147290824, 0.46077847415595463, 0.7871887644192171, 1.0394410097227753, 1.5505356929958611, 0.6571953223471267, 0.3630343752050992, 0.15394895328848762, 0.11637546648604409, 0.35084551541036313, 0.11803289583159353, 1.3119950635948099, 0.162744335249893, 1.2436475206426012, 1.6671742408237238, 1.3443187153820582, 0.2517357031234185, 1.5387595862154806, 1.3829003331192644, 1.5206020379153447, 0.5606790547284214, 0.8122212500848821, 1.1319025944970351, 1.9956040189253614, 1.794782964202158, 0.7637433131447047, 0.5631846112917068, 1.9072204209043986, 1.0741264644786626, 1.252210291525052, 0.2726190808682395, 1.8909867363146386, 0.2698236239510955, 1.314343208533388, 0.2717633056414771, 1.1426652494616214, 0.38433821000543456, 1.3838721802548184, 1.8595902025612467, 0.8397361488864293, 0.976884213374481, 0.530691757754134, 0.21972609017908995, 1.0635862662951614, 1.922995960648556, 1.3285449615973108, 1.5914944337014292, 0.11371776675993188, 0.4100651341397721, 1.4034912883814286, 1.3477583782135478, 0.9522934439074889, 0.1783541104710268, 0.5267076865552651, 1.2100270714850005, 1.2634020484025543, 1.0575473949139373, 1.357004757161738, 1.4057896296595511, 1.5168040796235764, 0.29712572313580643, 0.984754328266951, 1.1753300092889807, 1.0999351931356864, 0.5011601301857056, 0.18741417248230824, 1.7175845995531516, 1.8791927616307094, 1.6951285962038927, 1.456885739654588, 1.6509676002553666, 0.31772295537181877, 0.8820386631759123, 1.500672025027823, 0.38956365451247466, 1.726104597825902, 0.6985025564022153, 0.27744856457038786, 0.9584916532910451, 1.0290075456797012, 0.7334634578970362, 1.445034383730321, 1.2203721983928448, 1.937739085955904, 0.5816678875660026, 0.5365530678468131, 1.16885146658991, 1.415125899706983, 1.4489762628371738, 0.6890500249004671, 1.400951896409875, 1.077270566837849, 0.6810596604467996, 1.039306252514982, 1.7125995465651005, 0.27972514193689474, 0.9366091708619908, 1.6059736126282076, 1.729470962908753, 1.5614167358411888, 1.8773248824529256, 1.6236767176162499, 1.2856190649660577, 0.9166224964349399, 0.28135534037538623, 1.008267385705222, 0.9422992395726332, 0.9841834292407035, 1.048440885638852, 0.27629010907652396, 1.3249918129536464, 0.9852666778977198, 1.9551024225905405, 1.7814353476961382, 1.687832744919095, 1.0318616328373698, 1.8784343368509608, 0.778622324613683, 1.4477709266118528, 0.7021611399048889, 1.582956861870226, 0.36908649231366863, 1.5612724735386543, 0.2810323509108631, 1.841236961529603, 1.1347043935132368, 0.7476628546658156, 1.4026368124871018, 0.748166486726071, 0.8815969587880009, 0.5743672196100006, 1.5200448635144368, 0.9666072806867374, 1.3728781133410286, 1.6592934991846453, 0.3414093996868238, 1.0258689630224582, 1.962395492575645, 1.0623546183624517, 1.3315426216644988, 0.2970912649615609, 1.2160097602898556, 0.5312825328140769, 1.1025356455166107, 1.0186182121287257, 1.110796060607898, 0.9593572304601343, 1.5020266706886996, 1.6439553516310967, 1.60701422669494, 0.11683538141822954, 1.1940929387728172, 1.135013685036135, 1.550156246348572, 0.16591541691964412, 1.6948606661992114, 0.8147523088657262, 1.3073236155024195, 0.46315149699658753, 1.3346060459734135, 1.0242818636956363, 1.1339509226983984, 1.3311972147407738, 1.6362538289752444, 1.1926038002664747, 1.4649732694865014, 0.9629876394089721, 0.5925264876042527, 0.9723028934830701, 1.3524512365821568, 1.565315139570356, 1.3340853951027662, 1.703094247052071, 1.9910687355516854, 1.5638298045375087, 0.9033610337047993, 1.388127023096542, 0.5112044171941139, 0.3833331788815034, 1.931438480535119, 0.1315352957975345, 1.0887900297171167, 1.8792785433132964, 0.8332369587818275, 1.203167199547671, 0.3423801024306474, 0.3423555253488414, 1.8628240850591948, 0.18002122150236372, 0.8615959083236883, 1.0630238635088682, 1.1246693790910773, 1.075577973078976, 0.9451396008448567, 0.44215756931991146, 1.5664634908786426, 0.7613052355821367, 0.4433249417002981, 0.6418390547777173, 1.19269250898731, 1.322493359357188, 1.0300393780212103, 0.3304387577532923, 0.1474982579139839, 1.7918400472740625, 0.7488097916941175, 1.0963236695737006, 0.7466646754388216, 0.9769432210522766, 1.1402949161148266, 0.8051854920359325, 1.082396581730884, 0.21871405668139637, 1.406521016278407, 1.1438314609723756, 0.6356663509834936, 1.0470812897392903, 1.3202872850966454, 1.900296453033922, 1.4934432211731214, 1.1466183473311022, 1.3516431642154292, 0.16599586466698069, 1.3919963517989407, 1.5547852925280905, 1.8112949188300533, 0.4077540514928658, 1.3720678480564898, 1.535987385646547, 1.2966623091204226, 0.2736706839992131, 0.8331535108339885, 0.48460158630879424, 0.8374763128024573, 1.5426000075242345, 0.7001588990851066, 1.7934598624734726, 0.7416794750545934, 0.49819141099714614, 0.6625684971423137, 1.1791850018123755, 0.8305710109234004, 1.6674009749766332, 1.6754252961868479, 1.5243434036777197, 0.7148432776711034, 0.6485146852911365, 1.599761395088614, 1.473596347275007, 0.13601081259668807, 0.18152573391381965, 0.4873656694542683, 1.2094786263077646, 0.24214356388619349, 1.762291511615471, 1.773359695237351, 1.7507276735619943, 0.6931752304542732, 0.6561198811152955, 1.5513995960851126, 0.5910211647907575, 0.6156694617954186, 0.9132802333783446, 0.8147504808062193, 0.7446098566411027, 1.2849594860959062, 1.3482790350969835, 0.4167025268460207, 1.8272760569911377, 0.6069439676124209, 0.7404960466111074, 0.8490760862632546, 1.7725673195943992, 0.19178538581594318, 0.3763559275612125, 1.070407023053585, 1.5285159222403062, 1.1364572655623273, 1.8337894457854191, 1.6901205544373503, 1.188542716906673, 0.31614282136529015, 0.5329935505551038, 1.8482787489697734, 1.435763355726843, 1.1313046865677798, 0.616718352231068, 1.870908507216689, 0.7194036955672336, 1.541398078798037, 1.7266254833664512, 1.3731801132800276, 1.4865771667939047, 0.9612570973167374, 0.8800489335626838, 0.7526009933908511, 1.3057073286655436, 0.6348965797810344, 0.11132804123753867, 1.1235327866371316, 1.8349956107706284, 0.8957097752879759, 1.3502579958460055, 1.7514217625959168, 1.6890802299711796, 1.5938183106052282, 0.6073315847748981, 1.82555867839437, 0.28370031514226746, 1.2018675339917488, 0.6208414893578685, 0.2047755277353181, 0.42076594043019955, 1.499115953435092, 0.5375699758944428, 0.7240893680396973, 1.6045010158412378, 1.0854380671512804, 1.079443936133887, 1.1044961123034358, 0.2676333621929149, 0.9257857251992408, 1.2035192409564235, 1.6996315177582086, 0.24661297873626564, 0.45088302701467675, 0.8365733634524524, 0.9719254402271954, 0.41013378455550054, 0.9431727698612591, 0.8580510174920799, 0.6152969578086291, 1.2184508979890851, 0.6364286860661146, 0.7102939042542877, 1.8888193371576998, 0.9444666176751619, 0.8436309658495355, 1.9295386785173696, 1.2425196846631748, 1.0375150490202425, 1.0421723218167538, 0.6214805889490308, 1.2678559949779797, 1.6625221034849453, 1.2532001972843565, 0.5407218769729799, 1.30534735636834, 1.224004630781118, 1.6277881542601782, 1.8006208181982175, 0.8194754229560337, 0.10747387638930979, 1.326289630797707, 0.948449686421695, 0.7394001127999266, 0.6765855094389223, 0.6833397565526449, 0.7088991406859322, 1.154563566973398, 1.8703078899335779, 1.8861914835525349, 0.9104527534597598, 1.3385724838089197, 0.3475245080195114, 0.9745384236349943, 1.8053399577058111, 0.6913822726848127, 0.9335055274931459, 0.20491503575087786, 0.9409258354042382, 1.3257484030438782, 1.8040138628289644, 1.6470123211217012, 1.021620165890244, 0.3960512991965386, 1.3894155027682056, 1.2603101290323975, 1.6878534482111867, 0.2730294395132681, 0.5688878962561825, 1.610093456033624, 1.252031970782875, 0.8264984873433022, 0.6847679104231083, 1.8765673038385084, 0.36644632359251283, 1.789789580406351, 1.4675025226464178, 1.7522067701137223, 1.501571328159971, 0.6805347935257728, 0.846727109951827, 0.6270135930902844, 0.7750178811083646, 0.47721356755400945, 0.6468294999994654, 1.9900723646164218, 1.3999070789729395, 1.9916628750516026, 1.1251368164050273, 0.7882516119821689, 0.8409078489853691, 1.8218567620469164, 1.1632700700799912, 1.656337821490385, 1.813318275463883, 0.42872392393755, 1.8293313814330578, 0.31712363523448905, 1.4050671774707333, 0.7197482303147581, 0.7363666140545445, 1.1188716901452025, 1.8093032037650676, 0.764827614044048, 0.9635114746947088, 0.28367389197025983, 1.5033447978000134, 0.10714259597329977, 0.7775056890464034, 1.0944240954931017, 1.8733928888303313, 1.3919461159216626, 1.5422320370752358, 1.538927317700942, 1.2972711993331552, 1.0428193619478623, 0.17397291794382208, 0.7476786018408216, 0.16449304270895582, 0.9797278959617108, 0.6909223555839495, 1.5944536868523107, 1.0621504620291184, 1.530631087562262, 1.083203714100494, 1.9385512831839604, 0.4965773710464608, 0.17625764814149908, 0.3146512055779716, 1.4118649890512338, 1.5570622030708607, 1.8040538861998647, 1.3071535005328834, 1.3591361423020538, 1.9569739816876466, 0.1884037894055247, 1.5368503520081507, 1.1760782280668913, 0.4636705862733129, 1.9658621234739462, 1.9536492695587113, 0.6866658206612977, 0.8533084958003849, 1.9972977191890455, 0.5212750866443098, 0.3427285091498765, 0.7623357486862711, 0.9004394347889636, 0.47412797493106884, 0.5467328520382438, 0.8467583717411299, 0.26543212568594776, 0.9541969471064257, 1.4755311503008686, 0.572539152951985, 1.85041755898568, 0.5503746472991917, 0.18764374639602716, 0.28336885933781564, 1.44674085968564, 1.015978415249207, 1.253860942776519, 1.78459092012524], "x": [2.524138320547946, -1.198804437734239, 4.8463947996534, -2.496985492800925, 3.5811637821060742, 1.8568418469955414, -1.4471421645577207, 0.2767778165802586, -3.077500269859451, 2.1527882031846985, -1.0658512091088248, -1.622138011450529, -4.770677282861827, -0.6152553669821366, 2.632085423688565, -4.071744731500501, 2.2291008219736845, 0.11520025548365265, -2.068773034589202, 4.479389327014587, 3.609423849500054, -0.5767337412684252, -3.350476061720391, -1.0910778120565445, 2.8228870301396096, 3.555721545714654, -1.2374333032339022, -1.9702692663106367, 1.0829232187474123, -4.0886035761246395, -2.2692616533700125, -4.4004759017945325, -4.228259240034995, 0.8526031206880527, -1.0065199469407493, 2.6095599800958214, -4.951524530519724, -1.8582959071360152, 4.224147677471754, 1.5091807760445786, -4.910156398782534, -4.920746697335909, -3.164383554350625, 4.0993063025623275, 0.709700409011206, 3.387143191744162, 4.442687331443112, -2.4146386569055367, 4.360162147246758, 4.583296488407489, -2.4895801627122016, -3.833806610197601, -4.966302453414738, 0.9447465338679208, 4.437265574261486, 3.6169123050724075, 1.916080345001026, 2.340635966804271, -4.9065986684550715, 4.334630476486929, -3.0645765204124986, -4.2567956548880295, -1.6651734001992438, 2.4770211879108315, -3.5463116593517894, 0.5840615612481761, -4.900320054173836, 1.372419330045215, -1.5828549620934096, -0.27945378833952894, 0.7552647142064339, -4.924772929820772, -1.514655632990689, 1.453862937869987, 2.907934657279294, 2.489652764443404, -1.7620821026992606, -1.313744049807053, 3.8380526475246466, -1.4235174676575832, 2.05013130916943, 0.6902386223487404, -4.860639236406677, -1.5639324906022969, -1.8233231183063747, -4.5971439434573345, 4.396588873145195, -0.9167614157780912, -3.16982764905287, -3.2013812549046095, 1.4544897975816529, 1.7862663431828105, -4.336315682905521, 4.153795478419935, -3.3858433480093932, -2.946897066805164, -4.695351005950429, -0.17178112051304417, -0.1931247604367039, -1.263684199105235, 4.430122899809611, 0.6999165459342871, -3.4368982977524833, 4.488370885760775, -1.8524177933169228, -0.024606297391459364, 1.1793781549557387, 2.4302575165965585, 1.8274681390053384, 3.569244607690697, 4.291194877997089, 1.6447534311473184, 4.480385162873867, 3.7613106022724416, 0.5617813722618683, 4.0182749314646244, -1.9286064503579334, -1.175234973310284, -3.8818519796642805, -3.151731757471649, -0.7605330087530362, -4.787573610975815, -2.462964277221139, 4.587568948935928, -1.1394079753125008, -4.760140294860113, 1.7989235982179146, 4.6427406726541705, -1.749871642019063, -3.192357992110982, 4.924545340614282, 1.5159589125597162, 4.956206832854512, 1.357116141500983, -1.9041273039936932, 4.207496315025889, 1.5598263038088653, -1.2647911639471312, -0.6035300222382158, 0.2122756184910184, -4.630634801858058, -3.278791954032434, 3.623988967276885, -0.06492950636227768, -3.988404899038598, 2.020798594839257, -3.032773585437468, 4.472575306364298, -3.0990188753217773, 0.9018067356335351, 2.0746501270795985, 2.164315336304467, -0.6769309226099365, 1.247403959429418, 3.0335381985031287, 3.7971840978104474, 4.082197539431656, 0.8472096407486349, 1.9016194535167372, 3.879661006924101, -0.41323987943667717, -4.074158051818858, 1.4336629366772025, -0.3107228830519908, -4.5639953682650685, 1.9064388303021946, 2.1430359766073606, -0.02574445316141727, 2.2677040069843803, -1.9189886941541179, 2.86912403063437, -1.192096887343891, -1.1354042846050936, -2.459762147064173, -1.6402670357484075, 3.3415830623042435, -1.1595221422319768, -4.2596401769903744, -2.724534336595452, 0.4524573019672946, -4.306405809927717, 1.744130275413239, 0.40498678664593246, 2.499610199342249, -3.0931073050004665, 1.7885169999868715, 4.307105497157279, 1.7763219442975693, 1.4064488557963468, -1.5333701287278179, -3.591127001416962, 1.9493461295859325, 3.449380589102377, 1.0209345488028028, -3.810811674387794, 2.5020599255797507, -3.06892928064408, -4.074644844123623, -0.1216404742884416, 3.4577988228964145, 1.7320457632545674, 1.673091514402926, 4.6081387761370305, -2.03047964119711, -3.260531124979681, -2.8072178861836017, -1.652143062257493, -2.554875028203817, -4.729360183894916, -4.7814575443908245, -3.8045261486459045, -1.7769705991519427, -3.382444235556278, 1.208573106077675, -4.189177181947664, -3.1704528761618045, 4.064737163442462, 3.0405594594264898, -0.7442838824024225, 3.7368690587044924, -1.2694168438568854, -3.884657814428183, 4.904038638488643, -0.7270976712555886, 4.25657484805415, -0.006416206366957944, -1.578449543583024, -2.428353726488246, 2.4593137882672895, -1.8938724684368258, -2.6564113543760772, 3.230876235610083, -4.072513620592414, -3.569763018561143, -0.36649650594836203, 3.644510955445881, -4.77517419508883, 3.853994132084196, -4.914477631608648, 0.7454351119225491, 3.32542189007218, -2.798478756416464, -2.780893832934889, 4.35672617677689, 0.5841401320888462, 0.427869882101124, -0.5739200420795605, -1.9064294725273179, -3.419851086969845, 3.4581548095464605, -1.06043320068407, 4.615152822721075, -0.5008887230237669, 1.5358718677150174, 3.9058591086892385, 0.8957380035375051, 4.003976882242206, 3.378958955315303, 2.930652739214949, 3.8077295222309484, 3.7914567748021835, -2.006047563302802, -0.8535412419757371, 1.3585968364573002, -0.12333199153857244, -2.915783243628476, 4.88576601716812, 0.1483112219620697, -1.3125579133179013, -4.257339169910663, 2.1926939209529017, -3.812750074328213, 2.673668136629967, 4.069181114855368, 0.6950927830765323, -2.324426599382617, -3.091347944767521, -1.5619085613782713, -1.0364204702140931, -1.276019033465742, -2.6378079498476605, -3.562869846517401, 2.8055193838198225, 3.299513490171808, -0.02703114052846267, 3.4568168451458643, -1.6407226997784696, 4.051964723364014, -1.3419328278085727, 4.4253744846038074, 0.014694459082241984, 4.9498386873275475, 1.0493591235188093, -3.4809531983385433, 0.8199070594285374, 3.3340767008306997, -3.96081149935654, -2.259188507977904, -3.9938733373914626, -4.596581385268194, -3.3594143785641806, 2.552699815495922, -3.70543568007717, -4.845409508010807, -3.747722812728722, 1.312233081832427, -0.16308102198441343, 1.803187195423571, -1.2805874937023507, -3.84232659593718, -4.880864565750777, 2.5799217380112935, -4.410918872702457, 0.8430481462929755, 4.04405694374584, 1.4547340578527033, -1.0547985513249314, 0.6063329003268034, 1.8345208166055214, 2.4814002921117018, -2.973488654194588, 2.0277891292546135, -3.0349584524819697, -3.889505333793127, 2.265800664687589, 0.5957273343235583, -2.6426782132570823, -1.192196287248625, -3.8154079406035004, 3.6808701567198163, 2.222495980550219, 1.0420564198206197, 0.4102320261084955, -0.7634542183496187, 3.5156052718731345, -1.751161769476349, 1.749689320886894, 1.3227575089746901, -0.969069084718269, -1.797297385340555, 3.636184544667403, 1.8305207858901138, 0.626973315409888, -2.189587718416254, -1.9950935238603429, 1.3556015636329066, 4.375955525194062, -1.4176626038418858, 3.527000494680996, 0.34173582326532603, 4.298840301446663, -4.150565711989679, -1.4465501026721963, 3.470394333647402, -2.815767825243529, -4.374829883782089, 0.9453793079156529, 0.12469766486626455, -4.497692627793542, 3.1685823471220402, -1.6014672617589443, 4.476642122830119, -1.0732616863673106, -3.111629096603296, -1.3835035084618252, -0.019223013272094747, -4.6338311609269915, 3.2818735226848297, 4.01056436835864, 2.072246700616507, 2.744699002461478, 3.057491225876337, 3.0565836486160265, 0.8870770026595238, 1.089761766357931, -1.4948470940751593, 4.775810102906325, -2.6958565031622106, -3.314227652914392, 2.6529804048102967, 1.4920610074732537, 0.7990463431698096, 0.623286316737774, -2.8114750453889235, -2.9992457282584772, -1.8207057841738807, -1.2160247159921322, -0.7798803036330977, 4.190768009427352, -1.2684923408823012, 0.11496419397400537, -2.5820537127733956, -0.963305111484269, 1.4908364032863908, 3.0136141142355086, 1.5876561103716131, 0.7816389207486978, 2.25211046777231, -3.0295609440130935, -0.4482569007229813, 1.4981309460703063, 1.6157928512125563, 4.687651594392525, 4.6926805860960314, 1.152425321635448, 2.725782682824539, -3.7784080331407734, -0.6728652481345758, 3.778205344527466, -1.1929851874354336, 0.19818942888567648, -0.041964073014856496, -2.4325657745518137, -0.04298842116186741, -1.6930689911281815, 1.2806702390406954, -3.1409844186215805, -0.12257101232535916, -0.9864328829261311, -1.7641461386421464, -3.920840015961927, -0.3822939995398942, 1.2810773205859096, 4.728499731365732, 1.5363378389005256, -4.905495791937256, -1.7793562315269664, -2.8797229836164573, 2.1074910149371417, 2.85131261243143, -1.341403899243235, -4.32171159218271, -4.430787959486549, -2.3163474985978594, 2.9350057197450106, 0.6481041845020554, 3.1459452450085763, -1.9369476184492562, -4.471870459622405, 1.302363994602521, 4.782104898781196, 2.5036946579018373, 0.3385782565973656, 2.8527344690472507, 3.238761797040084, 1.0811467926358205, 3.308916551997706, 3.764714343406748, -4.49638357153717, -0.7597879934344025, -0.6144303305920502, 2.1924219467348305, -1.451298721126836, 2.489662557704653, -0.12044349391101417, -3.300533062627904, 4.330934668102946, 0.38928822677699504, 4.275913988674985, 0.14288274082684538, -1.8551392762314256, 2.3952731812167602, 0.38806518129349143, -2.048928526519538, -0.9977020498683284, 0.23671000822610644, -4.680529104153642, 4.123594223742099, 3.4980447417938443, 2.5015750329080095, 4.569536484340684, -3.6886661133132916, 3.6260026884325853, 3.8265593816444046, 2.398256552844491, 3.6633528508628608, -2.8398237020475436, 3.3918110807829915, -3.1548667024738286, 3.2063258326462503, -1.9366389734409886, 4.897715159518073, -3.590554488906992, 4.72213125868657, 2.0944225576284907, 0.23345570048217557, -4.083718052049722, 2.2188659897427767, 1.5233892610465603, -3.908037091330537, -1.917518509824908, -3.116315526974549, 2.688023381795813, -2.176627741806485, -1.4442507696124784, -3.0827875367912396, 1.4465117091712196, -2.9606939978833378, 4.014302431761692, -2.0753857917290475, -1.6447715713620283, -3.184215271870344, 4.269193659120372, 4.488896537848175, -1.1916955777111928, 4.503985501676716, -3.6422707071794824, -3.18903080421002, 2.0503526159825194, 2.4110954961023987, 1.501398115307059, 0.3923874431485661, -0.7707332350120923, 3.660412959619981, -4.106134494745453, 2.405535103836054, -2.923421493905507, -1.5441013048029815, 1.3278483449560605, 3.1108316648785053, -0.9468495165047841, 3.4022093282071104, -1.564504136281851, 1.9276929240161742, 1.8218673474904303, -0.8304861269653765, 2.3077711655786803, -4.864846746009473, -2.653468701837248, 4.953004284192021, 4.985401208230188, -3.3225081909459298, -0.912666347181875, 2.0756156171253535, -2.5927734910383538, 2.5383126200492683, 3.439529145244421, 3.203074443654957, 0.3628543873098167, 2.436003420864549, -2.0341354451440905, -1.0958334375795244, 1.2265327936507795, -3.4799766741606017, -0.6873089660792839, -4.319815897828409, -2.542888606770984, 2.0667578497315926, -2.5797800595723475, 4.342631433297042, -1.9170317561956396, 3.8937592270478536, -3.759126928415295, -2.1868260560653106, 4.158867928912578, 2.3406965186948705, -4.325415651200473, 2.623339529614971, -1.3958490901913634, 2.778272262077498, -3.9982203752252587, -3.8436529743553507, -2.961061326079072, 2.296138870357673, -4.8464492313555425, -0.8682286008670648, 3.293523746595433, -4.374625200676573, -0.2753444511884373, -0.34541096203561406, 3.1418771017201355, -4.67415950455929, -3.2321378191897345, -1.5908798084047793, -1.148518878760869, 4.616698764993089, -3.7061866526376153, -2.5444276818737244, -3.9598850586181222, 3.1931994746033805, 0.39207385397536854, 1.3352233097188781, -0.08344977054146874, 3.0409765201792514, 0.5832542104757588, 4.7286938009470045, -1.8199886556469336, 1.4501065367437107, 0.7483132969277326, 4.632018050286007, 4.214878486108239, 3.3979949532023532, -4.069305807450036, -2.942282523661417, 0.7886928903909158, -0.26708987381795257, 3.8814991506949656, 2.9419778013480027, -2.9686451610667675, 0.9882607212110646, 0.44874684039817403, 0.10963702409271825, -4.807786719267087, 3.679050791917021, -1.3322947173172626, 4.120152758486622, 4.176550818480777, -0.8607487342378839, -3.478534915041016, -2.3003055890264337, -3.904951334039073, -1.2447712652129903, -0.021065301726608254, -2.5073048175795165, -3.6331969429358333, -4.959517204640679, -4.651644843283642, 1.1499039491170038, 0.8023589302794107, -3.4003105721957727, -0.6647415784968871, 2.8775936601728205, -0.7005961244897696, 0.4604852591290136, -4.701699033386229, -0.36076946798510967, 1.6025713294834087, -4.617281454106178, 2.3592643261418456, 3.5657852488353434, 3.183027788293586, 1.296879685362498, 3.4361413891622803, -2.841465609534187, 2.9267148971709434, 1.4247038788186597, -2.2158726613833535, 1.6994134021995597, -1.1796908096564596, -1.9085035593286204, -2.7026523859898344, -0.4186411665352825, -1.5318973831964633, 3.724064601842036, 3.147852380538721, -0.20593314309632493, 0.4016796363241406, 2.988001819859516, 3.441178575628008, -0.3498241208144739, -3.82960960042688, 2.851966236279903, 0.322520733427095, -4.7266746624357445, 4.787251159158682, 0.5708884275849355, 2.7467474235235763, 3.8571862359767213, -3.9290802428316707, -0.9308796471876857, -0.7681711232586652, -4.583951699601143, 3.2180047858712904, -1.237381296163699, -4.894756808141309, -0.9931002049189068, -4.879192819620264, 4.143310235737935, 3.9936392030542542, -4.551088698268088, 1.2441128200935871, 1.6981250617606154, 3.054384357813614, -1.4715601762195774, -3.6264924586716543, 2.95329798008248, -4.60381775887044, -0.31751918862334705, 0.08561775696371399, 0.28666353564569214, -1.2002516383357467, -3.4225933583272883, 2.2504936637378936, 4.540190792528033, -2.7402019580833126, -3.2065069865448983, 2.837414485323669, 3.2182538280721786, -2.7948898894058614, -1.5191836266216, -0.033916033283781566, 3.6640725663831084, -1.4629028618321813, 4.5173340812897465, -4.740942304490856, -4.0966853832355685, -4.827995422388149, -1.8207310398898615, 1.961105468313181, 4.903568961227954, 2.066987330194417, 3.295055006254282, -4.612277592230528, -0.40453064980214926, 2.7701448969351192, -3.814747713389256, 1.3050037513827828, -1.2042844423257937, 1.138085502897984, -4.707163037565005, -0.5252395757880741, 1.9971969484590453, 2.893393990170643, 3.200656039369443, -2.7291900005182224, -4.886722150984928, 4.631427666058682, -3.5052064771582927, -0.5223996848086312, 1.8381111587373038, 2.8313353010684486, 0.9984840458547577, 2.8787703250491727, -2.82233859181101, -1.0171051153672162, -1.5727543933744736, 3.6527677573720947, 0.5718195741677734, 4.3554353055346215, 4.469374917376545, -4.648464194386229, 4.875331017332433, 0.7040935115784643, -3.305747590421845, 2.8591148253102823, -0.00945471428377953, -4.925232572942616, 0.5447781009786388, -2.1873826879985003, 0.15330718990863001, 0.14469789133445676, -1.2680674320652119, 3.718594424908577, -3.5438395049703972, 2.1248426916752186, 1.8555989536643303, 3.513833192220904, -3.4628763189195952, -0.3947309293159984, -1.0142569173415348, 1.5919737020441236, 1.1594618653065414, -2.0162404430385514, -4.723207957362183, -2.903157809887359, 4.314771029526325, -0.32763239268079936, 3.998987921711496, -0.47850941024552807, 3.93406597511939, 0.7127405739910442, -4.892776209458835, 2.203323328508451, 0.43207497724746524, -2.6141840282849618, -0.7138715877649746, -4.808278439894825, 2.8429673842446856, 1.2628910306881425, -3.4720989221312495, 3.009666757535671, -0.21859334812547093, -0.686289651377975, -3.358554527719544, -2.574998940520483, -1.8096002902262756, 1.4834870177619202, 0.6405920071441216, -4.373280981516143, -1.6117265243547116, 4.383167153556313, -4.778351640353104, -2.1811827975439257, -3.041376215032332, -1.6365336314683878, 1.0091111358210512, -3.358525993709346, -4.1671124391162975, -2.0216020547765154, -1.3012772993858777, 0.449938155792581, 4.957848469441208, 4.049571801765403, -1.3594693457808305, 2.720138144377363, -4.753216268638447, -3.8864539499591713, 0.8879044859243344, 2.086365329660561, 3.9127816084294125, -1.8772026363630232, -2.934549590808748, -0.5811647975470553, -2.9733109012032632, -3.355893808298548, -2.1204329596817706, 4.438805546660316, 1.3947465297723163, -0.06311038761556986, 0.48510669428272557, -0.5788924646268159, 1.679316950362849, 3.184361118707555, -4.650655159930658, 1.4860071835228048, -3.4560479383481124, 3.9745047026131974, 1.3248552487635967, -1.4267645572005137, -0.3904745314163396, 3.095360010359588, 1.2250925358412292, 4.239601104876865, -3.5500361365719133, 1.5632649321575265, -3.9695439010412734, -2.8132625161787264, 0.46861512518582504, -0.845661000588974, -0.6409843437044067, 2.7541961397908645, -0.31493233156789735, -3.3535608496631895, 2.8560214962107375, 1.1369834000540653, -4.221767001651008, 0.6425366942892543, 1.8272792526919925, -3.572351935522069, -2.9478923334722973, -1.8473067337668017, 1.2595864148473126, -1.9579140898732028, -1.1259977008913156, 1.8505615915998312, 0.9061612689597638, 0.2904833525920658, 2.653800141801205, 0.9722176880562099, -0.08162936359425998, 4.471188505845369, 2.4583430517869544, -0.6807187213975974, -3.3820658230889133, -2.021025978195418, 4.301132444699263, 1.3064615453787543, 2.034870598424047, 3.960411774651334, 0.29216956477693934, -2.336048200909222, -4.881980347506117, -0.5063753308032206, 2.8633141160624787, -0.16179671976985777, -0.5477361618157204, -0.9425472711045337, 3.986622161491285, -0.9320436464689976, -4.534784356630206, 3.4837259345045926, 0.6470088546220722, 1.433989247204246, -1.962799357824827, 4.941647913493654, 3.8652690431839325, -3.4670822426689494, 4.5876238806659515, 3.5643799683752135, 2.14065714444326, 1.4107344360965959, 2.3035336686910775, -2.978815112489742, -4.921771460742672, -0.333078763981951, -1.8834886656096037, 3.3668245689620093, 4.613900756344258, 3.7703963558537, -3.3983205537595107, -2.480199271825363, -1.205338901802481, 1.9527510329267148, 1.6425702929032502, 4.009307924546025, -1.8738484619595508, -0.3070921736211272, 3.555956815022771, 2.6782689253836445, 2.2128149270343886, -1.4644139996137504, 0.305297396472362, 1.001333509596071, 2.59370414800114, -0.04011678730826329, 2.483685448978644, -0.9508884058193114, 4.831938167344873, -4.226306429866126, 3.021897678962773, -1.7719117396104753, -2.5435886853271006, -3.6567673365101316, -2.560448467627261, 2.594178536744871, 0.6792037496267618, -2.474968326891477, -0.6789861942597044, 3.6515440318439047, 0.11359522930259303, 0.7903726009641501, 2.631752891740698, 1.5511985342484902, -2.150993010218323, -2.9947579144129897, -0.2454355310952998, -2.1661952718132027, -3.460086570737624, -3.215289782575841, -3.8277228931227225, 2.102002034419396, -2.4789796209125594, 0.7564797940345924, -2.501846701091399, -2.113232058468588, -0.9393420833737132, 4.0939337921940115, 0.24904648616335923, 2.384044780394464, 2.3348506928945714, 2.274004045196709, -1.5634409419106623, 1.4686866977020365, 2.6180030137746186, -2.3879038280576523, 2.889304320735767, 0.7061500902937201, 1.8741590784853335, 0.6551230846428249, 2.40657804816893, -2.094113507732527, -3.0186554978142444, 3.937273682887115, -4.664041098426295, 4.885727739244084, -4.040977084662246, 2.69075838519265, -3.6504309891159705, -0.7008261617295419, -4.839957283467005, -4.406389897462532, 2.552669619620578, 1.0323155356872888, -3.2209425275316663, 1.4386628720479946, 2.8140818204477007, -0.7942871576099053, 4.664268372803072, -3.5737402882453773, 2.0561707663959776, 1.808556915872309, 1.0813897226531992, -0.6299117047907776, -4.6313542332878015, 0.3684039023120933, 2.34527812134494, 0.6195739145586199, 1.0519211169396394, -0.4803783458834818, 3.901968674611366, -3.885230110525809, -0.42422331323613705, 4.437512023413134, 1.6307444024559548, -0.8423815827652836, 2.1003688171569257, 2.1506413720516493, -1.9298945975571624, 0.5439549703877509, -3.358007091046342, -4.5953734566131965, -2.4049312813416703, 2.284599208274294, 4.854671465039029, -1.9258218729107792, 2.0258554327709932, -4.550469417196075, -1.5131529182961212, 3.7205890075130696, 3.2395486518375076]} diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/runner.jl new file mode 100644 index 000000000000..eaf51ff2df84 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/fixtures/julia/runner.jl @@ -0,0 +1,75 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import JSON + +""" + gen( x, mu, lambda, name ) + +Generate fixture data and write to file. + +# Arguments + +* `x`: input value +* `mu`: mean +* `lambda`: shape parameter +* `name::AbstractString`: output filename + +# Examples +``` julia +julia> x = rand( 1000 ) .* 10.0 .- 5.0; +julia> mu = rand( 1000 ) .* 1.9 .+ 0.1; +julia> lambda = rand( 1000 ) .* 50.0 .+ 50.0; +julia> gen( x, mu, lambda, "data.json" ); +``` +""" +function gen( x, mu, lambda, name ) + z = Array{Float64}( undef, length(x) ); + for i in eachindex(x) + # MGF for Inverse Gaussian is not available in Julia or Scipy. Thus, we compute the MGF using the formula: + z[ i ] = exp( (lambda[i] / mu[i]) * (1.0 - sqrt( 1.0 - (2.0 * mu[i]^2 * x[i]) / lambda[i] )) ); + end + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("mu", mu), + ("lambda", lambda), + ("expected", z) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +x = rand( 1000 ) .* 10.0 .- 5.0; +mu = rand( 1000 ) .* 1.9 .+ 0.1; +lambda = rand( 1000 ) .* 50.0 .+ 50.0; +gen( x, mu, lambda, "data.json" ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.factory.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.factory.js new file mode 100644 index 000000000000..ae5becd8f7a1 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.factory.js @@ -0,0 +1,166 @@ +/** +* @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 isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var factory = require( './../lib/factory.js' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof factory, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns a function', function test( t ) { + var mgf = factory( 2.0, 3.0 ); + t.strictEqual( typeof mgf, 'function', 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the created function returns `NaN`', function test( t ) { + var mgf; + var y; + + mgf = factory( 2.0, 3.0 ); + y = mgf( NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NaN, 3.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( 2.0, NaN ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `mu`, the created function always returns `NaN`', function test( t ) { + var mgf; + var y; + + mgf = factory( 0.0, 3.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( -1.0, 3.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NINF, 3.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NINF, PINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NINF, NINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NINF, NaN ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `lambda`, the created function always returns `NaN`', function test( t ) { + var mgf; + var y; + + mgf = factory( 2.0, 0.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( 2.0, -1.0 ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( 2.0, NINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( PINF, NINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NINF, NINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + mgf = factory( NaN, NINF ); + y = mgf( 0.1 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a value of x > lambda/(2*mu^2), the created function returns `NaN`', function test( t ) { + var mgf; + var y; + + mgf = factory( 1.0, 1.0 ); + y = mgf( 0.9 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 5.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the created function evaluates the MGF for `x` given positive `mu` and `lambda`', function test( t ) { + var expected; + var lambda; + var mgf; + var mu; + var x; + var y; + var i; + + expected = data.expected; + x = data.x; + mu = data.mu; + lambda = data.lambda; + for ( i = 0; i < x.length; i++ ) { + mgf = factory( mu[i], lambda[i] ); + y = mgf( x[i] ); + if ( expected[i] !== null ) { + t.ok( isAlmostSameValue( y, expected[i], 150 ), 'within tolerance. x: '+x[i]+'. mu: '+mu[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[i]+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.js new file mode 100644 index 000000000000..b439578708cc --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var mgf = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof mgf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a factory method for generating `mgf` functions', function test( t ) { + t.strictEqual( typeof mgf.factory, 'function', 'exports a factory method' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.mgf.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.mgf.js new file mode 100644 index 000000000000..fa31efb2eb0d --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.mgf.js @@ -0,0 +1,133 @@ +/** +* @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 isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var mgf = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof mgf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y = mgf( NaN, 2.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = mgf( 0.1, NaN, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = mgf( 0.1, 2.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a nonpositive `mu`, the function returns `NaN`', function test( t ) { + var y; + + y = mgf( 0.1, 0.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, -1.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf(0.1, NINF, PINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `lambda`, the function returns `NaN`', function test( t ) { + var y; + + y = mgf( 0.1, 2.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, 2.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, 2.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf(0.1, PINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NaN, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a value of x > lambda/(2*mu^2), the function returns `NaN`', function test( t ) { + var y; + + y = mgf( 0.9, 1.0, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 5.0, 1.0, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the MGF for `x` given positive `mu` and `lambda`', function test( t ) { + var expected; + var lambda; + var mu; + var x; + var y; + var i; + + expected = data.expected; + x = data.x; + mu = data.mu; + lambda = data.lambda; + for ( i = 0; i < x.length; i++ ) { + y = mgf( x[i], mu[i], lambda[i] ); + if ( expected[i] !== null ) { + t.ok( isAlmostSameValue( y, expected[i], 150 ), 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'.' ); + } + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.native.js new file mode 100644 index 000000000000..30f97e8b45d8 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/wald/mgf/test/test.native.js @@ -0,0 +1,142 @@ +/** +* @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' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// VARIABLES // + +var mgf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( mgf instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof mgf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { + var y = mgf( NaN, 2.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = mgf( 0.1, NaN, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + y = mgf( 0.1, 2.0, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided a nonpositive `mu`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = mgf( 0.1, 0.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, -1.0, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, 3.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf(0.1, NINF, PINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NaN ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a nonpositive `lambda`, the function returns `NaN`', opts, function test( t ) { + var y; + + y = mgf( 0.1, 2.0, 0.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, 2.0, -1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, 2.0, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf(0.1, PINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NINF, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 0.1, NaN, NINF ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'if provided a value of x > lambda/(2*mu^2), the function returns `NaN`', opts, function test( t ) { + var y; + + y = mgf( 0.9, 1.0, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + y = mgf( 5.0, 1.0, 1.0 ); + t.strictEqual( isnan( y ), true, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function evaluates the MGF for `x` given positive `mu` and lambda', opts, function test( t ) { + var expected; + var lambda; + var mu; + var x; + var y; + var i; + + expected = data.expected; + x = data.x; + mu = data.mu; + lambda = data.lambda; + for ( i = 0; i < x.length; i++ ) { + y = mgf( x[i], mu[i], lambda[i] ); + if ( expected[i] !== null ) { + t.ok( isAlmostSameValue( y, expected[i], 150 ), 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'.' ); + } + } + t.end(); +});