


Bits error versus re



Bits error versus im
Results
if re < -2.1579456935513238e+106Initial program 51.5
Taylor expanded around -inf 8.1
Simplified8.1
if -2.1579456935513238e+106 < re < 7.774313934961458e+95Initial program 21.1
rmApplied add-cube-cbrt21.0
Applied sqrt-prod21.0
Simplified21.0
rmApplied add-exp-log21.0
Applied add-exp-log21.1
Applied prod-exp21.1
rmApplied add-sqr-sqrt21.1
Applied *-un-lft-identity21.1
Applied times-frac21.0
Simplified21.0
if 7.774313934961458e+95 < re Initial program 50.4
Taylor expanded around inf 10.1
Simplified10.1
Final simplification17.0
herbie shell --seed 2019016
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))
Time bar (total: 16.8s)Debug log
| 256× | (pre true 80) |
| 256× | (body real 80) |
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 33.0b
Found 2 expressions with local error:
| 31.4b | (sqrt (+ (* re re) (* im im))) |
| 0.6b | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 15× | times-frac |
| 14× | add-sqr-sqrt |
| 13× | add-cube-cbrt |
| 13× | *-un-lft-identity |
| 8× | log-pow |
| 6× | pow1 |
| 5× | associate-/l* |
| 5× | pow1/2 |
| 4× | add-exp-log |
| 4× | sqrt-div |
| 4× | add-cbrt-cube |
| 3× | sqrt-prod |
| 3× | associate-/r* |
| 2× | add-log-exp |
| 2× | flip-+ |
| 2× | div-sub |
| 2× | flip3-+ |
| 2× | log-div |
| 1× | div-inv |
| 1× | div-exp |
| 1× | frac-2neg |
| 1× | clear-num |
| 1× | rem-sqrt-square |
| 1× | cbrt-undiv |
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
| 144.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)) |
| 37.0ms | (sqrt (+ (* re re) (* im im))) |
| 145.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 136.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))) |
| 136.0ms | (/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10)) |
| 78.0ms | (* -1 (/ (log (/ 1 re)) (log 10))) |
| 75.0ms | (* -1 (/ (log (/ -1 re)) (log 10))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 8.6b
Found 4 expressions with local error:
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 0.6b | (/ (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im)))))) (log 10)) |
| 0.3b | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 20× | add-cube-cbrt |
| 20× | *-un-lft-identity |
| 20× | add-sqr-sqrt |
| 18× | pow1 |
| 15× | times-frac |
| 9× | associate-*r* |
| 9× | cbrt-prod |
| 8× | log-pow |
| 8× | add-exp-log |
| 8× | add-cbrt-cube |
| 8× | cbrt-div |
| 6× | sqrt-prod |
| 5× | associate-/l* |
| 5× | pow-prod-down |
| 4× | add-log-exp |
| 4× | flip-+ |
| 4× | associate-*r/ |
| 4× | sqrt-div |
| 4× | flip3-+ |
| 3× | associate-*l* |
| 3× | associate-/r* |
| 2× | div-sub |
| 2× | pow1/3 |
| 2× | log-div |
| 1× | div-inv |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | prod-exp |
| 1× | div-exp |
| 1× | frac-2neg |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 45.0ms | (/ (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im)))))) (log 10)) |
| 7.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 215.0ms | (/ (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im)))))) (log 10)) |
| 128.0ms | (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))) |
| 124.0ms | (cbrt (+ (* re re) (* im im))) |
| 109.0ms | (cbrt (+ (* re re) (* im im))) |
| 440.0ms | (/ (* (* (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im)))))) (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))))) (log (* (fabs (cbrt (+ (* re re) (* im im)))) (sqrt (cbrt (+ (* re re) (* im im))))))) (* (* (log 10) (log 10)) (log 10))) |
| 178.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)))) |
| 160.0ms | (sqrt (cbrt (+ (* (* re re) (* re re)) (- (* (* im im) (* im im)) (* (* re re) (* im im)))))) |
| 146.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 141.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
15 alts after pruning (15 fresh and 0 done)
Merged error: 8.5b
Found 4 expressions with local error:
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 12× | cbrt-prod |
| 8× | add-cube-cbrt |
| 8× | *-un-lft-identity |
| 8× | cbrt-div |
| 8× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | flip-+ |
| 4× | add-exp-log |
| 4× | pow1/3 |
| 4× | add-cbrt-cube |
| 4× | flip3-+ |
| 4× | pow1 |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 1.0ms | (cbrt (+ (* re re) (* im im))) |
| 124.0ms | (cbrt (+ (* re re) (* im im))) |
| 123.0ms | (cbrt (+ (* re re) (* im im))) |
| 106.0ms | (cbrt (+ (* re re) (* im im))) |
| 91.0ms | (cbrt (+ (* re re) (* im im))) |
| 143.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 132.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 102.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 97.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 63.0ms | (cbrt (+ (pow (* re re) 3) (pow (* im im) 3))) |
15 alts after pruning (14 fresh and 1 done)
Merged error: 8.5b
Found 4 expressions with local error:
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 32.5b | (cbrt (+ (* re re) (* im im))) |
| 5.8b | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 0.6b | (/ (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))))) (log 10)) |
| 52× | log-pow |
| 47× | *-un-lft-identity |
| 35× | exp-prod |
| 33× | times-frac |
| 28× | pow1 |
| 27× | add-cube-cbrt |
| 27× | add-sqr-sqrt |
| 20× | distribute-lft-out |
| 11× | associate-/l* |
| 8× | cbrt-div |
| 6× | add-exp-log |
| 6× | add-cbrt-cube |
| 6× | log-div |
| 6× | cbrt-prod |
| 5× | add-log-exp |
| 4× | flip-+ |
| 4× | sqrt-div |
| 4× | exp-diff |
| 4× | flip3-+ |
| 4× | associate-+r- |
| 3× | associate-/r* |
| 2× | rem-exp-log |
| 2× | div-sub |
| 2× | pow1/3 |
| 1× | div-inv |
| 1× | exp-sum |
| 1× | div-exp |
| 1× | frac-2neg |
| 1× | sum-log |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 114.0ms | (/ (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))))) (log 10)) |
| 30.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 3.0ms | (cbrt (+ (* re re) (* im im))) |
| 2.0ms | (cbrt (+ (* re re) (* im im))) |
| 215.0ms | (/ (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))))) (log 10)) |
| 206.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))) |
| 106.0ms | (cbrt (+ (* re re) (* im im))) |
| 97.0ms | (cbrt (+ (* re re) (* im im))) |
| 282.0ms | (/ (* (* (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im)))))))) (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))))) (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (+ (* re re) (* im im))))))))) (* (* (log 10) (log 10)) (log 10))) |
| 142.0ms | (/ (log (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))))))) (log 10)) |
| 128.0ms | (exp (+ (log (fabs (cbrt (+ (* re re) (* im im))))) (log (sqrt (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))))))) |
| 116.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 115.0ms | (cbrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
16 alts after pruning (15 fresh and 1 done)
Merged error: 8.5b
59.7% (9.6b remaining)
Error of 17.0b against oracle of 7.4b and baseline of 31.2b
| 8000× | (pre true 80) |
| 8000× | (body real 80) |