-\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right)1 \cdot \frac{-\log \left(\sqrt{\cosh \left(\pi \cdot \frac{f}{4}\right)}\right)}{\frac{\pi}{4}} - 1 \cdot \frac{\log \left(\frac{\sqrt{\cosh \left(\pi \cdot \frac{f}{4}\right)}}{\sinh \left(\pi \cdot \frac{f}{4}\right)}\right)}{\frac{\pi}{4}}double code(double f) {
return ((double) -(((double) ((1.0 / (((double) M_PI) / 4.0)) * ((double) log((((double) (((double) exp(((double) ((((double) M_PI) / 4.0) * f)))) + ((double) exp(((double) -(((double) ((((double) M_PI) / 4.0) * f)))))))) / ((double) (((double) exp(((double) ((((double) M_PI) / 4.0) * f)))) - ((double) exp(((double) -(((double) ((((double) M_PI) / 4.0) * f)))))))))))))));
}
double code(double f) {
return ((double) (((double) (1.0 * (((double) -(((double) log(((double) sqrt(((double) cosh(((double) (((double) M_PI) * (f / 4.0))))))))))) / (((double) M_PI) / 4.0)))) - ((double) (1.0 * (((double) log((((double) sqrt(((double) cosh(((double) (((double) M_PI) * (f / 4.0))))))) / ((double) sinh(((double) (((double) M_PI) * (f / 4.0)))))))) / (((double) M_PI) / 4.0))))));
}



Bits error versus f
Results
Initial program 61.6
rmApplied sinh-undef2.0
Applied associate-/r*2.0
Simplified2.0
rmApplied *-un-lft-identity2.0
Applied add-sqr-sqrt2.1
Applied times-frac2.1
Applied log-prod2.1
Applied distribute-lft-in2.1
Simplified2.1
Simplified2.0
Final simplification2.0
herbie shell --seed 2020198
(FPCore (f)
:name "VandenBroeck and Keller, Equation (20)"
:precision binary64
(- (* (/ 1.0 (/ PI 4.0)) (log (/ (+ (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f)))) (- (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f)))))))))