


Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -2.153348860420522e+45Initial program 43.0
Simplified43.0
Taylor expanded around -inf 62.8
Simplified11.1
Taylor expanded around -inf 62.8
Simplified11.1
if -2.153348860420522e+45 < re < -1.2644302017014641e-201 or -4.182444839958769e-214 < re Initial program 21.3
Simplified21.3
rmApplied times-frac21.2
Simplified21.2
if -1.2644302017014641e-201 < re < -4.182444839958769e-214Initial program 30.5
Simplified30.5
Taylor expanded around -inf 47.3
Simplified47.3
Final simplification17.4
herbie shell --seed 2019018
(FPCore (re im base)
:name "math.log/2 on complex, real part"
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))))
Time bar (total: 49.4s)Debug log
| 743.0ms | 252× | body | 10240 | exit |
| 160.0ms | 492× | body | 80 | nan |
| 88.0ms | 257× | body | 80 | valid |
| 6.0ms | (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 30.2b
Found 4 expressions with local error:
| 28.7b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (* (log base) (log base)) |
| 0.4b | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 0.4b | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 20× | add-exp-log |
| 20× | add-cbrt-cube |
| 12× | pow1 |
| 10× | add-sqr-sqrt |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 8× | associate-*l* |
| 6× | cbrt-unprod |
| 6× | prod-exp |
| 6× | associate-*r* |
| 4× | add-log-exp |
| 4× | div-exp |
| 4× | cbrt-undiv |
| 3× | sqrt-prod |
| 2× | *-commutative |
| 2× | log-pow |
| 2× | pow-prod-down |
| 2× | sqrt-div |
| 2× | pow1/2 |
| 1× | associate-/l* |
| 1× | div-inv |
| 1× | flip-+ |
| 1× | pow-prod-up |
| 1× | pow-plus |
| 1× | times-frac |
| 1× | flip3-+ |
| 1× | frac-2neg |
| 1× | associate-/r* |
| 1× | clear-num |
| 1× | rem-sqrt-square |
| 1× | pow2 |
| 19.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 10.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 7.0ms | (* (log base) (log base)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 176.0ms | (* (log base) (log base)) |
| 121.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 95.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 24.0ms | (sqrt (+ (* re re) (* im im))) |
| 446.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (+ (log (log base)) (log (log base)))) |
| 391.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (log (* (log base) (log base)))) |
| 339.0ms | (pow (- (log -1) (log (/ -1 base))) 2) |
| 308.0ms | (* -1 (* (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 227.0ms | (- (log (* (log (sqrt (+ (* re re) (* im im)))) (log base))) (log (* (log base) (log base)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 5.7b
Found 2 expressions with local error:
| 0.3b | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.3b | (/ -1 (log base)) |
| 8× | log-prod |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 5× | pow1 |
| 4× | div-inv |
| 4× | add-exp-log |
| 4× | associate-*l* |
| 4× | associate-*r* |
| 4× | add-cbrt-cube |
| 4× | distribute-lft-in |
| 4× | distribute-rgt-in |
| 3× | associate-/r* |
| 2× | add-log-exp |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | log-pow |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | frac-2neg |
| 1× | clear-num |
| 8.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 1.0ms | (/ -1 (log base)) |
| 217.0ms | (/ -1 (log base)) |
| 109.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 450.0ms | (* (* (* (/ -1 (log base)) (/ -1 (log base))) (/ -1 (log base))) (* (* (log (/ -1 re)) (log (/ -1 re))) (log (/ -1 re)))) |
| 150.0ms | (* -1 (/ (- (log -1) (log re)) (log base))) |
| 140.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 54.0ms | (* (log (/ 1 re)) (/ -1 (log base))) |
| 51.0ms | (/ (+ (log (/ 1 re)) (log -1)) (log (/ 1 base))) |
21 alts after pruning (21 fresh and 0 done)
Merged error: 5.6b
Found 2 expressions with local error:
| 0.3b | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.3b | (/ -1 (log base)) |
| 8× | log-prod |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 5× | pow1 |
| 4× | div-inv |
| 4× | add-exp-log |
| 4× | associate-*l* |
| 4× | associate-*r* |
| 4× | add-cbrt-cube |
| 4× | distribute-lft-in |
| 4× | distribute-rgt-in |
| 3× | associate-/r* |
| 2× | add-log-exp |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | log-pow |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | frac-2neg |
| 1× | clear-num |
| 5.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.0ms | (/ -1 (log base)) |
| 164.0ms | (/ -1 (log base)) |
| 92.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 400.0ms | (* (* (* (/ -1 (log base)) (/ -1 (log base))) (/ -1 (log base))) (* (* (log (/ -1 re)) (log (/ -1 re))) (log (/ -1 re)))) |
| 143.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 128.0ms | (* -1 (/ (- (log -1) (log re)) (log base))) |
| 60.0ms | (* (log (/ 1 re)) (/ -1 (log base))) |
| 51.0ms | (/ (+ (log (/ 1 re)) (log -1)) (log (/ 1 base))) |
21 alts after pruning (20 fresh and 1 done)
Merged error: 5.6b
Found 4 expressions with local error:
| 0.6b | (cbrt (/ -1 re)) |
| 0.6b | (cbrt (/ -1 re)) |
| 0.6b | (cbrt (/ -1 re)) |
| 0.5b | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 20× | cbrt-prod |
| 11× | add-cube-cbrt |
| 11× | *-un-lft-identity |
| 11× | add-sqr-sqrt |
| 9× | pow1 |
| 7× | associate-*l* |
| 7× | associate-*r* |
| 7× | pow1/3 |
| 7× | cbrt-div |
| 6× | add-exp-log |
| 5× | div-inv |
| 4× | add-log-exp |
| 4× | add-cbrt-cube |
| 2× | pow-prod-up |
| 2× | pow-prod-down |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | associate-*r/ |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-plus |
| 1× | frac-times |
| 1× | pow2 |
| 8.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 1.0ms | (cbrt (/ -1 re)) |
| 1.0ms | (cbrt (/ -1 re)) |
| 1.0ms | (cbrt (/ -1 re)) |
| 385.0ms | (cbrt (/ -1 re)) |
| 368.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 279.0ms | (cbrt (/ -1 re)) |
| 273.0ms | (cbrt (/ -1 re)) |
| 23.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 22.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 14.0ms | (* (/ -1 re) (/ -1 re)) |
| 14.0ms | (* (/ -1 re) (/ -1 re)) |
| 7.0ms | (* (pow (/ 1 re) 1/3) (cbrt -1)) |
22 alts after pruning (20 fresh and 2 done)
Merged error: 5.6b
54.4% (9.9b remaining)
Error of 17.4b against oracle of 7.5b and baseline of 29.2b
| 28.0s | 7923× | body | 10240 | exit |
| 5.1s | 15613× | body | 80 | nan |
| 2.0s | 8001× | body | 80 | valid |