


Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
if l < -1.503784793063004e-34Initial program 25.1
Taylor expanded around -inf 21.0
Simplified17.5
if -1.503784793063004e-34 < l < 7.035144094276047e-40Initial program 26.7
rmApplied div-inv26.7
Applied associate-*r*21.6
if 7.035144094276047e-40 < l Initial program 25.0
Simplified25.4
rmApplied sqrt-div17.6
Applied sqrt-div14.2
Applied frac-times14.2
Applied associate-*r/13.9
Final simplification17.4
herbie shell --seed 2019008 +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: 51.4s)Debug log
1 calls. Slowest were:
| 185.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: 26.4b
Found 4 expressions with local error:
| 15.0b | (sqrt (/ d h)) |
| 11.2b | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 9.8b | (sqrt (/ d l)) |
| 6.8b | (* (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
4 calls. Slowest were:
| 13.0ms | (* (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 1.0ms | (sqrt (/ d h)) |
| 1.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 170.0ms | (* (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) (* (sqrt (/ d l)) (sqrt (/ d h)))) |
| 102.0ms | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 41.0ms | (sqrt (/ d h)) |
| 23.0ms | (sqrt (/ d l)) |
36 calls. Slowest were:
| 864.0ms | (* (cbrt (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1)) (cbrt (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1))) |
| 611.0ms | (+ (log (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1)) (+ (log (sqrt (/ d l))) (log (sqrt (/ d h))))) |
| 541.0ms | (+ (log (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1)) (log (* (sqrt (/ d l)) (sqrt (/ d h))))) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 21.1b
Found 4 expressions with local error:
| 15.0b | (sqrt (/ d h)) |
| 11.2b | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 9.8b | (sqrt (/ d l)) |
| 9.8b | (sqrt (/ d l)) |
4 calls. Slowest were:
| 2.0ms | (sqrt (/ d h)) |
| 1.0ms | (sqrt (/ d l)) |
| 1.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 62.0ms | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 28.0ms | (sqrt (/ d h)) |
| 27.0ms | (sqrt (/ d l)) |
| 24.0ms | (sqrt (/ d l)) |
30 calls. Slowest were:
| 92.0ms | (- 1 (* 1/8 (/ (* (pow M 2) (* (pow D 2) h)) (* l (pow d 2))))) |
| 2.0ms | (sqrt (* (cbrt (/ d h)) (cbrt (/ d h)))) |
| 2.0ms | (sqrt (* (cbrt (/ d l)) (cbrt (/ d l)))) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 21.1b
Found 4 expressions with local error:
| 15.0b | (sqrt (/ d h)) |
| 15.0b | (sqrt (/ d h)) |
| 11.2b | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 9.8b | (sqrt (/ d l)) |
4 calls. Slowest were:
| 1.0ms | (sqrt (/ d h)) |
| 1.0ms | (sqrt (/ d h)) |
| 1.0ms | (sqrt (/ d l)) |
4 calls. Slowest were:
| 68.0ms | (fma (* (* (* (/ M 2) (/ D d)) (* (/ M 2) (/ D d))) -1/2) (/ h l) 1) |
| 31.0ms | (sqrt (/ d h)) |
| 28.0ms | (sqrt (/ d l)) |
| 27.0ms | (sqrt (/ d h)) |
30 calls. Slowest were:
| 107.0ms | (- 1 (* 1/8 (/ (* (pow M 2) (* (pow D 2) h)) (* l (pow d 2))))) |
| 5.0ms | (sqrt (* (cbrt (/ d h)) (cbrt (/ d h)))) |
| 4.0ms | (sqrt (* (cbrt (/ d h)) (cbrt (/ d h)))) |
20 alts after pruning (19 fresh and 1 done)
Merged error: 21.1b
Found 4 expressions with local error:
| 15.0b | (pow (/ d h) (/ 1 2)) |
| 13.4b | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
| 9.8b | (pow (/ d l) (/ 1 2)) |
| 6.8b | (* (* (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:
| 15.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)) |
| 3.0ms | (pow (/ d h) (/ 1 2)) |
4 calls. Slowest were:
| 227.0ms | (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) |
| 80.0ms | (pow (/ d h) (/ 1 2)) |
| 79.0ms | (pow (/ d l) (/ 1 2)) |
| 75.0ms | (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)) |
71 calls. Slowest were:
| 517.0ms | (* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h) |
| 447.0ms | (+ (+ (log (/ 1 2)) (log (pow (/ (* M D) (* 2 d)) 2))) (log (/ h l))) |
| 345.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))))) |
24 alts after pruning (23 fresh and 1 done)
Merged error: 13.2b
54.8% (6.1b remaining)
Error of 17.4b against oracle of 11.4b and baseline of 24.8b