#pragma once
#include "../math/emath.h"
#if defined(__SSE__) || defined(__ARM_NEON)
# include "sse.h"
#endif
#if defined(__AVX__)
# include "avx.h"
#endif
#if defined (__AVX512F__)
# include "avx512.h"
#endif
namespace embree
{
template <int N>
__forceinline vbool<N> isfinite(const vfloat<N>& v)
{ … }
template<typename vbool, typename vint, typename Closure>
__forceinline void foreach_unique(const vbool& valid0, const vint& vi, const Closure& closure)
{ … }
template<typename vbool, typename vint>
__forceinline int next_unique(vbool& valid, const vint& vi, vbool& valid_i)
{ … }
template<typename vbool, typename vint, typename Closure>
__forceinline void foreach_unique_index(const vbool& valid0, const vint& vi, const Closure& closure)
{ … }
template<typename vbool, typename vint>
__forceinline int next_unique_index(vbool& valid, const vint& vi, vbool& valid_i)
{ … }
template<typename Closure>
__forceinline void foreach2(int x0, int x1, int y0, int y1, const Closure& closure)
{ … }
}