diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/README.md b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/README.md
index ad2fc047f81a..69d12f509453 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/README.md
@@ -42,25 +42,38 @@ Returns the index of the last falsy element in a one-dimensional double-precisio
```javascript
var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var x = new Float64Vector( [ 1.0, 0.0, 3.0, 0.0 ] );
-var idx = dlastIndexOfFalsy( [ x ] );
+var fromIndex = scalar2ndarray( 3, {
+ 'dtype': 'generic'
+});
+
+var idx = dlastIndexOfFalsy( [ 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 falsy element, the function returns `-1`.
```javascript
var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var x = new Float64Vector( [ 1.0, 2.0, 3.0, 4.0 ] );
-var idx = dlastIndexOfFalsy( [ x ] );
+var fromIndex = scalar2ndarray( 3, {
+ 'dtype': 'generic'
+});
+
+var idx = dlastIndexOfFalsy( [ x, fromIndex ] );
// returns -1
```
@@ -73,6 +86,7 @@ var idx = dlastIndexOfFalsy( [ x ] );
## Notes
- The function 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 = dlastIndexOfFalsy( [ x ] );
```javascript
var bernoulli = require( '@stdlib/random/bernoulli' );
+var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var dlastIndexOfFalsy = require( '@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy' );
@@ -96,7 +111,11 @@ var opts = {
var x = bernoulli( [ 10 ], 0.7, opts );
console.log( ndarray2array( x ) );
-var idx = dlastIndexOfFalsy( [ x ] );
+var fromIndex = scalar2ndarray( 9, {
+ 'dtype': 'generic'
+});
+
+var idx = dlastIndexOfFalsy( [ x, fromIndex ] );
console.log( idx );
```
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/benchmark/benchmark.js
index 7542aa0526b8..cc3f008479ec 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/benchmark/benchmark.js
@@ -22,6 +22,7 @@
var bench = require( '@stdlib/bench' );
var ones = require( '@stdlib/ndarray/ones' );
+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 = ones( [ len ], options );
+ var fromIndex;
+ var x;
+
+ x = ones( [ 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 = dlastIndexOfFalsy( [ x ] );
+ out = dlastIndexOfFalsy( [ x, fromIndex ] );
if ( out !== out ) {
b.fail( 'should return an integer' );
}
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/repl.txt
index 87a83ebd1ad5..e44d3e7f0f8f 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/repl.txt
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/repl.txt
@@ -3,6 +3,10 @@
Returns the index of the last falsy element in a one-dimensional double-
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 falsy 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/float64}}( [ 1.0, 0.0, 0.0 ] );
- > {{alias}}( [ x ] )
+ > var i = {{alias:@stdlib/ndarray/from-scalar}}( 2, { 'dtype': 'generic' } );
+ > {{alias}}( [ x, i ] )
2
See Also
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/index.d.ts
index 396061d632a0..a0ca0315d6a0 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/index.d.ts
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/index.d.ts
@@ -20,7 +20,7 @@
///
-import { float64ndarray } from '@stdlib/types/ndarray';
+import { float64ndarray, typedndarray } from '@stdlib/types/ndarray';
/**
* Returns the index of the last falsy element in a one-dimensional double-precision floating-point ndarray.
@@ -30,19 +30,25 @@ import { float64ndarray } 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 Float64Vector = require( '@stdlib/ndarray/vector/float64' );
+* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
*
* var x = new Float64Vector( [ 1.0, 0.0, 3.0, 0.0 ] );
*
-* var v = dlastIndexOfFalsy( [ x ] );
+* var fromIndex = scalar2ndarray( 3, {
+* 'dtype': 'generic'
+* });
+*
+* var v = dlastIndexOfFalsy( [ x, fromIndex ] );
* // returns 3
*/
-declare function dlastIndexOfFalsy( arrays: [ float64ndarray ] ): number;
+declare function dlastIndexOfFalsy( arrays: [ float64ndarray, typedndarray ] ): number;
// EXPORTS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/test.ts b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/test.ts
index 958f138efaf4..081a7ce73094 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/docs/types/test.ts
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/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 dlastIndexOfFalsy = require( './index' );
@@ -29,8 +30,11 @@ import dlastIndexOfFalsy = require( './index' );
const x = zeros( [ 10 ], {
'dtype': 'float64'
});
+ const fromIndex = scalar2ndarray( 0, {
+ 'dtype': 'generic'
+ });
- dlastIndexOfFalsy( [ x ] ); // $ExpectType number
+ dlastIndexOfFalsy( [ 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 dlastIndexOfFalsy = require( './index' );
const x = zeros( [ 10 ], {
'dtype': 'float64'
});
+ const fromIndex = scalar2ndarray( 0, {
+ 'dtype': 'generic'
+ });
dlastIndexOfFalsy(); // $ExpectError
- dlastIndexOfFalsy( [ x ], {} ); // $ExpectError
+ dlastIndexOfFalsy( [ x, fromIndex ], {} ); // $ExpectError
}
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/examples/index.js
index a598f2bc83a3..279539297508 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/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 dlastIndexOfFalsy = require( './../lib' );
@@ -29,5 +30,9 @@ var opts = {
var x = bernoulli( [ 10 ], 0.7, opts );
console.log( ndarray2array( x ) );
-var idx = dlastIndexOfFalsy( [ x ] );
+var fromIndex = scalar2ndarray( 9, {
+ 'dtype': 'generic'
+});
+
+var idx = dlastIndexOfFalsy( [ x, fromIndex ] );
console.log( idx );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/index.js
index f95a158f8808..8840b31f9bc3 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/index.js
@@ -25,11 +25,16 @@
*
* @example
* var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
+* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
* var dlastIndexOfFalsy = require( '@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy' );
*
* var x = new Float64Vector( [ 1.0, 0.0, 3.0, 0.0 ] );
*
-* var v = dlastIndexOfFalsy( [ x ] );
+* var fromIndex = scalar2ndarray( 3, {
+* 'dtype': 'generic'
+* });
+*
+* var v = dlastIndexOfFalsy( [ x, fromIndex ] );
* // returns 3
*/
diff --git a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/main.js b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/main.js
index cb64b9bd4ee2..544badd36a48 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/main.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/ndarray/dlast-index-of-falsy/lib/main.js
@@ -20,10 +20,12 @@
// MODULES //
+var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
var numelDimension = require( '@stdlib/ndarray/base/numel-dimension' );
var getStride = require( '@stdlib/ndarray/base/stride' );
var getOffset = require( '@stdlib/ndarray/base/offset' );
var getData = require( '@stdlib/ndarray/base/data-buffer' );
+var clipIndex = require( '@stdlib/ndarray/base/clip-index' );
var strided = require( '@stdlib/blas/ext/base/dlast-index-of-falsy' ).ndarray;
@@ -37,21 +39,38 @@ var strided = require( '@stdlib/blas/ext/base/dlast-index-of-falsy' ).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