Example #1
0
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
Example #2
0
    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)
Example #3
0
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
Example #4
0
 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)
Example #5
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:
        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
Example #6
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:
        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
Example #7
0
 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)
Example #8
0
    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:
Example #9
0
    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)