Mercurial > hg > jslab
diff src/samer/maths/random/BoundedUniform.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/samer/maths/random/BoundedUniform.java Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2000, Samer Abdallah, King's College London. + * All rights reserved. + * + * This software is provided AS iS and WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +package samer.maths.random; +import samer.core.types.*; +import java.util.*; + +public class BoundedUniform extends BaseRandom implements Observer +{ + VDouble min = new VDouble("min",0); + VDouble max = new VDouble("max",1); + double a, b; + + public String toString() { return "Uniform["+min.value+","+max.value+")"; } + + public void dispose() { min.dispose(); max.dispose(); } + public double next() { return a + b*rnd.nextDouble(); } + public void next(double [] x) { + for (int i=0; i<x.length; i++) x[i]=a + b*rnd.nextDouble(); + } + + public BoundedUniform( double min, double max) + { + this(); + this.min.value = min; this.min.changed(); + this.max.value = max; this.max.changed(); + } + + public BoundedUniform() + { + min.addObserver(this); + max.addObserver(this); + update(null,null); + } + + public void update(Observable o, Object oo) { + a=min.value; b=max.value-min.value; + } +}