/// <summary> /// Create a new diagonal matrix and initialize each diagonal value from the provided indexed enumerable. /// Keys must be provided at most once, zero is assumed if a key is omitted. /// This new matrix will be independent from the enumerable. /// A new memory block will be allocated for storing the matrix. /// </summary> public static DiagonalMatrix OfIndexedDiagonal(int rows, int columns, IEnumerable <Tuple <int, Complex> > diagonal) { return(new DiagonalMatrix(DiagonalMatrixStorage <Complex> .OfIndexedEnumerable(rows, columns, diagonal))); }