package dr.inference.loggers; /** * @author Marc A. Suchard */ public class MatrixEntryColumn extends NumberColumn { private int indexI; private int indexJ; private double[][] mat; private Double normalization; public MatrixEntryColumn(String name, int indexI, int indexJ, double[][] mat, Double normalization) { super(name + "_" + indexI + "/" + indexJ); this.mat = mat; if (indexI < 0 || indexJ < 0 || indexI >= mat.length || indexJ >= mat[0].length) throw new RuntimeException("Out of bounds"); this.indexI = indexI; this.indexJ = indexJ; this.normalization = normalization; } public MatrixEntryColumn(String name, int indexI, int indexJ, double[][] mat) { this(name, indexI, indexJ, mat, 1.0); } public double getDoubleValue() { return mat[indexI][indexJ] / normalization; } }