docs: void combine(final MomentStatistics b) {
  		requireNonNull(b);
  
  		final double m2 = _m2.value();
  		final double m3 = _m3.value();
  
  		final double pn = _n;
  		final double n = _n + b._n;
  		final double nn = n*n;
  
  		final double d = b._m1.value() - _m1.value();
  		final double dd = d*d;
  
  		_n += b._n;
  
  		_m1.add(d*b._n/n);
  
  		_m2.add(b._m2).add(dd*pn*b._n/n);
  
  		_m3.add(b._m3)
  			.add(dd*d*(pn*b._n*(pn - b._n)/nn))
  			.add(3.0*d*(pn*b._m2.value() - b._n*m2)/n);
  
  		final double bnbn = (double)b._n*(double)b._n;
  
  		_m4.add(b._m4)
  			.add(dd*dd*(pn*b._n*(pn*pn - pn*b._n + bnbn)/(nn*n)))
  			.add(6.0*dd*(pn*pn*b._m2.value() + bnbn*m2)/nn)
  			.add(4.0*d*(pn*b._m3.value() - b._n*m3)/n);
  	}