


Bits error versus re



Bits error versus im
Results
if re < -6.584480180407772e+139Initial program 58.6
rmApplied add-sqr-sqrt58.6
Applied pow1/258.6
Applied log-pow58.6
Applied times-frac58.6
rmApplied div-inv58.6
Applied associate-*r*58.6
Taylor expanded around -inf 7.1
Simplified7.1
if -6.584480180407772e+139 < re < -3.563193184801198e-257Initial program 19.3
rmApplied add-sqr-sqrt19.3
Applied pow1/219.3
Applied log-pow19.4
Applied times-frac19.3
rmApplied div-inv19.2
Applied associate-*r*19.2
rmApplied add-cbrt-cube19.4
Applied add-cbrt-cube19.4
Applied cbrt-unprod19.3
Simplified19.3
if -3.563193184801198e-257 < re < 8.074029395986411e-300Initial program 32.5
rmApplied add-sqr-sqrt32.5
Applied pow1/232.5
Applied log-pow32.5
Applied times-frac32.5
rmApplied div-inv32.4
Applied associate-*r*32.4
Taylor expanded around 0 31.4
if 8.074029395986411e-300 < re < 5.5117051751623776e+144Initial program 20.7
rmApplied add-sqr-sqrt20.7
Applied pow1/220.7
Applied log-pow20.7
Applied times-frac20.7
rmApplied div-inv20.6
Applied associate-*r*20.6
rmApplied add-cube-cbrt20.6
Applied log-prod20.6
Applied distribute-lft-in20.6
if 5.5117051751623776e+144 < re Initial program 59.6
rmApplied add-sqr-sqrt59.6
Applied pow1/259.6
Applied log-pow59.6
Applied times-frac59.6
rmApplied div-inv59.6
Applied associate-*r*59.6
Taylor expanded around inf 6.7
Simplified6.7
Final simplification17.0
herbie shell --seed 2019022
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))
Time bar (total: 17.3s)Debug log
| 30.0ms | 256× | body | 80 | valid |
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 32.4b
Found 3 expressions with local error:
| 31.0b | (sqrt (+ (* re re) (* im im))) |
| 0.6b | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 0.0b | (+ (* re re) (* im im)) |
| 15× | times-frac |
| 15× | add-sqr-sqrt |
| 14× | add-cube-cbrt |
| 14× | *-un-lft-identity |
| 8× | log-pow |
| 7× | pow1 |
| 5× | add-log-exp |
| 5× | associate-/l* |
| 5× | add-exp-log |
| 5× | pow1/2 |
| 5× | add-cbrt-cube |
| 4× | sqrt-div |
| 3× | flip-+ |
| 3× | sqrt-prod |
| 3× | flip3-+ |
| 3× | associate-/r* |
| 2× | div-sub |
| 2× | log-div |
| 1× | div-inv |
| 1× | div-exp |
| 1× | frac-2neg |
| 1× | sum-log |
| 1× | clear-num |
| 1× | rem-sqrt-square |
| 1× | +-commutative |
| 1× | cbrt-undiv |
| 30.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 4.0ms | (+ (* re re) (* im im)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 167.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 33.0ms | (sqrt (+ (* re re) (* im im))) |
| 24.0ms | (+ (* re re) (* im im)) |
| 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))) |
| 128.0ms | (/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10)) |
| 114.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 79.0ms | (* -1 (/ (log (/ -1 re)) (log 10))) |
| 77.0ms | (* -1 (/ (log (/ 1 re)) (log 10))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 6.7b
Found 4 expressions with local error:
| 32.1b | (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)) |
| 48× | times-frac |
| 38× | add-cube-cbrt |
| 38× | *-un-lft-identity |
| 38× | add-sqr-sqrt |
| 28× | associate-*r* |
| 27× | sqrt-prod |
| 20× | pow1 |
| 14× | log-pow |
| 12× | add-exp-log |
| 11× | add-cbrt-cube |
| 6× | add-log-exp |
| 6× | associate-/r* |
| 4× | associate-/l* |
| 4× | associate-*l* |
| 4× | log-div |
| 3× | div-inv |
| 3× | flip-+ |
| 3× | flip3-+ |
| 3× | log-prod |
| 2× | cbrt-unprod |
| 2× | prod-exp |
| 2× | div-exp |
| 2× | div-sub |
| 2× | cbrt-undiv |
| 1× | *-commutative |
| 1× | associate-*r/ |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | rem-log-exp |
| 1× | frac-2neg |
| 1× | sum-log |
| 1× | clear-num |
| 1× | +-commutative |
| 1× | frac-times |
| 14.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 12.0ms | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 4.0ms | (+ (* re re) (* im im)) |
| 3.0ms | (log (+ (* re re) (* im im))) |
| 206.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 148.0ms | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 61.0ms | (log (+ (* re re) (* im im))) |
| 15.0ms | (+ (* re re) (* im im)) |
| 439.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))))) |
| 145.0ms | (/ (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) (sqrt (log 10))) |
| 131.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)))) |
| 110.0ms | (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 102.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (- (log (log (+ (* re re) (* im im)))) (log (sqrt (log 10))))) |
15 alts after pruning (15 fresh and 0 done)
Merged error: 6.6b
Found 4 expressions with local error:
| 32.1b | (log (+ (* re re) (* im im))) |
| 0.3b | (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) |
| 0.3b | (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) |
| 0.0b | (+ (* re re) (* im im)) |
| 17× | add-exp-log |
| 13× | pow1 |
| 11× | add-cbrt-cube |
| 10× | add-cube-cbrt |
| 10× | *-un-lft-identity |
| 10× | add-sqr-sqrt |
| 9× | log-prod |
| 8× | associate-*r* |
| 7× | prod-exp |
| 6× | add-log-exp |
| 5× | associate-*l* |
| 4× | cbrt-unprod |
| 4× | associate-*l/ |
| 4× | pow-prod-down |
| 3× | distribute-lft-in |
| 3× | distribute-rgt-in |
| 2× | div-inv |
| 2× | flip-+ |
| 2× | *-commutative |
| 2× | log-pow |
| 2× | flip3-+ |
| 2× | rec-exp |
| 2× | log-div |
| 1× | un-div-inv |
| 1× | associate-*r/ |
| 1× | rem-log-exp |
| 1× | sum-log |
| 1× | +-commutative |
| 1× | frac-times |
| 11.0ms | (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) |
| 5.0ms | (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) |
| 2.0ms | (+ (* re re) (* im im)) |
| 2.0ms | (log (+ (* re re) (* im im))) |
| 189.0ms | (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) |
| 148.0ms | (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) |
| 40.0ms | (log (+ (* re re) (* im im))) |
| 18.0ms | (+ (* re re) (* im im)) |
| 631.0ms | (* (* (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im))))) (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im))))) (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10))))) |
| 288.0ms | (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) |
| 247.0ms | (* (* (/ 1/2 (sqrt (log 10))) (log (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) |
| 213.0ms | (+ (+ (log (/ 1/2 (sqrt (log 10)))) (log (log (+ (* re re) (* im im))))) (- (log (sqrt (log 10))))) |
| 195.0ms | (+ (+ (log (/ 1/2 (sqrt (log 10)))) (log (log (+ (* re re) (* im im))))) (log (/ 1 (sqrt (log 10))))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 6.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))) |
| 13.8b | (log (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im))))) |
| 18× | cbrt-div |
| 10× | pow1 |
| 9× | flip-+ |
| 9× | flip3-+ |
| 9× | cbrt-prod |
| 8× | log-div |
| 7× | add-cube-cbrt |
| 7× | log-pow |
| 7× | add-exp-log |
| 7× | pow1/3 |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | add-cbrt-cube |
| 4× | frac-times |
| 2× | pow-prod-up |
| 2× | associate-*r/ |
| 2× | associate-*l/ |
| 2× | pow-prod-down |
| 2× | rem-log-exp |
| 1× | prod-exp |
| 1× | pow-plus |
| 1× | log-prod |
| 1× | pow2 |
| 8.0ms | (log (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im))))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 127.0ms | (cbrt (+ (* re re) (* im im))) |
| 107.0ms | (cbrt (+ (* re re) (* im im))) |
| 93.0ms | (cbrt (+ (* re re) (* im im))) |
| 92.0ms | (log (* (cbrt (+ (* re re) (* im im))) (cbrt (+ (* re re) (* im im))))) |
| 186.0ms | (log (* (cbrt (+ (pow (* re re) 3) (pow (* im im) 3))) (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
| 173.0ms | (log (* (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))) |
| 154.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 152.0ms | (log (* (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) (cbrt (+ (pow (* re re) 3) (pow (* im im) 3))))) |
| 142.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 6.6b
59.1% (9.7b remaining)
Error of 17.0b against oracle of 7.3b and baseline of 31.1b
| 1.5s | 8000× | body | 80 | valid |