Average Error: 43.9 → 43.9
Time: 23.3s
Precision: binary64
\[{\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}\]
\[{\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}\]
{\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}
{\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}
double code(double r, double q) {
	return ((double) (((double) pow(((double) (r + ((double) sqrt(((double) (((double) pow(q, 3.0)) + ((double) pow(r, 2.0)))))))), ((double) (1.0 / 3.0)))) + ((double) pow(((double) (r + ((double) sqrt(((double) (((double) pow(q, 3.0)) - ((double) pow(r, 2.0)))))))), ((double) (1.0 / 3.0))))));
}
double code(double r, double q) {
	return ((double) (((double) pow(((double) (r + ((double) sqrt(((double) (((double) pow(q, 3.0)) + ((double) pow(r, 2.0)))))))), ((double) (1.0 / 3.0)))) + ((double) pow(((double) (r + ((double) sqrt(((double) (((double) pow(q, 3.0)) - ((double) pow(r, 2.0)))))))), ((double) (1.0 / 3.0))))));
}

Error

Bits error versus r

Bits error versus q

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 43.9

    \[{\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}\]
  2. Final simplification43.9

    \[\leadsto {\left(r + \sqrt{{q}^{3} + {r}^{2}}\right)}^{\left(\frac{1}{3}\right)} + {\left(r + \sqrt{{q}^{3} - {r}^{2}}\right)}^{\left(\frac{1}{3}\right)}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (r q)
  :name "(+ (pow (+ r (sqrt (+ (pow q 3) (pow r 2)))) (/ 1 3)) (pow (+ r (sqrt (- (pow q 3) (pow r 2)))) (/ 1 3)))"
  :precision binary64
  (+ (pow (+ r (sqrt (+ (pow q 3.0) (pow r 2.0)))) (/ 1.0 3.0)) (pow (+ r (sqrt (- (pow q 3.0) (pow r 2.0)))) (/ 1.0 3.0))))