


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
if y.re < -4.001353954028944e+116Initial program 40.7
Initial simplification40.7
rmApplied add-sqr-sqrt40.7
Applied *-un-lft-identity40.7
Applied times-frac40.7
Simplified40.7
Simplified27.0
rmApplied associate-*l/26.9
Simplified26.9
Taylor expanded around -inf 15.6
Simplified15.6
if -4.001353954028944e+116 < y.re < 1.6521411071335998e+156Initial program 19.3
Initial simplification19.3
rmApplied add-sqr-sqrt19.3
Applied *-un-lft-identity19.3
Applied times-frac19.3
Simplified19.3
Simplified11.9
rmApplied associate-*l/11.8
Simplified11.8
rmApplied *-un-lft-identity11.8
Applied *-un-lft-identity11.8
Applied times-frac11.8
Simplified11.8
if 1.6521411071335998e+156 < y.re Initial program 43.9
Initial simplification43.9
rmApplied add-sqr-sqrt43.9
Applied *-un-lft-identity43.9
Applied times-frac43.9
Simplified43.9
Simplified28.2
rmApplied associate-*l/28.2
Simplified28.2
Taylor expanded around inf 13.8
Final simplification12.7
herbie shell --seed 2018365 +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.2s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 24.9b
Found 1 expressions with local error:
| 24.9b | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
1 calls. Slowest were:
| 18.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
1 calls. Slowest were:
| 75.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
28 calls. Slowest were:
| 236.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)))) |
| 23.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))))) |
| 20.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: 16.8b
Found 4 expressions with local error:
| 16.5b | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 0.5b | (fma y.im x.im (* x.re 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)) |
4 calls. Slowest were:
| 12.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 7.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 2.0ms | (/ 1 (hypot y.im y.re)) |
4 calls. Slowest were:
| 119.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 75.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 27.0ms | (/ 1 (hypot y.im y.re)) |
| 26.0ms | (fma y.im x.im (* x.re y.re)) |
67 calls. Slowest were:
| 695.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 602.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)))) |
| 198.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))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 6.7b
Found 2 expressions with local error:
| 16.5b | (/ (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)) |
2 calls. Slowest were:
| 6.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 3.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
2 calls. Slowest were:
| 101.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 72.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
129 calls. Slowest were:
| 383.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))) |
| 262.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))) |
| 223.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 (10 fresh and 0 done)
Merged error: 3.0b
Found 2 expressions with local error:
| 16.5b | (/ (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)) |
2 calls. Slowest were:
| 6.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 3.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
2 calls. Slowest were:
| 100.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 82.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
129 calls. Slowest were:
| 342.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))) |
| 269.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))) |
| 259.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: 3.0b
26.6% (10.4b remaining)
Error of 12.7b against oracle of 2.3b and baseline of 16.5b