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