vec: add operator+ and - for scalars

This commit is contained in:
Jan Mrna
2025-10-16 20:37:45 +02:00
parent a4e44e6cb8
commit f979005208
2 changed files with 111 additions and 27 deletions

View File

@@ -101,6 +101,14 @@ public:
return c;
}
friend vec operator+(const vec& a, T b)
{
vec<T, N, Tag> c;
std::ranges::transform(a.m_Array, std::views::repeat(b), c.m_Array.begin(),
std::plus{});
return c;
}
friend vec operator-(const vec &a, const vec &b) {
vec<T, N, Tag> c;
std::ranges::transform(a.m_Array, b.m_Array, c.m_Array.begin(),
@@ -108,6 +116,14 @@ public:
return c;
}
friend vec operator-(const vec& a, T b)
{
vec<T, N, Tag> c;
std::ranges::transform(a.m_Array, std::views::repeat(b), c.m_Array.begin(),
std::minus{});
return c;
}
friend vec operator*(const vec &a, const T &scalar) {
vec<T, N, Tag> c;
std::ranges::transform(a.m_Array, std::views::repeat(scalar),