
(FPCore (x y z t) :precision binary64 (/ (* x (- y z)) (- t z)))
double code(double x, double y, double z, double t) {
return (x * (y - z)) / (t - z);
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = (x * (y - z)) / (t - z)
end function
public static double code(double x, double y, double z, double t) {
return (x * (y - z)) / (t - z);
}
def code(x, y, z, t): return (x * (y - z)) / (t - z)
function code(x, y, z, t) return Float64(Float64(x * Float64(y - z)) / Float64(t - z)) end
function tmp = code(x, y, z, t) tmp = (x * (y - z)) / (t - z); end
code[x_, y_, z_, t_] := N[(N[(x * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot \left(y - z\right)}{t - z}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t) :precision binary64 (/ (* x (- y z)) (- t z)))
double code(double x, double y, double z, double t) {
return (x * (y - z)) / (t - z);
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = (x * (y - z)) / (t - z)
end function
public static double code(double x, double y, double z, double t) {
return (x * (y - z)) / (t - z);
}
def code(x, y, z, t): return (x * (y - z)) / (t - z)
function code(x, y, z, t) return Float64(Float64(x * Float64(y - z)) / Float64(t - z)) end
function tmp = code(x, y, z, t) tmp = (x * (y - z)) / (t - z); end
code[x_, y_, z_, t_] := N[(N[(x * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot \left(y - z\right)}{t - z}
\end{array}
(FPCore (x y z t) :precision binary64 (/ x (/ (- t z) (- y z))))
double code(double x, double y, double z, double t) {
return x / ((t - z) / (y - z));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x / ((t - z) / (y - z))
end function
public static double code(double x, double y, double z, double t) {
return x / ((t - z) / (y - z));
}
def code(x, y, z, t): return x / ((t - z) / (y - z))
function code(x, y, z, t) return Float64(x / Float64(Float64(t - z) / Float64(y - z))) end
function tmp = code(x, y, z, t) tmp = x / ((t - z) / (y - z)); end
code[x_, y_, z_, t_] := N[(x / N[(N[(t - z), $MachinePrecision] / N[(y - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{\frac{t - z}{y - z}}
\end{array}
Initial program 81.8%
associate-/l*96.7%
Simplified96.7%
Final simplification96.7%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* x (/ y t))))
(if (<= z -4.7e-29)
x
(if (<= z -4e-190)
(* y (/ x t))
(if (<= z 1.6e-280)
(/ (* x y) t)
(if (<= z 1.02e-91)
t_1
(if (<= z 7e-10) (* (/ x z) (- y)) (if (<= z 2.5e+49) t_1 x))))))))
double code(double x, double y, double z, double t) {
double t_1 = x * (y / t);
double tmp;
if (z <= -4.7e-29) {
tmp = x;
} else if (z <= -4e-190) {
tmp = y * (x / t);
} else if (z <= 1.6e-280) {
tmp = (x * y) / t;
} else if (z <= 1.02e-91) {
tmp = t_1;
} else if (z <= 7e-10) {
tmp = (x / z) * -y;
} else if (z <= 2.5e+49) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = x * (y / t)
if (z <= (-4.7d-29)) then
tmp = x
else if (z <= (-4d-190)) then
tmp = y * (x / t)
else if (z <= 1.6d-280) then
tmp = (x * y) / t
else if (z <= 1.02d-91) then
tmp = t_1
else if (z <= 7d-10) then
tmp = (x / z) * -y
else if (z <= 2.5d+49) then
tmp = t_1
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * (y / t);
double tmp;
if (z <= -4.7e-29) {
tmp = x;
} else if (z <= -4e-190) {
tmp = y * (x / t);
} else if (z <= 1.6e-280) {
tmp = (x * y) / t;
} else if (z <= 1.02e-91) {
tmp = t_1;
} else if (z <= 7e-10) {
tmp = (x / z) * -y;
} else if (z <= 2.5e+49) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t): t_1 = x * (y / t) tmp = 0 if z <= -4.7e-29: tmp = x elif z <= -4e-190: tmp = y * (x / t) elif z <= 1.6e-280: tmp = (x * y) / t elif z <= 1.02e-91: tmp = t_1 elif z <= 7e-10: tmp = (x / z) * -y elif z <= 2.5e+49: tmp = t_1 else: tmp = x return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(y / t)) tmp = 0.0 if (z <= -4.7e-29) tmp = x; elseif (z <= -4e-190) tmp = Float64(y * Float64(x / t)); elseif (z <= 1.6e-280) tmp = Float64(Float64(x * y) / t); elseif (z <= 1.02e-91) tmp = t_1; elseif (z <= 7e-10) tmp = Float64(Float64(x / z) * Float64(-y)); elseif (z <= 2.5e+49) tmp = t_1; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * (y / t); tmp = 0.0; if (z <= -4.7e-29) tmp = x; elseif (z <= -4e-190) tmp = y * (x / t); elseif (z <= 1.6e-280) tmp = (x * y) / t; elseif (z <= 1.02e-91) tmp = t_1; elseif (z <= 7e-10) tmp = (x / z) * -y; elseif (z <= 2.5e+49) tmp = t_1; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -4.7e-29], x, If[LessEqual[z, -4e-190], N[(y * N[(x / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.6e-280], N[(N[(x * y), $MachinePrecision] / t), $MachinePrecision], If[LessEqual[z, 1.02e-91], t$95$1, If[LessEqual[z, 7e-10], N[(N[(x / z), $MachinePrecision] * (-y)), $MachinePrecision], If[LessEqual[z, 2.5e+49], t$95$1, x]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{y}{t}\\
\mathbf{if}\;z \leq -4.7 \cdot 10^{-29}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq -4 \cdot 10^{-190}:\\
\;\;\;\;y \cdot \frac{x}{t}\\
\mathbf{elif}\;z \leq 1.6 \cdot 10^{-280}:\\
\;\;\;\;\frac{x \cdot y}{t}\\
\mathbf{elif}\;z \leq 1.02 \cdot 10^{-91}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq 7 \cdot 10^{-10}:\\
\;\;\;\;\frac{x}{z} \cdot \left(-y\right)\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{+49}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -4.6999999999999998e-29 or 2.5000000000000002e49 < z Initial program 72.3%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in z around inf 59.4%
if -4.6999999999999998e-29 < z < -4.0000000000000001e-190Initial program 83.7%
associate-*r/91.4%
Simplified91.4%
Taylor expanded in z around 0 42.5%
associate-/l*51.4%
Simplified51.4%
associate-/r/52.7%
Applied egg-rr52.7%
if -4.0000000000000001e-190 < z < 1.6e-280Initial program 99.2%
associate-*r/86.1%
Simplified86.1%
Taylor expanded in z around 0 92.2%
if 1.6e-280 < z < 1.01999999999999994e-91 or 6.99999999999999961e-10 < z < 2.5000000000000002e49Initial program 91.6%
associate-*r/99.9%
Simplified99.9%
Taylor expanded in z around 0 69.7%
if 1.01999999999999994e-91 < z < 6.99999999999999961e-10Initial program 91.5%
associate-*r/99.6%
Simplified99.6%
Taylor expanded in y around inf 58.5%
associate-*l/60.7%
*-commutative60.7%
Simplified60.7%
Taylor expanded in t around 0 52.5%
associate-*r/52.5%
neg-mul-152.5%
Simplified52.5%
Final simplification63.5%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* x (/ y t))))
(if (<= z -4.7e-29)
x
(if (<= z -7.2e-190)
(* y (/ x t))
(if (<= z 1.85e-280)
(/ (* x y) t)
(if (<= z 7.5e-91)
t_1
(if (<= z 5.5e-10)
(* x (/ (- y) z))
(if (<= z 3.5e+49) t_1 x))))))))
double code(double x, double y, double z, double t) {
double t_1 = x * (y / t);
double tmp;
if (z <= -4.7e-29) {
tmp = x;
} else if (z <= -7.2e-190) {
tmp = y * (x / t);
} else if (z <= 1.85e-280) {
tmp = (x * y) / t;
} else if (z <= 7.5e-91) {
tmp = t_1;
} else if (z <= 5.5e-10) {
tmp = x * (-y / z);
} else if (z <= 3.5e+49) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = x * (y / t)
if (z <= (-4.7d-29)) then
tmp = x
else if (z <= (-7.2d-190)) then
tmp = y * (x / t)
else if (z <= 1.85d-280) then
tmp = (x * y) / t
else if (z <= 7.5d-91) then
tmp = t_1
else if (z <= 5.5d-10) then
tmp = x * (-y / z)
else if (z <= 3.5d+49) then
tmp = t_1
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * (y / t);
double tmp;
if (z <= -4.7e-29) {
tmp = x;
} else if (z <= -7.2e-190) {
tmp = y * (x / t);
} else if (z <= 1.85e-280) {
tmp = (x * y) / t;
} else if (z <= 7.5e-91) {
tmp = t_1;
} else if (z <= 5.5e-10) {
tmp = x * (-y / z);
} else if (z <= 3.5e+49) {
tmp = t_1;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t): t_1 = x * (y / t) tmp = 0 if z <= -4.7e-29: tmp = x elif z <= -7.2e-190: tmp = y * (x / t) elif z <= 1.85e-280: tmp = (x * y) / t elif z <= 7.5e-91: tmp = t_1 elif z <= 5.5e-10: tmp = x * (-y / z) elif z <= 3.5e+49: tmp = t_1 else: tmp = x return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(y / t)) tmp = 0.0 if (z <= -4.7e-29) tmp = x; elseif (z <= -7.2e-190) tmp = Float64(y * Float64(x / t)); elseif (z <= 1.85e-280) tmp = Float64(Float64(x * y) / t); elseif (z <= 7.5e-91) tmp = t_1; elseif (z <= 5.5e-10) tmp = Float64(x * Float64(Float64(-y) / z)); elseif (z <= 3.5e+49) tmp = t_1; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * (y / t); tmp = 0.0; if (z <= -4.7e-29) tmp = x; elseif (z <= -7.2e-190) tmp = y * (x / t); elseif (z <= 1.85e-280) tmp = (x * y) / t; elseif (z <= 7.5e-91) tmp = t_1; elseif (z <= 5.5e-10) tmp = x * (-y / z); elseif (z <= 3.5e+49) tmp = t_1; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -4.7e-29], x, If[LessEqual[z, -7.2e-190], N[(y * N[(x / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.85e-280], N[(N[(x * y), $MachinePrecision] / t), $MachinePrecision], If[LessEqual[z, 7.5e-91], t$95$1, If[LessEqual[z, 5.5e-10], N[(x * N[((-y) / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 3.5e+49], t$95$1, x]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{y}{t}\\
\mathbf{if}\;z \leq -4.7 \cdot 10^{-29}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq -7.2 \cdot 10^{-190}:\\
\;\;\;\;y \cdot \frac{x}{t}\\
\mathbf{elif}\;z \leq 1.85 \cdot 10^{-280}:\\
\;\;\;\;\frac{x \cdot y}{t}\\
\mathbf{elif}\;z \leq 7.5 \cdot 10^{-91}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq 5.5 \cdot 10^{-10}:\\
\;\;\;\;x \cdot \frac{-y}{z}\\
\mathbf{elif}\;z \leq 3.5 \cdot 10^{+49}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -4.6999999999999998e-29 or 3.49999999999999975e49 < z Initial program 72.3%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in z around inf 59.4%
if -4.6999999999999998e-29 < z < -7.20000000000000014e-190Initial program 83.7%
associate-*r/91.4%
Simplified91.4%
Taylor expanded in z around 0 42.5%
associate-/l*51.4%
Simplified51.4%
associate-/r/52.7%
Applied egg-rr52.7%
if -7.20000000000000014e-190 < z < 1.8499999999999999e-280Initial program 99.2%
associate-*r/86.1%
Simplified86.1%
Taylor expanded in z around 0 92.2%
if 1.8499999999999999e-280 < z < 7.50000000000000051e-91 or 5.4999999999999996e-10 < z < 3.49999999999999975e49Initial program 91.6%
associate-*r/99.9%
Simplified99.9%
Taylor expanded in z around 0 69.7%
if 7.50000000000000051e-91 < z < 5.4999999999999996e-10Initial program 91.5%
associate-/l*99.3%
Simplified99.3%
Taylor expanded in y around inf 66.2%
Taylor expanded in t around 0 58.1%
associate-*r/58.1%
neg-mul-158.1%
distribute-rgt-neg-in58.1%
Simplified58.1%
Taylor expanded in x around 0 58.1%
mul-1-neg58.1%
associate-*r/58.1%
*-commutative58.1%
distribute-rgt-neg-in58.1%
Simplified58.1%
Final simplification63.8%
(FPCore (x y z t)
:precision binary64
(if (or (<= y -2.55e-28)
(and (not (<= y 1360.0)) (or (<= y 1.22e+44) (not (<= y 6.5e+97)))))
(* x (/ y (- t z)))
(* x (/ z (- z t)))))
double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -2.55e-28) || (!(y <= 1360.0) && ((y <= 1.22e+44) || !(y <= 6.5e+97)))) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if ((y <= (-2.55d-28)) .or. (.not. (y <= 1360.0d0)) .and. (y <= 1.22d+44) .or. (.not. (y <= 6.5d+97))) then
tmp = x * (y / (t - z))
else
tmp = x * (z / (z - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((y <= -2.55e-28) || (!(y <= 1360.0) && ((y <= 1.22e+44) || !(y <= 6.5e+97)))) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (y <= -2.55e-28) or (not (y <= 1360.0) and ((y <= 1.22e+44) or not (y <= 6.5e+97))): tmp = x * (y / (t - z)) else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) tmp = 0.0 if ((y <= -2.55e-28) || (!(y <= 1360.0) && ((y <= 1.22e+44) || !(y <= 6.5e+97)))) tmp = Float64(x * Float64(y / Float64(t - z))); else tmp = Float64(x * Float64(z / Float64(z - t))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((y <= -2.55e-28) || (~((y <= 1360.0)) && ((y <= 1.22e+44) || ~((y <= 6.5e+97))))) tmp = x * (y / (t - z)); else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[y, -2.55e-28], And[N[Not[LessEqual[y, 1360.0]], $MachinePrecision], Or[LessEqual[y, 1.22e+44], N[Not[LessEqual[y, 6.5e+97]], $MachinePrecision]]]], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.55 \cdot 10^{-28} \lor \neg \left(y \leq 1360\right) \land \left(y \leq 1.22 \cdot 10^{+44} \lor \neg \left(y \leq 6.5 \cdot 10^{+97}\right)\right):\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
\end{array}
if y < -2.55000000000000004e-28 or 1360 < y < 1.22e44 or 6.4999999999999999e97 < y Initial program 81.6%
associate-*r/96.2%
Simplified96.2%
Taylor expanded in y around inf 75.0%
if -2.55000000000000004e-28 < y < 1360 or 1.22e44 < y < 6.4999999999999999e97Initial program 82.0%
associate-*r/97.2%
Simplified97.2%
Taylor expanded in y around 0 83.0%
neg-mul-183.0%
distribute-neg-frac83.0%
Simplified83.0%
frac-2neg83.0%
div-inv82.9%
remove-double-neg82.9%
sub-neg82.9%
distribute-neg-in82.9%
remove-double-neg82.9%
Applied egg-rr82.9%
associate-*r/83.0%
*-rgt-identity83.0%
+-commutative83.0%
unsub-neg83.0%
Simplified83.0%
Final simplification78.9%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* x (- 1.0 (/ y z)))))
(if (<= z -2.6e-35)
t_1
(if (<= z -6.6e-70)
(/ x (/ t y))
(if (or (<= z -2.15e-120) (not (<= z 4.2e-91))) t_1 (/ (* x y) t))))))
double code(double x, double y, double z, double t) {
double t_1 = x * (1.0 - (y / z));
double tmp;
if (z <= -2.6e-35) {
tmp = t_1;
} else if (z <= -6.6e-70) {
tmp = x / (t / y);
} else if ((z <= -2.15e-120) || !(z <= 4.2e-91)) {
tmp = t_1;
} else {
tmp = (x * y) / t;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = x * (1.0d0 - (y / z))
if (z <= (-2.6d-35)) then
tmp = t_1
else if (z <= (-6.6d-70)) then
tmp = x / (t / y)
else if ((z <= (-2.15d-120)) .or. (.not. (z <= 4.2d-91))) then
tmp = t_1
else
tmp = (x * y) / t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * (1.0 - (y / z));
double tmp;
if (z <= -2.6e-35) {
tmp = t_1;
} else if (z <= -6.6e-70) {
tmp = x / (t / y);
} else if ((z <= -2.15e-120) || !(z <= 4.2e-91)) {
tmp = t_1;
} else {
tmp = (x * y) / t;
}
return tmp;
}
def code(x, y, z, t): t_1 = x * (1.0 - (y / z)) tmp = 0 if z <= -2.6e-35: tmp = t_1 elif z <= -6.6e-70: tmp = x / (t / y) elif (z <= -2.15e-120) or not (z <= 4.2e-91): tmp = t_1 else: tmp = (x * y) / t return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(1.0 - Float64(y / z))) tmp = 0.0 if (z <= -2.6e-35) tmp = t_1; elseif (z <= -6.6e-70) tmp = Float64(x / Float64(t / y)); elseif ((z <= -2.15e-120) || !(z <= 4.2e-91)) tmp = t_1; else tmp = Float64(Float64(x * y) / t); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * (1.0 - (y / z)); tmp = 0.0; if (z <= -2.6e-35) tmp = t_1; elseif (z <= -6.6e-70) tmp = x / (t / y); elseif ((z <= -2.15e-120) || ~((z <= 4.2e-91))) tmp = t_1; else tmp = (x * y) / t; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(1.0 - N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -2.6e-35], t$95$1, If[LessEqual[z, -6.6e-70], N[(x / N[(t / y), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[z, -2.15e-120], N[Not[LessEqual[z, 4.2e-91]], $MachinePrecision]], t$95$1, N[(N[(x * y), $MachinePrecision] / t), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(1 - \frac{y}{z}\right)\\
\mathbf{if}\;z \leq -2.6 \cdot 10^{-35}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq -6.6 \cdot 10^{-70}:\\
\;\;\;\;\frac{x}{\frac{t}{y}}\\
\mathbf{elif}\;z \leq -2.15 \cdot 10^{-120} \lor \neg \left(z \leq 4.2 \cdot 10^{-91}\right):\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot y}{t}\\
\end{array}
\end{array}
if z < -2.60000000000000005e-35 or -6.60000000000000033e-70 < z < -2.14999999999999991e-120 or 4.1999999999999998e-91 < z Initial program 75.3%
associate-*r/98.0%
Simplified98.0%
Taylor expanded in t around 0 73.7%
mul-1-neg73.7%
div-sub73.7%
sub-neg73.7%
*-inverses73.7%
metadata-eval73.7%
Simplified73.7%
Taylor expanded in x around 0 73.7%
if -2.60000000000000005e-35 < z < -6.60000000000000033e-70Initial program 84.0%
associate-*r/99.6%
Simplified99.6%
Taylor expanded in z around 0 53.3%
associate-/l*70.0%
Simplified70.0%
if -2.14999999999999991e-120 < z < 4.1999999999999998e-91Initial program 94.0%
associate-*r/93.6%
Simplified93.6%
Taylor expanded in z around 0 74.0%
Final simplification73.7%
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (* x (/ y (- t z)))))
(if (<= y -2.75e-27)
t_1
(if (<= y 4500.0)
(/ x (- 1.0 (/ t z)))
(if (or (<= y 2.5e+45) (not (<= y 2.4e+98)))
t_1
(* x (/ z (- z t))))))))
double code(double x, double y, double z, double t) {
double t_1 = x * (y / (t - z));
double tmp;
if (y <= -2.75e-27) {
tmp = t_1;
} else if (y <= 4500.0) {
tmp = x / (1.0 - (t / z));
} else if ((y <= 2.5e+45) || !(y <= 2.4e+98)) {
tmp = t_1;
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = x * (y / (t - z))
if (y <= (-2.75d-27)) then
tmp = t_1
else if (y <= 4500.0d0) then
tmp = x / (1.0d0 - (t / z))
else if ((y <= 2.5d+45) .or. (.not. (y <= 2.4d+98))) then
tmp = t_1
else
tmp = x * (z / (z - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * (y / (t - z));
double tmp;
if (y <= -2.75e-27) {
tmp = t_1;
} else if (y <= 4500.0) {
tmp = x / (1.0 - (t / z));
} else if ((y <= 2.5e+45) || !(y <= 2.4e+98)) {
tmp = t_1;
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): t_1 = x * (y / (t - z)) tmp = 0 if y <= -2.75e-27: tmp = t_1 elif y <= 4500.0: tmp = x / (1.0 - (t / z)) elif (y <= 2.5e+45) or not (y <= 2.4e+98): tmp = t_1 else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(y / Float64(t - z))) tmp = 0.0 if (y <= -2.75e-27) tmp = t_1; elseif (y <= 4500.0) tmp = Float64(x / Float64(1.0 - Float64(t / z))); elseif ((y <= 2.5e+45) || !(y <= 2.4e+98)) tmp = t_1; else tmp = Float64(x * Float64(z / Float64(z - t))); end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * (y / (t - z)); tmp = 0.0; if (y <= -2.75e-27) tmp = t_1; elseif (y <= 4500.0) tmp = x / (1.0 - (t / z)); elseif ((y <= 2.5e+45) || ~((y <= 2.4e+98))) tmp = t_1; else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -2.75e-27], t$95$1, If[LessEqual[y, 4500.0], N[(x / N[(1.0 - N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[y, 2.5e+45], N[Not[LessEqual[y, 2.4e+98]], $MachinePrecision]], t$95$1, N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \frac{y}{t - z}\\
\mathbf{if}\;y \leq -2.75 \cdot 10^{-27}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 4500:\\
\;\;\;\;\frac{x}{1 - \frac{t}{z}}\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{+45} \lor \neg \left(y \leq 2.4 \cdot 10^{+98}\right):\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
\end{array}
if y < -2.7500000000000001e-27 or 4500 < y < 2.5e45 or 2.3999999999999999e98 < y Initial program 81.6%
associate-*r/96.2%
Simplified96.2%
Taylor expanded in y around inf 75.0%
if -2.7500000000000001e-27 < y < 4500Initial program 82.4%
associate-*r/96.9%
Simplified96.9%
Taylor expanded in y around 0 67.9%
mul-1-neg67.9%
associate-/l*83.6%
distribute-neg-frac83.6%
div-sub83.6%
sub-neg83.6%
*-inverses83.6%
metadata-eval83.6%
Simplified83.6%
frac-2neg83.6%
div-inv83.5%
remove-double-neg83.5%
+-commutative83.5%
distribute-neg-in83.5%
metadata-eval83.5%
Applied egg-rr83.5%
associate-*r/83.6%
*-rgt-identity83.6%
unsub-neg83.6%
Simplified83.6%
if 2.5e45 < y < 2.3999999999999999e98Initial program 79.5%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in y around 0 79.0%
neg-mul-179.0%
distribute-neg-frac79.0%
Simplified79.0%
frac-2neg79.0%
div-inv78.9%
remove-double-neg78.9%
sub-neg78.9%
distribute-neg-in78.9%
remove-double-neg78.9%
Applied egg-rr78.9%
associate-*r/79.0%
*-rgt-identity79.0%
+-commutative79.0%
unsub-neg79.0%
Simplified79.0%
Final simplification78.9%
(FPCore (x y z t)
:precision binary64
(if (<= y -1.08e-26)
(/ x (/ (- t z) y))
(if (<= y 2200.0)
(/ x (- 1.0 (/ t z)))
(if (or (<= y 2.82e+45) (not (<= y 3.8e+99)))
(* x (/ y (- t z)))
(* x (/ z (- z t)))))))
double code(double x, double y, double z, double t) {
double tmp;
if (y <= -1.08e-26) {
tmp = x / ((t - z) / y);
} else if (y <= 2200.0) {
tmp = x / (1.0 - (t / z));
} else if ((y <= 2.82e+45) || !(y <= 3.8e+99)) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (y <= (-1.08d-26)) then
tmp = x / ((t - z) / y)
else if (y <= 2200.0d0) then
tmp = x / (1.0d0 - (t / z))
else if ((y <= 2.82d+45) .or. (.not. (y <= 3.8d+99))) then
tmp = x * (y / (t - z))
else
tmp = x * (z / (z - t))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (y <= -1.08e-26) {
tmp = x / ((t - z) / y);
} else if (y <= 2200.0) {
tmp = x / (1.0 - (t / z));
} else if ((y <= 2.82e+45) || !(y <= 3.8e+99)) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if y <= -1.08e-26: tmp = x / ((t - z) / y) elif y <= 2200.0: tmp = x / (1.0 - (t / z)) elif (y <= 2.82e+45) or not (y <= 3.8e+99): tmp = x * (y / (t - z)) else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) tmp = 0.0 if (y <= -1.08e-26) tmp = Float64(x / Float64(Float64(t - z) / y)); elseif (y <= 2200.0) tmp = Float64(x / Float64(1.0 - Float64(t / z))); elseif ((y <= 2.82e+45) || !(y <= 3.8e+99)) tmp = Float64(x * Float64(y / Float64(t - z))); else tmp = Float64(x * Float64(z / Float64(z - t))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (y <= -1.08e-26) tmp = x / ((t - z) / y); elseif (y <= 2200.0) tmp = x / (1.0 - (t / z)); elseif ((y <= 2.82e+45) || ~((y <= 3.8e+99))) tmp = x * (y / (t - z)); else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[y, -1.08e-26], N[(x / N[(N[(t - z), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2200.0], N[(x / N[(1.0 - N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[y, 2.82e+45], N[Not[LessEqual[y, 3.8e+99]], $MachinePrecision]], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.08 \cdot 10^{-26}:\\
\;\;\;\;\frac{x}{\frac{t - z}{y}}\\
\mathbf{elif}\;y \leq 2200:\\
\;\;\;\;\frac{x}{1 - \frac{t}{z}}\\
\mathbf{elif}\;y \leq 2.82 \cdot 10^{+45} \lor \neg \left(y \leq 3.8 \cdot 10^{+99}\right):\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
\end{array}
if y < -1.07999999999999996e-26Initial program 81.1%
associate-/l*96.2%
Simplified96.2%
Taylor expanded in y around inf 70.2%
if -1.07999999999999996e-26 < y < 2200Initial program 82.4%
associate-*r/96.9%
Simplified96.9%
Taylor expanded in y around 0 67.9%
mul-1-neg67.9%
associate-/l*83.6%
distribute-neg-frac83.6%
div-sub83.6%
sub-neg83.6%
*-inverses83.6%
metadata-eval83.6%
Simplified83.6%
frac-2neg83.6%
div-inv83.5%
remove-double-neg83.5%
+-commutative83.5%
distribute-neg-in83.5%
metadata-eval83.5%
Applied egg-rr83.5%
associate-*r/83.6%
*-rgt-identity83.6%
unsub-neg83.6%
Simplified83.6%
if 2200 < y < 2.81999999999999995e45 or 3.8e99 < y Initial program 82.3%
associate-*r/96.3%
Simplified96.3%
Taylor expanded in y around inf 82.4%
if 2.81999999999999995e45 < y < 3.8e99Initial program 79.5%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in y around 0 79.0%
neg-mul-179.0%
distribute-neg-frac79.0%
Simplified79.0%
frac-2neg79.0%
div-inv78.9%
remove-double-neg78.9%
sub-neg78.9%
distribute-neg-in78.9%
remove-double-neg78.9%
Applied egg-rr78.9%
associate-*r/79.0%
*-rgt-identity79.0%
+-commutative79.0%
unsub-neg79.0%
Simplified79.0%
Final simplification78.9%
(FPCore (x y z t)
:precision binary64
(if (<= z -2.4e-29)
x
(if (<= z -3.2e-190)
(* y (/ x t))
(if (<= z 1.66e-280) (/ (* x y) t) (if (<= z 3e+49) (* x (/ y t)) x)))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -2.4e-29) {
tmp = x;
} else if (z <= -3.2e-190) {
tmp = y * (x / t);
} else if (z <= 1.66e-280) {
tmp = (x * y) / t;
} else if (z <= 3e+49) {
tmp = x * (y / t);
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (z <= (-2.4d-29)) then
tmp = x
else if (z <= (-3.2d-190)) then
tmp = y * (x / t)
else if (z <= 1.66d-280) then
tmp = (x * y) / t
else if (z <= 3d+49) then
tmp = x * (y / t)
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -2.4e-29) {
tmp = x;
} else if (z <= -3.2e-190) {
tmp = y * (x / t);
} else if (z <= 1.66e-280) {
tmp = (x * y) / t;
} else if (z <= 3e+49) {
tmp = x * (y / t);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -2.4e-29: tmp = x elif z <= -3.2e-190: tmp = y * (x / t) elif z <= 1.66e-280: tmp = (x * y) / t elif z <= 3e+49: tmp = x * (y / t) else: tmp = x return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -2.4e-29) tmp = x; elseif (z <= -3.2e-190) tmp = Float64(y * Float64(x / t)); elseif (z <= 1.66e-280) tmp = Float64(Float64(x * y) / t); elseif (z <= 3e+49) tmp = Float64(x * Float64(y / t)); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -2.4e-29) tmp = x; elseif (z <= -3.2e-190) tmp = y * (x / t); elseif (z <= 1.66e-280) tmp = (x * y) / t; elseif (z <= 3e+49) tmp = x * (y / t); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -2.4e-29], x, If[LessEqual[z, -3.2e-190], N[(y * N[(x / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.66e-280], N[(N[(x * y), $MachinePrecision] / t), $MachinePrecision], If[LessEqual[z, 3e+49], N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision], x]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -2.4 \cdot 10^{-29}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq -3.2 \cdot 10^{-190}:\\
\;\;\;\;y \cdot \frac{x}{t}\\
\mathbf{elif}\;z \leq 1.66 \cdot 10^{-280}:\\
\;\;\;\;\frac{x \cdot y}{t}\\
\mathbf{elif}\;z \leq 3 \cdot 10^{+49}:\\
\;\;\;\;x \cdot \frac{y}{t}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -2.39999999999999992e-29 or 3.0000000000000002e49 < z Initial program 72.3%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in z around inf 59.4%
if -2.39999999999999992e-29 < z < -3.2000000000000001e-190Initial program 83.7%
associate-*r/91.4%
Simplified91.4%
Taylor expanded in z around 0 42.5%
associate-/l*51.4%
Simplified51.4%
associate-/r/52.7%
Applied egg-rr52.7%
if -3.2000000000000001e-190 < z < 1.6599999999999999e-280Initial program 99.2%
associate-*r/86.1%
Simplified86.1%
Taylor expanded in z around 0 92.2%
if 1.6599999999999999e-280 < z < 3.0000000000000002e49Initial program 91.6%
associate-*r/99.9%
Simplified99.9%
Taylor expanded in z around 0 58.9%
Final simplification61.9%
(FPCore (x y z t) :precision binary64 (if (or (<= z -4600000000000.0) (not (<= z 8.2e-91))) (* x (- 1.0 (/ y z))) (* x (/ y (- t z)))))
double code(double x, double y, double z, double t) {
double tmp;
if ((z <= -4600000000000.0) || !(z <= 8.2e-91)) {
tmp = x * (1.0 - (y / z));
} else {
tmp = x * (y / (t - z));
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if ((z <= (-4600000000000.0d0)) .or. (.not. (z <= 8.2d-91))) then
tmp = x * (1.0d0 - (y / z))
else
tmp = x * (y / (t - z))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if ((z <= -4600000000000.0) || !(z <= 8.2e-91)) {
tmp = x * (1.0 - (y / z));
} else {
tmp = x * (y / (t - z));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if (z <= -4600000000000.0) or not (z <= 8.2e-91): tmp = x * (1.0 - (y / z)) else: tmp = x * (y / (t - z)) return tmp
function code(x, y, z, t) tmp = 0.0 if ((z <= -4600000000000.0) || !(z <= 8.2e-91)) tmp = Float64(x * Float64(1.0 - Float64(y / z))); else tmp = Float64(x * Float64(y / Float64(t - z))); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if ((z <= -4600000000000.0) || ~((z <= 8.2e-91))) tmp = x * (1.0 - (y / z)); else tmp = x * (y / (t - z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[Or[LessEqual[z, -4600000000000.0], N[Not[LessEqual[z, 8.2e-91]], $MachinePrecision]], N[(x * N[(1.0 - N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4600000000000 \lor \neg \left(z \leq 8.2 \cdot 10^{-91}\right):\\
\;\;\;\;x \cdot \left(1 - \frac{y}{z}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\end{array}
\end{array}
if z < -4.6e12 or 8.20000000000000048e-91 < z Initial program 73.4%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in t around 0 75.7%
mul-1-neg75.7%
div-sub75.8%
sub-neg75.8%
*-inverses75.8%
metadata-eval75.8%
Simplified75.8%
Taylor expanded in x around 0 75.8%
if -4.6e12 < z < 8.20000000000000048e-91Initial program 91.7%
associate-*r/93.0%
Simplified93.0%
Taylor expanded in y around inf 75.9%
Final simplification75.8%
(FPCore (x y z t) :precision binary64 (if (<= z -1.12e-29) x (if (<= z 4.5e+49) (* x (/ y t)) x)))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -1.12e-29) {
tmp = x;
} else if (z <= 4.5e+49) {
tmp = x * (y / t);
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (z <= (-1.12d-29)) then
tmp = x
else if (z <= 4.5d+49) then
tmp = x * (y / t)
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -1.12e-29) {
tmp = x;
} else if (z <= 4.5e+49) {
tmp = x * (y / t);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -1.12e-29: tmp = x elif z <= 4.5e+49: tmp = x * (y / t) else: tmp = x return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -1.12e-29) tmp = x; elseif (z <= 4.5e+49) tmp = Float64(x * Float64(y / t)); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -1.12e-29) tmp = x; elseif (z <= 4.5e+49) tmp = x * (y / t); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -1.12e-29], x, If[LessEqual[z, 4.5e+49], N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision], x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.12 \cdot 10^{-29}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq 4.5 \cdot 10^{+49}:\\
\;\;\;\;x \cdot \frac{y}{t}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -1.11999999999999995e-29 or 4.49999999999999982e49 < z Initial program 72.3%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in z around inf 59.4%
if -1.11999999999999995e-29 < z < 4.49999999999999982e49Initial program 90.6%
associate-*r/93.8%
Simplified93.8%
Taylor expanded in z around 0 60.7%
Final simplification60.1%
(FPCore (x y z t) :precision binary64 (if (<= z -3.7e-29) x (if (<= z 2.5e+49) (/ x (/ t y)) x)))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -3.7e-29) {
tmp = x;
} else if (z <= 2.5e+49) {
tmp = x / (t / y);
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: tmp
if (z <= (-3.7d-29)) then
tmp = x
else if (z <= 2.5d+49) then
tmp = x / (t / y)
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -3.7e-29) {
tmp = x;
} else if (z <= 2.5e+49) {
tmp = x / (t / y);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -3.7e-29: tmp = x elif z <= 2.5e+49: tmp = x / (t / y) else: tmp = x return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -3.7e-29) tmp = x; elseif (z <= 2.5e+49) tmp = Float64(x / Float64(t / y)); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -3.7e-29) tmp = x; elseif (z <= 2.5e+49) tmp = x / (t / y); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -3.7e-29], x, If[LessEqual[z, 2.5e+49], N[(x / N[(t / y), $MachinePrecision]), $MachinePrecision], x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -3.7 \cdot 10^{-29}:\\
\;\;\;\;x\\
\mathbf{elif}\;z \leq 2.5 \cdot 10^{+49}:\\
\;\;\;\;\frac{x}{\frac{t}{y}}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if z < -3.6999999999999997e-29 or 2.5000000000000002e49 < z Initial program 72.3%
associate-*r/99.8%
Simplified99.8%
Taylor expanded in z around inf 59.4%
if -3.6999999999999997e-29 < z < 2.5000000000000002e49Initial program 90.6%
associate-*r/93.8%
Simplified93.8%
Taylor expanded in z around 0 58.0%
associate-/l*60.7%
Simplified60.7%
Final simplification60.1%
(FPCore (x y z t) :precision binary64 (* x (/ (- y z) (- t z))))
double code(double x, double y, double z, double t) {
return x * ((y - z) / (t - z));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x * ((y - z) / (t - z))
end function
public static double code(double x, double y, double z, double t) {
return x * ((y - z) / (t - z));
}
def code(x, y, z, t): return x * ((y - z) / (t - z))
function code(x, y, z, t) return Float64(x * Float64(Float64(y - z) / Float64(t - z))) end
function tmp = code(x, y, z, t) tmp = x * ((y - z) / (t - z)); end
code[x_, y_, z_, t_] := N[(x * N[(N[(y - z), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \frac{y - z}{t - z}
\end{array}
Initial program 81.8%
associate-*r/96.7%
Simplified96.7%
Final simplification96.7%
(FPCore (x y z t) :precision binary64 x)
double code(double x, double y, double z, double t) {
return x;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x
end function
public static double code(double x, double y, double z, double t) {
return x;
}
def code(x, y, z, t): return x
function code(x, y, z, t) return x end
function tmp = code(x, y, z, t) tmp = x; end
code[x_, y_, z_, t_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 81.8%
associate-*r/96.7%
Simplified96.7%
Taylor expanded in z around inf 36.8%
Final simplification36.8%
(FPCore (x y z t) :precision binary64 (/ x (/ (- t z) (- y z))))
double code(double x, double y, double z, double t) {
return x / ((t - z) / (y - z));
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x / ((t - z) / (y - z))
end function
public static double code(double x, double y, double z, double t) {
return x / ((t - z) / (y - z));
}
def code(x, y, z, t): return x / ((t - z) / (y - z))
function code(x, y, z, t) return Float64(x / Float64(Float64(t - z) / Float64(y - z))) end
function tmp = code(x, y, z, t) tmp = x / ((t - z) / (y - z)); end
code[x_, y_, z_, t_] := N[(x / N[(N[(t - z), $MachinePrecision] / N[(y - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{\frac{t - z}{y - z}}
\end{array}
herbie shell --seed 2023308
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:precision binary64
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))