From 66c410b1ad6054a8e2c26b12e1db72f69a80c91e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 25 Sep 2026 12:45:19 +0000 Subject: [PATCH 1/3] fix: restore FMA tolerance in `stats/base/dists/triangular/skewness` native tests The ULP migration in a592a8dbc dropped the pre-existing native tolerance of 48000.0 * EPS and asserted an exact 0-ULP match, which fails wherever the compiler contracts multiply-add. Restores the tolerance as a ULP bound and reinstates the explanatory note, mirroring the same fix applied to the sibling `triangular/stdev` package in e737e9002. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PJX9DxC6P4ofZJ5piFtXzb --- .../stats/base/dists/triangular/skewness/test/test.native.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/test/test.native.js index 87b7cbf6ede3..9018ca14e2dc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/test/test.native.js @@ -93,7 +93,9 @@ tape( 'the function returns the skewness of a triangular distribution', opts, fu c = data.c; for ( i = 0; i < expected.length; i++ ) { y = skewness( a[ i ], b[ i ], c[ i ] ); - t.strictEqual( isAlmostSameValue( y, expected[ i ], 0 ), true, 'returns expected value' ); + + // Note: large tolerance needed due to FMA (fused multiply-add) operations. With CFLAGS="-ffp-contract=off", the tolerance can be 0 ULPs. + t.strictEqual( isAlmostSameValue( y, expected[ i ], 96000 ), true, 'returns expected value' ); } t.end(); }); From fbf568ba842c0681eaafe49795275a0caeaa7f05 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 25 Sep 2026 12:45:24 +0000 Subject: [PATCH 2/3] docs: fix precision in `fft/base/fftpack/float32/rfftf` JSDoc comment The `radfg` summary described a double-precision sequence in a single-precision package. Matches the wording used by the radf2-radf5 siblings in the same package. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PJX9DxC6P4ofZJ5piFtXzb --- .../@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js index dfb86ca4adf8..947d7b8e8515 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js @@ -319,7 +319,7 @@ function fptr( ik, j, ML, stride, offset ) { // MAIN // /** -* Performs one general radix stage within a forward Fourier transform for a double-precision floating-point real-valued sequence. +* Performs one general radix stage within a forward Fourier transform for a real-valued single-precision floating-point sequence. * * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed From 55e5079ea97d3da81c37c3197541493bf563fd78 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 25 Sep 2026 19:10:50 -0700 Subject: [PATCH 3/3] Discard changes to lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js --- .../@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js index 947d7b8e8515..dfb86ca4adf8 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float32/rfftf/lib/radfg.js @@ -319,7 +319,7 @@ function fptr( ik, j, ML, stride, offset ) { // MAIN // /** -* Performs one general radix stage within a forward Fourier transform for a real-valued single-precision floating-point sequence. +* Performs one general radix stage within a forward Fourier transform for a double-precision floating-point real-valued sequence. * * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed