Skip to content

Commit 04c23eb

Browse files
authored
Update accessors.js
Signed-off-by: Kaushikgtm <[email protected]>
1 parent cf6abb6 commit 04c23eb

File tree

1 file changed

+42
-50
lines changed
  • lib/node_modules/@stdlib/stats/base/nanmskmin/lib

1 file changed

+42
-50
lines changed

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

Lines changed: 42 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@
2020

2121
// MODULES //
2222

23-
var isnan = require( '@stdlib/math/base/assert/is-nan' );
24-
var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' );
25-
23+
var isnan = require('@stdlib/math/base/assert/is-nan');
24+
var isNegativeZero = require('@stdlib/math/base/assert/is-negative-zero');
2625

2726
// MAIN //
2827

2928
/**
30-
* Computes the minimum value of a strided array according to a mask
29+
* Computes the minimum value of a strided array according to a mask.
3130
*
3231
* @private
3332
* @param {PositiveInteger} N - number of indexed elements
@@ -41,17 +40,16 @@ var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' );
4140
* @param {Array<Function>} mask.accessors - mask element accessors
4241
* @param {integer} strideMask - stride length for `mask`
4342
* @param {NonNegativeInteger} offsetMask - starting index for `mask`
44-
* @returns {Object} output minimum value
45-
/*
46-
* @example
47-
48-
* var floor = require( '@stdlib/math/base/special/floor' );
43+
* @returns {number} Minimum value according to mask.
44+
*
45+
* @example
46+
* var floor = require('@stdlib/math/base/special/floor');
4947
*
5048
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, -5.0, -6.0 ];
5149
* var mask = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 ];
52-
* var N = floor( x.length / 2 );
50+
* var N = floor(x.length / 2);
5351
*
54-
* var v = mskmax( 5, arraylike2object( toAccessorArray( x ) ), 2, 1, arraylike2object( toAccessorArray( mask ) ), 2, 1 );
52+
* var v = nanmskmin(5, arraylike2object(toAccessorArray(x)), 2, 1, arraylike2object(toAccessorArray(mask)), 2, 1);
5553
* // returns -2.0
5654
*/
5755
function nanmskmin( N, x, strideX, offsetX, mask, strideMask, offsetMask ) {
@@ -66,65 +64,59 @@ function nanmskmin( N, x, strideX, offsetX, mask, strideMask, offsetMask ) {
6664
var i;
6765

6866
// Cache references to array data:
69-
7067
xbuf = x.data;
7168
mbuf = mask.data;
7269

7370
// Cache references to element accessors:
74-
7571
xget = x.accessors[ 0 ];
7672
mget = mask.accessors[ 0 ];
7773

7874
if ( N <= 0 ) {
7975
return NaN;
8076
}
81-
77+
8278
ix = offsetX;
8379
im = offsetMask;
84-
for (i = 0; i < N; i++) {
85-
if( mget( mbuf, im ) === 0){
80+
81+
for ( i = 0; i < N; i++ ) {
82+
if ( mget(mbuf, im) === 0 ) {
8683
break;
8784
}
88-
8985
ix += strideX;
9086
im += strideMask;
91-
}
92-
if ( i === N ) {
93-
return NaN
87+
}
88+
89+
if ( i === N ) {
90+
return NaN;
91+
}
92+
93+
min = xget(xbuf, ix);
94+
95+
if ( isnan(min) ) {
96+
return NaN;
97+
}
98+
99+
for ( i = i + 1; i < N; i++ ) {
100+
ix += strideX;
101+
im += strideMask;
102+
103+
if ( mget(mbuf, im) !== 0 ) {
104+
continue;
94105
}
95-
96-
min = xget( xbuf, ix );
97-
98-
if ( isnan( min ) ) {
99-
return NaN;
106+
107+
v = xget(xbuf, ix);
108+
109+
if ( isnan(v) ) {
110+
return v;
100111
}
101-
102-
i+1;
103-
104-
for ( i; i<N; i++ ) {
105-
ix += strideX;
106-
im += strideMask;
107-
if ( mget( mbuf, im ) !==0 ){
108-
continue;
109-
}
110-
111-
v = xget( xbuf, ix );
112-
113-
if ( isnan( v ) ) {
114-
115-
return v;
116-
}
117-
118-
if ( v < min || ( v === min && isNegativeZero( v ) ) ) {
119-
120-
min = v;
121-
}
122-
112+
113+
if ( v < min || ( v === min && isNegativeZero(v) ) ) {
114+
min = v;
123115
}
124-
return min;
116+
}
117+
return min;
125118
}
126119

127-
//Exports
128-
120+
// EXPORTS //
129121

130122
module.exports = nanmskmin;

0 commit comments

Comments
 (0)