


Bits error versus re



Bits error versus im
Results
if re < -1.6714086592074158e+118Initial program 53.4
rmApplied add-sqr-sqrt53.4
Applied pow1/253.4
Applied log-pow53.4
Applied times-frac53.4
rmApplied div-inv53.3
Taylor expanded around -inf 8.5
Simplified8.5
if -1.6714086592074158e+118 < re < 1.8014191728219844e+103Initial program 21.7
rmApplied add-sqr-sqrt21.7
Applied pow1/221.7
Applied log-pow21.7
Applied times-frac21.7
rmApplied add-sqr-sqrt21.7
Applied associate-*l*21.6
if 1.8014191728219844e+103 < re Initial program 51.8
rmApplied add-sqr-sqrt51.8
Applied pow1/251.8
Applied log-pow51.8
Applied times-frac51.8
rmApplied div-inv51.8
Taylor expanded around inf 9.3
Simplified9.3
Final simplification17.5
herbie shell --seed 2019008
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))
Time bar (total: 22.1s)Debug log
1 calls. Slowest were:
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 29.7b
Found 3 expressions with local error:
| 28.3b | (sqrt (+ (* re re) (* im im))) |
| 0.7b | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 0.0b | (+ (* re re) (* im im)) |
3 calls. Slowest were:
| 9.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (+ (* re re) (* im im)) |
3 calls. Slowest were:
| 145.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 40.0ms | (sqrt (+ (* re re) (* im im))) |
| 15.0ms | (+ (* re re) (* im im)) |
55 calls. Slowest were:
| 151.0ms | (/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10)) |
| 144.0ms | (/ (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (log 10) (log 10)) (log 10))) |
| 115.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 6.1b
Found 4 expressions with local error:
| 29.3b | (log (+ (* re re) (* im im))) |
| 0.5b | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 0.3b | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 14.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 6.0ms | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 4.0ms | (log (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 185.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 168.0ms | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 42.0ms | (log (+ (* re re) (* im im))) |
| 17.0ms | (+ (* re re) (* im im)) |
118 calls. Slowest were:
| 522.0ms | (* (* (* (/ 1/2 (sqrt (log 10))) (/ 1/2 (sqrt (log 10)))) (/ 1/2 (sqrt (log 10)))) (* (* (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
| 182.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (- (log (log (+ (* re re) (* im im)))) (log (sqrt (log 10))))) |
| 169.0ms | (/ (* (* (log (+ (* re re) (* im im))) (log (+ (* re re) (* im im)))) (log (+ (* re re) (* im im)))) (* (* (sqrt (log 10)) (sqrt (log 10))) (sqrt (log 10)))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 29.3b | (log (+ (* re re) (* im im))) |
| 0.3b | (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))) |
| 0.3b | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 0.0b | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 21.0ms | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 10.0ms | (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))) |
| 4.0ms | (+ (* re re) (* im im)) |
4 calls. Slowest were:
| 209.0ms | (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))) |
| 128.0ms | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 47.0ms | (log (+ (* re re) (* im im))) |
| 16.0ms | (+ (* re re) (* im im)) |
48 calls. Slowest were:
| 726.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (log (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))))) |
| 449.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (+ (log (log (+ (* re re) (* im im)))) (log (/ 1 (sqrt (log 10)))))) |
| 371.0ms | (* (* (* (log (+ (* re re) (* im im))) (log (+ (* re re) (* im im)))) (log (+ (* re re) (* im im)))) (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10))))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 29.3b | (log (+ (* re re) (* im im))) |
| 0.5b | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 0.4b | (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 0.3b | (* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
4 calls. Slowest were:
| 16.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
| 9.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 7.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
4 calls. Slowest were:
| 602.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 249.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
| 215.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 62.0ms | (log (+ (* re re) (* im im))) |
146 calls. Slowest were:
| 581.0ms | (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (sqrt (/ 1/2 (sqrt (log 10))))) (sqrt (/ 1/2 (sqrt (log 10))))) (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))) |
| 338.0ms | (* -2 (/ (* (log (/ -1 re)) (pow (sqrt 1/2) 2)) (log 10))) |
| 254.0ms | (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (sqrt (/ 1/2 (sqrt (log 10))))) (sqrt (/ 1/2 (sqrt (log 10))))) (* (* (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
15 alts after pruning (14 fresh and 1 done)
Merged error: 5.8b
58.2% (10.0b remaining)
Error of 17.5b against oracle of 7.5b and baseline of 31.5b