


Bits error versus x
Results
if x < 3998.3190634746425Initial program 0.1
rmApplied add-sqr-sqrt0.2
if 3998.3190634746425 < x < 1.3592927885672945e+154Initial program 59.2
rmApplied add-cbrt-cube58.9
Taylor expanded around inf 5.1
Simplified0.9
if 1.3592927885672945e+154 < x Initial program 61.0
rmApplied add-cbrt-cube61.2
rmApplied add-cube-cbrt61.4
rmApplied add-exp-log61.4
Taylor expanded around inf 6.9
Simplified7.6
Final simplification2.2
herbie shell --seed 1137770271
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1)) (cbrt x)))
Time bar (total: 25.7s)Debug log
| 52× | 31.0ms | (body real 1280) |
| 249× | 27.0ms | (body nan 80) |
| 125× | 25.0ms | (body real 80) |
| 43× | 19.0ms | (body real 640) |
| 505× | 12.0ms | (pre true 80) |
| 27× | 10.0ms | (body real 320) |
| 9× | 2.0ms | (body real 160) |
| 10.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 31.1b
Found 3 expressions with local error:
| 2.1b | (- (cbrt (+ x 1)) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (+ x 1)) |
| 8× | add-sqr-sqrt |
| 6× | *-un-lft-identity |
| 5× | add-log-exp |
| 4× | add-cube-cbrt |
| 4× | cbrt-prod |
| 3× | add-exp-log |
| 3× | add-cbrt-cube |
| 3× | pow1 |
| 2× | difference-of-squares |
| 2× | pow1/3 |
| 2× | cbrt-div |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | flip-+ |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | flip3-+ |
| 1× | sub-neg |
| 14.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
| 546.0ms | (cbrt x) |
| 213.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 84.0ms | (cbrt (+ x 1)) |
| 400.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (+ (* (pow (* x -1) 1/3) (cbrt -1)) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2))))) |
| 370.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 295.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 101.0ms | (- (+ (* 1/3 x) 1) (* 1/9 (pow x 2))) |
| 98.0ms | (- (+ (* 1/3 (pow (/ 1 (pow x 2)) 1/3)) (* 5/81 (pow (/ 1 (pow x 8)) 1/3))) (* 1/9 (pow (/ 1 (pow x 5)) 1/3))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 2.1b | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 0.3b | (cbrt (+ x 1)) |
| 82× | cbrt-div |
| 28× | flip-+ |
| 28× | flip3-+ |
| 28× | frac-times |
| 14× | associate-*l/ |
| 8× | associate-*r/ |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 6× | add-log-exp |
| 5× | add-cube-cbrt |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 4× | cbrt-prod |
| 3× | pow1/3 |
| 1× | difference-of-squares |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | rem-cbrt-cube |
| 1× | pow3 |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 36.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 24.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
| 476.0ms | (cbrt x) |
| 202.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 75.0ms | (cbrt (+ x 1)) |
| 72.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 381.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 381.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (+ (* (pow (* x -1) 1/3) (cbrt -1)) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2))))) |
| 273.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 267.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 112.0ms | (cbrt (* (* (cbrt (- (* x x) (* 1 1))) (cbrt (+ x 1))) (cbrt (+ (pow x 3) (pow 1 3))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 7.5b | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (+ x 1)) |
| 0.3b | (cbrt (+ x 1)) |
| 8× | *-un-lft-identity |
| 8× | add-sqr-sqrt |
| 6× | add-log-exp |
| 6× | add-cube-cbrt |
| 6× | cbrt-prod |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | cbrt-div |
| 4× | pow1 |
| 3× | pow1/3 |
| 2× | flip-+ |
| 2× | flip3-+ |
| 1× | difference-of-squares |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 139.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 2.0ms | (cbrt (+ x 1)) |
| 2.0ms | (cbrt (+ x 1)) |
| 1.0ms | (cbrt x) |
| 471.0ms | (cbrt x) |
| 170.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 78.0ms | (cbrt (+ x 1)) |
| 75.0ms | (cbrt (+ x 1)) |
| 387.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (+ (* (pow (* x -1) 1/3) (cbrt -1)) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2))))) |
| 369.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 304.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 274.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 158.0ms | (/ (exp (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))))))) (exp (cbrt x))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 7.5b | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 6.7b | (log (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x))) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (+ x 1)) |
| 10× | *-un-lft-identity |
| 10× | add-sqr-sqrt |
| 6× | add-log-exp |
| 6× | add-cube-cbrt |
| 5× | add-exp-log |
| 5× | log-prod |
| 5× | pow1 |
| 4× | add-cbrt-cube |
| 3× | cbrt-prod |
| 2× | difference-of-squares |
| 2× | distribute-lft-out-- |
| 2× | flip-- |
| 2× | pow1/3 |
| 2× | flip3-- |
| 2× | cbrt-div |
| 2× | log-div |
| 1× | flip-+ |
| 1× | log-pow |
| 1× | rem-log-exp |
| 1× | diff-log |
| 1× | flip3-+ |
| 1× | sub-neg |
| 249.0ms | (log (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x))) |
| 130.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
| 465.0ms | (cbrt x) |
| 197.0ms | (log (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x))) |
| 167.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 66.0ms | (cbrt (+ x 1)) |
| 469.0ms | (log (- (* (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))))))) (* (cbrt x) (cbrt x)))) |
| 370.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (+ (* (pow (* x -1) 1/3) (cbrt -1)) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2))))) |
| 336.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 272.0ms | (- (+ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (* 1/3 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) x))) (* 1/9 (/ (exp (* 1/3 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
| 240.0ms | (- (+ (log (* 1/3 (pow x 1/3))) (+ (log (/ 1 x)) (* 7/54 (/ 1 (pow x 2))))) (* 1/3 (/ 1 x))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 2.1b
99.9% (0.0b remaining)
Error of 2.2b against oracle of 2.1b and baseline of 30.3b
| 1692× | 1.4s | (body real 1280) |
| 7935× | 931.0ms | (body nan 80) |
| 1249× | 584.0ms | (body real 640) |
| 4012× | 531.0ms | (body real 80) |
| 15935× | 340.0ms | (pre true 80) |
| 711× | 263.0ms | (body real 320) |
| 336× | 71.0ms | (body real 160) |