1#ifndef CUDIFY_HARDWARE_COMMON_HPP_
2#define CUDIFY_HARDWARE_COMMON_HPP_
3
4
5#include <initializer_list>
6
7#ifdef CUDA_ON_CPU
8
9struct uint3
10{
11 unsigned int x, y, z;
12};
13
14struct dim3
15{
16 unsigned int x, y, z;
17
18 constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {}
19 constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {}
20 constexpr operator uint3(void) const { return uint3{x, y, z}; }
21
22 constexpr dim3(const dim3 & d) : x(d.x), y(d.y), z(d.z) {}
23
24 template<typename T>
25 constexpr dim3(const std::initializer_list<T> & list)
26 {
27 auto it = list.begin();
28
29 x = *it;
30 ++it;
31 y = *it;
32 ++it;
33 z = *it;
34 }
35};
36
37#endif
38
39#endif