function incrgmean() {
	var sum;
	var N;
	var v;

	sum = 0.0;
	N = 0;
	v = 1;

	return accumulator;

	/**
	* If provided a value, the accumulator function returns an updated geometric mean. If not provided a value, the accumulator function returns the current geometric mean.
	*
	* @private
	* @param {number} [x] - new value
	* @returns {(number|null)} geometric mean or null
	*/
	function accumulator( x ) {
		if ( arguments.length === 0 ) {
			if ( N === 0 ) {
				return null;
			}
			return v;
		}
		N += 1;
		sum += ln( x );
		v = exp( sum/N );
		return v;
	}
}
Returns an accumulator function which incrementally computes a geometric mean.

@returns {Function} accumulator function

@example
var accumulator = incrgmean();

var v = accumulator();
// returns null

v = accumulator( 2.0 );
// returns 2.0

v = accumulator( 5.0 );
// returns ~3.16

v = accumulator();
// returns ~3.16