MUDA
Loading...
Searching...
No Matches
masked_compare.h
1#pragma once
2#include <muda/muda_def.h>
3#include <array>
4#include <bitset>
5namespace muda::details::buffer
6{
7MUDA_INLINE bool less(bool b, size_t l, size_t r) MUDA_NOEXCEPT
8{
9 return b ? l < r : true;
10}
11
12template <size_t N>
13MUDA_INLINE bool less(std::bitset<N> mask,
14 const std::array<size_t, N>& lhs,
15 const std::array<size_t, N>& rhs) MUDA_NOEXCEPT
16{
17#pragma unroll
18 for(size_t i = 0; i < N; ++i)
19 if(!less(mask[i], lhs[i], rhs[i]))
20 return false;
21 return true;
22}
23} // namespace muda::details::buffer