All pastes #979471 Raw Edit

Unnamed

public java v1 · immutable
·published 2008-04-10 11:57 UTC
rendered paste body
// $Id: moments.java,v 1.2 2001/01/05 01:35:56 doug Exp $// http://www.bagley.org/~doug/shootout///** Modified to generate data elements instead of load from disk//**  Modified to use a "native" array instead of Vector() //**  Abbreviated output//**  Added Timer() codeimport java.io.*;import java.util.*;import java.text.*;import java.lang.Math;public class moments {    public static void main(String[] args) {        int N = Integer.parseInt(args[0]);        long start = System.currentTimeMillis();         while(N-- > 0) {            String line;            //Vector nums = new Vector();            //double num, sum = 0.0;            double sum = 0.0;            double mean = 0.0;            double average_deviation = 0.0;            double standard_deviation = 0.0;            double variance = 0.0;            double skew = 0.0;            double kurtosis = 0.0;            double median = 0.0;            double deviation = 0.0;            int i, n, mid = 0;            final int max = 100000;            n = 0;            double [] nums = new double[max];            while(n < max) {                //sum += (num = n++);                //nums.add(new Double(num));                sum += (nums[n] = n++);            }            //n = nums.size();            mean = sum/n;            for (i=0; i<n; i++) {                //deviation = ((Double)nums.get(i)).doubleValue() - mean;                deviation = nums[i] - mean;                average_deviation += Math.abs(deviation);                variance += Math.pow(deviation,2);                skew += Math.pow(deviation,3);                kurtosis += Math.pow(deviation,4);            }            average_deviation /= n;            variance /= (n - 1);            standard_deviation = Math.sqrt(variance);            if (variance != 0.0) {                skew /= (n * variance * standard_deviation);                kurtosis = kurtosis/(n * variance * variance) - 3.0;            }                //Collections.sort(nums);            mid = n/2;            //median = (n % 2 != 0) ?            //    ((Double)nums.get(mid)).doubleValue() :            //    (((Double)nums.get(mid)).doubleValue() +            //     ((Double)nums.get(mid-1)).doubleValue())/2;            median = (n % 2 != 0) ? nums[mid] : (nums[mid] + nums[mid-1])/2;                if(N == 1) {                NumberFormat nf = NumberFormat.getInstance();                //nf.setMaximumFractionDigits(13);                nf.setGroupingUsed(false);                //nf.setMaximumFractionDigits(6);                //nf.setMinimumFractionDigits(6);                nf.setMaximumFractionDigits(2);                nf.setMinimumFractionDigits(2);                //System.out.println("n:                  " + n);                //System.out.println("median:             " + nf.format(median));                //System.out.println("mean:               " + nf.format(mean));                //System.out.println("average_deviation:  " + nf.format(average_deviation));                //System.out.println("standard_deviation: " + nf.format(standard_deviation));                //System.out.println("variance:           " + nf.format(variance));                //System.out.println("skew:               " + nf.format(skew));                //System.out.println("kurtosis:           " + nf.format(kurtosis));                System.out.println(n +                  "," +                                   nf.format(median) +  "," +                                   nf.format(mean) +    "," +                                   nf.format(average_deviation) +   "," +                                   nf.format(standard_deviation) +  "," +                                   nf.format(variance) + "," +                                   nf.format(skew) + "," +                                   nf.format(kurtosis));            }        }        long end = System.currentTimeMillis();        System.out.println("Time: " + (end - start) + " ms");     }}