Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Parameters.java @ 3056:0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
flys-artifacts/trunk@4632 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Sun, 10 Jun 2012 11:12:38 +0000 |
parents | 52aac4941d2a |
children | febc39e77672 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Parameters.java Sat Jun 09 13:46:04 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Parameters.java Sun Jun 10 11:12:38 2012 +0000 @@ -34,6 +34,7 @@ return i; } } + log.debug("columnIndex: " + name + " not found in columnNames"); return -1; } @@ -121,6 +122,11 @@ return binarySearch(columnIndex(columnName), value); } + /** + * Performes a binary search in the column identified by its + * index. + * @return Index of found element or negative insertion point (shifted by one) + */ public int binarySearch(int columnIndex, double value) { TDoubleArrayList column = columns[columnIndex]; return column.binarySearch(value); @@ -131,18 +137,22 @@ } public int binarySearch(int columnIndex, double value, double epsilon) { - if (epsilon < 0d) epsilon = -epsilon; + if (epsilon < 0d) + epsilon = -epsilon; double vl = value - epsilon; double vh = value + epsilon; TDoubleArrayList column = columns[columnIndex]; int lo = 0, hi = column.size()-1; while (hi >= lo) { - int mid = (lo+hi) >> 1; + int mid = (lo + hi) >> 1; double v = column.getQuick(mid); - if (v < vl) hi = mid - 1; - else if (v > vh) lo = mid + 1; - else return mid; + if (v < vl) + hi = mid - 1; + else if (v > vh) + lo = mid + 1; + else + return mid; } return -1;