Average Error: 0.1 → 0.1
Time: 12.7s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(\left(\frac{z \cdot t}{16} + 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 \cdot t}{16} + 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 r7698478 = x;
        double r7698479 = y;
        double r7698480 = r7698478 * r7698479;
        double r7698481 = z;
        double r7698482 = t;
        double r7698483 = r7698481 * r7698482;
        double r7698484 = 16.0;
        double r7698485 = r7698483 / r7698484;
        double r7698486 = r7698480 + r7698485;
        double r7698487 = a;
        double r7698488 = b;
        double r7698489 = r7698487 * r7698488;
        double r7698490 = 4.0;
        double r7698491 = r7698489 / r7698490;
        double r7698492 = r7698486 - r7698491;
        double r7698493 = c;
        double r7698494 = r7698492 + r7698493;
        return r7698494;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r7698495 = z;
        double r7698496 = t;
        double r7698497 = r7698495 * r7698496;
        double r7698498 = 16.0;
        double r7698499 = r7698497 / r7698498;
        double r7698500 = x;
        double r7698501 = y;
        double r7698502 = r7698500 * r7698501;
        double r7698503 = r7698499 + r7698502;
        double r7698504 = a;
        double r7698505 = b;
        double r7698506 = r7698504 * r7698505;
        double r7698507 = 4.0;
        double r7698508 = r7698506 / r7698507;
        double r7698509 = r7698503 - r7698508;
        double r7698510 = c;
        double r7698511 = r7698509 + r7698510;
        return r7698511;
}

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. Final simplification0.1

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

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(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))