From a724ea9f07d3b2280d93df4d9202b1f63ccc8255 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 25 Sep 2026 13:17:12 +0000 Subject: [PATCH] bench: fix data generation in `blas/ext/base` generic sort benchmarks Propagates fix from 66f69b6a ("bench: fix data generation in `blas/ext/base` sort benchmarks") to the generic-array sort packages, whose reverse-sorted benchmark data was seeded from the iteration count rather than the array length. The source commit corrected `iter - j - randu()` to `len - j - randu()` wherever the expression was written in indexed form (`tmp[ j ] = ...`), which is the spelling used by the typed-array `dsort*` and `ssort*` packages. The generic-array `gsort*` packages build their input via `tmp.push( ... )` and were therefore left unchanged, even though the source commit touched those same packages for the unrelated `i % M` correction in their `few_uniques` benchmarks. Because `iter` is derived from the array length per size tier (`floor( pow( iter, 3/4 ) )` or `floor( sqrt( iter ) )`), the offset shrinks as `len` grows, so the larger tiers generated predominantly negative values spanning a range unrelated to `len`. The sequence remained strictly decreasing, so measured timings are unaffected; what changes is that the generated values now match the intended `(0, len]` range and the already-corrected typed-array siblings, making cross-package comparisons meaningful. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_0166DfWubFLrTN9qRtaKbATZ --- .../ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsort2hp/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsort2ins/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsort2sh/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../base/gsorthp-by/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsorthp-by/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsorthp/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../ext/base/gsortins/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsortins/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- .../ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.js | 2 +- .../gsortsh/benchmark/benchmark.rev_sorted_random.ndarray.js | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.js index 1499ee90ac99..83cb796feb97 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.ndarray.js index 07e683d69632..3e832754832e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2hp/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.js index 1b53ea2fcac9..048dc6dbaacd 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.js @@ -52,7 +52,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.ndarray.js index 28239ffd2f8a..6088face2260 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2ins/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -52,7 +52,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.js index 379cdd0a5c35..45d962a24e2c 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.ndarray.js index b35e1b0ed232..092e39828e8b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsort2sh/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.js index 8d5cb02c28db..19eadf962da6 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.js @@ -68,7 +68,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.ndarray.js index c54ba82fe103..becb007cd218 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsorthp-by/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -68,7 +68,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.js index 41463f30c155..e841929d57fb 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.js @@ -50,7 +50,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.ndarray.js index b0bf12fa633c..096880233899 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsorthp/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -50,7 +50,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.js index bb351e6f2e39..2ccb020a3bfd 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.ndarray.js index 0c2f2b27d6c4..1196d6d4c23e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsortins/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -51,7 +51,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.js b/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.js index 1582f3b950dc..94b0dd84e27a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.js @@ -50,7 +50,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); } diff --git a/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.ndarray.js index 7e49c4a3f8ac..6c9acb81dfe1 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/gsortsh/benchmark/benchmark.rev_sorted_random.ndarray.js @@ -50,7 +50,7 @@ function createBenchmark( iter, len ) { for ( i = 0; i < iter; i++ ) { tmp = []; for ( j = 0; j < len; j++ ) { - tmp.push( iter - j - randu() ); + tmp.push( len - j - randu() ); } x.push( tmp ); }