// An example main, showcasing some of the features static void Main(string[] args) { Matrix A = new Matrix(new double[,] { { 77, 2, 3 }, { 5, -6, 7 }, { 9, 10, 15 } }); Matrix B = new Matrix(new double[,] { { -1, 2, 0 }, { 1, -2, -1 }, { 1, 0, 3 } }); Console.WriteLine("A:\n" + A); Console.WriteLine("A Trasposed:\n" + ~A); Console.WriteLine("A Minor(1,1):\n" + A.Minor(1, 1)); Console.WriteLine("B:\n" + B); Console.WriteLine("B Determinant: " + B.Determinant() + "\n"); Console.WriteLine("B Inverse: \n" + !B); Console.WriteLine("A+B:\n" + (A + B)); Console.WriteLine("B*A:\n" + B * A); Vector V1 = new Vector(new double[] { 1, 2, 3 }); Vector V2 = new Vector(new double[] { 4, -2, -1 }); Console.WriteLine("V1: " + V1); Console.WriteLine("V2: " + V2 + "\n"); Console.WriteLine("V1 + V2: " + (V1 + V2) + "\n"); Console.WriteLine("V1xV2: " + (V1 ^ V2) + "\n"); }
public static Vector operator /(Vector A, double b) { Vector V = new Vector(A); for (int i = 0; i < V.DimensionCount; i++) { V[i] /= b; } return V; }
public Vector(Vector V) { if (V == null) throw new ArgumentNullException("Can't use null for copy constructor"); DimensionCount = V.DimensionCount; Coordinates = V.Coordinates; }
public static Vector operator -(Vector A, Vector B) { Vector V = new Vector(Math.Max(A.DimensionCount, B.DimensionCount)); for (int i = 0; i < A.DimensionCount; i++) { V[i] += A[i]; } for (int i = 0; i < B.DimensionCount; i++) { V[i] -= B[i]; } return V; }