/// <summary>
 /// Create a new dense matrix as a copy of the given 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 DenseMatrix OfIndexed(int rows, int columns, IEnumerable <Tuple <int, int, Complex> > enumerable)
 {
     return(new DenseMatrix(DenseColumnMajorMatrixStorage <Complex> .OfIndexedEnumerable(rows, columns, enumerable)));
 }