eva2/src/javaeva/server/stat/MovingAverage.java
2007-12-11 16:38:11 +00:00

77 lines
1.8 KiB
Java

package javaeva.server.stat;
/*
* Title: JavaEvA
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
* @version: $Revision: 16 $
* $Date: 2006-12-20 10:42:57 +0100 (Wed, 20 Dec 2006) $
* $Author: marcekro $
*/
/*==========================================================================*
* IMPORTS
*==========================================================================*/
/*==========================================================================*
* INTERFACE DECLARATION
*==========================================================================*/
/**
*
*/
public class MovingAverage {
private int m_size = 0;
private int m_index = 0;
private double m_Average;
private double[] m_array;
private boolean m_overflow = false;
/**
*
*/
public MovingAverage(int size) {
m_size = size;
m_array = new double[size];
}
/**
*
*/
private MovingAverage(MovingAverage Source) {
m_size = Source.m_size;
m_index = Source.m_index;
m_Average = Source.m_Average;
m_array = (double[])Source.m_array.clone();
m_overflow = Source.m_overflow;
}
/**
*
*/
public MovingAverage getClone() {
return new MovingAverage(this);
}
/**
*
*/
public void add (double value) {
m_array[m_index] = value;
m_index++;
if (m_index==m_size) {
m_index=0;
m_overflow = true;
}
//
m_Average = 0;
int tail = m_index;
//if (m_overflow=true)
if (m_overflow) // MK 12/06
tail = m_size;
for (int i=0;i<tail;i++) {
m_Average = m_Average + m_array[i];
}
m_Average = m_Average / tail;
}
/**
*
*/
public double getAverage() {
return m_Average;
}
}