Java Array Normalize normalize(double[] doubles)

Here you can find the source of normalize(double[] doubles)

Description

Normalizes the doubles in the array by their sum.

License

Open Source License

Parameter

Parameter Description
doubles the array of double

Exception

Parameter Description
IllegalArgumentException if sum is Zero or NaN

Declaration

public static void normalize(double[] doubles) 

Method Source Code

//package com.java2s;
/**/*w  ww.j  a v a2  s . c o m*/
 * This file is part of the Java Machine Learning Library
 *
 * The Java Machine Learning Library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * The Java Machine Learning Library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with the Java Machine Learning Library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * Copyright (c) 2006-2009, Thomas Abeel
 *
 * Project: http://java-ml.sourceforge.net/
 *
 */

public class Main {
    /**
     * Normalizes the doubles in the array by their sum.
     *
     * @param doubles the array of double
     * @throws IllegalArgumentException if sum is Zero or NaN
     */
    public static void normalize(double[] doubles) {
        normalize(doubles, sum(doubles));
    }

    /**
     * Normalizes the doubles in the array using the given value.
     *
     * @param doubles the array of double
     * @param sum     the value by which the doubles are to be normalized
     * @throws IllegalArgumentException if sum is zero or NaN
     */
    public static void normalize(double[] doubles, double sum) {

        if (Double.isNaN(sum)) {
            throw new IllegalArgumentException("Can't normalize array. Sum is NaN.");
        }
        if (sum == 0) {
            return;
        }
        for (int i = 0; i < doubles.length; i++) {
            doubles[i] /= sum;
        }
    }

    /**
     * Computes the sum of the elements of an array of doubles.
     *
     * @param doubles the array of double
     * @return the sum of the elements
     */
    public static double sum(double[] doubles) {

        double sum = 0;

        for (int i = 0; i < doubles.length; i++) {
            sum += doubles[i];
        }
        return sum;
    }

    public static double[] sum(double[] a, double[] b) {
        double[] out = a.clone();
        for (int i = 0; i < out.length; i++)
            out[i] += b[i];
        return out;
    }
}

Related

  1. normalize(double[] data, double floor)
  2. normalize(double[] descriptor)
  3. normalize(double[] doubleArray)
  4. normalize(double[] doubles)
  5. normalize(double[] doubles)
  6. normalize(double[] doubles, double sum)
  7. normalize(double[] doubles, double sum)
  8. normalize(double[] in)
  9. normalize(double[] in)