package math.matrix; import exception.IllegalDimensionException; import math.Sequence; /** * Symmetric matrix object dij=dji∈ℝ * with n rows and n columns * @author Daniel Weschke */ public class Symmetric extends Matrix { /** * UID */ private static final long serialVersionUID = -3506578822884073555L; public Symmetric(int n){ this.m = n; this.n = n; data = new double[Sequence.triangularNumber(n)]; } public Symmetric(double... d){ this((int)Math.ceil(Sequence.triangularRoot(d.length))); int i; for(i=0; ij?Sequence.triangularNumber(i)+j:i+Sequence.triangularNumber(j); } /** * Adds two matrices of the same dimension (entrywise addition). * The addition of two n-by-n matrices A and B, * is again an n-by-n matrix computed by adding corresponding elements. * @param B matrix * @return C = A + B, entrywise summarized matrix * @throws IllegalDimensionException */ public Matrix plus(Matrix B) throws IllegalDimensionException{ checkDimensions(B); int i,j; Matrix c = createAddition(B); c.newOperation(); if(B instanceof Diagonal) for(i=0; i