Average Error: 0.1 → 0.0
Time: 24.6s
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 r14877033 = x;
        double r14877034 = y;
        double r14877035 = r14877033 * r14877034;
        double r14877036 = z;
        double r14877037 = t;
        double r14877038 = r14877036 * r14877037;
        double r14877039 = 16.0;
        double r14877040 = r14877038 / r14877039;
        double r14877041 = r14877035 + r14877040;
        double r14877042 = a;
        double r14877043 = b;
        double r14877044 = r14877042 * r14877043;
        double r14877045 = 4.0;
        double r14877046 = r14877044 / r14877045;
        double r14877047 = r14877041 - r14877046;
        double r14877048 = c;
        double r14877049 = r14877047 + r14877048;
        return r14877049;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r14877050 = z;
        double r14877051 = t;
        double r14877052 = 16.0;
        double r14877053 = r14877051 / r14877052;
        double r14877054 = r14877050 * r14877053;
        double r14877055 = x;
        double r14877056 = y;
        double r14877057 = r14877055 * r14877056;
        double r14877058 = r14877054 + r14877057;
        double r14877059 = a;
        double r14877060 = b;
        double r14877061 = r14877059 * r14877060;
        double r14877062 = 4.0;
        double r14877063 = r14877061 / r14877062;
        double r14877064 = r14877058 - r14877063;
        double r14877065 = c;
        double r14877066 = r14877064 + r14877065;
        return r14877066;
}

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