Average Error: 0.2 → 0.0
Time: 14.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 r10729154 = x;
        double r10729155 = y;
        double r10729156 = r10729154 * r10729155;
        double r10729157 = z;
        double r10729158 = t;
        double r10729159 = r10729157 * r10729158;
        double r10729160 = 16.0;
        double r10729161 = r10729159 / r10729160;
        double r10729162 = r10729156 + r10729161;
        double r10729163 = a;
        double r10729164 = b;
        double r10729165 = r10729163 * r10729164;
        double r10729166 = 4.0;
        double r10729167 = r10729165 / r10729166;
        double r10729168 = r10729162 - r10729167;
        double r10729169 = c;
        double r10729170 = r10729168 + r10729169;
        return r10729170;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r10729171 = z;
        double r10729172 = t;
        double r10729173 = 16.0;
        double r10729174 = r10729172 / r10729173;
        double r10729175 = r10729171 * r10729174;
        double r10729176 = x;
        double r10729177 = y;
        double r10729178 = r10729176 * r10729177;
        double r10729179 = r10729175 + r10729178;
        double r10729180 = a;
        double r10729181 = b;
        double r10729182 = r10729180 * r10729181;
        double r10729183 = 4.0;
        double r10729184 = r10729182 / r10729183;
        double r10729185 = r10729179 - r10729184;
        double r10729186 = c;
        double r10729187 = r10729185 + r10729186;
        return r10729187;
}

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

Reproduce

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