Average Error: 0.3 → 0.2
Time: 4.6s
Precision: 64
\[\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120\]
\[x \cdot \frac{60}{z - t} + \left(a \cdot 120 - y \cdot \frac{60}{z - t}\right)\]
\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120
x \cdot \frac{60}{z - t} + \left(a \cdot 120 - y \cdot \frac{60}{z - t}\right)
double f(double x, double y, double z, double t, double a) {
        double r1000887 = 60.0;
        double r1000888 = x;
        double r1000889 = y;
        double r1000890 = r1000888 - r1000889;
        double r1000891 = r1000887 * r1000890;
        double r1000892 = z;
        double r1000893 = t;
        double r1000894 = r1000892 - r1000893;
        double r1000895 = r1000891 / r1000894;
        double r1000896 = a;
        double r1000897 = 120.0;
        double r1000898 = r1000896 * r1000897;
        double r1000899 = r1000895 + r1000898;
        return r1000899;
}

double f(double x, double y, double z, double t, double a) {
        double r1000900 = x;
        double r1000901 = 60.0;
        double r1000902 = z;
        double r1000903 = t;
        double r1000904 = r1000902 - r1000903;
        double r1000905 = r1000901 / r1000904;
        double r1000906 = r1000900 * r1000905;
        double r1000907 = a;
        double r1000908 = 120.0;
        double r1000909 = r1000907 * r1000908;
        double r1000910 = y;
        double r1000911 = r1000910 * r1000905;
        double r1000912 = r1000909 - r1000911;
        double r1000913 = r1000906 + r1000912;
        return r1000913;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.3
Target0.2
Herbie0.2
\[\frac{60}{\frac{z - t}{x - y}} + a \cdot 120\]

Derivation

  1. Initial program 0.3

    \[\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120\]
  2. Using strategy rm
  3. Applied associate-/l*0.2

    \[\leadsto \color{blue}{\frac{60}{\frac{z - t}{x - y}}} + a \cdot 120\]
  4. Using strategy rm
  5. Applied associate-/r/0.2

    \[\leadsto \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)} + a \cdot 120\]
  6. Using strategy rm
  7. Applied sub-neg0.2

    \[\leadsto \frac{60}{z - t} \cdot \color{blue}{\left(x + \left(-y\right)\right)} + a \cdot 120\]
  8. Applied distribute-rgt-in0.2

    \[\leadsto \color{blue}{\left(x \cdot \frac{60}{z - t} + \left(-y\right) \cdot \frac{60}{z - t}\right)} + a \cdot 120\]
  9. Applied associate-+l+0.2

    \[\leadsto \color{blue}{x \cdot \frac{60}{z - t} + \left(\left(-y\right) \cdot \frac{60}{z - t} + a \cdot 120\right)}\]
  10. Simplified0.2

    \[\leadsto x \cdot \frac{60}{z - t} + \color{blue}{\left(a \cdot 120 - y \cdot \frac{60}{z - t}\right)}\]
  11. Final simplification0.2

    \[\leadsto x \cdot \frac{60}{z - t} + \left(a \cdot 120 - y \cdot \frac{60}{z - t}\right)\]

Reproduce

herbie shell --seed 2020089 
(FPCore (x y z t a)
  :name "Data.Colour.RGB:hslsv from colour-2.3.3, B"
  :precision binary64

  :herbie-target
  (+ (/ 60 (/ (- z t) (- x y))) (* a 120))

  (+ (/ (* 60 (- x y)) (- z t)) (* a 120)))