


Bits error versus re



Bits error versus im



Bits error versus base
Results
if im < -3.5682013288131524e+182Initial program 62.0
Simplified62.0
Taylor expanded around -inf 62.8
Simplified52.1
rmApplied add-cube-cbrt52.1
Applied log-prod52.1
Applied distribute-rgt-in52.1
if -3.5682013288131524e+182 < im < -8.397655948177386e-157Initial program 19.2
Simplified19.2
rmApplied add-cbrt-cube19.3
Applied add-cbrt-cube19.5
Applied cbrt-unprod19.3
Applied add-cbrt-cube19.4
Applied add-cbrt-cube19.5
Applied cbrt-unprod19.4
Applied cbrt-undiv19.3
Simplified19.3
if -8.397655948177386e-157 < im < 1.0408756895191287e-157Initial program 30.3
Simplified30.3
Taylor expanded around -inf 62.8
Simplified6.5
rmApplied add-cube-cbrt6.5
Applied log-prod6.6
rmApplied pow1/36.5
Applied pow1/36.5
Applied pow-prod-up6.5
Simplified6.5
if 1.0408756895191287e-157 < im < 2.8851346015141857e+66Initial program 16.4
Simplified16.4
rmApplied div-inv16.5
if 2.8851346015141857e+66 < im Initial program 45.2
Simplified45.2
Taylor expanded around 0 10.9
Final simplification17.2
herbie shell --seed 2019022
(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: 51.5s)Debug log
| 744.0ms | 279× | body | 10240 | exit |
| 135.0ms | 556× | body | 80 | nan |
| 49.0ms | 256× | 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: 31.9b
Found 4 expressions with local error:
| 30.5b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (* (log base) (log base)) |
| 0.3b | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 0.3b | (* (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 |
| 385.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 7.0ms | (* (log base) (log base)) |
| 4.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 3.0ms | (sqrt (+ (* re re) (* im im))) |
| 216.0ms | (* (log base) (log base)) |
| 91.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 80.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
| 363.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (log (* (log base) (log base)))) |
| 353.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (+ (log (log base)) (log (log base)))) |
| 336.0ms | (* -1 (* (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 320.0ms | (pow (- (log -1) (log (/ -1 base))) 2) |
| 309.0ms | (- (log (* (log (sqrt (+ (* re re) (* im im)))) (log base))) (log (* (log base) (log base)))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 6.5b
Found 3 expressions with local error:
| 0.3b | (* (/ -1 (log base)) (log (/ -1 re))) |
| 0.2b | (log (/ -1 re)) |
| 0.2b | (/ -1 (log base)) |
| 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 |
| 7.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 1.0ms | (log (/ -1 re)) |
| 1.0ms | (/ -1 (log base)) |
| 197.0ms | (/ -1 (log base)) |
| 175.0ms | (log (/ -1 re)) |
| 118.0ms | (* (/ -1 (log base)) (log (/ -1 re))) |
| 458.0ms | (* (* (* (/ -1 (log base)) (/ -1 (log base))) (/ -1 (log base))) (* (* (log (/ -1 re)) (log (/ -1 re))) (log (/ -1 re)))) |
| 136.0ms | (* -1 (/ (- (log -1) (log re)) (log base))) |
| 125.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 61.0ms | (* (log (/ 1 re)) (/ -1 (log base))) |
| 53.0ms | (+ (log (/ -1 (log base))) (log (log (/ -1 re)))) |
21 alts after pruning (21 fresh and 0 done)
Merged error: 6.4b
Found 4 expressions with local error:
| 0.8b | (cbrt (/ -1 re)) |
| 0.8b | (cbrt (/ -1 re)) |
| 0.8b | (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 |
| 7.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 1.0ms | (cbrt (/ -1 re)) |
| 1.0ms | (cbrt (/ -1 re)) |
| 1.0ms | (cbrt (/ -1 re)) |
| 311.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 297.0ms | (cbrt (/ -1 re)) |
| 282.0ms | (cbrt (/ -1 re)) |
| 281.0ms | (cbrt (/ -1 re)) |
| 12.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 11.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 9.0ms | (* (/ -1 re) (/ -1 re)) |
| 7.0ms | (* (/ -1 re) (/ -1 re)) |
| 6.0ms | (* (pow (/ 1 re) 1/3) (cbrt -1)) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 6.4b
Found 4 expressions with local error:
| 0.8b | (cbrt (/ -1 re)) |
| 0.8b | (cbrt (/ -1 re)) |
| 0.8b | (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 |
| 6.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 0.0ms | (cbrt (/ -1 re)) |
| 0.0ms | (cbrt (/ -1 re)) |
| 0.0ms | (cbrt (/ -1 re)) |
| 333.0ms | (* (cbrt (/ -1 re)) (cbrt (/ -1 re))) |
| 319.0ms | (cbrt (/ -1 re)) |
| 302.0ms | (cbrt (/ -1 re)) |
| 291.0ms | (cbrt (/ -1 re)) |
| 12.0ms | (* (/ -1 re) (/ -1 re)) |
| 12.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 10.0ms | (* (pow (/ 1 (pow re 2)) 1/3) (pow (cbrt -1) 2)) |
| 8.0ms | (* (/ -1 re) (/ -1 re)) |
| 6.0ms | (* (pow (/ 1 re) 1/3) (cbrt -1)) |
20 alts after pruning (19 fresh and 1 done)
Merged error: 6.4b
52.5% (10.0b remaining)
Error of 17.2b against oracle of 7.1b and baseline of 28.3b
| 26.8s | 7990× | body | 10240 | exit |
| 4.8s | 16018× | body | 80 | nan |
| 2.6s | 8000× | body | 80 | valid |