time-to-botec/squiggle/node_modules/@stdlib/stats/iter/cumeanabs2
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00
..
docs feat: add the node modules 2022-12-03 12:44:49 +00:00
lib feat: add the node modules 2022-12-03 12:44:49 +00:00
package.json feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md feat: add the node modules 2022-12-03 12:44:49 +00:00

itercumeanabs2

Create an iterator which iteratively computes a cumulative arithmetic mean of squared absolute values.

The cumulative arithmetic mean of squared absolute values is defined as

Equation for the cumulative arithmetic mean of squared absolute values.

Usage

var itercumeanabs2 = require( '@stdlib/stats/iter/cumeanabs2' );

itercumeanabs2( iterator )

Returns an iterator which iteratively computes a cumulative arithmetic mean of squared absolute values.

var array2iterator = require( '@stdlib/array/to-iterator' );

var arr = array2iterator( [ 2.0, 1.0, 3.0, -7.0, -5.0 ] );
var it = itercumeanabs2( arr );

var m = it.next().value;
// returns 4.0

m = it.next().value;
// returns 2.5

m = it.next().value;
// returns ~4.67

m = it.next().value;
// returns 15.75

m = it.next().value;
// returns 17.6

Notes

  • If an iterated value is non-numeric (including NaN), the function returns NaN for all future iterations. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.

Examples

var runif = require( '@stdlib/random/iter/uniform' );
var itercumeanabs2 = require( '@stdlib/stats/iter/cumeanabs2' );

// Create an iterator for generating uniformly distributed pseudorandom numbers:
var rand = runif( -10.0, 10.0, {
    'seed': 1234,
    'iter': 100
});

// Create an iterator for iteratively computing a cumulative mean of squared absolute values:
var it = itercumeanabs2( rand );

// Perform manual iteration...
var v;
while ( true ) {
    v = it.next();
    if ( typeof v.value === 'number' ) {
        console.log( 'meanabs2: %d', v.value );
    }
    if ( v.done ) {
        break;
    }
}