diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKms.java @ 686:3dc61e00385e facets-slt

Merged with trunk and introduced hashing of computed values. flys-artifacts/branches/facets-slt@2126 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 15 Jun 2011 15:28:54 +0000
parents 5606ba4139e0
children eab5e5089d77
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKms.java	Wed Jun 08 13:03:21 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKms.java	Wed Jun 15 15:28:54 2011 +0000
@@ -53,6 +53,36 @@
         this.kms = new TDoubleArrayList(capacity);
     }
 
+    public static void removeNaNs(TDoubleArrayList [] arrays) {
+
+        int dest = 0;
+
+        int A = arrays.length;
+        int N = arrays[0].size();
+
+        OUTER: for (int i = 0; i < N; ++i) {
+            for (int j = 0; j < A; ++j) {
+                TDoubleArrayList a = arrays[j];
+                double v = a.getQuick(i);
+                if (Double.isNaN(v)) {
+                    continue OUTER;
+                }
+                a.setQuick(dest, v);
+            }
+            ++dest;
+        }
+
+        if (dest < N) {
+            for (int i = 0; i < A; ++i) {
+                arrays[i].remove(dest, N-dest);
+            }
+        }
+    }
+
+    public void removeNaNs() {
+        removeNaNs(new TDoubleArrayList [] { w, q, kms });
+    }
+
 
     public WQKms(double[] kms, double[] qs, double[] ws) {
         this(kms, qs, ws, "");
@@ -81,14 +111,6 @@
         this.kms.add(kms);
     }
 
-
-    public void add(double[] w, double[] q, double[] kms) {
-        this.w.add(w);
-        this.q.add(q);
-        this.kms.add(kms);
-    }
-
-
     /**
      * Returns the number of triples stored in this data pool.
      *
@@ -107,15 +129,15 @@
      * @return a triple of [W, Q, Kms] in dst.
      */
     public double[] get(int idx, double [] dst) {
-        dst[0] = w  .get(idx);
-        dst[1] = q  .get(idx);
-        dst[2] = kms.get(idx);
+        dst[0] = w  .getQuick(idx);
+        dst[1] = q  .getQuick(idx);
+        dst[2] = kms.getQuick(idx);
         return dst;
     }
 
 
     public double getKms(int idx) {
-        return kms.get(idx);
+        return kms.getQuick(idx);
     }
 
 
@@ -142,37 +164,7 @@
     public String toString() {
         double from = getKms(0);
         double to   = getKms(size()-1);
-        return Double.toString(from) + " - " + Double.toString(to);
-    }
-
-
-    /**
-     * Merges the WQKms objects of an incoming 2dim array (table) where the
-     * objects of a column belong together.
-     *
-     * @param toMerge The objects that need to be merged.
-     *
-     * @return an array of merged WQKms objects.
-     */
-    public static WQKms[] merge(WQKms[][] toMerge) {
-        int num = toMerge[0].length;
-
-        // TODO IS THE LENGTH CORRECT?
-        WQKms[] merged = new WQKms[num];
-        for (int i = 0; i < num; i++) {
-            merged[i] = new WQKms();
-        }
-
-        for (int i = 0; i < toMerge.length; i++) {
-            WQKms[] tmp = toMerge[i];
-
-            for (int j = 0; j < num; j++) {
-                WQKms toAdd = tmp[j];
-                merged[j].add(toAdd.getWs(), toAdd.getQs(), toAdd.getKms());
-            }
-        }
-
-        return merged;
+        return from + " - " + to;
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org