Java stddev stdDev(double[] array)

Here you can find the source of stdDev(double[] array)

Description

std Dev

License

Apache License

Declaration

public static double stdDev(double[] array) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright 2013 Karlsruhe Institute of Technology. This Work has been partially supported by the EIT ICT Labs funded research project Towards a Mobile Cloud (activity CLD 12206).
 * /* www . ja  va 2  s .co m*/
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

public class Main {
    public static double stdDev(double[] array) {
        double mean = 0.0;
        double total = 0.0;
        for (int m = 0; m < array.length; m++) {
            total += array[m];
        }
        mean = total / array.length;

        return stdDev(array, mean);
    }

    public static double stdDev(double[][] matrix, int column) {
        double mean = 0.0;
        double total = 0.0;
        for (int m = 0; m < matrix.length; m++) {
            total += matrix[m][column];
        }
        mean = total / matrix.length;

        return stdDev(matrix, column, mean);
    }

    /**
     * Return the standard deviation of all the elements in array
     * 
     * @param array
     * @param mean
     * @return
     */
    public static double stdDev(double[] array, double mean) {
        return stdDev(array, mean, array.length);
    }

    /**
     * Standard deviation for the first arrayLength terms of array
     * 
     * @param array
     * @param mean
     * @param arrayLength
     * @return
     */
    public static double stdDev(double[] array, double mean, int arrayLength) {
        if (arrayLength == 0) {
            return 0.0;
        }
        double sumSqs = 0.0;
        for (int m = 0; m < arrayLength; m++) {
            sumSqs += (array[m] - mean) * (array[m] - mean);
        }
        double std = sumSqs / (arrayLength - 1);
        std = Math.sqrt(std);
        return std;
    }

    /**
     * Compute the standard deviation along the given column, with the known
     *  given mean.
     * 
     * @param matrix
     * @param column
     * @param mean
     * @return
     */
    public static double stdDev(double[][] matrix, int column, double mean) {
        if (matrix.length == 0) {
            return 0.0;
        }
        double sumSqs = 0.0;
        for (int m = 0; m < matrix.length; m++) {
            sumSqs += (matrix[m][column] - mean) * (matrix[m][column] - mean);
        }
        double std = sumSqs / (matrix.length - 1);
        std = Math.sqrt(std);
        return std;
    }

    /**
     * Compute the standard deviation across all values in the 2D matrix
     * 
     * @param matrix
     * @return
     */
    public static double stdDev(double[][] matrix) {
        double mean = mean(matrix);
        return stdDev(matrix, mean);
    }

    /**
     * Compute the standard deviation across all values in the 2D matrix
     * 
     * @param matrix
     * @param mean
     * @return
     */
    public static double stdDev(double[][] matrix, double mean) {
        if (matrix.length == 0) {
            return 0.0;
        }
        double sumSqs = 0.0;
        for (int m = 0; m < matrix.length; m++) {
            for (int c = 0; c < matrix[m].length; c++) {
                sumSqs += (matrix[m][c] - mean) * (matrix[m][c] - mean);
            }
        }
        double std = sumSqs / ((matrix.length * matrix[0].length) - 1);
        std = Math.sqrt(std);
        return std;
    }

    public static double mean(int[] input) {
        return sum(input) / (double) input.length;
    }

    public static double mean(double[] input) {
        return sum(input) / input.length;
    }

    public static double mean(double[] input, int startIndex, int length) {
        return sum(input, startIndex, length) / length;
    }

    public static double mean(double[][] input) {
        return sum(input) / (input.length * input[0].length);
    }

    /**
     * Compute the mean along the given column 
     * 
     * @param input
     * @param column
     * @return
     */
    public static double mean(double[][] input, int column) {
        return sum(input, column) / input.length;
    }

    public static double sum(double[] input) {
        double total = 0;
        for (int i = 0; i < input.length; i++) {
            total += input[i];
        }
        return total;
    }

    public static double sum(double[] input, int startIndex, int length) {
        double total = 0;
        for (int i = startIndex; i < startIndex + length; i++) {
            total += input[i];
        }
        return total;
    }

    public static double sum(double[][] input) {
        double total = 0;
        for (int i = 0; i < input.length; i++) {
            for (int j = 0; j < input[i].length; j++) {
                total += input[i][j];
            }
        }
        return total;
    }

    public static double sum(double[][] input, int column) {
        double total = 0;
        for (int i = 0; i < input.length; i++) {
            total += input[i][column];
        }
        return total;
    }

    public static int sum(int[] input) {
        int total = 0;
        for (int i = 0; i < input.length; i++) {
            total += input[i];
        }
        return total;
    }

    public static int sum(int[][] input) {
        int total = 0;
        for (int i = 0; i < input.length; i++) {
            for (int j = 0; j < input[i].length; j++) {
                total += input[i][j];
            }
        }
        return total;
    }
}

Related

  1. stddev(Collection a)
  2. stdDev(Collection coll)
  3. stddev(double sum, double sqSum, int numberValues)
  4. stddev(double[] a)
  5. stddev(double[] arr)
  6. stdDev(double[] data)
  7. stddev(double[] observations)
  8. stddev(final double[] in, final int start, final int length)
  9. stddev(final int[] scores)