def integrate(self):
    ' See abstract method. '
    self.data = LDTransformData(self, self.integrand, self.true_measure, self.discrete_distrib, self.coefv, self.m_min, self.m_max, self.fudge, self.check_cone, ptransform=self.ptransform, cast_complex=self.cast_complex, control_variates=self.cv, control_variate_means=self.cv_mu, update_beta=self.ub)
    t_start = time()
    while True:
        self.data.update_data()
        self.data.error_bound = (self.data.fudge(self.data.m) * self.data.stilde)
        ub = max(self.abs_tol, (self.rel_tol * abs((self.data.solution + self.data.error_bound))))
        lb = max(self.abs_tol, (self.rel_tol * abs((self.data.solution - self.data.error_bound))))
        self.data.solution = (self.data.solution - ((self.data.error_bound * (ub - lb)) / (ub + lb)))
        if (((4 * (self.data.error_bound ** 2.0)) / ((ub + lb) ** 2.0)) <= 1.0):
            break
        elif (self.data.m == self.data.m_max):
            warning_s = ('\n                Alread generated %d samples.\n                Trying to generate %d new samples would exceed n_max = %d.\n                No more samples will be generated.\n                Note that error tolerances may no longer be satisfied' % (int((2 ** self.data.m)), int((2 ** self.data.m)), int((2 ** self.data.m_max))))
            warnings.warn(warning_s, MaxSamplesWarning)
            break
        else:
            self.data.m += 1.0
    self.data.time_integrate = (time() - t_start)
    return (self.data.solution, self.data)
See abstract method.
def integrate(self):
    '  '
    self.data = LDTransformData(self, self.integrand, self.true_measure, self.discrete_distrib, self.coefv, self.m_min, self.m_max, self.fudge, self.check_cone, ptransform=self.ptransform, cast_complex=self.cast_complex, control_variates=self.cv, control_variate_means=self.cv_mu, update_beta=self.ub)
    t_start = time()
    while True:
        self.data.update_data()
        self.data.error_bound = (self.data.fudge(self.data.m) * self.data.stilde)
        ub = max(self.abs_tol, (self.rel_tol * abs((self.data.solution + self.data.error_bound))))
        lb = max(self.abs_tol, (self.rel_tol * abs((self.data.solution - self.data.error_bound))))
        self.data.solution = (self.data.solution - ((self.data.error_bound * (ub - lb)) / (ub + lb)))
        if (((4 * (self.data.error_bound ** 2.0)) / ((ub + lb) ** 2.0)) <= 1.0):
            break
        elif (self.data.m == self.data.m_max):
            warning_s = ('\n                Alread generated %d samples.\n                Trying to generate %d new samples would exceed n_max = %d.\n                No more samples will be generated.\n                Note that error tolerances may no longer be satisfied' % (int((2 ** self.data.m)), int((2 ** self.data.m)), int((2 ** self.data.m_max))))
            warnings.warn(warning_s, MaxSamplesWarning)
            break
        else:
            self.data.m += 1.0
    self.data.time_integrate = (time() - t_start)
    return (self.data.solution, self.data)