34 template<
typename Array,
int i,
int j=0>
35 struct rotate_elements;
37 template<
typename Array,
int i,
int j,
bool non_terminal>
39 static const int size = Array::size;
43 static void impl(
const Array& t,
int a, Array& r) {
45 trove::get<j>(r) = trove::get<other>(t);
50 template<
typename Array,
int i,
int j>
52 static const int size = Array::size;
55 static void impl(
const Array& t,
int a, Array& r) {
57 trove::get<j>(r) = trove::get<other>(t);
62 template<
typename Array,
int i,
int j>
64 static const int size = Array::size;
67 static void impl(
const Array& t,
int a, Array& r) {
72 template<
typename Array,
int i>
75 template<
typename Array,
int i,
bool non_terminal>
77 static const int size = Array::size;
80 static Array
impl(
const Array& t,
int a) {
87 template<
typename Array,
int i>
89 static const int size = Array::size;
91 static Array
impl(
const Array& t,
int a) {
98 template<
typename Array,
int i>
100 static const int size = Array::size;
104 static Array
impl(
const Array& t,
int a) {
111 template<
typename T,
int i>
__host__ __device__ array< T, i > rotate(const array< T, i > &t, int a)
__host__ static __device__ void impl(const Array &t, int a, Array &r)
static const bool new_non_terminal
__host__ static __device__ void impl(const Array &t, int a, Array &r)
static const bool non_terminal
__host__ static __device__ void impl(const Array &t, int a, Array &r)
__host__ static __device__ Array impl(const Array &t, int a)
__host__ static __device__ Array impl(const Array &t, int a)
__host__ static __device__ Array impl(const Array &t, int a)
static const bool non_terminal