Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/scuany/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ scuany.ndarray( 3, x, 2, 2, out, 1, 0 );
## Notes

- If `N <= 0`, both functions return `out` unchanged.
- Both functions explicitly treat `NaN` values as falsy elements.

</section>

Expand Down Expand Up @@ -255,6 +256,10 @@ void stdlib_strided_scuany_ndarray( const CBLAS_INT N, const float *X, const CBL

<section class="notes">

### Notes

- The function explicitly treats `NaN` values as falsy.

</section>

<!-- /.notes -->
Expand Down
3 changes: 3 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/scuany/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"libpath": [],
"dependencies": [
"@stdlib/blas/base/shared",
"@stdlib/math/base/assert/is-nanf",
"@stdlib/strided/base/stride2offset",
"@stdlib/napi/export",
"@stdlib/napi/argv",
Expand All @@ -57,6 +58,7 @@
"libpath": [],
"dependencies": [
"@stdlib/blas/base/shared",
"@stdlib/math/base/assert/is-nanf",
"@stdlib/strided/base/stride2offset"
]
},
Expand All @@ -72,6 +74,7 @@
"libpath": [],
"dependencies": [
"@stdlib/blas/base/shared",
"@stdlib/math/base/assert/is-nanf",
"@stdlib/strided/base/stride2offset"
]
}
Expand Down
3 changes: 2 additions & 1 deletion lib/node_modules/@stdlib/blas/ext/base/scuany/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/

#include "stdlib/blas/ext/base/scuany.h"
#include "stdlib/math/base/assert/is_nanf.h"
#include "stdlib/blas/base/shared.h"
#include "stdlib/strided/base/stride2offset.h"
#include <stdbool.h>
Expand Down Expand Up @@ -60,7 +61,7 @@ void API_SUFFIX(stdlib_strided_scuany_ndarray)( const CBLAS_INT N, const float *
ix = offsetX;
io = offsetOut;
for ( i = 0; i < N; i++ ) {
if ( !flg && X[ ix ] != 0.0f ) {
if ( !flg && X[ ix ] != 0.0f && !stdlib_base_is_nanf( X[ ix ] ) ) {
flg = true;
}
Out[ io ] = flg;
Expand Down
22 changes: 22 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/scuany/test/test.ndarray.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@
var x;

x = new Float32Array( [ 0.0, 0.0, 1.0, 1.0 ] );
out = new BooleanArray( [ false, false, false, false, false, false, false, false ] );

Check warning on line 149 in lib/node_modules/@stdlib/blas/ext/base/scuany/test/test.ndarray.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

This line has a length of 89. Maximum allowed is 80
expected = new BooleanArray( [ false, false, false, false, true, false, true, false ] );

Check warning on line 150 in lib/node_modules/@stdlib/blas/ext/base/scuany/test/test.ndarray.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

This line has a length of 92. Maximum allowed is 80

scuany( 4, x, 1, 0, out, 2, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );
Expand Down Expand Up @@ -184,3 +184,25 @@

t.end();
});

tape( 'the function treats `NaN` as a falsy element', function test( t ) {
var expected;
var out;
var x;

x = new Float32Array( [ NaN, NaN, 1.0, 0.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

scuany( x.length, x, 1, 0, out, 1, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

x = new Float32Array( [ NaN, NaN, NaN, NaN ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, false, false ] );

scuany( x.length, x, 1, 0, out, 1, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -193,3 +193,25 @@ tape( 'the function supports a negative `out` stride', opts, function test( t )

t.end();
});

tape( 'the function treats `NaN` as a falsy element', opts, function test( t ) {
var expected;
var out;
var x;

x = new Float32Array( [ NaN, NaN, 1.0, 0.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

scuany( x.length, x, 1, 0, out, 1, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

x = new Float32Array( [ NaN, NaN, NaN, NaN ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, false, false ] );

scuany( x.length, x, 1, 0, out, 1, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

t.end();
});
22 changes: 22 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/scuany/test/test.scuany.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,25 @@ tape( 'the function supports a negative `out` stride', function test( t ) {

t.end();
});

tape( 'the function treats `NaN` as a falsy element', function test( t ) {
var expected;
var out;
var x;

x = new Float32Array( [ NaN, NaN, 1.0, 0.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

scuany( x.length, x, 1, out, 1 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

x = new Float32Array( [ NaN, NaN, NaN, NaN ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, false, false ] );

scuany( x.length, x, 1, out, 1 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -177,3 +177,25 @@ tape( 'the function supports a negative `out` stride', opts, function test( t )

t.end();
});

tape( 'the function treats `NaN` as a falsy element', opts, function test( t ) {
var expected;
var out;
var x;

x = new Float32Array( [ NaN, NaN, 1.0, 0.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

scuany( x.length, x, 1, out, 1 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

x = new Float32Array( [ NaN, NaN, NaN, NaN ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, false, false ] );

scuany( x.length, x, 1, out, 1 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );

t.end();
});