


Bits error versus x
Results
if x < 4072.6667673670877Initial program 0.1
rmApplied add-cube-cbrt0.2
if 4072.6667673670877 < x Initial program 60.2
rmApplied add-cbrt-cube60.1
rmApplied add-cube-cbrt60.1
rmApplied add-sqr-sqrt60.1
Applied cbrt-prod60.1
Taylor expanded around inf 33.6
Simplified31.5
Final simplification15.6
herbie shell --seed 2019008
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1)) (cbrt x)))
Time bar (total: 2.5m)Debug log
1 calls. Slowest were:
| 8.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 27.7b
Found 3 expressions with local error:
| 2.1b | (- (cbrt (+ x 1)) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (+ x 1)) |
3 calls. Slowest were:
| 10.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
3 calls. Slowest were:
| 307.0ms | (cbrt x) |
| 137.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 52.0ms | (cbrt (+ x 1)) |
20 calls. Slowest were:
| 288.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))))) |
| 255.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 144.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)))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 13.8b
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)) |
4 calls. Slowest were:
| 22.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 12.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 1.0ms | (cbrt (+ x 1)) |
4 calls. Slowest were:
| 324.0ms | (cbrt x) |
| 113.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 52.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 41.0ms | (cbrt (+ x 1)) |
49 calls. Slowest were:
| 278.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))))) |
| 259.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 221.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)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 13.8b
Found 4 expressions with local error:
| 6.0b | (- (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)) |
4 calls. Slowest were:
| 90.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)) |
| 1.0ms | (cbrt (+ x 1)) |
4 calls. Slowest were:
| 314.0ms | (cbrt x) |
| 135.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 41.0ms | (cbrt (+ x 1)) |
| 40.0ms | (cbrt (+ x 1)) |
26 calls. Slowest were:
| 229.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))))) |
| 201.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 186.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)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 13.8b
Found 4 expressions with local error:
| 4.5b | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) |
| 0.3b | (cbrt (+ x 1)) |
4 calls. Slowest were:
| 176.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 149.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) |
| 1.0ms | (cbrt (+ x 1)) |
4 calls. Slowest were:
| 296.0ms | (cbrt x) |
| 121.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) (cbrt x)) |
| 33.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (+ x 1)))))) |
| 32.0ms | (cbrt (+ x 1)) |
750 calls. Slowest were:
| 674.0ms | (cbrt (* (* (cbrt (+ (pow x 3) (pow 1 3))) (cbrt (- (* x x) (* 1 1)))) (* (* (cbrt (cbrt (+ (pow x 3) (pow 1 3)))) (cbrt (* (cbrt (sqrt (+ (pow x 3) (pow 1 3)))) (cbrt (sqrt (+ (pow x 3) (pow 1 3))))))) (cbrt (cbrt (- (* x x) (* 1 1))))))) |
| 555.0ms | (cbrt (* (* (cbrt (- (* x x) (* 1 1))) (cbrt (- (* x x) (* 1 1)))) (* (* (cbrt (cbrt (+ x 1))) (cbrt (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))))) (cbrt (cbrt (- (* x x) (* 1 1))))))) |
| 426.0ms | (cbrt (* (* (cbrt (+ (pow x 3) (pow 1 3))) (cbrt (+ x 1))) (* (* (cbrt (cbrt (- (* x x) (* 1 1)))) (cbrt (* (cbrt (sqrt (- (* x x) (* 1 1)))) (cbrt (sqrt (+ (pow x 3) (pow 1 3))))))) (cbrt (cbrt (+ (pow x 3) (pow 1 3))))))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 13.8b
99.6% (0.1b remaining)
Error of 15.6b against oracle of 15.5b and baseline of 29.7b