


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
if y.im < 3.052453129606842e+67Initial program 23.0
rmApplied add-sqr-sqrt23.0
Applied associate-/r*22.9
rmApplied div-inv23.0
if 3.052453129606842e+67 < y.im Initial program 37.9
rmApplied add-sqr-sqrt37.9
Applied associate-/r*37.9
rmApplied div-inv37.9
Taylor expanded around 0 37.8
Final simplification26.0
herbie shell --seed 2018365
(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: 11.5s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 24.9b
Found 2 expressions with local error:
| 24.9b | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 0.5b | (+ (* x.re y.re) (* x.im y.im)) |
2 calls. Slowest were:
| 10.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 4.0ms | (+ (* x.re y.re) (* x.im y.im)) |
2 calls. Slowest were:
| 90.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 44.0ms | (+ (* x.re y.re) (* x.im y.im)) |
36 calls. Slowest were:
| 219.0ms | (- (* (* x.re y.re) (* x.re y.re)) (* (* x.im y.im) (* x.im y.im))) |
| 208.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)))) |
| 123.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: 24.4b
Found 4 expressions with local error:
| 29.3b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 29.3b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 16.5b | (/ (+ (* x.re y.re) (* x.im y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 0.5b | (+ (* x.re y.re) (* x.im y.im)) |
4 calls. Slowest were:
| 17.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 4.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 3.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 97.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 40.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 20.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 20.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
75 calls. Slowest were:
| 353.0ms | (- (* (* x.re y.re) (* x.re y.re)) (* (* x.im y.im) (* x.im y.im))) |
| 186.0ms | (sqrt (+ (* (* y.re y.re) (* y.re y.re)) (- (* (* y.im y.im) (* y.im y.im)) (* (* y.re y.re) (* y.im y.im))))) |
| 177.0ms | (sqrt (- (* (* y.re y.re) (* y.re y.re)) (* (* y.im y.im) (* y.im y.im)))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 21.8b
Found 4 expressions with local error:
| 29.3b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 29.3b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 16.7b | (* (+ (* x.re y.re) (* x.im y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 0.5b | (+ (* x.re y.re) (* x.im y.im)) |
4 calls. Slowest were:
| 6.0ms | (* (+ (* x.re y.re) (* x.im y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 2.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 2.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 114.0ms | (* (+ (* x.re y.re) (* x.im y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 37.0ms | (+ (* x.re y.re) (* x.im y.im)) |
| 20.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 20.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
45 calls. Slowest were:
| 485.0ms | (* (- (* (* x.re y.re) (* x.re y.re)) (* (* x.im y.im) (* x.im y.im))) 1) |
| 405.0ms | (* (+ (pow (* x.re y.re) 3) (pow (* x.im y.im) 3)) 1) |
| 174.0ms | (* (- (* (* x.re y.re) (* x.re y.re)) (* (* x.im y.im) (* x.im y.im))) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
10 alts after pruning (8 fresh and 2 done)
Merged error: 21.8b
Found 4 expressions with local error:
| 30.3b | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 30.3b | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 30.3b | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 29.3b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 2.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 1.0ms | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 1.0ms | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 129.0ms | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 106.0ms | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 105.0ms | (cbrt (+ (* y.re y.re) (* y.im y.im))) |
| 25.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
33 calls. Slowest were:
| 187.0ms | (sqrt (- (* (* y.re y.re) (* y.re y.re)) (* (* y.im y.im) (* y.im y.im)))) |
| 163.0ms | (cbrt (- (* (* y.re y.re) (* y.re y.re)) (* (* y.im y.im) (* y.im y.im)))) |
| 135.0ms | (cbrt (- (* (* y.re y.re) (* y.re y.re)) (* (* y.im y.im) (* y.im y.im)))) |
10 alts after pruning (7 fresh and 3 done)
Merged error: 21.8b
1% (2.6b remaining)
Error of 26.0b against oracle of 23.4b and baseline of 26.1b