spla
auto_vector_assign.hpp
Go to the documentation of this file.
1 // Copyright (c) 2021 - 2023 SparseLinearAlgebra
3 // Autogenerated file, do not modify
5 
6 #pragma once
7 
8 static const char source_vector_assign[] = R"(
9 
10 
11 __kernel void assign_dense_to_dense(__global TYPE* g_r,
12  __global const TYPE* g_mask,
13  const TYPE init,
14  const uint n) {
15  uint gid = get_global_id(0);
16  uint gstride = get_global_size(0);
17 
18  for (uint i = gid; i < n; i += gstride) {
19  if (OP_SELECT(g_mask[i])) {
20  g_r[i] = OP_BINARY(g_r[i], init);
21  }
22  }
23 }
24 
25 __kernel void assign_sparse_to_dense(__global TYPE* g_r,
26  __global const uint* g_maski,
27  __global const TYPE* g_maskx,
28  const TYPE init,
29  const uint n) {
30  uint gid = get_global_id(0);
31  uint gstride = get_global_size(0);
32 
33  for (uint idx = gid; idx < n; idx += gstride) {
34  const TYPE mx = g_maskx[idx];
35  if (OP_SELECT(mx)) {
36  const uint mi = g_maski[idx];
37  g_r[mi] = OP_BINARY(g_r[mi], init);
38  }
39  }
40 }
41 )";