Average Error: 0.2 → 0.2
Time: 1.1m
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(c - \frac{a}{\frac{4}{b}}\right) + \left(y \cdot x + \frac{t \cdot z}{16}\right)\]
\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c
\left(c - \frac{a}{\frac{4}{b}}\right) + \left(y \cdot x + \frac{t \cdot z}{16}\right)
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r12117455 = x;
        double r12117456 = y;
        double r12117457 = r12117455 * r12117456;
        double r12117458 = z;
        double r12117459 = t;
        double r12117460 = r12117458 * r12117459;
        double r12117461 = 16.0;
        double r12117462 = r12117460 / r12117461;
        double r12117463 = r12117457 + r12117462;
        double r12117464 = a;
        double r12117465 = b;
        double r12117466 = r12117464 * r12117465;
        double r12117467 = 4.0;
        double r12117468 = r12117466 / r12117467;
        double r12117469 = r12117463 - r12117468;
        double r12117470 = c;
        double r12117471 = r12117469 + r12117470;
        return r12117471;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r12117472 = c;
        double r12117473 = a;
        double r12117474 = 4.0;
        double r12117475 = b;
        double r12117476 = r12117474 / r12117475;
        double r12117477 = r12117473 / r12117476;
        double r12117478 = r12117472 - r12117477;
        double r12117479 = y;
        double r12117480 = x;
        double r12117481 = r12117479 * r12117480;
        double r12117482 = t;
        double r12117483 = z;
        double r12117484 = r12117482 * r12117483;
        double r12117485 = 16.0;
        double r12117486 = r12117484 / r12117485;
        double r12117487 = r12117481 + r12117486;
        double r12117488 = r12117478 + r12117487;
        return r12117488;
}

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.2

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

    \[\leadsto \color{blue}{\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) + \left(-\frac{a \cdot b}{4}\right)\right)} + c\]
  4. Applied associate-+l+0.2

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

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

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

Reproduce

herbie shell --seed 2019200 
(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))