


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
if y.re < -5.958224986118704e+172Initial program 43.4
Simplified43.4
rmApplied add-sqr-sqrt43.4
Applied *-un-lft-identity43.4
Applied times-frac43.4
Simplified43.4
Simplified30.3
rmApplied associate-*l/30.2
Simplified30.2
Taylor expanded around -inf 11.7
Simplified11.7
if -5.958224986118704e+172 < y.re < 6.6100911784357434e+81Initial program 20.0
Simplified20.0
rmApplied add-sqr-sqrt20.0
Applied *-un-lft-identity20.0
Applied times-frac20.0
Simplified20.0
Simplified12.2
rmApplied associate-*l/12.0
Simplified12.0
if 6.6100911784357434e+81 < y.re Initial program 37.4
Simplified37.4
rmApplied add-sqr-sqrt37.4
Applied *-un-lft-identity37.4
Applied times-frac37.4
Simplified37.4
Simplified24.7
rmApplied associate-*l/24.6
Simplified24.6
rmApplied *-un-lft-identity24.6
Applied associate-/l*24.7
Taylor expanded around 0 17.1
Final simplification13.0
herbie shell --seed 2019008 +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: 19.7s)Debug log
1 calls. Slowest were:
| 14.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 28.3b
Found 3 expressions with local error:
| 28.3b | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 0.0b | (fma y.im y.im (* y.re y.re)) |
| 0.0b | (fma x.re y.re (* x.im y.im)) |
3 calls. Slowest were:
| 4.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 0.0ms | (fma y.im y.im (* y.re y.re)) |
| 0.0ms | (fma x.re y.re (* x.im y.im)) |
3 calls. Slowest were:
| 59.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 25.0ms | (fma x.re y.re (* x.im y.im)) |
| 18.0ms | (fma y.im y.im (* y.re y.re)) |
34 calls. Slowest were:
| 211.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))) (* (* (fma y.im y.im (* y.re y.re)) (fma y.im y.im (* y.re y.re))) (fma y.im y.im (* y.re y.re)))) |
| 41.0ms | (/ (* (cbrt (fma x.re y.re (* x.im y.im))) (cbrt (fma x.re y.re (* x.im y.im)))) (* (cbrt (fma y.im y.im (* y.re y.re))) (cbrt (fma y.im y.im (* y.re y.re))))) |
| 19.0ms | (/ (cbrt (fma x.re y.re (* x.im y.im))) (cbrt (fma y.im y.im (* y.re y.re)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 17.5b
Found 4 expressions with local error:
| 17.2b | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 0.2b | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 0.0b | (/ 1 (hypot y.im y.re)) |
| 0.0b | (hypot y.im y.re) |
4 calls. Slowest were:
| 6.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 3.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 1.0ms | (/ 1 (hypot y.im y.re)) |
4 calls. Slowest were:
| 149.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 86.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 26.0ms | (/ 1 (hypot y.im y.re)) |
| 23.0ms | (hypot y.im y.re) |
67 calls. Slowest were:
| 616.0ms | (* (* (* (/ 1 (hypot y.im y.re)) (/ 1 (hypot y.im y.re))) (/ 1 (hypot y.im y.re))) (* (* (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)))) |
| 322.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 130.0ms | (/ (* (* (fma y.im x.im (* x.re y.re)) (fma y.im x.im (* x.re y.re))) (fma y.im x.im (* x.re y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 7.1b
Found 4 expressions with local error:
| 17.2b | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 0.1b | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 0.0b | (fma y.re x.re (* x.im y.im)) |
| 0.0b | (hypot y.im y.re) |
4 calls. Slowest were:
| 12.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 6.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 0.0ms | (fma y.re x.re (* x.im y.im)) |
4 calls. Slowest were:
| 114.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 109.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 47.0ms | (fma y.re x.re (* x.im y.im)) |
| 38.0ms | (hypot y.im y.re) |
135 calls. Slowest were:
| 265.0ms | (/ (/ (* (* (fma y.re x.re (* x.im y.im)) (fma y.re x.re (* x.im y.im))) (fma y.re x.re (* x.im y.im))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
| 215.0ms | (/ (* (* (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re))) (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
| 184.0ms | (/ (/ (* (cbrt (fma y.re x.re (* x.im y.im))) (cbrt (fma y.re x.re (* x.im y.im)))) (* (cbrt (hypot y.im y.re)) (cbrt (hypot y.im y.re)))) 1) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 1.9b
Found 4 expressions with local error:
| 17.3b | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 0.2b | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
| 0.1b | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 0.0b | (fma y.re x.re (* x.im y.im)) |
4 calls. Slowest were:
| 4.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 3.0ms | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 1.0ms | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
4 calls. Slowest were:
| 121.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 112.0ms | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
| 68.0ms | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 38.0ms | (fma y.re x.re (* x.im y.im)) |
92 calls. Slowest were:
| 799.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (cbrt (hypot y.im y.re))) |
| 444.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (cbrt (hypot y.im y.re))) |
| 402.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (sqrt (hypot y.im y.re))) |
11 alts after pruning (9 fresh and 2 done)
Merged error: 1.9b
25% (10.6b remaining)
Error of 13.0b against oracle of 2.4b and baseline of 16.5b