diff options
Diffstat (limited to 'src/solve_cl.c')
-rw-r--r-- | src/solve_cl.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/solve_cl.c b/src/solve_cl.c new file mode 100644 index 0000000..f138631 --- /dev/null +++ b/src/solve_cl.c @@ -0,0 +1,28 @@ +"#pragma OPENCL EXTENSION all : enable\n" +"\n" +"__kernel void construct_matrix_polar(__global double *mat,\n" +" __global double *coeff_00,\n" +" __global double *coeff_10,\n" +" __global double *coeff_01,\n" +" __global double *coeff_11,\n" +" __global double *coeff_20,\n" +" __global double *coeff_02,\n" +" __global double *basis_00,\n" +" __global double *basis_10,\n" +" __global double *basis_01,\n" +" __global double *basis_11,\n" +" __global double *basis_20,\n" +" __global double *basis_02,\n" +" int nb_coeffs, int nb_colloc_points)\n" +"{\n" +" unsigned int idx_coeff = get_global_id(0);\n" +" unsigned int idx_grid = get_global_id(1);\n" +" unsigned int idx = idx_grid + nb_colloc_points * idx_coeff;\n" +"\n" +" mat[idx] = coeff_00[idx_grid] * basis_00[idx] +\n" +" coeff_10[idx_grid] * basis_10[idx] +\n" +" coeff_01[idx_grid] * basis_01[idx] +\n" +" coeff_11[idx_grid] * basis_11[idx] +\n" +" coeff_20[idx_grid] * basis_20[idx] +\n" +" coeff_02[idx_grid] * basis_02[idx];\n" +"}\n" |