Here you can find the source of stdDev(T[] array)
Parameter | Description |
---|---|
array | input values |
T | number type |
public static <T extends Number> double stdDev(T[] array)
//package com.java2s; /**//w w w . j av a 2 s.com * Copyright 2014 SAP AG * * 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. */ import java.util.Collection; public class Main { /** * Returns the population standard deviation of the given values. * * @param values * input values * @return the population standard deviation */ public static double stdDev(double[] values) { double result = 0; if (values == null) { throw new IllegalArgumentException( "Cannot calculate standard deviation on a null object."); } if (values.length < 1) { throw new IllegalArgumentException( "Cannot calculated standard deviation on an empty set."); } final double mean = average(values); for (double v : values) { result += (v - mean) * (v - mean); } result = Math.sqrt(result / values.length); return result; } /** * Returns the population standard deviation of the given values. * * @param array * input values * @param <T> * number type * @return the population standard deviation * */ public static <T extends Number> double stdDev(T[] array) { double[] temp = new double[array.length]; for (int i = 0; i < array.length; i++) { temp[i] = array[i].doubleValue(); } return stdDev(temp); } /** * Returns the population standard deviation of the given values. * * @param values * input values * @param <T> * number type * @return the population standard deviation */ public static <T extends Number> double stdDev(Collection<T> values) { return stdDev(values.toArray(new Number[] {})); } /** * Returns the average (mean) of the given values. * * @param values * a collection of values * @return the average as a double value */ public static double average(Collection<? extends Number> values) { double result = 0; if (values == null) { throw new IllegalArgumentException( "Cannot calculate average on a null object."); } if (values.size() == 0) { return 0; } else { for (Number n : values) { result += n.doubleValue(); } } return result / values.size(); } /** * Returns the average (mean) of the given values. * * @param values * an array of values * @return the average as a double value */ public static double average(double[] values) { double result = 0; if (values == null) { throw new IllegalArgumentException( "Cannot calculate average on a null object."); } if (values.length == 0) { return 0; } else { for (Number n : values) { result += n.doubleValue(); } } return result / values.length; } }