


Bits error versus x
if x < 4072.6667673670877Initial program 0.1
rmApplied add-cube-cbrt0.2
if 4072.6667673670877 < x Initial program 60.2
Taylor expanded around inf 33.6
Simplified31.5
Final simplification15.6
herbie shell --seed 2019008 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1)) (cbrt x)))
Time bar (total: 14.7s)Debug log
1 calls. Slowest were:
| 21.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:
| 7.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
3 calls. Slowest were:
| 263.0ms | (cbrt x) |
| 102.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 52.0ms | (cbrt (+ x 1)) |
61 calls. Slowest were:
| 349.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 340.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))))) |
| 212.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)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 13.8b
Found 4 expressions with local error:
| 15.7b | (- (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))) (cbrt x)) |
| 0.6b | (cbrt x) |
| 0.3b | (cbrt (sqrt (+ x 1))) |
| 0.3b | (cbrt (sqrt (+ x 1))) |
4 calls. Slowest were:
| 10.0ms | (- (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))) (cbrt x)) |
| 1.0ms | (cbrt (sqrt (+ x 1))) |
| 1.0ms | (cbrt (sqrt (+ x 1))) |
4 calls. Slowest were:
| 246.0ms | (cbrt x) |
| 82.0ms | (- (* (cbrt (sqrt (+ x 1))) (cbrt (sqrt (+ x 1)))) (cbrt x)) |
| 46.0ms | (cbrt (sqrt (+ x 1))) |
| 31.0ms | (cbrt (sqrt (+ x 1))) |
38 calls. Slowest were:
| 357.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))))) |
| 339.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 258.0ms | (- (+ (exp (* 1/6 (- (log -1) (log (/ -1 x))))) (* 1/6 (/ (exp (* 1/6 (- (log -1) (log (/ -1 x))))) x))) (* 5/72 (/ (exp (* 1/6 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 13.8b
Found 4 expressions with local error:
| 27.9b | (fma (cbrt (* (cbrt (+ x 1)) (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:
| 1.0ms | (cbrt (+ x 1)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (fma (cbrt (* (cbrt (+ x 1)) (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))) (- (cbrt x))) |
4 calls. Slowest were:
| 282.0ms | (cbrt x) |
| 114.0ms | (fma (cbrt (* (cbrt (+ x 1)) (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))) (- (cbrt x))) |
| 42.0ms | (cbrt (+ x 1)) |
| 34.0ms | (cbrt (+ x 1)) |
22 calls. Slowest were:
| 376.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 265.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)))) |
| 260.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)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 13.8b
Found 4 expressions with local error:
| 27.3b | (fma (cbrt (* (cbrt (+ x 1)) (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))) (- (pow x 1/3))) |
| 5.0b | (pow x 1/3) |
| 0.3b | (cbrt (+ x 1)) |
| 0.3b | (cbrt (+ x 1)) |
4 calls. Slowest were:
| 1.0ms | (cbrt (+ x 1)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (fma (cbrt (* (cbrt (+ x 1)) (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))) (- (pow x 1/3))) |
4 calls. Slowest were:
| 276.0ms | (pow x 1/3) |
| 141.0ms | (fma (cbrt (* (cbrt (+ x 1)) (cbrt (+ x 1)))) (cbrt (cbrt (+ x 1))) (- (pow x 1/3))) |
| 42.0ms | (cbrt (+ x 1)) |
| 30.0ms | (cbrt (+ x 1)) |
22 calls. Slowest were:
| 322.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 211.0ms | (- (+ (* 1/3 (pow (/ 1 (pow x 2)) 1/3)) (pow x 1/3)) (+ (pow (/ 1 x) -1/3) (* 1/9 (pow (/ 1 (pow x 5)) 1/3)))) |
| 201.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)))) |
12 alts after pruning (12 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.5b