Skip to content

Latest commit

 

History

History
131 lines (81 loc) · 3.72 KB

File metadata and controls

131 lines (81 loc) · 3.72 KB

sdsmeanors

Compute the arithmetic mean of a single-precision floating-point ndarray using ordinary recursive summation with extended accumulation.

The arithmetic mean is defined as

$$\mu = \frac{1}{n} \sum_{i=0}^{n-1} x_i$$

Usage

var sdsmeanors = require( '@stdlib/stats/base/ndarray/sdsmeanors' );

sdsmeanors( arrays )

Computes the arithmetic mean of a single-precision floating-point ndarray using ordinary recursive summation with extended accumulation.

var Float32Array = require( '@stdlib/array/float32' );
var ndarray = require( '@stdlib/ndarray/base/ctor' );

var xbuf = new Float32Array( [ 1.0, 3.0, 4.0, 2.0 ] );
var x = new ndarray( 'float32', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );

var v = sdsmeanors( [ x ] );
// returns 2.5

The function has the following parameters:

  • arrays: array-like object containing a one-dimensional input ndarray.

Notes

  • If provided an empty one-dimensional ndarray, the function returns NaN.
  • Accumulated intermediate values are stored as double-precision floating-point numbers.
  • Ordinary recursive summation (i.e., "simple" summation) is performant, but can incur significant numerical error. If performance is paramount and error tolerated, using ordinary recursive summation to compute the arithmetic mean is acceptable; in all other cases, exercise due caution.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var ndarray = require( '@stdlib/ndarray/base/ctor' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var sdsmeanors = require( '@stdlib/stats/base/ndarray/sdsmeanors' );

var xbuf = discreteUniform( 10, -50, 50, {
    'dtype': 'float32'
});
var x = new ndarray( 'float32', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );
console.log( ndarray2array( x ) );

var v = sdsmeanors( [ x ] );
console.log( v );