Average Error: 0.1 → 0.1
Time: 54.6s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(\left(\frac{z}{\frac{16}{t}} + x \cdot y\right) - \frac{a \cdot b}{4}\right) + c\]
\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c
\left(\left(\frac{z}{\frac{16}{t}} + x \cdot y\right) - \frac{a \cdot b}{4}\right) + c
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r13098597 = x;
        double r13098598 = y;
        double r13098599 = r13098597 * r13098598;
        double r13098600 = z;
        double r13098601 = t;
        double r13098602 = r13098600 * r13098601;
        double r13098603 = 16.0;
        double r13098604 = r13098602 / r13098603;
        double r13098605 = r13098599 + r13098604;
        double r13098606 = a;
        double r13098607 = b;
        double r13098608 = r13098606 * r13098607;
        double r13098609 = 4.0;
        double r13098610 = r13098608 / r13098609;
        double r13098611 = r13098605 - r13098610;
        double r13098612 = c;
        double r13098613 = r13098611 + r13098612;
        return r13098613;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r13098614 = z;
        double r13098615 = 16.0;
        double r13098616 = t;
        double r13098617 = r13098615 / r13098616;
        double r13098618 = r13098614 / r13098617;
        double r13098619 = x;
        double r13098620 = y;
        double r13098621 = r13098619 * r13098620;
        double r13098622 = r13098618 + r13098621;
        double r13098623 = a;
        double r13098624 = b;
        double r13098625 = r13098623 * r13098624;
        double r13098626 = 4.0;
        double r13098627 = r13098625 / r13098626;
        double r13098628 = r13098622 - r13098627;
        double r13098629 = c;
        double r13098630 = r13098628 + r13098629;
        return r13098630;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
  2. Using strategy rm
  3. Applied associate-/l*0.1

    \[\leadsto \left(\left(x \cdot y + \color{blue}{\frac{z}{\frac{16}{t}}}\right) - \frac{a \cdot b}{4}\right) + c\]
  4. Final simplification0.1

    \[\leadsto \left(\left(\frac{z}{\frac{16}{t}} + x \cdot y\right) - \frac{a \cdot b}{4}\right) + c\]

Reproduce

herbie shell --seed 2019168 
(FPCore (x y z t a b c)
  :name "Diagrams.Solve.Polynomial:quartForm  from diagrams-solve-0.1, C"
  (+ (- (+ (* x y) (/ (* z t) 16.0)) (/ (* a b) 4.0)) c))