Average Error: 0.1 → 0.0
Time: 5.3s
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 r254936 = x;
        double r254937 = y;
        double r254938 = r254936 * r254937;
        double r254939 = z;
        double r254940 = t;
        double r254941 = r254939 * r254940;
        double r254942 = 16.0;
        double r254943 = r254941 / r254942;
        double r254944 = r254938 + r254943;
        double r254945 = a;
        double r254946 = b;
        double r254947 = r254945 * r254946;
        double r254948 = 4.0;
        double r254949 = r254947 / r254948;
        double r254950 = r254944 - r254949;
        double r254951 = c;
        double r254952 = r254950 + r254951;
        return r254952;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r254953 = x;
        double r254954 = y;
        double r254955 = r254953 * r254954;
        double r254956 = z;
        double r254957 = 16.0;
        double r254958 = sqrt(r254957);
        double r254959 = r254956 / r254958;
        double r254960 = t;
        double r254961 = r254960 / r254958;
        double r254962 = r254959 * r254961;
        double r254963 = r254955 + r254962;
        double r254964 = a;
        double r254965 = b;
        double r254966 = r254964 * r254965;
        double r254967 = 4.0;
        double r254968 = r254966 / r254967;
        double r254969 = r254963 - r254968;
        double r254970 = c;
        double r254971 = r254969 + r254970;
        return r254971;
}

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