



Bits error versus re




Bits error versus im
Results
| Original | 37.8 |
|---|---|
| Target | 33.1 |
| Herbie | 22.0 |
if re < -7.930209359935956e+107Initial program 60.4
rmApplied flip-+60.4
Applied associate-*r/60.4
Applied sqrt-div60.4
Simplified44.8
Taylor expanded around -inf 21.6
if -7.930209359935956e+107 < re < -7.47449967617973e-299Initial program 37.9
rmApplied flip-+37.8
Applied associate-*r/37.8
Applied sqrt-div38.0
Simplified30.1
rmApplied clear-num30.1
if -7.47449967617973e-299 < re < 4.877487741178766e+95Initial program 20.5
if 4.877487741178766e+95 < re Initial program 49.6
Taylor expanded around inf 10.3
Final simplification22.0
herbie shell --seed 2019007
(FPCore (re im)
:name "math.sqrt on complex, real part"
:herbie-target
(if (< re 0) (* 0.5 (* (sqrt 2) (sqrt (/ (* im im) (- (sqrt (+ (* re re) (* im im))) re))))) (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))
(* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))
Time bar (total: 18.7s)Debug log
1 calls. Slowest were:
| 18.0ms | (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 39.9b
Found 4 expressions with local error:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re))) |
| 0.0b | (+ (sqrt (+ (* re re) (* im im))) re) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 16.0ms | (+ (sqrt (+ (* re re) (* im im))) re) |
| 4.0ms | (+ (* re re) (* im im)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 394.0ms | (sqrt (+ (* re re) (* im im))) |
| 128.0ms | (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re))) |
| 44.0ms | (+ (sqrt (+ (* re re) (* im im))) re) |
| 25.0ms | (+ (* re re) (* im im)) |
22 calls. Slowest were:
| 324.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)))) |
| 149.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 127.0ms | (sqrt (* 2.0 (+ (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 18.2b
Found 4 expressions with local error:
| 32.1b | (cbrt (+ (* re re) (* im im))) |
| 32.1b | (cbrt (+ (* re re) (* im im))) |
| 32.1b | (cbrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (* (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im)))) (cbrt (+ (* re re) (* im im))))) |
4 calls. Slowest were:
| 15.0ms | (sqrt (* (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im)))) (cbrt (+ (* re re) (* im im))))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 116.0ms | (cbrt (+ (* re re) (* im im))) |
| 107.0ms | (cbrt (+ (* re re) (* im im))) |
| 89.0ms | (cbrt (+ (* re re) (* im im))) |
| 21.0ms | (sqrt (* (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im)))) (cbrt (+ (* re re) (* im im))))) |
54 calls. Slowest were:
| 193.0ms | (sqrt (* (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (pow (* re re) 3) (pow (* im im) 3)))) (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
| 188.0ms | (sqrt (* (* (cbrt (+ (pow (* re re) 3) (pow (* im im) 3))) (cbrt (+ (pow (* re re) 3) (pow (* im im) 3)))) (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
| 172.0ms | (sqrt (* (* (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) (cbrt (+ (pow (* re re) 3) (pow (* im im) 3)))) (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 18.2b
Found 4 expressions with local error:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 8.0b | (+ (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 0.5b | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
4 calls. Slowest were:
| 20.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 17.0ms | (+ (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 35.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 31.0ms | (+ (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
64 calls. Slowest were:
| 213.0ms | (* (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (sqrt (sqrt (+ (pow (* re re) 3) (pow (* im im) 3))))) |
| 175.0ms | (* (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im))))))) |
| 160.0ms | (* (sqrt (sqrt (+ (pow (* re re) 3) (pow (* im im) 3)))) (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 18.2b
Found 4 expressions with local error:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 30.3b | (sqrt (* im (* im 2.0))) |
| 0.5b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.2b | (/ (sqrt (* im (* im 2.0))) (sqrt (- (sqrt (+ (* re re) (* im im))) re))) |
4 calls. Slowest were:
| 15.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 14.0ms | (/ (sqrt (* im (* im 2.0))) (sqrt (- (sqrt (+ (* re re) (* im im))) re))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 131.0ms | (/ (sqrt (* im (* im 2.0))) (sqrt (- (sqrt (+ (* re re) (* im im))) re))) |
| 28.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 27.0ms | (sqrt (+ (* re re) (* im im))) |
| 25.0ms | (sqrt (* im (* im 2.0))) |
81 calls. Slowest were:
| 248.0ms | (/ (* (* (sqrt (* im (* im 2.0))) (sqrt (* im (* im 2.0)))) (sqrt (* im (* im 2.0)))) (* (* (sqrt (- (sqrt (+ (* re re) (* im im))) re)) (sqrt (- (sqrt (+ (* re re) (* im im))) re))) (sqrt (- (sqrt (+ (* re re) (* im im))) re)))) |
| 155.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 80.0ms | (/ (* im (* im 2.0)) (- (sqrt (+ (* re re) (* im im))) re)) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 10.4b
56.9% (11.9b remaining)
Error of 22.0b against oracle of 10.1b and baseline of 37.8b