


Bits error versus re



Bits error versus im
Results
if re < -1.6813385983305504e+75Initial program 44.6
rmApplied add-sqr-sqrt44.6
rmApplied add-exp-log45.4
rmApplied pow1/245.4
Applied log-pow45.4
Applied exp-prod45.5
Taylor expanded around -inf 11.1
Simplified11.1
if -1.6813385983305504e+75 < re < 8.896182596446849e-305Initial program 21.1
if 8.896182596446849e-305 < re Initial program 45.2
rmApplied flip--45.2
Applied associate-*r/45.2
Applied sqrt-div45.3
Simplified34.2
Final simplification25.8
herbie shell --seed 2019004
(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.7s)Debug log
1 calls. Slowest were:
| 75.0ms | (* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 38.3b
Found 3 expressions with local error:
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 0.4b | (- (sqrt (+ (* re re) (* im im))) re) |
| 0.0b | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
3 calls. Slowest were:
| 19.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
| 6.0ms | (sqrt (+ (* re re) (* im im))) |
| 4.0ms | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
3 calls. Slowest were:
| 98.0ms | (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))) |
| 48.0ms | (sqrt (+ (* re re) (* im im))) |
| 29.0ms | (- (sqrt (+ (* re re) (* im im))) re) |
18 calls. Slowest were:
| 634.0ms | (sqrt (* 2.0 (- (pow (sqrt (+ (* re re) (* im im))) 3) (pow re 3)))) |
| 301.0ms | (sqrt (* 2.0 (- (* (sqrt (+ (* re re) (* im im))) (sqrt (+ (* re re) (* im im)))) (* re re)))) |
| 156.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 18.8b
Found 4 expressions with local error:
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 6.9b | (- (* (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:
| 14.0ms | (- (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 10.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 36.0ms | (- (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 29.0ms | (sqrt (+ (* re re) (* im im))) |
| 21.0ms | (sqrt (+ (* re re) (* im im))) |
| 20.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
64 calls. Slowest were:
| 234.0ms | (* (sqrt (sqrt (- (* re re) (* im im)))) (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im))))))) |
| 201.0ms | (* (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) (sqrt (sqrt (- (* re re) (* im im))))) |
| 187.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))))))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 18.8b
Found 4 expressions with local error:
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 12.8b | (- (* (sqrt (exp (log (sqrt (+ (* re re) (* im im)))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 5.9b | (exp (log (sqrt (+ (* re re) (* im im))))) |
4 calls. Slowest were:
| 14.0ms | (- (* (sqrt (exp (log (sqrt (+ (* re re) (* im im)))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 5.0ms | (sqrt (+ (* re re) (* im im))) |
| 3.0ms | (exp (log (sqrt (+ (* re re) (* im im))))) |
4 calls. Slowest were:
| 24.0ms | (- (* (sqrt (exp (log (sqrt (+ (* re re) (* im im)))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 22.0ms | (sqrt (+ (* re re) (* im im))) |
| 20.0ms | (exp (log (sqrt (+ (* re re) (* im im))))) |
| 18.0ms | (sqrt (+ (* re re) (* im im))) |
38 calls. Slowest were:
| 154.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 123.0ms | (exp (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
| 99.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 18.8b
Found 4 expressions with local error:
| 33.2b | (log (+ (* re re) (* im im))) |
| 31.9b | (sqrt (+ (* re re) (* im im))) |
| 12.5b | (- (* (sqrt (pow (exp 1/2) (log (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 6.4b | (pow (exp 1/2) (log (+ (* re re) (* im im)))) |
4 calls. Slowest were:
| 22.0ms | (- (* (sqrt (pow (exp 1/2) (log (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 6.0ms | (pow (exp 1/2) (log (+ (* re re) (* im im)))) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 171.0ms | (- (* (sqrt (pow (exp 1/2) (log (+ (* re re) (* im im))))) (sqrt (sqrt (+ (* re re) (* im im))))) re) |
| 119.0ms | (pow (exp 1/2) (log (+ (* re re) (* im im)))) |
| 41.0ms | (log (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
38 calls. Slowest were:
| 176.0ms | (pow (exp 1/2) (log (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
| 142.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 120.0ms | (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 18.8b
59.3% (8.2b remaining)
Error of 25.8b against oracle of 17.6b and baseline of 37.7b