public class TestMatrix { public static void show(Matrix A) { for (int i = 1; i <= A.getRows(); i++) for (int j = 1; j <= A.getColumns(); j++) System.out.println("El["+i+","+j+"] = "+A.elementAt(i,j)); } public static void main(String[] args) { double[][] d = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; Matrix M = new OrdinaryMatrix(d); System.out.println(" OrdinaryMatrix M:"); show(M); double[][] c = { { 9, 0, 0}, { 6, 5, 0 }, { 3, 2, 1 } }; Matrix T = new TriangularMatrix(c); System.out.println(" TriangularMatrix T:"); show(T); System.out.println(" Matrix M+M :"); show(M.add(M)); System.out.println(" Matrix M+T :"); show(M.add(T)); System.out.println(" Matrix T+T:"); show(T.add(T)); System.out.println(" Matrix T+M:"); show(T.add(M)); } } /* //First execution OrdinaryMatrix M: El[1,1] = 1.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 4.0 El[2,2] = 5.0 El[2,3] = 6.0 El[3,1] = 7.0 El[3, 2] = 8.0 El[3,3] = 9.0 TriangularMatrix T: El[1,1] = 9.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 6.0 El[2,2] = 5.0 El[2,3] = 0.0 El[3,1] = 3.0 El[3,2] = 2.0 El[3,3] = 1.0 Matrix M+M : El[1,1] = 2.0 El[1,2] = 4.0 El[1,3] = 6.0 El[2,1] = 8.0 El[2,2] = 10.0 El[2,3] = 12.0 El[3,1] = 14.0 El[3,2] = 16.0 El[3,3] = 18.0 Matrix M+T : El[1,1] = 10.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 10.0 El[2,2] = 10.0 El[2,3] = 6.0 El[3,1] = 10.0 El[3,2] = 10.0 El[3,3] = 10.0 Matrix T+T: El[1,1] = 18.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 12.0 El[2,2] = 10.0 El[2,3] = 0.0 El[3,1] = 6.0 El[3,2] = 4.0 El[3,3] = 2.0 Matrix T+M: Exception in thread "main" java.lang.RuntimeException: Incorrect value! at TriangularMatrix.setElementAt(TriangularMatrix.java:41) at Matrix.add(Matrix.java:30) at TestMatrix.main(TestMatrix.java:23) */ /* //Second execution OrdinaryMatrix M: El[1,1] = 1.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 4.0 El[2,2] = 5.0 El[2,3] = 6.0 El[3,1] = 7.0 El[3,2] = 8.0 El[3,3] = 9.0 TriangularMatrix T: El[1,1] = 9.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 6.0 El[2,2] = 5.0 El[2,3] = 0.0 El[3,1] = 3.0 El[3,2] = 2.0 El[3,3] = 1.0 Matrix M+M : El[1,1] = 2.0 El[1,2] = 4.0 El[1,3] = 6.0 El[2,1] = 8.0 El[2,2] = 10.0 El[2,3] = 12.0 El[3,1] = 14.0 El[3,2] = 16.0 El[3,3] = 18.0 Matrix M+T : El[1,1] = 10.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 10.0 El[2,2] = 10.0 El[2,3] = 6.0 El[3,1] = 10.0 El[3,2] = 10.0 El[3,3] = 10.0 Matrix T+T: El[1,1] = 18.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 12.0 El[2,2] = 10.0 El[2,3] = 0.0 El[3,1] = 6.0 El[3,2] = 4.0 El[3,3] = 2.0 Matrix T+M: El[1,1] = 10.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 10.0 El[2,2] = 10.0 El[2,3] = 6.0 El[3,1] = 10.0 El[3,2] = 10.0 El[3,3] = 10.0 */ /* //Third execution OrdinaryMatrix M: El[1,1] = 1.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 4.0 El[2,2] = 5.0 El[2,3] = 6.0 El[3,1] = 7.0 El[3,2] = 8.0 El[3,3] = 9.0 TriangularMatrix T: El[1,1] = 9.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 6.0 El[2,2] = 5.0 El[2,3] = 0.0 El[3,1] = 3.0 El[3,2] = 2.0 El[3,3] = 1.0 Matrix M+M : El[1,1] = 2.0 El[1,2] = 4.0 El[1,3] = 6.0 El[2,1] = 8.0 El[2,2] = 10.0 El[2,3] = 12.0 El[3,1] = 14.0 El[3,2] = 16.0 El[3,3] = 18.0 Matrix M+T : El[1,1] = 10.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 10.0 El[2,2] = 10.0 El[2,3] = 6.0 El[3,1] = 10.0 El[3,2] = 10.0 El[3,3] = 10.0 Matrix T+T: El[1,1] = 18.0 El[1,2] = 0.0 El[1,3] = 0.0 El[2,1] = 12.0 El[2,2] = 10.0 El[2,3] = 0.0 El[3,1] = 6.0 El[3,2] = 4.0 El[3,3] = 2.0 Matrix T+M: El[1,1] = 10.0 El[1,2] = 2.0 El[1,3] = 3.0 El[2,1] = 10.0 El[2,2] = 10.0 El[2,3] = 6.0 El[3,1] = 10.0 El[3,2] = 10.0 El[3,3] = 10.0 */