Implement vec::transpose, vec::operator==, vec::operator!= and vec
string output
This commit is contained in:
parent
a72caf6b46
commit
982752404e
@ -122,7 +122,30 @@ public:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
mat<1, N> transpose() const noexcept;
|
mat<1, N> transpose() const noexcept {
|
||||||
|
mat<1, N> r;
|
||||||
|
|
||||||
|
#pragma GCC unroll 4
|
||||||
|
for (size_t i = 0; i < N; ++i) {
|
||||||
|
r.e[0][i] = e[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const vec<N>& rhs) noexcept {
|
||||||
|
#pragma GCC unroll 4
|
||||||
|
for (size_t i = 0; i < N; ++i) {
|
||||||
|
if (e[i] != rhs.e[i]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool operator!=(const vec<N>& rhs) noexcept {
|
||||||
|
return !(*this == rhs);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class vec2 : public vec<2> {
|
class vec2 : public vec<2> {
|
||||||
@ -170,5 +193,22 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename STREAM_TYPE, size_t N>
|
||||||
|
STREAM_TYPE& operator<<(STREAM_TYPE& lhs, const vec<N>& rhs) {
|
||||||
|
lhs << '<';
|
||||||
|
|
||||||
|
for (size_t i = 0; i < N; ++i) {
|
||||||
|
lhs << rhs.e[i];
|
||||||
|
|
||||||
|
if (i < N - 1) {
|
||||||
|
lhs << ", ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lhs << '>';
|
||||||
|
|
||||||
|
return lhs;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace mtl
|
} // namespace mtl
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user