


Bits error versus re



Bits error versus im
Results
if re < -3.269784804517612e+55Initial program 42.5
Initial simplification42.5
Taylor expanded around -inf 11.8
if -3.269784804517612e+55 < re < 4.5620662079317833e-88Initial program 24.6
Initial simplification24.6
if 4.5620662079317833e-88 < re Initial program 52.3
Initial simplification52.3
rmApplied flip--52.3
Applied associate-*l/52.3
Applied sqrt-div52.3
Simplified37.4
Final simplification25.9
herbie shell --seed 2018365
(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: 11.6s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 38.1b
Found 4 expressions with local error:
| 30.9b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.2b | (sqrt (* (- (sqrt (+ (* re re) (* im im))) re) 2.0)) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 14.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 13.0ms | (sqrt (* (- (sqrt (+ (* re re) (* im im))) re) 2.0)) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 133.0ms | (sqrt (* (- (sqrt (+ (* re re) (* im im))) re) 2.0)) |
| 41.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 27.0ms | (sqrt (+ (* re re) (* im im))) |
| 22.0ms | (+ (* re re) (* im im)) |
22 calls. Slowest were:
| 299.0ms | (sqrt (* (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)) 2.0)) |
| 261.0ms | (sqrt (* (- (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)) 2.0)) |
| 148.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 19.8b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 4.1b | (- (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) re) |
| 0.3b | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
4 calls. Slowest were:
| 16.0ms | (- (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) re) |
| 12.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 120.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 97.0ms | (cbrt (+ (* re re) (* im im))) |
| 87.0ms | (- (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) re) |
| 78.0ms | (cbrt (+ (* re re) (* im im))) |
38 calls. Slowest were:
| 204.0ms | (- (+ (* (fabs (pow (+ (pow im 2) (pow re 2)) 1/3)) (pow im 1/3)) (* 1/6 (* (* (pow re 2) (fabs (pow (+ (pow im 2) (pow re 2)) 1/3))) (pow (/ 1 (pow im 5)) 1/3)))) re) |
| 180.0ms | (+ (* (fabs (pow (+ (pow im 2) (pow re 2)) 1/3)) (pow im 1/3)) (* 1/6 (* (* (pow re 2) (fabs (pow (+ (pow im 2) (pow re 2)) 1/3))) (pow (/ 1 (pow im 5)) 1/3)))) |
| 177.0ms | (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 19.8b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 131.0ms | (cbrt (+ (* re re) (* im im))) |
| 110.0ms | (cbrt (+ (* re re) (* im im))) |
| 108.0ms | (cbrt (+ (* re re) (* im im))) |
| 102.0ms | (cbrt (+ (* re re) (* im im))) |
32 calls. Slowest were:
| 153.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 125.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 124.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (6 fresh and 2 done)
Merged error: 19.8b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 110.0ms | (cbrt (+ (* re re) (* im im))) |
| 100.0ms | (cbrt (+ (* re re) (* im im))) |
| 95.0ms | (cbrt (+ (* re re) (* im im))) |
| 90.0ms | (cbrt (+ (* re re) (* im im))) |
32 calls. Slowest were:
| 153.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 142.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 117.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (5 fresh and 3 done)
Merged error: 19.8b
55.8% (8.7b remaining)
Error of 25.9b against oracle of 17.2b and baseline of 36.9b