view 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 source
/*
 *	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;
	}
}