


Bits error versus x
if x < 3090.3660099001336Initial program 0.1
rmApplied add-cbrt-cube0.1
rmApplied add-cube-cbrt0.1
Applied associate-*r*0.1
rmApplied add-cube-cbrt0.2
Applied fma-neg0.2
Simplified0.2
rmApplied add-cube-cbrt0.2
if 3090.3660099001336 < x Initial program 60.2
rmApplied add-cbrt-cube60.1
Taylor expanded around inf 33.6
Simplified31.5
Final simplification15.8
herbie shell --seed 2019002 +o rules:numerics
(FPCore (x)
:name "2cbrt (problem 3.3.4)"
(- (cbrt (+ x 1)) (cbrt x)))
Time bar (total: 22.2s)Debug log
1 calls. Slowest were:
| 8.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 32.3b
Found 3 expressions with local error:
| 3.3b | (- (cbrt (+ x 1)) (cbrt x)) |
| 0.5b | (cbrt x) |
| 0.3b | (cbrt (+ x 1)) |
3 calls. Slowest were:
| 31.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 1.0ms | (cbrt (+ x 1)) |
| 0.0ms | (cbrt x) |
3 calls. Slowest were:
| 295.0ms | (cbrt x) |
| 134.0ms | (- (cbrt (+ x 1)) (cbrt x)) |
| 52.0ms | (cbrt (+ x 1)) |
61 calls. Slowest were:
| 352.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))))) |
| 338.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)))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 16.4b
Found 4 expressions with local error:
| 3.3b | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 0.5b | (cbrt x) |
| 0.3b | (* (cbrt (+ x 1)) (cbrt (+ x 1))) |
| 0.3b | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
4 calls. Slowest were:
| 30.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 20.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 10.0ms | (* (cbrt (+ x 1)) (cbrt (+ x 1))) |
4 calls. Slowest were:
| 304.0ms | (cbrt x) |
| 87.0ms | (- (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) (cbrt x)) |
| 51.0ms | (cbrt (* (* (cbrt (+ x 1)) (cbrt (+ x 1))) (cbrt (+ x 1)))) |
| 45.0ms | (* (cbrt (+ x 1)) (cbrt (+ x 1))) |
103 calls. Slowest were:
| 324.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 323.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))))) |
| 277.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: 16.4b
Found 4 expressions with local error:
| 9.4b | (- (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1)))) (cbrt x)) |
| 0.5b | (cbrt x) |
| 0.3b | (cbrt (cbrt (+ x 1))) |
| 0.3b | (cbrt (cbrt (+ x 1))) |
4 calls. Slowest were:
| 127.0ms | (- (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1)))) (cbrt x)) |
| 2.0ms | (cbrt (cbrt (+ x 1))) |
| 2.0ms | (cbrt (cbrt (+ x 1))) |
4 calls. Slowest were:
| 268.0ms | (cbrt x) |
| 136.0ms | (- (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1)))) (cbrt x)) |
| 53.0ms | (cbrt (cbrt (+ x 1))) |
| 44.0ms | (cbrt (cbrt (+ x 1))) |
59 calls. Slowest were:
| 461.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))))) |
| 407.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 222.0ms | (- (+ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) (* 1/9 (/ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) x))) (* 4/81 (/ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 16.4b
Found 4 expressions with local error:
| 32.2b | (fma (* (cbrt (cbrt (+ 1 x))) (cbrt (cbrt (+ 1 x)))) (cbrt (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1))))) (- (cbrt x))) |
| 0.5b | (cbrt x) |
| 0.3b | (cbrt (cbrt (+ x 1))) |
| 0.3b | (cbrt (cbrt (+ x 1))) |
4 calls. Slowest were:
| 1.0ms | (cbrt (cbrt (+ x 1))) |
| 1.0ms | (cbrt (cbrt (+ x 1))) |
| 0.0ms | (fma (* (cbrt (cbrt (+ 1 x))) (cbrt (cbrt (+ 1 x)))) (cbrt (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1))))) (- (cbrt x))) |
4 calls. Slowest were:
| 234.0ms | (cbrt x) |
| 104.0ms | (fma (* (cbrt (cbrt (+ 1 x))) (cbrt (cbrt (+ 1 x)))) (cbrt (cbrt (* (* (* (cbrt (+ x 1)) (* (cbrt (cbrt (+ x 1))) (cbrt (cbrt (+ x 1))))) (cbrt (cbrt (+ x 1)))) (cbrt (+ x 1))))) (- (cbrt x))) |
| 33.0ms | (cbrt (cbrt (+ x 1))) |
| 31.0ms | (cbrt (cbrt (+ x 1))) |
28 calls. Slowest were:
| 416.0ms | (- (+ (* 1/3 x) 1) (+ (* 1/9 (pow x 2)) (pow x 1/3))) |
| 257.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)))) |
| 223.0ms | (- (+ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) (* 1/9 (/ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) x))) (* 4/81 (/ (exp (* 1/9 (- (log -1) (log (/ -1 x))))) (pow x 2)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 16.4b
99.5% (0.1b remaining)
Error of 15.8b against oracle of 15.7b and baseline of 30.2b