Average Error: 1.9 → 0.2
Time: 3.3s
Precision: 64
\[x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\]
\[x - \frac{y - z}{\left(t - z\right) + 1} \cdot a\]
x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}
x - \frac{y - z}{\left(t - z\right) + 1} \cdot a
double f(double x, double y, double z, double t, double a) {
        double r583804 = x;
        double r583805 = y;
        double r583806 = z;
        double r583807 = r583805 - r583806;
        double r583808 = t;
        double r583809 = r583808 - r583806;
        double r583810 = 1.0;
        double r583811 = r583809 + r583810;
        double r583812 = a;
        double r583813 = r583811 / r583812;
        double r583814 = r583807 / r583813;
        double r583815 = r583804 - r583814;
        return r583815;
}

double f(double x, double y, double z, double t, double a) {
        double r583816 = x;
        double r583817 = y;
        double r583818 = z;
        double r583819 = r583817 - r583818;
        double r583820 = t;
        double r583821 = r583820 - r583818;
        double r583822 = 1.0;
        double r583823 = r583821 + r583822;
        double r583824 = r583819 / r583823;
        double r583825 = a;
        double r583826 = r583824 * r583825;
        double r583827 = r583816 - r583826;
        return r583827;
}

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

Original1.9
Target0.2
Herbie0.2
\[x - \frac{y - z}{\left(t - z\right) + 1} \cdot a\]

Derivation

  1. Initial program 1.9

    \[x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\]
  2. Using strategy rm
  3. Applied associate-/r/0.2

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

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

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (x y z t a)
  :name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
  :precision binary64

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

  (- x (/ (- y z) (/ (+ (- t z) 1) a))))