spla
Loading...
Searching...
No Matches
auto_vector_formats.hpp
Go to the documentation of this file.
1
2// Copyright (c) 2021 - 2023 SparseLinearAlgebra
3// Autogenerated file, do not modify
5
6#pragma once
7
8static const char source_vector_formats[] = R"(
9
10
11__kernel void sparse_to_dense(__global const uint* Ai,
12 __global const TYPE* Ax,
13 __global TYPE* Rx,
14 const uint n) {
15 const uint gid = get_global_id(0);
16 const uint gstrige = get_global_size(0);
17
18 for (uint i = gid; i < n; i += gstrige) {
19 Rx[Ai[i]] = Ax[i];
20 }
21}
22
23__kernel void dense_to_sparse(__global const TYPE* Ax,
24 __global uint* Ri,
25 __global TYPE* Rx,
26 __global uint* count,
27 const uint n,
28 const TYPE fill_value) {
29 const uint gid = get_global_id(0);
30 const uint gstrige = get_global_size(0);
31
32 for (uint i = gid; i < n; i += gstrige) {
33 if (Ax[i] != fill_value) {
34 const uint offset = atomic_inc(count);
35 Ri[offset] = i;
36 Rx[offset] = Ax[i];
37 }
38 }
39}
40)";