Average Error: 0.1 → 0.1
Time: 20.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 r199349 = x;
        double r199350 = y;
        double r199351 = r199349 * r199350;
        double r199352 = z;
        double r199353 = t;
        double r199354 = r199352 * r199353;
        double r199355 = 16.0;
        double r199356 = r199354 / r199355;
        double r199357 = r199351 + r199356;
        double r199358 = a;
        double r199359 = b;
        double r199360 = r199358 * r199359;
        double r199361 = 4.0;
        double r199362 = r199360 / r199361;
        double r199363 = r199357 - r199362;
        double r199364 = c;
        double r199365 = r199363 + r199364;
        return r199365;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r199366 = z;
        double r199367 = 16.0;
        double r199368 = t;
        double r199369 = r199367 / r199368;
        double r199370 = r199366 / r199369;
        double r199371 = x;
        double r199372 = y;
        double r199373 = r199371 * r199372;
        double r199374 = r199370 + r199373;
        double r199375 = a;
        double r199376 = b;
        double r199377 = r199375 * r199376;
        double r199378 = 4.0;
        double r199379 = r199377 / r199378;
        double r199380 = r199374 - r199379;
        double r199381 = c;
        double r199382 = r199380 + r199381;
        return r199382;
}

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 2019194 
(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))