diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/README.md b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/README.md index 781e97739ac3..1ccef4b64aa7 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/README.md @@ -52,7 +52,7 @@ var searchElement = scalar2ndarray( 2.0, { 'dtype': 'float32' }); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( 3, { 'dtype': 'generic' }); @@ -82,7 +82,7 @@ var searchElement = scalar2ndarray( 10.0, { 'dtype': 'float32' }); -var fromIndex = scalar2ndarray( 0, { +var fromIndex = scalar2ndarray( 3, { 'dtype': 'generic' }); @@ -129,7 +129,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/slast-index-of/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/benchmark/benchmark.js index b0ce030a3294..b5d2ca18b48e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/benchmark/benchmark.js @@ -58,7 +58,7 @@ function createBenchmark( len ) { searchElement = scalar2ndarray( -10.0, { 'dtype': 'float32' }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( -1, { 'dtype': 'generic' }); diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/docs/types/index.d.ts index 06b2a20fd68c..03ddd323f31b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/docs/types/index.d.ts @@ -34,14 +34,14 @@ import { float32ndarray, typedndarray } from '@stdlib/types/ndarray'; * var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' ); * var slastIndexOf = require( '@stdlib/blas/ext/base/ndarray/slast-index-of' ); * -* var xbuf = new Float32Array( [ 1.0, 3.0, 4.0, 2.0 ] ); +* var xbuf = new Float32Array( [ 1.0, 2.0, 4.0, 2.0 ] ); * var x = new ndarray( 'float32', xbuf, [ 4 ], [ 1 ], 0, 'row-major' ); * * var searchElement = scalar2ndarray( 2.0, { * 'dtype': 'float32' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/examples/index.js index 88868a4a775b..dedf5b201f65 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-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/slast-index-of/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/index.js index 349fc9ebcdd5..f3b5b810552e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/index.js @@ -29,14 +29,14 @@ * var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' ); * var slastIndexOf = require( '@stdlib/blas/ext/base/ndarray/slast-index-of' ); * -* var xbuf = new Float32Array( [ 1.0, 3.0, 4.0, 2.0 ] ); +* var xbuf = new Float32Array( [ 1.0, 2.0, 4.0, 2.0 ] ); * var x = new ndarray( 'float32', xbuf, [ 4 ], [ 1 ], 0, 'row-major' ); * * var searchElement = scalar2ndarray( 2.0, { * 'dtype': 'float32' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/main.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/main.js index 7cd33391e5ff..041106604ac2 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/main.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/lib/main.js @@ -41,14 +41,14 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' ); * var ndarray = require( '@stdlib/ndarray/base/ctor' ); * var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' ); * -* var xbuf = new Float32Array( [ 1.0, 3.0, 4.0, 2.0 ] ); +* var xbuf = new Float32Array( [ 1.0, 2.0, 4.0, 2.0 ] ); * var x = new ndarray( 'float32', xbuf, [ 4 ], [ 1 ], 0, 'row-major' ); * * var searchElement = scalar2ndarray( 2.0, { * 'dtype': 'float32' * }); * -* var fromIndex = scalar2ndarray( 0, { +* var fromIndex = scalar2ndarray( 3, { * 'dtype': 'generic' * }); * @@ -58,9 +58,6 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' ); function slastIndexOf( arrays ) { var searchElement; var fromIndex; - var stride; - var offset; - var idx; var N; var x; @@ -72,20 +69,12 @@ function slastIndexOf( 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/slast-index-of/test/test.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/test/test.js index 811ac49ffe22..b15478135092 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/test/test.js +++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of/test/test.js @@ -64,7 +64,7 @@ tape( 'the function returns the last index of an element which equals a provided searchElement = scalar2ndarray( 1.0, { 'dtype': 'float32' }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( 5, { 'dtype': 'generic' }); actual = slastIndexOf( [ x, searchElement, fromIndex ] ); @@ -73,7 +73,7 @@ tape( 'the function returns the last index of an element which equals a provided searchElement = scalar2ndarray( 2.0, { 'dtype': 'float32' }); - fromIndex = scalar2ndarray( 0, { + fromIndex = scalar2ndarray( 5, { 'dtype': 'generic' }); actual = slastIndexOf( [ x, searchElement, fromIndex ] ); @@ -114,7 +114,7 @@ tape( 'the function returns the last index of an element which equals a provided 'dtype': 'generic' }); actual = slastIndexOf( [ x, searchElement, fromIndex ] ); - t.strictEqual( actual, 5, 'returns expected value' ); + t.strictEqual( actual, 4, 'returns expected value' ); searchElement = scalar2ndarray( 2.0, { 'dtype': 'float32' @@ -132,12 +132,12 @@ tape( 'the function returns the last index of an element which equals a provided 'dtype': 'generic' }); actual = slastIndexOf( [ 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; @@ -152,7 +152,7 @@ tape( 'the function returns `-1` if provided a starting search index which is gr }); actual = slastIndexOf( [ x, searchElement, fromIndex ] ); - t.strictEqual( actual, -1, 'returns expected value' ); + t.strictEqual( actual, 3, 'returns expected value' ); t.end(); });