
(FPCore (x y z t a b) :precision binary64 (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp((((y * log(z)) + ((t - 1.0) * log(a))) - b))) / y;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = (x * exp((((y * log(z)) + ((t - 1.0d0) * log(a))) - b))) / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x * Math.exp((((y * Math.log(z)) + ((t - 1.0) * Math.log(a))) - b))) / y;
}
def code(x, y, z, t, a, b): return (x * math.exp((((y * math.log(z)) + ((t - 1.0) * math.log(a))) - b))) / y
function code(x, y, z, t, a, b) return Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) + Float64(Float64(t - 1.0) * log(a))) - b))) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x * exp((((y * log(z)) + ((t - 1.0) * log(a))) - b))) / y; end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x * N[Exp[N[(N[(N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision] + N[(N[(t - 1.0), $MachinePrecision] * N[Log[a], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 18 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b) :precision binary64 (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp((((y * log(z)) + ((t - 1.0) * log(a))) - b))) / y;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = (x * exp((((y * log(z)) + ((t - 1.0d0) * log(a))) - b))) / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x * Math.exp((((y * Math.log(z)) + ((t - 1.0) * Math.log(a))) - b))) / y;
}
def code(x, y, z, t, a, b): return (x * math.exp((((y * math.log(z)) + ((t - 1.0) * math.log(a))) - b))) / y
function code(x, y, z, t, a, b) return Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) + Float64(Float64(t - 1.0) * log(a))) - b))) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x * exp((((y * log(z)) + ((t - 1.0) * log(a))) - b))) / y; end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x * N[Exp[N[(N[(N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision] + N[(N[(t - 1.0), $MachinePrecision] * N[Log[a], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\end{array}
(FPCore (x y z t a b) :precision binary64 (/ (* x (exp (- (+ (* y (log z)) (* (+ t -1.0) (log a))) b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp((((y * log(z)) + ((t + -1.0) * log(a))) - b))) / y;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = (x * exp((((y * log(z)) + ((t + (-1.0d0)) * log(a))) - b))) / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x * Math.exp((((y * Math.log(z)) + ((t + -1.0) * Math.log(a))) - b))) / y;
}
def code(x, y, z, t, a, b): return (x * math.exp((((y * math.log(z)) + ((t + -1.0) * math.log(a))) - b))) / y
function code(x, y, z, t, a, b) return Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) + Float64(Float64(t + -1.0) * log(a))) - b))) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x * exp((((y * log(z)) + ((t + -1.0) * log(a))) - b))) / y; end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x * N[Exp[N[(N[(N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision] + N[(N[(t + -1.0), $MachinePrecision] * N[Log[a], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot e^{\left(y \cdot \log z + \left(t + -1\right) \cdot \log a\right) - b}}{y}
\end{array}
Initial program 97.6%
Final simplification97.6%
(FPCore (x y z t a b) :precision binary64 (if (or (<= (+ t -1.0) -1e+121) (not (<= (+ t -1.0) 1.55e+33))) (* x (/ (pow a t) y)) (/ (* x (exp (- (- (* y (log z)) (log a)) b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (((t + -1.0) <= -1e+121) || !((t + -1.0) <= 1.55e+33)) {
tmp = x * (pow(a, t) / y);
} else {
tmp = (x * exp((((y * log(z)) - log(a)) - b))) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (((t + (-1.0d0)) <= (-1d+121)) .or. (.not. ((t + (-1.0d0)) <= 1.55d+33))) then
tmp = x * ((a ** t) / y)
else
tmp = (x * exp((((y * log(z)) - log(a)) - b))) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (((t + -1.0) <= -1e+121) || !((t + -1.0) <= 1.55e+33)) {
tmp = x * (Math.pow(a, t) / y);
} else {
tmp = (x * Math.exp((((y * Math.log(z)) - Math.log(a)) - b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if ((t + -1.0) <= -1e+121) or not ((t + -1.0) <= 1.55e+33): tmp = x * (math.pow(a, t) / y) else: tmp = (x * math.exp((((y * math.log(z)) - math.log(a)) - b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((Float64(t + -1.0) <= -1e+121) || !(Float64(t + -1.0) <= 1.55e+33)) tmp = Float64(x * Float64((a ^ t) / y)); else tmp = Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) - log(a)) - b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (((t + -1.0) <= -1e+121) || ~(((t + -1.0) <= 1.55e+33))) tmp = x * ((a ^ t) / y); else tmp = (x * exp((((y * log(z)) - log(a)) - b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[N[(t + -1.0), $MachinePrecision], -1e+121], N[Not[LessEqual[N[(t + -1.0), $MachinePrecision], 1.55e+33]], $MachinePrecision]], N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(N[(x * N[Exp[N[(N[(N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision] - N[Log[a], $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t + -1 \leq -1 \cdot 10^{+121} \lor \neg \left(t + -1 \leq 1.55 \cdot 10^{+33}\right):\\
\;\;\;\;x \cdot \frac{{a}^{t}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z - \log a\right) - b}}{y}\\
\end{array}
\end{array}
if (-.f64 t #s(literal 1 binary64)) < -1.00000000000000004e121 or 1.55e33 < (-.f64 t #s(literal 1 binary64)) Initial program 100.0%
Taylor expanded in b around 0 95.4%
exp-sum72.7%
exp-to-pow72.7%
sub-neg72.7%
metadata-eval72.7%
*-commutative72.7%
exp-to-pow72.7%
Simplified72.7%
Taylor expanded in y around 0 87.9%
associate-/l*87.9%
exp-to-pow87.9%
sub-neg87.9%
metadata-eval87.9%
+-commutative87.9%
Simplified87.9%
Taylor expanded in t around inf 87.9%
if -1.00000000000000004e121 < (-.f64 t #s(literal 1 binary64)) < 1.55e33Initial program 95.9%
Taylor expanded in t around 0 91.9%
+-commutative91.9%
mul-1-neg91.9%
unsub-neg91.9%
Simplified91.9%
Final simplification90.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (/ (* x (pow z y)) a) y)))
(if (<= y -3.9e+153)
t_1
(if (<= y 1.62e-304)
(/ (* x (/ (pow a (+ t -1.0)) (exp b))) y)
(if (<= y 1.15e+123)
(* (exp (- (* (+ t -1.0) (log a)) b)) (/ x y))
t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x * pow(z, y)) / a) / y;
double tmp;
if (y <= -3.9e+153) {
tmp = t_1;
} else if (y <= 1.62e-304) {
tmp = (x * (pow(a, (t + -1.0)) / exp(b))) / y;
} else if (y <= 1.15e+123) {
tmp = exp((((t + -1.0) * log(a)) - b)) * (x / y);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = ((x * (z ** y)) / a) / y
if (y <= (-3.9d+153)) then
tmp = t_1
else if (y <= 1.62d-304) then
tmp = (x * ((a ** (t + (-1.0d0))) / exp(b))) / y
else if (y <= 1.15d+123) then
tmp = exp((((t + (-1.0d0)) * log(a)) - b)) * (x / y)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x * Math.pow(z, y)) / a) / y;
double tmp;
if (y <= -3.9e+153) {
tmp = t_1;
} else if (y <= 1.62e-304) {
tmp = (x * (Math.pow(a, (t + -1.0)) / Math.exp(b))) / y;
} else if (y <= 1.15e+123) {
tmp = Math.exp((((t + -1.0) * Math.log(a)) - b)) * (x / y);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = ((x * math.pow(z, y)) / a) / y tmp = 0 if y <= -3.9e+153: tmp = t_1 elif y <= 1.62e-304: tmp = (x * (math.pow(a, (t + -1.0)) / math.exp(b))) / y elif y <= 1.15e+123: tmp = math.exp((((t + -1.0) * math.log(a)) - b)) * (x / y) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(Float64(x * (z ^ y)) / a) / y) tmp = 0.0 if (y <= -3.9e+153) tmp = t_1; elseif (y <= 1.62e-304) tmp = Float64(Float64(x * Float64((a ^ Float64(t + -1.0)) / exp(b))) / y); elseif (y <= 1.15e+123) tmp = Float64(exp(Float64(Float64(Float64(t + -1.0) * log(a)) - b)) * Float64(x / y)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = ((x * (z ^ y)) / a) / y; tmp = 0.0; if (y <= -3.9e+153) tmp = t_1; elseif (y <= 1.62e-304) tmp = (x * ((a ^ (t + -1.0)) / exp(b))) / y; elseif (y <= 1.15e+123) tmp = exp((((t + -1.0) * log(a)) - b)) * (x / y); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]}, If[LessEqual[y, -3.9e+153], t$95$1, If[LessEqual[y, 1.62e-304], N[(N[(x * N[(N[Power[a, N[(t + -1.0), $MachinePrecision]], $MachinePrecision] / N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[y, 1.15e+123], N[(N[Exp[N[(N[(N[(t + -1.0), $MachinePrecision] * N[Log[a], $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{\frac{x \cdot {z}^{y}}{a}}{y}\\
\mathbf{if}\;y \leq -3.9 \cdot 10^{+153}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.62 \cdot 10^{-304}:\\
\;\;\;\;\frac{x \cdot \frac{{a}^{\left(t + -1\right)}}{e^{b}}}{y}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+123}:\\
\;\;\;\;e^{\left(t + -1\right) \cdot \log a - b} \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -3.89999999999999983e153 or 1.14999999999999995e123 < y Initial program 100.0%
Taylor expanded in b around 0 98.6%
exp-sum66.7%
exp-to-pow66.7%
sub-neg66.7%
metadata-eval66.7%
*-commutative66.7%
exp-to-pow66.7%
Simplified66.7%
Taylor expanded in t around 0 90.4%
if -3.89999999999999983e153 < y < 1.61999999999999994e-304Initial program 98.1%
Taylor expanded in y around 0 92.2%
div-exp84.8%
exp-to-pow85.5%
sub-neg85.5%
metadata-eval85.5%
Simplified85.5%
if 1.61999999999999994e-304 < y < 1.14999999999999995e123Initial program 95.0%
*-commutative95.0%
associate-/l*92.1%
associate--l+92.1%
fma-define92.1%
sub-neg92.1%
metadata-eval92.1%
Simplified92.1%
Taylor expanded in y around 0 88.6%
Final simplification88.0%
(FPCore (x y z t a b) :precision binary64 (if (or (<= (+ t -1.0) -1e+121) (not (<= (+ t -1.0) 1.55e+33))) (* x (/ (pow a t) y)) (* x (/ (pow z y) (* a (* y (exp b)))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (((t + -1.0) <= -1e+121) || !((t + -1.0) <= 1.55e+33)) {
tmp = x * (pow(a, t) / y);
} else {
tmp = x * (pow(z, y) / (a * (y * exp(b))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (((t + (-1.0d0)) <= (-1d+121)) .or. (.not. ((t + (-1.0d0)) <= 1.55d+33))) then
tmp = x * ((a ** t) / y)
else
tmp = x * ((z ** y) / (a * (y * exp(b))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (((t + -1.0) <= -1e+121) || !((t + -1.0) <= 1.55e+33)) {
tmp = x * (Math.pow(a, t) / y);
} else {
tmp = x * (Math.pow(z, y) / (a * (y * Math.exp(b))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if ((t + -1.0) <= -1e+121) or not ((t + -1.0) <= 1.55e+33): tmp = x * (math.pow(a, t) / y) else: tmp = x * (math.pow(z, y) / (a * (y * math.exp(b)))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((Float64(t + -1.0) <= -1e+121) || !(Float64(t + -1.0) <= 1.55e+33)) tmp = Float64(x * Float64((a ^ t) / y)); else tmp = Float64(x * Float64((z ^ y) / Float64(a * Float64(y * exp(b))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (((t + -1.0) <= -1e+121) || ~(((t + -1.0) <= 1.55e+33))) tmp = x * ((a ^ t) / y); else tmp = x * ((z ^ y) / (a * (y * exp(b)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[N[(t + -1.0), $MachinePrecision], -1e+121], N[Not[LessEqual[N[(t + -1.0), $MachinePrecision], 1.55e+33]], $MachinePrecision]], N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(x * N[(N[Power[z, y], $MachinePrecision] / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t + -1 \leq -1 \cdot 10^{+121} \lor \neg \left(t + -1 \leq 1.55 \cdot 10^{+33}\right):\\
\;\;\;\;x \cdot \frac{{a}^{t}}{y}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{{z}^{y}}{a \cdot \left(y \cdot e^{b}\right)}\\
\end{array}
\end{array}
if (-.f64 t #s(literal 1 binary64)) < -1.00000000000000004e121 or 1.55e33 < (-.f64 t #s(literal 1 binary64)) Initial program 100.0%
Taylor expanded in b around 0 95.4%
exp-sum72.7%
exp-to-pow72.7%
sub-neg72.7%
metadata-eval72.7%
*-commutative72.7%
exp-to-pow72.7%
Simplified72.7%
Taylor expanded in y around 0 87.9%
associate-/l*87.9%
exp-to-pow87.9%
sub-neg87.9%
metadata-eval87.9%
+-commutative87.9%
Simplified87.9%
Taylor expanded in t around inf 87.9%
if -1.00000000000000004e121 < (-.f64 t #s(literal 1 binary64)) < 1.55e33Initial program 95.9%
associate-/l*97.4%
associate--l+97.4%
exp-sum83.4%
associate-/l*81.4%
*-commutative81.4%
exp-to-pow81.4%
exp-diff78.1%
*-commutative78.1%
exp-to-pow79.1%
sub-neg79.1%
metadata-eval79.1%
Simplified79.1%
Taylor expanded in t around 0 81.1%
Final simplification83.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -4.5e+152) (not (<= y 2.8e+122))) (/ (/ (* x (pow z y)) a) y) (/ (* x (/ (pow a (+ t -1.0)) (exp b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -4.5e+152) || !(y <= 2.8e+122)) {
tmp = ((x * pow(z, y)) / a) / y;
} else {
tmp = (x * (pow(a, (t + -1.0)) / exp(b))) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((y <= (-4.5d+152)) .or. (.not. (y <= 2.8d+122))) then
tmp = ((x * (z ** y)) / a) / y
else
tmp = (x * ((a ** (t + (-1.0d0))) / exp(b))) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -4.5e+152) || !(y <= 2.8e+122)) {
tmp = ((x * Math.pow(z, y)) / a) / y;
} else {
tmp = (x * (Math.pow(a, (t + -1.0)) / Math.exp(b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -4.5e+152) or not (y <= 2.8e+122): tmp = ((x * math.pow(z, y)) / a) / y else: tmp = (x * (math.pow(a, (t + -1.0)) / math.exp(b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -4.5e+152) || !(y <= 2.8e+122)) tmp = Float64(Float64(Float64(x * (z ^ y)) / a) / y); else tmp = Float64(Float64(x * Float64((a ^ Float64(t + -1.0)) / exp(b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -4.5e+152) || ~((y <= 2.8e+122))) tmp = ((x * (z ^ y)) / a) / y; else tmp = (x * ((a ^ (t + -1.0)) / exp(b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -4.5e+152], N[Not[LessEqual[y, 2.8e+122]], $MachinePrecision]], N[(N[(N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision], N[(N[(x * N[(N[Power[a, N[(t + -1.0), $MachinePrecision]], $MachinePrecision] / N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.5 \cdot 10^{+152} \lor \neg \left(y \leq 2.8 \cdot 10^{+122}\right):\\
\;\;\;\;\frac{\frac{x \cdot {z}^{y}}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \frac{{a}^{\left(t + -1\right)}}{e^{b}}}{y}\\
\end{array}
\end{array}
if y < -4.5000000000000001e152 or 2.8e122 < y Initial program 100.0%
Taylor expanded in b around 0 98.6%
exp-sum66.7%
exp-to-pow66.7%
sub-neg66.7%
metadata-eval66.7%
*-commutative66.7%
exp-to-pow66.7%
Simplified66.7%
Taylor expanded in t around 0 90.4%
if -4.5000000000000001e152 < y < 2.8e122Initial program 96.6%
Taylor expanded in y around 0 91.9%
div-exp81.6%
exp-to-pow82.3%
sub-neg82.3%
metadata-eval82.3%
Simplified82.3%
Final simplification84.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (/ (* x (pow z y)) a) y)) (t_2 (* x (/ (pow a t) y))))
(if (<= t -6.2e+53)
t_2
(if (<= t -2.2e-30)
t_1
(if (<= t -7e-307)
(/ x (* a (* y (exp b))))
(if (<= t 1.55e+33) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x * pow(z, y)) / a) / y;
double t_2 = x * (pow(a, t) / y);
double tmp;
if (t <= -6.2e+53) {
tmp = t_2;
} else if (t <= -2.2e-30) {
tmp = t_1;
} else if (t <= -7e-307) {
tmp = x / (a * (y * exp(b)));
} else if (t <= 1.55e+33) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = ((x * (z ** y)) / a) / y
t_2 = x * ((a ** t) / y)
if (t <= (-6.2d+53)) then
tmp = t_2
else if (t <= (-2.2d-30)) then
tmp = t_1
else if (t <= (-7d-307)) then
tmp = x / (a * (y * exp(b)))
else if (t <= 1.55d+33) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = ((x * Math.pow(z, y)) / a) / y;
double t_2 = x * (Math.pow(a, t) / y);
double tmp;
if (t <= -6.2e+53) {
tmp = t_2;
} else if (t <= -2.2e-30) {
tmp = t_1;
} else if (t <= -7e-307) {
tmp = x / (a * (y * Math.exp(b)));
} else if (t <= 1.55e+33) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = ((x * math.pow(z, y)) / a) / y t_2 = x * (math.pow(a, t) / y) tmp = 0 if t <= -6.2e+53: tmp = t_2 elif t <= -2.2e-30: tmp = t_1 elif t <= -7e-307: tmp = x / (a * (y * math.exp(b))) elif t <= 1.55e+33: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(Float64(x * (z ^ y)) / a) / y) t_2 = Float64(x * Float64((a ^ t) / y)) tmp = 0.0 if (t <= -6.2e+53) tmp = t_2; elseif (t <= -2.2e-30) tmp = t_1; elseif (t <= -7e-307) tmp = Float64(x / Float64(a * Float64(y * exp(b)))); elseif (t <= 1.55e+33) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = ((x * (z ^ y)) / a) / y; t_2 = x * ((a ^ t) / y); tmp = 0.0; if (t <= -6.2e+53) tmp = t_2; elseif (t <= -2.2e-30) tmp = t_1; elseif (t <= -7e-307) tmp = x / (a * (y * exp(b))); elseif (t <= 1.55e+33) tmp = t_1; else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -6.2e+53], t$95$2, If[LessEqual[t, -2.2e-30], t$95$1, If[LessEqual[t, -7e-307], N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.55e+33], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{\frac{x \cdot {z}^{y}}{a}}{y}\\
t_2 := x \cdot \frac{{a}^{t}}{y}\\
\mathbf{if}\;t \leq -6.2 \cdot 10^{+53}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -2.2 \cdot 10^{-30}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq -7 \cdot 10^{-307}:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\mathbf{elif}\;t \leq 1.55 \cdot 10^{+33}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -6.20000000000000038e53 or 1.55e33 < t Initial program 100.0%
Taylor expanded in b around 0 95.1%
exp-sum70.9%
exp-to-pow70.9%
sub-neg70.9%
metadata-eval70.9%
*-commutative70.9%
exp-to-pow70.9%
Simplified70.9%
Taylor expanded in y around 0 85.2%
associate-/l*85.2%
exp-to-pow85.2%
sub-neg85.2%
metadata-eval85.2%
+-commutative85.2%
Simplified85.2%
Taylor expanded in t around inf 85.2%
if -6.20000000000000038e53 < t < -2.19999999999999983e-30 or -7.0000000000000004e-307 < t < 1.55e33Initial program 95.8%
Taylor expanded in b around 0 78.6%
exp-sum73.2%
exp-to-pow74.2%
sub-neg74.2%
metadata-eval74.2%
*-commutative74.2%
exp-to-pow74.2%
Simplified74.2%
Taylor expanded in t around 0 76.4%
if -2.19999999999999983e-30 < t < -7.0000000000000004e-307Initial program 94.7%
associate-/l*98.4%
associate--l+98.4%
exp-sum85.1%
associate-/l*85.1%
*-commutative85.1%
exp-to-pow85.1%
exp-diff85.1%
*-commutative85.1%
exp-to-pow86.5%
sub-neg86.5%
metadata-eval86.5%
Simplified86.5%
Taylor expanded in t around 0 86.6%
Taylor expanded in y around 0 84.2%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.85e+118) (* x (/ (pow a t) y)) (if (<= t 180000.0) (/ x (* a (* y (exp b)))) (* x (/ (/ (pow a t) a) y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.85e+118) {
tmp = x * (pow(a, t) / y);
} else if (t <= 180000.0) {
tmp = x / (a * (y * exp(b)));
} else {
tmp = x * ((pow(a, t) / a) / y);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (t <= (-1.85d+118)) then
tmp = x * ((a ** t) / y)
else if (t <= 180000.0d0) then
tmp = x / (a * (y * exp(b)))
else
tmp = x * (((a ** t) / a) / y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.85e+118) {
tmp = x * (Math.pow(a, t) / y);
} else if (t <= 180000.0) {
tmp = x / (a * (y * Math.exp(b)));
} else {
tmp = x * ((Math.pow(a, t) / a) / y);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -1.85e+118: tmp = x * (math.pow(a, t) / y) elif t <= 180000.0: tmp = x / (a * (y * math.exp(b))) else: tmp = x * ((math.pow(a, t) / a) / y) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.85e+118) tmp = Float64(x * Float64((a ^ t) / y)); elseif (t <= 180000.0) tmp = Float64(x / Float64(a * Float64(y * exp(b)))); else tmp = Float64(x * Float64(Float64((a ^ t) / a) / y)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -1.85e+118) tmp = x * ((a ^ t) / y); elseif (t <= 180000.0) tmp = x / (a * (y * exp(b))); else tmp = x * (((a ^ t) / a) / y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.85e+118], N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 180000.0], N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(N[(N[Power[a, t], $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.85 \cdot 10^{+118}:\\
\;\;\;\;x \cdot \frac{{a}^{t}}{y}\\
\mathbf{elif}\;t \leq 180000:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{\frac{{a}^{t}}{a}}{y}\\
\end{array}
\end{array}
if t < -1.84999999999999993e118Initial program 100.0%
Taylor expanded in b around 0 91.4%
exp-sum76.2%
exp-to-pow76.2%
sub-neg76.2%
metadata-eval76.2%
*-commutative76.2%
exp-to-pow76.2%
Simplified76.2%
Taylor expanded in y around 0 85.0%
associate-/l*85.0%
exp-to-pow85.0%
sub-neg85.0%
metadata-eval85.0%
+-commutative85.0%
Simplified85.0%
Taylor expanded in t around inf 85.0%
if -1.84999999999999993e118 < t < 1.8e5Initial program 95.7%
associate-/l*97.3%
associate--l+97.3%
exp-sum84.2%
associate-/l*82.2%
*-commutative82.2%
exp-to-pow82.2%
exp-diff79.4%
*-commutative79.4%
exp-to-pow80.5%
sub-neg80.5%
metadata-eval80.5%
Simplified80.5%
Taylor expanded in t around 0 82.4%
Taylor expanded in y around 0 71.3%
if 1.8e5 < t Initial program 100.0%
Taylor expanded in b around 0 97.0%
exp-sum67.7%
exp-to-pow67.7%
sub-neg67.7%
metadata-eval67.7%
*-commutative67.7%
exp-to-pow67.7%
Simplified67.7%
Taylor expanded in y around 0 86.4%
associate-/l*86.4%
exp-to-pow86.4%
sub-neg86.4%
metadata-eval86.4%
+-commutative86.4%
Simplified86.4%
+-commutative86.4%
unpow-prod-up86.4%
inv-pow86.4%
Applied egg-rr86.4%
associate-*r/86.4%
*-rgt-identity86.4%
Simplified86.4%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -1.85e+118) (not (<= t 1800.0))) (* x (/ (pow a t) y)) (/ x (* a (* y (exp b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -1.85e+118) || !(t <= 1800.0)) {
tmp = x * (pow(a, t) / y);
} else {
tmp = x / (a * (y * exp(b)));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((t <= (-1.85d+118)) .or. (.not. (t <= 1800.0d0))) then
tmp = x * ((a ** t) / y)
else
tmp = x / (a * (y * exp(b)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -1.85e+118) || !(t <= 1800.0)) {
tmp = x * (Math.pow(a, t) / y);
} else {
tmp = x / (a * (y * Math.exp(b)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -1.85e+118) or not (t <= 1800.0): tmp = x * (math.pow(a, t) / y) else: tmp = x / (a * (y * math.exp(b))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -1.85e+118) || !(t <= 1800.0)) tmp = Float64(x * Float64((a ^ t) / y)); else tmp = Float64(x / Float64(a * Float64(y * exp(b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -1.85e+118) || ~((t <= 1800.0))) tmp = x * ((a ^ t) / y); else tmp = x / (a * (y * exp(b))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -1.85e+118], N[Not[LessEqual[t, 1800.0]], $MachinePrecision]], N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.85 \cdot 10^{+118} \lor \neg \left(t \leq 1800\right):\\
\;\;\;\;x \cdot \frac{{a}^{t}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\end{array}
\end{array}
if t < -1.84999999999999993e118 or 1800 < t Initial program 100.0%
Taylor expanded in b around 0 94.7%
exp-sum71.3%
exp-to-pow71.3%
sub-neg71.3%
metadata-eval71.3%
*-commutative71.3%
exp-to-pow71.3%
Simplified71.3%
Taylor expanded in y around 0 85.8%
associate-/l*85.8%
exp-to-pow85.8%
sub-neg85.8%
metadata-eval85.8%
+-commutative85.8%
Simplified85.8%
Taylor expanded in t around inf 85.8%
if -1.84999999999999993e118 < t < 1800Initial program 95.7%
associate-/l*97.3%
associate--l+97.3%
exp-sum84.2%
associate-/l*82.2%
*-commutative82.2%
exp-to-pow82.2%
exp-diff79.4%
*-commutative79.4%
exp-to-pow80.5%
sub-neg80.5%
metadata-eval80.5%
Simplified80.5%
Taylor expanded in t around 0 82.4%
Taylor expanded in y around 0 71.3%
Final simplification77.6%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -1.02e+17) (not (<= t 1.55e+33))) (* x (/ (pow a t) y)) (/ x (* y (exp b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -1.02e+17) || !(t <= 1.55e+33)) {
tmp = x * (pow(a, t) / y);
} else {
tmp = x / (y * exp(b));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((t <= (-1.02d+17)) .or. (.not. (t <= 1.55d+33))) then
tmp = x * ((a ** t) / y)
else
tmp = x / (y * exp(b))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((t <= -1.02e+17) || !(t <= 1.55e+33)) {
tmp = x * (Math.pow(a, t) / y);
} else {
tmp = x / (y * Math.exp(b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (t <= -1.02e+17) or not (t <= 1.55e+33): tmp = x * (math.pow(a, t) / y) else: tmp = x / (y * math.exp(b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((t <= -1.02e+17) || !(t <= 1.55e+33)) tmp = Float64(x * Float64((a ^ t) / y)); else tmp = Float64(x / Float64(y * exp(b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -1.02e+17) || ~((t <= 1.55e+33))) tmp = x * ((a ^ t) / y); else tmp = x / (y * exp(b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[t, -1.02e+17], N[Not[LessEqual[t, 1.55e+33]], $MachinePrecision]], N[(x * N[(N[Power[a, t], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(x / N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.02 \cdot 10^{+17} \lor \neg \left(t \leq 1.55 \cdot 10^{+33}\right):\\
\;\;\;\;x \cdot \frac{{a}^{t}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y \cdot e^{b}}\\
\end{array}
\end{array}
if t < -1.02e17 or 1.55e33 < t Initial program 100.0%
Taylor expanded in b around 0 95.3%
exp-sum71.3%
exp-to-pow71.3%
sub-neg71.3%
metadata-eval71.3%
*-commutative71.3%
exp-to-pow71.3%
Simplified71.3%
Taylor expanded in y around 0 85.0%
associate-/l*85.0%
exp-to-pow85.0%
sub-neg85.0%
metadata-eval85.0%
+-commutative85.0%
Simplified85.0%
Taylor expanded in t around inf 85.0%
if -1.02e17 < t < 1.55e33Initial program 95.3%
*-commutative95.3%
associate-/l*87.3%
associate--l+87.3%
fma-define87.3%
sub-neg87.3%
metadata-eval87.3%
Simplified87.3%
Taylor expanded in b around inf 44.1%
neg-mul-144.1%
Simplified44.1%
exp-neg44.1%
frac-times49.5%
*-un-lft-identity49.5%
*-commutative49.5%
Applied egg-rr49.5%
Final simplification66.8%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -180.0) (not (<= b 7.0))) (/ x (* y (exp b))) (* (/ x y) (/ 1.0 a))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -180.0) || !(b <= 7.0)) {
tmp = x / (y * exp(b));
} else {
tmp = (x / y) * (1.0 / a);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b <= (-180.0d0)) .or. (.not. (b <= 7.0d0))) then
tmp = x / (y * exp(b))
else
tmp = (x / y) * (1.0d0 / a)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -180.0) || !(b <= 7.0)) {
tmp = x / (y * Math.exp(b));
} else {
tmp = (x / y) * (1.0 / a);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -180.0) or not (b <= 7.0): tmp = x / (y * math.exp(b)) else: tmp = (x / y) * (1.0 / a) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -180.0) || !(b <= 7.0)) tmp = Float64(x / Float64(y * exp(b))); else tmp = Float64(Float64(x / y) * Float64(1.0 / a)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -180.0) || ~((b <= 7.0))) tmp = x / (y * exp(b)); else tmp = (x / y) * (1.0 / a); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -180.0], N[Not[LessEqual[b, 7.0]], $MachinePrecision]], N[(x / N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / y), $MachinePrecision] * N[(1.0 / a), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -180 \lor \neg \left(b \leq 7\right):\\
\;\;\;\;\frac{x}{y \cdot e^{b}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y} \cdot \frac{1}{a}\\
\end{array}
\end{array}
if b < -180 or 7 < b Initial program 100.0%
*-commutative100.0%
associate-/l*87.6%
associate--l+87.6%
fma-define87.6%
sub-neg87.6%
metadata-eval87.6%
Simplified87.6%
Taylor expanded in b around inf 65.0%
neg-mul-165.0%
Simplified65.0%
exp-neg65.0%
frac-times74.7%
*-un-lft-identity74.7%
*-commutative74.7%
Applied egg-rr74.7%
if -180 < b < 7Initial program 95.7%
Taylor expanded in b around 0 95.7%
exp-sum83.1%
exp-to-pow84.1%
sub-neg84.1%
metadata-eval84.1%
*-commutative84.1%
exp-to-pow84.1%
Simplified84.1%
Taylor expanded in t around 0 68.6%
associate-/l/66.8%
times-frac63.3%
Applied egg-rr63.3%
Taylor expanded in y around 0 37.7%
Final simplification54.0%
(FPCore (x y z t a b) :precision binary64 (if (<= b -4.5e+44) (/ (* x (+ 1.0 (* b (+ (* b (* b -0.16666666666666666)) -1.0)))) y) (/ (/ x a) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -4.5e+44) {
tmp = (x * (1.0 + (b * ((b * (b * -0.16666666666666666)) + -1.0)))) / y;
} else {
tmp = (x / a) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= (-4.5d+44)) then
tmp = (x * (1.0d0 + (b * ((b * (b * (-0.16666666666666666d0))) + (-1.0d0))))) / y
else
tmp = (x / a) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -4.5e+44) {
tmp = (x * (1.0 + (b * ((b * (b * -0.16666666666666666)) + -1.0)))) / y;
} else {
tmp = (x / a) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -4.5e+44: tmp = (x * (1.0 + (b * ((b * (b * -0.16666666666666666)) + -1.0)))) / y else: tmp = (x / a) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -4.5e+44) tmp = Float64(Float64(x * Float64(1.0 + Float64(b * Float64(Float64(b * Float64(b * -0.16666666666666666)) + -1.0)))) / y); else tmp = Float64(Float64(x / a) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -4.5e+44) tmp = (x * (1.0 + (b * ((b * (b * -0.16666666666666666)) + -1.0)))) / y; else tmp = (x / a) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -4.5e+44], N[(N[(x * N[(1.0 + N[(b * N[(N[(b * N[(b * -0.16666666666666666), $MachinePrecision]), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -4.5 \cdot 10^{+44}:\\
\;\;\;\;\frac{x \cdot \left(1 + b \cdot \left(b \cdot \left(b \cdot -0.16666666666666666\right) + -1\right)\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\end{array}
\end{array}
if b < -4.5e44Initial program 100.0%
*-commutative100.0%
associate-/l*86.0%
associate--l+86.0%
fma-define86.0%
sub-neg86.0%
metadata-eval86.0%
Simplified86.0%
Taylor expanded in b around inf 60.9%
neg-mul-160.9%
Simplified60.9%
Taylor expanded in b around 0 56.5%
Taylor expanded in x around 0 70.3%
Taylor expanded in b around inf 70.3%
*-commutative70.3%
Simplified70.3%
if -4.5e44 < b Initial program 97.1%
Taylor expanded in b around 0 84.3%
exp-sum72.1%
exp-to-pow72.7%
sub-neg72.7%
metadata-eval72.7%
*-commutative72.7%
exp-to-pow72.7%
Simplified72.7%
Taylor expanded in t around 0 58.8%
Taylor expanded in y around 0 32.0%
Final simplification38.4%
(FPCore (x y z t a b) :precision binary64 (if (<= b -7e+50) (/ (* x (+ 1.0 (* b (+ (* b 0.5) -1.0)))) y) (/ (/ x a) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -7e+50) {
tmp = (x * (1.0 + (b * ((b * 0.5) + -1.0)))) / y;
} else {
tmp = (x / a) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= (-7d+50)) then
tmp = (x * (1.0d0 + (b * ((b * 0.5d0) + (-1.0d0))))) / y
else
tmp = (x / a) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -7e+50) {
tmp = (x * (1.0 + (b * ((b * 0.5) + -1.0)))) / y;
} else {
tmp = (x / a) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -7e+50: tmp = (x * (1.0 + (b * ((b * 0.5) + -1.0)))) / y else: tmp = (x / a) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -7e+50) tmp = Float64(Float64(x * Float64(1.0 + Float64(b * Float64(Float64(b * 0.5) + -1.0)))) / y); else tmp = Float64(Float64(x / a) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -7e+50) tmp = (x * (1.0 + (b * ((b * 0.5) + -1.0)))) / y; else tmp = (x / a) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -7e+50], N[(N[(x * N[(1.0 + N[(b * N[(N[(b * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -7 \cdot 10^{+50}:\\
\;\;\;\;\frac{x \cdot \left(1 + b \cdot \left(b \cdot 0.5 + -1\right)\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\end{array}
\end{array}
if b < -7.00000000000000012e50Initial program 100.0%
*-commutative100.0%
associate-/l*86.0%
associate--l+86.0%
fma-define86.0%
sub-neg86.0%
metadata-eval86.0%
Simplified86.0%
Taylor expanded in b around inf 60.9%
neg-mul-160.9%
Simplified60.9%
Taylor expanded in b around 0 56.5%
Taylor expanded in x around 0 70.3%
Taylor expanded in b around 0 63.7%
*-commutative63.7%
Simplified63.7%
if -7.00000000000000012e50 < b Initial program 97.1%
Taylor expanded in b around 0 84.3%
exp-sum72.1%
exp-to-pow72.7%
sub-neg72.7%
metadata-eval72.7%
*-commutative72.7%
exp-to-pow72.7%
Simplified72.7%
Taylor expanded in t around 0 58.8%
Taylor expanded in y around 0 32.0%
Final simplification37.3%
(FPCore (x y z t a b) :precision binary64 (if (<= b -3.5e+45) (* x (/ (+ 1.0 (* b (+ (* b 0.5) -1.0))) y)) (/ (/ x a) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -3.5e+45) {
tmp = x * ((1.0 + (b * ((b * 0.5) + -1.0))) / y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= (-3.5d+45)) then
tmp = x * ((1.0d0 + (b * ((b * 0.5d0) + (-1.0d0)))) / y)
else
tmp = (x / a) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -3.5e+45) {
tmp = x * ((1.0 + (b * ((b * 0.5) + -1.0))) / y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -3.5e+45: tmp = x * ((1.0 + (b * ((b * 0.5) + -1.0))) / y) else: tmp = (x / a) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -3.5e+45) tmp = Float64(x * Float64(Float64(1.0 + Float64(b * Float64(Float64(b * 0.5) + -1.0))) / y)); else tmp = Float64(Float64(x / a) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -3.5e+45) tmp = x * ((1.0 + (b * ((b * 0.5) + -1.0))) / y); else tmp = (x / a) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -3.5e+45], N[(x * N[(N[(1.0 + N[(b * N[(N[(b * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3.5 \cdot 10^{+45}:\\
\;\;\;\;x \cdot \frac{1 + b \cdot \left(b \cdot 0.5 + -1\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\end{array}
\end{array}
if b < -3.50000000000000023e45Initial program 100.0%
*-commutative100.0%
associate-/l*86.0%
associate--l+86.0%
fma-define86.0%
sub-neg86.0%
metadata-eval86.0%
Simplified86.0%
Taylor expanded in b around inf 60.9%
neg-mul-160.9%
Simplified60.9%
Taylor expanded in b around inf 70.2%
associate-/l*70.2%
Simplified70.2%
Taylor expanded in b around 0 61.5%
if -3.50000000000000023e45 < b Initial program 97.1%
Taylor expanded in b around 0 84.3%
exp-sum72.1%
exp-to-pow72.7%
sub-neg72.7%
metadata-eval72.7%
*-commutative72.7%
exp-to-pow72.7%
Simplified72.7%
Taylor expanded in t around 0 58.8%
Taylor expanded in y around 0 32.0%
Final simplification36.9%
(FPCore (x y z t a b) :precision binary64 (if (<= b -2.75e+38) (* x (/ (- 1.0 b) y)) (/ (/ x a) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -2.75e+38) {
tmp = x * ((1.0 - b) / y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= (-2.75d+38)) then
tmp = x * ((1.0d0 - b) / y)
else
tmp = (x / a) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -2.75e+38) {
tmp = x * ((1.0 - b) / y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -2.75e+38: tmp = x * ((1.0 - b) / y) else: tmp = (x / a) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -2.75e+38) tmp = Float64(x * Float64(Float64(1.0 - b) / y)); else tmp = Float64(Float64(x / a) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -2.75e+38) tmp = x * ((1.0 - b) / y); else tmp = (x / a) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -2.75e+38], N[(x * N[(N[(1.0 - b), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -2.75 \cdot 10^{+38}:\\
\;\;\;\;x \cdot \frac{1 - b}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\end{array}
\end{array}
if b < -2.7500000000000002e38Initial program 100.0%
*-commutative100.0%
associate-/l*86.4%
associate--l+86.4%
fma-define86.4%
sub-neg86.4%
metadata-eval86.4%
Simplified86.4%
Taylor expanded in b around inf 59.5%
neg-mul-159.5%
Simplified59.5%
Taylor expanded in b around inf 68.7%
associate-/l*68.7%
Simplified68.7%
Taylor expanded in b around 0 34.0%
neg-mul-134.0%
unsub-neg34.0%
Simplified34.0%
if -2.7500000000000002e38 < b Initial program 97.1%
Taylor expanded in b around 0 84.2%
exp-sum71.9%
exp-to-pow72.6%
sub-neg72.6%
metadata-eval72.6%
*-commutative72.6%
exp-to-pow72.6%
Simplified72.6%
Taylor expanded in t around 0 58.6%
Taylor expanded in y around 0 32.1%
(FPCore (x y z t a b) :precision binary64 (if (<= b -6.1e+41) (* b (/ x (- y))) (/ (/ x a) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -6.1e+41) {
tmp = b * (x / -y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= (-6.1d+41)) then
tmp = b * (x / -y)
else
tmp = (x / a) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -6.1e+41) {
tmp = b * (x / -y);
} else {
tmp = (x / a) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -6.1e+41: tmp = b * (x / -y) else: tmp = (x / a) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -6.1e+41) tmp = Float64(b * Float64(x / Float64(-y))); else tmp = Float64(Float64(x / a) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -6.1e+41) tmp = b * (x / -y); else tmp = (x / a) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -6.1e+41], N[(b * N[(x / (-y)), $MachinePrecision]), $MachinePrecision], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -6.1 \cdot 10^{+41}:\\
\;\;\;\;b \cdot \frac{x}{-y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\end{array}
\end{array}
if b < -6.09999999999999998e41Initial program 100.0%
*-commutative100.0%
associate-/l*86.4%
associate--l+86.4%
fma-define86.4%
sub-neg86.4%
metadata-eval86.4%
Simplified86.4%
Taylor expanded in b around inf 59.5%
neg-mul-159.5%
Simplified59.5%
Taylor expanded in b around 0 33.9%
neg-mul-134.0%
unsub-neg34.0%
Simplified33.9%
Taylor expanded in b around inf 31.8%
mul-1-neg31.8%
associate-/l*33.9%
distribute-lft-neg-in33.9%
Simplified33.9%
if -6.09999999999999998e41 < b Initial program 97.1%
Taylor expanded in b around 0 84.2%
exp-sum71.9%
exp-to-pow72.6%
sub-neg72.6%
metadata-eval72.6%
*-commutative72.6%
exp-to-pow72.6%
Simplified72.6%
Taylor expanded in t around 0 58.6%
Taylor expanded in y around 0 32.1%
Final simplification32.4%
(FPCore (x y z t a b) :precision binary64 (if (<= a 5.5e+135) (/ (/ x a) y) (/ x (* y a))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= 5.5e+135) {
tmp = (x / a) / y;
} else {
tmp = x / (y * a);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= 5.5d+135) then
tmp = (x / a) / y
else
tmp = x / (y * a)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= 5.5e+135) {
tmp = (x / a) / y;
} else {
tmp = x / (y * a);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= 5.5e+135: tmp = (x / a) / y else: tmp = x / (y * a) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= 5.5e+135) tmp = Float64(Float64(x / a) / y); else tmp = Float64(x / Float64(y * a)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (a <= 5.5e+135) tmp = (x / a) / y; else tmp = x / (y * a); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, 5.5e+135], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(y * a), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq 5.5 \cdot 10^{+135}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y \cdot a}\\
\end{array}
\end{array}
if a < 5.4999999999999999e135Initial program 99.4%
Taylor expanded in b around 0 84.6%
exp-sum73.5%
exp-to-pow74.0%
sub-neg74.0%
metadata-eval74.0%
*-commutative74.0%
exp-to-pow74.0%
Simplified74.0%
Taylor expanded in t around 0 61.7%
Taylor expanded in y around 0 31.1%
if 5.4999999999999999e135 < a Initial program 94.0%
Taylor expanded in b around 0 75.7%
exp-sum58.0%
exp-to-pow58.6%
sub-neg58.6%
metadata-eval58.6%
*-commutative58.6%
exp-to-pow58.6%
Simplified58.6%
Taylor expanded in t around 0 46.5%
Taylor expanded in y around 0 34.4%
Final simplification32.2%
(FPCore (x y z t a b) :precision binary64 (/ x (* y a)))
double code(double x, double y, double z, double t, double a, double b) {
return x / (y * a);
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x / (y * a)
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x / (y * a);
}
def code(x, y, z, t, a, b): return x / (y * a)
function code(x, y, z, t, a, b) return Float64(x / Float64(y * a)) end
function tmp = code(x, y, z, t, a, b) tmp = x / (y * a); end
code[x_, y_, z_, t_, a_, b_] := N[(x / N[(y * a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{y \cdot a}
\end{array}
Initial program 97.6%
Taylor expanded in b around 0 81.6%
exp-sum68.3%
exp-to-pow68.9%
sub-neg68.9%
metadata-eval68.9%
*-commutative68.9%
exp-to-pow68.9%
Simplified68.9%
Taylor expanded in t around 0 56.7%
Taylor expanded in y around 0 30.4%
Final simplification30.4%
(FPCore (x y z t a b) :precision binary64 (/ x y))
double code(double x, double y, double z, double t, double a, double b) {
return x / y;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = x / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x / y;
}
def code(x, y, z, t, a, b): return x / y
function code(x, y, z, t, a, b) return Float64(x / y) end
function tmp = code(x, y, z, t, a, b) tmp = x / y; end
code[x_, y_, z_, t_, a_, b_] := N[(x / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{y}
\end{array}
Initial program 97.6%
*-commutative97.6%
associate-/l*86.1%
associate--l+86.1%
fma-define86.1%
sub-neg86.1%
metadata-eval86.1%
Simplified86.1%
Taylor expanded in b around inf 38.7%
neg-mul-138.7%
Simplified38.7%
Taylor expanded in b around 0 16.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (pow a (- t 1.0)))
(t_2 (/ (* x (/ t_1 y)) (- (+ b 1.0) (* y (log z))))))
(if (< t -0.8845848504127471)
t_2
(if (< t 852031.2288374073)
(/ (* (/ x y) t_1) (exp (- b (* (log z) y))))
t_2))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = pow(a, (t - 1.0));
double t_2 = (x * (t_1 / y)) / ((b + 1.0) - (y * log(z)));
double tmp;
if (t < -0.8845848504127471) {
tmp = t_2;
} else if (t < 852031.2288374073) {
tmp = ((x / y) * t_1) / exp((b - (log(z) * y)));
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = a ** (t - 1.0d0)
t_2 = (x * (t_1 / y)) / ((b + 1.0d0) - (y * log(z)))
if (t < (-0.8845848504127471d0)) then
tmp = t_2
else if (t < 852031.2288374073d0) then
tmp = ((x / y) * t_1) / exp((b - (log(z) * y)))
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = Math.pow(a, (t - 1.0));
double t_2 = (x * (t_1 / y)) / ((b + 1.0) - (y * Math.log(z)));
double tmp;
if (t < -0.8845848504127471) {
tmp = t_2;
} else if (t < 852031.2288374073) {
tmp = ((x / y) * t_1) / Math.exp((b - (Math.log(z) * y)));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = math.pow(a, (t - 1.0)) t_2 = (x * (t_1 / y)) / ((b + 1.0) - (y * math.log(z))) tmp = 0 if t < -0.8845848504127471: tmp = t_2 elif t < 852031.2288374073: tmp = ((x / y) * t_1) / math.exp((b - (math.log(z) * y))) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = a ^ Float64(t - 1.0) t_2 = Float64(Float64(x * Float64(t_1 / y)) / Float64(Float64(b + 1.0) - Float64(y * log(z)))) tmp = 0.0 if (t < -0.8845848504127471) tmp = t_2; elseif (t < 852031.2288374073) tmp = Float64(Float64(Float64(x / y) * t_1) / exp(Float64(b - Float64(log(z) * y)))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a ^ (t - 1.0); t_2 = (x * (t_1 / y)) / ((b + 1.0) - (y * log(z))); tmp = 0.0; if (t < -0.8845848504127471) tmp = t_2; elseif (t < 852031.2288374073) tmp = ((x / y) * t_1) / exp((b - (log(z) * y))); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[Power[a, N[(t - 1.0), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[(x * N[(t$95$1 / y), $MachinePrecision]), $MachinePrecision] / N[(N[(b + 1.0), $MachinePrecision] - N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[t, -0.8845848504127471], t$95$2, If[Less[t, 852031.2288374073], N[(N[(N[(x / y), $MachinePrecision] * t$95$1), $MachinePrecision] / N[Exp[N[(b - N[(N[Log[z], $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], t$95$2]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := {a}^{\left(t - 1\right)}\\
t_2 := \frac{x \cdot \frac{t\_1}{y}}{\left(b + 1\right) - y \cdot \log z}\\
\mathbf{if}\;t < -0.8845848504127471:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t < 852031.2288374073:\\
\;\;\;\;\frac{\frac{x}{y} \cdot t\_1}{e^{b - \log z \cdot y}}\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
herbie shell --seed 2024181
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:alt
(! :herbie-platform default (if (< t -8845848504127471/10000000000000000) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 8520312288374073/10000000000) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))