package mikera.vectorz.ops;

import mikera.util.Rand;
import mikera.vectorz.Op;

/**
 * Operator to add gaussian noise to a value
 * @author Mike
 *
 */
public class GaussianNoise extends Op {
	private final double std;

	public static final GaussianNoise UNIT_NOISE=new GaussianNoise(1.0);
	
	private GaussianNoise(double stdev) {
		std=stdev;
	}
	
	public static GaussianNoise create(double stdDev) {
		return new GaussianNoise(stdDev);
	}

	@Override 
	public boolean isStochastic() {return true;} 
	
	@Override
	public double apply(double x) {
		return x+Rand.nextGaussian()*std;
	}
	
	@Override
	public void applyTo(double[] data, int start,int length) {
		for (int i=0; i 

Ads help maintain this website.