


Bits error versus re



Bits error versus im
Results
if im < -7.5738613442925e+124Initial program 53.9
Taylor expanded around inf 53.9
Taylor expanded around -inf 8.9
if -7.5738613442925e+124 < im < -1.1129029891800812e-104Initial program 21.5
rmApplied flip--28.3
Applied associate-*r/28.3
Applied sqrt-div28.4
Simplified21.6
if -1.1129029891800812e-104 < im < 2.6871600780710753e-213Initial program 39.3
rmApplied add-cube-cbrt41.3
Taylor expanded around -inf 34.8
if 2.6871600780710753e-213 < im < 4.245068343236042e+116Initial program 27.1
rmApplied add-cube-cbrt27.4
Applied sqrt-prod27.4
Simplified27.4
if 4.245068343236042e+116 < im Initial program 52.4
rmApplied add-cube-cbrt52.5
Taylor expanded around 0 9.1
Final simplification22.3
herbie shell --seed 2019002
(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.3s)Debug log
1 calls. Slowest were:
| 44.0ms | (* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 36.7b
Found 4 expressions with local error:
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 1.0b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.0b | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 22.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 6.0ms | (sqrt (+ (* re re) (* im im))) |
| 4.0ms | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 123.0ms | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 47.0ms | (sqrt (+ (* re re) (* im im))) |
| 41.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 15.0ms | (+ (* re re) (* im im)) |
22 calls. Slowest were:
| 354.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)))) |
| 283.0ms | (sqrt (* 2.0 (- (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)))) |
| 136.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 15.1b
Found 4 expressions with local error:
| 28.7b | (sqrt (+ (pow im 2) (pow re 2))) |
| 1.0b | (- (sqrt (+ (pow im 2) (pow re 2))) re) |
| 0.0b | (sqrt (* 2.0 (- (sqrt (+ (pow im 2) (pow re 2))) re))) |
| 0.0b | (+ (pow im 2) (pow re 2)) |
4 calls. Slowest were:
| 32.0ms | (- (sqrt (+ (pow im 2) (pow re 2))) re) |
| 6.0ms | (sqrt (+ (pow im 2) (pow re 2))) |
| 3.0ms | (+ (pow im 2) (pow re 2)) |
4 calls. Slowest were:
| 106.0ms | (sqrt (* 2.0 (- (sqrt (+ (pow im 2) (pow re 2))) re))) |
| 33.0ms | (- (sqrt (+ (pow im 2) (pow re 2))) re) |
| 23.0ms | (+ (pow im 2) (pow re 2)) |
| 21.0ms | (sqrt (+ (pow im 2) (pow re 2))) |
24 calls. Slowest were:
| 224.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (pow im 2) (pow re 2))) (sqrt (+ (pow im 2) (pow re 2)))) (* re re)))) |
| 202.0ms | (sqrt (* 2.0 (- (pow (sqrt (+ (pow im 2) (pow re 2))) 3) (pow re 3)))) |
| 132.0ms | (sqrt (- (* (pow im 2) (pow im 2)) (* (pow re 2) (pow re 2)))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 9.6b
Found 4 expressions with local error:
| 29.6b | (cbrt (+ (* re re) (* im im))) |
| 29.6b | (cbrt (+ (* re re) (* im im))) |
| 6.4b | (- (* (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:
| 7.0ms | (- (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) re) |
| 6.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 108.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 104.0ms | (- (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) re) |
| 84.0ms | (cbrt (+ (* re re) (* im im))) |
| 80.0ms | (cbrt (+ (* re re) (* im im))) |
38 calls. Slowest were:
| 292.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) |
| 210.0ms | (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
| 178.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)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 9.6b
Found 4 expressions with local error:
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 10.5b | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
4 calls. Slowest were:
| 44.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (- (* (* (cbrt (sqrt (+ (* re re) (* im im)))) (cbrt (sqrt (+ (* re re) (* im im))))) (cbrt (sqrt (+ (* re re) (* im im))))) re) |
| 29.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
30 calls. Slowest were:
| 165.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 142.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 139.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 9.6b
54.2% (12.9b remaining)
Error of 22.3b against oracle of 9.5b and baseline of 37.6b