Commit 863e069b authored by Chao Liu's avatar Chao Liu
Browse files

refactor print array

parent 0ab47e06
...@@ -12,186 +12,188 @@ __host__ __device__ void print_array(const char* s, T a) ...@@ -12,186 +12,188 @@ __host__ __device__ void print_array(const char* s, T a)
using data_type = typename decltype(a)::data_type; using data_type = typename decltype(a)::data_type;
constexpr index_t nsize = a.Size(); constexpr index_t nsize = a.Size();
static_assert(nsize > 0 && nsize <= 10, "wrong!"); static_assert(nsize >= 0 && nsize <= 10, "wrong!");
if if constexpr(is_same<data_type, uint32_t>{})
constexpr(is_same<data_type, uint32_t>{}) {
if constexpr(nsize == 0)
{ {
static_if<nsize == 1>{}([&](auto) { printf("%s size %u, {%u}\n", s, nsize, a[0]); }); printf("%s size %u\n", s, nsize);
}
static_if<nsize == 2>{}( else if constexpr(nsize == 1)
[&](auto) { printf("%s size %u, {%u %u}\n", s, nsize, a[0], a[1]); }); {
printf("%s size %u, {%u}\n", s, nsize, a[0]);
static_if<nsize == 3>{}( }
[&](auto) { printf("%s size %u, {%u %u %u}\n", s, nsize, a[0], a[1], a[2]); }); else if constexpr(nsize == 2)
{
static_if<nsize == 4>{}([&](auto) { printf("%s size %u, {%u %u}\n", s, nsize, a[0], a[1]);
printf("%s size %u, {%u %u %u %u}\n", s, nsize, a[0], a[1], a[2], a[3]); }
}); else if constexpr(nsize == 3)
{
static_if<nsize == 5>{}([&](auto) { printf("%s size %u, {%u %u %u}\n", s, nsize, a[0], a[1], a[2]);
printf("%s size %u, {%u %u %u %u %u}\n", s, nsize, a[0], a[1], a[2], a[3], a[4]); }
}); else if constexpr(nsize == 4)
{
static_if<nsize == 6>{}([&](auto) { printf("%s size %u, {%u %u %u %u}\n", s, nsize, a[0], a[1], a[2], a[3]);
printf("%s size %u, {%u %u %u %u %u %u}\n", }
s, else if constexpr(nsize == 5)
nsize, {
a[0], printf("%s size %u, {%u %u %u %u %u}\n", s, nsize, a[0], a[1], a[2], a[3], a[4]);
a[1], }
a[2], else if constexpr(nsize == 6)
a[3], {
a[4], printf(
a[5]); "%s size %u, {%u %u %u %u %u %u}\n", s, nsize, a[0], a[1], a[2], a[3], a[4], a[5]);
}); }
else if constexpr(nsize == 7)
static_if<nsize == 7>{}([&](auto) { {
printf("%s size %u, {%u %u %u %u %u %u %u}\n", printf("%s size %u, {%u %u %u %u %u %u %u}\n",
s, s,
nsize, nsize,
a[0], a[0],
a[1], a[1],
a[2], a[2],
a[3], a[3],
a[4], a[4],
a[5], a[5],
a[6]); a[6]);
}); }
else if constexpr(nsize == 8)
static_if<nsize == 8>{}([&](auto) { {
printf("%s size %u, {%u %u %u %u %u %u %u %u}\n", printf("%s size %u, {%u %u %u %u %u %u %u %u}\n",
s, s,
nsize, nsize,
a[0], a[0],
a[1], a[1],
a[2], a[2],
a[3], a[3],
a[4], a[4],
a[5], a[5],
a[6], a[6],
a[7]); a[7]);
}); }
else if constexpr(nsize == 9)
static_if<nsize == 9>{}([&](auto) { {
printf("%s size %u, {%u %u %u %u %u %u %u %u %u}\n", printf("%s size %u, {%u %u %u %u %u %u %u %u %u}\n",
s, s,
nsize, nsize,
a[0], a[0],
a[1], a[1],
a[2], a[2],
a[3], a[3],
a[4], a[4],
a[5], a[5],
a[6], a[6],
a[7], a[7],
a[8]); a[8]);
}); }
else if constexpr(nsize == 10)
static_if<nsize == 10>{}([&](auto) { {
printf("%s size %u, {%u %u %u %u %u %u %u %u %u %u}\n", printf("%s size %u, {%u %u %u %u %u %u %u %u %u %u}\n",
s, s,
nsize, nsize,
a[0], a[0],
a[1], a[1],
a[2], a[2],
a[3], a[3],
a[4], a[4],
a[5], a[5],
a[6], a[6],
a[7], a[7],
a[8], a[8],
a[9]); a[9]);
}); }
} }
else if else if constexpr(is_same<data_type, int32_t>{})
constexpr(is_same<data_type, int32_t>{}) {
{ if constexpr(nsize == 0)
static_if<nsize == 1>{}([&](auto) { printf("%s size %d, {%d}\n", s, nsize, a[0]); }); {
printf("%s size %d\n", s, nsize);
static_if<nsize == 2>{}( }
[&](auto) { printf("%s size %d, {%d %d}\n", s, nsize, a[0], a[1]); }); else if constexpr(nsize == 1)
{
static_if<nsize == 3>{}( printf("%s size %d, {%d}\n", s, nsize, a[0]);
[&](auto) { printf("%s size %d, {%d %d %d}\n", s, nsize, a[0], a[1], a[2]); }); }
else if constexpr(nsize == 2)
static_if<nsize == 4>{}([&](auto) { {
printf("%s size %d, {%d %d %d %d}\n", s, nsize, a[0], a[1], a[2], a[3]); printf("%s size %d, {%d %d}\n", s, nsize, a[0], a[1]);
}); }
else if constexpr(nsize == 3)
static_if<nsize == 5>{}([&](auto) { {
printf("%s size %d, {%d %d %d %d %d}\n", s, nsize, a[0], a[1], a[2], a[3], a[4]); printf("%s size %d, {%d %d %d}\n", s, nsize, a[0], a[1], a[2]);
}); }
else if constexpr(nsize == 4)
static_if<nsize == 6>{}([&](auto) { {
printf("%s size %d, {%d %d %d %d %d %d}\n", printf("%s size %d, {%d %d %d %d}\n", s, nsize, a[0], a[1], a[2], a[3]);
s, }
nsize, else if constexpr(nsize == 5)
a[0], {
a[1], printf("%s size %d, {%d %d %d %d %d}\n", s, nsize, a[0], a[1], a[2], a[3], a[4]);
a[2], }
a[3], else if constexpr(nsize == 6)
a[4], {
a[5]); printf(
}); "%s size %d, {%d %d %d %d %d %d}\n", s, nsize, a[0], a[1], a[2], a[3], a[4], a[5]);
}
static_if<nsize == 7>{}([&](auto) { else if constexpr(nsize == 7)
printf("%s size %d, {%d %d %d %d %d %d %d}\n", {
s, printf("%s size %d, {%d %d %d %d %d %d %d}\n",
nsize, s,
a[0], nsize,
a[1], a[0],
a[2], a[1],
a[3], a[2],
a[4], a[3],
a[5], a[4],
a[6]); a[5],
}); a[6]);
}
static_if<nsize == 8>{}([&](auto) { else if constexpr(nsize == 8)
printf("%s size %d, {%d %d %d %d %d %d %d %d}\n", {
s, printf("%s size %d, {%d %d %d %d %d %d %d %d}\n",
nsize, s,
a[0], nsize,
a[1], a[0],
a[2], a[1],
a[3], a[2],
a[4], a[3],
a[5], a[4],
a[6], a[5],
a[7]); a[6],
}); a[7]);
}
static_if<nsize == 9>{}([&](auto) { else if constexpr(nsize == 9)
printf("%s size %d, {%d %d %d %d %d %d %d %d %d}\n", {
s, printf("%s size %d, {%d %d %d %d %d %d %d %d %d}\n",
nsize, s,
a[0], nsize,
a[1], a[0],
a[2], a[1],
a[3], a[2],
a[4], a[3],
a[5], a[4],
a[6], a[5],
a[7], a[6],
a[8]); a[7],
}); a[8]);
}
static_if<nsize == 10>{}([&](auto) { else if constexpr(nsize == 10)
printf("%s size %d, {%d %d %d %d %d %d %d %d %d %d}\n", {
s, printf("%s size %d, {%d %d %d %d %d %d %d %d %d %d}\n",
nsize, s,
a[0], nsize,
a[1], a[0],
a[2], a[1],
a[3], a[2],
a[4], a[3],
a[5], a[4],
a[6], a[5],
a[7], a[6],
a[8], a[7],
a[9]); a[8],
}); a[9]);
} }
}
} }
} // namespace ck } // namespace ck
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment