diff --git a/src/tg/detail/special_values.hh b/src/tg/detail/special_values.hh index a36533fc9a201bbe325cdab1a8cd07b2c1f2c9bd..c8f78546d1993516163b9c6ff52c0fb9173923a3 100644 --- a/src/tg/detail/special_values.hh +++ b/src/tg/detail/special_values.hh @@ -123,7 +123,13 @@ struct special_values<size<D, ScalarT>> template <int C, int R, class ScalarT> struct special_values<mat<C, R, ScalarT>> { - static constexpr mat<C, R, ScalarT> ones() { return mat<C, R, ScalarT>() + ScalarT(1); } + static constexpr mat<C, R, ScalarT> ones() + { + mat<C, R, ScalarT> m; + for (auto c = 0; c < C; ++c) + m[c] = vec<R, ScalarT>(ScalarT(1)); + return m; + } static constexpr mat<C, R, ScalarT> identity() { mat<C, R, ScalarT> m;