package mikera.matrixx.impl; import mikera.vectorz.AVector; import mikera.vectorz.util.ErrorMessages; /** * Abstract base class for triangular matrices (upper and lower) * * @author Mike */ public abstract class ATriangularMatrix extends AArrayMatrix { private static final long serialVersionUID = -5557895922040729998L; protected ATriangularMatrix(double[] data, int rows, int cols) { super(data, rows, cols); } @Override public boolean isFullyMutable() { return false; } @Override public boolean isMutable() { return true; } @Override public boolean isPackedArray() { return false; } @Override public abstract AVector getBand(int i); @Override public double determinant() { if (rows!=cols) throw new IllegalArgumentException(ErrorMessages.nonSquareMatrix(this)); return this.diagonalProduct(); } }