def METHOD_NAME(batch_size, sig_corr):
    def next_pow_two(n):
        i = 1
        while i < n:
            i = i << 1
        return i
    def autocorr_func_1d(x, norm=True):
        x = np.atleast_1d(x)
        if len(x.shape) != 1:
            raise ValueError("invalid dimensions for 1D autocorrelation function")
        n = next_pow_two(len(x))
        # Compute the FFT and then (from that) the auto-correlation function
        f = np.fft.fft(x - np.mean(x), n=2 * n)
        acf = np.fft.ifft(f * np.conjugate(f))[: len(x)].real
        acf /= 4 * n
        # Optionally normalize
        if norm:
            acf /= acf[0]
        return acf
    def log_f(x):
        return -(x**2.0) / 2.0
    def func_corr(x, tau):
        return np.exp(-x / (tau))
    n_samples = 2**20 // batch_size
    data = np.empty((batch_size, n_samples))
    tau_fit = np.empty(batch_size)
    for i in range(batch_size):
        data[i] = _gen_data(n_samples, log_f, sig_corr, i + batch_size)
        autoc = autocorr_func_1d(data[i])
        popt, pcov = curve_fit(func_corr, np.arange(40), autoc[0:40])
        tau_fit[i] = popt[0]
    with common.netket_experimental_fft_autocorrelation(True):
        tau_fit_mean = 1 + 2 * tau_fit.mean()
        tau_fit_max = 1 + 2 * tau_fit.max()
        stats = statistics(data)
        assert np.mean(data) == pytest.approx(stats.mean)
        assert np.var(data) == pytest.approx(stats.variance)
        assert tau_fit_mean == pytest.approx(stats.tau_corr, rel=0.5, abs=0.5)
        assert tau_fit_max == pytest.approx(stats.tau_corr_max, rel=0.5, abs=0.5)
        eom_fit = np.sqrt(np.var(data) * tau_fit_mean / float(n_samples * batch_size))
        assert eom_fit == pytest.approx(stats.error_of_mean, rel=0.5)
    with common.netket_experimental_fft_autocorrelation(False):
        tau_fit_m = tau_fit.mean()
        stats = statistics(data)
        assert np.mean(data) == pytest.approx(stats.mean)
        assert np.var(data) == pytest.approx(stats.variance)
        assert tau_fit_m == pytest.approx(stats.tau_corr, rel=1, abs=3)
        eom_fit = np.sqrt(np.var(data) * tau_fit_m / float(n_samples * batch_size))
        assert eom_fit == pytest.approx(stats.error_of_mean, rel=0.6)