diff --git a/include/libcamera/internal/vector.h b/include/libcamera/internal/vector.h
index 4fb610dbc0aec12a934d7f971c8ee62375a6d726..b89239aa9253209726450a63f29af97b8a808cb8 100644
--- a/include/libcamera/internal/vector.h
+++ b/include/libcamera/internal/vector.h
@@ -343,6 +343,50 @@ bool operator==(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
 	return true;
 }
 
+template<typename T, unsigned int Rows>
+bool operator>(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
+{
+	for (unsigned int i = 0; i < Rows; i++) {
+		if (lhs[i] > rhs[i])
+			return true;
+	}
+
+	return false;
+}
+
+template<typename T, unsigned int Rows>
+bool operator>=(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
+{
+	for (unsigned int i = 0; i < Rows; i++) {
+		if (lhs[i] >= rhs[i])
+			return true;
+	}
+
+	return false;
+}
+
+template<typename T, unsigned int Rows>
+bool operator<=(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
+{
+	for (unsigned int i = 0; i < Rows; i++) {
+		if (lhs[i] <= rhs[i])
+			return true;
+	}
+
+	return false;
+}
+
+template<typename T, unsigned int Rows>
+bool operator<(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
+{
+	for (unsigned int i = 0; i < Rows; i++) {
+		if (lhs[i] < rhs[i])
+			return true;
+	}
+
+	return false;
+}
+
 template<typename T, unsigned int Rows>
 bool operator!=(const Vector<T, Rows> &lhs, const Vector<T, Rows> &rhs)
 {
