docs: @Override
    public void put(double val) {
      if(this.n == 0) {
        n = 1.;
        min = max = sum = val;
        m2 = m3 = m4 = 0;
        return;
      }
      final double nn = this.n + 1.0;
      final double deltan = val * n - sum;
      final double delta_nn = deltan / (n * nn);
      final double delta_nn2 = delta_nn * delta_nn;
      final double inc = deltan * delta_nn;
  
      // Update values:
      m4 += inc * delta_nn2 * (nn * (nn - 3.) + 3.) + 6. * delta_nn2 * m2 - 4. * delta_nn * m3;
      m3 += inc * delta_nn * (nn - 2) - 3. * delta_nn * m2;
      m2 += inc;
      sum += val;
      n = nn;
  
      min = Math.min(min, val);
      max = Math.max(max, val);
    }