


Bits error versus re



Bits error versus im



Bits error versus base
Results
if im < -1.339088896496117e+154Initial program 62.0
Simplified62.0
Taylor expanded around -inf 51.6
Simplified51.6
rmApplied add-cube-cbrt51.7
Applied associate-*l*51.7
if -1.339088896496117e+154 < im < -5.717705561230724e-79Initial program 13.9
Simplified13.9
rmApplied clear-num13.9
if -5.717705561230724e-79 < im < 2.9780377269530606e-08Initial program 24.0
Simplified24.0
Taylor expanded around -inf 62.8
Simplified11.5
Taylor expanded around -inf 62.8
Simplified11.5
if 2.9780377269530606e-08 < im Initial program 38.9
Simplified38.9
Taylor expanded around 0 14.1
Final simplification17.6
herbie shell --seed 2019021
(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: 54.9s)Debug log
| 781.0ms | 252× | body | 10240 | exit |
| 146.0ms | 448× | body | 80 | nan |
| 60.0ms | 257× | body | 80 | valid |
| 12.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.8b
Found 4 expressions with local error:
| 29.6b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (* (log base) (log base)) |
| 0.4b | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 0.3b | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (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 |
| 13.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 9.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 8.0ms | (* (log base) (log base)) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 181.0ms | (* (log base) (log base)) |
| 109.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 76.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
| 426.0ms | (* -1 (* (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 378.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (+ (log (log base)) (log (log base)))) |
| 341.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (log (* (log base) (log base)))) |
| 305.0ms | (- (log (* (log (sqrt (+ (* re re) (* im im)))) (log base))) (log (* (log base) (log base)))) |
| 257.0ms | (/ (* (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (log base) (log base)) (log base))) (* (* (* (log base) (log base)) (* (log base) (log base))) (* (log base) (log base)))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 6.3b
Found 3 expressions with local error:
| 0.3b | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.2b | (/ -1 (log base)) |
| 0.0b | (log (/ -1 re)) |
| 12× | log-prod |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 9× | add-sqr-sqrt |
| 7× | pow1 |
| 6× | add-exp-log |
| 5× | div-inv |
| 5× | add-cbrt-cube |
| 4× | associate-*l* |
| 4× | associate-*r* |
| 4× | distribute-lft-in |
| 4× | distribute-rgt-in |
| 3× | add-log-exp |
| 3× | associate-/r* |
| 2× | log-pow |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | rem-log-exp |
| 1× | frac-2neg |
| 1× | clear-num |
| 1× | log-div |
| 8.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 1.0ms | (log (/ -1 re)) |
| 1.0ms | (/ -1 (log base)) |
| 250.0ms | (/ -1 (log base)) |
| 167.0ms | (log (/ -1 re)) |
| 118.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 441.0ms | (* (* (* (/ -1 (log base)) (/ -1 (log base))) (/ -1 (log base))) (* (* (log (/ -1 re)) (log (/ -1 re))) (log (/ -1 re)))) |
| 125.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 114.0ms | (* -1 (/ (- (log -1) (log re)) (log base))) |
| 83.0ms | (* (log (/ 1 re)) (/ -1 (log base))) |
| 50.0ms | (* (log (/ -1 re)) (/ -1 (log base))) |
21 alts after pruning (21 fresh and 0 done)
Merged error: 6.2b
Found 3 expressions with local error:
| 0.3b | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.2b | (/ -1 (log base)) |
| 0.0b | (log (/ -1 re)) |
| 12× | log-prod |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 9× | add-sqr-sqrt |
| 7× | pow1 |
| 6× | add-exp-log |
| 5× | div-inv |
| 5× | add-cbrt-cube |
| 4× | associate-*l* |
| 4× | associate-*r* |
| 4× | distribute-lft-in |
| 4× | distribute-rgt-in |
| 3× | add-log-exp |
| 3× | associate-/r* |
| 2× | log-pow |
| 1× | cbrt-unprod |
| 1× | *-commutative |
| 1× | prod-exp |
| 1× | associate-*l/ |
| 1× | pow-prod-down |
| 1× | rem-log-exp |
| 1× | frac-2neg |
| 1× | clear-num |
| 1× | log-div |
| 4.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.0ms | (log (/ -1 re)) |
| 0.0ms | (/ -1 (log base)) |
| 224.0ms | (/ -1 (log base)) |
| 189.0ms | (log (/ -1 re)) |
| 92.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 492.0ms | (* (* (* (/ -1 (log base)) (/ -1 (log base))) (/ -1 (log base))) (* (* (log (/ -1 re)) (log (/ -1 re))) (log (/ -1 re)))) |
| 141.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 125.0ms | (* -1 (/ (- (log -1) (log re)) (log base))) |
| 56.0ms | (* (log (/ 1 re)) (/ -1 (log base))) |
| 48.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
21 alts after pruning (20 fresh and 1 done)
Merged error: 6.2b
Found 3 expressions with local error:
| 0.5b | (* (log base) (log base)) |
| 0.3b | (/ (* (log (- re)) (log base)) (* (log base) (log base))) |
| 0.3b | (* (log (- re)) (log base)) |
| 19× | add-exp-log |
| 19× | add-cbrt-cube |
| 11× | pow1 |
| 7× | add-cube-cbrt |
| 7× | associate-*l* |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | cbrt-unprod |
| 6× | prod-exp |
| 6× | associate-*r* |
| 4× | div-exp |
| 4× | cbrt-undiv |
| 3× | add-log-exp |
| 2× | *-commutative |
| 2× | pow-prod-down |
| 1× | associate-/l* |
| 1× | div-inv |
| 1× | pow-prod-up |
| 1× | log-pow |
| 1× | pow-plus |
| 1× | times-frac |
| 1× | frac-2neg |
| 1× | associate-/r* |
| 1× | clear-num |
| 1× | pow2 |
| 8.0ms | (/ (* (log (- re)) (log base)) (* (log base) (log base))) |
| 4.0ms | (* (log (- re)) (log base)) |
| 4.0ms | (* (log base) (log base)) |
| 227.0ms | (* (log base) (log base)) |
| 120.0ms | (/ (* (log (- re)) (log base)) (* (log base) (log base))) |
| 86.0ms | (* (log (- re)) (log base)) |
| 652.0ms | (pow (- (log -1) (log (/ -1 base))) 2) |
| 482.0ms | (- (+ (log (log (- re))) (log (log base))) (+ (log (log base)) (log (log base)))) |
| 350.0ms | (* -1 (* (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 293.0ms | (- (log (* (log (- re)) (log base))) (log (* (log base) (log base)))) |
| 269.0ms | (- (log (* (log (- re)) (log base))) (+ (log (log base)) (log (log base)))) |
25 alts after pruning (24 fresh and 1 done)
Merged error: 6.2b
52.4% (10.3b remaining)
Error of 17.6b against oracle of 7.3b and baseline of 29.0b
| 27.3s | 8052× | body | 10240 | exit |
| 5.1s | 16054× | body | 80 | nan |
| 2.6s | 8000× | body | 80 | valid |