Statistics changes for revisions 10795:10796

Changes in this commit seem to be the result of some "auto reformat" tool execution. The Java - GeoAPI - GeoTools import ordering is altered, imports used only in Javadoc are lost and the encoding of non-ASCII characters is broken. This commit has been reverted, except for the removal of really unused imports which are kept removed.

Command line:

svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r10795:10796 https://svn.osgeo.org/geotools/trunk/modules/library/metadata/src/main/java/org/geotools/math/Statistics.java
Revision 10795Revision 10796
/*
 * Geotools 2 - OpenSource mapping toolkit
 * (C) 2003, Geotools Project Managment Committee (PMC)
 * (C) 2001, Institut de Recherche pour le Développement
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
/*
 * Geotools 2 - OpenSource mapping toolkit
 * (C) 2003, Geotools Project Managment Committee (PMC)
 * (C) 2001, Institut de Recherche pour le D�veloppement
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
package org.geotools.math;

// Miscellaneous
import java.util.Locale;
import java.io.Serializable;

// OpenGIS dependencies
import org.opengis.util.Cloneable;

// Geotools dependencies
import org.geotools.io.TableWriter;
import org.geotools.resources.rsc.Resources;
import org.geotools.resources.rsc.ResourceKeys;


/**
package org.geotools.math;

// Miscellaneous
import java.io.Serializable;
import java.util.Locale;

import org.geotools.io.TableWriter;
import org.geotools.resources.rsc.ResourceKeys;
import org.geotools.resources.rsc.Resources;
import org.opengis.util.Cloneable;


/**
private static final long serialVersionUID = -22884277805533726L;

/**
 * Valeur minimale qui aie été transmise à la méthode
 * {@link #add(double)}. Lors de la construction, ce
 * champs est initialisé à NaN.
 */
private double min = Double.NaN;

/**
 * Valeur maximale qui aie été transmise à la méthode
 * {@link #add(double)}. Lors de la construction, ce
 * champs est initialisé à NaN.
 */
private double max = Double.NaN;

/**
 * Somme de toutes les valeurs qui ont été transmises à
 * la méthode {@link #add(double)}. Lors de la construction,
 * ce champs est initialisé à 0.
 */
private double sum = 0;

/**
 * Somme des carrés de toutes les valeurs qui ont été
 * transmises à la méthode {@link #add(double)}. Lors
 * de la construction, ce champs est initialisé à 0.
 */
private double sum2 = 0;

/**
 * Nombre de données autres que NaN qui ont été transmises
 * à la méthode {@link #add(double)}. Lors de la construction,
 * ce champs est initialisé à 0.
 */
private int n = 0;

/**
 * Nombre de données égales à NaN qui ont été transmises à
 * la méthode {@link #add(double)}. Les NaN sont ingorés lors
 * du calcul des statistiques, mais on les compte quand même
 * au passage. Lors de la construction ce champs est initialisé à 0.
 */
private int nNaN = 0;
private static final long serialVersionUID = -22884277805533726L;

/**
 * Valeur minimale qui aie �t� transmise � la m�thode
 * {@link #add(double)}. Lors de la construction, ce
 * champs est initialis� � NaN.
 */
private double min = Double.NaN;

/**
 * Valeur maximale qui aie �t� transmise � la m�thode
 * {@link #add(double)}. Lors de la construction, ce
 * champs est initialis� � NaN.
 */
private double max = Double.NaN;

/**
 * Somme de toutes les valeurs qui ont �t� transmises �
 * la m�thode {@link #add(double)}. Lors de la construction,
 * ce champs est initialis� � 0.
 */
private double sum = 0;

/**
 * Somme des carr�s de toutes les valeurs qui ont �t�
 * transmises � la m�thode {@link #add(double)}. Lors
 * de la construction, ce champs est initialis� � 0.
 */
private double sum2 = 0;

/**
 * Nombre de donn�es autres que NaN qui ont �t� transmises
 * � la m�thode {@link #add(double)}. Lors de la construction,
 * ce champs est initialis� � 0.
 */
private int n = 0;

/**
 * Nombre de donn�es �gales � NaN qui ont �t� transmises �
 * la m�thode {@link #add(double)}. Les NaN sont ingor�s lors
 * du calcul des statistiques, mais on les compte quand m�me
 * au passage. Lors de la construction ce champs est initialis� � 0.
 */
private int nNaN = 0;
 */
public void add(final Statistics stats) {
    if (stats != null) {
        // "if (a<b)" équivaut à "if (!isNaN(a) && a<b)".
        if (Double.isNaN(min) || stats.min<min) min=stats.min;
        if (Double.isNaN(max) || stats.max>max) max=stats.max;
        sum2 += stats.sum2;
 */
public void add(final Statistics stats) {
    if (stats != null) {
        // "if (a<b)" �quivaut � "if (!isNaN(a) && a<b)".
        if (Double.isNaN(min) || stats.min<min) min=stats.min;
        if (Double.isNaN(max) || stats.max>max) max=stats.max;
        sum2 += stats.sum2;
}

/**
 * Retourne l'écart type des échantillons par rapport à la moyenne. Si les données
 * fournies aux différentes méthodes <code>add(...)</code> se distribuent selon une
 * loi normale, alors l'écart type est la distance de part et d'autre de la moyenne
 * dans lequel se trouveraient environ 84% des données. Le tableau ci-dessous donne
 * le pourcentage approximatif des données que l'on trouve de part et d'autre de la
 * moyenne à des distances telles que 2 ou 3 fois l'écart-type.
 *
 * <table align=center>
 *   <tr><td>&nbsp;0.5&nbsp;</td><td>&nbsp;69.1%&nbsp;</td></tr>
}

/**
 * Retourne l'�cart type des �chantillons par rapport � la moyenne. Si les donn�es
 * fournies aux diff�rentes m�thodes <code>add(...)</code> se distribuent selon une
 * loi normale, alors l'�cart type est la distance de part et d'autre de la moyenne
 * dans lequel se trouveraient environ 84% des donn�es. Le tableau ci-dessous donne
 * le pourcentage approximatif des donn�es que l'on trouve de part et d'autre de la
 * moyenne � des distances telles que 2 ou 3 fois l'�cart-type.
 *
 * <table align=center>
 *   <tr><td>&nbsp;0.5&nbsp;</td><td>&nbsp;69.1%&nbsp;</td></tr>
 *   <tr><td>&nbsp;3.0&nbsp;</td><td>&nbsp;99.9%&nbsp;</td></tr>
 * </table>
 *
 * @param allPopulation La valeur <code>true</code> indique que les données fournies
 *        aux différentes méthodes <code>add(...)</code> représentent l'ensemble de
 *        la polulation. La valeur <code>false</code> indique que ces données ne
 *        représentent qu'un échantillon de la population, ce qui est généralement le
 *        cas. Si le nombre de données est élevé, alors les valeurs <code>true</code>
 *        et <code>false</code> donneront sensiblement les mêmes résultats.
 */
public double standardDeviation(final boolean allPopulation) {
    return Math.sqrt((sum2 - sum*sum/n) / (allPopulation ? n : n-1));
 *   <tr><td>&nbsp;3.0&nbsp;</td><td>&nbsp;99.9%&nbsp;</td></tr>
 * </table>
 *
 * @param allPopulation La valeur <code>true</code> indique que les donn�es fournies
 *        aux diff�rentes m�thodes <code>add(...)</code> repr�sentent l'ensemble de
 *        la polulation. La valeur <code>false</code> indique que ces donn�es ne
 *        repr�sentent qu'un �chantillon de la population, ce qui est g�n�ralement le
 *        cas. Si le nombre de donn�es est �lev�, alors les valeurs <code>true</code>
 *        et <code>false</code> donneront sensiblement les m�mes r�sultats.
 */
public double standardDeviation(final boolean allPopulation) {
    return Math.sqrt((sum2 - sum*sum/n) / (allPopulation ? n : n-1));
*     Maximum:    8.259
*     Moyenne:    7.421
*     RMS:        7.846
*     Écart-type: 6.489
* </pre></blockquote>
*
* If <code>tabulations</code> is true, then labels (e.g. "Minimum") and values
*     Maximum:    8.259
*     Moyenne:    7.421
*     RMS:        7.846
*     �cart-type: 6.489
* </pre></blockquote>
*
* If <code>tabulations</code> is true, then labels (e.g. "Minimum") and values