Average Error: 0.1 → 0.0
Time: 25.7s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(\left(z \cdot \frac{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(z \cdot \frac{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 r12775294 = x;
        double r12775295 = y;
        double r12775296 = r12775294 * r12775295;
        double r12775297 = z;
        double r12775298 = t;
        double r12775299 = r12775297 * r12775298;
        double r12775300 = 16.0;
        double r12775301 = r12775299 / r12775300;
        double r12775302 = r12775296 + r12775301;
        double r12775303 = a;
        double r12775304 = b;
        double r12775305 = r12775303 * r12775304;
        double r12775306 = 4.0;
        double r12775307 = r12775305 / r12775306;
        double r12775308 = r12775302 - r12775307;
        double r12775309 = c;
        double r12775310 = r12775308 + r12775309;
        return r12775310;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r12775311 = z;
        double r12775312 = t;
        double r12775313 = 16.0;
        double r12775314 = r12775312 / r12775313;
        double r12775315 = r12775311 * r12775314;
        double r12775316 = x;
        double r12775317 = y;
        double r12775318 = r12775316 * r12775317;
        double r12775319 = r12775315 + r12775318;
        double r12775320 = a;
        double r12775321 = b;
        double r12775322 = r12775320 * r12775321;
        double r12775323 = 4.0;
        double r12775324 = r12775322 / r12775323;
        double r12775325 = r12775319 - r12775324;
        double r12775326 = c;
        double r12775327 = r12775325 + r12775326;
        return r12775327;
}

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

    \[\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(z \cdot \frac{t}{16} + x \cdot y\right) - \frac{a \cdot b}{4}\right) + c\]

Reproduce

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