package mikera.vectorz.ops;
import java.io.ObjectStreamException;
import mikera.vectorz.AVector;
public final class Logistic extends ABoundedOp {
public static final Logistic INSTANCE=new Logistic();
public static double logisticFunction(double a) {
double ea=Math.exp(-a);
double df=(1/(1.0f+ea));
if (Double.isNaN(df)) return (a>0)?1:0;
return df;
}
private static double inverseLogistic (double a) {
if (a>=1) return 800;
if (a<=0) return -800;
double ea=a/(1.0-a);
return Math.log(ea);
}
@Override
public double apply(double x) {
return logisticFunction(x);
}
@Override
public double applyInverse(double y) {
return inverseLogistic(y);
}
@Override
public void applyTo(double[] data, int start,int length) {
for (int i=0; i
Ads help maintain this website.