


Bits error versus re



Bits error versus im
Results
if re < -2.4644086254785875e+153Initial program 60.9
rmApplied add-cube-cbrt60.9
Taylor expanded around -inf 8.1
if -2.4644086254785875e+153 < re < 2.060370107284489e-261Initial program 21.2
if 2.060370107284489e-261 < re Initial program 45.7
rmApplied flip--45.7
Applied associate-*r/45.7
Applied sqrt-div45.8
Simplified35.0
Final simplification25.8
herbie shell --seed 2019005
(FPCore (re im)
:name "math.sqrt on complex, imaginary part, im greater than 0 branch"
(* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re)))))
Time bar (total: 13.0s)Debug log
1 calls. Slowest were:
| 24.0ms | (* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 37.1b
Found 4 expressions with local error:
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 0.8b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.2b | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 18.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 7.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 123.0ms | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 29.0ms | (sqrt (+ (* re re) (* im im))) |
| 26.0ms | (+ (* re re) (* im im)) |
| 24.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
22 calls. Slowest were:
| 761.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)))) |
| 303.0ms | (sqrt (* 2.0 (- (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)))) |
| 119.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 19.2b
Found 4 expressions with local error:
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 10.0b | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
4 calls. Slowest were:
| 63.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 40.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
| 33.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 30.0ms | (sqrt (+ (* re re) (* im im))) |
30 calls. Slowest were:
| 172.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 123.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 108.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
7 alts after pruning (5 fresh and 2 done)
Merged error: 19.2b
Found 4 expressions with local error:
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 16.4b | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (exp (log (sqrt (+ (* re re) (* im im))))))) re) |
4 calls. Slowest were:
| 34.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (exp (log (sqrt (+ (* re re) (* im im))))))) re) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 42.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (exp (log (sqrt (+ (* re re) (* im im))))))) re) |
| 33.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 23.0ms | (sqrt (+ (* re re) (* im im))) |
30 calls. Slowest were:
| 160.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 140.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 135.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
7 alts after pruning (5 fresh and 2 done)
Merged error: 19.2b
Found 4 expressions with local error:
| 30.1b | (cbrt (+ (* re re) (* im im))) |
| 30.1b | (cbrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
| 29.0b | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 138.0ms | (cbrt (+ (* re re) (* im im))) |
| 127.0ms | (cbrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
34 calls. Slowest were:
| 165.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 143.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 128.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (6 fresh and 2 done)
Merged error: 19.2b
57.3% (8.7b remaining)
Error of 25.8b against oracle of 17.2b and baseline of 37.4b