diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/README.md b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/README.md
index 67e32ae05f14..82ecb9c67b77 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/README.md
@@ -42,25 +42,38 @@ Returns the index of the last truthy element in a one-dimensional single-precisi
```javascript
var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var x = new Float32Vector( [ 0.0, 1.0, 0.0, 2.0 ] );
-var idx = slastIndexOfTruthy( [ x ] );
+var fromIndex = scalar2ndarray( 3, {
+ 'dtype': 'generic'
+});
+
+var idx = slastIndexOfTruthy( [ x, fromIndex ] );
// returns 3
```
The function has the following parameters:
-- **arrays**: array-like object containing a one-dimensional input ndarray.
+- **arrays**: array-like object containing the following ndarrays:
+
+ - a one-dimensional input ndarray.
+ - a zero-dimensional ndarray containing the index from which to begin searching.
If the function is unable to find a truthy element, the function returns `-1`.
```javascript
var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var x = new Float32Vector( [ 0.0, 0.0, 0.0, 0.0 ] );
-var idx = slastIndexOfTruthy( [ x ] );
+var fromIndex = scalar2ndarray( 3, {
+ 'dtype': 'generic'
+});
+
+var idx = slastIndexOfTruthy( [ x, fromIndex ] );
// returns -1
```
@@ -73,6 +86,7 @@ var idx = slastIndexOfTruthy( [ x ] );
## Notes
- The function explicitly treats `NaN` values as falsy.
+- If a specified starting search index is negative, the function resolves the starting search index by counting backward from the last element (where `-1` refers to the last element).
@@ -86,6 +100,7 @@ var idx = slastIndexOfTruthy( [ x ] );
```javascript
var bernoulli = require( '@stdlib/random/bernoulli' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var slastIndexOfTruthy = require( '@stdlib/blas/ext/base/ndarray/slast-index-of-truthy' );
@@ -96,7 +111,11 @@ var opts = {
var x = bernoulli( [ 10 ], 0.7, opts );
console.log( ndarray2array( x ) );
-var idx = slastIndexOfTruthy( [ x ] );
+var fromIndex = scalar2ndarray( 9, {
+ 'dtype': 'generic'
+});
+
+var idx = slastIndexOfTruthy( [ x, fromIndex ] );
console.log( idx );
```
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/benchmark/benchmark.js
index 23f009d58206..10a94ed679ae 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/benchmark/benchmark.js
@@ -22,6 +22,7 @@
var bench = require( '@stdlib/bench' );
var zeros = require( '@stdlib/ndarray/zeros' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
var pow = require( '@stdlib/math/base/special/pow' );
var format = require( '@stdlib/string/format' );
@@ -46,7 +47,13 @@ var options = {
* @returns {Function} benchmark function
*/
function createBenchmark( len ) {
- var x = zeros( [ len ], options );
+ var fromIndex;
+ var x;
+
+ x = zeros( [ len ], options );
+ fromIndex = scalar2ndarray( len - 1, {
+ 'dtype': 'generic'
+ });
return benchmark;
/**
@@ -61,7 +68,7 @@ function createBenchmark( len ) {
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
- out = slastIndexOfTruthy( [ x ] );
+ out = slastIndexOfTruthy( [ x, fromIndex ] );
if ( out !== out ) {
b.fail( 'should return an integer' );
}
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/repl.txt
index 44649ad8867f..846782c37162 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/repl.txt
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/repl.txt
@@ -3,6 +3,10 @@
Returns the index of the last truthy element in a one-dimensional single-
precision floating-point ndarray.
+ If a specified starting search index is negative, the function resolves the
+ starting search index by counting backward from the last element (where `-1`
+ refers to the last element).
+
If unable to find a truthy element, the function returns `-1`.
Parameters
@@ -11,6 +15,8 @@
Array-like object containing the following ndarrays:
- a one-dimensional input ndarray.
+ - a zero-dimensional ndarray containing the index from which to begin
+ searching.
Returns
-------
@@ -20,7 +26,8 @@
Examples
--------
> var x = new {{alias:@stdlib/ndarray/vector/float32}}( [ 0.0, 2.0, 0.0 ] );
- > {{alias}}( [ x ] )
+ > var i = {{alias:@stdlib/ndarray/from-scalar}}( 2, { 'dtype': 'generic' } );
+ > {{alias}}( [ x, i ] )
1
See Also
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/index.d.ts
index 15b24bdb34a5..d414c9257b9c 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/index.d.ts
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/index.d.ts
@@ -20,7 +20,7 @@
///
-import { float32ndarray } from '@stdlib/types/ndarray';
+import { float32ndarray, typedndarray } from '@stdlib/types/ndarray';
/**
* Returns the index of the last truthy element in a one-dimensional single-precision floating-point ndarray.
@@ -30,19 +30,25 @@ import { float32ndarray } from '@stdlib/types/ndarray';
* - The function expects the following ndarrays:
*
* - a one-dimensional input ndarray.
+* - a zero-dimensional ndarray containing the index from which to begin searching.
*
* @param arrays - array-like object containing ndarrays
* @returns index
*
* @example
* var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
+* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
*
* var x = new Float32Vector( [ 0.0, 1.0, 0.0, 2.0 ] );
*
-* var v = slastIndexOfTruthy( [ x ] );
+* var fromIndex = scalar2ndarray( 3, {
+* 'dtype': 'generic'
+* });
+*
+* var v = slastIndexOfTruthy( [ x, fromIndex ] );
* // returns 3
*/
-declare function slastIndexOfTruthy( arrays: [ float32ndarray ] ): number;
+declare function slastIndexOfTruthy( arrays: [ float32ndarray, typedndarray ] ): number;
// EXPORTS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/test.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/test.ts
index 07d4da8c21e9..bd5603670675 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/test.ts
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/docs/types/test.ts
@@ -19,6 +19,7 @@
/* eslint-disable space-in-parens */
import zeros = require( '@stdlib/ndarray/zeros' );
+import scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
import slastIndexOfTruthy = require( './index' );
@@ -29,8 +30,11 @@ import slastIndexOfTruthy = require( './index' );
const x = zeros( [ 10 ], {
'dtype': 'float32'
});
+ const fromIndex = scalar2ndarray( 0, {
+ 'dtype': 'generic'
+ });
- slastIndexOfTruthy( [ x ] ); // $ExpectType number
+ slastIndexOfTruthy( [ x, fromIndex ] ); // $ExpectType number
}
// The compiler throws an error if the function is provided a first argument which is not an array of ndarrays...
@@ -51,7 +55,10 @@ import slastIndexOfTruthy = require( './index' );
const x = zeros( [ 10 ], {
'dtype': 'float32'
});
+ const fromIndex = scalar2ndarray( 0, {
+ 'dtype': 'generic'
+ });
slastIndexOfTruthy(); // $ExpectError
- slastIndexOfTruthy( [ x ], {} ); // $ExpectError
+ slastIndexOfTruthy( [ x, fromIndex ], {} ); // $ExpectError
}
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/examples/index.js
index b6907286e8cf..531dc99e9eb9 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/examples/index.js
@@ -19,6 +19,7 @@
'use strict';
var bernoulli = require( '@stdlib/random/bernoulli' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var slastIndexOfTruthy = require( './../lib' );
@@ -29,5 +30,9 @@ var opts = {
var x = bernoulli( [ 10 ], 0.7, opts );
console.log( ndarray2array( x ) );
-var idx = slastIndexOfTruthy( [ x ] );
+var fromIndex = scalar2ndarray( 9, {
+ 'dtype': 'generic'
+});
+
+var idx = slastIndexOfTruthy( [ x, fromIndex ] );
console.log( idx );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/index.js
index eb51ba855b3f..d4ea51a1437b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/index.js
@@ -25,11 +25,16 @@
*
* @example
* var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
+* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
* var slastIndexOfTruthy = require( '@stdlib/blas/ext/base/ndarray/slast-index-of-truthy' );
*
* var x = new Float32Vector( [ 0.0, 1.0, 0.0, 2.0 ] );
*
-* var v = slastIndexOfTruthy( [ x ] );
+* var fromIndex = scalar2ndarray( 3, {
+* 'dtype': 'generic'
+* });
+*
+* var v = slastIndexOfTruthy( [ x, fromIndex ] );
* // returns 3
*/
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/main.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/main.js
index 05729220300d..843fe9a4de15 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/main.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/slast-index-of-truthy/lib/main.js
@@ -20,7 +20,9 @@
// MODULES //
+var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
var numelDimension = require( '@stdlib/ndarray/base/numel-dimension' );
+var clipUpperIndex = require( '@stdlib/ndarray/base/clip-upper-index' );
var getStride = require( '@stdlib/ndarray/base/stride' );
var getOffset = require( '@stdlib/ndarray/base/offset' );
var getData = require( '@stdlib/ndarray/base/data-buffer' );
@@ -37,21 +39,38 @@ var strided = require( '@stdlib/blas/ext/base/slast-index-of-truthy' ).ndarray;
* - The function expects the following ndarrays:
*
* - a one-dimensional input ndarray.
+* - a zero-dimensional ndarray containing the index from which to begin searching.
*
* @param {ArrayLikeObject