Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Two double value arrays are almost equal

/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.    This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).    http://www.cs.umass.edu/~mccallum/mallet    This software is provided under the terms of the Common Public License,    version 1.0, as published by http://www.opensource.org.  For further    information, see the file `LICENSE' included with this distribution. */ //package cc.mallet.util; /**  *   *   * @author <a href="mailto:casutton@cs.umass.edu">Charles Sutton</a>  * @version $Id: ArrayUtils.java,v 1.1 2007/10/22 21:37:40 mccallum Exp $  */ public class Util {   public static boolean almostEquals(double[] d1, double[] d2, double eps) {     for (int i = 0; i < d1.length; i++) {       double v1 = d1[i];       double v2 = d2[i];       if (!almostEquals(v1, v2, eps))         return false;     }     return true;   }   /**    * Numbers that are closer than this are considered equal by almostEquals.    */   public static double EPSILON = 0.000001;   public static boolean almostEquals(double d1, double d2) {     return almostEquals(d1, d2, EPSILON);   }   public static boolean almostEquals(double d1, double d2, double epsilon) {     return Math.abs(d1 - d2) < epsilon;   } }