summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-11-16 21:02:52 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-11-26 19:05:19 +0200
commitdd624b3fff1154334cef3f596bfecd29e4a5daaf (patch)
tree11cf38b5e48223a1638e3a264532df2bb18dcf76
parentb68d898909e346df6bfd02e516f101867ee6ed21 (diff)
ipa: libipa: vector: Rename the dot product operator*() to dot()
The Vector class defines a set of arithmetic operators between two vectors or a vector and a scalar. All the operators perform element-wise operations, except for the operator*() that computes the dot product. This is inconsistent and confusing. Replace the operator with a dot() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
-rw-r--r--src/ipa/libipa/vector.cpp14
-rw-r--r--src/ipa/libipa/vector.h16
2 files changed, 15 insertions, 15 deletions
diff --git a/src/ipa/libipa/vector.cpp b/src/ipa/libipa/vector.cpp
index 5851b9ae..d3d7c7ca 100644
--- a/src/ipa/libipa/vector.cpp
+++ b/src/ipa/libipa/vector.cpp
@@ -79,13 +79,6 @@ namespace ipa {
*/
/**
- * \fn Vector::operator*(const Vector<T, Rows> &other) const
- * \brief Compute the dot product
- * \param[in] other The other vector
- * \return The dot product of the two vectors
- */
-
-/**
* \fn Vector::operator*(T factor) const
* \brief Multiply the vector by a scalar
* \param[in] factor The factor
@@ -100,6 +93,13 @@ namespace ipa {
*/
/**
+ * \fn Vector::dot(const Vector<T, Rows> &other) const
+ * \brief Compute the dot product
+ * \param[in] other The other vector
+ * \return The dot product of the two vectors
+ */
+
+/**
* \fn constexpr T &Vector::x()
* \brief Convenience function to access the first element of the vector
* \return The first element of the vector
diff --git a/src/ipa/libipa/vector.h b/src/ipa/libipa/vector.h
index 5fb7ad7c..b8315dd0 100644
--- a/src/ipa/libipa/vector.h
+++ b/src/ipa/libipa/vector.h
@@ -82,14 +82,6 @@ public:
return ret;
}
- constexpr T operator*(const Vector<T, Rows> &other) const
- {
- T ret = 0;
- for (unsigned int i = 0; i < Rows; i++)
- ret += data_[i] * other[i];
- return ret;
- }
-
constexpr Vector<T, Rows> operator*(T factor) const
{
Vector<T, Rows> ret;
@@ -106,6 +98,14 @@ public:
return ret;
}
+ constexpr T dot(const Vector<T, Rows> &other) const
+ {
+ T ret = 0;
+ for (unsigned int i = 0; i < Rows; i++)
+ ret += data_[i] * other[i];
+ return ret;
+ }
+
#ifndef __DOXYGEN__
template<bool Dependent = false, typename = std::enable_if_t<Dependent || Rows >= 1>>
#endif /* __DOXYGEN__ */