


Bits error versus re



Bits error versus im
Results
if (* im im) < 6.444809843389556e-182Initial program 39.2
Initial simplification39.2
Taylor expanded around -inf 36.5
if 6.444809843389556e-182 < (* im im) < 9.619872746731204e+304Initial program 21.2
Initial simplification21.2
rmApplied add-sqr-sqrt21.2
Applied sqrt-prod21.3
rmApplied add-cube-cbrt21.3
Applied sqrt-prod21.3
Applied sqrt-prod21.3
Applied associate-*r*21.3
if 9.619872746731204e+304 < (* im im) Initial program 60.7
Initial simplification60.7
Taylor expanded around 0 33.2
Final simplification29.7
herbie shell --seed 2018360
(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: 12.9s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 38.8b
Found 3 expressions with local error:
| 29.8b | (sqrt (+ (* re re) (* im im))) |
| 0.9b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.0b | (+ (* re re) (* im im)) |
3 calls. Slowest were:
| 667.0ms | (+ (* re re) (* im im)) |
| 11.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
3 calls. Slowest were:
| 44.0ms | (sqrt (+ (* re re) (* im im))) |
| 28.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 19.0ms | (+ (* re re) (* im im)) |
16 calls. Slowest were:
| 140.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 59.0ms | (sqrt (+ (pow (* re re) 3) (pow (* im im) 3))) |
| 8.0ms | (* (exp (* re re)) (exp (* im im))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 22.7b
Found 4 expressions with local error:
| 29.8b | (sqrt (+ (* re re) (* im im))) |
| 29.8b | (sqrt (+ (* re re) (* im im))) |
| 8.4b | (- (* (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:
| 13.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 11.0ms | (- (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 50.0ms | (- (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 34.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
64 calls. Slowest were:
| 543.0ms | (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
| 468.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))))))) |
| 181.0ms | (* (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (sqrt (sqrt (+ (pow (* re re) 3) (pow (* im im) 3))))) |
12 alts after pruning (11 fresh and 1 done)
Merged error: 22.7b
Found 4 expressions with local error:
| 30.8b | (cbrt (+ (* re re) (* im im))) |
| 30.8b | (cbrt (+ (* re re) (* im im))) |
| 29.8b | (sqrt (+ (* re re) (* im im))) |
| 7.4b | (- (* (sqrt (fabs (cbrt (+ (* re re) (* im im))))) (* (sqrt (sqrt (cbrt (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im)))))) re) |
4 calls. Slowest were:
| 40.0ms | (- (* (sqrt (fabs (cbrt (+ (* re re) (* im im))))) (* (sqrt (sqrt (cbrt (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im)))))) re) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 131.0ms | (- (* (sqrt (fabs (cbrt (+ (* re re) (* im im))))) (* (sqrt (sqrt (cbrt (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im)))))) re) |
| 119.0ms | (cbrt (+ (* re re) (* im im))) |
| 94.0ms | (cbrt (+ (* re re) (* im im))) |
| 32.0ms | (sqrt (+ (* re re) (* im im))) |
28 calls. Slowest were:
| 297.0ms | (- (+ (* 1/3 (* (pow re 2) (* (sqrt (fabs (pow (+ (pow im 2) (pow re 2)) 1/3))) (pow (/ 1 (pow im 4)) 1/3)))) (* (sqrt (fabs (pow (+ (pow im 2) (pow re 2)) 1/3))) (pow (pow im 2) 1/3))) re) |
| 169.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 168.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
14 alts after pruning (13 fresh and 1 done)
Merged error: 22.7b
Found 4 expressions with local error:
| 30.8b | (cbrt (+ (* re re) (* im im))) |
| 30.8b | (cbrt (+ (* re re) (* im im))) |
| 30.8b | (cbrt (+ (* re re) (* im im))) |
| 29.8b | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 120.0ms | (cbrt (+ (* re re) (* im im))) |
| 118.0ms | (cbrt (+ (* re re) (* im im))) |
| 99.0ms | (cbrt (+ (* re re) (* im im))) |
| 32.0ms | (sqrt (+ (* re re) (* im im))) |
33 calls. Slowest were:
| 184.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 146.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 126.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
14 alts after pruning (12 fresh and 2 done)
Merged error: 22.7b
47.8% (9.1b remaining)
Error of 29.7b against oracle of 20.6b and baseline of 38.1b