


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
if y.im < -6.506377436448894e+135Initial program 43.3
rmApplied add-sqr-sqrt43.3
Applied *-un-lft-identity43.3
Applied times-frac43.3
Simplified43.3
Simplified29.0
rmApplied associate-*l/28.9
Simplified28.9
Taylor expanded around -inf 14.7
Simplified14.7
if -6.506377436448894e+135 < y.im < 4.881520392713296e+183Initial program 20.5
rmApplied add-sqr-sqrt20.5
Applied *-un-lft-identity20.5
Applied times-frac20.5
Simplified20.5
Simplified13.0
rmApplied associate-*r/12.9
if 4.881520392713296e+183 < y.im Initial program 43.4
rmApplied add-sqr-sqrt43.4
Applied *-un-lft-identity43.4
Applied times-frac43.4
Simplified43.4
Simplified30.3
rmApplied associate-*r/30.3
Taylor expanded around 0 10.6
Final simplification13.0
herbie shell --seed 2019007 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, real part"
(/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))))
Time bar (total: 16.3s)Debug log
1 calls. Slowest were:
| 15.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 28.5b
Found 3 expressions with local error:
| 28.5b | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 0.9b | (+ (* x.re y.re) (* x.im y.im)) |
| 0.0b | (+ (* y.re y.re) (* y.im y.im)) |
3 calls. Slowest were:
| 10.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 2.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 2.0ms | (+ (* y.re y.re) (* y.im y.im)) |
3 calls. Slowest were:
| 72.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 24.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 15.0ms | (+ (* y.re y.re) (* y.im y.im)) |
40 calls. Slowest were:
| 514.0ms | (- (* (* x.re y.re) (* x.re y.re)) (* (* x.im y.im) (* x.im y.im))) |
| 309.0ms | (+ (* (* y.re y.re) (* y.re y.re)) (- (* (* y.im y.im) (* y.im y.im)) (* (* y.re y.re) (* y.im y.im)))) |
| 145.0ms | (/ (* (* (+ (* x.re y.re) (* x.im y.im)) (+ (* x.re y.re) (* x.im y.im))) (+ (* x.re y.re) (* x.im y.im))) (* (* (+ (* y.re y.re) (* y.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+ (* y.re y.re) (* y.im y.im)))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 19.7b
Found 4 expressions with local error:
| 19.4b | (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im)) |
| 0.7b | (fma x.re y.re (* x.im y.im)) |
| 0.2b | (* (/ 1 (hypot y.re y.im)) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im))) |
| 0.0b | (/ 1 (hypot y.re y.im)) |
4 calls. Slowest were:
| 12.0ms | (* (/ 1 (hypot y.re y.im)) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im))) |
| 7.0ms | (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im)) |
| 2.0ms | (/ 1 (hypot y.re y.im)) |
4 calls. Slowest were:
| 163.0ms | (* (/ 1 (hypot y.re y.im)) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im))) |
| 113.0ms | (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im)) |
| 42.0ms | (fma x.re y.re (* x.im y.im)) |
| 25.0ms | (/ 1 (hypot y.re y.im)) |
67 calls. Slowest were:
| 464.0ms | (* (* (* (/ 1 (hypot y.re y.im)) (/ 1 (hypot y.re y.im))) (/ 1 (hypot y.re y.im))) (* (* (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im)) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im))) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im)))) |
| 260.0ms | (* (/ 1 (hypot y.re y.im)) (/ (fma x.re y.re (* x.im y.im)) (hypot y.re y.im))) |
| 187.0ms | (/ (* (* (fma x.re y.re (* x.im y.im)) (fma x.re y.re (* x.im y.im))) (fma x.re y.re (* x.im y.im))) (* (* (hypot y.re y.im) (hypot y.re y.im)) (hypot y.re y.im))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 7.6b
Found 3 expressions with local error:
| 19.4b | (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) |
| 0.2b | (fma y.im x.im (* y.re x.re)) |
| 0.1b | (/ (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) (hypot y.re y.im)) |
3 calls. Slowest were:
| 9.0ms | (/ (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) (hypot y.re y.im)) |
| 3.0ms | (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) |
| 0.0ms | (fma y.im x.im (* y.re x.re)) |
3 calls. Slowest were:
| 106.0ms | (/ (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) (hypot y.re y.im)) |
| 71.0ms | (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) |
| 42.0ms | (fma y.im x.im (* y.re x.re)) |
132 calls. Slowest were:
| 350.0ms | (/ (/ (* (* (fma y.im x.im (* y.re x.re)) (fma y.im x.im (* y.re x.re))) (fma y.im x.im (* y.re x.re))) (* (* (hypot y.re y.im) (hypot y.re y.im)) (hypot y.re y.im))) (* (* (hypot y.re y.im) (hypot y.re y.im)) (hypot y.re y.im))) |
| 230.0ms | (/ (* (* (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im)) (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im))) (/ (fma y.im x.im (* y.re x.re)) (hypot y.re y.im))) (* (* (hypot y.re y.im) (hypot y.re y.im)) (hypot y.re y.im))) |
| 212.0ms | (/ (/ (* (cbrt (fma y.im x.im (* y.re x.re))) (cbrt (fma y.im x.im (* y.re x.re)))) (* (cbrt (hypot y.re y.im)) (cbrt (hypot y.re y.im)))) 1) |
10 alts after pruning (8 fresh and 2 done)
Merged error: 2.8b
Found 4 expressions with local error:
| 19.5b | (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) |
| 0.7b | (fma x.re y.re (* x.im y.im)) |
| 0.1b | (/ (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) (hypot y.re y.im)) |
| 0.0b | (/ 1 (hypot y.re y.im)) |
4 calls. Slowest were:
| 7.0ms | (/ (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) (hypot y.re y.im)) |
| 4.0ms | (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) |
| 1.0ms | (/ 1 (hypot y.re y.im)) |
4 calls. Slowest were:
| 125.0ms | (/ (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) (hypot y.re y.im)) |
| 93.0ms | (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im))) |
| 27.0ms | (/ 1 (hypot y.re y.im)) |
| 26.0ms | (fma x.re y.re (* x.im y.im)) |
44 calls. Slowest were:
| 668.0ms | (* (* (* (/ 1 (hypot y.re y.im)) (/ 1 (hypot y.re y.im))) (/ 1 (hypot y.re y.im))) (* (* (fma x.re y.re (* x.im y.im)) (fma x.re y.re (* x.im y.im))) (fma x.re y.re (* x.im y.im)))) |
| 201.0ms | (- (log (* (/ 1 (hypot y.re y.im)) (fma x.re y.re (* x.im y.im)))) (log (hypot y.re y.im))) |
| 137.0ms | (/ (* (* (* (/ 1 (hypot y.re y.im)) (/ 1 (hypot y.re y.im))) (/ 1 (hypot y.re y.im))) (* (* (fma x.re y.re (* x.im y.im)) (fma x.re y.re (* x.im y.im))) (fma x.re y.re (* x.im y.im)))) (* (* (hypot y.re y.im) (hypot y.re y.im)) (hypot y.re y.im))) |
10 alts after pruning (8 fresh and 2 done)
Merged error: 2.7b
29.5% (10.4b remaining)
Error of 13.0b against oracle of 2.5b and baseline of 17.3b