+template<class Scalar>
+inline Vector<Scalar> round(Vector<Scalar> v) {
+ return Vector<Scalar>(std::round(v.x), std::round(v.y));
+}
+template<>
+inline Vector<float> round(Vector<float> v) {
+ return Vector<float>(std::roundf(v.x), std::roundf(v.y));
+}
+template<class Scalar>
+constexpr Vector<Scalar> min(Vector<Scalar> lhs, Vector<Scalar> rhs) {
+ return Vector<Scalar>(std::min(lhs.x, rhs.x), std::min(lhs.y, rhs.y));
+}
+template<class Scalar>
+constexpr Vector<Scalar> max(Vector<Scalar> lhs, Vector<Scalar> rhs) {
+ return Vector<Scalar>(std::max(lhs.x, rhs.x), std::max(lhs.y, rhs.y));
+}