Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
cec843e
feat: add findIndex method to array/fixed-endian-factory
pranav-1720 Nov 24, 2024
40704fb
docs: fix missing license header for `blas/base/cscal-wasm`
aman-095 Nov 21, 2024
cfdb122
build: add label while workflow is running
Planeshifter Nov 21, 2024
77fcc44
build: update condition
Planeshifter Nov 21, 2024
730bbb2
build: add display names
Planeshifter Nov 21, 2024
5ced820
refactor: remove unused header, update benchmarks in `math/base/speci…
gunjjoshi Nov 21, 2024
398d4ec
test: add tests to `blas/ext/base/dnannsumkbn`
saurabhraghuvanshii Nov 21, 2024
fd31d55
refactor: use `stdlib_base_round` instead of builtin in `math/base/sp…
gunjjoshi Nov 21, 2024
40becab
feat: add C `ndarray` API and refactor `blas/ext/base/dnannsum`
headlessNode Nov 21, 2024
57a7009
feat: add `blas/base/cswap-wasm`
aman-095 Nov 21, 2024
7abf2dc
feat: add C `ndarray` implementation for `blas/base/sscal`
aman-095 Nov 21, 2024
5df2a6d
feat: add C `ndarray` API and refactor `blas/ext/base/dnannsumpw`
headlessNode Nov 22, 2024
a904bb9
build: ensure initial reaction job finishes before starting main ones
Planeshifter Nov 22, 2024
9121db4
feat: add `every` method to `array/fixed-endian-factory`
aayush0325 Nov 22, 2024
acb5a78
feat: add `blas/base/ccopy-wasm`
aman-095 Nov 22, 2024
a6c7912
feat: add `blas/base/csrot-wasm`
aman-095 Nov 22, 2024
e18b1df
feat: add `blas/ext/base/dapxsumkbn-wasm`
Snehil-Shah Nov 22, 2024
40b3b35
docs: add talk featuring stdlib
gunjjoshi Nov 23, 2024
b627c0a
build: only include import statements if the respective TS declaratio…
Planeshifter Nov 23, 2024
86938ad
docs: fix return values
kgryte Nov 25, 2024
8d84ee5
docs: fix return values
kgryte Nov 25, 2024
1cad72c
docs: add note
kgryte Nov 25, 2024
5673116
docs: add note
kgryte Nov 25, 2024
630e287
feat: add support for custom keybindings and editor actions in the REPL
Snehil-Shah Nov 23, 2024
c1efd3e
docs: update descriptions of the function and its parameters in `blas…
headlessNode Nov 23, 2024
e2655d1
refactor: update `stride` handling and function documentation for `bl…
headlessNode Nov 23, 2024
07be6d7
refactor: replace built-in with `stdlib_base_atan2` in `math/base/spe…
gunjjoshi Nov 23, 2024
efd3c59
docs: use correct image link for the talk
gunjjoshi Nov 23, 2024
8c6eb3a
feat: add C `ndarray` API and refactor `blas/ext/base/dsapxsum`
headlessNode Nov 23, 2024
cebe4ce
feat: update error databases
stdlib-bot Nov 24, 2024
16b6136
docs: update list of contributors
stdlib-bot Nov 24, 2024
74f5ec1
style: minor clean-up
Planeshifter Nov 23, 2024
20962d4
build: create sub-issues upon encountering C lint errors
Planeshifter Nov 24, 2024
ba0ab9d
docs: update REPL namespace documentation
stdlib-bot Nov 24, 2024
6773aa0
feat: update namespace TypeScript declarations
stdlib-bot Nov 24, 2024
2864b3c
docs: fix C lint errors
Neerajpathak07 Nov 24, 2024
3958e0e
docs: remove stray character in `blas/ext/base/dapx` documentation
headlessNode Nov 24, 2024
a95ef3c
chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
8bef1ac
chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
4473fa9
chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
be364dc
chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
6cd5f5f
feat: add C `ndarray` API and refactor `blas/ext/base/dsnansumors`
headlessNode Nov 24, 2024
3a8f260
revert: chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
7475f25
revert: chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
47a4873
revert: chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
e36a54f
revert: chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
4b04fe9
chore: use correct Makefile
Planeshifter Nov 24, 2024
ccd629b
chore: move stdlib benchmarks into native sub-directories
Planeshifter Nov 24, 2024
596cb09
chore: update to modern benchmark Makefile
Planeshifter Nov 24, 2024
08e055a
feat: add `array/base/mskbinary4d`
AbhijitRaut04 Nov 25, 2024
90394df
feat: add `array/base/mskbinary5d`
AbhijitRaut04 Nov 25, 2024
517bb74
feat: add `array/base/mskunary5d`
Vinit-Pandit Nov 25, 2024
55263fa
docs: update list of contributors
stdlib-bot Nov 25, 2024
748cd0e
docs: update namespace table of contents
stdlib-bot Nov 25, 2024
c80061b
docs: update REPL namespace documentation
stdlib-bot Nov 25, 2024
9a8206b
fix: extract the scalar constant as a float in `blas/ext/base/dsapxsu…
headlessNode Nov 25, 2024
73e2edc
fix: extract the scalar constant as a float in `blas/ext/base/dsapxsum`
headlessNode Nov 25, 2024
5f2c8aa
refactor: update `offset` handling and function documentation for `bl…
headlessNode Nov 25, 2024
20d315b
feat: add `array/base/braodcasted-ternary3d`
Vinit-Pandit Nov 25, 2024
d648fa5
feat: add `array/base/mskunary4d`
AbhijitRaut04 Nov 25, 2024
3ae887b
style: made minor changes in array/fixed-endian-factoy
pranav-1720 Nov 25, 2024
3e505ad
feat: add `every` method to `array/fixed-endian-factory`
aayush0325 Nov 22, 2024
532bcdd
Merge branch 'temp' into find_index
pranav-1720 Nov 27, 2024
8a53325
feat: add findIndex method to array/fixed-endian-factory
pranav-1720 Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions lib/node_modules/@stdlib/array/fixed-endian-factory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,61 @@ var count = context.count;
// returns 3
```

<a name="method-find-index"></a>

#### TypedArrayFE.prototype.findIndex( predicate\[, thisArg] )

Returns the index of the first element in a typed array for which a predicate function returns a truthy value.

```javascript
function predicate( v ) {
return ( v > 2.0 );
}

var Float64ArrayFE = fixedEndianFactory( 'float64' );

var arr = new Float64ArrayFE( 'little-endian', 3 );

arr.set( 1.5, 0 );
arr.set( 2.5, 1 );
arr.set( 3.5, 2 );

var idx = arr.findIndex( predicate );
// returns 1
```

The `predicate` function is provided three arguments:

- **value**: current array element.
- **index**: current array element index.
- **arr**: the array on which this method was called.

To set the function execution context, provide a `thisArg`.

```javascript
function predicate( v, i ) {
this.count += 1;
return ( v === 2.0 );
}

var Float64ArrayFE = fixedEndianFactory( 'float64' );

var arr = new Float64ArrayFE( 'little-endian', 3 );

var context = {
'count': 0
};

arr.set( 1.0, 0 );
arr.set( 2.0, 1 );
arr.set( 3.0, 2 );

arr.findIndex( predicate, context );

var count = context.count;
// returns 2
```

<a name="method-for-each"></a>

#### TypedArrayFE.prototype.forEach( callbackFn\[, thisArg] )
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2024 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

// MODULES //

var bench = require( '@stdlib/bench' );
var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
var pkg = require( './../package.json' ).name;
var factory = require( './../lib' );


// MAIN //

bench( pkg+':findIndex', function benchmark( b ) {
var ctor;
var arr;
var idx;
var i;

ctor = factory( 'float64' );
arr = new ctor( 'little-endian', [ 1.0, 2.0, 3.0, 4.0 ] );
idx = arr.findIndex( predicate );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
idx = arr.findIndex( predicate );
if ( typeof idx !== 'number' ) {
b.fail( 'should return an integer' );
}
}
b.toc();
if ( !isInteger( idx ) ) {
b.fail( 'should return an integer' );
}
b.pass( 'benchmark finished' );
b.end();

function predicate( v ) {
return ( v === 3.0 );
}
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2024 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

// MODULES //

var bench = require( '@stdlib/bench' );
var pow = require( '@stdlib/math/base/special/pow' );
var zeroTo = require( '@stdlib/array/zero-to' );
var isnan = require( '@stdlib/math/base/assert/is-nan' );
var pkg = require( './../package.json' ).name;
var factory = require( './../lib' );


// VARIABLES //

var Float64ArrayFE = factory( 'float64' );


// FUNCTIONS //

/**
* Creates a benchmark function.
*
* @private
* @param {PositiveInteger} len - array length
* @returns {Function} benchmark function
*/
function createBenchmark( len ) {
var arr = new Float64ArrayFE( 'little-endian', zeroTo( len ) );
return benchmark;

/**
* Benchmark function.
*
* @private
* @param {Benchmark} b - benchmark instance
*/
function benchmark( b ) {
var idx;
var i;

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
idx = arr.findIndex( callback );
if ( typeof idx !== 'number' ) {
b.fail( 'should return an integer' );
}
}
b.toc();
if ( arr.length !== len ) {
b.fail( 'should not change an array length' );
}
b.pass( 'benchmark finished' );
b.end();

function callback( value ) {
if ( isnan( value ) ) {
throw new Error( 'something went wrong' );
}
}
}
}


// MAIN //

/**
* Main execution sequence.
*
* @private
*/
function main() {
var len;
var min;
var max;
var f;
var i;

min = 1; // 10^min
max = 6; // 10^max

for ( i = min; i <= max; i++ ) {
len = pow( 10, i );
f = createBenchmark( len );
bench( pkg+':findIndex:len='+len, f );
}
}

main();
32 changes: 32 additions & 0 deletions lib/node_modules/@stdlib/array/fixed-endian-factory/lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,38 @@ function factory( dtype ) { // eslint-disable-line max-lines-per-function, stdli
return true;
});

/**
* Returns the index of the first element in an array for which a predicate function returns a truthy value.
*
* @name findIndex
* @memberof TypedArray.prototype
* @type {Function}
* @param {Function} predicate - function to invoke
* @param {*} [thisArg] - function invocation context
* @throws {TypeError} `this` must be a typed array instance
* @throws {TypeError} first argument must be a function
* @returns {integer} index or -1
*/
setReadOnly( TypedArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {
var buf;
var i;

if ( !isTypedArray( this ) ) {
throw new TypeError( format( 'invalid invocation. `this` is not %s %s.', CHAR2ARTICLE[ dtype[0] ], CTOR_NAME ) );
}
if ( !isFunction( predicate ) ) {
throw new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );
}

buf = this._buffer;
for (i = 0; i < this._length; i++) {
if ( predicate.call(thisArg, buf[GETTER](i * BYTES_PER_ELEMENT, this._isLE), i, this ) ) {
return i;
}
}
return -1;
});

/**
* Invokes a function once for each array element.
*
Expand Down
Loading