diff --git a/MathLib/LinAlg/Dense/DenseMatrix-impl.h b/MathLib/LinAlg/Dense/DenseMatrix-impl.h
index ef710200a19a5f923e0c62189bd66267f4981f2d..21893c658c7783bd9ef2548fb97098b6ffc1265a 100644
--- a/MathLib/LinAlg/Dense/DenseMatrix-impl.h
+++ b/MathLib/LinAlg/Dense/DenseMatrix-impl.h
@@ -89,6 +89,14 @@ DenseMatrix<FP_TYPE, IDX_TYPE>::operator=(DenseMatrix && rhs)
 	return *this;
 }
 
+template<typename FP_TYPE, typename IDX_TYPE>
+DenseMatrix<FP_TYPE, IDX_TYPE>&
+DenseMatrix<FP_TYPE, IDX_TYPE>::operator=(FP_TYPE const& v)
+{
+	std::fill(this->_data, this->_data + this->_n_rows * this->_n_cols, static_cast<FP_TYPE>(v));
+	return *this;
+}
+
 template<typename FP_TYPE, typename IDX_TYPE>
 void DenseMatrix<FP_TYPE, IDX_TYPE>::axpy(FP_TYPE alpha, const FP_TYPE* x, FP_TYPE beta,
 		FP_TYPE* y) const
diff --git a/MathLib/LinAlg/Dense/DenseMatrix.h b/MathLib/LinAlg/Dense/DenseMatrix.h
index 1cfabae56cb8cf95d2c21a4dd91854dffe468319..578afa3319cb30ccb2cbfaf727b16bc1759aff0b 100644
--- a/MathLib/LinAlg/Dense/DenseMatrix.h
+++ b/MathLib/LinAlg/Dense/DenseMatrix.h
@@ -33,7 +33,7 @@ public:
 
 public:
    /// Dense square matrix constructor.
-   DenseMatrix (IDX_TYPE rows) : DenseMatrix(rows, rows) {}
+   explicit DenseMatrix (IDX_TYPE rows) : DenseMatrix(rows, rows) {};
 
    /// Dense rectangular matrix constructor.
    DenseMatrix (IDX_TYPE rows, IDX_TYPE cols);
@@ -70,6 +70,11 @@ public:
     */
    DenseMatrix& operator=(DenseMatrix && rhs);
 
+   /**
+    * Assignment operator
+    */
+   DenseMatrix& operator=(FP_TYPE const& v);
+
    /**
     * \f$ y = \alpha \cdot A x + \beta y\f$
     */