


Bits error versus re



Bits error versus im
Results
if re < -9.155692295214296e+68Initial program 45.7
rmApplied add-sqr-sqrt45.7
Applied pow1/245.7
Applied log-pow45.7
Applied times-frac45.7
rmApplied add-sqr-sqrt45.7
Applied associate-*l*45.7
Taylor expanded around -inf 10.5
Simplified10.5
if -9.155692295214296e+68 < re < -4.064052350582338e-291 or 3.0369500767927204e-242 < re < 8.937330246439569e+114Initial program 20.8
rmApplied add-sqr-sqrt20.8
Applied pow1/220.8
Applied log-pow20.8
Applied times-frac20.7
rmApplied add-sqr-sqrt20.7
Applied associate-*l*20.7
rmApplied add-cube-cbrt20.9
Applied sqrt-prod20.9
Applied *-un-lft-identity20.9
Applied times-frac20.7
Applied associate-*r*20.7
if -4.064052350582338e-291 < re < 3.0369500767927204e-242Initial program 32.7
rmApplied add-sqr-sqrt32.7
Applied pow1/232.7
Applied log-pow32.8
Applied times-frac32.8
rmApplied div-inv32.6
Taylor expanded around 0 33.5
if 8.937330246439569e+114 < re Initial program 52.1
rmApplied add-sqr-sqrt52.1
Applied pow1/252.1
Applied log-pow52.1
Applied times-frac52.1
rmApplied add-sqr-sqrt52.1
Applied associate-*l*52.1
Taylor expanded around inf 8.0
Simplified8.0
Final simplification17.6
herbie shell --seed 2019010
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))
Time bar (total: 21.8s)Debug log
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 30.9b
Found 3 expressions with local error:
| 29.5b | (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 |
| 16.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 4.0ms | (+ (* re re) (* im im)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 148.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 32.0ms | (sqrt (+ (* re re) (* im im))) |
| 15.0ms | (+ (* re re) (* im im)) |
| 154.0ms | (/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10)) |
| 122.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))) |
| 106.0ms | (* -1 (/ (log (/ 1 re)) (log 10))) |
| 99.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 87.0ms | (* -1 (/ (log (/ -1 re)) (log 10))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 7.8b
Found 4 expressions with local error:
| 30.6b | (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))) |
| 13.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))) |
| 175.0ms | (* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 163.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 50.0ms | (log (+ (* re re) (* im im))) |
| 15.0ms | (+ (* re re) (* im im)) |
| 465.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))))) |
| 138.0ms | (/ (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) (sqrt (log 10))) |
| 134.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)))) |
| 113.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (- (log (log (+ (* re re) (* im im)))) (log (sqrt (log 10))))) |
| 111.0ms | (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 7.7b
Found 4 expressions with local error:
| 30.6b | (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)) |
| 17× | add-exp-log |
| 13× | pow1 |
| 11× | add-cbrt-cube |
| 8× | add-cube-cbrt |
| 8× | associate-*l* |
| 8× | *-un-lft-identity |
| 8× | add-sqr-sqrt |
| 7× | prod-exp |
| 6× | add-log-exp |
| 5× | associate-*r/ |
| 5× | associate-*r* |
| 4× | cbrt-unprod |
| 4× | pow-prod-down |
| 3× | un-div-inv |
| 3× | log-prod |
| 2× | div-inv |
| 2× | flip-+ |
| 2× | *-commutative |
| 2× | log-pow |
| 2× | flip3-+ |
| 2× | rec-exp |
| 2× | log-div |
| 2× | frac-times |
| 1× | associate-*l/ |
| 1× | rem-log-exp |
| 1× | sum-log |
| 1× | +-commutative |
| 16.0ms | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 5.0ms | (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))) |
| 4.0ms | (+ (* re re) (* im im)) |
| 2.0ms | (log (+ (* re re) (* im im))) |
| 194.0ms | (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))) |
| 154.0ms | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 62.0ms | (log (+ (* re re) (* im im))) |
| 19.0ms | (+ (* re re) (* im im)) |
| 483.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (+ (log (log (+ (* re re) (* im im)))) (log (/ 1 (sqrt (log 10)))))) |
| 405.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))))) |
| 370.0ms | (+ (log (/ 1/2 (sqrt (log 10)))) (log (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10)))))) |
| 154.0ms | (* (/ 1/2 (sqrt (log 10))) (* (log (+ (* re re) (* im im))) (/ 1 (sqrt (log 10))))) |
| 146.0ms | (log (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
14 alts after pruning (13 fresh and 1 done)
Merged error: 7.6b
Found 4 expressions with local error:
| 30.6b | (log (+ (* re re) (* im im))) |
| 0.5b | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 0.3b | (* (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))))) |
| 48× | times-frac |
| 41× | add-cube-cbrt |
| 41× | *-un-lft-identity |
| 41× | add-sqr-sqrt |
| 35× | sqrt-prod |
| 29× | associate-*r* |
| 25× | pow1 |
| 21× | add-exp-log |
| 20× | add-cbrt-cube |
| 14× | log-pow |
| 14× | associate-*l* |
| 10× | sqrt-div |
| 7× | cbrt-unprod |
| 7× | prod-exp |
| 6× | associate-*r/ |
| 6× | associate-/r* |
| 6× | frac-times |
| 4× | add-log-exp |
| 4× | associate-/l* |
| 4× | div-inv |
| 4× | associate-*l/ |
| 4× | pow-prod-down |
| 4× | log-div |
| 3× | div-exp |
| 3× | log-prod |
| 3× | cbrt-undiv |
| 2× | flip-+ |
| 2× | *-commutative |
| 2× | div-sub |
| 2× | flip3-+ |
| 1× | rem-log-exp |
| 1× | frac-2neg |
| 1× | clear-num |
| 14.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)))) |
| 2.0ms | (log (+ (* re re) (* im im))) |
| 583.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) |
| 239.0ms | (* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) |
| 168.0ms | (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) |
| 54.0ms | (log (+ (* re re) (* im im))) |
| 557.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)))))) |
| 335.0ms | (* -2 (/ (* (log (/ -1 re)) (pow (sqrt 1/2) 2)) (log 10))) |
| 286.0ms | (* -2 (/ (* (log (/ 1 re)) (pow (sqrt 1/2) 2)) (log 10))) |
| 269.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))))) |
| 267.0ms | (* 2 (/ (* (log im) (pow (sqrt 1/2) 2)) (log 10))) |
15 alts after pruning (15 fresh and 0 done)
Merged error: 7.5b
57% (10.2b remaining)
Error of 17.6b against oracle of 7.4b and baseline of 31.1b