Statistics.setVarianceImpl makes getStandardDeviation produce NaN
-----------------------------------------------------------------
Key: MATH-691
URL: https://issues.apache.org/jira/browse/MATH-691
Project: Commons Math
Issue Type: Bug
Affects Versions: 2.2
Environment: Windows 7 64-bit, java version 1.6.0_23
Reporter: Warren Tang
Priority: Minor
Invoking SummaryStatistics.setVarianceImpl(new Variance(true/false) makes
getStandardDeviation produce NaN. The code to reproduce it:
int[] scores = {1, 2, 3, 4};
SummaryStatistics stats = new SummaryStatistics();
stats.setVarianceImpl(new Variance(false)); //use "population variance"
for(int i : scores) {
stats.addValue(i);
}
double sd = stats.getStandardDeviation();
System.out.println(sd);
A workaround is:
double sd = FastMath.sqrt(stats.getSecondMoment() / stats.getN());
as suggested by Mikkel.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira