diff --git a/dune/common/diagonalmatrix.hh b/dune/common/diagonalmatrix.hh index 51b750ecdce8e31de006673af298570959aa20ed..c8b66b24fb4e6608e64a24450d100204aa3d45cf 100644 --- a/dune/common/diagonalmatrix.hh +++ b/dune/common/diagonalmatrix.hh @@ -7,10 +7,12 @@ \brief This file implements a quadratic diagonal matrix of fixed size. */ +#include <algorithm> #include <cassert> #include <cmath> #include <complex> #include <cstddef> +#include <initializer_list> #include <iostream> #include <memory> @@ -106,6 +108,13 @@ namespace Dune { : diag_(diag) {} + DiagonalMatrix (std::initializer_list<K> const &l) + { + assert(l.size() == rows);// Actually, this is not needed any more! + std::copy_n(l.begin(), std::min(static_cast<std::size_t>(rows), + l.size()), + diag_.begin()); + } /** \brief Assignment from a scalar */ DiagonalMatrix& operator= (const K& k)