Example #1
0
def generate_sin(a):
    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)
    r = c_float(gid) / c_float(n)
    
    x = r * c_float(16.0) * c_float(3.1415)
    
    a[gid].x = c_float(r * 2.0) - c_float(1.0)
    a[gid].y = clrt.native_sin(x)
Example #2
0
def generate_sin(a):
    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)
    r = c_float(gid) / c_float(n)

    x = r * c_float(16.0) * c_float(3.1415)

    a[gid].x = c_float(r * 2.0) - c_float(1.0)
    a[gid].y = clrt.native_sin(x)
Example #3
0
def generate_sin(a):

    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)

    r = cl.cl_float(gid) / cl.cl_float(n)

    # sin wave with 8 peaks
    y = r * cl.cl_float(16.0 * 3.1415)

    # x is a range from -1 to 1
    a[gid].x = r * 2.0 - 1.0

    # y is sin wave
    a[gid].y = clrt.native_sin(y)
Example #4
0
def generate_sin(a):
    
    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)
    
    r = c_float(gid) / c_float(n)
    
    # sin wave with 8 peaks
    y = r * c_float(16.0 * 3.1415)
    
    # x is a range from -1 to 1
    a[gid].x = r * 2.0 - 1.0
    
    # y is sin wave
    a[gid].y = clrt.native_sin(y)
Example #5
0
def generate_sin(a):
    
    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)
    
    r = c_float(gid) / c_float(n)
    
    # sin wave with 16 occilations
    x = r * c_float(16.0 * 3.1415)
    
    # x is a range from -1 to 1
    a[gid].x = r * 2.0 - 1.0
    
    # y is sin wave
    a[gid].y = clrt.native_sin(x)
Example #6
0
def compute_gravitation(a):
    m_ind = 0
    fx_ind = 1
    fy_ind = 2
    px_ind = 3
    py_ind = 4
    vx_ind = 5
    vy_ind = 6
    gid = clrt.get_global_id(0)
    n = clrt.get_global_size(0)
    G = 100000.0
    #Q = 0.1
    a[fx_ind,gid] = 0.0
    a[fy_ind,gid] = 0.0

    for i in range(n):
        if not(i==gid):
            diff_x = a[px_ind,gid] - a[px_ind,i]
            diff_y = a[py_ind,gid] - a[py_ind,i]
            distance = clrt.math.sqrt(diff_x*diff_x + diff_y*diff_y)
            forceNorm = G*a[m_ind,gid]*a[m_ind,i]/ pow((distance*distance) + 200.0**2,3/2.0)
            a[fx_ind,gid] -= forceNorm*diff_x/distance
            a[fy_ind,gid] -= forceNorm*diff_y/distance
Example #7
0
def _linspace(a, start, stop):
    i = clrt.get_global_id(0)
    gsize = clrt.get_global_size(0)
    a[i] = i * (stop - start) / gsize