![]() |
Quadcap Embeddable Database |
00001 package com.quadcap.jni; 00002 00003 /* Copyright 2000 - 2003 Quadcap Software. All rights reserved. 00004 * 00005 * This software is distributed under the Quadcap Free Software License. 00006 * This software may be used or modified for any purpose, personal or 00007 * commercial. Open Source redistributions are permitted. Commercial 00008 * redistribution of larger works derived from, or works which bundle 00009 * this software requires a "Commercial Redistribution License"; see 00010 * http://www.quadcap.com/purchase. 00011 * 00012 * Redistributions qualify as "Open Source" under one of the following terms: 00013 * 00014 * Redistributions are made at no charge beyond the reasonable cost of 00015 * materials and delivery. 00016 * 00017 * Redistributions are accompanied by a copy of the Source Code or by an 00018 * irrevocable offer to provide a copy of the Source Code for up to three 00019 * years at the cost of materials and delivery. Such redistributions 00020 * must allow further use, modification, and redistribution of the Source 00021 * Code under substantially the same terms as this license. 00022 * 00023 * Redistributions of source code must retain the copyright notices as they 00024 * appear in each source code file, these license terms, and the 00025 * disclaimer/limitation of liability set forth as paragraph 6 below. 00026 * 00027 * Redistributions in binary form must reproduce this Copyright Notice, 00028 * these license terms, and the disclaimer/limitation of liability set 00029 * forth as paragraph 6 below, in the documentation and/or other materials 00030 * provided with the distribution. 00031 * 00032 * The Software is provided on an "AS IS" basis. No warranty is 00033 * provided that the Software is free of defects, or fit for a 00034 * particular purpose. 00035 * 00036 * Limitation of Liability. Quadcap Software shall not be liable 00037 * for any damages suffered by the Licensee or any third party resulting 00038 * from use of the Software. 00039 */ 00040 00041 import java.util.HashMap; 00042 00043 /** 00044 * A simple statistics object 00045 * 00046 * @author Stan Bailes 00047 */ 00048 public class Stat { 00049 HashMap prev = new HashMap(); 00050 String name; 00051 double max = Double.MIN_VALUE; 00052 double min = Double.MAX_VALUE; 00053 double sum = 0; 00054 // double sumsq = 0; 00055 long count = 0; 00056 00057 public Stat(String s) { name = s; } 00058 00059 public void add(double d) { 00060 if (d > max) max = d; 00061 if (d < min) min = d; 00062 sum += d; 00063 // sumsq += (d * d); 00064 count++; 00065 } 00066 00067 /** 00068 * Return the arithmetic mean (the "average") of the sample 00069 */ 00070 public final double getMean() { 00071 if (count == 0) return 0; 00072 return sum / (double)count; 00073 } 00074 00075 /** 00076 * Throw out the high and the low before computing the average. 00077 */ 00078 public double getAdjustedMean() { 00079 if (count <= 2) return getMean(); 00080 return ((sum - max) - min) / (count - 2); 00081 } 00082 00083 public final long getCount() { return count; } 00084 00085 public double getMin() { return min; } 00086 public double getMax() { return max; } 00087 00088 public String getName() { return name; } 00089 00090 public void setName(String name) { 00091 this.name = name; 00092 } 00093 00094 public double getTotal() { return sum; } 00095 00096 public void addPrev(String s) { 00097 Long x = (Long)prev.get(s); 00098 if (x == null) x = new Long(1); 00099 else x = new Long(x.longValue() + 1); 00100 prev.put(s, x); 00101 } 00102 00103 public String toString() { 00104 return "[" + name + "] (" + prev + ")"; 00105 } 00106 }