Average Error: 61.3 → 52.1
Time: 20.5s
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)\]
\[\begin{array}{l} \mathbf{if}\;f \leq 7.046751224473315 \cdot 10^{-17}:\\ \;\;\;\;\log \left(\frac{e^{f \cdot \frac{\pi}{4}} + {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{e^{\langle \left( \langle \left( f \cdot \frac{\pi}{4} \right)_{binary64} \rangle_{posit16} \right)_{posit16} \rangle_{binary64}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}\right) \cdot \frac{-4}{\pi}\\ \mathbf{else}:\\ \;\;\;\;\frac{-4}{\pi} \cdot \log \left(\frac{e^{f \cdot \frac{\pi}{4}} \cdot e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)} \cdot {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{\left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right) \cdot e^{\log \left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right)}}\right)\\ \end{array}\]
-\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)
\begin{array}{l}
\mathbf{if}\;f \leq 7.046751224473315 \cdot 10^{-17}:\\
\;\;\;\;\log \left(\frac{e^{f \cdot \frac{\pi}{4}} + {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{e^{\langle \left( \langle \left( f \cdot \frac{\pi}{4} \right)_{binary64} \rangle_{posit16} \right)_{posit16} \rangle_{binary64}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}\right) \cdot \frac{-4}{\pi}\\

\mathbf{else}:\\
\;\;\;\;\frac{-4}{\pi} \cdot \log \left(\frac{e^{f \cdot \frac{\pi}{4}} \cdot e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)} \cdot {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{\left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right) \cdot e^{\log \left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right)}}\right)\\

\end{array}
(FPCore (f)
 :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)))))))))
(FPCore (f)
 :precision binary64
 (if (<= f 7.046751224473315e-17)
   (*
    (log
     (/
      (+ (exp (* f (/ PI 4.0))) (pow (exp -0.25) (* f PI)))
      (-
       (exp
        (cast
         (!
          :precision
          posit16
          (cast (! :precision binary64 (* f (/ PI 4.0)))))))
       (pow (exp -0.25) (* f PI)))))
    (/ -4.0 PI))
   (*
    (/ -4.0 PI)
    (log
     (/
      (-
       (* (exp (* f (/ PI 4.0))) (exp (* f (/ PI 4.0))))
       (* (pow (exp -0.25) (* f PI)) (pow (exp -0.25) (* f PI))))
      (*
       (- (exp (* f (/ PI 4.0))) (pow (exp -0.25) (* f PI)))
       (exp (log (- (exp (* f (/ PI 4.0))) (pow (exp -0.25) (* f PI)))))))))))

Error

Bits error versus f

Derivation

  1. Split input into 2 regimes
  2. if f < 7.04675122447331465e-17

    1. Initial program 64.0

      \[-\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. Simplified64.0

      \[\leadsto \color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}\right) \cdot \frac{-4}{\pi}}\]
    3. Using strategy rm
    4. Applied insert-posit1653.9

      \[\leadsto \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{e^{\color{blue}{\langle \color{blue}{\left( \color{blue}{\langle \color{blue}{\left( \color{blue}{\frac{\pi}{4} \cdot f} \right)_{binary64}} \rangle_{posit16}} \right)_{posit16}} \rangle_{binary64}}} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}\right) \cdot \frac{-4}{\pi}\]

    if 7.04675122447331465e-17 < f

    1. Initial program 30.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. Simplified30.4

      \[\leadsto \color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}\right) \cdot \frac{-4}{\pi}}\]
    3. Using strategy rm
    4. Applied flip-+_binary6430.9

      \[\leadsto \log \left(\frac{\color{blue}{\frac{e^{\frac{\pi}{4} \cdot f} \cdot e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)} \cdot {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}}}{e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}\right) \cdot \frac{-4}{\pi}\]
    5. Applied associate-/l/_binary6430.9

      \[\leadsto \log \color{blue}{\left(\frac{e^{\frac{\pi}{4} \cdot f} \cdot e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)} \cdot {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{\left(e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}\right) \cdot \left(e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}\right)}\right)} \cdot \frac{-4}{\pi}\]
    6. Using strategy rm
    7. Applied add-exp-log_binary6430.9

      \[\leadsto \log \left(\frac{e^{\frac{\pi}{4} \cdot f} \cdot e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)} \cdot {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}}{\left(e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}\right) \cdot \color{blue}{e^{\log \left(e^{\frac{\pi}{4} \cdot f} - {\left(e^{-0.25}\right)}^{\left(\pi \cdot f\right)}\right)}}}\right) \cdot \frac{-4}{\pi}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification52.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;f \leq 7.046751224473315 \cdot 10^{-17}:\\ \;\;\;\;\log \left(\frac{e^{f \cdot \frac{\pi}{4}} + {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{e^{\langle \left( \langle \left( f \cdot \frac{\pi}{4} \right)_{binary64} \rangle_{posit16} \right)_{posit16} \rangle_{binary64}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}\right) \cdot \frac{-4}{\pi}\\ \mathbf{else}:\\ \;\;\;\;\frac{-4}{\pi} \cdot \log \left(\frac{e^{f \cdot \frac{\pi}{4}} \cdot e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)} \cdot {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}}{\left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right) \cdot e^{\log \left(e^{f \cdot \frac{\pi}{4}} - {\left(e^{-0.25}\right)}^{\left(f \cdot \pi\right)}\right)}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020268 
(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)))))))))