Average Error: 0.2 → 0.1
Time: 46.1s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16.0}\right) - \frac{a \cdot b}{4.0}\right) + c\]
\[\left(\left(z \cdot \frac{t}{16.0} + x \cdot y\right) - \frac{a \cdot b}{4.0}\right) + c\]
\left(\left(x \cdot y + \frac{z \cdot t}{16.0}\right) - \frac{a \cdot b}{4.0}\right) + c
\left(\left(z \cdot \frac{t}{16.0} + x \cdot y\right) - \frac{a \cdot b}{4.0}\right) + c
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r11459428 = x;
        double r11459429 = y;
        double r11459430 = r11459428 * r11459429;
        double r11459431 = z;
        double r11459432 = t;
        double r11459433 = r11459431 * r11459432;
        double r11459434 = 16.0;
        double r11459435 = r11459433 / r11459434;
        double r11459436 = r11459430 + r11459435;
        double r11459437 = a;
        double r11459438 = b;
        double r11459439 = r11459437 * r11459438;
        double r11459440 = 4.0;
        double r11459441 = r11459439 / r11459440;
        double r11459442 = r11459436 - r11459441;
        double r11459443 = c;
        double r11459444 = r11459442 + r11459443;
        return r11459444;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r11459445 = z;
        double r11459446 = t;
        double r11459447 = 16.0;
        double r11459448 = r11459446 / r11459447;
        double r11459449 = r11459445 * r11459448;
        double r11459450 = x;
        double r11459451 = y;
        double r11459452 = r11459450 * r11459451;
        double r11459453 = r11459449 + r11459452;
        double r11459454 = a;
        double r11459455 = b;
        double r11459456 = r11459454 * r11459455;
        double r11459457 = 4.0;
        double r11459458 = r11459456 / r11459457;
        double r11459459 = r11459453 - r11459458;
        double r11459460 = c;
        double r11459461 = r11459459 + r11459460;
        return r11459461;
}

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.0}\right) - \frac{a \cdot b}{4.0}\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.0}}\right) - \frac{a \cdot b}{4.0}\right) + c\]
  4. Applied times-frac0.1

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

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

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

Reproduce

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