Average Error: 6.4 → 2.0
Time: 7.6s
Precision: 64
\[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
\[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(c \cdot i\right)\right)\right)\right)\]
2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)
2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(c \cdot i\right)\right)\right)\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r753341 = 2.0;
        double r753342 = x;
        double r753343 = y;
        double r753344 = r753342 * r753343;
        double r753345 = z;
        double r753346 = t;
        double r753347 = r753345 * r753346;
        double r753348 = r753344 + r753347;
        double r753349 = a;
        double r753350 = b;
        double r753351 = c;
        double r753352 = r753350 * r753351;
        double r753353 = r753349 + r753352;
        double r753354 = r753353 * r753351;
        double r753355 = i;
        double r753356 = r753354 * r753355;
        double r753357 = r753348 - r753356;
        double r753358 = r753341 * r753357;
        return r753358;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r753359 = 2.0;
        double r753360 = x;
        double r753361 = y;
        double r753362 = r753360 * r753361;
        double r753363 = z;
        double r753364 = t;
        double r753365 = r753363 * r753364;
        double r753366 = r753362 + r753365;
        double r753367 = a;
        double r753368 = b;
        double r753369 = c;
        double r753370 = r753368 * r753369;
        double r753371 = r753367 + r753370;
        double r753372 = cbrt(r753371);
        double r753373 = i;
        double r753374 = r753369 * r753373;
        double r753375 = r753372 * r753374;
        double r753376 = r753372 * r753375;
        double r753377 = r753372 * r753376;
        double r753378 = r753366 - r753377;
        double r753379 = r753359 * r753378;
        return r753379;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original6.4
Target1.7
Herbie2.0
\[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(a + b \cdot c\right) \cdot \left(c \cdot i\right)\right)\]

Derivation

  1. Initial program 6.4

    \[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
  2. Using strategy rm
  3. Applied associate-*l*1.7

    \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(a + b \cdot c\right) \cdot \left(c \cdot i\right)}\right)\]
  4. Using strategy rm
  5. Applied add-cube-cbrt2.0

    \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right)} \cdot \left(c \cdot i\right)\right)\]
  6. Applied associate-*l*2.0

    \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(c \cdot i\right)\right)}\right)\]
  7. Using strategy rm
  8. Applied associate-*l*2.0

    \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(c \cdot i\right)\right)\right)}\right)\]
  9. Final simplification2.0

    \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(c \cdot i\right)\right)\right)\right)\]

Reproduce

herbie shell --seed 2020062 
(FPCore (x y z t a b c i)
  :name "Diagrams.ThreeD.Shapes:frustum from diagrams-lib-1.3.0.3, A"
  :precision binary64

  :herbie-target
  (* 2 (- (+ (* x y) (* z t)) (* (+ a (* b c)) (* c i))))

  (* 2 (- (+ (* x y) (* z t)) (* (* (+ a (* b c)) c) i))))