X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2Fscoremodels%2FPIDModel.java;h=ddfe5e47832613cdace055a45e34bd79c8eda58f;hb=87256ba36fb105a1115067ffe2563412e9281d2d;hp=c1e8b42504d6cd7fd9b107d6db91eeab91ecd136;hpb=f6123f656fa387e11f506dedd09672a0d0ff5ac5;p=jalview.git diff --git a/src/jalview/analysis/scoremodels/PIDModel.java b/src/jalview/analysis/scoremodels/PIDModel.java index c1e8b42..ddfe5e4 100644 --- a/src/jalview/analysis/scoremodels/PIDModel.java +++ b/src/jalview/analysis/scoremodels/PIDModel.java @@ -152,15 +152,17 @@ public class PIDModel extends SimilarityScoreModel protected MatrixI findSimilarities(String[] seqs, SimilarityParamsI options) { - // TODO reuse code in ScoreMatrix instead somehow - double[][] values = new double[seqs.length][]; + /* + * calculation is symmetric so just compute lower diagonal + */ + double[][] values = new double[seqs.length][seqs.length]; for (int row = 0; row < seqs.length; row++) { - values[row] = new double[seqs.length]; - for (int col = 0; col < seqs.length; col++) + for (int col = row; col < seqs.length; col++) { double total = computePID(seqs[row], seqs[col], options); values[row][col] = total; + values[col][row] = total; } } return new Matrix(values);