\frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}\tanh x
(FPCore (x) :precision binary64 (/ (- (exp x) (exp (- x))) (+ (exp x) (exp (- x)))))
(FPCore (x) :precision binary64 (tanh x))
double code(double x) {
return (exp(x) - exp(-x)) / (exp(x) + exp(-x));
}
double code(double x) {
return tanh(x);
}





Bits error versus x
Results
| Alternative 1 | |
|---|---|
| Accuracy | 56.8 |
| Cost | 256 |
| Alternative 2 | |
|---|---|
| Accuracy | 59.4 |
| Cost | 1408 |
Initial program 58.1
rmApplied tanh-undef_binary64_6140.0
rmApplied *-un-lft-identity_binary64_4190.0
rmApplied *-un-lft-identity_binary64_4190.0
rmApplied pow1_binary64_4800.0
Final simplification0.0
herbie shell --seed 2020322
(FPCore (x)
:name "Hyperbolic tangent"
:precision binary64
(/ (- (exp x) (exp (- x))) (+ (exp x) (exp (- x)))))