X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fmath%2FMatrixI.java;h=94b933349d2352474331b8d0961a394909ae5e49;hb=c51dbe7933683b64548f5353e67561d2b5e377f7;hp=d74a98b4909ba85697c94de032a4356f6c7ddd15;hpb=ab7ccf4373a27d71bca31bd6356c1390d9a0054c;p=jalview.git diff --git a/src/jalview/math/MatrixI.java b/src/jalview/math/MatrixI.java index d74a98b..94b9333 100644 --- a/src/jalview/math/MatrixI.java +++ b/src/jalview/math/MatrixI.java @@ -28,6 +28,15 @@ public interface MatrixI double getValue(int i, int j); /** + * Sets the value at row i, colum j + * + * @param i + * @param j + * @param d + */ + void setValue(int i, int j, double d); + + /** * Answers a copy of the values in the i'th row * * @return @@ -56,4 +65,33 @@ public interface MatrixI void tred(); + /** + * Reverses the range of the matrix values, so that the smallest values become + * the largest, and the largest become the smallest. This operation supports + * using a distance measure as a similarity measure, or vice versa. + *
+ * If parameter maxToZero
is true, then the maximum value becomes
+ * zero, i.e. all values are subtracted from the maximum. This is consistent
+ * with converting an identity similarity score to a distance score - the most
+ * similar (identity) corresponds to zero distance. However note that the
+ * operation is not reversible (unless the original minimum value is zero).
+ * For example a range of 10-40 would become 30-0, which would reverse a
+ * second time to 0-30. Also note that a general similarity measure (such as
+ * BLOSUM) may give different 'identity' scores for different sequences, so
+ * they cannot all convert to zero distance.
+ *
+ * If parameter maxToZero
is false, then the values are reflected
+ * about the average of {min, max} (effectively swapping min and max). This
+ * operation is reversible.
+ *
+ * @param maxToZero
+ */
+ void reverseRange(boolean maxToZero);
+
+ /**
+ * Multiply all entries by the given value
+ *
+ * @param d
+ */
+ void multiply(double d);
}