From b68d898909e346df6bfd02e516f101867ee6ed21 Mon Sep 17 00:00:00 2001
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Mon, 18 Nov 2024 20:54:15 +0200
Subject: ipa: libipa: vector: Add scalar constructor

The default constructor leaves the vector data uninitialized. Add a
constructor to fill the vector with copies of a scalar value, and fix
the documentation of the default constructor.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
---
 src/ipa/libipa/vector.cpp | 8 +++++++-
 src/ipa/libipa/vector.h   | 5 +++++
 2 files changed, 12 insertions(+), 1 deletion(-)

(limited to 'src/ipa/libipa')

diff --git a/src/ipa/libipa/vector.cpp b/src/ipa/libipa/vector.cpp
index 0f0511da..5851b9ae 100644
--- a/src/ipa/libipa/vector.cpp
+++ b/src/ipa/libipa/vector.cpp
@@ -29,7 +29,13 @@ namespace ipa {
 
 /**
  * \fn Vector::Vector()
- * \brief Construct a zero vector
+ * \brief Construct an uninitialized vector
+ */
+
+/**
+ * \fn Vector::Vector(T scalar)
+ * \brief Construct a vector filled with a \a scalar value
+ * \param[in] scalar The scalar value
  */
 
 /**
diff --git a/src/ipa/libipa/vector.h b/src/ipa/libipa/vector.h
index 3168835b..5fb7ad7c 100644
--- a/src/ipa/libipa/vector.h
+++ b/src/ipa/libipa/vector.h
@@ -35,6 +35,11 @@ class Vector
 public:
 	constexpr Vector() = default;
 
+	constexpr explicit Vector(T scalar)
+	{
+		data_.fill(scalar);
+	}
+
 	constexpr Vector(const std::array<T, Rows> &data)
 	{
 		for (unsigned int i = 0; i < Rows; i++)
-- 
cgit v1.2.1