Average Error: 30.0 → 0.4
Time: 8.7s
Precision: binary64
Cost: 72960
\[\sqrt[3]{x + 1} - \sqrt[3]{x} \]
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x}\\ t_1 := {t_0}^{2}\\ \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \frac{-1 + {\left(\frac{x + 2}{t_1 + \left(1 - t_0\right)}\right)}^{3}}{1 + \left(1 + t_0\right) \cdot \left(2 + t_0\right)}, t_1\right)} \end{array} \]
(FPCore (x) :precision binary64 (- (cbrt (+ x 1.0)) (cbrt x)))
(FPCore (x)
 :precision binary64
 (let* ((t_0 (cbrt (+ 1.0 x))) (t_1 (pow t_0 2.0)))
   (/
    1.0
    (fma
     (cbrt x)
     (+
      (cbrt x)
      (/
       (+ -1.0 (pow (/ (+ x 2.0) (+ t_1 (- 1.0 t_0))) 3.0))
       (+ 1.0 (* (+ 1.0 t_0) (+ 2.0 t_0)))))
     t_1))))
double code(double x) {
	return cbrt((x + 1.0)) - cbrt(x);
}
double code(double x) {
	double t_0 = cbrt((1.0 + x));
	double t_1 = pow(t_0, 2.0);
	return 1.0 / fma(cbrt(x), (cbrt(x) + ((-1.0 + pow(((x + 2.0) / (t_1 + (1.0 - t_0))), 3.0)) / (1.0 + ((1.0 + t_0) * (2.0 + t_0))))), t_1);
}
function code(x)
	return Float64(cbrt(Float64(x + 1.0)) - cbrt(x))
end
function code(x)
	t_0 = cbrt(Float64(1.0 + x))
	t_1 = t_0 ^ 2.0
	return Float64(1.0 / fma(cbrt(x), Float64(cbrt(x) + Float64(Float64(-1.0 + (Float64(Float64(x + 2.0) / Float64(t_1 + Float64(1.0 - t_0))) ^ 3.0)) / Float64(1.0 + Float64(Float64(1.0 + t_0) * Float64(2.0 + t_0))))), t_1))
end
code[x_] := N[(N[Power[N[(x + 1.0), $MachinePrecision], 1/3], $MachinePrecision] - N[Power[x, 1/3], $MachinePrecision]), $MachinePrecision]
code[x_] := Block[{t$95$0 = N[Power[N[(1.0 + x), $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$1 = N[Power[t$95$0, 2.0], $MachinePrecision]}, N[(1.0 / N[(N[Power[x, 1/3], $MachinePrecision] * N[(N[Power[x, 1/3], $MachinePrecision] + N[(N[(-1.0 + N[Power[N[(N[(x + 2.0), $MachinePrecision] / N[(t$95$1 + N[(1.0 - t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(N[(1.0 + t$95$0), $MachinePrecision] * N[(2.0 + t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision]]]
\sqrt[3]{x + 1} - \sqrt[3]{x}
\begin{array}{l}
t_0 := \sqrt[3]{1 + x}\\
t_1 := {t_0}^{2}\\
\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \frac{-1 + {\left(\frac{x + 2}{t_1 + \left(1 - t_0\right)}\right)}^{3}}{1 + \left(1 + t_0\right) \cdot \left(2 + t_0\right)}, t_1\right)}
\end{array}

Error

Derivation

  1. Initial program 30.0

    \[\sqrt[3]{x + 1} - \sqrt[3]{x} \]
  2. Applied egg-rr29.3

    \[\leadsto \color{blue}{\left(\left(x + 1\right) - x\right) \cdot \frac{1}{{\left(\sqrt[3]{x + 1}\right)}^{2} + \sqrt[3]{x} \cdot \left(\sqrt[3]{x + 1} + \sqrt[3]{x}\right)}} \]
  3. Simplified0.5

    \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{1 + x} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)}} \]
    Proof
    (/.f64 1 (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (Rewrite<= metadata-eval (+.f64 1 0)) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (+.f64 1 (Rewrite<= +-inverses_binary64 (-.f64 x x))) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 1 x) x)) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 127 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 x 1)) x) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (+.f64 x 1) x) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 x 1))) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (+.f64 x 1) x) (fma.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)) (pow.f64 (cbrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 x 1))) 2))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (+.f64 x 1) x) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))) (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)))): 1 points increase in error, 1 points decrease in error
    (/.f64 (-.f64 (+.f64 x 1) x) (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (Rewrite<= *-rgt-identity_binary64 (*.f64 (-.f64 (+.f64 x 1) x) 1)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))): 0 points increase in error, 0 points decrease in error
    (Rewrite<= associate-*r/_binary64 (*.f64 (-.f64 (+.f64 x 1) x) (/.f64 1 (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (*.f64 (cbrt.f64 x) (+.f64 (cbrt.f64 (+.f64 x 1)) (cbrt.f64 x))))))): 1 points increase in error, 0 points decrease in error
  4. Applied egg-rr16.7

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{1 + x}\right)\right)} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]
  5. Applied egg-rr0.5

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \color{blue}{\frac{{\left(1 + \sqrt[3]{1 + x}\right)}^{3} - 1}{\left(1 + \sqrt[3]{1 + x}\right) \cdot \left(1 + \sqrt[3]{1 + x}\right) + \left(1 + \left(1 + \sqrt[3]{1 + x}\right) \cdot 1\right)}} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]
  6. Simplified0.5

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \color{blue}{\frac{-1 + {\left(1 + \sqrt[3]{1 + x}\right)}^{3}}{1 + \left(1 + \sqrt[3]{1 + x}\right) \cdot \left(2 + \sqrt[3]{1 + x}\right)}} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]
    Proof
    (/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3)) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 2 (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) -1)) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 2 (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (+.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) (Rewrite<= metadata-eval (neg.f64 1))) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 2 (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (Rewrite<= sub-neg_binary64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1)) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 2 (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 (Rewrite<= metadata-eval (+.f64 1 1)) (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (Rewrite<= associate-+r+_binary64 (+.f64 1 (+.f64 1 (cbrt.f64 (+.f64 1 x)))))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 1 (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 1) (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))))))): 1 points increase in error, 5 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 1 (+.f64 (Rewrite=> *-rgt-identity_binary64 (+.f64 1 (cbrt.f64 (+.f64 1 x)))) (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x))))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 1 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (cbrt.f64 (+.f64 1 x))))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 1 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x))))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))) 1)) (+.f64 1 (cbrt.f64 (+.f64 1 x))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (Rewrite<= associate-+r+_binary64 (+.f64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (+.f64 1 (cbrt.f64 (+.f64 1 x))))))): 0 points increase in error, 0 points decrease in error
    (/.f64 (-.f64 (pow.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 3) 1) (+.f64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) (+.f64 1 (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (Rewrite<= *-rgt-identity_binary64 (*.f64 (+.f64 1 (cbrt.f64 (+.f64 1 x))) 1))))): 0 points increase in error, 0 points decrease in error
  7. Applied egg-rr21.5

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \frac{-1 + \color{blue}{\frac{{\left(1 + \left(1 + x\right)\right)}^{3}}{{\left(1 + \left({\left(\sqrt[3]{1 + x}\right)}^{2} - \sqrt[3]{1 + x}\right)\right)}^{3}}}}{1 + \left(1 + \sqrt[3]{1 + x}\right) \cdot \left(2 + \sqrt[3]{1 + x}\right)} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]
  8. Simplified0.4

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \frac{-1 + \color{blue}{{\left(\frac{x + 2}{{\left(\sqrt[3]{x + 1}\right)}^{2} + \left(1 - \sqrt[3]{x + 1}\right)}\right)}^{3}}}{1 + \left(1 + \sqrt[3]{1 + x}\right) \cdot \left(2 + \sqrt[3]{1 + x}\right)} + \sqrt[3]{x}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]
    Proof
    (pow.f64 (/.f64 (+.f64 x 2) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (-.f64 1 (cbrt.f64 (+.f64 x 1))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 2 x)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (-.f64 1 (cbrt.f64 (+.f64 x 1))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 (Rewrite<= metadata-eval (+.f64 1 1)) x) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (-.f64 1 (cbrt.f64 (+.f64 x 1))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (Rewrite<= associate-+r+_binary64 (+.f64 1 (+.f64 1 x))) (+.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2) (-.f64 1 (cbrt.f64 (+.f64 x 1))))) 3): 2 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 (pow.f64 (cbrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 x))) 2) (-.f64 1 (cbrt.f64 (+.f64 x 1))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (-.f64 1 (cbrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 x)))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) 1) (cbrt.f64 (+.f64 1 x))))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2))) (cbrt.f64 (+.f64 1 x)))) 3): 0 points increase in error, 0 points decrease in error
    (pow.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (Rewrite<= associate-+r-_binary64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))))) 3): 0 points increase in error, 0 points decrease in error
    (Rewrite<= cube-unmult_binary64 (*.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x))))) (*.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x))))) (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))))))): 13 points increase in error, 21 points decrease in error
    (*.f64 (/.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x))))) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (+.f64 1 x))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))))))): 87 points increase in error, 13 points decrease in error
    (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (+.f64 1 (+.f64 1 x)) (*.f64 (+.f64 1 (+.f64 1 x)) (+.f64 1 (+.f64 1 x)))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))))))): 26 points increase in error, 13 points decrease in error
    (/.f64 (Rewrite<= cube-mult_binary64 (pow.f64 (+.f64 1 (+.f64 1 x)) 3)) (*.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x))))))): 5 points increase in error, 6 points decrease in error
    (/.f64 (pow.f64 (+.f64 1 (+.f64 1 x)) 3) (Rewrite<= cube-mult_binary64 (pow.f64 (+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)))) 3))): 2 points increase in error, 6 points decrease in error
  9. Final simplification0.4

    \[\leadsto \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \frac{-1 + {\left(\frac{x + 2}{{\left(\sqrt[3]{1 + x}\right)}^{2} + \left(1 - \sqrt[3]{1 + x}\right)}\right)}^{3}}{1 + \left(1 + \sqrt[3]{1 + x}\right) \cdot \left(2 + \sqrt[3]{1 + x}\right)}, {\left(\sqrt[3]{1 + x}\right)}^{2}\right)} \]

Alternatives

Alternative 1
Error0.5
Cost59584
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x}\\ t_1 := 1 + t_0\\ \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \frac{-1 + {t_1}^{3}}{1 + t_1 \cdot \left(2 + t_0\right)}, {t_0}^{2}\right)} \end{array} \]
Alternative 2
Error0.5
Cost46340
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x}\\ \mathbf{if}\;t_0 - \sqrt[3]{x} \leq 5 \cdot 10^{-11}:\\ \;\;\;\;0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(1 + x\right) - x}{{t_0}^{2} + \sqrt[3]{x} \cdot \left(\sqrt[3]{x} + t_0\right)}\\ \end{array} \]
Alternative 3
Error1.2
Cost46020
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x}\\ \mathbf{if}\;t_0 - \sqrt[3]{x} \leq 1.5 \cdot 10^{-8}:\\ \;\;\;\;0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt[3]{x} \cdot \left(\sqrt[3]{x} + t_0\right) + e^{0.6666666666666666 \cdot \mathsf{log1p}\left(x\right)}}\\ \end{array} \]
Alternative 4
Error0.5
Cost39432
\[\begin{array}{l} t_0 := 0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{if}\;x \leq -1 \cdot 10^{+97}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 2 \cdot 10^{+153}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + \sqrt[3]{1 + x}, \sqrt[3]{{\left(1 + x\right)}^{2}}\right)}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 5
Error0.9
Cost39364
\[\begin{array}{l} \mathbf{if}\;\sqrt[3]{1 + x} - \sqrt[3]{x} \leq 2 \cdot 10^{-8}:\\ \;\;\;\;0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\mathsf{fma}\left(x, x, -1\right)}}{\sqrt[3]{x + -1}} - \sqrt[3]{x}\\ \end{array} \]
Alternative 6
Error0.5
Cost39168
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x}\\ \frac{1}{\mathsf{fma}\left(\sqrt[3]{x}, \sqrt[3]{x} + t_0, {t_0}^{2}\right)} \end{array} \]
Alternative 7
Error0.9
Cost39108
\[\begin{array}{l} t_0 := \sqrt[3]{1 + x} - \sqrt[3]{x}\\ \mathbf{if}\;t_0 \leq 2 \cdot 10^{-8}:\\ \;\;\;\;0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{else}:\\ \;\;\;\;e^{\log t_0}\\ \end{array} \]
Alternative 8
Error0.8
Cost33032
\[\begin{array}{l} t_0 := 0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{if}\;x \leq -50000000:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 41000000:\\ \;\;\;\;\frac{\sqrt[3]{1 + {x}^{3}}}{\sqrt[3]{\mathsf{fma}\left(x, x, 1 - x\right)}} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 9
Error0.8
Cost13512
\[\begin{array}{l} t_0 := 0.3333333333333333 \cdot \frac{\sqrt[3]{\frac{1}{x}}}{\sqrt[3]{x}}\\ \mathbf{if}\;x \leq -35000000:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 31000000:\\ \;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 10
Error1.0
Cost13448
\[\begin{array}{l} t_0 := 0.3333333333333333 \cdot {\left(\sqrt[3]{\frac{1}{x}}\right)}^{2}\\ \mathbf{if}\;x \leq -35000000:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 31000000:\\ \;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 11
Error16.2
Cost13384
\[\begin{array}{l} \mathbf{if}\;x \leq -35000000:\\ \;\;\;\;\sqrt[3]{\frac{0.037037037037037035}{x \cdot x}}\\ \mathbf{elif}\;x \leq 31000000:\\ \;\;\;\;\sqrt[3]{1 + x} - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;0.3333333333333333 \cdot \sqrt[3]{\frac{1}{x} \cdot \frac{1}{x}}\\ \end{array} \]
Alternative 12
Error16.8
Cost7240
\[\begin{array}{l} \mathbf{if}\;x \leq -1.02:\\ \;\;\;\;\sqrt[3]{\frac{0.037037037037037035}{x \cdot x}}\\ \mathbf{elif}\;x \leq 1:\\ \;\;\;\;\left(1 + x \cdot 0.3333333333333333\right) - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;0.3333333333333333 \cdot \sqrt[3]{\frac{1}{x} \cdot \frac{1}{x}}\\ \end{array} \]
Alternative 13
Error17.1
Cost7112
\[\begin{array}{l} \mathbf{if}\;x \leq -1.02:\\ \;\;\;\;\sqrt[3]{\frac{0.037037037037037035}{x \cdot x}}\\ \mathbf{elif}\;x \leq 1:\\ \;\;\;\;\left(1 + x \cdot 0.3333333333333333\right) - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.3333333333333333}{\sqrt[3]{x \cdot x}}\\ \end{array} \]
Alternative 14
Error17.5
Cost6984
\[\begin{array}{l} t_0 := \sqrt[3]{\frac{0.037037037037037035}{x \cdot x}}\\ \mathbf{if}\;x \leq -1:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 0.48:\\ \;\;\;\;1 - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 15
Error17.5
Cost6984
\[\begin{array}{l} \mathbf{if}\;x \leq -1:\\ \;\;\;\;\sqrt[3]{\frac{0.037037037037037035}{x \cdot x}}\\ \mathbf{elif}\;x \leq 0.48:\\ \;\;\;\;1 - \sqrt[3]{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.3333333333333333}{\sqrt[3]{x \cdot x}}\\ \end{array} \]
Alternative 16
Error31.7
Cost6592
\[1 - \sqrt[3]{x} \]
Alternative 17
Error61.7
Cost64
\[0 \]
Alternative 18
Error32.2
Cost64
\[1 \]

Error

Reproduce

herbie shell --seed 2022330 
(FPCore (x)
  :name "2cbrt (problem 3.3.4)"
  :precision binary64
  (- (cbrt (+ x 1.0)) (cbrt x)))