package math.matrix; import exception.IllegalDimensionException; /** * Diagonal matrix object dij∈ℝ, i≠j=0 * with m rows and n columns * @author Daniel Weschke */ public class Diagonal extends Matrix{ /** * UID */ private static final long serialVersionUID = 3206696282474150081L; public Diagonal(int n){ this(n,n); } public Diagonal(int m, int n){ this.m = m; this.n = n; data = new double[m>n?m:n]; } public Diagonal(double... d){ this(d.length); int i; for(i=0; in?m:n); i++) set(i, d.get(i, i)); } /** * Generate an n-by-n identity matrix. * An n-by-n matrix with ones on the diagonal and zeros elsewhere. * @param n rows/columns * @return n-by-n identity matrix */ public static Diagonal identity(int n){ int i; Diagonal c = new Diagonal(n); for(i=0; iC = s A */ public Diagonal times(double s){ int i; Diagonal c = new Diagonal(m,n); for(i=0; iD = s D */ public Diagonal timesEquals(double s){ int i; for(i=0; iC = Ab = A b * @throws IllegalDimensionException Illegal vector dimensions. */ public Vector times(Vector b) throws IllegalDimensionException{ int i; if(n != b.n()) throw new IllegalDimensionException("Illegal vector dimensions."); Vector c = new Vector(m); for(i=0; i