
(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 32 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)) (* (log a) (+ t -1.0))) b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp((((y * log(z)) + (log(a) * (t + -1.0))) - 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)) + (log(a) * (t + (-1.0d0)))) - 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)) + (Math.log(a) * (t + -1.0))) - b))) / y;
}
def code(x, y, z, t, a, b): return (x * math.exp((((y * math.log(z)) + (math.log(a) * (t + -1.0))) - b))) / y
function code(x, y, z, t, a, b) return Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) + Float64(log(a) * Float64(t + -1.0))) - b))) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x * exp((((y * log(z)) + (log(a) * (t + -1.0))) - 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[Log[a], $MachinePrecision] * N[(t + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{x \cdot e^{\left(y \cdot \log z + \log a \cdot \left(t + -1\right)\right) - b}}{y}
\end{array}
Initial program 99.0%
Final simplification99.0%
(FPCore (x y z t a b)
:precision binary64
(if (or (<= y -2.6e+149)
(and (not (<= y 2e+54)) (or (<= y 1.25e+87) (not (<= y 2e+222)))))
(* x (/ (/ (pow z y) a) y))
(/ (* x (exp (- (* (log a) (+ t -1.0)) b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -2.6e+149) || (!(y <= 2e+54) && ((y <= 1.25e+87) || !(y <= 2e+222)))) {
tmp = x * ((pow(z, y) / a) / y);
} else {
tmp = (x * exp(((log(a) * (t + -1.0)) - 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 <= (-2.6d+149)) .or. (.not. (y <= 2d+54)) .and. (y <= 1.25d+87) .or. (.not. (y <= 2d+222))) then
tmp = x * (((z ** y) / a) / y)
else
tmp = (x * exp(((log(a) * (t + (-1.0d0))) - 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 <= -2.6e+149) || (!(y <= 2e+54) && ((y <= 1.25e+87) || !(y <= 2e+222)))) {
tmp = x * ((Math.pow(z, y) / a) / y);
} else {
tmp = (x * Math.exp(((Math.log(a) * (t + -1.0)) - b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -2.6e+149) or (not (y <= 2e+54) and ((y <= 1.25e+87) or not (y <= 2e+222))): tmp = x * ((math.pow(z, y) / a) / y) else: tmp = (x * math.exp(((math.log(a) * (t + -1.0)) - b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -2.6e+149) || (!(y <= 2e+54) && ((y <= 1.25e+87) || !(y <= 2e+222)))) tmp = Float64(x * Float64(Float64((z ^ y) / a) / y)); else tmp = Float64(Float64(x * exp(Float64(Float64(log(a) * Float64(t + -1.0)) - b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -2.6e+149) || (~((y <= 2e+54)) && ((y <= 1.25e+87) || ~((y <= 2e+222))))) tmp = x * (((z ^ y) / a) / y); else tmp = (x * exp(((log(a) * (t + -1.0)) - b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -2.6e+149], And[N[Not[LessEqual[y, 2e+54]], $MachinePrecision], Or[LessEqual[y, 1.25e+87], N[Not[LessEqual[y, 2e+222]], $MachinePrecision]]]], N[(x * N[(N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], N[(N[(x * N[Exp[N[(N[(N[Log[a], $MachinePrecision] * N[(t + -1.0), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.6 \cdot 10^{+149} \lor \neg \left(y \leq 2 \cdot 10^{+54}\right) \land \left(y \leq 1.25 \cdot 10^{+87} \lor \neg \left(y \leq 2 \cdot 10^{+222}\right)\right):\\
\;\;\;\;x \cdot \frac{\frac{{z}^{y}}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot e^{\log a \cdot \left(t + -1\right) - b}}{y}\\
\end{array}
\end{array}
if y < -2.59999999999999979e149 or 2.0000000000000002e54 < y < 1.24999999999999995e87 or 2.0000000000000001e222 < y Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum58.9%
associate-/l*57.1%
*-commutative57.1%
exp-to-pow57.1%
exp-diff57.1%
*-commutative57.1%
exp-to-pow57.1%
sub-neg57.1%
metadata-eval57.1%
Simplified57.1%
Taylor expanded in t around 0 73.3%
associate-/r*78.6%
Simplified78.6%
Taylor expanded in b around 0 93.0%
if -2.59999999999999979e149 < y < 2.0000000000000002e54 or 1.24999999999999995e87 < y < 2.0000000000000001e222Initial program 98.8%
Taylor expanded in y around 0 93.0%
Final simplification93.0%
(FPCore (x y z t a b) :precision binary64 (if (or (<= t -7800000000000.0) (not (<= t 6.8e+22))) (/ (* x (pow a (+ t -1.0))) 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 <= -7800000000000.0) || !(t <= 6.8e+22)) {
tmp = (x * pow(a, (t + -1.0))) / 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 <= (-7800000000000.0d0)) .or. (.not. (t <= 6.8d+22))) then
tmp = (x * (a ** (t + (-1.0d0)))) / 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 <= -7800000000000.0) || !(t <= 6.8e+22)) {
tmp = (x * Math.pow(a, (t + -1.0))) / 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 <= -7800000000000.0) or not (t <= 6.8e+22): tmp = (x * math.pow(a, (t + -1.0))) / 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 ((t <= -7800000000000.0) || !(t <= 6.8e+22)) tmp = Float64(Float64(x * (a ^ Float64(t + -1.0))) / y); else tmp = Float64(x * Float64(Float64((z ^ y) / a) / Float64(y * exp(b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((t <= -7800000000000.0) || ~((t <= 6.8e+22))) tmp = (x * (a ^ (t + -1.0))) / 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[t, -7800000000000.0], N[Not[LessEqual[t, 6.8e+22]], $MachinePrecision]], N[(N[(x * N[Power[a, N[(t + -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(x * N[(N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision] / N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -7800000000000 \lor \neg \left(t \leq 6.8 \cdot 10^{+22}\right):\\
\;\;\;\;\frac{x \cdot {a}^{\left(t + -1\right)}}{y}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{\frac{{z}^{y}}{a}}{y \cdot e^{b}}\\
\end{array}
\end{array}
if t < -7.8e12 or 6.8e22 < t Initial program 100.0%
Taylor expanded in y around 0 88.8%
Taylor expanded in b around 0 85.6%
*-commutative85.6%
exp-to-pow85.6%
sub-neg85.6%
metadata-eval85.6%
+-commutative85.6%
Simplified85.6%
if -7.8e12 < t < 6.8e22Initial program 98.1%
associate-/l*97.5%
associate--l+97.5%
exp-sum85.5%
associate-/l*84.0%
*-commutative84.0%
exp-to-pow84.0%
exp-diff81.7%
*-commutative81.7%
exp-to-pow83.4%
sub-neg83.4%
metadata-eval83.4%
Simplified83.4%
Taylor expanded in t around 0 85.7%
associate-/r*87.9%
Simplified87.9%
Final simplification86.8%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -4000.0) (not (<= y 1.8e+51))) (* 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 <= -4000.0) || !(y <= 1.8e+51)) {
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 <= (-4000.0d0)) .or. (.not. (y <= 1.8d+51))) 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 <= -4000.0) || !(y <= 1.8e+51)) {
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 <= -4000.0) or not (y <= 1.8e+51): 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 <= -4000.0) || !(y <= 1.8e+51)) tmp = Float64(x * Float64(Float64((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 <= -4000.0) || ~((y <= 1.8e+51))) 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, -4000.0], N[Not[LessEqual[y, 1.8e+51]], $MachinePrecision]], N[(x * N[(N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]), $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 -4000 \lor \neg \left(y \leq 1.8 \cdot 10^{+51}\right):\\
\;\;\;\;x \cdot \frac{\frac{{z}^{y}}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \frac{{a}^{\left(t + -1\right)}}{e^{b}}}{y}\\
\end{array}
\end{array}
if y < -4e3 or 1.80000000000000005e51 < y Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum59.6%
associate-/l*57.7%
*-commutative57.7%
exp-to-pow57.7%
exp-diff54.8%
*-commutative54.8%
exp-to-pow54.8%
sub-neg54.8%
metadata-eval54.8%
Simplified54.8%
Taylor expanded in t around 0 66.5%
associate-/r*71.3%
Simplified71.3%
Taylor expanded in b around 0 80.1%
if -4e3 < y < 1.80000000000000005e51Initial program 98.4%
Taylor expanded in y around 0 97.1%
div-exp91.2%
exp-to-pow92.5%
sub-neg92.5%
metadata-eval92.5%
Simplified92.5%
Final simplification87.5%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (/ (* x (pow a (+ t -1.0))) y)) (t_2 (/ x (* a (* y (exp b))))))
(if (<= b -17000000000.0)
t_2
(if (<= b -4e-18)
t_1
(if (<= b 2.9e-256)
(/ (* x (/ (pow z y) a)) y)
(if (<= b 34000000000.0) t_1 t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (x * pow(a, (t + -1.0))) / y;
double t_2 = x / (a * (y * exp(b)));
double tmp;
if (b <= -17000000000.0) {
tmp = t_2;
} else if (b <= -4e-18) {
tmp = t_1;
} else if (b <= 2.9e-256) {
tmp = (x * (pow(z, y) / a)) / y;
} else if (b <= 34000000000.0) {
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 * (a ** (t + (-1.0d0)))) / y
t_2 = x / (a * (y * exp(b)))
if (b <= (-17000000000.0d0)) then
tmp = t_2
else if (b <= (-4d-18)) then
tmp = t_1
else if (b <= 2.9d-256) then
tmp = (x * ((z ** y) / a)) / y
else if (b <= 34000000000.0d0) 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(a, (t + -1.0))) / y;
double t_2 = x / (a * (y * Math.exp(b)));
double tmp;
if (b <= -17000000000.0) {
tmp = t_2;
} else if (b <= -4e-18) {
tmp = t_1;
} else if (b <= 2.9e-256) {
tmp = (x * (Math.pow(z, y) / a)) / y;
} else if (b <= 34000000000.0) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (x * math.pow(a, (t + -1.0))) / y t_2 = x / (a * (y * math.exp(b))) tmp = 0 if b <= -17000000000.0: tmp = t_2 elif b <= -4e-18: tmp = t_1 elif b <= 2.9e-256: tmp = (x * (math.pow(z, y) / a)) / y elif b <= 34000000000.0: tmp = t_1 else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(x * (a ^ Float64(t + -1.0))) / y) t_2 = Float64(x / Float64(a * Float64(y * exp(b)))) tmp = 0.0 if (b <= -17000000000.0) tmp = t_2; elseif (b <= -4e-18) tmp = t_1; elseif (b <= 2.9e-256) tmp = Float64(Float64(x * Float64((z ^ y) / a)) / y); elseif (b <= 34000000000.0) tmp = t_1; else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (x * (a ^ (t + -1.0))) / y; t_2 = x / (a * (y * exp(b))); tmp = 0.0; if (b <= -17000000000.0) tmp = t_2; elseif (b <= -4e-18) tmp = t_1; elseif (b <= 2.9e-256) tmp = (x * ((z ^ y) / a)) / y; elseif (b <= 34000000000.0) 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[(x * N[Power[a, N[(t + -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]}, Block[{t$95$2 = N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -17000000000.0], t$95$2, If[LessEqual[b, -4e-18], t$95$1, If[LessEqual[b, 2.9e-256], N[(N[(x * N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 34000000000.0], t$95$1, t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x \cdot {a}^{\left(t + -1\right)}}{y}\\
t_2 := \frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\mathbf{if}\;b \leq -17000000000:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;b \leq -4 \cdot 10^{-18}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 2.9 \cdot 10^{-256}:\\
\;\;\;\;\frac{x \cdot \frac{{z}^{y}}{a}}{y}\\
\mathbf{elif}\;b \leq 34000000000:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if b < -1.7e10 or 3.4e10 < b Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum73.8%
associate-/l*73.8%
*-commutative73.8%
exp-to-pow73.8%
exp-diff62.6%
*-commutative62.6%
exp-to-pow62.6%
sub-neg62.6%
metadata-eval62.6%
Simplified62.6%
Taylor expanded in t around 0 72.0%
associate-/r*72.0%
Simplified72.0%
Taylor expanded in y around 0 89.0%
if -1.7e10 < b < -4.0000000000000003e-18 or 2.89999999999999971e-256 < b < 3.4e10Initial program 98.3%
Taylor expanded in y around 0 80.7%
Taylor expanded in b around 0 80.1%
*-commutative80.1%
exp-to-pow81.6%
sub-neg81.6%
metadata-eval81.6%
+-commutative81.6%
Simplified81.6%
if -4.0000000000000003e-18 < b < 2.89999999999999971e-256Initial program 98.4%
Taylor expanded in b around 0 98.4%
exp-sum81.8%
*-commutative81.8%
exp-to-pow81.8%
exp-to-pow83.2%
sub-neg83.2%
metadata-eval83.2%
Simplified83.2%
Taylor expanded in t around 0 81.0%
associate-*r/81.0%
Simplified81.0%
Final simplification84.5%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -3.6e+23) (not (<= b 5700000000.0))) (/ x (* a (* y (exp b)))) (* x (/ (/ (pow z y) a) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -3.6e+23) || !(b <= 5700000000.0)) {
tmp = x / (a * (y * exp(b)));
} else {
tmp = x * ((pow(z, y) / 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.6d+23)) .or. (.not. (b <= 5700000000.0d0))) then
tmp = x / (a * (y * exp(b)))
else
tmp = x * (((z ** y) / 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.6e+23) || !(b <= 5700000000.0)) {
tmp = x / (a * (y * Math.exp(b)));
} else {
tmp = x * ((Math.pow(z, y) / a) / y);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -3.6e+23) or not (b <= 5700000000.0): tmp = x / (a * (y * math.exp(b))) else: tmp = x * ((math.pow(z, y) / a) / y) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -3.6e+23) || !(b <= 5700000000.0)) tmp = Float64(x / Float64(a * Float64(y * exp(b)))); else tmp = Float64(x * Float64(Float64((z ^ y) / a) / y)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -3.6e+23) || ~((b <= 5700000000.0))) tmp = x / (a * (y * exp(b))); else tmp = x * (((z ^ y) / a) / y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -3.6e+23], N[Not[LessEqual[b, 5700000000.0]], $MachinePrecision]], N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3.6 \cdot 10^{+23} \lor \neg \left(b \leq 5700000000\right):\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{\frac{{z}^{y}}{a}}{y}\\
\end{array}
\end{array}
if b < -3.5999999999999998e23 or 5.7e9 < b Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum74.0%
associate-/l*74.0%
*-commutative74.0%
exp-to-pow74.0%
exp-diff63.5%
*-commutative63.5%
exp-to-pow63.5%
sub-neg63.5%
metadata-eval63.5%
Simplified63.5%
Taylor expanded in t around 0 72.2%
associate-/r*72.2%
Simplified72.2%
Taylor expanded in y around 0 89.6%
if -3.5999999999999998e23 < b < 5.7e9Initial program 98.4%
associate-/l*97.8%
associate--l+97.8%
exp-sum84.0%
associate-/l*82.7%
*-commutative82.7%
exp-to-pow82.7%
exp-diff82.0%
*-commutative82.0%
exp-to-pow83.5%
sub-neg83.5%
metadata-eval83.5%
Simplified83.5%
Taylor expanded in t around 0 66.6%
associate-/r*69.9%
Simplified69.9%
Taylor expanded in b around 0 70.2%
Final simplification78.1%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -1.7e+25) (not (<= b 3200000000.0))) (/ x (* a (* y (exp b)))) (/ (* x (/ (pow z y) a)) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -1.7e+25) || !(b <= 3200000000.0)) {
tmp = x / (a * (y * exp(b)));
} else {
tmp = (x * (pow(z, y) / 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 <= (-1.7d+25)) .or. (.not. (b <= 3200000000.0d0))) then
tmp = x / (a * (y * exp(b)))
else
tmp = (x * ((z ** y) / 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 <= -1.7e+25) || !(b <= 3200000000.0)) {
tmp = x / (a * (y * Math.exp(b)));
} else {
tmp = (x * (Math.pow(z, y) / a)) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -1.7e+25) or not (b <= 3200000000.0): tmp = x / (a * (y * math.exp(b))) else: tmp = (x * (math.pow(z, y) / a)) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -1.7e+25) || !(b <= 3200000000.0)) tmp = Float64(x / Float64(a * Float64(y * exp(b)))); else tmp = Float64(Float64(x * Float64((z ^ y) / a)) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -1.7e+25) || ~((b <= 3200000000.0))) tmp = x / (a * (y * exp(b))); else tmp = (x * ((z ^ y) / a)) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -1.7e+25], N[Not[LessEqual[b, 3200000000.0]], $MachinePrecision]], N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x * N[(N[Power[z, y], $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.7 \cdot 10^{+25} \lor \neg \left(b \leq 3200000000\right):\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot e^{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \frac{{z}^{y}}{a}}{y}\\
\end{array}
\end{array}
if b < -1.69999999999999992e25 or 3.2e9 < b Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum74.0%
associate-/l*74.0%
*-commutative74.0%
exp-to-pow74.0%
exp-diff63.5%
*-commutative63.5%
exp-to-pow63.5%
sub-neg63.5%
metadata-eval63.5%
Simplified63.5%
Taylor expanded in t around 0 72.2%
associate-/r*72.2%
Simplified72.2%
Taylor expanded in y around 0 89.6%
if -1.69999999999999992e25 < b < 3.2e9Initial program 98.4%
Taylor expanded in b around 0 97.4%
exp-sum84.9%
*-commutative84.9%
exp-to-pow84.9%
exp-to-pow86.4%
sub-neg86.4%
metadata-eval86.4%
Simplified86.4%
Taylor expanded in t around 0 72.1%
associate-*r/72.1%
Simplified72.1%
Final simplification79.2%
(FPCore (x y z t a b) :precision binary64 (/ x (* a (* y (exp b)))))
double code(double x, double y, double z, double t, double a, double b) {
return x / (a * (y * exp(b)));
}
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 / (a * (y * exp(b)))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x / (a * (y * Math.exp(b)));
}
def code(x, y, z, t, a, b): return x / (a * (y * math.exp(b)))
function code(x, y, z, t, a, b) return Float64(x / Float64(a * Float64(y * exp(b)))) end
function tmp = code(x, y, z, t, a, b) tmp = x / (a * (y * exp(b))); end
code[x_, y_, z_, t_, a_, b_] := N[(x / N[(a * N[(y * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{a \cdot \left(y \cdot e^{b}\right)}
\end{array}
Initial program 99.0%
associate-/l*98.7%
associate--l+98.7%
exp-sum80.0%
associate-/l*79.2%
*-commutative79.2%
exp-to-pow79.2%
exp-diff74.5%
*-commutative74.5%
exp-to-pow75.3%
sub-neg75.3%
metadata-eval75.3%
Simplified75.3%
Taylor expanded in t around 0 68.9%
associate-/r*70.8%
Simplified70.8%
Taylor expanded in y around 0 60.4%
Final simplification60.4%
(FPCore (x y z t a b) :precision binary64 (/ (/ x (* a (exp b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x / (a * exp(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 / (a * exp(b))) / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x / (a * Math.exp(b))) / y;
}
def code(x, y, z, t, a, b): return (x / (a * math.exp(b))) / y
function code(x, y, z, t, a, b) return Float64(Float64(x / Float64(a * exp(b))) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x / (a * exp(b))) / y; end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x / N[(a * N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{x}{a \cdot e^{b}}}{y}
\end{array}
Initial program 99.0%
Taylor expanded in y around 0 82.3%
div-exp75.6%
exp-to-pow76.4%
sub-neg76.4%
metadata-eval76.4%
Simplified76.4%
Taylor expanded in t around 0 61.1%
Final simplification61.1%
(FPCore (x y z t a b)
:precision binary64
(if (<= b -8.5e-233)
(/ (- (/ x a) (* b (+ (/ x a) (* b (- (/ (* x b) a) (/ x a)))))) y)
(if (<= b 3.15e-232)
(/ x (* a (+ y (* b (* b (+ (* y 0.5) (/ y b)))))))
(if (<= b 1.65e-174)
(/ (/ (+ (/ x a) (/ (- (/ x (* a b)) (/ x a)) b)) b) y)
(/
(/
x
(+ a (* b (+ a (* b (+ (* (* a b) 0.16666666666666666) (* a 0.5)))))))
y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -8.5e-233) {
tmp = ((x / a) - (b * ((x / a) + (b * (((x * b) / a) - (x / a)))))) / y;
} else if (b <= 3.15e-232) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else if (b <= 1.65e-174) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / 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 <= (-8.5d-233)) then
tmp = ((x / a) - (b * ((x / a) + (b * (((x * b) / a) - (x / a)))))) / y
else if (b <= 3.15d-232) then
tmp = x / (a * (y + (b * (b * ((y * 0.5d0) + (y / b))))))
else if (b <= 1.65d-174) then
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y
else
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666d0) + (a * 0.5d0))))))) / 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 <= -8.5e-233) {
tmp = ((x / a) - (b * ((x / a) + (b * (((x * b) / a) - (x / a)))))) / y;
} else if (b <= 3.15e-232) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else if (b <= 1.65e-174) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -8.5e-233: tmp = ((x / a) - (b * ((x / a) + (b * (((x * b) / a) - (x / a)))))) / y elif b <= 3.15e-232: tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))) elif b <= 1.65e-174: tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y else: tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -8.5e-233) tmp = Float64(Float64(Float64(x / a) - Float64(b * Float64(Float64(x / a) + Float64(b * Float64(Float64(Float64(x * b) / a) - Float64(x / a)))))) / y); elseif (b <= 3.15e-232) tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(b * Float64(Float64(y * 0.5) + Float64(y / b))))))); elseif (b <= 1.65e-174) tmp = Float64(Float64(Float64(Float64(x / a) + Float64(Float64(Float64(x / Float64(a * b)) - Float64(x / a)) / b)) / b) / y); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(b * Float64(Float64(Float64(a * b) * 0.16666666666666666) + Float64(a * 0.5))))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -8.5e-233) tmp = ((x / a) - (b * ((x / a) + (b * (((x * b) / a) - (x / a)))))) / y; elseif (b <= 3.15e-232) tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))); elseif (b <= 1.65e-174) tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y; else tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -8.5e-233], N[(N[(N[(x / a), $MachinePrecision] - N[(b * N[(N[(x / a), $MachinePrecision] + N[(b * N[(N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 3.15e-232], N[(x / N[(a * N[(y + N[(b * N[(b * N[(N[(y * 0.5), $MachinePrecision] + N[(y / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.65e-174], N[(N[(N[(N[(x / a), $MachinePrecision] + N[(N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(b * N[(N[(N[(a * b), $MachinePrecision] * 0.16666666666666666), $MachinePrecision] + N[(a * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -8.5 \cdot 10^{-233}:\\
\;\;\;\;\frac{\frac{x}{a} - b \cdot \left(\frac{x}{a} + b \cdot \left(\frac{x \cdot b}{a} - \frac{x}{a}\right)\right)}{y}\\
\mathbf{elif}\;b \leq 3.15 \cdot 10^{-232}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(b \cdot \left(y \cdot 0.5 + \frac{y}{b}\right)\right)\right)}\\
\mathbf{elif}\;b \leq 1.65 \cdot 10^{-174}:\\
\;\;\;\;\frac{\frac{\frac{x}{a} + \frac{\frac{x}{a \cdot b} - \frac{x}{a}}{b}}{b}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + b \cdot \left(\left(a \cdot b\right) \cdot 0.16666666666666666 + a \cdot 0.5\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -8.5000000000000005e-233Initial program 99.2%
Taylor expanded in y around 0 84.8%
div-exp74.6%
exp-to-pow75.0%
sub-neg75.0%
metadata-eval75.0%
Simplified75.0%
Taylor expanded in t around 0 66.4%
Taylor expanded in b around 0 24.2%
Taylor expanded in b around 0 59.2%
if -8.5000000000000005e-233 < b < 3.15000000000000005e-232Initial program 98.5%
associate-/l*98.5%
associate--l+98.5%
exp-sum81.5%
associate-/l*79.0%
*-commutative79.0%
exp-to-pow79.0%
exp-diff79.0%
*-commutative79.0%
exp-to-pow80.3%
sub-neg80.3%
metadata-eval80.3%
Simplified80.3%
Taylor expanded in t around 0 73.8%
associate-/r*76.2%
Simplified76.2%
Taylor expanded in y around 0 40.9%
Taylor expanded in b around 0 40.9%
Taylor expanded in b around inf 52.4%
if 3.15000000000000005e-232 < b < 1.65e-174Initial program 99.3%
Taylor expanded in y around 0 68.8%
div-exp68.8%
exp-to-pow69.4%
sub-neg69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in t around 0 14.4%
Taylor expanded in b around 0 14.4%
Taylor expanded in b around -inf 57.6%
mul-1-neg57.6%
neg-mul-157.6%
+-commutative57.6%
sub-neg57.6%
distribute-neg-frac257.6%
Simplified57.6%
if 1.65e-174 < b Initial program 99.0%
Taylor expanded in y around 0 88.4%
div-exp81.7%
exp-to-pow82.7%
sub-neg82.7%
metadata-eval82.7%
Simplified82.7%
Taylor expanded in t around 0 71.2%
Taylor expanded in b around 0 60.5%
Final simplification58.5%
(FPCore (x y z t a b)
:precision binary64
(if (<= b 6.5e-231)
(/ (* x (+ (/ 1.0 a) (* b (+ (* 0.5 (/ b a)) (/ -1.0 a))))) y)
(if (<= b 5.2e-176)
(/ (/ (+ (/ x a) (/ (- (/ x (* a b)) (/ x a)) b)) b) y)
(/
x
(*
a
(+
y
(* b (+ y (* b (+ (* y 0.5) (* 0.16666666666666666 (* y b))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 6.5e-231) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 5.2e-176) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = x / (a * (y + (b * (y + (b * ((y * 0.5) + (0.16666666666666666 * (y * 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 (b <= 6.5d-231) then
tmp = (x * ((1.0d0 / a) + (b * ((0.5d0 * (b / a)) + ((-1.0d0) / a))))) / y
else if (b <= 5.2d-176) then
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y
else
tmp = x / (a * (y + (b * (y + (b * ((y * 0.5d0) + (0.16666666666666666d0 * (y * 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 (b <= 6.5e-231) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 5.2e-176) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = x / (a * (y + (b * (y + (b * ((y * 0.5) + (0.16666666666666666 * (y * b))))))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 6.5e-231: tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y elif b <= 5.2e-176: tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y else: tmp = x / (a * (y + (b * (y + (b * ((y * 0.5) + (0.16666666666666666 * (y * b)))))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 6.5e-231) tmp = Float64(Float64(x * Float64(Float64(1.0 / a) + Float64(b * Float64(Float64(0.5 * Float64(b / a)) + Float64(-1.0 / a))))) / y); elseif (b <= 5.2e-176) tmp = Float64(Float64(Float64(Float64(x / a) + Float64(Float64(Float64(x / Float64(a * b)) - Float64(x / a)) / b)) / b) / y); else tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(y + Float64(b * Float64(Float64(y * 0.5) + Float64(0.16666666666666666 * Float64(y * b))))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 6.5e-231) tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y; elseif (b <= 5.2e-176) tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y; else tmp = x / (a * (y + (b * (y + (b * ((y * 0.5) + (0.16666666666666666 * (y * b)))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 6.5e-231], N[(N[(x * N[(N[(1.0 / a), $MachinePrecision] + N[(b * N[(N[(0.5 * N[(b / a), $MachinePrecision]), $MachinePrecision] + N[(-1.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 5.2e-176], N[(N[(N[(N[(x / a), $MachinePrecision] + N[(N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y + N[(b * N[(y + N[(b * N[(N[(y * 0.5), $MachinePrecision] + N[(0.16666666666666666 * N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 6.5 \cdot 10^{-231}:\\
\;\;\;\;\frac{x \cdot \left(\frac{1}{a} + b \cdot \left(0.5 \cdot \frac{b}{a} + \frac{-1}{a}\right)\right)}{y}\\
\mathbf{elif}\;b \leq 5.2 \cdot 10^{-176}:\\
\;\;\;\;\frac{\frac{\frac{x}{a} + \frac{\frac{x}{a \cdot b} - \frac{x}{a}}{b}}{b}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(y + b \cdot \left(y \cdot 0.5 + 0.16666666666666666 \cdot \left(y \cdot b\right)\right)\right)\right)}\\
\end{array}
\end{array}
if b < 6.5000000000000004e-231Initial program 99.0%
Taylor expanded in y around 0 80.1%
div-exp72.6%
exp-to-pow73.3%
sub-neg73.3%
metadata-eval73.3%
Simplified73.3%
Taylor expanded in t around 0 60.0%
Taylor expanded in b around 0 41.6%
Taylor expanded in x around 0 52.0%
if 6.5000000000000004e-231 < b < 5.19999999999999984e-176Initial program 99.3%
Taylor expanded in y around 0 68.8%
div-exp68.8%
exp-to-pow69.4%
sub-neg69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in t around 0 14.4%
Taylor expanded in b around 0 14.4%
Taylor expanded in b around -inf 57.6%
mul-1-neg57.6%
neg-mul-157.6%
+-commutative57.6%
sub-neg57.6%
distribute-neg-frac257.6%
Simplified57.6%
if 5.19999999999999984e-176 < b Initial program 99.0%
associate-/l*99.0%
associate--l+99.0%
exp-sum79.2%
associate-/l*79.2%
*-commutative79.2%
exp-to-pow79.2%
exp-diff75.9%
*-commutative75.9%
exp-to-pow76.9%
sub-neg76.9%
metadata-eval76.9%
Simplified76.9%
Taylor expanded in t around 0 70.7%
associate-/r*70.6%
Simplified70.6%
Taylor expanded in y around 0 72.3%
Taylor expanded in b around 0 55.3%
Final simplification53.5%
(FPCore (x y z t a b)
:precision binary64
(if (<= b 9e-232)
(/ (* x (+ (/ 1.0 a) (* b (+ (* 0.5 (/ b a)) (/ -1.0 a))))) y)
(if (<= b 3.85e-177)
(/ (/ (+ (/ x a) (/ (- (/ x (* a b)) (/ x a)) b)) b) y)
(/
(/
x
(+ a (* b (+ a (* b (+ (* (* a b) 0.16666666666666666) (* a 0.5)))))))
y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 9e-232) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 3.85e-177) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / 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 <= 9d-232) then
tmp = (x * ((1.0d0 / a) + (b * ((0.5d0 * (b / a)) + ((-1.0d0) / a))))) / y
else if (b <= 3.85d-177) then
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y
else
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666d0) + (a * 0.5d0))))))) / 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 <= 9e-232) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 3.85e-177) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 9e-232: tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y elif b <= 3.85e-177: tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y else: tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 9e-232) tmp = Float64(Float64(x * Float64(Float64(1.0 / a) + Float64(b * Float64(Float64(0.5 * Float64(b / a)) + Float64(-1.0 / a))))) / y); elseif (b <= 3.85e-177) tmp = Float64(Float64(Float64(Float64(x / a) + Float64(Float64(Float64(x / Float64(a * b)) - Float64(x / a)) / b)) / b) / y); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(b * Float64(Float64(Float64(a * b) * 0.16666666666666666) + Float64(a * 0.5))))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 9e-232) tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y; elseif (b <= 3.85e-177) tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y; else tmp = (x / (a + (b * (a + (b * (((a * b) * 0.16666666666666666) + (a * 0.5))))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 9e-232], N[(N[(x * N[(N[(1.0 / a), $MachinePrecision] + N[(b * N[(N[(0.5 * N[(b / a), $MachinePrecision]), $MachinePrecision] + N[(-1.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 3.85e-177], N[(N[(N[(N[(x / a), $MachinePrecision] + N[(N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(b * N[(N[(N[(a * b), $MachinePrecision] * 0.16666666666666666), $MachinePrecision] + N[(a * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 9 \cdot 10^{-232}:\\
\;\;\;\;\frac{x \cdot \left(\frac{1}{a} + b \cdot \left(0.5 \cdot \frac{b}{a} + \frac{-1}{a}\right)\right)}{y}\\
\mathbf{elif}\;b \leq 3.85 \cdot 10^{-177}:\\
\;\;\;\;\frac{\frac{\frac{x}{a} + \frac{\frac{x}{a \cdot b} - \frac{x}{a}}{b}}{b}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + b \cdot \left(\left(a \cdot b\right) \cdot 0.16666666666666666 + a \cdot 0.5\right)\right)}}{y}\\
\end{array}
\end{array}
if b < 8.99999999999999933e-232Initial program 99.0%
Taylor expanded in y around 0 80.1%
div-exp72.6%
exp-to-pow73.3%
sub-neg73.3%
metadata-eval73.3%
Simplified73.3%
Taylor expanded in t around 0 60.0%
Taylor expanded in b around 0 41.6%
Taylor expanded in x around 0 52.0%
if 8.99999999999999933e-232 < b < 3.8500000000000001e-177Initial program 99.3%
Taylor expanded in y around 0 68.8%
div-exp68.8%
exp-to-pow69.4%
sub-neg69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in t around 0 14.4%
Taylor expanded in b around 0 14.4%
Taylor expanded in b around -inf 57.6%
mul-1-neg57.6%
neg-mul-157.6%
+-commutative57.6%
sub-neg57.6%
distribute-neg-frac257.6%
Simplified57.6%
if 3.8500000000000001e-177 < b Initial program 99.0%
Taylor expanded in y around 0 88.4%
div-exp81.7%
exp-to-pow82.7%
sub-neg82.7%
metadata-eval82.7%
Simplified82.7%
Taylor expanded in t around 0 71.2%
Taylor expanded in b around 0 60.5%
Final simplification55.4%
(FPCore (x y z t a b)
:precision binary64
(if (<= b 6.6e-230)
(/ (* x (+ (/ 1.0 a) (* b (+ (* 0.5 (/ b a)) (/ -1.0 a))))) y)
(if (<= b 2.7e-176)
(/ (/ (+ (/ x a) (/ (- (/ x (* a b)) (/ x a)) b)) b) y)
(/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 6.6e-230) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 2.7e-176) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= 6.6d-230) then
tmp = (x * ((1.0d0 / a) + (b * ((0.5d0 * (b / a)) + ((-1.0d0) / a))))) / y
else if (b <= 2.7d-176) then
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= 6.6e-230) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 2.7e-176) {
tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y;
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 6.6e-230: tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y elif b <= 2.7e-176: tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 6.6e-230) tmp = Float64(Float64(x * Float64(Float64(1.0 / a) + Float64(b * Float64(Float64(0.5 * Float64(b / a)) + Float64(-1.0 / a))))) / y); elseif (b <= 2.7e-176) tmp = Float64(Float64(Float64(Float64(x / a) + Float64(Float64(Float64(x / Float64(a * b)) - Float64(x / a)) / b)) / b) / y); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 6.6e-230) tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y; elseif (b <= 2.7e-176) tmp = (((x / a) + (((x / (a * b)) - (x / a)) / b)) / b) / y; else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 6.6e-230], N[(N[(x * N[(N[(1.0 / a), $MachinePrecision] + N[(b * N[(N[(0.5 * N[(b / a), $MachinePrecision]), $MachinePrecision] + N[(-1.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 2.7e-176], N[(N[(N[(N[(x / a), $MachinePrecision] + N[(N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 6.6 \cdot 10^{-230}:\\
\;\;\;\;\frac{x \cdot \left(\frac{1}{a} + b \cdot \left(0.5 \cdot \frac{b}{a} + \frac{-1}{a}\right)\right)}{y}\\
\mathbf{elif}\;b \leq 2.7 \cdot 10^{-176}:\\
\;\;\;\;\frac{\frac{\frac{x}{a} + \frac{\frac{x}{a \cdot b} - \frac{x}{a}}{b}}{b}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < 6.59999999999999987e-230Initial program 99.0%
Taylor expanded in y around 0 80.1%
div-exp72.6%
exp-to-pow73.3%
sub-neg73.3%
metadata-eval73.3%
Simplified73.3%
Taylor expanded in t around 0 60.0%
Taylor expanded in b around 0 41.6%
Taylor expanded in x around 0 52.0%
if 6.59999999999999987e-230 < b < 2.6999999999999998e-176Initial program 99.3%
Taylor expanded in y around 0 68.8%
div-exp68.8%
exp-to-pow69.4%
sub-neg69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in t around 0 14.4%
Taylor expanded in b around 0 14.4%
Taylor expanded in b around -inf 57.6%
mul-1-neg57.6%
neg-mul-157.6%
+-commutative57.6%
sub-neg57.6%
distribute-neg-frac257.6%
Simplified57.6%
if 2.6999999999999998e-176 < b Initial program 99.0%
Taylor expanded in y around 0 88.4%
div-exp81.7%
exp-to-pow82.7%
sub-neg82.7%
metadata-eval82.7%
Simplified82.7%
Taylor expanded in t around 0 71.2%
Taylor expanded in b around 0 55.2%
Final simplification53.5%
(FPCore (x y z t a b)
:precision binary64
(if (<= b -1.2e-232)
(/ (+ (/ x a) (* b (* (/ (* x b) a) 0.5))) y)
(if (<= b 2.3e-51)
(/ x (* a (+ y (* b (* b (+ (* y 0.5) (/ y b)))))))
(/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -1.2e-232) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else if (b <= 2.3e-51) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= (-1.2d-232)) then
tmp = ((x / a) + (b * (((x * b) / a) * 0.5d0))) / y
else if (b <= 2.3d-51) then
tmp = x / (a * (y + (b * (b * ((y * 0.5d0) + (y / b))))))
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= -1.2e-232) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else if (b <= 2.3e-51) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -1.2e-232: tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y elif b <= 2.3e-51: tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))) else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -1.2e-232) tmp = Float64(Float64(Float64(x / a) + Float64(b * Float64(Float64(Float64(x * b) / a) * 0.5))) / y); elseif (b <= 2.3e-51) tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(b * Float64(Float64(y * 0.5) + Float64(y / b))))))); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -1.2e-232) tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y; elseif (b <= 2.3e-51) tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))); else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -1.2e-232], N[(N[(N[(x / a), $MachinePrecision] + N[(b * N[(N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision] * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 2.3e-51], N[(x / N[(a * N[(y + N[(b * N[(b * N[(N[(y * 0.5), $MachinePrecision] + N[(y / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.2 \cdot 10^{-232}:\\
\;\;\;\;\frac{\frac{x}{a} + b \cdot \left(\frac{x \cdot b}{a} \cdot 0.5\right)}{y}\\
\mathbf{elif}\;b \leq 2.3 \cdot 10^{-51}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(b \cdot \left(y \cdot 0.5 + \frac{y}{b}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -1.19999999999999999e-232Initial program 99.2%
Taylor expanded in y around 0 84.8%
div-exp74.6%
exp-to-pow75.0%
sub-neg75.0%
metadata-eval75.0%
Simplified75.0%
Taylor expanded in t around 0 66.4%
Taylor expanded in b around 0 43.8%
Taylor expanded in b around inf 43.4%
distribute-rgt-out50.8%
metadata-eval50.8%
associate-*r*50.8%
associate-/l*52.3%
*-commutative52.3%
associate-*r*52.3%
metadata-eval52.3%
*-commutative52.3%
Simplified52.3%
if -1.19999999999999999e-232 < b < 2.30000000000000002e-51Initial program 98.3%
associate-/l*98.3%
associate--l+98.3%
exp-sum85.2%
associate-/l*82.8%
*-commutative82.8%
exp-to-pow82.8%
exp-diff82.8%
*-commutative82.8%
exp-to-pow84.4%
sub-neg84.4%
metadata-eval84.4%
Simplified84.4%
Taylor expanded in t around 0 68.6%
associate-/r*72.1%
Simplified72.1%
Taylor expanded in y around 0 41.0%
Taylor expanded in b around 0 41.0%
Taylor expanded in b around inf 46.6%
if 2.30000000000000002e-51 < b Initial program 99.7%
Taylor expanded in y around 0 89.1%
div-exp79.7%
exp-to-pow79.9%
sub-neg79.9%
metadata-eval79.9%
Simplified79.9%
Taylor expanded in t around 0 80.2%
Taylor expanded in b around 0 57.5%
Final simplification51.7%
(FPCore (x y z t a b)
:precision binary64
(if (<= b -1.2e-232)
(/ (+ (/ x a) (* b (- (/ (* x b) a) (/ x a)))) y)
(if (<= b 1e-51)
(/ x (* a (+ y (* b (* b (+ (* y 0.5) (/ y b)))))))
(/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -1.2e-232) {
tmp = ((x / a) + (b * (((x * b) / a) - (x / a)))) / y;
} else if (b <= 1e-51) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= (-1.2d-232)) then
tmp = ((x / a) + (b * (((x * b) / a) - (x / a)))) / y
else if (b <= 1d-51) then
tmp = x / (a * (y + (b * (b * ((y * 0.5d0) + (y / b))))))
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= -1.2e-232) {
tmp = ((x / a) + (b * (((x * b) / a) - (x / a)))) / y;
} else if (b <= 1e-51) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -1.2e-232: tmp = ((x / a) + (b * (((x * b) / a) - (x / a)))) / y elif b <= 1e-51: tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))) else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -1.2e-232) tmp = Float64(Float64(Float64(x / a) + Float64(b * Float64(Float64(Float64(x * b) / a) - Float64(x / a)))) / y); elseif (b <= 1e-51) tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(b * Float64(Float64(y * 0.5) + Float64(y / b))))))); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -1.2e-232) tmp = ((x / a) + (b * (((x * b) / a) - (x / a)))) / y; elseif (b <= 1e-51) tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))); else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -1.2e-232], N[(N[(N[(x / a), $MachinePrecision] + N[(b * N[(N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision] - N[(x / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 1e-51], N[(x / N[(a * N[(y + N[(b * N[(b * N[(N[(y * 0.5), $MachinePrecision] + N[(y / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.2 \cdot 10^{-232}:\\
\;\;\;\;\frac{\frac{x}{a} + b \cdot \left(\frac{x \cdot b}{a} - \frac{x}{a}\right)}{y}\\
\mathbf{elif}\;b \leq 10^{-51}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(b \cdot \left(y \cdot 0.5 + \frac{y}{b}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -1.19999999999999999e-232Initial program 99.2%
Taylor expanded in y around 0 84.8%
div-exp74.6%
exp-to-pow75.0%
sub-neg75.0%
metadata-eval75.0%
Simplified75.0%
Taylor expanded in t around 0 66.4%
Taylor expanded in b around 0 24.2%
Taylor expanded in b around 0 52.6%
if -1.19999999999999999e-232 < b < 1e-51Initial program 98.3%
associate-/l*98.3%
associate--l+98.3%
exp-sum85.2%
associate-/l*82.8%
*-commutative82.8%
exp-to-pow82.8%
exp-diff82.8%
*-commutative82.8%
exp-to-pow84.4%
sub-neg84.4%
metadata-eval84.4%
Simplified84.4%
Taylor expanded in t around 0 68.6%
associate-/r*72.1%
Simplified72.1%
Taylor expanded in y around 0 41.0%
Taylor expanded in b around 0 41.0%
Taylor expanded in b around inf 46.6%
if 1e-51 < b Initial program 99.7%
Taylor expanded in y around 0 89.1%
div-exp79.7%
exp-to-pow79.9%
sub-neg79.9%
metadata-eval79.9%
Simplified79.9%
Taylor expanded in t around 0 80.2%
Taylor expanded in b around 0 57.5%
Final simplification51.8%
(FPCore (x y z t a b)
:precision binary64
(if (<= b -1.06e-232)
(/ (* x (+ (/ 1.0 a) (* b (+ (* 0.5 (/ b a)) (/ -1.0 a))))) y)
(if (<= b 5e-46)
(/ x (* a (+ y (* b (* b (+ (* y 0.5) (/ y b)))))))
(/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -1.06e-232) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 5e-46) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= (-1.06d-232)) then
tmp = (x * ((1.0d0 / a) + (b * ((0.5d0 * (b / a)) + ((-1.0d0) / a))))) / y
else if (b <= 5d-46) then
tmp = x / (a * (y + (b * (b * ((y * 0.5d0) + (y / b))))))
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= -1.06e-232) {
tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y;
} else if (b <= 5e-46) {
tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b))))));
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -1.06e-232: tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y elif b <= 5e-46: tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))) else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -1.06e-232) tmp = Float64(Float64(x * Float64(Float64(1.0 / a) + Float64(b * Float64(Float64(0.5 * Float64(b / a)) + Float64(-1.0 / a))))) / y); elseif (b <= 5e-46) tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(b * Float64(Float64(y * 0.5) + Float64(y / b))))))); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -1.06e-232) tmp = (x * ((1.0 / a) + (b * ((0.5 * (b / a)) + (-1.0 / a))))) / y; elseif (b <= 5e-46) tmp = x / (a * (y + (b * (b * ((y * 0.5) + (y / b)))))); else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -1.06e-232], N[(N[(x * N[(N[(1.0 / a), $MachinePrecision] + N[(b * N[(N[(0.5 * N[(b / a), $MachinePrecision]), $MachinePrecision] + N[(-1.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], If[LessEqual[b, 5e-46], N[(x / N[(a * N[(y + N[(b * N[(b * N[(N[(y * 0.5), $MachinePrecision] + N[(y / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.06 \cdot 10^{-232}:\\
\;\;\;\;\frac{x \cdot \left(\frac{1}{a} + b \cdot \left(0.5 \cdot \frac{b}{a} + \frac{-1}{a}\right)\right)}{y}\\
\mathbf{elif}\;b \leq 5 \cdot 10^{-46}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(b \cdot \left(y \cdot 0.5 + \frac{y}{b}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -1.05999999999999994e-232Initial program 99.2%
Taylor expanded in y around 0 84.8%
div-exp74.6%
exp-to-pow75.0%
sub-neg75.0%
metadata-eval75.0%
Simplified75.0%
Taylor expanded in t around 0 66.4%
Taylor expanded in b around 0 43.8%
Taylor expanded in x around 0 55.4%
if -1.05999999999999994e-232 < b < 4.99999999999999992e-46Initial program 98.3%
associate-/l*98.3%
associate--l+98.3%
exp-sum84.3%
associate-/l*82.0%
*-commutative82.0%
exp-to-pow82.0%
exp-diff82.0%
*-commutative82.0%
exp-to-pow83.6%
sub-neg83.6%
metadata-eval83.6%
Simplified83.6%
Taylor expanded in t around 0 68.2%
associate-/r*71.6%
Simplified71.6%
Taylor expanded in y around 0 40.1%
Taylor expanded in b around 0 40.1%
Taylor expanded in b around inf 45.6%
if 4.99999999999999992e-46 < b Initial program 99.7%
Taylor expanded in y around 0 90.3%
div-exp80.6%
exp-to-pow80.8%
sub-neg80.8%
metadata-eval80.8%
Simplified80.8%
Taylor expanded in t around 0 82.7%
Taylor expanded in b around 0 59.3%
Final simplification53.0%
(FPCore (x y z t a b) :precision binary64 (if (<= b 1.2e-257) (/ (- (/ x a) (/ (* x b) a)) y) (/ x (* a (* y (+ 1.0 (* b (+ 1.0 (* b 0.5)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 1.2e-257) {
tmp = ((x / a) - ((x * b) / a)) / y;
} else {
tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5))))));
}
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 <= 1.2d-257) then
tmp = ((x / a) - ((x * b) / a)) / y
else
tmp = x / (a * (y * (1.0d0 + (b * (1.0d0 + (b * 0.5d0))))))
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 <= 1.2e-257) {
tmp = ((x / a) - ((x * b) / a)) / y;
} else {
tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5))))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 1.2e-257: tmp = ((x / a) - ((x * b) / a)) / y else: tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5)))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 1.2e-257) tmp = Float64(Float64(Float64(x / a) - Float64(Float64(x * b) / a)) / y); else tmp = Float64(x / Float64(a * Float64(y * Float64(1.0 + Float64(b * Float64(1.0 + Float64(b * 0.5))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 1.2e-257) tmp = ((x / a) - ((x * b) / a)) / y; else tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 1.2e-257], N[(N[(N[(x / a), $MachinePrecision] - N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y * N[(1.0 + N[(b * N[(1.0 + N[(b * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.2 \cdot 10^{-257}:\\
\;\;\;\;\frac{\frac{x}{a} - \frac{x \cdot b}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot \left(1 + b \cdot \left(1 + b \cdot 0.5\right)\right)\right)}\\
\end{array}
\end{array}
if b < 1.20000000000000008e-257Initial program 99.1%
Taylor expanded in y around 0 80.6%
div-exp72.5%
exp-to-pow73.1%
sub-neg73.1%
metadata-eval73.1%
Simplified73.1%
Taylor expanded in t around 0 61.5%
Taylor expanded in b around 0 47.3%
if 1.20000000000000008e-257 < b Initial program 98.9%
associate-/l*98.9%
associate--l+98.9%
exp-sum81.3%
associate-/l*80.4%
*-commutative80.4%
exp-to-pow80.4%
exp-diff77.9%
*-commutative77.9%
exp-to-pow78.9%
sub-neg78.9%
metadata-eval78.9%
Simplified78.9%
Taylor expanded in t around 0 67.7%
associate-/r*69.3%
Simplified69.3%
Taylor expanded in y around 0 61.6%
Taylor expanded in b around 0 43.7%
Taylor expanded in y around 0 47.0%
Final simplification47.2%
(FPCore (x y z t a b) :precision binary64 (if (<= b 1.05e+42) (/ (+ (/ x a) (* b (* (/ (* x b) a) 0.5))) y) (/ x (* a (* y (+ 1.0 (* b (+ 1.0 (* b 0.5)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 1.05e+42) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else {
tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5))))));
}
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 <= 1.05d+42) then
tmp = ((x / a) + (b * (((x * b) / a) * 0.5d0))) / y
else
tmp = x / (a * (y * (1.0d0 + (b * (1.0d0 + (b * 0.5d0))))))
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 <= 1.05e+42) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else {
tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5))))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 1.05e+42: tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y else: tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5)))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 1.05e+42) tmp = Float64(Float64(Float64(x / a) + Float64(b * Float64(Float64(Float64(x * b) / a) * 0.5))) / y); else tmp = Float64(x / Float64(a * Float64(y * Float64(1.0 + Float64(b * Float64(1.0 + Float64(b * 0.5))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 1.05e+42) tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y; else tmp = x / (a * (y * (1.0 + (b * (1.0 + (b * 0.5)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 1.05e+42], N[(N[(N[(x / a), $MachinePrecision] + N[(b * N[(N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision] * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y * N[(1.0 + N[(b * N[(1.0 + N[(b * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.05 \cdot 10^{+42}:\\
\;\;\;\;\frac{\frac{x}{a} + b \cdot \left(\frac{x \cdot b}{a} \cdot 0.5\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot \left(1 + b \cdot \left(1 + b \cdot 0.5\right)\right)\right)}\\
\end{array}
\end{array}
if b < 1.04999999999999998e42Initial program 98.8%
Taylor expanded in y around 0 79.8%
div-exp74.6%
exp-to-pow75.5%
sub-neg75.5%
metadata-eval75.5%
Simplified75.5%
Taylor expanded in t around 0 55.3%
Taylor expanded in b around 0 37.0%
Taylor expanded in b around inf 36.7%
distribute-rgt-out44.3%
metadata-eval44.3%
associate-*r*44.3%
associate-/l*45.0%
*-commutative45.0%
associate-*r*45.0%
metadata-eval45.0%
*-commutative45.0%
Simplified45.0%
if 1.04999999999999998e42 < b Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum71.4%
associate-/l*71.4%
*-commutative71.4%
exp-to-pow71.4%
exp-diff64.3%
*-commutative64.3%
exp-to-pow64.3%
sub-neg64.3%
metadata-eval64.3%
Simplified64.3%
Taylor expanded in t around 0 69.1%
associate-/r*69.1%
Simplified69.1%
Taylor expanded in y around 0 90.6%
Taylor expanded in b around 0 60.9%
Taylor expanded in y around 0 70.0%
Final simplification49.1%
(FPCore (x y z t a b) :precision binary64 (if (<= b -3.4e+21) (/ (+ (/ x a) (* b (* (/ (* x b) a) 0.5))) y) (/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -3.4e+21) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= (-3.4d+21)) then
tmp = ((x / a) + (b * (((x * b) / a) * 0.5d0))) / y
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= -3.4e+21) {
tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y;
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -3.4e+21: tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -3.4e+21) tmp = Float64(Float64(Float64(x / a) + Float64(b * Float64(Float64(Float64(x * b) / a) * 0.5))) / y); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -3.4e+21) tmp = ((x / a) + (b * (((x * b) / a) * 0.5))) / y; else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -3.4e+21], N[(N[(N[(x / a), $MachinePrecision] + N[(b * N[(N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision] * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3.4 \cdot 10^{+21}:\\
\;\;\;\;\frac{\frac{x}{a} + b \cdot \left(\frac{x \cdot b}{a} \cdot 0.5\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -3.4e21Initial program 100.0%
Taylor expanded in y around 0 92.4%
div-exp75.1%
exp-to-pow75.1%
sub-neg75.1%
metadata-eval75.1%
Simplified75.1%
Taylor expanded in t around 0 88.6%
Taylor expanded in b around 0 51.3%
Taylor expanded in b around inf 51.3%
distribute-rgt-out59.0%
metadata-eval59.0%
associate-*r*59.0%
associate-/l*62.0%
*-commutative62.0%
associate-*r*62.0%
metadata-eval62.0%
*-commutative62.0%
Simplified62.0%
if -3.4e21 < b Initial program 98.8%
Taylor expanded in y around 0 79.7%
div-exp75.8%
exp-to-pow76.7%
sub-neg76.7%
metadata-eval76.7%
Simplified76.7%
Taylor expanded in t around 0 54.1%
Taylor expanded in b around 0 46.6%
Final simplification49.7%
(FPCore (x y z t a b) :precision binary64 (if (<= b -8.2e-149) (/ (- x (* b (+ x (* b (* x -0.5))))) (* y a)) (/ (/ x (+ a (* b (+ a (* 0.5 (* a b)))))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -8.2e-149) {
tmp = (x - (b * (x + (b * (x * -0.5))))) / (y * a);
} else {
tmp = (x / (a + (b * (a + (0.5 * (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 (b <= (-8.2d-149)) then
tmp = (x - (b * (x + (b * (x * (-0.5d0)))))) / (y * a)
else
tmp = (x / (a + (b * (a + (0.5d0 * (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 (b <= -8.2e-149) {
tmp = (x - (b * (x + (b * (x * -0.5))))) / (y * a);
} else {
tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -8.2e-149: tmp = (x - (b * (x + (b * (x * -0.5))))) / (y * a) else: tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -8.2e-149) tmp = Float64(Float64(x - Float64(b * Float64(x + Float64(b * Float64(x * -0.5))))) / Float64(y * a)); else tmp = Float64(Float64(x / Float64(a + Float64(b * Float64(a + Float64(0.5 * Float64(a * b)))))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -8.2e-149) tmp = (x - (b * (x + (b * (x * -0.5))))) / (y * a); else tmp = (x / (a + (b * (a + (0.5 * (a * b)))))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -8.2e-149], N[(N[(x - N[(b * N[(x + N[(b * N[(x * -0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y * a), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(b * N[(a + N[(0.5 * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -8.2 \cdot 10^{-149}:\\
\;\;\;\;\frac{x - b \cdot \left(x + b \cdot \left(x \cdot -0.5\right)\right)}{y \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + b \cdot \left(a + 0.5 \cdot \left(a \cdot b\right)\right)}}{y}\\
\end{array}
\end{array}
if b < -8.20000000000000013e-149Initial program 99.6%
Taylor expanded in y around 0 83.7%
div-exp71.7%
exp-to-pow71.8%
sub-neg71.8%
metadata-eval71.8%
Simplified71.8%
Taylor expanded in t around 0 66.9%
Taylor expanded in b around 0 43.6%
Taylor expanded in a around 0 51.0%
associate-*r*51.0%
mul-1-neg51.0%
distribute-rgt-out51.0%
metadata-eval51.0%
Simplified51.0%
if -8.20000000000000013e-149 < b Initial program 98.7%
Taylor expanded in y around 0 81.5%
div-exp77.8%
exp-to-pow79.0%
sub-neg79.0%
metadata-eval79.0%
Simplified79.0%
Taylor expanded in t around 0 57.9%
Taylor expanded in b around 0 49.1%
Final simplification49.8%
(FPCore (x y z t a b) :precision binary64 (if (<= b -5e-149) (- (/ x (* y a)) (* (/ x a) (/ b y))) (/ (/ x (+ a (* a b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -5e-149) {
tmp = (x / (y * a)) - ((x / a) * (b / y));
} else {
tmp = (x / (a + (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 (b <= (-5d-149)) then
tmp = (x / (y * a)) - ((x / a) * (b / y))
else
tmp = (x / (a + (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 (b <= -5e-149) {
tmp = (x / (y * a)) - ((x / a) * (b / y));
} else {
tmp = (x / (a + (a * b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -5e-149: tmp = (x / (y * a)) - ((x / a) * (b / y)) else: tmp = (x / (a + (a * b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -5e-149) tmp = Float64(Float64(x / Float64(y * a)) - Float64(Float64(x / a) * Float64(b / y))); else tmp = Float64(Float64(x / Float64(a + Float64(a * b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -5e-149) tmp = (x / (y * a)) - ((x / a) * (b / y)); else tmp = (x / (a + (a * b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -5e-149], N[(N[(x / N[(y * a), $MachinePrecision]), $MachinePrecision] - N[(N[(x / a), $MachinePrecision] * N[(b / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -5 \cdot 10^{-149}:\\
\;\;\;\;\frac{x}{y \cdot a} - \frac{x}{a} \cdot \frac{b}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + a \cdot b}}{y}\\
\end{array}
\end{array}
if b < -4.99999999999999968e-149Initial program 99.6%
associate-/l*99.6%
associate--l+99.6%
exp-sum77.9%
associate-/l*77.9%
*-commutative77.9%
exp-to-pow77.9%
exp-diff68.1%
*-commutative68.1%
exp-to-pow68.4%
sub-neg68.4%
metadata-eval68.4%
Simplified68.4%
Taylor expanded in t around 0 67.8%
associate-/r*70.0%
Simplified70.0%
Taylor expanded in y around 0 67.8%
Taylor expanded in b around 0 42.4%
+-commutative42.4%
mul-1-neg42.4%
unsub-neg42.4%
*-commutative42.4%
*-commutative42.4%
times-frac38.5%
Simplified38.5%
if -4.99999999999999968e-149 < b Initial program 98.7%
Taylor expanded in y around 0 81.5%
div-exp77.8%
exp-to-pow79.0%
sub-neg79.0%
metadata-eval79.0%
Simplified79.0%
Taylor expanded in t around 0 57.9%
Taylor expanded in b around 0 40.2%
Final simplification39.6%
(FPCore (x y z t a b) :precision binary64 (if (<= b 1.25e-257) (/ (* (/ x a) (- 1.0 b)) y) (/ x (* a (+ y (* b (* y (* b 0.5))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 1.25e-257) {
tmp = ((x / a) * (1.0 - b)) / y;
} else {
tmp = x / (a * (y + (b * (y * (b * 0.5)))));
}
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 <= 1.25d-257) then
tmp = ((x / a) * (1.0d0 - b)) / y
else
tmp = x / (a * (y + (b * (y * (b * 0.5d0)))))
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 <= 1.25e-257) {
tmp = ((x / a) * (1.0 - b)) / y;
} else {
tmp = x / (a * (y + (b * (y * (b * 0.5)))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 1.25e-257: tmp = ((x / a) * (1.0 - b)) / y else: tmp = x / (a * (y + (b * (y * (b * 0.5))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 1.25e-257) tmp = Float64(Float64(Float64(x / a) * Float64(1.0 - b)) / y); else tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(y * Float64(b * 0.5)))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 1.25e-257) tmp = ((x / a) * (1.0 - b)) / y; else tmp = x / (a * (y + (b * (y * (b * 0.5))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 1.25e-257], N[(N[(N[(x / a), $MachinePrecision] * N[(1.0 - b), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y + N[(b * N[(y * N[(b * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.25 \cdot 10^{-257}:\\
\;\;\;\;\frac{\frac{x}{a} \cdot \left(1 - b\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(y \cdot \left(b \cdot 0.5\right)\right)\right)}\\
\end{array}
\end{array}
if b < 1.24999999999999997e-257Initial program 99.1%
Taylor expanded in y around 0 80.6%
div-exp72.5%
exp-to-pow73.1%
sub-neg73.1%
metadata-eval73.1%
Simplified73.1%
Taylor expanded in t around 0 61.5%
Taylor expanded in b around 0 28.2%
Taylor expanded in b around 0 47.3%
*-rgt-identity47.3%
cancel-sign-sub47.3%
mul-1-neg47.3%
associate-/l*41.0%
distribute-rgt-neg-out41.0%
*-commutative41.0%
distribute-lft-out--41.8%
distribute-neg-frac41.8%
Simplified41.8%
if 1.24999999999999997e-257 < b Initial program 98.9%
associate-/l*98.9%
associate--l+98.9%
exp-sum81.3%
associate-/l*80.4%
*-commutative80.4%
exp-to-pow80.4%
exp-diff77.9%
*-commutative77.9%
exp-to-pow78.9%
sub-neg78.9%
metadata-eval78.9%
Simplified78.9%
Taylor expanded in t around 0 67.7%
associate-/r*69.3%
Simplified69.3%
Taylor expanded in y around 0 61.6%
Taylor expanded in b around 0 43.7%
Taylor expanded in b around inf 43.7%
*-commutative43.7%
associate-*r*43.7%
*-commutative43.7%
associate-*r*43.7%
Simplified43.7%
Final simplification42.7%
(FPCore (x y z t a b) :precision binary64 (if (<= b 1.1e-257) (/ (- (/ x a) (/ (* x b) a)) y) (/ x (* a (+ y (* b (* y (* b 0.5))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 1.1e-257) {
tmp = ((x / a) - ((x * b) / a)) / y;
} else {
tmp = x / (a * (y + (b * (y * (b * 0.5)))));
}
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 <= 1.1d-257) then
tmp = ((x / a) - ((x * b) / a)) / y
else
tmp = x / (a * (y + (b * (y * (b * 0.5d0)))))
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 <= 1.1e-257) {
tmp = ((x / a) - ((x * b) / a)) / y;
} else {
tmp = x / (a * (y + (b * (y * (b * 0.5)))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 1.1e-257: tmp = ((x / a) - ((x * b) / a)) / y else: tmp = x / (a * (y + (b * (y * (b * 0.5))))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 1.1e-257) tmp = Float64(Float64(Float64(x / a) - Float64(Float64(x * b) / a)) / y); else tmp = Float64(x / Float64(a * Float64(y + Float64(b * Float64(y * Float64(b * 0.5)))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 1.1e-257) tmp = ((x / a) - ((x * b) / a)) / y; else tmp = x / (a * (y + (b * (y * (b * 0.5))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 1.1e-257], N[(N[(N[(x / a), $MachinePrecision] - N[(N[(x * b), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y + N[(b * N[(y * N[(b * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.1 \cdot 10^{-257}:\\
\;\;\;\;\frac{\frac{x}{a} - \frac{x \cdot b}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y + b \cdot \left(y \cdot \left(b \cdot 0.5\right)\right)\right)}\\
\end{array}
\end{array}
if b < 1.09999999999999994e-257Initial program 99.1%
Taylor expanded in y around 0 80.6%
div-exp72.5%
exp-to-pow73.1%
sub-neg73.1%
metadata-eval73.1%
Simplified73.1%
Taylor expanded in t around 0 61.5%
Taylor expanded in b around 0 47.3%
if 1.09999999999999994e-257 < b Initial program 98.9%
associate-/l*98.9%
associate--l+98.9%
exp-sum81.3%
associate-/l*80.4%
*-commutative80.4%
exp-to-pow80.4%
exp-diff77.9%
*-commutative77.9%
exp-to-pow78.9%
sub-neg78.9%
metadata-eval78.9%
Simplified78.9%
Taylor expanded in t around 0 67.7%
associate-/r*69.3%
Simplified69.3%
Taylor expanded in y around 0 61.6%
Taylor expanded in b around 0 43.7%
Taylor expanded in b around inf 43.7%
*-commutative43.7%
associate-*r*43.7%
*-commutative43.7%
associate-*r*43.7%
Simplified43.7%
Final simplification45.6%
(FPCore (x y z t a b) :precision binary64 (if (<= a 6e-55) (/ 1.0 (* a (/ y x))) (/ x (* y (+ a (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= 6e-55) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = x / (y * (a + (a * 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 (a <= 6d-55) then
tmp = 1.0d0 / (a * (y / x))
else
tmp = x / (y * (a + (a * 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 (a <= 6e-55) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = x / (y * (a + (a * b)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= 6e-55: tmp = 1.0 / (a * (y / x)) else: tmp = x / (y * (a + (a * b))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= 6e-55) tmp = Float64(1.0 / Float64(a * Float64(y / x))); else tmp = Float64(x / Float64(y * Float64(a + Float64(a * b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (a <= 6e-55) tmp = 1.0 / (a * (y / x)); else tmp = x / (y * (a + (a * b))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, 6e-55], N[(1.0 / N[(a * N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(y * N[(a + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq 6 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{a \cdot \frac{y}{x}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y \cdot \left(a + a \cdot b\right)}\\
\end{array}
\end{array}
if a < 6.00000000000000033e-55Initial program 99.2%
associate-/l*98.3%
associate--l+98.3%
exp-sum77.5%
associate-/l*77.5%
*-commutative77.5%
exp-to-pow77.5%
exp-diff69.2%
*-commutative69.2%
exp-to-pow69.8%
sub-neg69.8%
metadata-eval69.8%
Simplified69.8%
Taylor expanded in t around 0 74.3%
associate-/r*74.3%
Simplified74.3%
Taylor expanded in y around 0 54.4%
Taylor expanded in b around 0 29.3%
*-commutative29.3%
Simplified29.3%
clear-num29.3%
inv-pow29.3%
*-commutative29.3%
Applied egg-rr29.3%
unpow-129.3%
associate-/l*34.2%
Simplified34.2%
if 6.00000000000000033e-55 < a Initial program 98.9%
Taylor expanded in y around 0 86.7%
div-exp81.0%
exp-to-pow81.9%
sub-neg81.9%
metadata-eval81.9%
Simplified81.9%
Taylor expanded in t around 0 62.8%
Taylor expanded in b around 0 36.4%
Taylor expanded in x around 0 37.6%
Final simplification36.3%
(FPCore (x y z t a b) :precision binary64 (if (<= b -2800000.0) (/ 1.0 (* a (/ y x))) (/ (/ x (+ a (* a b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -2800000.0) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = (x / (a + (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 (b <= (-2800000.0d0)) then
tmp = 1.0d0 / (a * (y / x))
else
tmp = (x / (a + (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 (b <= -2800000.0) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = (x / (a + (a * b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -2800000.0: tmp = 1.0 / (a * (y / x)) else: tmp = (x / (a + (a * b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -2800000.0) tmp = Float64(1.0 / Float64(a * Float64(y / x))); else tmp = Float64(Float64(x / Float64(a + Float64(a * b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -2800000.0) tmp = 1.0 / (a * (y / x)); else tmp = (x / (a + (a * b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -2800000.0], N[(1.0 / N[(a * N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -2800000:\\
\;\;\;\;\frac{1}{a \cdot \frac{y}{x}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + a \cdot b}}{y}\\
\end{array}
\end{array}
if b < -2.8e6Initial program 100.0%
associate-/l*100.0%
associate--l+100.0%
exp-sum75.0%
associate-/l*75.0%
*-commutative75.0%
exp-to-pow75.0%
exp-diff58.9%
*-commutative58.9%
exp-to-pow58.9%
sub-neg58.9%
metadata-eval58.9%
Simplified58.9%
Taylor expanded in t around 0 73.3%
associate-/r*73.3%
Simplified73.3%
Taylor expanded in y around 0 87.7%
Taylor expanded in b around 0 23.9%
*-commutative23.9%
Simplified23.9%
clear-num23.9%
inv-pow23.9%
*-commutative23.9%
Applied egg-rr23.9%
unpow-123.9%
associate-/l*27.2%
Simplified27.2%
if -2.8e6 < b Initial program 98.8%
Taylor expanded in y around 0 79.8%
div-exp76.3%
exp-to-pow77.3%
sub-neg77.3%
metadata-eval77.3%
Simplified77.3%
Taylor expanded in t around 0 53.7%
Taylor expanded in b around 0 39.1%
Final simplification36.5%
(FPCore (x y z t a b) :precision binary64 (if (<= b -1.45e-148) (* (/ x (* y a)) (- 1.0 b)) (/ (/ x (+ a (* a b))) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -1.45e-148) {
tmp = (x / (y * a)) * (1.0 - b);
} else {
tmp = (x / (a + (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 (b <= (-1.45d-148)) then
tmp = (x / (y * a)) * (1.0d0 - b)
else
tmp = (x / (a + (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 (b <= -1.45e-148) {
tmp = (x / (y * a)) * (1.0 - b);
} else {
tmp = (x / (a + (a * b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -1.45e-148: tmp = (x / (y * a)) * (1.0 - b) else: tmp = (x / (a + (a * b))) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -1.45e-148) tmp = Float64(Float64(x / Float64(y * a)) * Float64(1.0 - b)); else tmp = Float64(Float64(x / Float64(a + Float64(a * b))) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -1.45e-148) tmp = (x / (y * a)) * (1.0 - b); else tmp = (x / (a + (a * b))) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -1.45e-148], N[(N[(x / N[(y * a), $MachinePrecision]), $MachinePrecision] * N[(1.0 - b), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.45 \cdot 10^{-148}:\\
\;\;\;\;\frac{x}{y \cdot a} \cdot \left(1 - b\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a + a \cdot b}}{y}\\
\end{array}
\end{array}
if b < -1.4499999999999999e-148Initial program 99.6%
Taylor expanded in y around 0 83.7%
div-exp71.7%
exp-to-pow71.8%
sub-neg71.8%
metadata-eval71.8%
Simplified71.8%
Taylor expanded in t around 0 66.9%
Taylor expanded in b around 0 17.3%
Taylor expanded in b around 0 42.4%
mul-1-neg42.4%
remove-double-neg42.4%
distribute-neg-out42.4%
sub-neg42.4%
associate-/l*35.4%
*-lft-identity35.4%
distribute-rgt-out--35.4%
Simplified35.4%
if -1.4499999999999999e-148 < b Initial program 98.7%
Taylor expanded in y around 0 81.5%
div-exp77.8%
exp-to-pow79.0%
sub-neg79.0%
metadata-eval79.0%
Simplified79.0%
Taylor expanded in t around 0 57.9%
Taylor expanded in b around 0 40.2%
Final simplification38.5%
(FPCore (x y z t a b) :precision binary64 (if (<= b 1.46e-12) (/ (* (/ x a) (- 1.0 b)) y) (/ (/ x (* a b)) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 1.46e-12) {
tmp = ((x / a) * (1.0 - b)) / y;
} else {
tmp = (x / (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 (b <= 1.46d-12) then
tmp = ((x / a) * (1.0d0 - b)) / y
else
tmp = (x / (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 (b <= 1.46e-12) {
tmp = ((x / a) * (1.0 - b)) / y;
} else {
tmp = (x / (a * b)) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 1.46e-12: tmp = ((x / a) * (1.0 - b)) / y else: tmp = (x / (a * b)) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 1.46e-12) tmp = Float64(Float64(Float64(x / a) * Float64(1.0 - b)) / y); else tmp = Float64(Float64(x / Float64(a * b)) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 1.46e-12) tmp = ((x / a) * (1.0 - b)) / y; else tmp = (x / (a * b)) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 1.46e-12], N[(N[(N[(x / a), $MachinePrecision] * N[(1.0 - b), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision], N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.46 \cdot 10^{-12}:\\
\;\;\;\;\frac{\frac{x}{a} \cdot \left(1 - b\right)}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a \cdot b}}{y}\\
\end{array}
\end{array}
if b < 1.46000000000000004e-12Initial program 98.8%
Taylor expanded in y around 0 80.3%
div-exp74.7%
exp-to-pow75.7%
sub-neg75.7%
metadata-eval75.7%
Simplified75.7%
Taylor expanded in t around 0 54.6%
Taylor expanded in b around 0 31.8%
Taylor expanded in b around 0 43.4%
*-rgt-identity43.4%
cancel-sign-sub43.4%
mul-1-neg43.4%
associate-/l*38.1%
distribute-rgt-neg-out38.1%
*-commutative38.1%
distribute-lft-out--41.1%
distribute-neg-frac41.1%
Simplified41.1%
if 1.46000000000000004e-12 < b Initial program 100.0%
Taylor expanded in y around 0 89.6%
div-exp78.8%
exp-to-pow78.8%
sub-neg78.8%
metadata-eval78.8%
Simplified78.8%
Taylor expanded in t around 0 84.3%
Taylor expanded in b around 0 32.5%
Taylor expanded in b around inf 34.1%
Final simplification39.6%
(FPCore (x y z t a b) :precision binary64 (if (<= b 5.2e+105) (/ (/ x a) y) (/ x (* a (* y b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 5.2e+105) {
tmp = (x / a) / y;
} else {
tmp = x / (a * (y * 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 (b <= 5.2d+105) then
tmp = (x / a) / y
else
tmp = x / (a * (y * 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 (b <= 5.2e+105) {
tmp = (x / a) / y;
} else {
tmp = x / (a * (y * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 5.2e+105: tmp = (x / a) / y else: tmp = x / (a * (y * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 5.2e+105) tmp = Float64(Float64(x / a) / y); else tmp = Float64(x / Float64(a * Float64(y * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 5.2e+105) tmp = (x / a) / y; else tmp = x / (a * (y * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 5.2e+105], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(a * N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 5.2 \cdot 10^{+105}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(y \cdot b\right)}\\
\end{array}
\end{array}
if b < 5.2000000000000004e105Initial program 98.9%
Taylor expanded in y around 0 80.6%
div-exp75.2%
exp-to-pow76.1%
sub-neg76.1%
metadata-eval76.1%
Simplified76.1%
Taylor expanded in t around 0 57.1%
Taylor expanded in b around 0 34.8%
if 5.2000000000000004e105 < b Initial program 100.0%
Taylor expanded in y around 0 94.0%
div-exp78.8%
exp-to-pow78.8%
sub-neg78.8%
metadata-eval78.8%
Simplified78.8%
Taylor expanded in t around 0 88.1%
Taylor expanded in b around 0 38.4%
Taylor expanded in b around inf 38.3%
Final simplification35.2%
(FPCore (x y z t a b) :precision binary64 (if (<= b 7e+36) (/ (/ x a) y) (/ x (* y (* a b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 7e+36) {
tmp = (x / a) / y;
} else {
tmp = x / (y * (a * 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 (b <= 7d+36) then
tmp = (x / a) / y
else
tmp = x / (y * (a * 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 (b <= 7e+36) {
tmp = (x / a) / y;
} else {
tmp = x / (y * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 7e+36: tmp = (x / a) / y else: tmp = x / (y * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 7e+36) tmp = Float64(Float64(x / a) / y); else tmp = Float64(x / Float64(y * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 7e+36) tmp = (x / a) / y; else tmp = x / (y * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 7e+36], N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision], N[(x / N[(y * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 7 \cdot 10^{+36}:\\
\;\;\;\;\frac{\frac{x}{a}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y \cdot \left(a \cdot b\right)}\\
\end{array}
\end{array}
if b < 6.9999999999999996e36Initial program 98.8%
Taylor expanded in y around 0 79.5%
div-exp74.2%
exp-to-pow75.2%
sub-neg75.2%
metadata-eval75.2%
Simplified75.2%
Taylor expanded in t around 0 54.7%
Taylor expanded in b around 0 35.3%
if 6.9999999999999996e36 < b Initial program 100.0%
Taylor expanded in y around 0 95.6%
div-exp82.2%
exp-to-pow82.2%
sub-neg82.2%
metadata-eval82.2%
Simplified82.2%
Taylor expanded in t around 0 91.3%
Taylor expanded in b around 0 35.4%
Taylor expanded in b around inf 33.2%
associate-*r*35.4%
Simplified35.4%
Final simplification35.3%
(FPCore (x y z t a b) :precision binary64 (if (<= b 7.5e-82) (/ 1.0 (* a (/ y x))) (/ (/ x (* a b)) y)))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= 7.5e-82) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = (x / (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 (b <= 7.5d-82) then
tmp = 1.0d0 / (a * (y / x))
else
tmp = (x / (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 (b <= 7.5e-82) {
tmp = 1.0 / (a * (y / x));
} else {
tmp = (x / (a * b)) / y;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= 7.5e-82: tmp = 1.0 / (a * (y / x)) else: tmp = (x / (a * b)) / y return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= 7.5e-82) tmp = Float64(1.0 / Float64(a * Float64(y / x))); else tmp = Float64(Float64(x / Float64(a * b)) / y); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= 7.5e-82) tmp = 1.0 / (a * (y / x)); else tmp = (x / (a * b)) / y; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, 7.5e-82], N[(1.0 / N[(a * N[(y / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(x / N[(a * b), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 7.5 \cdot 10^{-82}:\\
\;\;\;\;\frac{1}{a \cdot \frac{y}{x}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{a \cdot b}}{y}\\
\end{array}
\end{array}
if b < 7.4999999999999997e-82Initial program 98.7%
associate-/l*98.3%
associate--l+98.3%
exp-sum81.5%
associate-/l*80.4%
*-commutative80.4%
exp-to-pow80.4%
exp-diff75.5%
*-commutative75.5%
exp-to-pow76.6%
sub-neg76.6%
metadata-eval76.6%
Simplified76.6%
Taylor expanded in t around 0 69.1%
associate-/r*71.8%
Simplified71.8%
Taylor expanded in y around 0 54.9%
Taylor expanded in b around 0 35.2%
*-commutative35.2%
Simplified35.2%
clear-num35.2%
inv-pow35.2%
*-commutative35.2%
Applied egg-rr35.2%
unpow-135.2%
associate-/l*36.6%
Simplified36.6%
if 7.4999999999999997e-82 < b Initial program 99.8%
Taylor expanded in y around 0 89.0%
div-exp80.7%
exp-to-pow80.9%
sub-neg80.9%
metadata-eval80.9%
Simplified80.9%
Taylor expanded in t around 0 74.4%
Taylor expanded in b around 0 34.1%
Taylor expanded in b around inf 34.1%
Final simplification35.9%
(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 99.0%
associate-/l*98.7%
associate--l+98.7%
exp-sum80.0%
associate-/l*79.2%
*-commutative79.2%
exp-to-pow79.2%
exp-diff74.5%
*-commutative74.5%
exp-to-pow75.3%
sub-neg75.3%
metadata-eval75.3%
Simplified75.3%
Taylor expanded in t around 0 68.9%
associate-/r*70.8%
Simplified70.8%
Taylor expanded in y around 0 60.4%
Taylor expanded in b around 0 30.8%
*-commutative30.8%
Simplified30.8%
Final simplification30.8%
(FPCore (x y z t a b) :precision binary64 (/ (/ x a) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x / a) / 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 / a) / y
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x / a) / y;
}
def code(x, y, z, t, a, b): return (x / a) / y
function code(x, y, z, t, a, b) return Float64(Float64(x / a) / y) end
function tmp = code(x, y, z, t, a, b) tmp = (x / a) / y; end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x / a), $MachinePrecision] / y), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{x}{a}}{y}
\end{array}
Initial program 99.0%
Taylor expanded in y around 0 82.3%
div-exp75.6%
exp-to-pow76.4%
sub-neg76.4%
metadata-eval76.4%
Simplified76.4%
Taylor expanded in t around 0 61.1%
Taylor expanded in b around 0 32.6%
Final simplification32.6%
(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 2024079
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:alt
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))