示例#1
0
def demo4():
    theta = RiemannTheta_Function()
    z = np.array([1.j, .5 * 1.j, 1.j])
    omegas = []
    I = 1.j
    t_vals = np.linspace(1, 0, 10000)
    for t in t_vals:
        a = np.array([[-0.5 * t + I, 0.5 * t * (1 - I), -0.5 * t * (1 + I)],
                      [0.5 * t * (1 - I), I, 0], [-0.5 * t * (1 + I), 0, I]])
        omegas.append(a)
    print "z = (i, i, i), calculating z for 10,000 different Omegas"
    print
    print "Omegas  =  [-0.5*(1-t) + i    0.5*t*(1-i)    -0.5*(1-t)*(1 + i)]"
    print "           [0.5*(1-t)*(1-i)             i                     0]"
    print "           [-0.5*(1-t)*(1+i)            0                     i]"
    print "for 0 <= t <= 1"
    print
    print "Beginning Computation on the GPU"
    start = time.clock()
    v = theta.multiple_omega_process1(z, omegas, 3)
    print "Computation Finished, elapsed time: " + str(time.clock() - start)
    print
    print v
    print
    print "================================="
    print "Beginning Computation on the CPU"
    start = time.clock()
    u = []
    for i in range(10000):
        U, V = theta.exp_and_osc_at_point(z, omegas[i])
        u.append(V)
    print "Computation Finished, elapsed time: " + str(time.clock() - start)
    print
    print np.array(v)
def demo4():
    theta = RiemannTheta_Function()
    z = np.array([1.j, .5*1.j, 1.j])
    omegas = []
    I = 1.j
    t_vals = np.linspace(1, 0, 10000)
    for t in t_vals:
        a = np.array([[-0.5*t + I, 0.5*t*(1-I), -0.5*t*(1 + I)],
                      [0.5*t*(1-I), I, 0],
                      [-0.5*t*(1+I), 0, I]])
        omegas.append(a)
    print "z = (i, i, i), calculating z for 10,000 different Omegas"
    print
    print "Omegas  =  [-0.5*(1-t) + i    0.5*t*(1-i)    -0.5*(1-t)*(1 + i)]"
    print "           [0.5*(1-t)*(1-i)             i                     0]"
    print "           [-0.5*(1-t)*(1+i)            0                     i]"
    print "for 0 <= t <= 1"
    print
    print "Beginning Computation on the GPU"
    start = time.clock()
    v = theta.multiple_omega_process1(z, omegas, 3)
    print "Computation Finished, elapsed time: " + str(time.clock() - start)
    print
    print v
    print
    print "================================="
    print "Beginning Computation on the CPU"
    start = time.clock()
    u = []
    for i in range(10000):
        U,V = theta.exp_and_osc_at_point(z,omegas[i])
        u.append(V)
    print "Computation Finished, elapsed time: " + str(time.clock() - start)
    print
    print np.array(v)