# incrstdev > Compute a [corrected sample standard deviation][sample-stdev] incrementally.
The [corrected sample standard deviation][sample-stdev] is defined as
Equation for the corrected sample standard deviation.
## Usage ```javascript var incrstdev = require( '@stdlib/stats/incr/stdev' ); ``` #### incrstdev( \[mean] ) Returns an accumulator `function` which incrementally computes a [corrected sample standard deviation][sample-stdev]. ```javascript var accumulator = incrstdev(); ``` If the mean is already known, provide a `mean` argument. ```javascript var accumulator = incrstdev( 3.0 ); ``` #### accumulator( \[x] ) If provided an input value `x`, the accumulator function returns an updated [corrected sample standard deviation][sample-stdev]. If not provided an input value `x`, the accumulator function returns the current [corrected sample standard deviation][sample-stdev]. ```javascript var accumulator = incrstdev(); var s = accumulator( 2.0 ); // returns 0.0 s = accumulator( 1.0 ); // => sqrt(((2-1.5)^2+(1-1.5)^2) / (2-1)) // returns ~0.7071 s = accumulator( 3.0 ); // => sqrt(((2-2)^2+(1-2)^2+(3-2)^2) / (3-1)) // returns 1.0 s = accumulator(); // returns 1.0 ```
## Notes - Input values are **not** type checked. If provided `NaN` or a value which, when used in computations, results in `NaN`, the accumulated value is `NaN` for **all** future invocations. If non-numeric inputs are possible, you are advised to type check and handle accordingly **before** passing the value to the accumulator function.
## Examples ```javascript var randu = require( '@stdlib/random/base/randu' ); var incrstdev = require( '@stdlib/stats/incr/stdev' ); var accumulator; var v; var i; // Initialize an accumulator: accumulator = incrstdev(); // For each simulated datum, update the sample standard deviation... for ( i = 0; i < 100; i++ ) { v = randu() * 100.0; accumulator( v ); } console.log( accumulator() ); ```