Average Error: 0.2 → 0.2
Time: 6.6s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right)\right) - 1
double f(double a, double b) {
        double r241941 = a;
        double r241942 = r241941 * r241941;
        double r241943 = b;
        double r241944 = r241943 * r241943;
        double r241945 = r241942 + r241944;
        double r241946 = 2.0;
        double r241947 = pow(r241945, r241946);
        double r241948 = 4.0;
        double r241949 = 1.0;
        double r241950 = r241949 + r241941;
        double r241951 = r241942 * r241950;
        double r241952 = 3.0;
        double r241953 = r241952 * r241941;
        double r241954 = r241949 - r241953;
        double r241955 = r241944 * r241954;
        double r241956 = r241951 + r241955;
        double r241957 = r241948 * r241956;
        double r241958 = r241947 + r241957;
        double r241959 = r241958 - r241949;
        return r241959;
}

double f(double a, double b) {
        double r241960 = a;
        double r241961 = r241960 * r241960;
        double r241962 = b;
        double r241963 = r241962 * r241962;
        double r241964 = r241961 + r241963;
        double r241965 = 2.0;
        double r241966 = pow(r241964, r241965);
        double r241967 = 4.0;
        double r241968 = 1.0;
        double r241969 = r241968 + r241960;
        double r241970 = r241961 * r241969;
        double r241971 = 3.0;
        double r241972 = r241971 * r241960;
        double r241973 = r241968 - r241972;
        double r241974 = r241963 * r241973;
        double r241975 = cbrt(r241974);
        double r241976 = r241975 * r241975;
        double r241977 = r241976 * r241975;
        double r241978 = r241970 + r241977;
        double r241979 = r241967 * r241978;
        double r241980 = r241966 + r241979;
        double r241981 = r241980 - r241968;
        return r241981;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \color{blue}{\left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}}\right)\right) - 1\]
  4. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(\sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)} \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right) \cdot \sqrt[3]{\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)}\right)\right) - 1\]

Reproduce

herbie shell --seed 2019346 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))