Average Error: 1.5 → 0.6
Time: 12.2s
Precision: binary64
Cost: 1474
\[x + y \cdot \frac{z - t}{z - a}\]
\[\begin{array}{l} \mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\ \;\;\;\;x + y \cdot \frac{z - t}{z - a}\\ \mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\ \;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\ \end{array}\]
x + y \cdot \frac{z - t}{z - a}
\begin{array}{l}
\mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\
\;\;\;\;x + y \cdot \frac{z - t}{z - a}\\

\mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\
\;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\

\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\

\end{array}
(FPCore (x y z t a) :precision binary64 (+ x (* y (/ (- z t) (- z a)))))
(FPCore (x y z t a)
 :precision binary64
 (if (<= y -5.960308320085401e-20)
   (+ x (* y (/ (- z t) (- z a))))
   (if (<= y 1.672021968335163e+43)
     (+ x (* (* y (- z t)) (/ 1.0 (- z a))))
     (+ x (/ y (/ (- z a) (- z t)))))))
double code(double x, double y, double z, double t, double a) {
	return x + (y * ((z - t) / (z - a)));
}
double code(double x, double y, double z, double t, double a) {
	double tmp;
	if (y <= -5.960308320085401e-20) {
		tmp = x + (y * ((z - t) / (z - a)));
	} else if (y <= 1.672021968335163e+43) {
		tmp = x + ((y * (z - t)) * (1.0 / (z - a)));
	} else {
		tmp = x + (y / ((z - a) / (z - t)));
	}
	return tmp;
}

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.5
Target1.4
Herbie0.6
\[x + \frac{y}{\frac{z - a}{z - t}}\]

Alternatives

Alternative 1
Error0.6
Cost40128
\[x + \left(y \cdot \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{z - a}}\]
Alternative 2
Error0.6
Cost1346
\[\begin{array}{l} \mathbf{if}\;y \leq -2.45465729562505 \cdot 10^{-60}:\\ \;\;\;\;x + y \cdot \frac{z - t}{z - a}\\ \mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\ \;\;\;\;x + \frac{y \cdot \left(z - t\right)}{z - a}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\ \end{array}\]
Alternative 3
Error0.9
Cost1409
\[\begin{array}{l} \mathbf{if}\;\frac{z - t}{z - a} \leq -8.356417927164571 \cdot 10^{+235}:\\ \;\;\;\;x - t \cdot \frac{y}{z - a}\\ \mathbf{else}:\\ \;\;\;\;x + y \cdot \frac{z - t}{z - a}\\ \end{array}\]
Alternative 4
Error0.9
Cost1409
\[\begin{array}{l} \mathbf{if}\;\frac{z - t}{z - a} \leq -1.1791595430829916 \cdot 10^{+168}:\\ \;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\ \end{array}\]
Alternative 5
Error2.2
Cost2691
\[\begin{array}{l} \mathbf{if}\;\frac{z - t}{z - a} \leq -1.0620475210778985 \cdot 10^{+21}:\\ \;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\ \mathbf{elif}\;\frac{z - t}{z - a} \leq 1.1106907187803091 \cdot 10^{-19}:\\ \;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\ \mathbf{elif}\;\frac{z - t}{z - a} \leq 1:\\ \;\;\;\;x + y \cdot \frac{z}{z - a}\\ \mathbf{else}:\\ \;\;\;\;x - t \cdot \frac{y}{z - a}\\ \end{array}\]
Alternative 6
Error2.4
Cost2691
\[\begin{array}{l} \mathbf{if}\;\frac{z - t}{z - a} \leq -1.0620475210778985 \cdot 10^{+21}:\\ \;\;\;\;x - \frac{t}{\frac{z - a}{y}}\\ \mathbf{elif}\;\frac{z - t}{z - a} \leq 7.578109156794213 \cdot 10^{-11}:\\ \;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\ \mathbf{elif}\;\frac{z - t}{z - a} \leq 1:\\ \;\;\;\;y + x\\ \mathbf{else}:\\ \;\;\;\;x - t \cdot \frac{y}{z - a}\\ \end{array}\]
Alternative 7
Error12.4
Cost1169
\[\begin{array}{l} \mathbf{if}\;z \leq -2.184583787047839 \cdot 10^{+98} \lor \neg \left(z \leq -7.1804636252200155 \cdot 10^{-12} \lor \neg \left(z \leq -8.142568326833419 \cdot 10^{-169}\right) \land z \leq 2.3126298001576838 \cdot 10^{+55}\right):\\ \;\;\;\;y + x\\ \mathbf{else}:\\ \;\;\;\;x - t \cdot \frac{y}{z - a}\\ \end{array}\]
Alternative 8
Error14.8
Cost904
\[\begin{array}{l} \mathbf{if}\;z \leq -6.598857573502581 \cdot 10^{-169} \lor \neg \left(z \leq 2.930854184528944 \cdot 10^{+52}\right):\\ \;\;\;\;y + x\\ \mathbf{else}:\\ \;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\ \end{array}\]
Alternative 9
Error16.0
Cost776
\[\begin{array}{l} \mathbf{if}\;z \leq -8.142568326833419 \cdot 10^{-169} \lor \neg \left(z \leq 1.7508724934294406 \cdot 10^{-91}\right):\\ \;\;\;\;y + x\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y \cdot t}{a}\\ \end{array}\]
Alternative 10
Error15.5
Cost776
\[\begin{array}{l} \mathbf{if}\;z \leq -8.142568326833419 \cdot 10^{-169} \lor \neg \left(z \leq 2.4940199285885987 \cdot 10^{+51}\right):\\ \;\;\;\;y + x\\ \mathbf{else}:\\ \;\;\;\;x + y \cdot \frac{t}{a}\\ \end{array}\]
Alternative 11
Error21.9
Cost192
\[y + x\]
Alternative 12
Error28.6
Cost64
\[x\]
Alternative 13
Error61.8
Cost64
\[1\]

Error

Derivation

  1. Split input into 3 regimes
  2. if y < -5.9603083200854013e-20

    1. Initial program 0.6

      \[x + y \cdot \frac{z - t}{z - a}\]
    2. Simplified0.6

      \[\leadsto \color{blue}{x + y \cdot \frac{z - t}{z - a}}\]

    if -5.9603083200854013e-20 < y < 1.6720219683351629e43

    1. Initial program 2.2

      \[x + y \cdot \frac{z - t}{z - a}\]
    2. Using strategy rm
    3. Applied div-inv_binary64_113282.2

      \[\leadsto x + y \cdot \color{blue}{\left(\left(z - t\right) \cdot \frac{1}{z - a}\right)}\]
    4. Applied associate-*r*_binary64_112710.4

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

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

    if 1.6720219683351629e43 < y

    1. Initial program 0.8

      \[x + y \cdot \frac{z - t}{z - a}\]
    2. Using strategy rm
    3. Applied clear-num_binary64_113301.0

      \[\leadsto x + y \cdot \color{blue}{\frac{1}{\frac{z - a}{z - t}}}\]
    4. Using strategy rm
    5. Applied un-div-inv_binary64_113290.9

      \[\leadsto x + \color{blue}{\frac{y}{\frac{z - a}{z - t}}}\]
    6. Simplified0.9

      \[\leadsto \color{blue}{x + \frac{y}{\frac{z - a}{z - t}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq -5.960308320085401 \cdot 10^{-20}:\\ \;\;\;\;x + y \cdot \frac{z - t}{z - a}\\ \mathbf{elif}\;y \leq 1.672021968335163 \cdot 10^{+43}:\\ \;\;\;\;x + \left(y \cdot \left(z - t\right)\right) \cdot \frac{1}{z - a}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y}{\frac{z - a}{z - t}}\\ \end{array}\]

Reproduce

herbie shell --seed 2021044 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
  :precision binary64

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

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