


Bits error versus re



Bits error versus im
Results
if re < -1.758999353527392e+183Initial program 59.1
rmApplied add-sqr-sqrt59.1
Applied sqrt-prod59.1
Taylor expanded around -inf 7.0
Simplified7.0
if -1.758999353527392e+183 < re < -1.7987418643598683e-280 or 2.4967545228125466e-154 < re < 1.5179855035704149e+116Initial program 19.1
if -1.7987418643598683e-280 < re < 2.4967545228125466e-154Initial program 29.5
Taylor expanded around 0 35.5
if 1.5179855035704149e+116 < re Initial program 51.1
Taylor expanded around inf 9.6
Final simplification18.9
herbie shell --seed 2019002
(FPCore (re im)
:name "math.abs on complex"
(sqrt (+ (* re re) (* im im))))
Time bar (total: 11.6s)Debug log
1 calls. Slowest were:
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 28.7b
Found 2 expressions with local error:
| 28.7b | (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:
| 37.0ms | (+ (* re re) (* im im)) |
| 24.0ms | (sqrt (+ (* re re) (* im im))) |
13 calls. Slowest were:
| 169.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 46.0ms | (sqrt (+ (pow (* re re) 3) (pow (* im im) 3))) |
| 11.0ms | (* (exp (* re re)) (exp (* im im))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 0.6b | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 0.0b | (sqrt (sqrt (+ (* re re) (* im im)))) |
4 calls. Slowest were:
| 19.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
| 4.0ms | (sqrt (sqrt (+ (* re re) (* im im)))) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 107.0ms | (sqrt (sqrt (+ (* re re) (* im im)))) |
| 33.0ms | (sqrt (+ (* re re) (* im im))) |
| 32.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (* (sqrt (sqrt (+ (* re re) (* im im)))) (sqrt (sqrt (+ (* re re) (* im im))))) |
74 calls. Slowest were:
| 226.0ms | (* (sqrt (sqrt (- (* re re) (* im im)))) (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im))))))) |
| 187.0ms | (* (sqrt (sqrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) (sqrt (sqrt (- (* re re) (* im im))))) |
| 170.0ms | (* (sqrt (sqrt (+ (pow (* re re) 3) (pow (* im im) 3)))) (sqrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 29.6b | (cbrt (+ (* re re) (* im im))) |
| 29.6b | (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:
| 13.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 4.0ms | (sqrt (cbrt (+ (* re re) (* im im)))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 136.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 119.0ms | (cbrt (+ (* re re) (* im im))) |
| 119.0ms | (cbrt (+ (* re re) (* im im))) |
| 112.0ms | (sqrt (cbrt (+ (* re re) (* im im)))) |
48 calls. Slowest were:
| 222.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)))) |
| 182.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 160.0ms | (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 29.6b | (cbrt (+ (* re re) (* im im))) |
| 29.6b | (cbrt (+ (* re re) (* im im))) |
| 5.9b | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 0.3b | (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))) |
4 calls. Slowest were:
| 18.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 14.0ms | (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 222.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 139.0ms | (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))) |
| 103.0ms | (cbrt (+ (* re re) (* im im))) |
| 96.0ms | (cbrt (+ (* re re) (* im im))) |
53 calls. Slowest were:
| 213.0ms | (log (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im))))))) |
| 150.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 137.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 5.9b
47.7% (11.4b remaining)
Error of 18.9b against oracle of 7.5b and baseline of 29.3b