Average Error: 0.2 → 0.0
Time: 33.7s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(\left(x \cdot y + z \cdot \frac{t}{16}\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(x \cdot y + z \cdot \frac{t}{16}\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 r17529393 = x;
        double r17529394 = y;
        double r17529395 = r17529393 * r17529394;
        double r17529396 = z;
        double r17529397 = t;
        double r17529398 = r17529396 * r17529397;
        double r17529399 = 16.0;
        double r17529400 = r17529398 / r17529399;
        double r17529401 = r17529395 + r17529400;
        double r17529402 = a;
        double r17529403 = b;
        double r17529404 = r17529402 * r17529403;
        double r17529405 = 4.0;
        double r17529406 = r17529404 / r17529405;
        double r17529407 = r17529401 - r17529406;
        double r17529408 = c;
        double r17529409 = r17529407 + r17529408;
        return r17529409;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r17529410 = x;
        double r17529411 = y;
        double r17529412 = r17529410 * r17529411;
        double r17529413 = z;
        double r17529414 = t;
        double r17529415 = 16.0;
        double r17529416 = r17529414 / r17529415;
        double r17529417 = r17529413 * r17529416;
        double r17529418 = r17529412 + r17529417;
        double r17529419 = a;
        double r17529420 = b;
        double r17529421 = r17529419 * r17529420;
        double r17529422 = 4.0;
        double r17529423 = r17529421 / r17529422;
        double r17529424 = r17529418 - r17529423;
        double r17529425 = c;
        double r17529426 = r17529424 + r17529425;
        return r17529426;
}

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 *-un-lft-identity0.2

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

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

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

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

Reproduce

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