From 985872769c090e8bc255fc310ac78192e6912598 Mon Sep 17 00:00:00 2001 From: headlessNode Date: Wed, 3 Sep 2025 23:22:05 +0500 Subject: [PATCH] fix: update `fromIndex` handling in `blas/ext/base/ndarray/glast-index-of` --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../ext/base/ndarray/glast-index-of/README.md | 6 +++--- .../glast-index-of/benchmark/benchmark.js | 2 +- .../glast-index-of/docs/types/index.d.ts | 2 +- .../ndarray/glast-index-of/examples/index.js | 2 +- .../base/ndarray/glast-index-of/lib/index.js | 2 +- .../base/ndarray/glast-index-of/lib/main.js | 19 ++++--------------- .../base/ndarray/glast-index-of/test/test.js | 12 ++++++------ 7 files changed, 17 insertions(+), 28 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/README.md b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/README.md index d5f548c77cc6..15b89f48f70a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/README.md @@ -51,7 +51,7 @@ var searchElement = scalar2ndarray( 2.0, { 'dtype': 'generic' }); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( 3, { 'dtype': 'generic' }); @@ -80,7 +80,7 @@ var searchElement = scalar2ndarray( 10.0, { 'dtype': 'generic' }); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( 3, { 'dtype': 'generic' }); @@ -127,7 +127,7 @@ var searchElement = scalar2ndarray( 80.0, { }); console.log( 'Search Element:', ndarraylike2scalar( searchElement ) ); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( -1, { 'dtype': 'generic' }); console.log( 'From Index:', ndarraylike2scalar( fromIndex ) ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/benchmark/benchmark.js index 8fc7695c60aa..c7d4bc18512d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/benchmark/benchmark.js @@ -58,7 +58,7 @@ function createBenchmark( len ) { searchElement = scalar2ndarray( -10.0, { 'dtype': options.dtype }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( -1, { 'dtype': 'generic' }); diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/docs/types/index.d.ts index f8eecb1ad1ab..aa4e4920e5f2 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/docs/types/index.d.ts @@ -40,7 +40,7 @@ import { typedndarray } from '@stdlib/types/ndarray'; * 'dtype': 'generic' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/examples/index.js index 5dd8440cf3e4..0639bd3335a4 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/examples/index.js @@ -36,7 +36,7 @@ var searchElement = scalar2ndarray( 80.0, { }); console.log( 'Search Element:', ndarraylike2scalar( searchElement ) ); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( -1, { 'dtype': 'generic' }); console.log( 'From Index:', ndarraylike2scalar( fromIndex ) ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/index.js index 3c59da6ed0fa..9c09774db034 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/index.js @@ -35,7 +35,7 @@ * 'dtype': 'generic' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/main.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/main.js index 10d60b66bdf9..38439d9eccbc 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/main.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/lib/main.js @@ -47,7 +47,7 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' ); * 'dtype': 'generic' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * @@ -57,9 +57,6 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' ); function glastIndexOf( arrays ) { var searchElement; var fromIndex; - var stride; - var offset; - var idx; var N; var x; @@ -71,20 +68,12 @@ function glastIndexOf( arrays ) { if ( fromIndex < 0 ) { fromIndex += N; if ( fromIndex < 0 ) { - fromIndex = 0; + return -1; } } else if ( fromIndex >= N ) { - return -1; + fromIndex = N - 1; } - N -= fromIndex; - stride = getStride( x, 0 ); - offset = getOffset( x ) + ( stride*fromIndex ); - - idx = strided( N, searchElement, getData( x ), stride, offset ); - if ( idx >= 0 ) { - idx += fromIndex; - } - return idx; + return strided( fromIndex+1, searchElement, getData( x ), getStride( x, 0 ), getOffset( x ) ); // eslint-disable-line max-len } diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/test/test.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/test/test.js index 9cbbec89133b..dd81feead30b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/test/test.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/glast-index-of/test/test.js @@ -63,7 +63,7 @@ tape( 'the function returns the last index of an element which equals a provided searchElement = scalar2ndarray( 1.0, { 'dtype': 'generic' }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( 5, { 'dtype': 'generic' }); actual = glastIndexOf( [ x, searchElement, fromIndex ] ); @@ -72,7 +72,7 @@ tape( 'the function returns the last index of an element which equals a provided searchElement = scalar2ndarray( 2.0, { 'dtype': 'generic' }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( 5, { 'dtype': 'generic' }); actual = glastIndexOf( [ x, searchElement, fromIndex ] ); @@ -113,7 +113,7 @@ tape( 'the function returns the last index of an element which equals a provided 'dtype': 'generic' }); actual = glastIndexOf( [ x, searchElement, fromIndex ] ); - t.strictEqual( actual, 5, 'returns expected value' ); + t.strictEqual( actual, 4, 'returns expected value' ); searchElement = scalar2ndarray( 2.0, { 'dtype': 'generic' @@ -131,12 +131,12 @@ tape( 'the function returns the last index of an element which equals a provided 'dtype': 'generic' }); actual = glastIndexOf( [ x, searchElement, fromIndex ] ); - t.strictEqual( actual, 3, 'returns expected value' ); + t.strictEqual( actual, -1, 'returns expected value' ); t.end(); }); -tape( 'the function returns `-1` if provided a starting search index which is greater than or equal to number of elements in the input ndarray', function test( t ) { +tape( 'the function clamps the provided starting search index if it is greater than or equal to number of elements in the input ndarray', function test( t ) { var searchElement; var fromIndex; var actual; @@ -151,7 +151,7 @@ tape( 'the function returns `-1` if provided a starting search index which is gr }); actual = glastIndexOf( [ x, searchElement, fromIndex ] ); - t.strictEqual( actual, -1, 'returns expected value' ); + t.strictEqual( actual, 3, 'returns expected value' ); t.end(); });