package mikera.vectorz.ops;

import mikera.util.Rand;

public class StochasticBinary extends ABoundedOp {

	public static final StochasticBinary INSTANCE=new StochasticBinary();

	@Override 
	public boolean isStochastic() {return true;} 
	
	@Override
	public double apply(double x) {
		return (Rand.nextDouble()1.0)) return 0.0;
		return 1.0;
	}
	
	@Override
	public double derivativeForOutput(double y) {
		// output must be 0.0 or 1.0, so average derivative must be 1.0 assuming in-range value of x
		return 1.0;
	}
}

 

Ads help maintain this website.