Average Error: 61.4 → 2.3
Time: 15.8s
Precision: binary64
\[-\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)\]
\[-\frac{1}{\frac{\pi}{4}} \cdot \left(\log \left(\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}\right) + \log \left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}\right)\right)\]

Error

Bits error versus f

Derivation

  1. Initial program 61.4

    \[-\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)\]
  2. Taylor expanded around 0 2.4

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\color{blue}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}}\right)\]
  3. Using strategy rm
  4. Applied *-un-lft-identity2.4

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\color{blue}{1 \cdot \left(0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)\right)}}\right)\]
  5. Applied add-sqr-sqrt2.4

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{\color{blue}{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}} \cdot \sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}}{1 \cdot \left(0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)\right)}\right)\]
  6. Applied times-frac2.4

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \color{blue}{\left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{1} \cdot \frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}\right)}\]
  7. Applied log-prod2.3

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \color{blue}{\left(\log \left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{1}\right) + \log \left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}\right)\right)}\]
  8. Simplified2.3

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \left(\color{blue}{\log \left(\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}\right)} + \log \left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}\right)\right)\]
  9. Final simplification2.3

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \left(\log \left(\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}\right) + \log \left(\frac{\sqrt{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}}{0.00520833333333333304 \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \left(1.62760416666666664 \cdot 10^{-5} \cdot \left({f}^{5} \cdot {\pi}^{5}\right) + 0.5 \cdot \left(f \cdot \pi\right)\right)}\right)\right)\]

Reproduce

herbie shell --seed 2020171 
(FPCore (f)
  :name "VandenBroeck and Keller, Equation (20)"
  :precision binary64
  (neg (* (/ 1.0 (/ PI 4.0)) (log (/ (+ (exp (* (/ PI 4.0) f)) (exp (neg (* (/ PI 4.0) f)))) (- (exp (* (/ PI 4.0) f)) (exp (neg (* (/ PI 4.0) f)))))))))