Average Error: 0.1 → 0.0
Time: 11.5s
Precision: 64
\[\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\]
\[\left(\left(x \cdot y + \frac{z}{\sqrt{16}} \cdot \frac{t}{\sqrt{16}}\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(x \cdot y + \frac{z}{\sqrt{16}} \cdot \frac{t}{\sqrt{16}}\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 r302274 = x;
        double r302275 = y;
        double r302276 = r302274 * r302275;
        double r302277 = z;
        double r302278 = t;
        double r302279 = r302277 * r302278;
        double r302280 = 16.0;
        double r302281 = r302279 / r302280;
        double r302282 = r302276 + r302281;
        double r302283 = a;
        double r302284 = b;
        double r302285 = r302283 * r302284;
        double r302286 = 4.0;
        double r302287 = r302285 / r302286;
        double r302288 = r302282 - r302287;
        double r302289 = c;
        double r302290 = r302288 + r302289;
        return r302290;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r302291 = x;
        double r302292 = y;
        double r302293 = r302291 * r302292;
        double r302294 = z;
        double r302295 = 16.0;
        double r302296 = sqrt(r302295);
        double r302297 = r302294 / r302296;
        double r302298 = t;
        double r302299 = r302298 / r302296;
        double r302300 = r302297 * r302299;
        double r302301 = r302293 + r302300;
        double r302302 = a;
        double r302303 = b;
        double r302304 = r302302 * r302303;
        double r302305 = 4.0;
        double r302306 = r302304 / r302305;
        double r302307 = r302301 - r302306;
        double r302308 = c;
        double r302309 = r302307 + r302308;
        return r302309;
}

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 add-sqr-sqrt0.1

    \[\leadsto \left(\left(x \cdot y + \frac{z \cdot t}{\color{blue}{\sqrt{16} \cdot \sqrt{16}}}\right) - \frac{a \cdot b}{4}\right) + c\]
  4. Applied times-frac0.0

    \[\leadsto \left(\left(x \cdot y + \color{blue}{\frac{z}{\sqrt{16}} \cdot \frac{t}{\sqrt{16}}}\right) - \frac{a \cdot b}{4}\right) + c\]
  5. Final simplification0.0

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

Reproduce

herbie shell --seed 2020046 
(FPCore (x y z t a b c)
  :name "Diagrams.Solve.Polynomial:quartForm  from diagrams-solve-0.1, C"
  :precision binary64
  (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c))