
(FPCore (x y z t) :precision binary64 :pre TRUE (/ (* 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)
use fmin_fmax_functions
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]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = (x * (y - z)) / (t - z) END code
\frac{x \cdot \left(y - z\right)}{t - z}
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t) :precision binary64 :pre TRUE (/ (* 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)
use fmin_fmax_functions
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]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = (x * (y - z)) / (t - z) END code
\frac{x \cdot \left(y - z\right)}{t - z}
(FPCore (x y z t)
:precision binary64
:pre TRUE
(let* ((t_1 (/ (* (fabs x) (- y z)) (- t z))))
(*
(copysign 1.0 x)
(if (<= t_1 -4e+273)
(/ (- y z) (/ (- t z) (fabs x)))
(if (<= t_1 5e+231) t_1 (* (- y z) (/ (fabs x) (- t z))))))))double code(double x, double y, double z, double t) {
double t_1 = (fabs(x) * (y - z)) / (t - z);
double tmp;
if (t_1 <= -4e+273) {
tmp = (y - z) / ((t - z) / fabs(x));
} else if (t_1 <= 5e+231) {
tmp = t_1;
} else {
tmp = (y - z) * (fabs(x) / (t - z));
}
return copysign(1.0, x) * tmp;
}
public static double code(double x, double y, double z, double t) {
double t_1 = (Math.abs(x) * (y - z)) / (t - z);
double tmp;
if (t_1 <= -4e+273) {
tmp = (y - z) / ((t - z) / Math.abs(x));
} else if (t_1 <= 5e+231) {
tmp = t_1;
} else {
tmp = (y - z) * (Math.abs(x) / (t - z));
}
return Math.copySign(1.0, x) * tmp;
}
def code(x, y, z, t): t_1 = (math.fabs(x) * (y - z)) / (t - z) tmp = 0 if t_1 <= -4e+273: tmp = (y - z) / ((t - z) / math.fabs(x)) elif t_1 <= 5e+231: tmp = t_1 else: tmp = (y - z) * (math.fabs(x) / (t - z)) return math.copysign(1.0, x) * tmp
function code(x, y, z, t) t_1 = Float64(Float64(abs(x) * Float64(y - z)) / Float64(t - z)) tmp = 0.0 if (t_1 <= -4e+273) tmp = Float64(Float64(y - z) / Float64(Float64(t - z) / abs(x))); elseif (t_1 <= 5e+231) tmp = t_1; else tmp = Float64(Float64(y - z) * Float64(abs(x) / Float64(t - z))); end return Float64(copysign(1.0, x) * tmp) end
function tmp_2 = code(x, y, z, t) t_1 = (abs(x) * (y - z)) / (t - z); tmp = 0.0; if (t_1 <= -4e+273) tmp = (y - z) / ((t - z) / abs(x)); elseif (t_1 <= 5e+231) tmp = t_1; else tmp = (y - z) * (abs(x) / (t - z)); end tmp_2 = (sign(x) * abs(1.0)) * tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[(N[Abs[x], $MachinePrecision] * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[t$95$1, -4e+273], N[(N[(y - z), $MachinePrecision] / N[(N[(t - z), $MachinePrecision] / N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 5e+231], t$95$1, N[(N[(y - z), $MachinePrecision] * N[(N[Abs[x], $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_1 := \frac{\left|x\right| \cdot \left(y - z\right)}{t - z}\\
\mathsf{copysign}\left(1, x\right) \cdot \begin{array}{l}
\mathbf{if}\;t\_1 \leq -4 \cdot 10^{+273}:\\
\;\;\;\;\frac{y - z}{\frac{t - z}{\left|x\right|}}\\
\mathbf{elif}\;t\_1 \leq 5 \cdot 10^{+231}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(y - z\right) \cdot \frac{\left|x\right|}{t - z}\\
\end{array}
\end{array}
if (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < -3.9999999999999998e273Initial program 84.4%
Applied rewrites45.6%
Applied rewrites83.6%
if -3.9999999999999998e273 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < 5.0000000000000003e231Initial program 84.4%
if 5.0000000000000003e231 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) Initial program 84.4%
Applied rewrites84.3%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(let* ((t_1 (* (- y z) (/ (fabs x) (- t z))))
(t_2 (/ (* (fabs x) (- y z)) (- t z))))
(*
(copysign 1.0 x)
(if (<= t_2 -4e+273) t_1 (if (<= t_2 5e+231) t_2 t_1)))))double code(double x, double y, double z, double t) {
double t_1 = (y - z) * (fabs(x) / (t - z));
double t_2 = (fabs(x) * (y - z)) / (t - z);
double tmp;
if (t_2 <= -4e+273) {
tmp = t_1;
} else if (t_2 <= 5e+231) {
tmp = t_2;
} else {
tmp = t_1;
}
return copysign(1.0, x) * tmp;
}
public static double code(double x, double y, double z, double t) {
double t_1 = (y - z) * (Math.abs(x) / (t - z));
double t_2 = (Math.abs(x) * (y - z)) / (t - z);
double tmp;
if (t_2 <= -4e+273) {
tmp = t_1;
} else if (t_2 <= 5e+231) {
tmp = t_2;
} else {
tmp = t_1;
}
return Math.copySign(1.0, x) * tmp;
}
def code(x, y, z, t): t_1 = (y - z) * (math.fabs(x) / (t - z)) t_2 = (math.fabs(x) * (y - z)) / (t - z) tmp = 0 if t_2 <= -4e+273: tmp = t_1 elif t_2 <= 5e+231: tmp = t_2 else: tmp = t_1 return math.copysign(1.0, x) * tmp
function code(x, y, z, t) t_1 = Float64(Float64(y - z) * Float64(abs(x) / Float64(t - z))) t_2 = Float64(Float64(abs(x) * Float64(y - z)) / Float64(t - z)) tmp = 0.0 if (t_2 <= -4e+273) tmp = t_1; elseif (t_2 <= 5e+231) tmp = t_2; else tmp = t_1; end return Float64(copysign(1.0, x) * tmp) end
function tmp_2 = code(x, y, z, t) t_1 = (y - z) * (abs(x) / (t - z)); t_2 = (abs(x) * (y - z)) / (t - z); tmp = 0.0; if (t_2 <= -4e+273) tmp = t_1; elseif (t_2 <= 5e+231) tmp = t_2; else tmp = t_1; end tmp_2 = (sign(x) * abs(1.0)) * tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[(y - z), $MachinePrecision] * N[(N[Abs[x], $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[Abs[x], $MachinePrecision] * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[t$95$2, -4e+273], t$95$1, If[LessEqual[t$95$2, 5e+231], t$95$2, t$95$1]]), $MachinePrecision]]]
\begin{array}{l}
t_1 := \left(y - z\right) \cdot \frac{\left|x\right|}{t - z}\\
t_2 := \frac{\left|x\right| \cdot \left(y - z\right)}{t - z}\\
\mathsf{copysign}\left(1, x\right) \cdot \begin{array}{l}
\mathbf{if}\;t\_2 \leq -4 \cdot 10^{+273}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_2 \leq 5 \cdot 10^{+231}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < -3.9999999999999998e273 or 5.0000000000000003e231 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) Initial program 84.4%
Applied rewrites84.3%
if -3.9999999999999998e273 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < 5.0000000000000003e231Initial program 84.4%
(FPCore (x y z t) :precision binary64 :pre TRUE (* x (/ (- z y) (- z t))))
double code(double x, double y, double z, double t) {
return x * ((z - y) / (z - t));
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x * ((z - y) / (z - t))
end function
public static double code(double x, double y, double z, double t) {
return x * ((z - y) / (z - t));
}
def code(x, y, z, t): return x * ((z - y) / (z - t))
function code(x, y, z, t) return Float64(x * Float64(Float64(z - y) / Float64(z - t))) end
function tmp = code(x, y, z, t) tmp = x * ((z - y) / (z - t)); end
code[x_, y_, z_, t_] := N[(x * N[(N[(z - y), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = x * ((z - y) / (z - t)) END code
x \cdot \frac{z - y}{z - t}
Initial program 84.4%
Applied rewrites97.0%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -5.524060034400675e+35)
(* x (/ (- z y) z))
(if (<= z -3.2844961741444462e-236)
(/ (* x y) (- t z))
(if (<= z 2.074714056229024e+46)
(/ (* x (- y z)) t)
(* x (/ z (- z t)))))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= -3.2844961741444462e-236) {
tmp = (x * y) / (t - z);
} else if (z <= 2.074714056229024e+46) {
tmp = (x * (y - z)) / t;
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-5.524060034400675d+35)) then
tmp = x * ((z - y) / z)
else if (z <= (-3.2844961741444462d-236)) then
tmp = (x * y) / (t - z)
else if (z <= 2.074714056229024d+46) then
tmp = (x * (y - z)) / t
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 (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= -3.2844961741444462e-236) {
tmp = (x * y) / (t - z);
} else if (z <= 2.074714056229024e+46) {
tmp = (x * (y - z)) / t;
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -5.524060034400675e+35: tmp = x * ((z - y) / z) elif z <= -3.2844961741444462e-236: tmp = (x * y) / (t - z) elif z <= 2.074714056229024e+46: tmp = (x * (y - z)) / t else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -5.524060034400675e+35) tmp = Float64(x * Float64(Float64(z - y) / z)); elseif (z <= -3.2844961741444462e-236) tmp = Float64(Float64(x * y) / Float64(t - z)); elseif (z <= 2.074714056229024e+46) tmp = Float64(Float64(x * Float64(y - z)) / t); 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 (z <= -5.524060034400675e+35) tmp = x * ((z - y) / z); elseif (z <= -3.2844961741444462e-236) tmp = (x * y) / (t - z); elseif (z <= 2.074714056229024e+46) tmp = (x * (y - z)) / t; else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -5.524060034400675e+35], N[(x * N[(N[(z - y), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -3.2844961741444462e-236], N[(N[(x * y), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.074714056229024e+46], N[(N[(x * N[(y - z), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision], N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_2 = IF (z <= (20747140562290239249715802397516968849152409600)) THEN ((x * (y - z)) / t) ELSE (x * (z / (z - t))) ENDIF IN LET tmp_1 = IF (z <= (-32844961741444462407173143795749739974701126406467838095056216990617528458067347094640456071441275836155037741846885054743112287472860711622981152164436567913439115133936772053663851953692406589091911118541846472020236181485724313490639542360503101971746148350806046265550989094901477206415095837289016999630806012893271664879255699092656468410149596487281201441181590312132915275111232949861268724547305148452532047566418142377839744759493454073577949224300530595419665224841802191638095593694155564304654910453370178141578801912575089681955746530705032674990473395837398129515349864959716796875e-831)) THEN ((x * y) / (t - z)) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-552406003440067519028647541124104192)) THEN (x * ((z - y) / z)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -5.524060034400675 \cdot 10^{+35}:\\
\;\;\;\;x \cdot \frac{z - y}{z}\\
\mathbf{elif}\;z \leq -3.2844961741444462 \cdot 10^{-236}:\\
\;\;\;\;\frac{x \cdot y}{t - z}\\
\mathbf{elif}\;z \leq 2.074714056229024 \cdot 10^{+46}:\\
\;\;\;\;\frac{x \cdot \left(y - z\right)}{t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
if z < -5.5240600344006752e35Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites52.3%
if -5.5240600344006752e35 < z < -3.2844961741444462e-236Initial program 84.4%
Taylor expanded in y around inf
Applied rewrites50.0%
if -3.2844961741444462e-236 < z < 2.0747140562290239e46Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites47.5%
if 2.0747140562290239e46 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites53.9%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -5.524060034400675e+35)
(* x (/ (- z y) z))
(if (<= z -2.186412909082924e-296)
(/ (* x y) (- t z))
(if (<= z 2.074714056229024e+46)
(* x (/ (- y z) t))
(* x (/ z (- z t)))))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= -2.186412909082924e-296) {
tmp = (x * y) / (t - z);
} else if (z <= 2.074714056229024e+46) {
tmp = x * ((y - z) / t);
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-5.524060034400675d+35)) then
tmp = x * ((z - y) / z)
else if (z <= (-2.186412909082924d-296)) then
tmp = (x * y) / (t - z)
else if (z <= 2.074714056229024d+46) then
tmp = x * ((y - z) / t)
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 (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= -2.186412909082924e-296) {
tmp = (x * y) / (t - z);
} else if (z <= 2.074714056229024e+46) {
tmp = x * ((y - z) / t);
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -5.524060034400675e+35: tmp = x * ((z - y) / z) elif z <= -2.186412909082924e-296: tmp = (x * y) / (t - z) elif z <= 2.074714056229024e+46: tmp = x * ((y - z) / t) else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -5.524060034400675e+35) tmp = Float64(x * Float64(Float64(z - y) / z)); elseif (z <= -2.186412909082924e-296) tmp = Float64(Float64(x * y) / Float64(t - z)); elseif (z <= 2.074714056229024e+46) tmp = Float64(x * Float64(Float64(y - z) / t)); 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 (z <= -5.524060034400675e+35) tmp = x * ((z - y) / z); elseif (z <= -2.186412909082924e-296) tmp = (x * y) / (t - z); elseif (z <= 2.074714056229024e+46) tmp = x * ((y - z) / t); else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -5.524060034400675e+35], N[(x * N[(N[(z - y), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -2.186412909082924e-296], N[(N[(x * y), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.074714056229024e+46], N[(x * N[(N[(y - z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_2 = IF (z <= (20747140562290239249715802397516968849152409600)) THEN (x * ((y - z) / t)) ELSE (x * (z / (z - t))) ENDIF IN LET tmp_1 = IF (z <= (-21864129090829239673723633396604793658176196911142394031872415849189028253984685441090432057217485644662857252002827347019789515455094722318099710350876356607352941295661003992469716624628661915381556767172163492087810413126255899618779018225311666788287229687725407520018194635424542925220296868741029840929081757276584582219452296386554228333432655812007084545082294756408542642144445690622061106565719000039179271588586234680908550462442979274557100327860505293969008260501779253325304610729647633223139487863861853743199548346180855515928592309943698240298248553066627922352291302381664902462113502857160578695237752657067707914991916479864148602923302425365376171217697078154575245766846774996862434736755176345468498766422271728515625e-1035)) THEN ((x * y) / (t - z)) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-552406003440067519028647541124104192)) THEN (x * ((z - y) / z)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -5.524060034400675 \cdot 10^{+35}:\\
\;\;\;\;x \cdot \frac{z - y}{z}\\
\mathbf{elif}\;z \leq -2.186412909082924 \cdot 10^{-296}:\\
\;\;\;\;\frac{x \cdot y}{t - z}\\
\mathbf{elif}\;z \leq 2.074714056229024 \cdot 10^{+46}:\\
\;\;\;\;x \cdot \frac{y - z}{t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
if z < -5.5240600344006752e35Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites52.3%
if -5.5240600344006752e35 < z < -2.186412909082924e-296Initial program 84.4%
Taylor expanded in y around inf
Applied rewrites50.0%
if -2.186412909082924e-296 < z < 2.0747140562290239e46Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites47.5%
Applied rewrites50.2%
if 2.0747140562290239e46 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites53.9%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(let* ((t_1 (* x (/ (- z y) z))))
(if (<= z -5.524060034400675e+35)
t_1
(if (<= z 3.049736435618952e-54)
(* x (/ y (- t z)))
(if (<= z 6.124997616673152e+124) (* z (/ x (- z t))) t_1)))))double code(double x, double y, double z, double t) {
double t_1 = x * ((z - y) / z);
double tmp;
if (z <= -5.524060034400675e+35) {
tmp = t_1;
} else if (z <= 3.049736435618952e-54) {
tmp = x * (y / (t - z));
} else if (z <= 6.124997616673152e+124) {
tmp = z * (x / (z - t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 * ((z - y) / z)
if (z <= (-5.524060034400675d+35)) then
tmp = t_1
else if (z <= 3.049736435618952d-54) then
tmp = x * (y / (t - z))
else if (z <= 6.124997616673152d+124) then
tmp = z * (x / (z - t))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double t_1 = x * ((z - y) / z);
double tmp;
if (z <= -5.524060034400675e+35) {
tmp = t_1;
} else if (z <= 3.049736435618952e-54) {
tmp = x * (y / (t - z));
} else if (z <= 6.124997616673152e+124) {
tmp = z * (x / (z - t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t): t_1 = x * ((z - y) / z) tmp = 0 if z <= -5.524060034400675e+35: tmp = t_1 elif z <= 3.049736435618952e-54: tmp = x * (y / (t - z)) elif z <= 6.124997616673152e+124: tmp = z * (x / (z - t)) else: tmp = t_1 return tmp
function code(x, y, z, t) t_1 = Float64(x * Float64(Float64(z - y) / z)) tmp = 0.0 if (z <= -5.524060034400675e+35) tmp = t_1; elseif (z <= 3.049736435618952e-54) tmp = Float64(x * Float64(y / Float64(t - z))); elseif (z <= 6.124997616673152e+124) tmp = Float64(z * Float64(x / Float64(z - t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t) t_1 = x * ((z - y) / z); tmp = 0.0; if (z <= -5.524060034400675e+35) tmp = t_1; elseif (z <= 3.049736435618952e-54) tmp = x * (y / (t - z)); elseif (z <= 6.124997616673152e+124) tmp = z * (x / (z - t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[(N[(z - y), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -5.524060034400675e+35], t$95$1, If[LessEqual[z, 3.049736435618952e-54], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 6.124997616673152e+124], N[(z * N[(x / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET t_1 = (x * ((z - y) / z)) IN LET tmp_2 = IF (z <= (61249976166731522906934581557197212554645393748741591510323568985448843784042427184983842657044006637387295090704308418641920)) THEN (z * (x / (z - t))) ELSE t_1 ENDIF IN LET tmp_1 = IF (z <= (30497364356189517969252979243968149751591776223761867884329846740193425364128785200371790718222351583251997069754795077307905222565036391924042646905945730395615100860595703125e-229)) THEN (x * (y / (t - z))) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-552406003440067519028647541124104192)) THEN t_1 ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
t_1 := x \cdot \frac{z - y}{z}\\
\mathbf{if}\;z \leq -5.524060034400675 \cdot 10^{+35}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq 3.049736435618952 \cdot 10^{-54}:\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\mathbf{elif}\;z \leq 6.124997616673152 \cdot 10^{+124}:\\
\;\;\;\;z \cdot \frac{x}{z - t}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if z < -5.5240600344006752e35 or 6.1249976166731523e124 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites52.3%
if -5.5240600344006752e35 < z < 3.0497364356189518e-54Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites47.5%
Applied rewrites50.2%
Taylor expanded in y around inf
Applied rewrites52.6%
if 3.0497364356189518e-54 < z < 6.1249976166731523e124Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites44.6%
Applied rewrites45.3%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -5.524060034400675e+35)
(* x (/ (- z y) z))
(if (<= z 2.074714056229024e+46)
(* x (/ y (- t z)))
(* x (/ z (- z t))))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= 2.074714056229024e+46) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-5.524060034400675d+35)) then
tmp = x * ((z - y) / z)
else if (z <= 2.074714056229024d+46) 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 (z <= -5.524060034400675e+35) {
tmp = x * ((z - y) / z);
} else if (z <= 2.074714056229024e+46) {
tmp = x * (y / (t - z));
} else {
tmp = x * (z / (z - t));
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -5.524060034400675e+35: tmp = x * ((z - y) / z) elif z <= 2.074714056229024e+46: tmp = x * (y / (t - z)) else: tmp = x * (z / (z - t)) return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -5.524060034400675e+35) tmp = Float64(x * Float64(Float64(z - y) / z)); elseif (z <= 2.074714056229024e+46) 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 (z <= -5.524060034400675e+35) tmp = x * ((z - y) / z); elseif (z <= 2.074714056229024e+46) tmp = x * (y / (t - z)); else tmp = x * (z / (z - t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -5.524060034400675e+35], N[(x * N[(N[(z - y), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.074714056229024e+46], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(z / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_1 = IF (z <= (20747140562290239249715802397516968849152409600)) THEN (x * (y / (t - z))) ELSE (x * (z / (z - t))) ENDIF IN LET tmp = IF (z <= (-552406003440067519028647541124104192)) THEN (x * ((z - y) / z)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -5.524060034400675 \cdot 10^{+35}:\\
\;\;\;\;x \cdot \frac{z - y}{z}\\
\mathbf{elif}\;z \leq 2.074714056229024 \cdot 10^{+46}:\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{z}{z - t}\\
\end{array}
if z < -5.5240600344006752e35Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites52.3%
if -5.5240600344006752e35 < z < 2.0747140562290239e46Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites47.5%
Applied rewrites50.2%
Taylor expanded in y around inf
Applied rewrites52.6%
if 2.0747140562290239e46 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites53.9%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -9.094776060740505e+194)
(* x 1.0)
(if (<= z -5.524060034400675e+35)
(/ (* x (- z y)) z)
(if (<= z 3.049736435618952e-54)
(* x (/ y (- t z)))
(if (<= z 9.184600344503367e+168)
(* z (/ x (- z t)))
(* x 1.0))))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -9.094776060740505e+194) {
tmp = x * 1.0;
} else if (z <= -5.524060034400675e+35) {
tmp = (x * (z - y)) / z;
} else if (z <= 3.049736435618952e-54) {
tmp = x * (y / (t - z));
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-9.094776060740505d+194)) then
tmp = x * 1.0d0
else if (z <= (-5.524060034400675d+35)) then
tmp = (x * (z - y)) / z
else if (z <= 3.049736435618952d-54) then
tmp = x * (y / (t - z))
else if (z <= 9.184600344503367d+168) then
tmp = z * (x / (z - t))
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -9.094776060740505e+194) {
tmp = x * 1.0;
} else if (z <= -5.524060034400675e+35) {
tmp = (x * (z - y)) / z;
} else if (z <= 3.049736435618952e-54) {
tmp = x * (y / (t - z));
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -9.094776060740505e+194: tmp = x * 1.0 elif z <= -5.524060034400675e+35: tmp = (x * (z - y)) / z elif z <= 3.049736435618952e-54: tmp = x * (y / (t - z)) elif z <= 9.184600344503367e+168: tmp = z * (x / (z - t)) else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -9.094776060740505e+194) tmp = Float64(x * 1.0); elseif (z <= -5.524060034400675e+35) tmp = Float64(Float64(x * Float64(z - y)) / z); elseif (z <= 3.049736435618952e-54) tmp = Float64(x * Float64(y / Float64(t - z))); elseif (z <= 9.184600344503367e+168) tmp = Float64(z * Float64(x / Float64(z - t))); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -9.094776060740505e+194) tmp = x * 1.0; elseif (z <= -5.524060034400675e+35) tmp = (x * (z - y)) / z; elseif (z <= 3.049736435618952e-54) tmp = x * (y / (t - z)); elseif (z <= 9.184600344503367e+168) tmp = z * (x / (z - t)); else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -9.094776060740505e+194], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, -5.524060034400675e+35], N[(N[(x * N[(z - y), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision], If[LessEqual[z, 3.049736435618952e-54], N[(x * N[(y / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.184600344503367e+168], N[(z * N[(x / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_3 = IF (z <= (9184600344503366934818830123625607761855721826341687161204814402386485905370007435364046523440400354522285198730675499577529398201428772268434052453459105931996447113216)) THEN (z * (x / (z - t))) ELSE (x * (1)) ENDIF IN LET tmp_2 = IF (z <= (30497364356189517969252979243968149751591776223761867884329846740193425364128785200371790718222351583251997069754795077307905222565036391924042646905945730395615100860595703125e-229)) THEN (x * (y / (t - z))) ELSE tmp_3 ENDIF IN LET tmp_1 = IF (z <= (-552406003440067519028647541124104192)) THEN ((x * (z - y)) / z) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-909477606074050469057443913226544836762448362855000122018796242195260235573212427180050593077088035611953897872984629961756845583457876674156804934372024748861409299101176977037141584220587556864)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -9.094776060740505 \cdot 10^{+194}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq -5.524060034400675 \cdot 10^{+35}:\\
\;\;\;\;\frac{x \cdot \left(z - y\right)}{z}\\
\mathbf{elif}\;z \leq 3.049736435618952 \cdot 10^{-54}:\\
\;\;\;\;x \cdot \frac{y}{t - z}\\
\mathbf{elif}\;z \leq 9.184600344503367 \cdot 10^{+168}:\\
\;\;\;\;z \cdot \frac{x}{z - t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -9.0947760607405047e194 or 9.1846003445033669e168 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -9.0947760607405047e194 < z < -5.5240600344006752e35Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites44.7%
if -5.5240600344006752e35 < z < 3.0497364356189518e-54Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites47.5%
Applied rewrites50.2%
Taylor expanded in y around inf
Applied rewrites52.6%
if 3.0497364356189518e-54 < z < 9.1846003445033669e168Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites44.6%
Applied rewrites45.3%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -9.094776060740505e+194)
(* x 1.0)
(if (<= z -5.411280593452379e+34)
(/ (* x (- z y)) z)
(if (<= z 1.2459515935553126e-54)
(* x (/ y t))
(if (<= z 9.184600344503367e+168)
(* z (/ x (- z t)))
(* x 1.0))))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -9.094776060740505e+194) {
tmp = x * 1.0;
} else if (z <= -5.411280593452379e+34) {
tmp = (x * (z - y)) / z;
} else if (z <= 1.2459515935553126e-54) {
tmp = x * (y / t);
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-9.094776060740505d+194)) then
tmp = x * 1.0d0
else if (z <= (-5.411280593452379d+34)) then
tmp = (x * (z - y)) / z
else if (z <= 1.2459515935553126d-54) then
tmp = x * (y / t)
else if (z <= 9.184600344503367d+168) then
tmp = z * (x / (z - t))
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -9.094776060740505e+194) {
tmp = x * 1.0;
} else if (z <= -5.411280593452379e+34) {
tmp = (x * (z - y)) / z;
} else if (z <= 1.2459515935553126e-54) {
tmp = x * (y / t);
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -9.094776060740505e+194: tmp = x * 1.0 elif z <= -5.411280593452379e+34: tmp = (x * (z - y)) / z elif z <= 1.2459515935553126e-54: tmp = x * (y / t) elif z <= 9.184600344503367e+168: tmp = z * (x / (z - t)) else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -9.094776060740505e+194) tmp = Float64(x * 1.0); elseif (z <= -5.411280593452379e+34) tmp = Float64(Float64(x * Float64(z - y)) / z); elseif (z <= 1.2459515935553126e-54) tmp = Float64(x * Float64(y / t)); elseif (z <= 9.184600344503367e+168) tmp = Float64(z * Float64(x / Float64(z - t))); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -9.094776060740505e+194) tmp = x * 1.0; elseif (z <= -5.411280593452379e+34) tmp = (x * (z - y)) / z; elseif (z <= 1.2459515935553126e-54) tmp = x * (y / t); elseif (z <= 9.184600344503367e+168) tmp = z * (x / (z - t)); else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -9.094776060740505e+194], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, -5.411280593452379e+34], N[(N[(x * N[(z - y), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision], If[LessEqual[z, 1.2459515935553126e-54], N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.184600344503367e+168], N[(z * N[(x / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_3 = IF (z <= (9184600344503366934818830123625607761855721826341687161204814402386485905370007435364046523440400354522285198730675499577529398201428772268434052453459105931996447113216)) THEN (z * (x / (z - t))) ELSE (x * (1)) ENDIF IN LET tmp_2 = IF (z <= (124595159355531258598916676684253027862470406863170184866517522269949485580925361677018831527558439812862714562958741963953999324257846011143602282800202374346554279327392578125e-230)) THEN (x * (y / t)) ELSE tmp_3 ENDIF IN LET tmp_1 = IF (z <= (-54112805934523789887965557740797952)) THEN ((x * (z - y)) / z) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-909477606074050469057443913226544836762448362855000122018796242195260235573212427180050593077088035611953897872984629961756845583457876674156804934372024748861409299101176977037141584220587556864)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -9.094776060740505 \cdot 10^{+194}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq -5.411280593452379 \cdot 10^{+34}:\\
\;\;\;\;\frac{x \cdot \left(z - y\right)}{z}\\
\mathbf{elif}\;z \leq 1.2459515935553126 \cdot 10^{-54}:\\
\;\;\;\;x \cdot \frac{y}{t}\\
\mathbf{elif}\;z \leq 9.184600344503367 \cdot 10^{+168}:\\
\;\;\;\;z \cdot \frac{x}{z - t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -9.0947760607405047e194 or 9.1846003445033669e168 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -9.0947760607405047e194 < z < -5.411280593452379e34Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites44.7%
if -5.411280593452379e34 < z < 1.2459515935553126e-54Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around 0
Applied rewrites39.5%
if 1.2459515935553126e-54 < z < 9.1846003445033669e168Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites44.6%
Applied rewrites45.3%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(if (<= z -6.608744827583972e+32)
(* x 1.0)
(if (<= z 1.2459515935553126e-54)
(* x (/ y t))
(if (<= z 9.184600344503367e+168) (* z (/ x (- z t))) (* x 1.0)))))double code(double x, double y, double z, double t) {
double tmp;
if (z <= -6.608744827583972e+32) {
tmp = x * 1.0;
} else if (z <= 1.2459515935553126e-54) {
tmp = x * (y / t);
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-6.608744827583972d+32)) then
tmp = x * 1.0d0
else if (z <= 1.2459515935553126d-54) then
tmp = x * (y / t)
else if (z <= 9.184600344503367d+168) then
tmp = z * (x / (z - t))
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -6.608744827583972e+32) {
tmp = x * 1.0;
} else if (z <= 1.2459515935553126e-54) {
tmp = x * (y / t);
} else if (z <= 9.184600344503367e+168) {
tmp = z * (x / (z - t));
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -6.608744827583972e+32: tmp = x * 1.0 elif z <= 1.2459515935553126e-54: tmp = x * (y / t) elif z <= 9.184600344503367e+168: tmp = z * (x / (z - t)) else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -6.608744827583972e+32) tmp = Float64(x * 1.0); elseif (z <= 1.2459515935553126e-54) tmp = Float64(x * Float64(y / t)); elseif (z <= 9.184600344503367e+168) tmp = Float64(z * Float64(x / Float64(z - t))); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -6.608744827583972e+32) tmp = x * 1.0; elseif (z <= 1.2459515935553126e-54) tmp = x * (y / t); elseif (z <= 9.184600344503367e+168) tmp = z * (x / (z - t)); else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -6.608744827583972e+32], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, 1.2459515935553126e-54], N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.184600344503367e+168], N[(z * N[(x / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_2 = IF (z <= (9184600344503366934818830123625607761855721826341687161204814402386485905370007435364046523440400354522285198730675499577529398201428772268434052453459105931996447113216)) THEN (z * (x / (z - t))) ELSE (x * (1)) ENDIF IN LET tmp_1 = IF (z <= (124595159355531258598916676684253027862470406863170184866517522269949485580925361677018831527558439812862714562958741963953999324257846011143602282800202374346554279327392578125e-230)) THEN (x * (y / t)) ELSE tmp_2 ENDIF IN LET tmp = IF (z <= (-660874482758397194530261691269120)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -6.608744827583972 \cdot 10^{+32}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq 1.2459515935553126 \cdot 10^{-54}:\\
\;\;\;\;x \cdot \frac{y}{t}\\
\mathbf{elif}\;z \leq 9.184600344503367 \cdot 10^{+168}:\\
\;\;\;\;z \cdot \frac{x}{z - t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -6.6087448275839719e32 or 9.1846003445033669e168 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -6.6087448275839719e32 < z < 1.2459515935553126e-54Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around 0
Applied rewrites39.5%
if 1.2459515935553126e-54 < z < 9.1846003445033669e168Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in y around 0
Applied rewrites44.6%
Applied rewrites45.3%
(FPCore (x y z t) :precision binary64 :pre TRUE (if (<= z -6.608744827583972e+32) (* x 1.0) (if (<= z 9.249845426392793e+47) (* x (/ y t)) (* x 1.0))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -6.608744827583972e+32) {
tmp = x * 1.0;
} else if (z <= 9.249845426392793e+47) {
tmp = x * (y / t);
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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 <= (-6.608744827583972d+32)) then
tmp = x * 1.0d0
else if (z <= 9.249845426392793d+47) then
tmp = x * (y / t)
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -6.608744827583972e+32) {
tmp = x * 1.0;
} else if (z <= 9.249845426392793e+47) {
tmp = x * (y / t);
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -6.608744827583972e+32: tmp = x * 1.0 elif z <= 9.249845426392793e+47: tmp = x * (y / t) else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -6.608744827583972e+32) tmp = Float64(x * 1.0); elseif (z <= 9.249845426392793e+47) tmp = Float64(x * Float64(y / t)); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -6.608744827583972e+32) tmp = x * 1.0; elseif (z <= 9.249845426392793e+47) tmp = x * (y / t); else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -6.608744827583972e+32], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, 9.249845426392793e+47], N[(x * N[(y / t), $MachinePrecision]), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_1 = IF (z <= (924984542639279314080535980226164398023059177472)) THEN (x * (y / t)) ELSE (x * (1)) ENDIF IN LET tmp = IF (z <= (-660874482758397194530261691269120)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -6.608744827583972 \cdot 10^{+32}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq 9.249845426392793 \cdot 10^{+47}:\\
\;\;\;\;x \cdot \frac{y}{t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -6.6087448275839719e32 or 9.2498454263927931e47 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -6.6087448275839719e32 < z < 9.2498454263927931e47Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around 0
Applied rewrites39.5%
(FPCore (x y z t) :precision binary64 :pre TRUE (if (<= z -3.5314742303201063e+28) (* x 1.0) (if (<= z 9.249845426392793e+47) (/ (* x y) t) (* x 1.0))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -3.5314742303201063e+28) {
tmp = x * 1.0;
} else if (z <= 9.249845426392793e+47) {
tmp = (x * y) / t;
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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.5314742303201063d+28)) then
tmp = x * 1.0d0
else if (z <= 9.249845426392793d+47) then
tmp = (x * y) / t
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -3.5314742303201063e+28) {
tmp = x * 1.0;
} else if (z <= 9.249845426392793e+47) {
tmp = (x * y) / t;
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -3.5314742303201063e+28: tmp = x * 1.0 elif z <= 9.249845426392793e+47: tmp = (x * y) / t else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -3.5314742303201063e+28) tmp = Float64(x * 1.0); elseif (z <= 9.249845426392793e+47) tmp = Float64(Float64(x * y) / t); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -3.5314742303201063e+28) tmp = x * 1.0; elseif (z <= 9.249845426392793e+47) tmp = (x * y) / t; else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -3.5314742303201063e+28], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, 9.249845426392793e+47], N[(N[(x * y), $MachinePrecision] / t), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_1 = IF (z <= (924984542639279314080535980226164398023059177472)) THEN ((x * y) / t) ELSE (x * (1)) ENDIF IN LET tmp = IF (z <= (-35314742303201063355247755264)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -3.5314742303201063 \cdot 10^{+28}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq 9.249845426392793 \cdot 10^{+47}:\\
\;\;\;\;\frac{x \cdot y}{t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -3.5314742303201063e28 or 9.2498454263927931e47 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -3.5314742303201063e28 < z < 9.2498454263927931e47Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites37.7%
(FPCore (x y z t) :precision binary64 :pre TRUE (if (<= z -2.425334922953195e+32) (* x 1.0) (if (<= z 7.752928718639661e-18) (* y (/ x t)) (* x 1.0))))
double code(double x, double y, double z, double t) {
double tmp;
if (z <= -2.425334922953195e+32) {
tmp = x * 1.0;
} else if (z <= 7.752928718639661e-18) {
tmp = y * (x / t);
} else {
tmp = x * 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
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.425334922953195d+32)) then
tmp = x * 1.0d0
else if (z <= 7.752928718639661d-18) then
tmp = y * (x / t)
else
tmp = x * 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
double tmp;
if (z <= -2.425334922953195e+32) {
tmp = x * 1.0;
} else if (z <= 7.752928718639661e-18) {
tmp = y * (x / t);
} else {
tmp = x * 1.0;
}
return tmp;
}
def code(x, y, z, t): tmp = 0 if z <= -2.425334922953195e+32: tmp = x * 1.0 elif z <= 7.752928718639661e-18: tmp = y * (x / t) else: tmp = x * 1.0 return tmp
function code(x, y, z, t) tmp = 0.0 if (z <= -2.425334922953195e+32) tmp = Float64(x * 1.0); elseif (z <= 7.752928718639661e-18) tmp = Float64(y * Float64(x / t)); else tmp = Float64(x * 1.0); end return tmp end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (z <= -2.425334922953195e+32) tmp = x * 1.0; elseif (z <= 7.752928718639661e-18) tmp = y * (x / t); else tmp = x * 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_] := If[LessEqual[z, -2.425334922953195e+32], N[(x * 1.0), $MachinePrecision], If[LessEqual[z, 7.752928718639661e-18], N[(y * N[(x / t), $MachinePrecision]), $MachinePrecision], N[(x * 1.0), $MachinePrecision]]]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = LET tmp_1 = IF (z <= (77529287186396613225468185128554410806283969000694301920706408282057964242994785308837890625e-109)) THEN (y * (x / t)) ELSE (x * (1)) ENDIF IN LET tmp = IF (z <= (-242533492295319504218637545242624)) THEN (x * (1)) ELSE tmp_1 ENDIF IN tmp END code
\begin{array}{l}
\mathbf{if}\;z \leq -2.425334922953195 \cdot 10^{+32}:\\
\;\;\;\;x \cdot 1\\
\mathbf{elif}\;z \leq 7.752928718639661 \cdot 10^{-18}:\\
\;\;\;\;y \cdot \frac{x}{t}\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1\\
\end{array}
if z < -2.425334922953195e32 or 7.7529287186396613e-18 < z Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if -2.425334922953195e32 < z < 7.7529287186396613e-18Initial program 84.4%
Taylor expanded in z around 0
Applied rewrites37.7%
Applied rewrites37.7%
(FPCore (x y z t)
:precision binary64
:pre TRUE
(let* ((t_1 (/ (* (fabs x) (- y z)) (- t z))))
(*
(copysign 1.0 x)
(if (<= t_1 4e-321)
(* 0.0 1.0)
(if (<= t_1 5e+231) (* (fabs x) 1.0) (* z (/ (fabs x) z)))))))double code(double x, double y, double z, double t) {
double t_1 = (fabs(x) * (y - z)) / (t - z);
double tmp;
if (t_1 <= 4e-321) {
tmp = 0.0 * 1.0;
} else if (t_1 <= 5e+231) {
tmp = fabs(x) * 1.0;
} else {
tmp = z * (fabs(x) / z);
}
return copysign(1.0, x) * tmp;
}
public static double code(double x, double y, double z, double t) {
double t_1 = (Math.abs(x) * (y - z)) / (t - z);
double tmp;
if (t_1 <= 4e-321) {
tmp = 0.0 * 1.0;
} else if (t_1 <= 5e+231) {
tmp = Math.abs(x) * 1.0;
} else {
tmp = z * (Math.abs(x) / z);
}
return Math.copySign(1.0, x) * tmp;
}
def code(x, y, z, t): t_1 = (math.fabs(x) * (y - z)) / (t - z) tmp = 0 if t_1 <= 4e-321: tmp = 0.0 * 1.0 elif t_1 <= 5e+231: tmp = math.fabs(x) * 1.0 else: tmp = z * (math.fabs(x) / z) return math.copysign(1.0, x) * tmp
function code(x, y, z, t) t_1 = Float64(Float64(abs(x) * Float64(y - z)) / Float64(t - z)) tmp = 0.0 if (t_1 <= 4e-321) tmp = Float64(0.0 * 1.0); elseif (t_1 <= 5e+231) tmp = Float64(abs(x) * 1.0); else tmp = Float64(z * Float64(abs(x) / z)); end return Float64(copysign(1.0, x) * tmp) end
function tmp_2 = code(x, y, z, t) t_1 = (abs(x) * (y - z)) / (t - z); tmp = 0.0; if (t_1 <= 4e-321) tmp = 0.0 * 1.0; elseif (t_1 <= 5e+231) tmp = abs(x) * 1.0; else tmp = z * (abs(x) / z); end tmp_2 = (sign(x) * abs(1.0)) * tmp; end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[(N[Abs[x], $MachinePrecision] * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[t$95$1, 4e-321], N[(0.0 * 1.0), $MachinePrecision], If[LessEqual[t$95$1, 5e+231], N[(N[Abs[x], $MachinePrecision] * 1.0), $MachinePrecision], N[(z * N[(N[Abs[x], $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_1 := \frac{\left|x\right| \cdot \left(y - z\right)}{t - z}\\
\mathsf{copysign}\left(1, x\right) \cdot \begin{array}{l}
\mathbf{if}\;t\_1 \leq 4 \cdot 10^{-321}:\\
\;\;\;\;0 \cdot 1\\
\mathbf{elif}\;t\_1 \leq 5 \cdot 10^{+231}:\\
\;\;\;\;\left|x\right| \cdot 1\\
\mathbf{else}:\\
\;\;\;\;z \cdot \frac{\left|x\right|}{z}\\
\end{array}
\end{array}
if (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < 4.001931731314097e-321Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
Taylor expanded in undef-var around zero
Applied rewrites10.8%
if 4.001931731314097e-321 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < 5.0000000000000003e231Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
if 5.0000000000000003e231 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in t around 0
Applied rewrites44.7%
Taylor expanded in y around 0
Applied rewrites30.3%
Applied rewrites29.2%
(FPCore (x y z t) :precision binary64 :pre TRUE (* (copysign 1.0 x) (if (<= (/ (* (fabs x) (- y z)) (- t z)) 4e-321) (* 0.0 1.0) (* (fabs x) 1.0))))
double code(double x, double y, double z, double t) {
double tmp;
if (((fabs(x) * (y - z)) / (t - z)) <= 4e-321) {
tmp = 0.0 * 1.0;
} else {
tmp = fabs(x) * 1.0;
}
return copysign(1.0, x) * tmp;
}
public static double code(double x, double y, double z, double t) {
double tmp;
if (((Math.abs(x) * (y - z)) / (t - z)) <= 4e-321) {
tmp = 0.0 * 1.0;
} else {
tmp = Math.abs(x) * 1.0;
}
return Math.copySign(1.0, x) * tmp;
}
def code(x, y, z, t): tmp = 0 if ((math.fabs(x) * (y - z)) / (t - z)) <= 4e-321: tmp = 0.0 * 1.0 else: tmp = math.fabs(x) * 1.0 return math.copysign(1.0, x) * tmp
function code(x, y, z, t) tmp = 0.0 if (Float64(Float64(abs(x) * Float64(y - z)) / Float64(t - z)) <= 4e-321) tmp = Float64(0.0 * 1.0); else tmp = Float64(abs(x) * 1.0); end return Float64(copysign(1.0, x) * tmp) end
function tmp_2 = code(x, y, z, t) tmp = 0.0; if (((abs(x) * (y - z)) / (t - z)) <= 4e-321) tmp = 0.0 * 1.0; else tmp = abs(x) * 1.0; end tmp_2 = (sign(x) * abs(1.0)) * tmp; end
code[x_, y_, z_, t_] := N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[N[(N[(N[Abs[x], $MachinePrecision] * N[(y - z), $MachinePrecision]), $MachinePrecision] / N[(t - z), $MachinePrecision]), $MachinePrecision], 4e-321], N[(0.0 * 1.0), $MachinePrecision], N[(N[Abs[x], $MachinePrecision] * 1.0), $MachinePrecision]]), $MachinePrecision]
\mathsf{copysign}\left(1, x\right) \cdot \begin{array}{l}
\mathbf{if}\;\frac{\left|x\right| \cdot \left(y - z\right)}{t - z} \leq 4 \cdot 10^{-321}:\\
\;\;\;\;0 \cdot 1\\
\mathbf{else}:\\
\;\;\;\;\left|x\right| \cdot 1\\
\end{array}
if (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) < 4.001931731314097e-321Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
Taylor expanded in undef-var around zero
Applied rewrites10.8%
if 4.001931731314097e-321 < (/.f64 (*.f64 x (-.f64 y z)) (-.f64 t z)) Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
(FPCore (x y z t) :precision binary64 :pre TRUE (* x 1.0))
double code(double x, double y, double z, double t) {
return x * 1.0;
}
real(8) function code(x, y, z, t)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = x * 1.0d0
end function
public static double code(double x, double y, double z, double t) {
return x * 1.0;
}
def code(x, y, z, t): return x * 1.0
function code(x, y, z, t) return Float64(x * 1.0) end
function tmp = code(x, y, z, t) tmp = x * 1.0; end
code[x_, y_, z_, t_] := N[(x * 1.0), $MachinePrecision]
f(x, y, z, t): x in [-inf, +inf], y in [-inf, +inf], z in [-inf, +inf], t in [-inf, +inf] code: THEORY BEGIN f(x, y, z, t: real): real = x * (1) END code
x \cdot 1
Initial program 84.4%
Applied rewrites97.0%
Taylor expanded in z around inf
Applied rewrites35.4%
herbie shell --seed 2026092
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:precision binary64
(/ (* x (- y z)) (- t z)))