/*
Copyright 2006 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package sim.util;
/**
MutableDouble simply holds a double value, which can be changed at any time.
Can't get much simpler than a class like this! Note that this class is not synchronized,
and shouldn't be used in a multithreaded environment without a lock.
Note that MutableDouble hashes by ADDRESS and not by VALUE. Thus
(new MutableDouble(2)).equals(new MutableDouble(2)) is FALSE.
*/
public class MutableDouble extends Number implements Valuable, Cloneable
{
public MutableDouble() { this.val = 0; }
public MutableDouble(double val) { this.val = val; }
public MutableDouble(MutableDouble md) { this.val = md.val; }
public double val;
// written to implement the Number abstract class
public double doubleValue() { return val; }
public float floatValue() { return (float)val; }
public int intValue() { return (int)val; }
public long longValue() { return (long)val; }
public Object clone()
{
try
{
return super.clone();
}
catch(CloneNotSupportedException e)
{
return null; // never happens
}
}
}