Skip to content
Open
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/dcusome/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ dcusome.ndarray( 3, 1, 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 @@ -258,6 +259,10 @@ void stdlib_strided_dcusome_ndarray( const CBLAS_INT N, const CBLAS_INT k, const

<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/dcusome/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/dcusome/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/

#include "stdlib/blas/ext/base/dcusome.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 @@ -64,7 +65,7 @@ void API_SUFFIX(stdlib_strided_dcusome_ndarray)( const CBLAS_INT N, const CBLAS_
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 ] ) ) {
cnt -= 1;
if ( cnt <= 0 ) {
flg = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,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 133 in lib/node_modules/@stdlib/blas/ext/base/dcusome/test/test.dcusome.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, false, false, true, false ] );

Check warning on line 134 in lib/node_modules/@stdlib/blas/ext/base/dcusome/test/test.dcusome.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

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

t.end();
});

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

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

dcusome( x.length, 2, 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 ] );

dcusome( x.length, 1, 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 @@ -139,8 +139,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 142 in lib/node_modules/@stdlib/blas/ext/base/dcusome/test/test.dcusome.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, false, false, true, false ] );

Check warning on line 143 in lib/node_modules/@stdlib/blas/ext/base/dcusome/test/test.dcusome.native.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

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

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, 1.0, 1.0, 1.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

dcusome( x.length, 2, 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 ] );

dcusome( x.length, 1, 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 @@ -146,8 +146,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 149 in lib/node_modules/@stdlib/blas/ext/base/dcusome/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, false, false, true, false ] );

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

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

dcusome( 4, 2, 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 Float64Array( [ NaN, 1.0, 1.0, 1.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

dcusome( x.length, 2, 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 ] );

dcusome( x.length, 1, 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 @@ -155,8 +155,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 158 in lib/node_modules/@stdlib/blas/ext/base/dcusome/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, false, false, true, false ] );

Check warning on line 159 in lib/node_modules/@stdlib/blas/ext/base/dcusome/test/test.ndarray.native.js

View workflow job for this annotation

GitHub Actions / Lint Changed Files

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

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

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, 1.0, 1.0, 1.0 ] );
out = new BooleanArray( 4 );
expected = new BooleanArray( [ false, false, true, true ] );

dcusome( x.length, 2, 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 ] );

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

t.end();
});