Skip to content

Commit 41058a4

Browse files
committed
feat: add support for accessor arrays and refactor stats/base/stdevyc
1 parent 142c93f commit 41058a4

File tree

1 file changed

+17
-8
lines changed
  • lib/node_modules/@stdlib/stats/base/stdevyc/lib

1 file changed

+17
-8
lines changed

lib/node_modules/@stdlib/stats/base/stdevyc/lib/ndarray.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020

2121
// MODULES //
2222

23-
var varianceyc = require( '@stdlib/stats/base/varianceyc' ).ndarray;
23+
var isnan = require( '@stdlib/math/base/assert/is-nan' );
24+
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
25+
var accessors = require( './accessors.js' );
2426
var sqrt = require( '@stdlib/math/base/special/sqrt' );
27+
var varianceyc = require( '@stdlib/stats/base/varianceyc' ).ndarray;
2528

2629

2730
// MAIN //
@@ -41,19 +44,25 @@ var sqrt = require( '@stdlib/math/base/special/sqrt' );
4144
* @returns {number} standard deviation
4245
*
4346
* @example
44-
* var floor = require( '@stdlib/math/base/special/floor' );
47+
* var x = [ 1.0, -2.0, 2.0 ];
4548
*
46-
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ];
47-
*
48-
* var v = stdevyc( 4, 1, x, 2, 1 );
49-
* // returns 2.5
49+
* var v = stdevyc( x.length, 1, x, 1, 0 );
50+
* // returns ~2.0817
5051
*/
5152
function stdevyc( N, correction, x, strideX, offsetX ) {
52-
return sqrt( varianceyc( N, correction, x, strideX, offsetX ) );
53+
var o;
54+
55+
if ( N <= 0 ) {
56+
return NaN;
57+
}
58+
o = arraylike2object( x );
59+
if ( o.accessorProtocol ) {
60+
return accessors( N, correction, o, strideX, offsetX );
61+
}
62+
return sqrt( varianceyc( N, correction, x, strideX, offsetX ) );
5363
}
5464

5565

56-
5766
// EXPORTS //
5867

5968
module.exports = stdevyc;

0 commit comments

Comments
 (0)