view flys-artifacts/src/main/java/de/intevation/flys/utils/DataUtil.java @ 1678:03fbf1b30e72

Removed code duplication of guessWaterIncreasing() flys-artifacts/trunk@2895 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 05 Oct 2011 13:16:44 +0000
parents 2e0739853807
children 8afd6a9bb244
line wrap: on
line source
package de.intevation.flys.utils;

import java.util.Random;

import gnu.trove.TDoubleArrayList;

public class DataUtil
{
    public static boolean guessWaterIncreasing(TDoubleArrayList data) {
        return guessWaterIncreasing(data, 0.05f);
    }

    public static boolean guessWaterIncreasing(TDoubleArrayList data, float factor) {
        int N = data.size();
        if (N < 2) return false;
    
        int samples = (int)(factor*N) + 1;
    
        int up = 0;
    
        Random rand = new Random();
    
        for (int i = 0; i < samples; ++i) {
            int    pos2 = rand.nextInt(N-1) + 1;
            int    pos1 = rand.nextInt(pos2);
            double w1   = data.getQuick(pos1);
            double w2   = data.getQuick(pos2);
            if (w2 > w1) ++up;
        }
    
        return up > samples/2;
    }
}

http://dive4elements.wald.intevation.org