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>
This commit is contained in:
Laurent Pinchart 2024-11-16 21:02:52 +02:00
parent b68d898909
commit dd624b3fff
2 changed files with 15 additions and 15 deletions

View file

@ -78,13 +78,6 @@ namespace ipa {
* \return The sum of the two vectors
*/
/**
* \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
@ -99,6 +92,13 @@ namespace ipa {
* \return The vector divided by \a factor
*/
/**
* \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

View file

@ -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__ */