/// <summary>
        /// Solves the linear system Ax=b.
        /// </summary>
        /// <param name="input">The right hand side vector.</param>
        /// <returns></returns>
        public static double[] Solve(this DenseColumnMajorStorage <double> matrix, double[] input)
        {
            int columns = matrix.ColumnCount;

            var lu = DenseLU.Create(matrix);
            var x  = new double[columns];

            lu.Solve(input, x);

            return(x);
        }
        /// <summary>
        /// Gets the inverse of the matrix.
        /// </summary>
        /// <returns></returns>
        public static Matrix Inverse(this DenseColumnMajorStorage <double> matrix)
        {
            int rows    = matrix.RowCount;
            int columns = matrix.ColumnCount;

            var inv = new Matrix(rows, columns);

            DenseLU.Create(matrix).Inverse(inv);

            return(inv);
        }
 /// <summary>
 /// Gets the determinant of the matrix.
 /// </summary>
 /// <returns></returns>
 public static double Determinant(this DenseColumnMajorStorage <double> matrix)
 {
     return(DenseLU.Create(matrix).Determinant());
 }
 public override LU <double> LU()
 {
     return(DenseLU.Create(this));
 }
 public override LU <float> LU()
 {
     return(DenseLU.Create(this));
 }
 public override LU <Complex32> LU()
 {
     return(DenseLU.Create(this));
 }