


Bits error versus re



Bits error versus im
Results
if re < -6.721031304254009e+107Initial program 51.1
rmApplied add-sqr-sqrt51.1
Taylor expanded around -inf 10.1
if -6.721031304254009e+107 < re < 1.8532836327811608e-138Initial program 22.9
rmApplied add-sqr-sqrt23.0
rmApplied add-cube-cbrt23.1
Applied sqrt-prod23.1
Applied sqrt-prod23.1
Applied associate-*l*23.1
Simplified23.1
if 1.8532836327811608e-138 < re < 4.953966198300088e-106 or 3.782709412152994e+157 < re < 2.0952900608929343e+194Initial program 50.4
Taylor expanded around 0 47.4
if 4.953966198300088e-106 < re < 3.782709412152994e+157 or 2.0952900608929343e+194 < re Initial program 51.2
rmApplied flip--51.3
Applied associate-*r/51.3
Applied sqrt-div51.3
Simplified34.8
Final simplification26.0
herbie shell --seed 2019007
(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: 14.3s)Debug log
1 calls. Slowest were:
| 46.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:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (- (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:
| 21.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 7.0ms | (sqrt (+ (* re re) (* im im))) |
| 4.0ms | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 158.0ms | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 90.0ms | (sqrt (+ (* re re) (* im im))) |
| 66.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 25.0ms | (+ (* re re) (* im im)) |
22 calls. Slowest were:
| 297.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)))) |
| 211.0ms | (sqrt (* 2.0 (- (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)))) |
| 129.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 16.6b
Found 4 expressions with local error:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 7.8b | (- (* (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))))) re) |
| 17.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 43.0ms | (- (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 34.0ms | (sqrt (+ (* re re) (* im im))) |
| 33.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 30.0ms | (sqrt (+ (* re re) (* im im))) |
64 calls. Slowest were:
| 217.0ms | (* (sqrt (sqrt (- (* re re) (* im im)))) (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im))))))) |
| 173.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 166.0ms | (* (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 16.6b
Found 4 expressions with local error:
| 32.1b | (cbrt (+ (* re re) (* im im))) |
| 32.1b | (cbrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 8.0b | (- (* (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:
| 36.0ms | (- (* (sqrt (fabs (cbrt (+ (* re re) (* im im))))) (* (sqrt (sqrt (cbrt (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im)))))) re) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 130.0ms | (cbrt (+ (* re re) (* im im))) |
| 128.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))) |
| 32.0ms | (sqrt (+ (* re re) (* im im))) |
28 calls. Slowest were:
| 244.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) |
| 146.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 143.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 16.6b
Found 4 expressions with local error:
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
| 31.1b | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 28.0ms | (sqrt (+ (* re re) (* im im))) |
| 23.0ms | (sqrt (+ (* re re) (* im im))) |
| 20.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
36 calls. Slowest were:
| 167.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 148.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 125.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 16.6b
58.9% (8.4b remaining)
Error of 26.0b against oracle of 17.5b and baseline of 38.1b