


Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if h < -2.2462022782129031e-116Initial program 22.9
rmApplied associate-*r/22.0
Taylor expanded around -inf 19.7
Simplified16.1
if -2.2462022782129031e-116 < h < -3.3946239036053276e-300Initial program 32.8
rmApplied associate-*r/32.7
Taylor expanded around -inf 22.8
Simplified18.8
if -3.3946239036053276e-300 < h < 3.795599479384339e+168 or 6.389442324558605e+290 < h Initial program 25.3
rmApplied associate-*r/24.8
rmApplied pow124.8
Applied pow124.8
Applied pow-prod-down24.8
Simplified23.8
rmApplied sqrt-div17.6
Applied sqrt-div12.4
Applied frac-times12.4
Applied associate-*r/12.6
if 3.795599479384339e+168 < h < 6.389442324558605e+290Initial program 30.6
rmApplied associate-*r/27.8
rmApplied pow127.8
Applied pow127.8
Applied pow-prod-down27.8
Simplified29.8
rmApplied associate-*r/29.8
Applied associate-/l/26.6
rmApplied sqrt-div20.9
Final simplification15.5
herbie shell --seed 2019002 +o rules:numerics
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))))
Time bar (total: 1.3m)Debug log
1 calls. Slowest were:
| 160.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 24.0b
Found 4 expressions with local error:
| 12.0b | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
| 10.8b | (pow (/ d l) (/ 1 2)) |
| 10.2b | (pow (/ d h) (/ 1 2)) |
| 5.6b | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
4 calls. Slowest were:
| 18.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
| 16.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
| 3.0ms | (pow (/ d l) (/ 1 2)) |
4 calls. Slowest were:
| 266.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
| 103.0ms | (pow (/ d h) (/ 1 2)) |
| 76.0ms | (pow (/ d l) (/ 1 2)) |
| 70.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
71 calls. Slowest were:
| 723.0ms | (* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h) |
| 443.0ms | (+ (+ (log (/ 1 2)) (log (pow (/ (* M D) (* 2 d)) 2))) (log (/ h l))) |
| 419.0ms | (+ (* 1 1) (+ (* (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))) (* 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))))) |
21 alts after pruning (21 fresh and 0 done)
Merged error: 9.8b
Found 4 expressions with local error:
| 10.8b | (pow (/ d l) (/ 1 2)) |
| 10.2b | (pow (/ d h) (/ 1 2)) |
| 7.2b | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) |
| 5.6b | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l))) |
4 calls. Slowest were:
| 17.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l))) |
| 10.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) |
| 2.0ms | (pow (/ d l) (/ 1 2)) |
4 calls. Slowest were:
| 198.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l))) |
| 99.0ms | (pow (/ d l) (/ 1 2)) |
| 96.0ms | (pow (/ d h) (/ 1 2)) |
| 58.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) |
57 calls. Slowest were:
| 765.0ms | (* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h) |
| 343.0ms | (* 1/8 (/ (* (pow M 2) (* (pow D 2) h)) (pow d 2))) |
| 307.0ms | (* 1/8 (/ (* (pow M 2) (* (pow D 2) h)) (pow d 2))) |
16 alts after pruning (16 fresh and 0 done)
Merged error: 8.1b
Found 4 expressions with local error:
| 10.8b | (sqrt (/ d l)) |
| 10.5b | (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))) |
| 10.2b | (sqrt (/ d h)) |
| 5.6b | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
4 calls. Slowest were:
| 29.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 11.0ms | (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))) |
| 1.0ms | (sqrt (/ d h)) |
4 calls. Slowest were:
| 211.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 58.0ms | (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))) |
| 37.0ms | (sqrt (/ d h)) |
| 26.0ms | (sqrt (/ d l)) |
59 calls. Slowest were:
| 738.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d)))) (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))))) (sqrt l)) |
| 670.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d)))) (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))))) (sqrt h)) |
| 543.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d)))) (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 (/ l h)) (* (/ M 2) (/ D d))))))) (* (sqrt l) (sqrt h))) |
18 alts after pruning (18 fresh and 0 done)
Merged error: 6.8b
Found 4 expressions with local error:
| 10.8b | (sqrt (/ d l)) |
| 10.2b | (sqrt (/ d h)) |
| 7.0b | (* (* (/ M 2) (/ D d)) h) |
| 5.6b | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
4 calls. Slowest were:
| 35.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 14.0ms | (* (* (/ M 2) (/ D d)) h) |
| 2.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 232.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 37.0ms | (sqrt (/ d h)) |
| 35.0ms | (* (* (/ M 2) (/ D d)) h) |
| 27.0ms | (sqrt (/ d l)) |
54 calls. Slowest were:
| 877.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h))) (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))))) (* (sqrt l) (sqrt h))) |
| 803.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h))) (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))))) (sqrt h)) |
| 685.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h))) (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* 2 l) (* (* (/ M 2) (/ D d)) h)))))) (sqrt l)) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 6.4b
52.3% (7.1b remaining)
Error of 15.5b against oracle of 8.4b and baseline of 23.3b