From 9128f031ab0b28ac6014be097554af4ab9a18114 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Fri, 3 Jan 2025 23:46:17 +0530 Subject: [PATCH 01/24] feat: add @stdlib/stats/base/dists/kumaraswamy/stdev --- .../base/dists/kumaraswamy/stdev/README.md | 95 ++++++++++ .../stdev/benchmark/benchmark.native.js | 71 ++++++++ .../kumaraswamy/stdev/benchmark/c/Makefile | 146 +++++++++++++++ .../kumaraswamy/stdev/benchmark/c/benchmark.c | 141 +++++++++++++++ .../base/dists/kumaraswamy/stdev/binding.gyp | 170 ++++++++++++++++++ .../kumaraswamy/stdev/examples/c/Makefile | 146 +++++++++++++++ .../kumaraswamy/stdev/examples/c/example.c | 40 +++++ .../base/dists/kumaraswamy/stdev/include.gypi | 53 ++++++ .../stats/base/dists/kumaraswamy/stdev.h | 38 ++++ .../dists/kumaraswamy/stdev/lib/native.js | 70 ++++++++ .../dists/kumaraswamy/stdev/manifest.json | 83 +++++++++ .../base/dists/kumaraswamy/stdev/package.json | 1 + .../base/dists/kumaraswamy/stdev/src/Makefile | 70 ++++++++ .../base/dists/kumaraswamy/stdev/src/addon.c | 23 +++ .../base/dists/kumaraswamy/stdev/src/main.c | 78 ++++++++ .../kumaraswamy/stdev/test/test.native.js | 127 +++++++++++++ 16 files changed, 1352 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/manifest.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md index c4de31024d91..005261621036 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md @@ -158,6 +158,101 @@ for ( i = 0; i < 10; i++ ) { + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/kumaraswamy/stdev.h" +``` + +#### stdlib_base_dists_kumaraswamy_stdev( a, b ) + +Returns the standard deviation of a Kumaraswamy's double bounded distribution. + +```c +double v = stdlib_base_dists_kumaraswamy_stdev( 0.5, 1.0 ); +// returns ~0.298 +``` + +The function accepts the following arguments: + +- **a**: `[in] double` first shape parameter. +- **b**: `[in] double` second shape parameter. + +```c +double stdlib_base_dists_kumaraswamy_stdev( const double a, const double b ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/kumaraswamy/stdev.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 a; + double b; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + mu = random_uniform( 0.0, 10.0 ) - 5.0; + b = random_uniform( 0.0, 20.0 ); + y = stdlib_base_dists_kumaraswamy_stdev( a, b ); + printf( "a: %lf, b: %lf, Std(X;a,b): %lf\n", a, b, y ); + } +} +``` + +
+ + + +
+ + +
diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js new file mode 100644 index 000000000000..025ee1e217da --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js @@ -0,0 +1,71 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 Float64Array = require( '@stdlib/array/float64' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var randu = require( '@stdlib/random/base/randu' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var stdev = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( stdev instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var len; + var a; + var x; + var y; + var i; + + len = 100; + a = new Float64Array( len ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + a[ i ] = ( randu() * 100.0 ) - 50.0; + x[ i ] = ( randu() * 20.0 ) + EPS; + } + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = stdev( a[ i % len ], x[ i % len ] ); + 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/kumaraswamy/stdev/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile new file mode 100644 index 000000000000..f69e9da2b4d3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/kumaraswamy/stdev/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c new file mode 100644 index 000000000000..d6640ccb7245 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c @@ -0,0 +1,141 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/kumaraswamy/stdev.h" +#include "stdlib/constants/float64/eps.h" +#include +#include +#include +#include +#include + +#define NAME "kumaraswamy-stdev" +#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 elapsed; + double a[100]; + double b[100]; + double y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + a[ i ] = random_uniform( 0.0, 10.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + b[ i ] = random_uniform( 0.0, 10.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_dists_kumaraswamy_stdev( a[ i % 100 ], b[ i % 100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp new file mode 100644 index 000000000000..ec3992233442 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/kumaraswamy/stdev/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile new file mode 100644 index 000000000000..6aed70daf167 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/kumaraswamy/stdev/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c new file mode 100644 index 000000000000..d0190eb8c947 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c @@ -0,0 +1,40 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/kumaraswamy/stdev.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 a; + double b; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + a = random_uniform( 0.0, 10.0 ) - 5.0; + b = random_uniform( 0.0, 10.0 ) - 5.0; + y = stdlib_base_dists_kumaraswamy_stdev( a, b ); + printf( "a: %lf, b: %lf, Var(X;a,b): %lf\n", a, b, y ); + } +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi new file mode 100644 index 000000000000..575cb043c0bf --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 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': [ + ' Date: Fri, 3 Jan 2025 19:34:04 +0000 Subject: [PATCH 02/24] chore: update copyright years --- .../base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js | 2 +- .../stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile | 2 +- .../stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp | 2 +- .../stats/base/dists/kumaraswamy/stdev/examples/c/Makefile | 2 +- .../stats/base/dists/kumaraswamy/stdev/examples/c/example.c | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi | 2 +- .../stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c | 2 +- .../@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c | 2 +- .../stats/base/dists/kumaraswamy/stdev/test/test.native.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js index 025ee1e217da..ad57d38df409 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile index f69e9da2b4d3..a4bd7b38fd74 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c index d6640ccb7245..dd0546fad4e4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp index ec3992233442..68a1ca11d160 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/binding.gyp @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile index 6aed70daf167..25ced822f96a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c index d0190eb8c947..04ebcdbc0c02 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi index 575cb043c0bf..ecfaf82a3279 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include.gypi @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h index 16317aa791eb..c60e45b396c1 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js index 6355452f1017..858d07ad23a5 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile index bcf18aa46655..7733b6180cb4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c index 3a274b56ec49..c738c19947d2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/addon.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c index f24726dc4b22..c184701ec015 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js index e386e88d6c50..0cfa94db64ee 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 526c5dce07fbfecddbeeeb4ac166e65868648dea Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:27:53 +0530 Subject: [PATCH 03/24] remove: multiple examples Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/src/main.c | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c index c184701ec015..2ad4dabe93b8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c @@ -35,30 +35,6 @@ * @example * double v = stdlib_base_dists_kumaraswamy_stdev( 0.5, 1.0 ); * // returns ~0.298 -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( 4.0, 12.0 ); -* // returns ~0.13 -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( 12.0, 2.0 ); -* // returns ~0.077 -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( 1.0, -0.1 ); -* // returns NaN -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( -0.1, 1.0 ); -* // returns NaN -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( 2.0, NaN ); -* // returns NaN -* -* @example -* double v = stdlib_base_dists_kumaraswamy_stdev( NaN, 2.0 ); -* // returns NaN */ double stdlib_base_dists_kumaraswamy_stdev( const double a, const double b ) { double m1; From 52f07ebee11eb47f85b6cdd9456bcc02585415ec Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:28:31 +0530 Subject: [PATCH 04/24] chore: add indentation Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c index 2ad4dabe93b8..2b7f91a3ee52 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c @@ -45,7 +45,7 @@ double stdlib_base_dists_kumaraswamy_stdev( const double a, const double b ) { stdlib_base_is_nan( b ) || b <= 0.0 ) { - return 0.0/0.0; //NaN + return 0.0/0.0; // NaN } m1 = b * stdlib_base_beta( 1.0 + ( 1.0/a ), b ); m2 = b * stdlib_base_beta( 1.0 + ( 2.0/a ), b ); From 8081eee2b3bc460863ab08c521901e303f5c7a25 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:29:58 +0530 Subject: [PATCH 05/24] fix: random number generation Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c index dd0546fad4e4..45ebe5daaa59 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/c/benchmark.c @@ -101,8 +101,8 @@ static double benchmark( void ) { int i; for ( i = 0; i < 100; i++ ) { - a[ i ] = random_uniform( 0.0, 10.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; - b[ i ] = random_uniform( 0.0, 10.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + a[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 ); + b[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 ); } t = tic(); From ab938e585f2a87fd67773981d011708a41d1a552 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:30:30 +0530 Subject: [PATCH 06/24] fix: random number generation Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stats/base/dists/kumaraswamy/stdev/examples/c/example.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c index 04ebcdbc0c02..75f88d519351 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c @@ -32,8 +32,8 @@ int main( void ) { int i; for ( i = 0; i < 25; i++ ) { - a = random_uniform( 0.0, 10.0 ) - 5.0; - b = random_uniform( 0.0, 10.0 ) - 5.0; + a = random_uniform( -5.0, 5.0 ); + b = random_uniform( -5.0, 5.0 ); y = stdlib_base_dists_kumaraswamy_stdev( a, b ); printf( "a: %lf, b: %lf, Var(X;a,b): %lf\n", a, b, y ); } From ed730ad20cde82ba6885372a7e13422250f2fb46 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:31:33 +0530 Subject: [PATCH 07/24] fix: spelling errors Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../@stdlib/stats/base/dists/kumaraswamy/stdev/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md index 005261621036..3638dfaa886f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md @@ -240,7 +240,7 @@ int main( void ) { mu = random_uniform( 0.0, 10.0 ) - 5.0; b = random_uniform( 0.0, 20.0 ); y = stdlib_base_dists_kumaraswamy_stdev( a, b ); - printf( "a: %lf, b: %lf, Std(X;a,b): %lf\n", a, b, y ); + printf( "a: %lf, b: %lf, SD(X;a,b): %lf\n", a, b, y ); } } ``` From 9a85fc99223b3f224bf20378ee0a9546cd850b7c Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:32:14 +0530 Subject: [PATCH 08/24] fix: spelling errors Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stats/base/dists/kumaraswamy/stdev/examples/c/example.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c index 75f88d519351..b2dffa6d817e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c @@ -35,6 +35,6 @@ int main( void ) { a = random_uniform( -5.0, 5.0 ); b = random_uniform( -5.0, 5.0 ); y = stdlib_base_dists_kumaraswamy_stdev( a, b ); - printf( "a: %lf, b: %lf, Var(X;a,b): %lf\n", a, b, y ); + printf( "a: %lf, b: %lf, SD(X;a,b): %lf\n", a, b, y ); } } From fd9c7ff3b908838ad6c59e23c966474e60101024 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:32:42 +0530 Subject: [PATCH 09/24] chore: add private Co-authored-by: Philipp Burckhardt Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js index 858d07ad23a5..cc615cffd402 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/lib/native.js @@ -28,6 +28,7 @@ var addon = require( './../src/addon.node' ); /** * Returns the standard deviation of a Kumaraswamy's double bounded distribution. * +* @private * @param {PositiveNumber} a - first shape parameter * @param {PositiveNumber} b - second shape parameter * @returns {PositiveNumber} standard deviation From 4493590970e012df8e46660825ae9e355373b0c9 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:40:44 +0530 Subject: [PATCH 10/24] chore: add suggestions Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stats/base/dists/kumaraswamy/stdev/src/main.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c index 2b7f91a3ee52..733a8b3418d0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/src/main.c @@ -16,21 +16,17 @@ * limitations under the License. */ -// MODULES // - +#include "stdlib/stats/base/dists/kumaraswamy/stdev.h" #include "stdlib/math/base/assert/is_nan.h" #include "stdlib/math/base/special/beta.h" #include "stdlib/math/base/special/sqrt.h" - -// MAIN // - /** * Returns the standard deviation of a Kumaraswamy's double bounded distribution. * -* @param {PositiveNumber} a - first shape parameter -* @param {PositiveNumber} b - second shape parameter -* @returns {PositiveNumber} standard deviation +* @param a first shape parameter +* @param b second shape parameter +* @returns standard deviation * * @example * double v = stdlib_base_dists_kumaraswamy_stdev( 0.5, 1.0 ); From 076d75016ec260479210c87b1e441861af745d1f Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:52:00 +0530 Subject: [PATCH 11/24] chore: add directories Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../@stdlib/stats/base/dists/kumaraswamy/stdev/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/package.json b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/package.json index a34934b3c16c..651d9d8ef92a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/package.json +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/package.json @@ -19,7 +19,9 @@ "benchmark": "./benchmark", "doc": "./docs", "example": "./examples", + "include": "./include", "lib": "./lib", + "src": "./src", "test": "./test" }, "types": "./docs/types", From d4af94e4842b91b8847c83784184d83703b95e96 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 13:28:23 +0530 Subject: [PATCH 12/24] remove: extra indentations Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../dists/kumaraswamy/stdev/manifest.json | 160 +++++++++--------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/manifest.json b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/manifest.json index da96dde76593..f1589a6b3c20 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/manifest.json +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/manifest.json @@ -1,83 +1,83 @@ { - "options": { + "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 + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/binary", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/beta", + "@stdlib/math/base/special/sqrt" + ] + }, + { + "task": "benchmark", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/beta", + "@stdlib/math/base/special/sqrt", + "@stdlib/constants/float64/eps" + ] }, - "fields": [ - { - "field": "src", - "resolve": true, - "relative": true - }, - { - "field": "include", - "resolve": true, - "relative": true - }, - { - "field": "libraries", - "resolve": false, - "relative": false - }, - { - "field": "libpath", - "resolve": true, - "relative": false - } - ], - "confs": [ - { - "task": "build", - "wasm": false, - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/math/base/napi/binary", - "@stdlib/math/base/assert/is-nan", - "@stdlib/math/base/special/beta", - "@stdlib/math/base/special/sqrt" - ] - }, - { - "task": "benchmark", - "wasm": false, - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/math/base/assert/is-nan", - "@stdlib/math/base/special/beta", - "@stdlib/math/base/special/sqrt", - "@stdlib/constants/float64/eps" - ] - }, - { - "task": "examples", - "wasm": false, - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/math/base/assert/is-nan", - "@stdlib/math/base/special/beta", - "@stdlib/math/base/special/sqrt" - ] - } - ] - } + { + "task": "examples", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/special/beta", + "@stdlib/math/base/special/sqrt" + ] + } + ] +} From f19d5910b6ba21bf358772d0e408b8ea1475e0e3 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Fri, 4 Apr 2025 13:32:35 +0530 Subject: [PATCH 13/24] fix: documentation Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h index c60e45b396c1..33b97f0dd916 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/include/stdlib/stats/base/dists/kumaraswamy/stdev.h @@ -27,7 +27,7 @@ extern "C" { #endif /** -* Returns the variance for a Laplace distribution with location `mu` and scale `b`. +* Returns the standard deviation of a Kumaraswamy's double bounded distribution. */ double stdlib_base_dists_kumaraswamy_stdev( const double a, const double b ); From 390c0b374d325bea1ef94d6502edc4a161e1c6e4 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 12:29:03 +0530 Subject: [PATCH 14/24] chore: add REQUIRE Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/test/fixtures/julia/REQUIRE | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/REQUIRE diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..98be20b58ed3 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/REQUIRE @@ -0,0 +1,3 @@ +Distributions 0.23.8 +julia 1.5 +JSON 0.21 From 28e2d47c97a126bef4ecaf459fa6193fa81f07ca Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 12:30:21 +0530 Subject: [PATCH 15/24] chore: add runner.jl Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stdev/test/fixtures/julia/runner.jl | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl new file mode 100644 index 000000000000..f2a0e46ded77 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl @@ -0,0 +1,73 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import Distributions: var, Kumaraswamy +import JSON + +""" + gen( a, b, name ) + +Generate fixture data and write to file. + +# Arguments + +* `a`: first shape parameter +* `b`: second shape parameter +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> a = rand( 1000 ); +julia> b = rand( 1000 ); +julia> gen( a, b, \"data.json\" ); +``` +""" +function gen( a, b, name ) + z = Array{Float64}( undef, length(a) ); + for i in eachindex(a) + z[ i ] = sqrt( var( Kumaraswamy( a[ i ], b[ i ] ) ) ); + end + + # Store data to be written to file as a collection: + data = Dict([ + ("a", a), + ("b", b), + ("expected", z) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Generate fixtures: +a = rand( 1000 ); +b = rand( 1000 ); +gen( a, b, "data.json" ); From 03be5f73fd5e5d50d1f0f1de7d3b7c2c27a177a7 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 12:31:29 +0530 Subject: [PATCH 16/24] chore: add generated data.json Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/test/fixtures/julia/data.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/data.json diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/data.json new file mode 100644 index 000000000000..6e0769a84ac4 --- /dev/null +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"expected":[0.26909177748227436,0.3791514061079866,0.3485788906075826,0.32534721668596084,0.3285660695797467,0.2868301629356567,0.3367101040841647,0.33238174518325747,0.32190273393727514,0.2888900869327802,0.2103298194479953,0.3082313657467383,0.2885298668426464,0.33080361571749,0.35008628447661894,0.18820730874521321,0.3465579042698316,0.3087738546173316,0.3067981514040082,0.4324893953313763,0.2954574293079804,0.29156306748011535,0.2936077127663183,0.304001711441343,0.2992637552976822,0.32473035848744686,0.39860688812133244,0.33859664545784296,0.34936825867999055,0.32606277294847735,0.19020112292567729,0.29728660476042285,0.3805907303775363,0.30451090050286467,0.3318880208782932,0.3424017721424202,0.25359188518143067,0.12135240848187479,0.32101982241912624,0.3265000221736425,0.06672217921447966,0.24233981679357555,0.31439560767985664,0.21920798420908755,0.2803786879194737,0.4142756016973474,0.37369772613625823,0.35933544500607756,0.3309420446580547,0.30411467262632014,0.2503769166109566,0.341811580173153,0.3595595832152834,0.3175977011576548,0.37686312063819233,0.3065989489881259,0.18135529502049869,0.3002182009084446,0.29906765627946463,0.23771096612823123,0.27265903787721846,0.3657861570630153,0.4455162723346735,0.3215894606150726,0.3168945627260397,0.34739111987394317,0.3726959137350713,0.33893097322508275,0.3287737727985758,0.26273536245135426,0.39696059008025697,0.3583301136065684,0.321346005407377,0.3131222978899917,0.36862291283245835,0.16546544751219727,0.3038115153732119,0.3022201669964188,0.3034870829646794,0.3234432588960807,0.32600579395735996,0.3428275901041465,0.29612299837117484,0.3378504040814626,0.34027229642697443,0.3627418505341685,0.27455969784373774,0.3206092191593576,0.30081614656600536,0.18092347411533644,0.30719668909550407,0.35721284781311674,0.2962250440447712,0.15795895803947965,0.11779756459143403,0.3121304928594475,0.21176471732884786,0.29807168377645465,0.351516315135312,0.27148324744529806,0.33485071072911227,0.33144234671119455,0.12881784437596583,0.3795995079594604,0.11757954536123393,0.30162044746964295,0.39766507622132585,0.38812703728376485,0.22666130485652805,0.3208919624034339,0.31073619952372067,0.3454506063932312,0.44085036865606575,0.3322047394797534,0.34940503878767143,0.1014793076554497,0.3301466607828809,0.30345726356078706,0.33271899340886124,0.3139874585997518,0.31071578629944197,0.3527268661284046,0.2855588637420109,0.3240014103846825,0.32157469137407696,0.28630254258493254,0.31779372845312864,0.32594324325007235,0.3299928093054105,0.3152059970519387,0.3292766979434723,0.3199602040722216,0.2815540507312902,0.32390728028116655,0.33505784197367616,0.3140058109076624,0.3267366483110636,0.2738794665477474,0.2916498087201151,0.049054355284809205,0.35044632112966395,0.3633297757782333,0.4490067113478122,0.32896213947541986,0.2165643178177573,0.4081051529617003,0.2993716830578298,0.3133999119753434,0.3004808679719376,0.08601923685035864,0.3242316858849259,0.3312427063763811,0.27478915166290735,0.29608053595719996,0.32645162498001823,0.31672113813010055,0.33485710413111935,0.30016469041723765,0.3254022637303447,0.14831901058168592,0.32633737789518713,0.2593977478312488,0.3264601320059538,0.26114013060843594,0.30632339635268657,0.29811126349505923,0.32187839289439707,0.30198568647815743,0.3367107527511617,0.32865565872623315,0.3434098438520848,0.31256160939362254,0.22010406430805501,0.31069759965834237,0.2615371694006743,0.3650429130466591,0.3195179839599772,0.2530401792761636,0.2577485921294874,0.36868199730225026,0.31248572624674126,0.23187433854414333,0.3151887907745704,0.3621911186963939,0.2914077847746877,0.26693326640996823,0.3116753162882248,0.290829679815024,0.34145738808938403,0.30105670033175536,0.30762757645216465,0.4037523159474306,0.3710502884701425,0.32593033313228625,0.3662146843179801,0.25891595026541886,0.3154998820987792,0.33181669814667497,0.2955445184860332,0.2959260528966734,0.364209052327477,0.309800468201,0.21205957453957708,0.32653005868936485,0.3132758497715425,0.3315648832950993,0.30724085153411745,0.3068186063256944,0.33823863015991357,0.29647708506175025,0.343961093195415,0.09419016197293288,0.31295211803551676,0.3446669888922238,0.30839069086715637,0.3175554115356406,0.30206663981388204,0.28232393628190255,0.30032672171961344,0.30569563196588023,0.25445653258284096,0.23520955480200026,0.21449860713341948,0.3727491059350428,0.33379458712303745,0.3255564890553287,0.3563268524807692,0.42190496843494407,0.2890120041823505,0.18748233104979373,0.2999352730087531,0.3147575605719639,0.3103466093587175,0.3470186764179299,0.23457656368449994,0.32100363963991907,0.29853190996645085,0.22099766834898202,0.2713694588654175,0.2995634309974535,0.31008111523334814,0.3123642252261292,0.3035782362680815,0.23309054258228895,0.16741019510995228,0.2504914040177316,0.35738996681819424,0.32895408386602537,0.2996548891753166,0.3465605834063891,0.308500213634693,0.4153655110728058,0.3701520002405359,0.31123997733686337,0.33393482015869963,0.3039599567009645,0.3118468341334236,0.26343523334228386,0.35017095494813116,0.22401920835743114,0.3484806688198572,0.302175428906163,0.3525835550532506,0.23530735982118267,0.0405658886190119,0.3004975294178202,0.2871849490408177,0.33921025619616796,0.3345079331493376,0.3383146914083825,0.2217942956061024,0.30746611124612044,0.4295453762317904,0.377774253600828,0.3465626494454558,0.30403613576683675,0.3206574872871787,0.33120769973920566,0.30692695121805685,0.3116206806558599,0.34259464384511135,0.30604047943757734,0.35183677128766205,0.29830267187604376,0.39297435638389294,0.28046995477722714,0.21354878326672508,0.37975501600223577,0.35424207011070563,0.29750161598662117,0.259283741842183,0.3332920812922254,0.35372413386840307,0.3368720317028603,0.3047630644437743,0.2873138211579056,0.14784552945120635,0.3005066540464377,0.33832168500084525,0.33121428287833937,0.3173188994116418,0.35122010323618374,0.416071542963235,0.3091242858587292,0.33427145722002677,0.327939517114924,0.2907196009085992,0.33697793700526957,0.2888445782913571,0.3385802693193238,0.315270608694302,0.4245466861767654,0.32390357940658543,0.33248756525497697,0.41806475671894655,0.363954266667818,0.2495510534812979,0.31333828320579615,0.38141809869502563,0.19858409892488885,0.31279876591843536,0.3356664206135305,0.38852020168924806,0.27127105734295087,0.32172086658629756,0.2123181424645995,0.31373022494130104,0.31889136273264396,0.34282523364455625,0.3166989910834654,0.2969410644309366,0.28319659182937823,0.3600215734081908,0.3608370966105533,0.33659692248679535,0.3094391792001903,0.316621303845554,0.17995310980047094,0.42861010164033314,0.3319726720712178,0.3562563109271338,0.33981788776974764,0.35255361329108076,0.3004404771691198,0.21549331190888749,0.31981757279908046,0.3057771134514483,0.07705561986279484,0.2985350629645519,0.268365773499738,0.36437310950195123,0.3151240902168142,0.2978986851784545,0.31127462839352676,0.29626666707015503,0.35821853348708277,0.32064055704006206,0.32889520681493783,0.33727618310502894,0.3684756698009731,0.3212608553055244,0.30166349164731593,0.28060013625475744,0.29690501962680743,0.3366608181515433,0.2867063655100408,0.31569893164223767,0.2806256367208002,0.3122586213968674,0.17195370400348994,0.20032263942727316,0.34404971404395807,0.34436631078727903,0.40914102374831457,0.3117483929973955,0.3346166671155379,0.3616944589950492,0.2565403183757795,0.31217636423810835,0.3207187477169799,0.3060400455422063,0.22845509168988334,0.24044716802199775,0.31894736682992636,0.356136804172661,0.22680687742343925,0.3827230249253127,0.30759981945355813,0.29695038387980827,0.3306488132592979,0.2811409459279825,0.3177761991680896,0.33980142764372584,0.33307566628645763,0.3278889336203355,0.2663797958657259,0.33080942610617897,0.3022995406748212,0.3234316498837869,0.30339929365210744,0.3032592296835772,0.24234786241018488,0.2412632722753423,0.3284027103406788,0.3494704878412959,0.30136075827026476,0.3793518476749358,0.3754225284442858,0.3151309978085171,0.3395402893930644,0.3273538786284598,0.3322438851038279,0.3169954667240832,0.3110570740521194,0.3468903648269751,0.33543117469390965,0.16578321495852102,0.39868966540984196,0.33677424844904524,0.3679014611154587,0.30216301906093096,0.33483180214009245,0.2765351335631832,0.3299999916224668,0.23933100197708973,0.32335846548052666,0.3075459267515409,0.31976873888120994,0.315040096137636,0.3174702879636905,0.3020279293151511,0.20315470981766245,0.2773513839992116,0.44700002211882195,0.3150504164667974,0.31218646946181045,0.3626684510256105,0.26457822029172834,0.30408724803976306,0.30054275493136573,0.3083946950510884,0.2883956329247075,0.3848553953175449,0.32529346125575875,0.39244020306478594,0.32833455583668697,0.33892938377701776,0.32743416429854716,0.3269577399229758,0.301112972416156,0.3361183649703151,0.3957191654033198,0.3081044015154232,0.3935450819749214,0.34451322711755994,0.3383892285549786,0.32125529962796145,0.34409780106151167,0.3061056177251587,0.310176648886618,0.3413181833610379,0.2943379790638414,0.4255873197614458,0.31744239632185844,0.19991270883472023,0.33991213234108825,0.3440536903229842,0.31104100068100193,0.3955728484627412,0.26887473436969966,0.319107629598841,0.34631548214675645,0.32572181905028885,0.26389297798680944,0.34300529469432106,0.3573839640792716,0.3044222231932006,0.3754499503155452,0.04811050179856999,0.3021434499179703,0.31191942598489475,0.24985319252846422,0.3083589216353766,0.35637316195706864,0.3004012776965514,0.35520406691301043,0.32188724708574074,0.34180762580037877,0.3334021566098323,0.2996420051911293,0.41634740689353034,0.26625281781470816,0.4141737563283108,0.3169937901493265,0.3173314662030079,0.20335282395915763,0.29995681435006727,0.27034725942102683,0.3007659086661548,0.35700159040286983,0.3037745370356275,0.3128156835467758,0.3140332489894654,0.33156291924958536,0.3232525009868369,0.36497572792124355,0.3105189716169068,0.14484984196404568,0.35181116870006574,0.1867691917709414,0.3087425397653113,0.40523454258752056,0.32596301996549093,0.2644888255359368,0.3357576823398953,0.3063670744361577,0.24700719113836747,0.32907371806873015,0.35414306631699083,0.32802882069150247,0.3064014012992069,0.3415205012996249,0.31984590994320367,0.30903336360657796,0.3372406255851306,0.2952995898532851,0.3597046257283766,0.3807545739056106,0.37022216515635575,0.09514693064149626,0.3069660750086168,0.35929646431028084,0.31546454431669035,0.241421301360832,0.3227746303304706,0.32345131635196206,0.2959484473906053,0.3178412028926886,0.22663360260579365,0.30654358215560135,0.3188436004514883,0.2483088419490857,0.3789050466573554,0.34322807906255065,0.32808308503833916,0.36312733741231384,0.3546117771495491,0.36258191070889745,0.3481159423357355,0.016660760710627207,0.3598457573022815,0.4250247978688269,0.327615512111355,0.3059535916809893,0.32978505299277405,0.1848007663306454,0.40524523570584425,0.385787751242036,0.16529346891197735,0.3151997327398218,0.3612943896555565,0.3249076933402166,0.23274601466866,0.1857766799489002,0.2924650528735647,0.30252061858854484,0.16663283040481902,0.309313237328408,0.374790518819811,0.33957198897698493,0.30069828206964394,0.4166984809275635,0.3439207264561387,0.22547826881539298,0.3834022913652712,0.2724451577761005,0.3298722990538772,0.3076429446517985,0.31755816385821745,0.3496258693698143,0.29649514225575235,0.3328959785342306,0.36977074134611687,0.11866802524801136,0.2917047631288396,0.2867636139858043,0.38727210892429503,0.3608506314828593,0.35530318440840697,0.3975831483620947,0.34622126079069954,0.3119588352754126,0.2591997630870558,0.29996388871925905,0.362436596330197,0.35498541651476084,0.313614005177446,0.35853541263538796,0.3175921486943418,0.37394516798790256,0.2217420232012824,0.35274640685799125,0.34928756598788335,0.3438941597867099,0.3333796119679469,0.3098574128664737,0.3483071437009635,0.4266901560131119,0.29720811250087775,0.32357845434366034,0.2706145166560845,0.3654893322111032,0.307555613754361,0.3819221328086012,0.32316240589463263,0.31468996896908125,0.3048088659765893,0.33338378703735183,0.31077391980402336,0.37790807946258,0.3159849883599216,0.328647937031095,0.3742083396485591,0.340202869853543,0.30580171400686645,0.31497539404152086,0.2614183136091925,0.30545839735557817,0.30765133515999216,0.34660286830040526,0.14452131894113035,0.30727284768601554,0.3593205729467319,0.3210189601518354,0.3194861217849599,0.3325441623995692,0.30998404018241027,0.32465978271972595,0.1842262659077628,0.33572188204721104,0.3101830554809238,0.33950029580842955,0.34541636313145724,0.13445128651389568,0.40196468977411326,0.2979397404482672,0.32032585905489475,0.30431892450881337,0.3824061831642264,0.19885831259425618,0.3272804235585834,0.3809327795357654,0.3196069816718434,0.20195980655905862,0.28603428843798673,0.19032481384668273,0.3631742292776183,0.22573849984166522,0.3164140276069891,0.3248131712691922,0.1568956196714725,0.3207678631018246,0.4114067916917401,0.39055573934747867,0.32737185255543194,0.34435385539189656,0.3063302475500364,0.2982809589846494,0.3514401833123004,0.4043586674363966,0.1586706828415868,0.42297352523995685,0.317934471053015,0.14959571994994064,0.29985503111984085,0.3269835625533336,0.2969371741203281,0.3907562276787659,0.3829165211705033,0.10951693478612254,0.35879803303545393,0.38507041115879337,0.21171337307439533,0.30244910985307605,0.28288010172443095,0.30497959708322936,0.3389416480530516,0.31700086418156237,0.25112318930360616,0.3081874515838853,0.30536242538078656,0.4105586930978345,0.3572456807056439,0.2964568879715076,0.30700598287419517,0.3408394123511609,0.30626773255807316,0.31936525261738374,0.30903988417273737,0.13858381962197105,0.3183371403716978,0.288954463835019,0.344031794373469,0.28053754185186597,0.18610029580366952,0.2676192415832498,0.3124029597869938,0.25103084951490373,0.35577502539167044,0.3183721431857008,0.2729638971759813,0.3088332084721621,0.38389949607036133,0.4145875150086322,0.33554469524075464,0.3050931397727413,0.38414297122626606,0.3041518057428034,0.24744608265173093,0.30928327641503384,0.1453361890778418,0.3012632010317831,0.2603590887470743,0.36380549183902133,0.30737689145219865,0.30044061819504003,0.29850090610913693,0.23087229440125498,0.3420569975609198,0.28502720605365245,0.33846276588792834,0.3849395775614477,0.33556737138558224,0.3102702988323827,0.3138373395688075,0.3691674730573532,0.3187071847596369,0.295382497499089,0.3004204352045771,0.3707269835370245,0.38518943171764414,0.2561196471498228,0.3028821861176149,0.199943729442143,0.3017836488458982,0.369865640221447,0.3290528932661968,0.2659225491589691,0.28634965866300166,0.2864896895533849,0.30342282964057976,0.3988497131777471,0.337981054641054,0.32409206048163797,0.17391580478506544,0.3036714040520624,0.36736179043250533,0.3620515743373159,0.24562290735511105,0.4137587054789801,0.3123646719389157,0.29784634851334946,0.33437439318952183,0.30930783263033584,0.3118962142078951,0.36801290229489786,0.2987727962720643,0.25755785063617537,0.35553525998676005,0.2991370378854992,0.3409568264555809,0.19893914768324072,0.1745581446125891,0.23934908735528765,0.3194626565978422,0.3288024210601011,0.31290251322172213,0.3229888987542718,0.16292503054943433,0.32969717771985513,0.3083961793767135,0.30667666634633073,0.26081522247760147,0.13682507357859827,0.3034547640393295,0.2415569127162255,0.3183247510989132,0.2702853690064431,0.3270244480502338,0.2722314210151548,0.359011923376035,0.30412520480307315,0.299962932362111,0.3436433390137007,0.29163927553712793,0.31033331888461513,0.32253746465324024,0.32420970156039425,0.28625224133650967,0.3021296815959073,0.30314958436638084,0.3365966157100897,0.3251943706931898,0.32482863806906215,0.1599514006147243,0.27487792800614774,0.08398583507130322,0.32987369976159137,0.3088807487369753,0.2966662584224906,0.31634091135377473,0.3517656931523819,0.3211313691693226,0.3758334687598162,0.299585649773664,0.30574794310553416,0.3053481670306191,0.2946335264594211,0.3266622881000779,0.3085312297795187,0.34956948342557753,0.33277098548359996,0.2987799577645344,0.37969549960457516,0.2779051965998447,0.33989617949866374,0.3040581421686442,0.4324487178379684,0.33486589829342267,0.387249873021507,0.4146091334198984,0.3146028810591033,0.4013286321778939,0.3039347967211641,0.24743049646946697,0.250721982750557,0.31064657037374205,0.14280759084556258,0.41191510245941315,0.30549688970742245,0.33897078167917305,0.3081046746656193,0.23861105695499724,0.33231807382820433,0.3277799715241302,0.4045216861177887,0.341858483473509,0.39748840072890873,0.28318859604151314,0.2860233623851739,0.32055223156019497,0.3288482577240852,0.22437588592574734,0.32321026778903306,0.33703227681359293,0.3123314298508804,0.2624551743438854,0.15489250423721235,0.2673786698133298,0.2939525861550645,0.32089076126168153,0.3309601506854646,0.3259899044216812,0.2657987531483518,0.3460310297654394,0.3755646942205423,0.27865165638987993,0.3148067155907594,0.3666685259161576,0.3326489769432124,0.31975631409798777,0.3781520226526142,0.32139247121727027,0.3048296356026291,0.43764281724985693,0.29816425555837545,0.3575709493491541,0.35011534564116825,0.3542728949724379,0.3107176683132596,0.39538576058051456,0.362999784709356,0.22209792345168788,0.29692595529817484,0.3712585392638364,0.3180356660934732,0.3001020627555225,0.20474648272645454,0.28634627430649157,0.34641536861607386,0.32968439436890584,0.3253754443581174,0.30109764872152056,0.37909297096438943,0.3795370743691387,0.33119894456661964,0.2948036968944701,0.30672568900404457,0.3141096455786134,0.4094747955674988,0.31074581224084785,0.37362090131815384,0.32802852256486725,0.2893509555993475,0.3257554144578481,0.32517805185758597,0.3042607988362391,0.3071749938484798,0.21640115535957444,0.3615222753319126,0.31919279015625124,0.2860215274858847,0.4054971118417076,0.32559060657198635,0.33417026182460935,0.34371596012440786,0.3361691068385139,0.27114610740518297,0.33867810373046037,0.3496268978780641,0.30597943450664167,0.2997861014887787,0.28958747696174203,0.31627619083585407,0.22861152974224183,0.3005717410724189,0.30946679977054853,0.3188309595278168,0.3312594489933821,0.2976020042263659,0.2642348154900341,0.36334820079689967,0.33622046271730693,0.3053708602738923,0.2585078940308393,0.3169442846359862,0.2790483285877188,0.34914192541095124,0.3790275109898392,0.11380396570184996,0.3070849955822927,0.31255479381411666,0.08994258065341017,0.3049916300933397,0.3197522413655975,0.30886896791772406,0.2930747281661127,0.29659074953250786,0.30217595835752903,0.36496577458320445,0.38062741698811714,0.3888584162312939,0.32019750440940054,0.2987252239958109,0.30421944366160314,0.3847468944608129,0.4171827110599479,0.3088213077486657,0.3782383923927419,0.3458815956901708,0.41014415827945894,0.301582594293706,0.3721696118110559,0.3162569887993964,0.3409802416053305,0.23266941312627173,0.2663448340114063,0.30134734154955617,0.3391947418277612,0.3021132833583877,0.3425077966360925,0.2538953950684966,0.24926675852880054,0.25821986871655217,0.3456932361458416,0.16954357194543154,0.2844487171873705,0.2988620268694832,0.27594289549899637,0.19826261711655502,0.3019753663383569,0.3357167858848614,0.3047322317891129,0.31982526423015323,0.1558596089267245,0.299827612137855,0.3235420078612626,0.3270233054739019,0.28572634390592727,0.3182148343468349,0.3096549287266658,0.30990528188331545,0.20277929288325774,0.38069047741800593,0.3678981390588332,0.23157220449132615,0.21219578075163192,0.28887470737392384,0.32076147016652584,0.3505872373225225],"b":[0.06092246702482307,0.27472109242966514,0.20183862915982165,0.6238097507845307,0.7433913235501292,0.7572063012661767,0.568095496887871,0.7166597046345874,0.24790760789747257,0.18535180189426725,0.1090561622018974,0.6926954908942486,0.9893097250010429,0.4598022935173969,0.44660111656597323,0.035200993423459614,0.6182305400685975,0.866348676513534,0.7158235865307803,0.1578113944816475,0.9582435939670748,0.9599921057958144,0.374352151092448,0.19176496267287169,0.99757800809064,0.32395002534578754,0.22304239787387925,0.44689396253200353,0.20705866552358898,0.4940614173255583,0.64804967263629,0.9469408474169405,0.23287268145308793,0.6751675954218578,0.6397616948769095,0.48539400535095445,0.9091497781258485,0.019837030140948397,0.5299727827310013,0.19491186361514778,0.7333473492982705,0.08945197364276503,0.842478398202995,0.06942694415602779,0.8926222959600817,0.21120758567398357,0.24192265177186845,0.46121122365692957,0.6622088061923995,0.5824124628066663,0.8533424429324321,0.17121157866777914,0.5287890944687079,0.6609408958702854,0.3756588167727207,0.8571145486811332,0.02486799416659291,0.11715981294462796,0.9986277835151802,0.08719568009834788,0.9947164380616959,0.4252799232366199,0.15593816693734608,0.8022693733438279,0.6917364448975128,0.3694721679775529,0.4611031231693573,0.6660082372308983,0.49844999487925523,0.1687016515613715,0.33668657075353425,0.39796252078223915,0.7336157666617604,0.6455012603368795,0.4223405603806851,0.9856437623762221,0.951317038758659,0.8541926175203293,0.6638450268911296,0.4492677450996019,0.28269765316433526,0.6188451476012494,0.1822608619954459,0.6792278099331104,0.5651690465999236,0.06588977414715202,0.0987076639898059,0.2590405621703542,0.7307647417771914,0.03741398769479021,0.922183114686463,0.5362460556537899,0.38475833919451174,0.7542277954298812,0.744693218236586,0.8364677633352204,0.062395127574987,0.9504207683304275,0.49709072619148276,0.1414283855939148,0.16373928677671412,0.6176540497135671,0.03321099042148601,0.0999645244916636,0.004845046910428641,0.42181130469572203,0.17071649286071422,0.352936777747195,0.10548224327632416,0.36708188158650934,0.5492235660879321,0.5019229663208399,0.0979645550926449,0.5434312212044147,0.12219937500514555,0.7909490772951552,0.6142733938630384,0.9565661406427444,0.7156568703312396,0.823901280588354,0.8975038678695809,0.15460731114880055,0.3296675430209579,0.43212129242896635,0.7756990253856453,0.23175785392793757,0.6071246290497687,0.5947484836704396,0.6578089213078074,0.8573126781490937,0.704872031588225,0.4450882981503572,0.22453433167879266,0.6745286301821525,0.6771546964307863,0.731431401271783,0.4738034519876847,0.22497993474522582,0.9726114850289298,0.003134032523458341,0.3309083870819468,0.2776085411225032,0.11906332780380569,0.33250503499927264,0.0937146209389852,0.30340712680315896,0.8571347461613764,0.8159379925523556,0.7758052073598584,0.01387603638918089,0.19693214700019368,0.593084141930189,0.06355371915789998,0.901503880853486,0.6963290689992946,0.2829172605859215,0.5053542208463867,0.5716417361447711,0.28282716667773733,0.04620368752888537,0.7492342497990767,0.09369993263146348,0.5959071841530322,0.7954228402599417,0.7855067977753954,0.9092274550914715,0.7912619543352937,0.5204735767916472,0.553918104605581,0.7281559621804329,0.6410035183542213,0.6688133548206973,0.09202077201983339,0.4983610277995746,0.22373699400076885,0.4747039883604134,0.5334866094280883,0.150601316319236,0.9487473564739284,0.407299762890318,0.5574332439314256,0.5354110090646028,0.41916459282852436,0.33018701982178467,0.21947832091164676,0.22171553618466067,0.7450846818483228,0.12301472477912467,0.5277432168482088,0.8255384750000725,0.6926194567976885,0.2065196249296758,0.26935513362624686,0.731201427532995,0.43682280762078773,0.13833027341215798,0.44404480972585136,0.7018134909301654,0.9837687002616653,0.33745863261800657,0.3828847509184713,0.7995833237578049,0.9197488953359365,0.6053592393382333,0.8472030415130964,0.6290360223496477,0.4205933567542991,0.9251359483375177,0.38692662993421345,0.9585267144628709,0.6340236425064126,0.014277249199237008,0.7872972325455799,0.5280277527048974,0.24005082802167843,0.3974667713642075,0.20329670875974248,0.2645257575691088,0.9975961141195248,0.2826461165118187,0.20797774786183099,0.10029362983671009,0.024032591666209635,0.4662852650114796,0.6742473701712304,0.7450636871597404,0.5141362665421985,0.14432908126220045,0.31996719293809206,0.026174743467807016,0.7415197168812792,0.5196666509279315,0.8784135033463761,0.13751043607280566,0.15705708855120104,0.7532417547096066,0.7581799303512893,0.9927788436025652,0.06090876227085973,0.4973686807788943,0.896211844568377,0.8139047844086166,0.8656838637391504,0.6857935399203638,0.052123589528349945,0.5767175066445538,0.37779888880052304,0.3839801908814794,0.10244585275623386,0.5753143632718808,0.6351792961270132,0.2560269758073883,0.08083352302031888,0.7821161767203128,0.6784027164548098,0.7460896830840049,0.5709566963962691,0.8331603718903793,0.5912834273299108,0.9472810200889915,0.45990971245036993,0.32198016910748983,0.2365727639959333,0.9956841030429305,0.0031559250302675146,0.20006597491236877,0.9789068405743424,0.5208513207388874,0.5176670622519499,0.6720001017413494,0.786827377784565,0.8562840244894517,0.22160970006864977,0.434893645655668,0.5870592706299865,0.8943127821483053,0.8068700559794318,0.6770881874718989,0.9336048427411421,0.7893245007630553,0.2784465751302112,0.8940795527296472,0.5280552168185464,0.9301641150877382,0.3569257183098208,0.2999130202041076,0.03699723731268145,0.36762946758101467,0.41891628576342155,0.37500514457059,0.5685345781412061,0.4123887643350873,0.3044761132041247,0.6256346830887028,0.9548003544861594,0.8816735690194577,0.04172930346687309,0.9702734005569119,0.6328585014037115,0.6677704589139919,0.23509713887290573,0.5426092459101067,0.2704625732594159,0.682018059152319,0.7048176405079091,0.7120441043179063,0.8523303876159106,0.6533028895472198,0.3465301520362387,0.4733769779564596,0.6766969195211695,0.15218323878302653,0.7837124317051671,0.4483727506324068,0.25566425400913273,0.49340892407982095,0.8972292701902994,0.8620598191364024,0.3917456942523273,0.021208106684171835,0.19858738003874798,0.5444036407859235,0.30056196205851016,0.17822763792287666,0.780384683600234,0.09155786396015908,0.1834513735681631,0.44268589075833065,0.5435957158643632,0.7978993206744662,0.4504365602292397,0.24883676239578922,0.3190586253253608,0.20085227708545372,0.6862249603450469,0.1510130988631423,0.844417009189776,0.9715943766099918,0.2216685636947855,0.43488278920320456,0.5438459369681776,0.6225520870957726,0.5233794334796684,0.3465834041439987,0.9121228825357893,0.7662692500500133,0.8942735205706858,0.008730317022405454,0.5263432248146294,0.18677601611093864,0.4973751537631391,0.2780980124321396,0.8764379689733282,0.8616578608276644,0.9989930202724828,0.19593018552149544,0.22853561412698942,0.7284206740425373,0.062003278010164364,0.40836732303782275,0.7619112724023228,0.9846224449474252,0.2732926454153479,0.9913873235010652,0.6747850420098639,0.990632337713627,0.20476924254001516,0.11073679618654197,0.17563427582560887,0.04980372389003773,0.03378155322940968,0.6309764237938755,0.2877234077145816,0.2688370610737322,0.6419910666656442,0.2644295320171979,0.2017400649667781,0.07909718384335274,0.8681047755888388,0.4856615957516882,0.8578735345130143,0.11975909084969982,0.7275238375601111,0.7489397981942133,0.5275248236270013,0.6620662309011991,0.20520798735383627,0.7130299786825369,0.31859224758721305,0.46637229887695153,0.7182842428320177,0.5960289255701172,0.4092114921360378,0.5624350549802565,0.7172834981463897,0.986204023652546,0.3577907966949898,0.1871956335416305,0.7811224837874086,0.9489499018675872,0.9696723252117169,0.098184081874923,0.12308188431226563,0.46620127918162035,0.2676234976336571,0.2859204211699955,0.42993438696460695,0.2777006033550926,0.6832011279355112,0.2563941016475556,0.5288887473771364,0.7108116604416668,0.6154128924435764,0.8628417476293706,0.4057352560685715,0.6952169569840926,0.041088308615772395,0.3274785319100153,0.6523379633445698,0.15746616568094496,0.945811291356787,0.6895960929763801,0.9980877645590057,0.44455662072533364,0.0981240776141562,0.34336560885325085,0.9200715249158936,0.16521504283495003,0.8475643111031881,0.6178793066544271,0.19897093960051215,0.10380038105024947,0.7199864676714948,0.10199309737254669,0.638833788715442,0.7825531979909232,0.5181903845148672,0.21008845070746718,0.9533436851968164,0.7638547495522743,0.7733598593690734,0.3477264278575447,0.2196320386781534,0.5675107874237155,0.19235969406760345,0.7286177280697402,0.06789736580550487,0.6662419790975553,0.47454310908443964,0.6573078668945898,0.6458707485653506,0.3548535098100627,0.7484679447477451,0.3608776438634026,0.11809465227492522,0.46302206449096117,0.3429878982570992,0.20466277035665026,0.2700327548372583,0.4251081893608797,0.6520171366847908,0.9676538044692531,0.2360553575966643,0.8371374528006696,0.9173994029073891,0.6262968709733362,0.5495300833623845,0.8552956444202466,0.3524452199144401,0.9957010586460372,0.6446882605288706,0.5668975387094739,0.7686088348867083,0.1848622814745019,0.6412776120369444,0.5502300643429483,0.9379003366763774,0.39605504101838274,0.0028288530167031034,0.6808086779537071,0.748079418624709,0.10714735378262208,0.6609510889977205,0.40922447124040784,0.5466615595530949,0.5581172448806204,0.7481107648219728,0.4456894312331382,0.640508802149253,0.9586799746777677,0.2716157794802623,0.6703187111575789,0.16295378781344294,0.285644954344643,0.03775828664776615,0.1011922900541774,0.5092807192858692,0.6029464288937059,0.5537990901852462,0.5537741737540757,0.9640495129890283,0.2406123079496233,0.2858105038040054,0.21304970052517924,0.6427040934985555,0.507916322433245,0.4977737965886505,0.021655935393092185,0.36213438645968443,0.06750112348313964,0.5901564530001541,0.19474680249006915,0.7640494140524126,0.14272761199677608,0.6851208788215671,0.9353384276921103,0.10731724113361618,0.4615899675003421,0.14237768034659537,0.5401101195496134,0.642376314351823,0.15145058984694815,0.5538820764814046,0.9109421468528525,0.4498930896679988,0.15583423317579626,0.438248227376695,0.39730375339284607,0.4568720457974731,0.004699954400814388,0.8263250574413753,0.46590566493531826,0.5185510164275675,0.09751743529862811,0.7369590483153124,0.5179099387986291,0.23129156788369654,0.3287509500655954,0.134948128252813,0.6475757414454878,0.3407821648527908,0.8288480622905537,0.4239438946943668,0.6417742398375155,0.3053516283751243,0.29042817439567425,0.5441759260930893,0.2899596191464352,0.5941753244488187,0.00034899264986798517,0.5028769595787141,0.2341060398810182,0.39050826397332417,0.9431311941028998,0.736886681141548,0.07121361054759157,0.2975796278524998,0.38653338108240887,0.027870328388219012,0.7131866389472714,0.3833700324682724,0.7050613676124524,0.024320033223945936,0.03291296827741186,0.39893428497629624,0.6018026557451321,0.012465685103900115,0.8483238900460736,0.38537592483960537,0.47450760964768335,0.8728861720827054,0.20762023760904946,0.5889268249860328,0.13568387737456622,0.3960616732413512,0.11347386770331347,0.3086347278598943,0.5162296648033952,0.7212214514805225,0.5418078893254773,0.8150183487291267,0.17854203419579096,0.280031376251201,0.9459240864065669,0.49707327540591306,0.3282150137495966,0.21508219583547028,0.39287513400749074,0.4593227281609247,0.33490372797478274,0.1147482996398187,0.7082063513824306,0.8744258931797829,0.30639361828711775,0.42535676959241286,0.22164888373929703,0.8448168278883498,0.41989581807614973,0.8247573881111493,0.46126363973253104,0.9770404988523244,0.5810964108038291,0.5022367725139251,0.44299488848298574,0.5704452971654229,0.24406764186483632,0.5179585716204799,0.17687428801161142,0.3007543876560639,0.761168331089995,0.19060758512134224,0.19434677639529863,0.6228905346761057,0.2117888840568598,0.7425763116990123,0.7584919681125728,0.33566875175137445,0.6603801668957471,0.8528759742148485,0.3125429768023238,0.3498084825271517,0.5573632967835935,0.458332922761155,0.1968314745430112,0.5070891199954148,0.3645339551593544,0.7131963668968287,0.39292978252189814,0.8127647594312204,0.1765559004166134,0.013669957520534348,0.8494443229279747,0.3194610532968867,0.5553359459034803,0.7680078784959915,0.6191079737321026,0.332814410830112,0.5625959131616357,0.9747865635100035,0.3437768035271118,0.2791437862301339,0.5728849207609134,0.39614244569429935,0.017532285740048836,0.3265369761373168,0.48965534113658127,0.5511036330568418,0.5819492774490794,0.2214154522401065,0.08770752983883856,0.5885774388950022,0.317425776935622,0.813571534204208,0.03347112965982413,0.3421603616341651,0.9712123633786887,0.3197431890553518,0.13040072174830675,0.6889542343386061,0.7658136272642246,0.037862297269886436,0.41592651047535345,0.19945152461402416,0.38025946868085037,0.43319616919518433,0.5932850055537042,0.42598492063285154,0.7692397147356077,0.5829438776608867,0.25882133454181677,0.9092151972145583,0.2427394773101682,0.5042221857513625,0.048765724843792824,0.44540618301675017,0.7410852526759492,0.6815942037054794,0.04967660144153674,0.16127250084401623,0.023903544309655134,0.49646625911404685,0.4026463648945535,0.6774573102621066,0.4220016906929228,0.32370681133998047,0.94694352657947,0.09462565546261137,0.8415983039098865,0.052130376630613595,0.7269515924144364,0.9418297219344655,0.23039586757544195,0.46424485375799385,0.9291132505017276,0.6263739948539635,0.5604694323194677,0.7393767064614641,0.7996164429857442,0.841793066274149,0.9797747575804944,0.4946014631900012,0.29965471366058616,0.6362623402842332,0.9189692233264218,0.06564897433949757,0.18951780576020416,0.4604695889920043,0.8872642419022084,0.34406286159429356,0.6510597685376568,0.852239271629247,0.5024427401549103,0.38349424988131375,0.23380241506146326,0.08345421881930448,0.866136054587442,0.3859840412866936,0.8658434412630717,0.01619009072272204,0.4749120757134814,0.9941870982395189,0.4020441419521126,0.09096819989325833,0.19179141263442612,0.928579231995786,0.7451875409356226,0.9907675008626452,0.7979822552119393,0.5989418143436733,0.9855640370352924,0.25446102804484605,0.34374132560869364,0.690121610193228,0.5800761712955258,0.7225308418891286,0.3235650380486309,0.8163012876182082,0.40480866843889507,0.820657411189763,0.19348279447759664,0.40538177129007547,0.13992634153906713,0.8943624891311458,0.08878945564626217,0.19343952097659067,0.19661109934171428,0.661155654447169,0.7742161754124403,0.21341584452952578,0.9282718698680825,0.451989024491527,0.24732203532374897,0.6747916243468586,0.7376790139717995,0.06275396566840064,0.8113042287732805,0.466025936084151,0.5154400768513343,0.7949880275391776,0.2683320778063695,0.5793504924817796,0.8855066320992403,0.7009184412922715,0.910682098380759,0.7463305153963624,0.11839096503652591,0.9722535363483746,0.9905661821954952,0.5329287105807282,0.7861001223436576,0.4472068486364478,0.08802394841940842,0.6637485824684827,0.07737846033509421,0.814277695953791,0.5820113561140854,0.35946730623492085,0.4449997626046521,0.03147567370710147,0.30500826204709275,0.5503755760457758,0.13334014443285258,0.16790355576955296,0.03244823849853162,0.24786704873963816,0.059081648694145006,0.8032552791382956,0.8436035569688173,0.6300120974654236,0.9569670185191356,0.5008747495349832,0.8035499839069258,0.6641461876628644,0.22215394796301347,0.7725621655428891,0.8747933417053385,0.7803199576138495,0.7563028767348182,0.2137986930532143,0.4863472860560142,0.944028394260377,0.41802670158291055,0.6584369456755628,0.7757675244872203,0.05269349232066545,0.23074751075921485,0.01202132239602105,0.14933525795144986,0.6689589217058807,0.8504045684398283,0.8285616825858878,0.529313545475719,0.2255887081054314,0.4462783169410328,0.9915519562751519,0.8252117991198348,0.9372749852507538,0.14279133066536986,0.4315179762302558,0.7587378833133421,0.4510162135740706,0.7086700840475356,0.24381121395565097,0.40052334786427346,0.2638250289758147,0.47931772501537206,0.12963869330680355,0.18623940037316966,0.651102282112853,0.3163000135404843,0.1873099252316337,0.4116705420697928,0.1920434861242819,0.9486799330057047,0.1139580380780536,0.7164957493397709,0.8894841237646046,0.8496170864336384,0.2864221646377967,0.7267685438265048,0.312160676527256,0.8071121871649236,0.9794221218202012,0.6978973271264923,0.7119791362139247,0.11886743692224133,0.6325414582050023,0.29243954335074496,0.2318503924215073,0.2004543444280289,0.5128437613304959,0.2563806604299488,0.0350614938637035,0.44839581280156504,0.3372340595053228,0.18776076921723217,0.0503951416517775,0.014140528759167048,0.7901849515962329,0.9991898636184262,0.7693743395770553,0.2876967793017021,0.765125456786914,0.24430650052755454,0.47220522163915246,0.35073013744072423,0.8283155444594219,0.8185783326318815,0.47083085301982264,0.4541597795879192,0.5876790957800029,0.40174760490208994,0.7831161595871164,0.954086927380323,0.14441245530876556,0.9772062778823419,0.40454817871434945,0.39851281020119733,0.4606438670921895,0.5976218448777733,0.26915254589255067,0.41614664228842724,0.11460495792246894,0.38978028996326475,0.11167099141659187,0.7931059490852811,0.9884098378327529,0.049966234933798925,0.28905694775329327,0.39366648999695464,0.6333975805030775,0.2734697390387367,0.9225494796450937,0.362933982832115,0.35811185149506275,0.6270035089981842,0.9808405163836966,0.8385372104141646,0.24650001389147802,0.19633447070931076,0.814943318120905,0.40732391600440776,0.6655739018225952,0.17552775095484474,0.7050125545718013,0.7561580693775084,0.8299154986540085,0.24459592068950464,0.04989155113096022,0.46331447192358033,0.6880952058219708,0.20279280434186697,0.29624091954306664,0.5802308364081984,0.5396283126545056,0.5771013544840318,0.6714790171979571,0.7962368034637728,0.6734029940013376,0.5047215615187277,0.9385576124811672,0.8379553860988253,0.07017007874656611,0.5872345284882042,0.13901152661049243,0.8602284828572835,0.54418761812936,0.821474584866432,0.6925155187718273,0.8371035897356297,0.1335913008677564,0.3595069949856272,0.3613978473648185,0.7928797190170139,0.999582751951061,0.6288579321695538,0.1293441052733315,0.4134917586810801,0.4034390590630259,0.024920608130827415,0.6433567751592346,0.7767584113892521,0.014975611852261927,0.2349934861589399,0.783673766435016,0.9112785400907778,0.13994735752161935,0.6305236864917908,0.7759449309017076,0.4055500907961562,0.4220601953542077,0.3790451127158475,0.7673342744009297,0.7928345303071456,0.7738977756850052,0.30802162681533796,0.2632358003805634,0.2997387564537253,0.39174067300266036,0.5638463645836677,0.27483872252038644,0.9655982513277338,0.2420494671056349,0.5464922552906404,0.4173457268923352,0.05517562980512558,0.19240860687907801,0.9684604723133277,0.6572560091655278,0.9677108919355936,0.6466229619851456,0.9056651449687534,0.9657594568085337,0.2060748363968542,0.16052051228160702,0.05480064094691239,0.9208203980764266,0.8842710187030411,0.6727096631131175,0.0886921951486237,0.6712398386216237,0.25360644414790046,0.29119571523158083,0.40710345963078864,0.051355470002117265,0.9580530394996598,0.3638453765180574,0.3001511346257385,0.33233348817163266,0.7441163014766936,0.8283833455988748,0.6713954649544649,0.06758398422896783,0.32127253626880514,0.46365389110148536,0.9852490609208358,0.09113562188803714,0.8706276579967838,0.48503689997061517,0.5611440300966448],"a":[0.23303835849611587,0.28449006444046643,0.35864160022351343,0.7034823802973981,0.3841742637763411,0.14400195616701295,0.5987494092333544,0.44834813129899853,0.5752015565243257,0.6554048206174177,0.9451386577365717,0.8887341165232897,0.357521125236809,0.6745208007938401,0.5070882033293492,0.37091658911076897,0.3677557170957292,0.366400795067499,0.8985286349095158,0.04611298649263851,0.9026376831193292,0.980433298910175,0.9557736506706681,0.5756651555700188,0.524343748992648,0.6501178111219905,0.1722913726936478,0.6051175731861238,0.3628706486571355,0.7219681538621026,0.016559782118335642,0.8770139594945959,0.2519863317829596,0.9416916918414837,0.6083548867738153,0.5697459167204851,0.15635397118234862,0.6071626357944523,0.7727923319689209,0.4552833703041542,0.0014275879888945298,0.5484847838445989,0.396731338585924,0.5518385298135727,0.22102815806291953,0.11062832612108475,0.2899174557471066,0.09232060458072278,0.599844234070892,0.9547283214668852,0.12282802861871434,0.3353092395912449,0.33728887407374986,0.7817649638767372,0.306779262958765,0.7957742281898216,0.24773167164835086,0.37165281939376404,0.7276394230463155,0.5637744173351557,0.2705995941143031,0.07465900725008634,0.020382529683424355,0.5020383245586809,0.7746577412213753,0.5184004886806782,0.16609045895702979,0.43092595981783977,0.061882850193922256,0.7908939990042726,0.1682173842301693,0.443584497146182,0.6735834432573075,0.8430476275648923,0.3541624126083486,0.06093436578571143,0.688613885369363,0.2894958018549534,0.9569338409663792,0.7372312666935241,0.5967400948800136,0.23698869293252844,0.5999947066359335,0.37683770834786634,0.5594764448335419,0.04795574813407966,0.41644709003501357,0.600307235817147,0.1622508874504679,0.4535102841432953,0.6490522737922356,0.19438174889985138,0.9418561810320495,0.018740565713876833,0.007618711753582641,0.34884501235546805,0.5386839529366318,0.8550105704750531,0.47743726184685,0.6235625667166269,0.3500763361178114,0.6316621434553064,0.9187494723770586,0.08556934948540929,0.04891903669045272,0.922027319442826,0.13748591606095362,0.23006713609886742,0.7701795667216843,0.7156729177906853,0.8800265767788293,0.5360697571186233,0.01314017000384593,0.6571324207186546,0.2022212395979578,0.007047305871017984,0.6500206408304956,0.5035643167439964,0.3916369676970818,0.6895654418307284,0.5666930033942016,0.2595782000465894,0.9754163048699533,0.7264007626060514,0.34108011550467343,0.7915141207679213,0.7983315570935711,0.7090841183751415,0.6184472461149031,0.5316839141586245,0.570732287828806,0.030349042477327393,0.8113682217182743,0.6903021782886358,0.28422702079343254,0.7894125429302513,0.047121629515464614,0.8744227582178117,0.36176885451420027,0.618300841712179,0.47968432744027034,0.3691161337890424,0.013177867159240741,0.6273645284298788,0.7723693239991889,0.09860640786446007,0.2751253500387226,0.3245997575045517,0.19877373686607658,0.9030601166594807,0.47136206025294636,0.6487050482608968,0.2283839271878707,0.9476868690959982,0.6321206849588087,0.6601246539359049,0.07510332906305561,0.9980068854979541,0.6008964314686499,0.9346412131550418,0.5434823831918445,0.471192312802722,0.12522900228190992,0.11413883877601361,0.8666802407544847,0.9026494372655105,0.3959225589673637,0.966883351026076,0.6056555144666308,0.32631006718063804,0.35978168445449976,0.8421378861380868,0.7295182882079237,0.8713639684523725,0.9785109210218245,0.3476934351357567,0.7880576681629731,0.7955687359410266,0.18821368547434547,0.36051567146758134,0.8619035339397444,0.013825478168993155,0.7970079217751047,0.40423945466343125,0.7252550744629337,0.9248068852971248,0.2160223287254397,0.43884940475825596,0.5663920908605421,0.9216983734065392,0.8966136117296993,0.14492576098592524,0.3228126843836596,0.5926993164065621,0.367952856890441,0.6973333408339721,0.8065468771548728,0.5224786807328362,0.8668313678836445,0.893021245766204,0.3998557242880203,0.799329066388268,0.09232431985249512,0.698031794255703,0.6617996648779834,0.621740067472485,0.8690550057067844,0.6545817247004498,0.5928786055308116,0.8800429055703216,0.3077430888247775,0.7635920365971469,0.2755492945139528,0.5324121273719086,0.6496761517060029,0.7638146433946438,0.6151796167494814,0.8935526154084691,0.6558034983886155,0.7394154021688455,0.9963855472715312,0.6686015175948987,0.11240441441129256,0.19318377819229893,0.5355809117426521,0.5741366509654118,0.41047249036069944,0.059947060052740975,0.9303335568285079,0.23853937112685097,0.9820242808214105,0.8351543244402599,0.6719393193442248,0.24460347909208213,0.986738451727031,0.28789064350208393,0.1770016204510696,0.13122978096957127,0.22493173088014107,0.9840696295105817,0.4759666611448241,0.31108815923182653,0.3144401330415152,0.043697491001437716,0.8038390282528186,0.027767923989791332,0.031793970443326436,0.6631905683330654,0.31815961055182795,0.4700908590072802,0.9010681916249111,0.02776768933560747,0.0667341672308367,0.7915201490663555,0.5253089018823832,0.9241121285397765,0.8689424303536418,0.13727474154309527,0.2644207016443393,0.11868244205694323,0.5190756901970429,0.8210034373789425,0.3865083506298571,0.15945179334549764,0.9507941276676654,0.6176057377754282,0.3351987667872469,0.09486801896442254,0.639537146970836,0.3328043213354118,0.06220893014589135,0.3342013962329321,0.030372534856419886,0.2350676426388807,0.45374272854369047,0.36262487230931373,0.5337151079414297,0.24375157301606476,0.5613405750028969,0.26900561475879636,0.4876861041533157,0.7550538512243711,0.14295852100627493,0.8758857841749021,0.08491993042374413,0.9754322703545834,0.25916307483647705,0.2876560454810414,0.04976985140294732,0.9206696354686058,0.03032372772102454,0.6414448800316433,0.4428329379933985,0.5515076403024671,0.5848210119121923,0.23934926765748965,0.8528853344398541,0.7552565186838849,0.5201400032041322,0.5892755131345996,0.5828941678429977,0.16078113240976044,0.0517150092034826,0.8810590167587655,0.4107749033204783,0.5848663840614879,0.22792202222507707,0.2511573502915063,0.9678080421649928,0.6060319403011559,0.8041695925578016,0.05939739946747424,0.44277961351263173,0.6578088737020987,0.03435519383701646,0.15893848716806702,0.1419751024038477,0.436525231409296,0.25815435540085707,0.1248663122707474,0.5388956496362471,0.6206172984187276,0.02262072460845954,0.7586157001701231,0.3558301398292322,0.792884382249793,0.49924805218198376,0.7754287028429839,0.5437816458901835,0.6734849364796457,0.9864962028909839,0.8538241056353278,0.4129537802556438,0.3027186237188826,0.35648559466324226,0.43745518171132325,0.5318426209117607,0.07125575609798107,0.025056413715205506,0.6592080380989361,0.36585266810495853,0.21684438271529494,0.14000254662976153,0.8647557285762454,0.09415683165608313,0.29987806872632095,0.3831228068071181,0.7007146938368948,0.04334564471543778,0.8088735083855074,0.17191642517196648,0.6646742635147621,0.9362380218761595,0.684255867183208,0.8224825954804024,0.3070114144395285,0.5510537374888607,0.5297122098729112,0.07226454230248613,0.3618267955951827,0.6367356064886909,0.578053064157056,0.925631791347822,0.4533715218712666,0.47068913510893506,0.3452578237067845,0.5351172010551852,0.4411046336686353,0.488451321480312,0.720874020872106,0.2832366119405265,0.29398667664896583,0.4860136425726669,0.13130560794144586,0.8606491115115638,0.5199049240141141,0.30025551399562944,0.4000075454262936,0.42771955587330335,0.7713315597191073,0.32359266888515203,0.8449056267280668,0.06148746396803473,0.6967706556705675,0.16673259082227754,0.03418238723383804,0.21971518383754352,0.16892424984761223,0.8599033545509255,0.6768512870608231,0.10946215886539823,0.8009739267873418,0.5883282359988082,0.6417330984546554,0.2889458626485987,0.239084469327562,0.6329964428490732,0.5747223754728341,0.531417491791304,0.7123973987158434,0.5908050525582471,0.6041042007320084,0.7565562553700845,0.6969873493286195,0.4369331439773305,0.7773345089844875,0.15254200238647275,0.3051189570453555,0.802816743504272,0.4809739897829286,0.7091355911329077,0.4845018687168311,0.8054546366962763,0.6875464115835591,0.5320113580854442,0.4229874401888677,0.6413550835757351,0.06317294486506697,0.24708051197590242,0.21188311640002688,0.7595858046228272,0.4765430802883489,0.2916873352483863,0.03743361207466789,0.6247604410301715,0.6777101300076565,0.4921836426720948,0.42374510479485505,0.6046136109773819,0.7992663609012804,0.6052505820423673,0.9794827706238891,0.1039268008438532,0.010651881375140948,0.8217574460224196,0.775514148513359,0.29702905325984785,0.9120982449894863,0.667431346265945,0.964424913915269,0.8434363635063041,0.9734708133295039,0.22391916491949493,0.7243399890636444,0.17326704882843502,0.5438798986749778,0.08586843928122823,0.6474798718359476,0.7114139929539978,0.987411017968705,0.5381713042645659,0.14557458509281784,0.20352479577407456,0.09884427635592319,0.20742100612936243,0.6078399269132445,0.6932724558456923,0.3842495679860727,0.7169005032731032,0.8451153661669406,0.40424192204832177,0.37937993464986786,0.05062901758799643,0.529043543298656,0.07763452346699662,0.5033622982414933,0.526073737671142,0.7027696414410632,0.09474805304082179,0.2554813648757005,0.7701761513795218,0.48316940640683825,0.4797973502966445,0.8383956497884539,0.3183360822558492,0.3162462792918167,0.464868005672619,0.07076412510280772,0.5722735465281266,0.9704121731288886,0.22049812880649844,0.605808151130106,0.8971408109639117,0.4585200490117026,0.9907459720046295,0.34977794018216535,0.6454060378211852,0.5776791117624291,0.5861921158364484,0.42734463733840955,0.06887699897774024,0.06721933860781448,0.08823384244363641,0.6618432925897939,0.029389765376587995,0.9566860231563336,0.9845587402238486,0.047192343675068193,0.9882563837232499,0.30954992749521704,0.613396759493526,0.6213430742297915,0.6830161238860561,0.4619778966773428,0.7195480867539957,0.22289564457347943,0.8729763862838397,0.42062140480893684,0.484528624872675,0.8042769805100163,0.9028942328646257,0.1332936396375397,0.4991028707549213,0.676424486375558,0.46332031672768126,0.5227093139711463,0.6262501210618635,0.690188834976359,0.23055003393277174,0.7008799672973752,0.9250171718021508,0.29556331475341013,0.7841380789128327,0.6019930600105156,0.6170420177781935,0.5280483176084877,0.4259489766907095,0.2591871065348118,0.30603880061288846,0.13749587417587616,0.8224311923095583,0.4170907737352857,0.8278870779833182,0.6063230785544952,0.6444800795995511,0.7483584959849248,0.7188199305352354,0.7056660068317296,0.949739331906608,0.11611429653347338,0.7096773708074474,0.10860613211258074,0.12814049230963953,0.3368457079460001,0.608150738971607,0.3788260607905196,0.3937390240783407,0.38159695234025015,0.4117390382195515,0.5981637562600661,0.3787531025034465,0.06009064558147004,0.6773367849276545,0.5836732952114005,0.39880841219248897,0.8668427729993844,0.1390234791999666,0.09806962606258696,0.4010149206768836,0.7846859331145284,0.42121267697800024,0.2411107639491693,0.0740588523905058,0.35161668361996334,0.9907002387320526,0.9736764214005451,0.0882341264080655,0.7525000287153029,0.31933634166004554,0.5970216089932577,0.3025253627123743,0.10149792938539515,0.49145165415153746,0.9650132401406966,0.23198049378477603,0.49790082986738937,0.5992277111590392,0.9068468992459465,0.2182809150263364,0.46579557316698883,0.9994203320865894,0.3902931274253627,0.3361240429699328,0.02423943172036125,0.029372347337056515,0.962328989070333,0.21080080624029074,0.42456926828476316,0.4579466520966837,0.07005461521376988,0.1940495954163789,0.8323601352240877,0.15029314505658076,0.8183281361112575,0.4066360801753568,0.35638571150020126,0.6579349869482218,0.4402790762154838,0.41098734273804804,0.2091527755181245,0.12640164851258384,0.30682835230155325,0.4974969096766857,0.5599097080157999,0.6350719310775211,0.6470382040326895,0.4991105275308544,0.06452151048133703,0.8326051005866208,0.5867544228498096,0.8033488446324745,0.27471705189653595,0.9140692341542727,0.22889511980506605,0.6292369732170473,0.2482549961645366,0.8157588187103935,0.5635608147004875,0.7134323895578676,0.30387681565988456,0.7401717612348776,0.0997330007500229,0.22888484078647475,0.38997893379461535,0.9232262636009844,0.7610764791999495,0.078496308150663,0.8652023194830272,0.8234202412659356,0.3249195857365592,0.20501274921914114,0.7918884762743905,0.41746040413339625,0.7716972970816518,0.2997581614565693,0.616545249258512,0.7707655122845394,0.7321523669098187,0.07638696784248256,0.5877888157772565,0.7012650725875987,0.563407031324785,0.5412979077809624,0.3913631076429027,0.08251421113370783,0.997587007016869,0.7792996469115671,0.9524055474642019,0.23526989207834625,0.8881586125015203,0.6961853354446871,0.28666948841734596,0.5518999210879779,0.2711298692512495,0.9882004560886558,0.08200927866549779,0.39397431520301696,0.9324781597644289,0.7827447944187541,0.37246504848639395,0.6716500651688374,0.747009117642073,0.11612444841303415,0.14051738685762571,0.6978285201466141,0.4794331510966644,0.8808543233311977,0.9944767643030367,0.3635024500047399,0.15756457314748196,0.041248810509005196,0.0638771129357677,0.8013300842914245,0.9654670988317955,0.9545486602441476,0.5476875436214096,0.11809341474491375,0.00829763023102792,0.17011059887019142,0.9373662477151012,0.39883662458194236,0.1916273816517241,0.029449964095145775,0.01597522631076287,0.9914665440943691,0.5198136632930563,0.16137972591447158,0.5215176149206975,0.24067240131323286,0.8744454163250637,0.6534034851884849,0.1282645773678618,0.0895559006234189,0.3438723036007264,0.9201153687370055,0.5559329464278387,0.8949636362637631,0.6066916356496358,0.325640374192793,0.03955461971565455,0.7957666346776269,0.8999706746691354,0.33064050222567143,0.24259679347921326,0.7894736196191772,0.8236057785851366,0.842069214245962,0.14004520355790573,0.4509507878736657,0.7765151962576371,0.17006422026418122,0.8911288335205311,0.24210554959944475,0.11195579158809588,0.1375329805179376,0.32774921810895064,0.08826537158334236,0.8329213365953776,0.012140474385174183,0.8775491704838593,0.046471123290318106,0.910476098267238,0.45039669735549537,0.2780467153948426,0.5438496939538079,0.9736486140793998,0.7716336877519243,0.07457544287254769,0.19298678951311543,0.32801733212104234,0.4847933937684704,0.2582060923070394,0.33946437487395553,0.08112952632796899,0.7978813121627844,0.3588162245069362,0.408525239158657,0.9679251182359689,0.9351400647797297,0.25289582437279257,0.16229175855935118,0.7249830128127162,0.3508499392476503,0.8869173005652815,0.5934248788995802,0.26014658529844414,0.6288706667505933,0.11195349259022103,0.7475228007148733,0.278190637424202,0.9236553464068418,0.18092485198184816,0.3372881201699156,0.6187459170052964,0.8823016888107085,0.8899297615405375,0.3298612872714306,0.32160116084960033,0.09096056884952197,0.10321692876651656,0.8630554648084814,0.29861743287879194,0.444392832029712,0.5373052655857357,0.8099096767156563,0.14303604036037032,0.8027074876740826,0.21267802494211208,0.17240058611842624,0.20282415241732088,0.5849988342147823,0.8901972240970653,0.01390442277534365,0.4843622259994306,0.5553011407542802,0.6815099715288786,0.008071676298286756,0.7398722096715958,0.4904727049214723,0.5968075412346795,0.9050367338453785,0.39721221286741215,0.8030620267191985,0.7862610309721458,0.6980179091013542,0.33471391903357306,0.6258999206288172,0.15811837718124877,0.6793804243663606,0.23959937022561206,0.39165962397534637,0.8882832836975159,0.11325669096254687,0.4130613570676369,0.16709480919988906,0.4088181951285047,0.5664006952913723,0.5820393380865299,0.7491930301067655,0.9531206915075416,0.45418149635287763,0.6164116515157837,0.6845987653816934,0.4846060941439795,0.8994634715245001,0.8806953257080267,0.8192301441457971,0.3382731053052086,0.888391627401793,0.97597338704572,0.6194846997682081,0.45131057977725464,0.5429349445342275,0.15963766159826476,0.7293965408360095,0.8445055201685293,0.4886057724539661,0.489568116759578,0.7033228182021298,0.8513511488985551,0.5109451850638723,0.47429184523406975,0.7238090971155037,0.26658439695444536,0.9300841626331294,0.5936931226754119,0.3974750217254247,0.05021475795383845,0.22808669042770857,0.24850402844845432,0.10093608336143356,0.7978219568526578,0.1439366787486277,0.6926463786727539,0.6603272868887439,0.0678459569417611,0.6259437122249684,0.024088370351382005,0.09289588140617522,0.9115038361659239,0.5415697856962611,0.8209117818895993,0.1588501223075376,0.29987732480290363,0.5880326167482296,0.06873354669171294,0.25918999242232177,0.19084354891411615,0.8159611340607816,0.7165391371100209,0.7766758076967989,0.5445239210041756,0.19466781256827193,0.7390248158648184,0.5740167063273338,0.5171567030929684,0.18902768250638657,0.16507215795429264,0.12250072970726444,0.8830316657708845,0.6319840452951477,0.570079541307443,0.49029405786586244,0.9940575659197519,0.5388187724216544,0.3212381359694527,0.16973189132129474,0.34561986080664864,0.13472521485129996,0.6574004059129541,0.7805317713474886,0.2805819576830306,0.5919328005844595,0.5931406576214201,0.03307366057338368,0.44337140523804774,0.44932559466316613,0.5060250902114242,0.07922597638403583,0.8802298319820646,0.20188534606700015,0.40457478010770964,0.8699978599033468,0.940045874661703,0.12283346091726399,0.6526449810679905,0.7179210892048186,0.45531481715065836,0.9048040603213064,0.5330917525275559,0.6431504112571258,0.5893012430156821,0.8255051881099484,0.2942438041968891,0.2923957793594173,0.6280964329759885,0.4048919127752938,0.8143769189323848,0.6229715214844204,0.12078449754130283,0.29876097233640375,0.07741290037113402,0.2050361546060746,0.6240983044646299,0.6333744499456228,0.3475581831257053,0.8656313289294228,0.6661802673523292,0.3833827706755588,0.39660412517063137,0.745656099838609,0.7227369872807698,0.13829475385519274,0.7178168483811364,0.09836363017858252,0.5072346694563729,0.2848810902258373,0.13296738628073712,0.37166414012113114,0.4927277886614424,0.521632695447563,0.9335656414450606,0.21344682648087998,0.8191854102138564,0.95310024374045,0.9031113304639717,0.8929423315852039,0.5498513021713409,0.5530413114878471,0.9694078874717784,0.6392547581237046,0.4044325966184287,0.5953325704548573,0.8762818838832647,0.22124356870575856,0.12689075428502705,0.5281383985693832,0.0409510693319628,0.09140356076174494,0.900832575221848,0.9165964126978232,0.7748979117401047,0.8881508612121803,0.6631525670253764,0.33423457366735276,0.6116761971233853,0.48842015867685384,0.08784028499280516,0.9348500856965625,0.3912198898899021,0.21811813070761688,0.1040714540126404,0.30576894834583823,0.9771496086972935,0.9058563148668042,0.26342883078801993,0.0824535477916376,0.740008017319913,0.28741316311081366,0.4919798581932052,0.034252759741538075,0.7306719847610929,0.29710332485720203,0.8218649926605545,0.5808827038647735,0.34627972628496273,0.843104309494385,0.7311389036537862,0.29135032324225674,0.5030568831333344,0.3406243368397678,0.15520782747507367,0.17608681011322025,0.9558923472083003,0.298029967585016,0.8204477796781765,0.26124787483337986,0.9124439826842293,0.07947773223897547,0.9031123384144069,0.9744637696302877,0.49965662150684054,0.7592692306390416,0.01919440960748464,0.9285594861724714,0.4288427203715144,0.6924981932354743,0.6099099623598199,0.9776361868718424,0.7141099404914,0.771448076300823,0.874742985694065,0.6593567047872024,0.2884102076254398,0.12971275390022563,0.14728178389153734,0.7905932802397629,0.23629708992668097,0.7708072682943761,0.18813483149999]} From 0acd44c1d0da3d64b9db3db95fd17256adef37de Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 12:33:30 +0530 Subject: [PATCH 17/24] chore: add fixtures Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/test/test.js | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js index 3e35ba2b27de..3393cc3e328c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js @@ -21,15 +21,19 @@ // MODULES // var tape = require( 'tape' ); -var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive; var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var randu = require( '@stdlib/random/base/randu' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); var EPS = require( '@stdlib/constants/float64/eps' ); +var abs = require( '@stdlib/math/base/special/abs' ); var stdev = require( './../lib' ); +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + // TESTS // tape( 'main export is a function', function test( t ) { @@ -103,17 +107,26 @@ tape( 'if provided a nonpositive `b`, the function returns `NaN`', function test }); tape( 'the function returns the standard deviation of a Kumaraswamy\'s double bounded distribution', function test( t ) { + var expected; + var delta; + var tol; var a; var b; var i; var y; - // TODO: Add fixtures - for ( i = 0; i < 100; i++ ) { - a = ( randu()*5.0 ) + EPS; - b = ( randu()*5.0 ) + EPS; - y = stdev( a, b ); - t.equal( isNumber( y ), true, 'returns a number' ); + expected = data.expected; + a = data.a; + b = data.b; + for ( i = 0; i < expected.length; i++ ) { + y = stdev( a[i], b[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'a: '+a[i]+', b: '+b[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 10000 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. a: '+a[i]+'. b: '+b[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } } t.end(); }); From 96f221ab86c89afe9b73cfb35be43f7496c14048 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 12:36:08 +0530 Subject: [PATCH 18/24] chore: add fixtures Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../kumaraswamy/stdev/test/test.native.js | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js index 0cfa94db64ee..83e217e47ac1 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js @@ -23,12 +23,16 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var tryRequire = require( '@stdlib/utils/try-require' ); -var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive; var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var randu = require( '@stdlib/random/base/randu' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); var EPS = require( '@stdlib/constants/float64/eps' ); +var abs = require( '@stdlib/math/base/special/abs' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); // VARIABLES // @@ -112,16 +116,26 @@ tape( 'if provided a nonpositive `b`, the function returns `NaN`', opts, functio }); tape( 'the function returns the standard deviation of a Kumaraswamy\'s double bounded distribution', opts, function test( t ) { + var expected; + var delta; + var tol; var a; var b; var i; var y; - for ( i = 0; i < 100; i++ ) { - a = ( randu()*5.0 ) + EPS; - b = ( randu()*5.0 ) + EPS; - y = stdev( a, b ); - t.equal( isNumber( y ), true, 'returns a number' ); + expected = data.expected; + a = data.a; + b = data.b; + for ( i = 0; i < expected.length; i++ ) { + y = stdev( a[i], b[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'a: '+a[i]+', b: '+b[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. a: '+a[i]+'. b: '+b[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } } t.end(); }); From 03cdfeb4da1b595079e3f4a7f53c8da37a0b5bd6 Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Sat, 5 Apr 2025 07:11:09 +0000 Subject: [PATCH 19/24] chore: update copyright years --- .../base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl index f2a0e46ded77..991acbd6c1c9 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/fixtures/julia/runner.jl @@ -2,7 +2,7 @@ # # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2025 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 1abbf3dd2fb8fbac682acae3f2e284e672fbffa4 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 13:07:54 +0530 Subject: [PATCH 20/24] fix: update benchmark.native.js Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stdev/benchmark/benchmark.native.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js index ad57d38df409..7747e9c255b1 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js @@ -41,23 +41,16 @@ var opts = { // MAIN // bench( pkg+'::native', opts, function benchmark( b ) { - var len; - var a; - var x; + var shape1; + var shape2; var y; var i; - len = 100; - a = new Float64Array( len ); - x = new Float64Array( len ); - for ( i = 0; i < len; i++ ) { - a[ i ] = ( randu() * 100.0 ) - 50.0; - x[ i ] = ( randu() * 20.0 ) + EPS; - } - b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = stdev( a[ i % len ], x[ i % len ] ); + shape1 = ( randu()*10.0 ) + EPS; + shape2 = ( randu()*10.0 ) + EPS; + y = stdev( shape1, shape2 ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } From c6325211e10354daba2edd36f73ad57cddd95749 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 13:10:01 +0530 Subject: [PATCH 21/24] chore: tolerance adjustment Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../stats/base/dists/kumaraswamy/stdev/test/test.native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js index 83e217e47ac1..35f56fd007e3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js @@ -133,7 +133,7 @@ tape( 'the function returns the standard deviation of a Kumaraswamy\'s double bo t.equal( y, expected[i], 'a: '+a[i]+', b: '+b[i]+', y: '+y+', expected: '+expected[i] ); } else { delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); + tol = 10000 * EPS * abs( expected[ i ] ); t.ok( delta <= tol, 'within tolerance. a: '+a[i]+'. b: '+b[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); } } From 242d97693dfa978fa2bac9c936bc71b55ff6c211 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 5 Apr 2025 13:17:14 +0530 Subject: [PATCH 22/24] remove: unused packages Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- .../base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js index 7747e9c255b1..e82a221e5eff 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js @@ -22,7 +22,6 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); var randu = require( '@stdlib/random/base/randu' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); From 2ebcdf49c118288439766fccd365042a079a2cb5 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 22 Jun 2025 22:15:24 -0400 Subject: [PATCH 23/24] chore: minor clean-up Signed-off-by: Philipp Burckhardt --- .../@stdlib/stats/base/dists/kumaraswamy/stdev/README.md | 6 +++--- .../dists/kumaraswamy/stdev/benchmark/benchmark.native.js | 6 +++--- .../stats/base/dists/kumaraswamy/stdev/examples/c/example.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md index 3638dfaa886f..b6aabff1ae61 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/README.md @@ -186,7 +186,7 @@ for ( i = 0; i < 10; i++ ) { #### stdlib_base_dists_kumaraswamy_stdev( a, b ) -Returns the standard deviation of a Kumaraswamy's double bounded distribution. +Returns the [standard deviation][standard-deviation] of a [Kumaraswamy's double bounded][kumaraswamy-distribution] distribution with first shape parameter `a` and second shape parameter `b`. ```c double v = stdlib_base_dists_kumaraswamy_stdev( 0.5, 1.0 ); @@ -237,8 +237,8 @@ int main( void ) { int i; for ( i = 0; i < 25; i++ ) { - mu = random_uniform( 0.0, 10.0 ) - 5.0; - b = random_uniform( 0.0, 20.0 ); + a = random_uniform( 0.1, 20.0 ); + b = random_uniform( 0.1, 20.0 ); y = stdlib_base_dists_kumaraswamy_stdev( a, b ); printf( "a: %lf, b: %lf, SD(X;a,b): %lf\n", a, b, y ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js index e82a221e5eff..a69ec7c5a99d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var tryRequire = require( '@stdlib/utils/try-require' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -47,8 +47,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + EPS; - shape2 = ( randu()*10.0 ) + EPS; + shape1 = uniform( EPS, 10.0 ); + shape2 = uniform( EPS, 10.0 ); y = stdev( shape1, shape2 ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c index b2dffa6d817e..7d335e9fd252 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/examples/c/example.c @@ -32,8 +32,8 @@ int main( void ) { int i; for ( i = 0; i < 25; i++ ) { - a = random_uniform( -5.0, 5.0 ); - b = random_uniform( -5.0, 5.0 ); + a = random_uniform( 0.1, 20.0 ); + b = random_uniform( 0.1, 20.0 ); y = stdlib_base_dists_kumaraswamy_stdev( a, b ); printf( "a: %lf, b: %lf, SD(X;a,b): %lf\n", a, b, y ); } From d30b68bf3817a3cefb434ddb04009037bd14c0c1 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 22 Jun 2025 22:21:49 -0500 Subject: [PATCH 24/24] docs: add tolerance explanation in Kumaraswamy `stdev` tests --- .../stats/base/dists/kumaraswamy/stdev/test/test.js | 7 +++++++ .../stats/base/dists/kumaraswamy/stdev/test/test.native.js | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js index 3393cc3e328c..bf58aa7db9f6 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.js @@ -124,6 +124,13 @@ tape( 'the function returns the standard deviation of a Kumaraswamy\'s double bo t.equal( y, expected[i], 'a: '+a[i]+', b: '+b[i]+', y: '+y+', expected: '+expected[i] ); } else { delta = abs( y - expected[ i ] ); + + /* + * High tolerance needed due to compounding errors in σ = √(m₂ - m₁²): + * - Two beta function evaluations with different parameters + * - Subtraction precision loss when m₂ ≈ m₁² + * - Square root operation amplifying small errors + */ tol = 10000 * EPS * abs( expected[ i ] ); t.ok( delta <= tol, 'within tolerance. a: '+a[i]+'. b: '+b[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js index 35f56fd007e3..2c39fbb76974 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/test/test.native.js @@ -133,6 +133,13 @@ tape( 'the function returns the standard deviation of a Kumaraswamy\'s double bo t.equal( y, expected[i], 'a: '+a[i]+', b: '+b[i]+', y: '+y+', expected: '+expected[i] ); } else { delta = abs( y - expected[ i ] ); + + /* + * High tolerance needed due to compounding errors in σ = √(m₂ - m₁²): + * - Two beta function evaluations with different parameters + * - Subtraction precision loss when m₂ ≈ m₁² + * - Square root operation amplifying small errors + */ tol = 10000 * EPS * abs( expected[ i ] ); t.ok( delta <= tol, 'within tolerance. a: '+a[i]+'. b: '+b[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); }