\left(A1 \cdot \left(x - XS\right) + e^{C} \cdot \log \left(e^{\frac{\left(x - XS\right) \cdot DA}{e^{C}}} + 1\right)\right) + Y\left(A1 \cdot \left(x - XS\right) + e^{C} \cdot \log \left(e^{\frac{\left(x - XS\right) \cdot DA}{e^{C}}} + 1\right)\right) + Ydouble code(double A1, double x, double XS, double C, double DA, double Y) {
return ((double) (((double) (((double) (A1 * ((double) (x - XS)))) + ((double) (((double) exp(C)) * ((double) log(((double) (((double) exp(((double) (((double) (((double) (x - XS)) * DA)) / ((double) exp(C)))))) + 1.0)))))))) + Y));
}
double code(double A1, double x, double XS, double C, double DA, double Y) {
return ((double) (((double) (((double) (A1 * ((double) (x - XS)))) + ((double) (((double) exp(C)) * ((double) log(((double) (((double) exp(((double) (((double) (((double) (x - XS)) * DA)) / ((double) exp(C)))))) + 1.0)))))))) + Y));
}



Bits error versus A1



Bits error versus x



Bits error versus XS



Bits error versus C



Bits error versus DA



Bits error versus Y
Results
Initial program 0.5
Final simplification0.5
herbie shell --seed 2020153
(FPCore (A1 x XS C DA Y)
:name "(+ (+ (* A1 (- x XS)) (* (exp C) (log (+ (exp (/ (* (- x XS) DA) (exp C))) 1)))) Y)"
:precision binary64
(+ (+ (* A1 (- x XS)) (* (exp C) (log (+ (exp (/ (* (- x XS) DA) (exp C))) 1.0)))) Y))