Average Error: 59.7 → 0.8
Time: 1.9m
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)\]
\[\sqrt{\frac{4}{\pi}} \cdot \left(\left(-\sqrt{\frac{1}{\frac{\pi}{4}}}\right) \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot \left(-f\right)} + e^{f \cdot \frac{\pi}{4}}}{\left(f \cdot \pi\right) \cdot \frac{1}{2} + \left(\left({f}^{5} \cdot {\pi}^{5}\right) \cdot \frac{1}{61440} + \frac{1}{192} \cdot \left({f}^{3} \cdot {\pi}^{3}\right)\right)}\right)\right)\]

Error

Bits error versus f

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 59.7

    \[-\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 add-sqr-sqrt1.1

    \[\leadsto -\color{blue}{\left(\sqrt{\frac{1}{\frac{\pi}{4}}} \cdot \sqrt{\frac{1}{\frac{\pi}{4}}}\right)} \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)\]
  5. Applied associate-*l*0.8

    \[\leadsto -\color{blue}{\sqrt{\frac{1}{\frac{\pi}{4}}} \cdot \left(\sqrt{\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)}\]
  6. Simplified0.8

    \[\leadsto -\color{blue}{\sqrt{\frac{4}{\pi}}} \cdot \left(\sqrt{\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. Final simplification0.8

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

Reproduce

herbie shell --seed 2018362 +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: 46.6s)Debug log

start2.4s

Algorithm
intervals

setup260.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 59.6b

localize76.0ms

Local error

Found 4 expressions with local error:

5.4b
(- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))
0.2b
(* (/ PI 4) f)
0.2b
(* (/ PI 4) f)
0.2b
(* (/ PI 4) f)

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 73
Calls

4 calls. Slowest were:

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

series345.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

113.0ms
(- (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f))))
85.0ms
(* (/ PI 4) f)
85.0ms
(* (/ PI 4) f)
62.0ms
(* (/ PI 4) f)

simplify1.7s

Counts
45 → 85
Calls

45 calls. Slowest were:

342.0ms
(+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5)))))
99.0ms
(fma (* (cbrt (exp (* (/ PI 4) f))) (cbrt (exp (* (/ PI 4) f)))) (cbrt (exp (* (/ PI 4) f))) (- (* (exp (- (* (/ PI 4) f))) 1)))
90.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

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.5b

localize93.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
(* (pow f 5) (pow PI 5))

rewrite58.0ms

Algorithm
rewrite-expression-head
Counts
4 → 104
Calls

4 calls. Slowest were:

47.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))))))))
7.0ms
(* (pow f 5) (pow PI 5))
0.0ms
(pow PI 3)

series630.0ms

Counts
4 → 8
Calls

4 calls. Slowest were:

450.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))))))))
180.0ms
(* (pow f 5) (pow PI 5))
0.0ms
(pow PI 3)
0.0ms
(pow PI 5)

simplify14.4s

Counts
67 → 112
Calls

67 calls. Slowest were:

542.0ms
(* (/ 1 (/ PI 4)) (log (sqrt (/ (+ (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)))))))))
413.0ms
(sqrt (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))))))))
376.0ms
(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)))))))

prune4.4s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

localize39.0ms

Local error

Found 4 expressions with local error:

1.0b
(pow PI 3)
1.0b
(pow PI 5)
0.3b
(* (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))))))

rewrite48.0ms

Algorithm
rewrite-expression-head
Counts
4 → 81
Calls

4 calls. Slowest were:

40.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))))))
7.0ms
(* (pow f 5) (pow PI 5))
0.0ms
(pow PI 3)

series553.0ms

Counts
4 → 8
Calls

4 calls. Slowest were:

382.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))))))
171.0ms
(* (pow f 5) (pow PI 5))
0.0ms
(pow PI 3)
0.0ms
(pow PI 5)

simplify11.6s

Counts
54 → 89
Calls

54 calls. Slowest were:

750.0ms
(sqrt (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5))))))
426.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)))))))
405.0ms
(/ 1 (sqrt (+ (* 1/2 (* f PI)) (+ (* 1/192 (* (pow f 3) (pow PI 3))) (* 1/61440 (* (pow f 5) (pow PI 5)))))))

prune3.2s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.0b

localize91.0ms

Local error

Found 4 expressions with local error:

1.0b
(pow PI 3)
1.0b
(pow PI 5)
1.0b
(pow PI 5)
1.0b
(cbrt (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))))

rewrite6.0ms

Algorithm
rewrite-expression-head
Counts
4 → 48
Calls

4 calls. Slowest were:

5.0ms
(cbrt (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))))
0.0ms
(pow PI 3)
0.0ms
(pow PI 5)

series283.0ms

Counts
4 → 6
Calls

4 calls. Slowest were:

283.0ms
(cbrt (+ (exp (* (/ PI 4) f)) (exp (- (* (/ PI 4) f)))))
0.0ms
(pow PI 3)
0.0ms
(pow PI 5)
0.0ms
(pow PI 5)

simplify1.4s

Counts
12 → 54
Calls

12 calls. Slowest were:

236.0ms
(cbrt (- (* (exp (* (/ PI 4) f)) (exp (* (/ PI 4) f))) (* (exp (- (* (/ PI 4) f))) (exp (- (* (/ PI 4) f))))))
228.0ms
(- (+ (* (/ 1 (/ PI 4)) (log (/ (* (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))))))))) (/ (log (/ (cbrt (+ (exp (/ (- PI) (/ 4 f))) (exp (/ (* f PI) 4)))) (sqrt (fma PI (fma (* (* 1/192 f) (* f f)) (* PI PI) (* 1/2 f)) (* (pow PI 5) (* (pow f 5) 1/61440)))))) (/ PI 4))))
227.0ms
(cbrt (+ (pow (exp (* (/ PI 4) f)) 3) (pow (exp (- (* (/ PI 4) f))) 3)))

prune3.3s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 0.0b

regimes357.0ms

Accuracy

0% (0.7b remaining)

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

bsearch8.0ms