diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.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 478940d06876
children eab5e5089d77
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java	Wed Jun 08 13:03:21 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java	Wed Jun 15 15:28:54 2011 +0000
@@ -34,6 +34,12 @@
         qs   = new TDoubleArrayList(capacity);
     }
 
+    public WQDay(int [] days, double [] ws, double [] qs) {
+        this.days = new TIntArrayList(days);
+        this.ws   = new TDoubleArrayList(ws);
+        this.qs   = new TDoubleArrayList(qs);
+    }
+
 
     public void add(int day, double w, double q) {
         days.add(day);
@@ -48,17 +54,43 @@
 
 
     public int getDay(int idx) {
-        return days.get(idx);
+        return days.getQuick(idx);
     }
 
 
     public double getW(int idx) {
-        return ws.get(idx);
+        return ws.getQuick(idx);
     }
 
 
     public double getQ(int idx) {
-        return qs.get(idx);
+        return qs.getQuick(idx);
+    }
+
+    public void removeNaNs() {
+
+        int dest = 0;
+        int N = ws.size();
+
+        for (int i = 0; i < N; ++i) {
+            double w = ws.getQuick(i);
+            double q = qs.getQuick(i);
+
+            if (Double.isNaN(w) || Double.isNaN(q)) {
+                continue;
+            }
+
+            days.setQuick(dest, days.getQuick(i));
+            ws.setQuick(dest, w);
+            qs.setQuick(dest, q);
+            ++dest;
+        }
+
+        if (dest < N) {
+            days.remove(dest, N-dest);
+            ws  .remove(dest, N-dest);
+            qs  .remove(dest, N-dest);
+        }
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org