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/dcuany/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ dcuany.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_dcuany_ndarray( const CBLAS_INT N, const double *X, const CB

<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/dcuany/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-nan",
"@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-nan",
"@stdlib/strided/base/stride2offset"
]
},
Expand All @@ -72,6 +74,7 @@
"libpath": [],
"dependencies": [
"@stdlib/blas/base/shared",
"@stdlib/math/base/assert/is-nan",
"@stdlib/strided/base/stride2offset"
]
}
Expand Down
3 changes: 2 additions & 1 deletion lib/node_modules/@stdlib/blas/ext/base/dcuany/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/

#include "stdlib/blas/ext/base/dcuany.h"
#include "stdlib/math/base/assert/is_nan.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_dcuany_ndarray)( const CBLAS_INT N, const double
ix = offsetX;
io = offsetOut;
for ( i = 0; i < N; i++ ) {
if ( !flg && X[ ix ] != 0.0 ) {
if ( !flg && X[ ix ] != 0.0 && !stdlib_base_is_nan( X[ ix ] ) ) {
flg = true;
}
Out[ io ] = flg;
Expand Down
22 changes: 22 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.dcuany.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,28 @@
t.end();
});

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

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

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

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

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

t.end();
});

tape( 'the function supports an `x` stride', function test( t ) {
var expected;
var out;
Expand All @@ -130,8 +152,8 @@
var x;

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

Check warning on line 155 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.dcuany.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 156 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.dcuany.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

dcuany( 4, x, 1, out, 2 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,28 @@
t.end();
});

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

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

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

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

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

t.end();
});

tape( 'the function supports an `x` stride', opts, function test( t ) {
var expected;
var out;
Expand All @@ -139,8 +161,8 @@
var x;

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

Check warning on line 164 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.dcuany.native.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 165 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.dcuany.native.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

dcuany( 4, x, 1, out, 2 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );
Expand Down
22 changes: 22 additions & 0 deletions lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.ndarray.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,28 @@
t.end();
});

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

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

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

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

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

t.end();
});

tape( 'the function supports offsets for `x`', function test( t ) {
var expected;
var out;
Expand Down Expand Up @@ -146,8 +168,8 @@
var x;

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

Check warning on line 171 in lib/node_modules/@stdlib/blas/ext/base/dcuany/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 172 in lib/node_modules/@stdlib/blas/ext/base/dcuany/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

dcuany( 4, x, 1, 0, out, 2, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,28 @@
t.end();
});

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

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

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

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

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

t.end();
});

tape( 'the function supports offsets for `x`', opts, function test( t ) {
var expected;
var out;
Expand Down Expand Up @@ -155,8 +177,8 @@
var x;

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

Check warning on line 180 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.ndarray.native.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 181 in lib/node_modules/@stdlib/blas/ext/base/dcuany/test/test.ndarray.native.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

dcuany( 4, x, 1, 0, out, 2, 0 );
t.ok( isEqualBooleanArray( out, expected ), 'returns expected value' );
Expand Down