@@ -0,0 +1,3335 @@
+/*%0ACopyright (c) 2014, Colorado State University%0AAll rights reserved.%0A%0ARedistribution and use in source and binary forms, with or without modification,%0Aare permitted provided that the following conditions are met:%0A%0A1. Redistributions of source code must retain the above copyright notice, this%0A   list of conditions and the following disclaimer.%0A2. Redistributions in binary form must reproduce the above copyright notice,%0A   this list of conditions and the following disclaimer in the documentation%0A   and/or other materials provided with the distribution.%0A%0AThis software is provided by the copyright holders and contributors %22as is%22 and%0Aany express or implied warranties, including, but not limited to, the implied%0Awarranties of merchantability and fitness for a particular purpose are%0Adisclaimed. In no event shall the copyright holder or contributors be liable for%0Aany direct, indirect, incidental, special, exemplary, or consequential damages%0A(including, but not limited to, procurement of substitute goods or services;%0Aloss of use, data, or profits; or business interruption) however caused and on%0Aany theory of liability, whether in contract, strict liability, or tort%0A(including negligence or otherwise) arising in any way out of the use of this%0Asoftware, even if advised of the possibility of such damage.%0A*/%0A%0Apackage galileo.test.stat;%0A%0Aimport java.util.Random;%0A%0Aimport galileo.stat.RunningStatistics2D;%0Aimport galileo.util.PerformanceTimer;%0A%0A/**%0A * Benchmarks the Welford running statistics tracker.%0A */%0Apublic class WelfordBench2D %7B%0A%0A    public static void main(String%5B%5D args) %7B%0A        if (args.length %3C 1) %7B%0A            System.out.println(%22Usage: WelfordBench2D iterations%22);%0A            System.exit(1);%0A        %7D%0A%0A        int iters = Integer.parseInt(args%5B0%5D);%0A%0A        testUpdate(iters);%0A        testR(iters);%0A        testR2(iters);%0A    %7D%0A%0A    private static void testUpdate(int iters) %7B%0A        /* Generate our incoming samples */%0A        double%5B%5D xSamples = WelfordBench.generateSamples(iters);%0A        double%5B%5D ySamples = WelfordBench.generateSamples(iters);%0A%0A        RunningStatistics2D rs = new RunningStatistics2D();%0A        PerformanceTimer pt = new PerformanceTimer(%22welford2d-update%22);%0A        for (int j = 0; j %3C iters; ++j) %7B%0A            pt.start();%0A            rs.put(xSamples%5Bj%5D, ySamples%5Bj%5D);%0A            pt.stopAndPrint();%0A        %7D%0A    %7D%0A%0A    private static void testR(int iters) %7B%0A        double%5B%5D xSamples = WelfordBench.generateSamples(iters);%0A        double%5B%5D ySamples = WelfordBench.generateSamples(iters);%0A        RunningStatistics2D rs = new RunningStatistics2D();%0A        PerformanceTimer pt = new PerformanceTimer(%22welford2d-r%22);%0A        for (int i = 0; i %3C iters; ++i) %7B%0A            rs.put(xSamples%5Bi%5D, ySamples%5Bi%5D);%0A            pt.start();%0A            rs.R();%0A            pt.stopAndPrint();%0A        %7D%0A    %7D%0A%0A    private static void testR2(int iters) %7B%0A        double%5B%5D xSamples = WelfordBench.generateSamples(iters);%0A        double%5B%5D ySamples = WelfordBench.generateSamples(iters);%0A        RunningStatistics2D rs = new RunningStatistics2D();%0A        PerformanceTimer pt = new PerformanceTimer(%22welford2d-r2%22);%0A        for (int i = 0; i %3C iters; ++i) %7B%0A            rs.put(xSamples%5Bi%5D, ySamples%5Bi%5D);%0A            pt.start();%0A            rs.R2();%0A            pt.stopAndPrint();%0A        %7D%0A    %7D%0A%7D%0A

Add 2D Welford benchmark