Java tutorial
//package com.java2s; /** * This file is part of the Java Machine Learning Library * <p/> * 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. * <p/> * 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. * <p/> * 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 * <p/> * Copyright (c) 2006-2012, Thomas Abeel * <p/> * Project: http://java-ml.sourceforge.net/ */ public class Main { /** * Normalizes the doubles in the array by their sum. * * @param doubles * the array of double * @exception 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 * @exception 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; } }