summaryrefslogtreecommitdiff
path: root/src/solve_cl.c
blob: f1386318ba6d17f63631ac7fe776ebe82589a74d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"