def run(): def f2(x,y): return numx.sin(x) / x sys2 = integrate.gsl_function(f2, None) def f1(x,y): return 1 / x sys1 = integrate.gsl_function(f1, None) def f3(x,y): return 1 / -x sys3 = integrate.gsl_function(f3, None) w = integrate.workspace(1000000) cyclew = integrate.workspace(1000000) table1 = integrate.qawo_table(1, 100, integrate.SINE, 100) table2 = integrate.qawo_table(-1, 100, integrate.SINE, 100) # Borders and singualrity for gagp pts = numx.array((-numx.pi, 0, numx.pi)) flag, result1, error = integrate.qagp(sys2, pts, 1e-8, 1e-8, 100000, w) flag, result2, error = integrate.qawf(sys1, numx.pi, 1e-8, 100, w, cyclew, table1) flag, result3, error = integrate.qawf(sys3, numx.pi, 1e-8, 100, w, cyclew, table2) print "Result of integration is :", result1 + result2 + result3
def test_qawf(self): def f2(x, y): return Numeric.sin(x) / x sys2 = integrate.gsl_function(f2, None) def f1(x, y): return 1 / x sys1 = integrate.gsl_function(f1, None) def f3(x, y): return 1 / -x sys3 = integrate.gsl_function(f3, None) pts = Numeric.array((-Numeric.pi, 0, Numeric.pi)) flag, result1, error = integrate.qagp(sys2, pts, 1e-8, 1e-8, 100000, self.w) table1 = integrate.qawo_table(1, 100, integrate.SINE, 100) cyclew = integrate.workspace(1000000) flag, result2, error = integrate.qawf(sys1, Numeric.pi, 1e-8, 100, self.w, cyclew, table1) table2 = integrate.qawo_table(-1, 100, integrate.SINE, 100) flag, result3, error = integrate.qawf(sys3, Numeric.pi, 1e-8, 100, self.w, cyclew, table2) assert (Numeric.absolute(result1 + result2 + result3 - Numeric.pi) < 1e-8)
def run(): def f2(x, y): return numx.sin(x) / x sys2 = integrate.gsl_function(f2, None) def f1(x, y): return 1 / x sys1 = integrate.gsl_function(f1, None) def f3(x, y): return 1 / -x sys3 = integrate.gsl_function(f3, None) w = integrate.workspace(1000000) cyclew = integrate.workspace(1000000) table1 = integrate.qawo_table(1, 100, integrate.SINE, 100) table2 = integrate.qawo_table(-1, 100, integrate.SINE, 100) # Borders and singualrity for gagp pts = numx.array((-numx.pi, 0, numx.pi)) flag, result1, error = integrate.qagp(sys2, pts, 1e-8, 1e-8, 100000, w) flag, result2, error = integrate.qawf(sys1, numx.pi, 1e-8, 100, w, cyclew, table1) flag, result3, error = integrate.qawf(sys3, numx.pi, 1e-8, 100, w, cyclew, table2) print "Result of integration is :", result1 + result2 + result3
def test_qagp(self): def f1(x,y): return x / x sys = integrate.gsl_function(f1, None) pts = Numeric.array((-1, 0, 1)) flag, result, error = integrate.qagp(sys, pts, 1e-8, 1e-8, 100000, self.w) assert(Numeric.absolute(result - 2.) < 1e-3) assert(error<1e-8)
def II(x, a, t, method=5): if method == 0: sys = integrate.gsl_function(cdf, (a, t)) integral = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w2) elif method == 2: integral = quad(cdf_eta, 1e-8, x, args=(a, t)) elif method == 3: integral = x * cdf_eta(x, a, t) - quad(xpdf, 1e-10, x, args=(a, t))[0] elif method == 4: phi = a + 2 * sqrt(t) * erfinv(2. * x - 1.) integral = x * cdf_phi(phi, a, t) - quad(xr, -12., phi, args=(a, t))[0] elif method == 5: phi = a + 2 * sqrt(t) * erfinv(2. * x - 1.) integral = x / 2. * (1. + erf(phi / sqrt(2. * (1. - 2. * t)))) - quad(xr, -Inf, phi, args=(a, t))[0] return integral
def II(x, a, t, method=5): if method == 0: sys = integrate.gsl_function(cdf, (a, t)) integral = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w2) elif method == 2: integral = quad(cdf_eta, 1e-8, x, args=(a, t)) elif method == 3: integral = x * cdf_eta(x, a, t) - quad(xpdf, 1e-10, x, args=(a, t))[0] elif method == 4: phi = a + 2 * sqrt(t) * erfinv(2. * x - 1.) integral = x * cdf_phi(phi, a, t) - quad(xr, -12., phi, args=(a, t))[0] elif method == 5: phi = a + 2 * sqrt(t) * erfinv(2. * x - 1.) integral = x / 2. * (1. + erf(phi / sqrt(2. * (1. - 2. * t)))) - quad( xr, -Inf, phi, args=(a, t))[0] return integral
def test_qawf(self): def f2(x,y): return Numeric.sin(x) / x sys2 = integrate.gsl_function(f2, None) def f1(x,y): return 1 / x sys1 = integrate.gsl_function(f1, None) def f3(x,y): return 1 / -x sys3 = integrate.gsl_function(f3, None) pts = Numeric.array((-Numeric.pi, 0, Numeric.pi)) flag, result1, error = integrate.qagp(sys2, pts, 1e-8, 1e-8, 100000, self.w) table1 = integrate.qawo_table(1, 100, integrate.SINE, 100) cyclew = integrate.workspace(1000000) flag, result2, error = integrate.qawf(sys1, Numeric.pi, 1e-8, 100, self.w, cyclew, table1) table2 = integrate.qawo_table(-1, 100, integrate.SINE, 100) flag, result3, error = integrate.qawf(sys3, Numeric.pi, 1e-8, 100, self.w, cyclew, table2) assert(Numeric.absolute(result1+result2+result3 - Numeric.pi) < 1e-8)
return xx * r(phi, a, t) def X(phi, a, t): return 0.5 * (1 + erf((phi - a) / 2. / sqrt(t))) def phi(x, a, t): return a + 2 * sqrt(t) * erfinv(2 * x - 1) def integrand(phi, a, t): sr = sqrt(1. - 2. * t) x = 0.5 * (1 + erf((sr * phi - a) / sqrt(1. - sr * sr) / sqrt(2.))) return x * x * exp(- phi * phi / 2.) def cdf(x, (a, t)): sys = integrate.gsl_function(pdf, (a, t)) flag, result, error = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w1) return result def cdf_eta(x, a, t): return quad(pdf, 1e-10, x, args=(a, t))[0] def cdf_phi(x, a, t): return quad(r, -12., x, args=(a, t))[0] def II(x, a, t, method=5): if method == 0: sys = integrate.gsl_function(cdf, (a, t)) integral = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w2) elif method == 2: integral = quad(cdf_eta, 1e-8, x, args=(a, t)) elif method == 3:
return 0.5 * (1 + erf((phi - a) / 2. / sqrt(t))) def phi(x, a, t): return a + 2 * sqrt(t) * erfinv(2 * x - 1) def integrand(phi, a, t): sr = sqrt(1. - 2. * t) x = 0.5 * (1 + erf((sr * phi - a) / sqrt(1. - sr * sr) / sqrt(2.))) return x * x * exp(-phi * phi / 2.) def cdf(x, (a, t)): sys = integrate.gsl_function(pdf, (a, t)) flag, result, error = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w1) return result def cdf_eta(x, a, t): return quad(pdf, 1e-10, x, args=(a, t))[0] def cdf_phi(x, a, t): return quad(r, -12., x, args=(a, t))[0] def II(x, a, t, method=5): if method == 0: sys = integrate.gsl_function(cdf, (a, t)) integral = integrate.qagp(sys, [0., x], 1e-8, 1e-7, 100, w2)