Average Error: 2.4 → 1.1
Time: 4.8s
Precision: binary64
\[\frac{x - y}{z - y} \cdot t\]
\[\begin{array}{l} \mathbf{if}\;\frac{x - y}{z - y} \leq -2.7704548820906923 \cdot 10^{-177}:\\ \;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\ \mathbf{elif}\;\frac{x - y}{z - y} \leq 4.9868386023721 \cdot 10^{-316}:\\ \;\;\;\;\frac{1}{\frac{z - y}{\left(x - y\right) \cdot t}}\\ \mathbf{elif}\;\frac{x - y}{z - y} \leq 3.074373967977172 \cdot 10^{+201}:\\ \;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\frac{z - y}{t}}}{\frac{1}{x - y}}\\ \end{array}\]
\frac{x - y}{z - y} \cdot t
\begin{array}{l}
\mathbf{if}\;\frac{x - y}{z - y} \leq -2.7704548820906923 \cdot 10^{-177}:\\
\;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\

\mathbf{elif}\;\frac{x - y}{z - y} \leq 4.9868386023721 \cdot 10^{-316}:\\
\;\;\;\;\frac{1}{\frac{z - y}{\left(x - y\right) \cdot t}}\\

\mathbf{elif}\;\frac{x - y}{z - y} \leq 3.074373967977172 \cdot 10^{+201}:\\
\;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\

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

\end{array}
(FPCore (x y z t) :precision binary64 (* (/ (- x y) (- z y)) t))
(FPCore (x y z t)
 :precision binary64
 (if (<= (/ (- x y) (- z y)) -2.7704548820906923e-177)
   (/ t (/ (- z y) (- x y)))
   (if (<= (/ (- x y) (- z y)) 4.9868386023721e-316)
     (/ 1.0 (/ (- z y) (* (- x y) t)))
     (if (<= (/ (- x y) (- z y)) 3.074373967977172e+201)
       (/ t (/ (- z y) (- x y)))
       (/ (/ 1.0 (/ (- z y) t)) (/ 1.0 (- x y)))))))
double code(double x, double y, double z, double t) {
	return ((x - y) / (z - y)) * t;
}
double code(double x, double y, double z, double t) {
	double tmp;
	if (((x - y) / (z - y)) <= -2.7704548820906923e-177) {
		tmp = t / ((z - y) / (x - y));
	} else if (((x - y) / (z - y)) <= 4.9868386023721e-316) {
		tmp = 1.0 / ((z - y) / ((x - y) * t));
	} else if (((x - y) / (z - y)) <= 3.074373967977172e+201) {
		tmp = t / ((z - y) / (x - y));
	} else {
		tmp = (1.0 / ((z - y) / t)) / (1.0 / (x - y));
	}
	return tmp;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original2.4
Target2.3
Herbie1.1
\[\frac{t}{\frac{z - y}{x - y}}\]

Derivation

  1. Split input into 3 regimes
  2. if (/.f64 (-.f64 x y) (-.f64 z y)) < -2.7704548820906923e-177 or 4.986838602e-316 < (/.f64 (-.f64 x y) (-.f64 z y)) < 3.07437396797717173e201

    1. Initial program 1.0

      \[\frac{x - y}{z - y} \cdot t\]
    2. Using strategy rm
    3. Applied add-cube-cbrt_binary642.1

      \[\leadsto \frac{x - y}{\color{blue}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}}} \cdot t\]
    4. Applied *-un-lft-identity_binary642.1

      \[\leadsto \frac{\color{blue}{1 \cdot \left(x - y\right)}}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}} \cdot t\]
    5. Applied times-frac_binary642.1

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)} \cdot t\]
    6. Applied associate-*l*_binary649.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\frac{x - y}{\sqrt[3]{z - y}} \cdot t\right)}\]
    7. Simplified9.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}\]
    8. Using strategy rm
    9. Applied pow1_binary649.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \color{blue}{{\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\right)\]
    10. Applied pow1_binary649.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\color{blue}{{t}^{1}} \cdot {\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\right)\]
    11. Applied pow-prod-down_binary649.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\]
    12. Applied pow1_binary649.0

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}}\right)}^{1}} \cdot {\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\]
    13. Applied pow-prod-down_binary649.0

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)\right)}^{1}}\]
    14. Simplified0.9

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

    if -2.7704548820906923e-177 < (/.f64 (-.f64 x y) (-.f64 z y)) < 4.986838602e-316

    1. Initial program 10.9

      \[\frac{x - y}{z - y} \cdot t\]
    2. Using strategy rm
    3. Applied add-cube-cbrt_binary6411.3

      \[\leadsto \frac{x - y}{\color{blue}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}}} \cdot t\]
    4. Applied *-un-lft-identity_binary6411.3

      \[\leadsto \frac{\color{blue}{1 \cdot \left(x - y\right)}}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}} \cdot t\]
    5. Applied times-frac_binary6411.3

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)} \cdot t\]
    6. Applied associate-*l*_binary641.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\frac{x - y}{\sqrt[3]{z - y}} \cdot t\right)}\]
    7. Simplified1.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}\]
    8. Using strategy rm
    9. Applied pow1_binary641.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \color{blue}{{\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\right)\]
    10. Applied pow1_binary641.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\color{blue}{{t}^{1}} \cdot {\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\right)\]
    11. Applied pow-prod-down_binary641.0

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\]
    12. Applied pow1_binary641.0

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}}\right)}^{1}} \cdot {\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\]
    13. Applied pow-prod-down_binary641.0

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)\right)}^{1}}\]
    14. Simplified12.2

      \[\leadsto {\color{blue}{\left(\frac{t}{\frac{z - y}{x - y}}\right)}}^{1}\]
    15. Using strategy rm
    16. Applied clear-num_binary6412.5

      \[\leadsto {\color{blue}{\left(\frac{1}{\frac{\frac{z - y}{x - y}}{t}}\right)}}^{1}\]
    17. Simplified2.4

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

    if 3.07437396797717173e201 < (/.f64 (-.f64 x y) (-.f64 z y))

    1. Initial program 18.8

      \[\frac{x - y}{z - y} \cdot t\]
    2. Using strategy rm
    3. Applied add-cube-cbrt_binary6419.6

      \[\leadsto \frac{x - y}{\color{blue}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}}} \cdot t\]
    4. Applied *-un-lft-identity_binary6419.6

      \[\leadsto \frac{\color{blue}{1 \cdot \left(x - y\right)}}{\left(\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}\right) \cdot \sqrt[3]{z - y}} \cdot t\]
    5. Applied times-frac_binary6419.6

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)} \cdot t\]
    6. Applied associate-*l*_binary646.8

      \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\frac{x - y}{\sqrt[3]{z - y}} \cdot t\right)}\]
    7. Simplified6.8

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}\]
    8. Using strategy rm
    9. Applied pow1_binary646.8

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \color{blue}{{\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\right)\]
    10. Applied pow1_binary646.8

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\color{blue}{{t}^{1}} \cdot {\left(\frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\right)\]
    11. Applied pow-prod-down_binary646.8

      \[\leadsto \frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \color{blue}{{\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}}\]
    12. Applied pow1_binary646.8

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}}\right)}^{1}} \cdot {\left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)}^{1}\]
    13. Applied pow-prod-down_binary646.8

      \[\leadsto \color{blue}{{\left(\frac{1}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(t \cdot \frac{x - y}{\sqrt[3]{z - y}}\right)\right)}^{1}}\]
    14. Simplified16.2

      \[\leadsto {\color{blue}{\left(\frac{t}{\frac{z - y}{x - y}}\right)}}^{1}\]
    15. Using strategy rm
    16. Applied div-inv_binary6416.2

      \[\leadsto {\left(\frac{t}{\color{blue}{\left(z - y\right) \cdot \frac{1}{x - y}}}\right)}^{1}\]
    17. Applied associate-/r*_binary642.1

      \[\leadsto {\color{blue}{\left(\frac{\frac{t}{z - y}}{\frac{1}{x - y}}\right)}}^{1}\]
    18. Using strategy rm
    19. Applied clear-num_binary642.8

      \[\leadsto {\left(\frac{\color{blue}{\frac{1}{\frac{z - y}{t}}}}{\frac{1}{x - y}}\right)}^{1}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{x - y}{z - y} \leq -2.7704548820906923 \cdot 10^{-177}:\\ \;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\ \mathbf{elif}\;\frac{x - y}{z - y} \leq 4.9868386023721 \cdot 10^{-316}:\\ \;\;\;\;\frac{1}{\frac{z - y}{\left(x - y\right) \cdot t}}\\ \mathbf{elif}\;\frac{x - y}{z - y} \leq 3.074373967977172 \cdot 10^{+201}:\\ \;\;\;\;\frac{t}{\frac{z - y}{x - y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\frac{z - y}{t}}}{\frac{1}{x - y}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020219 
(FPCore (x y z t)
  :name "Numeric.Signal.Multichannel:$cput from hsignal-0.2.7.1"
  :precision binary64

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

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