


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.5
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 div-inv29.8
Applied associate-/l*26.6
rmApplied sqrt-div20.9
Final simplification15.5
herbie shell --seed 2019002
(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:
| 174.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 24.2b
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:
| 24.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
| 11.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
| 1.0ms | (pow (/ d l) (/ 1 2)) |
4 calls. Slowest were:
| 187.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
| 94.0ms | (pow (/ d l) (/ 1 2)) |
| 92.0ms | (pow (/ d h) (/ 1 2)) |
| 85.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
71 calls. Slowest were:
| 761.0ms | (* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h) |
| 563.0ms | (+ (+ (log (/ 1 2)) (log (pow (/ (* M D) (* 2 d)) 2))) (log (/ h l))) |
| 510.0ms | (+ (+ (* (log (/ d h)) (/ 1 2)) (log (pow (/ d l) (/ 1 2)))) (log (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))))) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 9.6b
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:
| 33.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l))) |
| 20.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) |
| 3.0ms | (pow (/ d h) (/ 1 2)) |
4 calls. Slowest were:
| 249.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l))) |
| 91.0ms | (pow (/ d h) (/ 1 2)) |
| 79.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) |
| 71.0ms | (pow (/ d l) (/ 1 2)) |
57 calls. Slowest were:
| 646.0ms | (* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h) |
| 353.0ms | (* 1/8 (/ (* (pow M 2) (* (pow D 2) h)) (pow d 2))) |
| 317.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 | (/ (/ (* l 2) h) (* (/ M 2) (/ D d))) |
| 10.2b | (sqrt (/ d h)) |
| 5.6b | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
4 calls. Slowest were:
| 31.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 12.0ms | (/ (/ (* l 2) h) (* (/ M 2) (/ D d))) |
| 1.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 237.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 68.0ms | (/ (/ (* l 2) h) (* (/ M 2) (/ D d))) |
| 38.0ms | (sqrt (/ d h)) |
| 37.0ms | (sqrt (/ d l)) |
68 calls. Slowest were:
| 862.0ms | (* 4 (/ (* l d) (* h (* M D)))) |
| 471.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d)))) (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))))) (* (sqrt l) (sqrt h))) |
| 451.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d)))) (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (/ (* l 2) h) (* (/ M 2) (/ D d))))))) (sqrt l)) |
19 alts after pruning (19 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)) (/ 1 h)) |
| 5.6b | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
4 calls. Slowest were:
| 14.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 6.0ms | (/ (* (/ M 2) (/ D d)) (/ 1 h)) |
| 1.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 183.0ms | (* (- 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 50.0ms | (/ (* (/ M 2) (/ D d)) (/ 1 h)) |
| 39.0ms | (sqrt (/ d l)) |
| 39.0ms | (sqrt (/ d h)) |
70 calls. Slowest were:
| 666.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h)))) (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))))) (sqrt h)) |
| 576.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h)))) (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))))) (* (sqrt l) (sqrt h))) |
| 547.0ms | (* (+ (* 1 1) (+ (* (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h)))) (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))) (* 1 (/ (* (/ M 2) (/ D d)) (/ (* l 2) (/ (* (/ M 2) (/ D d)) (/ 1 h))))))) (sqrt l)) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 6.5b
52% (7.2b remaining)
Error of 15.5b against oracle of 8.4b and baseline of 23.3b