// TODO: Test /// <summary> /// Creates projection matrix for the specified subspace. /// </summary> public static double[,] CreateProjectionMatrix(double[,] subspace) { var subspaceTranspose = MatrixFunctions.Transpose(subspace); double[,] value = MatrixFunctions.Multiply(subspaceTranspose, subspace); value = MatrixFunctions.Invert(value); value = MatrixFunctions.Multiply(value, subspaceTranspose); value = MatrixFunctions.Multiply(subspace, value); return(value); }
/// <summary> /// Multiplies/scales matrix by a scalar input. /// </summary> public virtual Matrix Scale(double scalar) { return(new Matrix(MatrixFunctions.Multiply(scalar, this.InnerMatrix))); }
/// <summary> /// Multiplies matrix by another. /// </summary> public virtual Matrix Multiply(double[,] matrix) { return(new Matrix(MatrixFunctions.Multiply(this.InnerMatrix, matrix))); }