


Bits error versus re



Bits error versus im
Results
if re < -2.158725719313022e+148Initial program 57.6
Taylor expanded around -inf 7.5
Simplified7.5
if -2.158725719313022e+148 < re < -1.8470168009869996e-301 or 4.2122813192253714e-256 < re < 1.7910245925154982e+121Initial program 18.9
if -1.8470168009869996e-301 < re < 4.2122813192253714e-256Initial program 28.2
Taylor expanded around 0 34.4
if 1.7910245925154982e+121 < re Initial program 51.7
Taylor expanded around inf 8.7
Final simplification16.8
herbie shell --seed 2018365
(FPCore (re im)
:name "math.abs on complex"
(sqrt (+ (* re re) (* im im))))
Time bar (total: 9.1s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 30.9b
Found 2 expressions with local error:
| 30.9b | (sqrt (+ (* re re) (* im im))) |
| 0.0b | (+ (* re re) (* im im)) |
2 calls. Slowest were:
| 2.0ms | (+ (* re re) (* im im)) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
2 calls. Slowest were:
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
| 15.0ms | (+ (* re re) (* im im)) |
13 calls. Slowest were:
| 112.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 34.0ms | (sqrt (+ (pow (* re re) 3) (pow (* im im) 3))) |
| 12.0ms | (* (exp (* re re)) (exp (* im im))) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 9.6b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 0.3b | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 0.1b | (sqrt (cbrt (+ (* re re) (* im im)))) |
4 calls. Slowest were:
| 12.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 4.0ms | (sqrt (cbrt (+ (* re re) (* im im)))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 121.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 106.0ms | (cbrt (+ (* re re) (* im im))) |
| 102.0ms | (cbrt (+ (* re re) (* im im))) |
| 93.0ms | (sqrt (cbrt (+ (* re re) (* im im)))) |
48 calls. Slowest were:
| 594.0ms | (+ (* (fabs (pow (+ (pow im 2) (pow re 2)) 1/3)) (pow im 1/3)) (* 1/6 (* (* (pow re 2) (fabs (pow (+ (pow im 2) (pow re 2)) 1/3))) (pow (/ 1 (pow im 5)) 1/3)))) |
| 207.0ms | (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
| 178.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 9.6b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 139.0ms | (cbrt (+ (* re re) (* im im))) |
| 125.0ms | (cbrt (+ (* re re) (* im im))) |
| 105.0ms | (cbrt (+ (* re re) (* im im))) |
| 91.0ms | (cbrt (+ (* re re) (* im im))) |
32 calls. Slowest were:
| 153.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 148.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 136.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 9.6b
Found 4 expressions with local error:
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
| 31.9b | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 121.0ms | (cbrt (+ (* re re) (* im im))) |
| 112.0ms | (cbrt (+ (* re re) (* im im))) |
| 111.0ms | (cbrt (+ (* re re) (* im im))) |
| 100.0ms | (cbrt (+ (* re re) (* im im))) |
32 calls. Slowest were:
| 192.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 148.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 124.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 9.6b
57% (9.3b remaining)
Error of 16.8b against oracle of 7.5b and baseline of 29.1b