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
__kernel void construct_matrix_polar(__global double *mat,
__global double *coeff_00,
__global double *coeff_10,
__global double *coeff_01,
__global double *coeff_11,
__global double *coeff_20,
__global double *coeff_02,
__global double *basis_00,
__global double *basis_10,
__global double *basis_01,
__global double *basis_11,
__global double *basis_20,
__global double *basis_02,
int nb_coeffs, int nb_colloc_points)
{
unsigned int idx_coeff = get_global_id(0);
unsigned int idx_grid = get_global_id(1);
unsigned int idx = idx_grid + nb_colloc_points * idx_coeff;
mat[idx] = coeff_00[idx_grid] * basis_00[idx] +
coeff_10[idx_grid] * basis_10[idx] +
coeff_01[idx_grid] * basis_01[idx] +
coeff_11[idx_grid] * basis_11[idx] +
coeff_20[idx_grid] * basis_20[idx] +
coeff_02[idx_grid] * basis_02[idx];
}
|