Average Error: 0.4 → 9.8
Time: 15.0s
Precision: binary64
Cost: 7756
\[\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120 \]
\[\begin{array}{l} t_1 := 60 \cdot \frac{x - y}{z - t}\\ t_2 := \mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x}}\right)\\ \mathbf{if}\;a \cdot 120 \leq -3 \cdot 10^{-16}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \cdot 120 \leq -5 \cdot 10^{-152}:\\ \;\;\;\;\frac{t_1 \cdot t_1 + \left(a \cdot a\right) \cdot -14400}{t_1 + a \cdot -120}\\ \mathbf{elif}\;a \cdot 120 \leq 2 \cdot 10^{-92}:\\ \;\;\;\;\frac{60 \cdot \left(x - y\right)}{z - t}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
(FPCore (x y z t a)
 :precision binary64
 (+ (/ (* 60.0 (- x y)) (- z t)) (* a 120.0)))
(FPCore (x y z t a)
 :precision binary64
 (let* ((t_1 (* 60.0 (/ (- x y) (- z t))))
        (t_2 (fma 120.0 a (/ 60.0 (/ (- z t) x)))))
   (if (<= (* a 120.0) -3e-16)
     t_2
     (if (<= (* a 120.0) -5e-152)
       (/ (+ (* t_1 t_1) (* (* a a) -14400.0)) (+ t_1 (* a -120.0)))
       (if (<= (* a 120.0) 2e-92) (/ (* 60.0 (- x y)) (- z t)) t_2)))))
double code(double x, double y, double z, double t, double a) {
	return ((60.0 * (x - y)) / (z - t)) + (a * 120.0);
}
double code(double x, double y, double z, double t, double a) {
	double t_1 = 60.0 * ((x - y) / (z - t));
	double t_2 = fma(120.0, a, (60.0 / ((z - t) / x)));
	double tmp;
	if ((a * 120.0) <= -3e-16) {
		tmp = t_2;
	} else if ((a * 120.0) <= -5e-152) {
		tmp = ((t_1 * t_1) + ((a * a) * -14400.0)) / (t_1 + (a * -120.0));
	} else if ((a * 120.0) <= 2e-92) {
		tmp = (60.0 * (x - y)) / (z - t);
	} else {
		tmp = t_2;
	}
	return tmp;
}
function code(x, y, z, t, a)
	return Float64(Float64(Float64(60.0 * Float64(x - y)) / Float64(z - t)) + Float64(a * 120.0))
end
function code(x, y, z, t, a)
	t_1 = Float64(60.0 * Float64(Float64(x - y) / Float64(z - t)))
	t_2 = fma(120.0, a, Float64(60.0 / Float64(Float64(z - t) / x)))
	tmp = 0.0
	if (Float64(a * 120.0) <= -3e-16)
		tmp = t_2;
	elseif (Float64(a * 120.0) <= -5e-152)
		tmp = Float64(Float64(Float64(t_1 * t_1) + Float64(Float64(a * a) * -14400.0)) / Float64(t_1 + Float64(a * -120.0)));
	elseif (Float64(a * 120.0) <= 2e-92)
		tmp = Float64(Float64(60.0 * Float64(x - y)) / Float64(z - t));
	else
		tmp = t_2;
	end
	return tmp
end
code[x_, y_, z_, t_, a_] := N[(N[(N[(60.0 * N[(x - y), $MachinePrecision]), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision] + N[(a * 120.0), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(60.0 * N[(N[(x - y), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(120.0 * a + N[(60.0 / N[(N[(z - t), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(a * 120.0), $MachinePrecision], -3e-16], t$95$2, If[LessEqual[N[(a * 120.0), $MachinePrecision], -5e-152], N[(N[(N[(t$95$1 * t$95$1), $MachinePrecision] + N[(N[(a * a), $MachinePrecision] * -14400.0), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 + N[(a * -120.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(a * 120.0), $MachinePrecision], 2e-92], N[(N[(60.0 * N[(x - y), $MachinePrecision]), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]
\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120
\begin{array}{l}
t_1 := 60 \cdot \frac{x - y}{z - t}\\
t_2 := \mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x}}\right)\\
\mathbf{if}\;a \cdot 120 \leq -3 \cdot 10^{-16}:\\
\;\;\;\;t_2\\

\mathbf{elif}\;a \cdot 120 \leq -5 \cdot 10^{-152}:\\
\;\;\;\;\frac{t_1 \cdot t_1 + \left(a \cdot a\right) \cdot -14400}{t_1 + a \cdot -120}\\

\mathbf{elif}\;a \cdot 120 \leq 2 \cdot 10^{-92}:\\
\;\;\;\;\frac{60 \cdot \left(x - y\right)}{z - t}\\

\mathbf{else}:\\
\;\;\;\;t_2\\


\end{array}

Error

Target

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

Derivation

  1. Split input into 3 regimes
  2. if (*.f64 a 120) < -2.99999999999999994e-16 or 1.99999999999999998e-92 < (*.f64 a 120)

    1. Initial program 0.4

      \[\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120 \]
    2. Applied egg-rr0.1

      \[\leadsto \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)} + a \cdot 120 \]
    3. Taylor expanded in y around 0 8.7

      \[\leadsto \color{blue}{120 \cdot a + 60 \cdot \frac{x}{z - t}} \]
    4. Simplified8.7

      \[\leadsto \color{blue}{\mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x}}\right)} \]

    if -2.99999999999999994e-16 < (*.f64 a 120) < -4.9999999999999997e-152

    1. Initial program 0.5

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(60, \frac{x - y}{z - t}, a \cdot 120\right)} \]
    3. Applied egg-rr11.3

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

    if -4.9999999999999997e-152 < (*.f64 a 120) < 1.99999999999999998e-92

    1. Initial program 0.4

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(60, \frac{x - y}{z - t}, a \cdot 120\right)} \]
    3. Taylor expanded in a around 0 11.1

      \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
    4. Simplified11.2

      \[\leadsto \color{blue}{\frac{60 \cdot \left(x - y\right)}{z - t}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot 120 \leq -3 \cdot 10^{-16}:\\ \;\;\;\;\mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x}}\right)\\ \mathbf{elif}\;a \cdot 120 \leq -5 \cdot 10^{-152}:\\ \;\;\;\;\frac{\left(60 \cdot \frac{x - y}{z - t}\right) \cdot \left(60 \cdot \frac{x - y}{z - t}\right) + \left(a \cdot a\right) \cdot -14400}{60 \cdot \frac{x - y}{z - t} + a \cdot -120}\\ \mathbf{elif}\;a \cdot 120 \leq 2 \cdot 10^{-92}:\\ \;\;\;\;\frac{60 \cdot \left(x - y\right)}{z - t}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x}}\right)\\ \end{array} \]

Alternatives

Alternative 1
Error10.4
Cost3536
\[\begin{array}{l} t_1 := 60 \cdot \frac{x - y}{z - t}\\ t_2 := \frac{t_1 \cdot t_1 + \left(a \cdot a\right) \cdot -14400}{t_1 + a \cdot -120}\\ \mathbf{if}\;a \cdot 120 \leq -1 \cdot 10^{+108}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \cdot 120 \leq -5 \cdot 10^{-152}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \cdot 120 \leq 2 \cdot 10^{-151}:\\ \;\;\;\;\frac{60 \cdot \left(x - y\right)}{z - t}\\ \mathbf{elif}\;a \cdot 120 \leq 2 \cdot 10^{+15}:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 2
Error24.8
Cost1764
\[\begin{array}{l} t_1 := -60 \cdot \frac{x - y}{t}\\ t_2 := \frac{60}{\frac{z}{x - y}}\\ \mathbf{if}\;a \leq -5.485823949705165 \cdot 10^{-124}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -3.1339457337947035 \cdot 10^{-165}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq -1.3790440722781786 \cdot 10^{-173}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -1.6833397924437675 \cdot 10^{-290}:\\ \;\;\;\;\frac{y \cdot -60}{z - t}\\ \mathbf{elif}\;a \leq 2.912310221885038 \cdot 10^{-247}:\\ \;\;\;\;\frac{60}{\frac{z - t}{x}}\\ \mathbf{elif}\;a \leq 7.865083579209627 \cdot 10^{-174}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 2.1584586752337346 \cdot 10^{-107}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 6.50489981209199 \cdot 10^{-69}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 1.7429847032281172 \cdot 10^{-22}:\\ \;\;\;\;a \cdot 120 + 60 \cdot \frac{x}{z}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 3
Error24.8
Cost1372
\[\begin{array}{l} t_1 := \frac{60}{\frac{z}{x - y}}\\ \mathbf{if}\;a \leq -5.485823949705165 \cdot 10^{-124}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -3.1339457337947035 \cdot 10^{-165}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq -1.3790440722781786 \cdot 10^{-173}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -2.4004272216988006 \cdot 10^{-308}:\\ \;\;\;\;\frac{y \cdot -60}{z - t}\\ \mathbf{elif}\;a \leq 8.03923269526976 \cdot 10^{-252}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 7.865083579209627 \cdot 10^{-174}:\\ \;\;\;\;-60 \cdot \frac{x - y}{t}\\ \mathbf{elif}\;a \leq 2.1584586752337346 \cdot 10^{-107}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 4
Error24.8
Cost1372
\[\begin{array}{l} t_1 := \frac{60}{\frac{z - t}{x}}\\ t_2 := \frac{y \cdot -60}{z - t}\\ \mathbf{if}\;a \leq -5.485823949705165 \cdot 10^{-124}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -3.1339457337947035 \cdot 10^{-165}:\\ \;\;\;\;\frac{60}{\frac{z}{x - y}}\\ \mathbf{elif}\;a \leq -1.3790440722781786 \cdot 10^{-173}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -1.6833397924437675 \cdot 10^{-290}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 6.747294321229546 \cdot 10^{-246}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 7.356314560135211 \cdot 10^{-221}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 1.0159328052196713 \cdot 10^{-94}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 5
Error24.8
Cost1372
\[\begin{array}{l} t_1 := \frac{60}{\frac{z - t}{x}}\\ \mathbf{if}\;a \leq -5.485823949705165 \cdot 10^{-124}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -3.1339457337947035 \cdot 10^{-165}:\\ \;\;\;\;\frac{60}{\frac{z}{x - y}}\\ \mathbf{elif}\;a \leq -1.3790440722781786 \cdot 10^{-173}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq -1.6833397924437675 \cdot 10^{-290}:\\ \;\;\;\;\frac{y \cdot -60}{z - t}\\ \mathbf{elif}\;a \leq 6.747294321229546 \cdot 10^{-246}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 7.356314560135211 \cdot 10^{-221}:\\ \;\;\;\;-60 \cdot \frac{y}{z - t}\\ \mathbf{elif}\;a \leq 1.0159328052196713 \cdot 10^{-94}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 6
Error14.5
Cost968
\[\begin{array}{l} t_1 := a \cdot 120 + \frac{x}{\frac{z}{60}}\\ \mathbf{if}\;z \leq -3.369253027045528 \cdot 10^{+45}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 2.432797408413402 \cdot 10^{+48}:\\ \;\;\;\;a \cdot 120 + \frac{x - y}{t \cdot -0.016666666666666666}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 7
Error28.6
Cost848
\[\begin{array}{l} \mathbf{if}\;a \leq -4.713981912175571 \cdot 10^{-226}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 2.620219957206895 \cdot 10^{-240}:\\ \;\;\;\;y \cdot \frac{-60}{z}\\ \mathbf{elif}\;a \leq 3.834643129526322 \cdot 10^{-220}:\\ \;\;\;\;y \cdot \frac{60}{t}\\ \mathbf{elif}\;a \leq 2.373070905606758 \cdot 10^{-121}:\\ \;\;\;\;\frac{x}{\frac{z}{60}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 8
Error28.6
Cost848
\[\begin{array}{l} \mathbf{if}\;a \leq -4.713981912175571 \cdot 10^{-226}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 2.620219957206895 \cdot 10^{-240}:\\ \;\;\;\;\frac{y \cdot -60}{z}\\ \mathbf{elif}\;a \leq 3.834643129526322 \cdot 10^{-220}:\\ \;\;\;\;y \cdot \frac{60}{t}\\ \mathbf{elif}\;a \leq 2.373070905606758 \cdot 10^{-121}:\\ \;\;\;\;\frac{x}{\frac{z}{60}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 9
Error15.2
Cost840
\[\begin{array}{l} \mathbf{if}\;a \leq -2.4471445665628385 \cdot 10^{-11}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 6.50489981209199 \cdot 10^{-69}:\\ \;\;\;\;\frac{60 \cdot \left(x - y\right)}{z - t}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 10
Error25.1
Cost712
\[\begin{array}{l} \mathbf{if}\;a \leq -1.3790440722781786 \cdot 10^{-173}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 1.0159328052196713 \cdot 10^{-94}:\\ \;\;\;\;\frac{y \cdot -60}{z - t}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 11
Error28.5
Cost584
\[\begin{array}{l} \mathbf{if}\;a \leq -3.212338165982009 \cdot 10^{-245}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 2.373070905606758 \cdot 10^{-121}:\\ \;\;\;\;\frac{x}{\frac{z}{60}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 12
Error28.5
Cost584
\[\begin{array}{l} \mathbf{if}\;a \leq -3.212338165982009 \cdot 10^{-245}:\\ \;\;\;\;a \cdot 120\\ \mathbf{elif}\;a \leq 2.373070905606758 \cdot 10^{-121}:\\ \;\;\;\;\frac{60}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot 120\\ \end{array} \]
Alternative 13
Error29.4
Cost192
\[a \cdot 120 \]

Error

Reproduce

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

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

  (+ (/ (* 60.0 (- x y)) (- z t)) (* a 120.0)))