samer@0: /* samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.maths.random; samer@0: import samer.core.*; samer@0: import samer.core.types.*; samer@0: samer@0: public class Gaussian extends BaseRandom samer@0: { samer@0: VDouble var; samer@0: VDouble mean; samer@0: samer@0: public Gaussian() { samer@0: var=new VDouble("variance", 1.0); samer@0: mean=new VDouble("mean", 0.0); samer@0: } samer@0: samer@0: public Gaussian(double v, double m) { samer@0: var=new VDouble("variance",v,Variable.REGISTER|Variable.NOINIT); samer@0: mean=new VDouble("mean",m,Variable.REGISTER|Variable.NOINIT); samer@0: } samer@0: samer@0: public void dispose() { var.dispose(); mean.dispose(); } samer@0: public double next() { return mean.value + var.value*rnd.nextGaussian(); } samer@0: public void next(double [] x) { samer@0: for (int i=0; i