Array fillDiagonalWithValues(Array mat, List<double> values) { return mat.map((v, pos) => pos.item1 == pos.item2 ? values[pos.item1] : v); }