LibGfx: Implement AK::min/max for Gfx::VectorN

These return a new `Gfx::VectorN` with the minimum or maximum value of
each element.
This commit is contained in:
Jelle Raaijmakers committed 2024-02-19 23:23:40 +01:00
1 parent e46b217e42
commit 55668c3e48
1 file changed
+24
+24
View File
@@ -300,3 +300,27 @@ private:
};
}
namespace AK {
template<size_t N, typename T>
constexpr Gfx::VectorN<N, T> min(Gfx::VectorN<N, T> const& a, Gfx::VectorN<N, T> const& b)
{
Gfx::VectorN<N, T> result;
UNROLL_LOOP
for (auto i = 0u; i < N; ++i)
result[i] = min(a[i], b[i]);
return result;
}
template<size_t N, typename T>
constexpr Gfx::VectorN<N, T> max(Gfx::VectorN<N, T> const& a, Gfx::VectorN<N, T> const& b)
{
Gfx::VectorN<N, T> result;
UNROLL_LOOP
for (auto i = 0u; i < N; ++i)
result[i] = max(a[i], b[i]);
return result;
}
}