Average Error: 59.6 → 0.7
Time: 2.1m
Precision: 64
Internal Precision: 128
\[-\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 0 + \left(-\frac{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{\left(-\pi\right) \cdot \frac{f}{4}}}{(\pi \cdot \left((\left(\pi \cdot \pi\right) \cdot \left(\left(f \cdot f\right) \cdot \left(f \cdot \frac{1}{192}\right)\right) + \left(\frac{1}{2} \cdot f\right))_*\right) + \left({f}^{5} \cdot \left({\pi}^{5} \cdot \frac{1}{61440}\right)\right))_*}\right)}{\frac{\pi}{4}}\right)\]

Error

Bits error versus f

Derivation

  1. Initial program 59.6

    \[-\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 0.8

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\color{blue}{\frac{1}{2} \cdot \left(f \cdot \pi\right) + \left(\frac{1}{192} \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \frac{1}{61440} \cdot \left({f}^{5} \cdot {\pi}^{5}\right)\right)}}\right)\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.8

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \log \color{blue}{\left(1 \cdot \frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\frac{1}{2} \cdot \left(f \cdot \pi\right) + \left(\frac{1}{192} \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \frac{1}{61440} \cdot \left({f}^{5} \cdot {\pi}^{5}\right)\right)}\right)}\]
  5. Applied log-prod0.8

    \[\leadsto -\frac{1}{\frac{\pi}{4}} \cdot \color{blue}{\left(\log 1 + \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\frac{1}{2} \cdot \left(f \cdot \pi\right) + \left(\frac{1}{192} \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \frac{1}{61440} \cdot \left({f}^{5} \cdot {\pi}^{5}\right)\right)}\right)\right)}\]
  6. Applied distribute-lft-in0.8

    \[\leadsto -\color{blue}{\left(\frac{1}{\frac{\pi}{4}} \cdot \log 1 + \frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{\frac{1}{2} \cdot \left(f \cdot \pi\right) + \left(\frac{1}{192} \cdot \left({f}^{3} \cdot {\pi}^{3}\right) + \frac{1}{61440} \cdot \left({f}^{5} \cdot {\pi}^{5}\right)\right)}\right)\right)}\]
  7. Simplified0.7

    \[\leadsto -\left(\frac{1}{\frac{\pi}{4}} \cdot \log 1 + \color{blue}{\frac{\log \left(\frac{e^{\frac{f}{4} \cdot \left(-\pi\right)} + e^{f \cdot \frac{\pi}{4}}}{(\pi \cdot \left((\left(\pi \cdot \pi\right) \cdot \left(\left(\frac{1}{192} \cdot f\right) \cdot \left(f \cdot f\right)\right) + \left(f \cdot \frac{1}{2}\right))_*\right) + \left({f}^{5} \cdot \left({\pi}^{5} \cdot \frac{1}{61440}\right)\right))_*}\right)}{\frac{\pi}{4}}}\right)\]
  8. Final simplification0.7

    \[\leadsto \frac{-1}{\frac{\pi}{4}} \cdot 0 + \left(-\frac{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{\left(-\pi\right) \cdot \frac{f}{4}}}{(\pi \cdot \left((\left(\pi \cdot \pi\right) \cdot \left(\left(f \cdot f\right) \cdot \left(f \cdot \frac{1}{192}\right)\right) + \left(\frac{1}{2} \cdot f\right))_*\right) + \left({f}^{5} \cdot \left({\pi}^{5} \cdot \frac{1}{61440}\right)\right))_*}\right)}{\frac{\pi}{4}}\right)\]

Reproduce

herbie shell --seed 2018360 +o rules:numerics
(FPCore (f)
  :name "VandenBroeck and Keller, Equation (20)"
  (- (* (/ 1 (/ PI 4)) (log (/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))))))))

Details

Time bar (total: 59.8s)Debug log

start2.4s

Algorithm
intervals

setup346.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 59.9b

localize49.0ms

Local error

Found 4 expressions with local error:

4.9b
(- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))
0.3b
(* (/ PI 4) f)
0.3b
(* (/ PI 4) f)
0.3b
(* (/ PI 4) f)

rewrite19.0ms

Algorithm
rewrite-expression-head
Counts
4 → 73
Calls

4 calls. Slowest were:

11.0ms
(- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))
2.0ms
(* (/ PI 4) f)
2.0ms
(* (/ PI 4) f)

series335.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

127.0ms
(- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))
78.0ms
(* (/ PI 4) f)
66.0ms
(* (/ PI 4) f)
64.0ms
(* (/ PI 4) f)

simplify1.7s

Counts
45 → 85
Calls

45 calls. Slowest were:

335.0ms
(+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5)))))
102.0ms
(fma 1 (exp (* (/ PI 4) f)) (- (* (exp (- (* (/ PI 4) f))) 1)))
93.0ms
(fma 1 (exp (* (/ PI 4) f)) (- (* (cbrt (exp (- (* (/ PI 4) f)))) (* (cbrt (exp (- (* (/ PI 4) f)))) (cbrt (exp (- (* (/ PI 4) f))))))))

prune1.4s

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.4b

localize102.0ms

Local error

Found 4 expressions with local error:

1.0b
(pow PI 3)
1.0b
(pow PI 5)
0.4b
(* (/ 1 (/ PI 4)) (log (/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))))
0.3b
(/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))

rewrite57.0ms

Algorithm
rewrite-expression-head
Counts
4 → 119
Calls

4 calls. Slowest were:

32.0ms
(/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))
21.0ms
(* (/ 1 (/ PI 4)) (log (/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))))
0.0ms
(pow PI 3)

series742.0ms

Counts
4 → 8
Calls

4 calls. Slowest were:

460.0ms
(* (/ 1 (/ PI 4)) (log (/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))))
282.0ms
(/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))
0.0ms
(pow PI 3)
0.0ms
(pow PI 5)

simplify21.8s

Counts
91 → 127
Calls

91 calls. Slowest were:

773.0ms
(/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (sqrt (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5)))))))
384.0ms
(/ (* (cbrt (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))) (cbrt (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))))) (sqrt (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5)))))))
373.0ms
(/ (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))) (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))

prune4.5s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize79.0ms

Local error

Found 4 expressions with local error:

1.0b
(pow PI 5)
0.4b
(* 1/192 f)
0.3b
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))) (/ PI 4))
0.3b
(fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
4 → 70
Calls

4 calls. Slowest were:

14.0ms
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))) (/ PI 4))
0.0ms
(pow PI 5)
0.0ms
(* 1/192 f)

series536.0ms

Counts
4 → 10
Calls

4 calls. Slowest were:

383.0ms
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))) (/ PI 4))
146.0ms
(fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))
7.0ms
(* 1/192 f)
0.0ms
(pow PI 5)

simplify9.6s

Counts
51 → 80
Calls

51 calls. Slowest were:

395.0ms
(/ (sqrt (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))) 1)
383.0ms
(/ (sqrt (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))) (* (cbrt (/ PI 4)) (cbrt (/ PI 4))))
380.0ms
(* (cbrt (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))) (cbrt (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))))

prune3.1s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0.0b

localize47.0ms

Local error

Found 4 expressions with local error:

5.7b
(exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))
1.0b
(pow PI 5)
0.4b
(* 1/192 f)
0.3b
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))))) (/ PI 4))

rewrite41.0ms

Algorithm
rewrite-expression-head
Counts
4 → 77
Calls

4 calls. Slowest were:

34.0ms
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))))) (/ PI 4))
5.0ms
(exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))
0.0ms
(pow PI 5)

series562.0ms

Counts
4 → 10
Calls

4 calls. Slowest were:

420.0ms
(/ (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))))) (/ PI 4))
129.0ms
(exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))
12.0ms
(* 1/192 f)
0.0ms
(pow PI 5)

simplify9.1s

Counts
57 → 87
Calls

57 calls. Slowest were:

458.0ms
(- (log (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))))) (log (/ PI 4)))
404.0ms
(exp (log (sqrt (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440))))))
363.0ms
(/ (cbrt (log (/ (+ (exp (* (/ f 4) (- PI))) (exp (* f (/ PI 4)))) (exp (log (fma PI (fma (* PI PI) (* (* 1/192 f) (* f f)) (* f 1/2)) (* (pow f 5) (* (pow PI 5) 1/61440)))))))) (cbrt (/ PI 4)))

prune3.1s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0.0b

regimes264.0ms

Accuracy

0% (0.6b remaining)

Error of 0.7b against oracle of 0.1b and baseline of 0.7b

bsearch22.0ms