Skip to content

Commit 748ecec

Browse files
authored
Update nanmskmin.js
Signed-off-by: Kaushikgtm <[email protected]>
1 parent b7cda67 commit 748ecec

File tree

1 file changed

+19
-16
lines changed
  • lib/node_modules/@stdlib/stats/base/nanmskmin/lib

1 file changed

+19
-16
lines changed

lib/node_modules/@stdlib/stats/base/nanmskmin/lib/nanmskmin.js

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -62,40 +62,42 @@ function nanmskmin(N, x, strideX, offsetX, mask, strideMask, offsetMask) {
6262
var om = arraylike2object( mask );
6363

6464
// Use accessor function if needed
65-
if (ox.accessorProtocol || om.accessorProtocol) {
65+
if (ox.accessorProtocol || om.accessorProtocol) {
6666
return accessors(N, ox, strideX, offsetX, om, strideMask, offsetMask);
6767
}
6868

69-
ix = offsetX;
70-
im = offsetMask;
71-
72-
// Find the first unmasked element
69+
if ( strideX < 0 ) {
70+
ix = (1-N) * strideX;
71+
} else {
72+
ix = 0;
73+
}
74+
if ( strideMask < 0 ) {
75+
im = (1-N) * strideMask;
76+
} else {
77+
im = 0;
78+
}
7379
for ( i = 0; i < N; i++ ) {
74-
if ( mask[im] === 0 ) {
80+
v = x[ ix ];
81+
if ( v === v && mask[ im ] === 0 ) {
7582
break;
7683
}
7784
ix += strideX;
7885
im += strideMask;
7986
}
80-
8187
if ( i === N ) {
8288
return NaN;
8389
}
84-
85-
min = x[ ix ];
86-
if ( isnan( min ) ) {
87-
return min;
88-
}
89-
90-
for ( i += 1; i < N; i++ ) {
90+
min = v;
91+
i += 1;
92+
for ( i; i < N; i++ ) {
9193
ix += strideX;
9294
im += strideMask;
93-
if ( mask[ im ] !== 0 ) {
95+
if ( mask[ im ] ) {
9496
continue;
9597
}
9698
v = x[ ix ];
9799
if ( isnan( v ) ) {
98-
return v;
100+
continue;
99101
}
100102
if ( v < min || ( v === min && isNegativeZero( v ) ) ) {
101103
min = v;
@@ -104,6 +106,7 @@ function nanmskmin(N, x, strideX, offsetX, mask, strideMask, offsetMask) {
104106
return min;
105107
}
106108

109+
107110
// EXPORTS //
108111

109112
module.exports = nanmskmin;

0 commit comments

Comments
 (0)