felix@1163: package de.intevation.flys.utils;
felix@1163: 
felix@1163: import java.util.Random;
felix@1163: 
sascha@1678: import gnu.trove.TDoubleArrayList;
felix@1163: 
felix@1163: public class DataUtil
felix@1163: {
sascha@1678:     public static boolean guessWaterIncreasing(TDoubleArrayList data) {
sascha@1678:         return guessWaterIncreasing(data, 0.05f);
felix@1163:     }
felix@1163: 
sascha@1678:     public static boolean guessWaterIncreasing(TDoubleArrayList data, float factor) {
sascha@1678:         int N = data.size();
felix@1163:         if (N < 2) return false;
sascha@3076: 
felix@1163:         int samples = (int)(factor*N) + 1;
sascha@3076: 
felix@1163:         int up = 0;
sascha@3076: 
felix@1163:         Random rand = new Random();
sascha@3076: 
felix@1163:         for (int i = 0; i < samples; ++i) {
felix@1163:             int    pos2 = rand.nextInt(N-1) + 1;
felix@1163:             int    pos1 = rand.nextInt(pos2);
sascha@1678:             double w1   = data.getQuick(pos1);
sascha@1678:             double w2   = data.getQuick(pos2);
felix@1163:             if (w2 > w1) ++up;
felix@1163:         }
sascha@3076: 
felix@1163:         return up > samples/2;
felix@1163:     }
felix@1163: }
felix@1982: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :