Java examples for java.lang:double
Computing the norm as the Euclidean norm; if it becomes clear that norm will be larger than limit, then return Double.POSITIVE_INFINITY immediately.
/*//from w ww . j av a 2 s . c o m * Java Information Dynamics Toolkit (JIDT) * Copyright (C) 2012, Joseph T. Lizier * * This program 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 3 of the License, or * (at your option) any later version. * * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ //package com.java2s; public class Main { public static void main(String[] argv) throws Exception { double[] x1 = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000, 37.1234, 67.2344, 68.34534, 69.87700 }; double[] x2 = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000, 37.1234, 67.2344, 68.34534, 69.87700 }; double limit = 2.45678; System.out.println(euclideanNormWithAbort(x1, x2, limit)); } /** * Computing the norm as the Euclidean norm; if * it becomes clear that norm will be larger than limit, * then return Double.POSITIVE_INFINITY immediately. * * @param x1 * @param x2 * @param limit * @return */ public static double euclideanNormWithAbort(double[] x1, double[] x2, double limit) { double distance = 0.0; limit *= limit; for (int d = 0; d < x1.length; d++) { double difference = x1[d] - x2[d]; distance += difference * difference; if (distance > limit) { return Double.POSITIVE_INFINITY; } } return Math.sqrt(distance); } }