package dr.inference.model;
/**
* @author Marc Suchard
*/
public class DiagonalMatrix extends MatrixParameter {
private Parameter diagonalParameter;
public DiagonalMatrix(Parameter param) {
super(MATRIX_PARAMETER);
addParameter(param);
diagonalParameter = param;
}
// public DiagonalMatrix(String name, Parameter parameter) {
// Parameter.Default(name, parameters);
// }
public double getParameterValue(int row, int col) {
if (row != col)
return 0.0;
return diagonalParameter.getParameterValue(row);
}
public double[][] getParameterAsMatrix() {
final int I = getDimension();
double[][] parameterAsMatrix = new double[I][I];
for (int i = 0; i < I; i++) {
parameterAsMatrix[i][i] = diagonalParameter.getParameterValue(i);
}
return parameterAsMatrix;
}
public int getColumnDimension() {
return diagonalParameter.getDimension();
}
public int getRowDimension() {
return diagonalParameter.getDimension();
}
}