/** * @author Burak Künkçü * SymmetricMatrix Class */ public class SymmetricMatrix { private double[][] matrix; private int size; // Constructor public SymmetricMatrix( int n) { size = n; matrix = new double[size][]; for ( int i = 0; i < size; i++ ) matrix[i] = new double[i+1]; } // Copy Constructor public SymmetricMatrix( SymmetricMatrix other) { size = other.size; matrix = new double[size][]; for ( int i = 0; i < size; i++ ) matrix[i] = new double[i+1]; for ( int i = 0; i < other.matrix.length; i++ ) { for ( int j = 0; j < other.matrix[i].length; j++ ) matrix[i][j] = other.matrix[i][j]; } } ////////////////////////////////////////////////////////////// public String toString() { String result = ""; for ( int i = 0; i < matrix.length; i++ ) { for ( int j = 0; j < matrix[i].length; j++) { result = result + matrix[i][j] + " "; } result = result + "\n"; } return (result); } ////////////////////////////////////////////////////////////// public String toFullString() { String result = ""; for ( int i = 0; i < size; i++ ) { for ( int j = 0; j < size; j++ ) { if (i < j) result = result + matrix[j][i] + " "; else result = result + matrix[i][j] + " "; } result = result + "\n"; } return (result); } ////////////////////////////////////////////////////////////// public double get( int row, int column) { double result = 0; if ( row < size && column < size) { if( column < row) result = matrix[row][column]; else result = matrix[column][row]; } return (result); } ////////////////////////////////////////////////////////////// public void set( int row, int column, double value) { if ( row < size && column < size) { if( column < row) matrix[row][column] = value; else matrix[column][row] = value; } } ////////////////////////////////////////////////////////////// public SymmetricMatrix clone() { SymmetricMatrix newMatrix = new SymmetricMatrix( this.size); for ( int i = 0; i < this.matrix.length; i++ ) { for ( int j = 0; j < matrix[i].length; j++ ) newMatrix.matrix[i][j] = matrix[i][j]; } return (newMatrix); } }