/// <summary>
 /// Create a new dense matrix as a copy of the given enumerable of enumerable rows.
 /// Each enumerable in the master enumerable specifies a row.
 /// This new matrix will be independent from the enumerables.
 /// A new memory block will be allocated for storing the matrix.
 /// </summary>
 public static DenseMatrix OfRowsCovariant <TRow>(int rows, int columns, IEnumerable <TRow> data)
     where TRow : IEnumerable <Complex>
 {
     return(new DenseMatrix(DenseColumnMajorMatrixStorage <Complex> .OfRowEnumerables(rows, columns, data)));
 }
 /// <summary>
 /// Create a new dense matrix as a copy of the given enumerable of enumerable rows.
 /// Each enumerable in the master enumerable specifies a row.
 /// This new matrix will be independent from the enumerables.
 /// A new memory block will be allocated for storing the matrix.
 /// </summary>
 public static DenseMatrix OfRows(int rows, int columns, IEnumerable <IEnumerable <Complex> > data)
 {
     return(new DenseMatrix(DenseColumnMajorMatrixStorage <Complex> .OfRowEnumerables(rows, columns, data)));
 }