
(FPCore (x y z t a b c)
:precision binary64
(/
x
(+
x
(*
y
(exp
(*
2.0
(-
(/ (* z (sqrt (+ t a))) t)
(* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
return x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
code = x / (x + (y * exp((2.0d0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
return x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
def code(x, y, z, t, a, b, c): return x / (x + (y * math.exp((2.0 * (((z * math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))))
function code(x, y, z, t, a, b, c) return Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0)))))))))) end
function tmp = code(x, y, z, t, a, b, c) tmp = x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0))))))))); end
code[x_, y_, z_, t_, a_, b_, c_] := N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 17 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c)
:precision binary64
(/
x
(+
x
(*
y
(exp
(*
2.0
(-
(/ (* z (sqrt (+ t a))) t)
(* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
return x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
code = x / (x + (y * exp((2.0d0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
return x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
def code(x, y, z, t, a, b, c): return x / (x + (y * math.exp((2.0 * (((z * math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))))
function code(x, y, z, t, a, b, c) return Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0)))))))))) end
function tmp = code(x, y, z, t, a, b, c) tmp = x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0))))))))); end
code[x_, y_, z_, t_, a_, b_, c_] := N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\end{array}
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1
(+
(/ (* z (sqrt (+ t a))) t)
(* (- b c) (- (/ 2.0 (* t 3.0)) (+ a 0.8333333333333334))))))
(if (<= t_1 INFINITY)
(/ x (+ x (* y (exp (* 2.0 t_1)))))
(/
x
(+
x
(*
y
(exp
(*
2.0
(/ (+ (* z (sqrt a)) (* -0.6666666666666666 (- c b))) t)))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = ((z * sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + 0.8333333333333334)));
double tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = x / (x + (y * exp((2.0 * t_1))));
} else {
tmp = x / (x + (y * exp((2.0 * (((z * sqrt(a)) + (-0.6666666666666666 * (c - b))) / t)))));
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = ((z * Math.sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + 0.8333333333333334)));
double tmp;
if (t_1 <= Double.POSITIVE_INFINITY) {
tmp = x / (x + (y * Math.exp((2.0 * t_1))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt(a)) + (-0.6666666666666666 * (c - b))) / t)))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = ((z * math.sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + 0.8333333333333334))) tmp = 0 if t_1 <= math.inf: tmp = x / (x + (y * math.exp((2.0 * t_1)))) else: tmp = x / (x + (y * math.exp((2.0 * (((z * math.sqrt(a)) + (-0.6666666666666666 * (c - b))) / t))))) return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) + Float64(Float64(b - c) * Float64(Float64(2.0 / Float64(t * 3.0)) - Float64(a + 0.8333333333333334)))) tmp = 0.0 if (t_1 <= Inf) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * t_1))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(a)) + Float64(-0.6666666666666666 * Float64(c - b))) / t)))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = ((z * sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + 0.8333333333333334))); tmp = 0.0; if (t_1 <= Inf) tmp = x / (x + (y * exp((2.0 * t_1)))); else tmp = x / (x + (y * exp((2.0 * (((z * sqrt(a)) + (-0.6666666666666666 * (c - b))) / t))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] + N[(N[(b - c), $MachinePrecision] * N[(N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision] - N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * t$95$1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[a], $MachinePrecision]), $MachinePrecision] + N[(-0.6666666666666666 * N[(c - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + 0.8333333333333334\right)\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot t\_1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{z \cdot \sqrt{a} + -0.6666666666666666 \cdot \left(c - b\right)}{t}}}\\
\end{array}
\end{array}
if (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64)))))) < +inf.0Initial program 99.6%
if +inf.0 < (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64)))))) Initial program 0.0%
Taylor expanded in t around 0 83.9%
Final simplification99.2%
(FPCore (x y z t a b c)
:precision binary64
(/
x
(fma
y
(pow
(exp 2.0)
(fma
z
(/ (sqrt (+ t a)) t)
(* (+ a (- 0.8333333333333334 (/ 0.6666666666666666 t))) (- c b))))
x)))
double code(double x, double y, double z, double t, double a, double b, double c) {
return x / fma(y, pow(exp(2.0), fma(z, (sqrt((t + a)) / t), ((a + (0.8333333333333334 - (0.6666666666666666 / t))) * (c - b)))), x);
}
function code(x, y, z, t, a, b, c) return Float64(x / fma(y, (exp(2.0) ^ fma(z, Float64(sqrt(Float64(t + a)) / t), Float64(Float64(a + Float64(0.8333333333333334 - Float64(0.6666666666666666 / t))) * Float64(c - b)))), x)) end
code[x_, y_, z_, t_, a_, b_, c_] := N[(x / N[(y * N[Power[N[Exp[2.0], $MachinePrecision], N[(z * N[(N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision] / t), $MachinePrecision] + N[(N[(a + N[(0.8333333333333334 - N[(0.6666666666666666 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(c - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(a + \left(0.8333333333333334 - \frac{0.6666666666666666}{t}\right)\right) \cdot \left(c - b\right)\right)\right)}, x\right)}
\end{array}
Initial program 97.3%
Simplified98.1%
Final simplification98.1%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1
(/
x
(+
x
(*
y
(exp
(*
2.0
(*
b
(- (/ 0.6666666666666666 t) (+ a 0.8333333333333334))))))))))
(if (<= t 2.05e-305)
t_1
(if (<= t 1.26e-126)
(/
x
(+
x
(*
y
(exp (* 2.0 (* a (+ c (/ (* c -0.6666666666666666) (* t a)))))))))
(if (<= t 1e-14)
t_1
(/
x
(+
x
(*
y
(exp
(*
2.0
(+ (/ z (sqrt t)) (* (+ a 0.8333333333333334) (- c b)))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
double tmp;
if (t <= 2.05e-305) {
tmp = t_1;
} else if (t <= 1.26e-126) {
tmp = x / (x + (y * exp((2.0 * (a * (c + ((c * -0.6666666666666666) / (t * a))))))));
} else if (t <= 1e-14) {
tmp = t_1;
} else {
tmp = x / (x + (y * exp((2.0 * ((z / sqrt(t)) + ((a + 0.8333333333333334) * (c - b)))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: tmp
t_1 = x / (x + (y * exp((2.0d0 * (b * ((0.6666666666666666d0 / t) - (a + 0.8333333333333334d0)))))))
if (t <= 2.05d-305) then
tmp = t_1
else if (t <= 1.26d-126) then
tmp = x / (x + (y * exp((2.0d0 * (a * (c + ((c * (-0.6666666666666666d0)) / (t * a))))))))
else if (t <= 1d-14) then
tmp = t_1
else
tmp = x / (x + (y * exp((2.0d0 * ((z / sqrt(t)) + ((a + 0.8333333333333334d0) * (c - b)))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * Math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
double tmp;
if (t <= 2.05e-305) {
tmp = t_1;
} else if (t <= 1.26e-126) {
tmp = x / (x + (y * Math.exp((2.0 * (a * (c + ((c * -0.6666666666666666) / (t * a))))))));
} else if (t <= 1e-14) {
tmp = t_1;
} else {
tmp = x / (x + (y * Math.exp((2.0 * ((z / Math.sqrt(t)) + ((a + 0.8333333333333334) * (c - b)))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = x / (x + (y * math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))) tmp = 0 if t <= 2.05e-305: tmp = t_1 elif t <= 1.26e-126: tmp = x / (x + (y * math.exp((2.0 * (a * (c + ((c * -0.6666666666666666) / (t * a)))))))) elif t <= 1e-14: tmp = t_1 else: tmp = x / (x + (y * math.exp((2.0 * ((z / math.sqrt(t)) + ((a + 0.8333333333333334) * (c - b))))))) return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(Float64(0.6666666666666666 / t) - Float64(a + 0.8333333333333334)))))))) tmp = 0.0 if (t <= 2.05e-305) tmp = t_1; elseif (t <= 1.26e-126) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * Float64(c + Float64(Float64(c * -0.6666666666666666) / Float64(t * a))))))))); elseif (t <= 1e-14) tmp = t_1; else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(z / sqrt(t)) + Float64(Float64(a + 0.8333333333333334) * Float64(c - b)))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))); tmp = 0.0; if (t <= 2.05e-305) tmp = t_1; elseif (t <= 1.26e-126) tmp = x / (x + (y * exp((2.0 * (a * (c + ((c * -0.6666666666666666) / (t * a)))))))); elseif (t <= 1e-14) tmp = t_1; else tmp = x / (x + (y * exp((2.0 * ((z / sqrt(t)) + ((a + 0.8333333333333334) * (c - b))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(N[(0.6666666666666666 / t), $MachinePrecision] - N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 2.05e-305], t$95$1, If[LessEqual[t, 1.26e-126], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * N[(c + N[(N[(c * -0.6666666666666666), $MachinePrecision] / N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1e-14], t$95$1, N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(z / N[Sqrt[t], $MachinePrecision]), $MachinePrecision] + N[(N[(a + 0.8333333333333334), $MachinePrecision] * N[(c - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}\\
\mathbf{if}\;t \leq 2.05 \cdot 10^{-305}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.26 \cdot 10^{-126}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot \left(c + \frac{c \cdot -0.6666666666666666}{t \cdot a}\right)\right)}}\\
\mathbf{elif}\;t \leq 10^{-14}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt{t}} + \left(a + 0.8333333333333334\right) \cdot \left(c - b\right)\right)}}\\
\end{array}
\end{array}
if t < 2.0500000000000001e-305 or 1.26e-126 < t < 9.99999999999999999e-15Initial program 94.2%
Taylor expanded in b around inf 79.4%
associate-*r/79.4%
metadata-eval79.4%
+-commutative79.4%
Simplified79.4%
if 2.0500000000000001e-305 < t < 1.26e-126Initial program 97.6%
Taylor expanded in c around inf 69.7%
+-commutative69.7%
associate-*r/69.7%
metadata-eval69.7%
Simplified69.7%
Taylor expanded in a around inf 69.7%
associate-/l*76.4%
associate-*r/76.4%
metadata-eval76.4%
Simplified76.4%
Taylor expanded in t around 0 76.4%
associate-*r/76.4%
*-commutative76.4%
*-commutative76.4%
Simplified76.4%
if 9.99999999999999999e-15 < t Initial program 99.2%
Taylor expanded in t around inf 98.5%
*-commutative98.5%
sqrt-div98.5%
metadata-eval98.5%
un-div-inv98.5%
Applied egg-rr98.5%
Final simplification88.6%
(FPCore (x y z t a b c)
:precision binary64
(if (<= t -5.2e-49)
(/ x (+ x (* y (exp (* 2.0 (* a (- b)))))))
(if (<= t 3.2e-84)
(/
x
(+
x
(*
y
(exp
(* 2.0 (/ (+ (* z (sqrt a)) (* -0.6666666666666666 (- c b))) t))))))
(if (<= t 0.8)
(/ x (+ x (* y (exp (* 2.0 (* c (- a (/ 0.6666666666666666 t))))))))
(/
x
(+
x
(*
y
(exp
(*
2.0
(+ (/ z (sqrt t)) (* (+ a 0.8333333333333334) (- c b))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -5.2e-49) {
tmp = x / (x + (y * exp((2.0 * (a * -b)))));
} else if (t <= 3.2e-84) {
tmp = x / (x + (y * exp((2.0 * (((z * sqrt(a)) + (-0.6666666666666666 * (c - b))) / t)))));
} else if (t <= 0.8) {
tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
} else {
tmp = x / (x + (y * exp((2.0 * ((z / sqrt(t)) + ((a + 0.8333333333333334) * (c - b)))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (t <= (-5.2d-49)) then
tmp = x / (x + (y * exp((2.0d0 * (a * -b)))))
else if (t <= 3.2d-84) then
tmp = x / (x + (y * exp((2.0d0 * (((z * sqrt(a)) + ((-0.6666666666666666d0) * (c - b))) / t)))))
else if (t <= 0.8d0) then
tmp = x / (x + (y * exp((2.0d0 * (c * (a - (0.6666666666666666d0 / t)))))))
else
tmp = x / (x + (y * exp((2.0d0 * ((z / sqrt(t)) + ((a + 0.8333333333333334d0) * (c - b)))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -5.2e-49) {
tmp = x / (x + (y * Math.exp((2.0 * (a * -b)))));
} else if (t <= 3.2e-84) {
tmp = x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt(a)) + (-0.6666666666666666 * (c - b))) / t)))));
} else if (t <= 0.8) {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * ((z / Math.sqrt(t)) + ((a + 0.8333333333333334) * (c - b)))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if t <= -5.2e-49: tmp = x / (x + (y * math.exp((2.0 * (a * -b))))) elif t <= 3.2e-84: tmp = x / (x + (y * math.exp((2.0 * (((z * math.sqrt(a)) + (-0.6666666666666666 * (c - b))) / t))))) elif t <= 0.8: tmp = x / (x + (y * math.exp((2.0 * (c * (a - (0.6666666666666666 / t))))))) else: tmp = x / (x + (y * math.exp((2.0 * ((z / math.sqrt(t)) + ((a + 0.8333333333333334) * (c - b))))))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (t <= -5.2e-49) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * Float64(-b))))))); elseif (t <= 3.2e-84) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(a)) + Float64(-0.6666666666666666 * Float64(c - b))) / t)))))); elseif (t <= 0.8) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a - Float64(0.6666666666666666 / t)))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(z / sqrt(t)) + Float64(Float64(a + 0.8333333333333334) * Float64(c - b)))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (t <= -5.2e-49) tmp = x / (x + (y * exp((2.0 * (a * -b))))); elseif (t <= 3.2e-84) tmp = x / (x + (y * exp((2.0 * (((z * sqrt(a)) + (-0.6666666666666666 * (c - b))) / t))))); elseif (t <= 0.8) tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t))))))); else tmp = x / (x + (y * exp((2.0 * ((z / sqrt(t)) + ((a + 0.8333333333333334) * (c - b))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[t, -5.2e-49], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * (-b)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 3.2e-84], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[a], $MachinePrecision]), $MachinePrecision] + N[(-0.6666666666666666 * N[(c - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 0.8], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a - N[(0.6666666666666666 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(z / N[Sqrt[t], $MachinePrecision]), $MachinePrecision] + N[(N[(a + 0.8333333333333334), $MachinePrecision] * N[(c - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -5.2 \cdot 10^{-49}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot \left(-b\right)\right)}}\\
\mathbf{elif}\;t \leq 3.2 \cdot 10^{-84}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{z \cdot \sqrt{a} + -0.6666666666666666 \cdot \left(c - b\right)}{t}}}\\
\mathbf{elif}\;t \leq 0.8:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a - \frac{0.6666666666666666}{t}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt{t}} + \left(a + 0.8333333333333334\right) \cdot \left(c - b\right)\right)}}\\
\end{array}
\end{array}
if t < -5.1999999999999999e-49Initial program 96.2%
Taylor expanded in b around inf 87.6%
associate-*r/87.6%
metadata-eval87.6%
+-commutative87.6%
Simplified87.6%
Taylor expanded in a around inf 87.6%
associate-*r*87.6%
neg-mul-187.6%
Simplified87.6%
if -5.1999999999999999e-49 < t < 3.1999999999999999e-84Initial program 94.1%
Taylor expanded in t around 0 91.9%
if 3.1999999999999999e-84 < t < 0.80000000000000004Initial program 100.0%
Taylor expanded in c around inf 80.8%
+-commutative80.8%
associate-*r/80.8%
metadata-eval80.8%
Simplified80.8%
Taylor expanded in a around inf 80.8%
if 0.80000000000000004 < t Initial program 99.2%
Taylor expanded in t around inf 100.0%
*-commutative100.0%
sqrt-div100.0%
metadata-eval100.0%
un-div-inv100.0%
Applied egg-rr100.0%
Final simplification94.5%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1 (/ x (+ x (* y (exp (/ (* b 1.3333333333333333) t))))))
(t_2 (/ x (+ x (* y (exp (* -1.3333333333333333 (/ c t))))))))
(if (<= t -1e-103)
(/ x (+ x (* y (exp (* 2.0 (* a (- b)))))))
(if (<= t -5.2e-222)
t_2
(if (<= t -4e-281)
t_1
(if (<= t 2e-303)
1.0
(if (<= t 1.6e-188)
t_2
(if (<= t 1.04e-140)
1.0
(if (<= t 0.75)
t_1
(/
x
(+
x
(*
y
(exp (* 2.0 (* b (- -0.8333333333333334 a))))))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * exp(((b * 1.3333333333333333) / t))));
double t_2 = x / (x + (y * exp((-1.3333333333333333 * (c / t)))));
double tmp;
if (t <= -1e-103) {
tmp = x / (x + (y * exp((2.0 * (a * -b)))));
} else if (t <= -5.2e-222) {
tmp = t_2;
} else if (t <= -4e-281) {
tmp = t_1;
} else if (t <= 2e-303) {
tmp = 1.0;
} else if (t <= 1.6e-188) {
tmp = t_2;
} else if (t <= 1.04e-140) {
tmp = 1.0;
} else if (t <= 0.75) {
tmp = t_1;
} else {
tmp = x / (x + (y * exp((2.0 * (b * (-0.8333333333333334 - a))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x / (x + (y * exp(((b * 1.3333333333333333d0) / t))))
t_2 = x / (x + (y * exp(((-1.3333333333333333d0) * (c / t)))))
if (t <= (-1d-103)) then
tmp = x / (x + (y * exp((2.0d0 * (a * -b)))))
else if (t <= (-5.2d-222)) then
tmp = t_2
else if (t <= (-4d-281)) then
tmp = t_1
else if (t <= 2d-303) then
tmp = 1.0d0
else if (t <= 1.6d-188) then
tmp = t_2
else if (t <= 1.04d-140) then
tmp = 1.0d0
else if (t <= 0.75d0) then
tmp = t_1
else
tmp = x / (x + (y * exp((2.0d0 * (b * ((-0.8333333333333334d0) - a))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * Math.exp(((b * 1.3333333333333333) / t))));
double t_2 = x / (x + (y * Math.exp((-1.3333333333333333 * (c / t)))));
double tmp;
if (t <= -1e-103) {
tmp = x / (x + (y * Math.exp((2.0 * (a * -b)))));
} else if (t <= -5.2e-222) {
tmp = t_2;
} else if (t <= -4e-281) {
tmp = t_1;
} else if (t <= 2e-303) {
tmp = 1.0;
} else if (t <= 1.6e-188) {
tmp = t_2;
} else if (t <= 1.04e-140) {
tmp = 1.0;
} else if (t <= 0.75) {
tmp = t_1;
} else {
tmp = x / (x + (y * Math.exp((2.0 * (b * (-0.8333333333333334 - a))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = x / (x + (y * math.exp(((b * 1.3333333333333333) / t)))) t_2 = x / (x + (y * math.exp((-1.3333333333333333 * (c / t))))) tmp = 0 if t <= -1e-103: tmp = x / (x + (y * math.exp((2.0 * (a * -b))))) elif t <= -5.2e-222: tmp = t_2 elif t <= -4e-281: tmp = t_1 elif t <= 2e-303: tmp = 1.0 elif t <= 1.6e-188: tmp = t_2 elif t <= 1.04e-140: tmp = 1.0 elif t <= 0.75: tmp = t_1 else: tmp = x / (x + (y * math.exp((2.0 * (b * (-0.8333333333333334 - a)))))) return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(x / Float64(x + Float64(y * exp(Float64(Float64(b * 1.3333333333333333) / t))))) t_2 = Float64(x / Float64(x + Float64(y * exp(Float64(-1.3333333333333333 * Float64(c / t)))))) tmp = 0.0 if (t <= -1e-103) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * Float64(-b))))))); elseif (t <= -5.2e-222) tmp = t_2; elseif (t <= -4e-281) tmp = t_1; elseif (t <= 2e-303) tmp = 1.0; elseif (t <= 1.6e-188) tmp = t_2; elseif (t <= 1.04e-140) tmp = 1.0; elseif (t <= 0.75) tmp = t_1; else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(-0.8333333333333334 - a))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = x / (x + (y * exp(((b * 1.3333333333333333) / t)))); t_2 = x / (x + (y * exp((-1.3333333333333333 * (c / t))))); tmp = 0.0; if (t <= -1e-103) tmp = x / (x + (y * exp((2.0 * (a * -b))))); elseif (t <= -5.2e-222) tmp = t_2; elseif (t <= -4e-281) tmp = t_1; elseif (t <= 2e-303) tmp = 1.0; elseif (t <= 1.6e-188) tmp = t_2; elseif (t <= 1.04e-140) tmp = 1.0; elseif (t <= 0.75) tmp = t_1; else tmp = x / (x + (y * exp((2.0 * (b * (-0.8333333333333334 - a)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(x / N[(x + N[(y * N[Exp[N[(N[(b * 1.3333333333333333), $MachinePrecision] / t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x / N[(x + N[(y * N[Exp[N[(-1.3333333333333333 * N[(c / t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1e-103], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * (-b)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -5.2e-222], t$95$2, If[LessEqual[t, -4e-281], t$95$1, If[LessEqual[t, 2e-303], 1.0, If[LessEqual[t, 1.6e-188], t$95$2, If[LessEqual[t, 1.04e-140], 1.0, If[LessEqual[t, 0.75], t$95$1, N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(-0.8333333333333334 - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{x + y \cdot e^{\frac{b \cdot 1.3333333333333333}{t}}}\\
t_2 := \frac{x}{x + y \cdot e^{-1.3333333333333333 \cdot \frac{c}{t}}}\\
\mathbf{if}\;t \leq -1 \cdot 10^{-103}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot \left(-b\right)\right)}}\\
\mathbf{elif}\;t \leq -5.2 \cdot 10^{-222}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -4 \cdot 10^{-281}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 2 \cdot 10^{-303}:\\
\;\;\;\;1\\
\mathbf{elif}\;t \leq 1.6 \cdot 10^{-188}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 1.04 \cdot 10^{-140}:\\
\;\;\;\;1\\
\mathbf{elif}\;t \leq 0.75:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(-0.8333333333333334 - a\right)\right)}}\\
\end{array}
\end{array}
if t < -9.99999999999999958e-104Initial program 93.3%
Taylor expanded in b around inf 86.0%
associate-*r/86.0%
metadata-eval86.0%
+-commutative86.0%
Simplified86.0%
Taylor expanded in a around inf 86.0%
associate-*r*86.0%
neg-mul-186.0%
Simplified86.0%
if -9.99999999999999958e-104 < t < -5.1999999999999997e-222 or 1.99999999999999986e-303 < t < 1.60000000000000011e-188Initial program 94.4%
Taylor expanded in t around 0 100.0%
Taylor expanded in c around inf 81.3%
*-commutative81.3%
Simplified81.3%
Taylor expanded in y around 0 81.3%
if -5.1999999999999997e-222 < t < -4.0000000000000001e-281 or 1.04000000000000004e-140 < t < 0.75Initial program 100.0%
Taylor expanded in b around inf 76.5%
associate-*r/76.5%
metadata-eval76.5%
+-commutative76.5%
Simplified76.5%
Taylor expanded in t around 0 74.2%
associate-*r/74.2%
*-commutative74.2%
Simplified74.2%
Taylor expanded in b around 0 74.2%
associate-*r/74.2%
Simplified74.2%
if -4.0000000000000001e-281 < t < 1.99999999999999986e-303 or 1.60000000000000011e-188 < t < 1.04000000000000004e-140Initial program 91.7%
Taylor expanded in c around inf 48.1%
+-commutative48.1%
associate-*r/48.1%
metadata-eval48.1%
Simplified48.1%
Taylor expanded in a around inf 48.1%
associate-/l*55.6%
associate-*r/55.6%
metadata-eval55.6%
Simplified55.6%
Taylor expanded in x around inf 75.8%
if 0.75 < t Initial program 99.2%
Taylor expanded in b around inf 64.0%
associate-*r/64.0%
metadata-eval64.0%
+-commutative64.0%
Simplified64.0%
Taylor expanded in t around inf 64.0%
mul-1-neg64.0%
+-commutative64.0%
distribute-rgt-neg-in64.0%
+-commutative64.0%
mul-1-neg64.0%
distribute-lft-in64.0%
metadata-eval64.0%
neg-mul-164.0%
unsub-neg64.0%
Simplified64.0%
Final simplification71.7%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1 (/ x (+ x (* y (exp (/ (* b 1.3333333333333333) t))))))
(t_2 (/ x (+ x (* y (exp (* -1.3333333333333333 (/ c t))))))))
(if (<= t -7.4e-106)
(/ x (+ x (* y (exp (* 2.0 (* a (- b)))))))
(if (<= t -9.5e-223)
t_2
(if (<= t -4e-284)
t_1
(if (<= t 2e-303)
1.0
(if (<= t 5.4e-189)
t_2
(if (<= t 3.2e-140)
1.0
(if (<= t 0.125)
t_1
(/
x
(+
x
(*
y
(exp (* 2.0 (* c (+ a 0.8333333333333334))))))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * exp(((b * 1.3333333333333333) / t))));
double t_2 = x / (x + (y * exp((-1.3333333333333333 * (c / t)))));
double tmp;
if (t <= -7.4e-106) {
tmp = x / (x + (y * exp((2.0 * (a * -b)))));
} else if (t <= -9.5e-223) {
tmp = t_2;
} else if (t <= -4e-284) {
tmp = t_1;
} else if (t <= 2e-303) {
tmp = 1.0;
} else if (t <= 5.4e-189) {
tmp = t_2;
} else if (t <= 3.2e-140) {
tmp = 1.0;
} else if (t <= 0.125) {
tmp = t_1;
} else {
tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x / (x + (y * exp(((b * 1.3333333333333333d0) / t))))
t_2 = x / (x + (y * exp(((-1.3333333333333333d0) * (c / t)))))
if (t <= (-7.4d-106)) then
tmp = x / (x + (y * exp((2.0d0 * (a * -b)))))
else if (t <= (-9.5d-223)) then
tmp = t_2
else if (t <= (-4d-284)) then
tmp = t_1
else if (t <= 2d-303) then
tmp = 1.0d0
else if (t <= 5.4d-189) then
tmp = t_2
else if (t <= 3.2d-140) then
tmp = 1.0d0
else if (t <= 0.125d0) then
tmp = t_1
else
tmp = x / (x + (y * exp((2.0d0 * (c * (a + 0.8333333333333334d0))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * Math.exp(((b * 1.3333333333333333) / t))));
double t_2 = x / (x + (y * Math.exp((-1.3333333333333333 * (c / t)))));
double tmp;
if (t <= -7.4e-106) {
tmp = x / (x + (y * Math.exp((2.0 * (a * -b)))));
} else if (t <= -9.5e-223) {
tmp = t_2;
} else if (t <= -4e-284) {
tmp = t_1;
} else if (t <= 2e-303) {
tmp = 1.0;
} else if (t <= 5.4e-189) {
tmp = t_2;
} else if (t <= 3.2e-140) {
tmp = 1.0;
} else if (t <= 0.125) {
tmp = t_1;
} else {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a + 0.8333333333333334))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = x / (x + (y * math.exp(((b * 1.3333333333333333) / t)))) t_2 = x / (x + (y * math.exp((-1.3333333333333333 * (c / t))))) tmp = 0 if t <= -7.4e-106: tmp = x / (x + (y * math.exp((2.0 * (a * -b))))) elif t <= -9.5e-223: tmp = t_2 elif t <= -4e-284: tmp = t_1 elif t <= 2e-303: tmp = 1.0 elif t <= 5.4e-189: tmp = t_2 elif t <= 3.2e-140: tmp = 1.0 elif t <= 0.125: tmp = t_1 else: tmp = x / (x + (y * math.exp((2.0 * (c * (a + 0.8333333333333334)))))) return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(x / Float64(x + Float64(y * exp(Float64(Float64(b * 1.3333333333333333) / t))))) t_2 = Float64(x / Float64(x + Float64(y * exp(Float64(-1.3333333333333333 * Float64(c / t)))))) tmp = 0.0 if (t <= -7.4e-106) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * Float64(-b))))))); elseif (t <= -9.5e-223) tmp = t_2; elseif (t <= -4e-284) tmp = t_1; elseif (t <= 2e-303) tmp = 1.0; elseif (t <= 5.4e-189) tmp = t_2; elseif (t <= 3.2e-140) tmp = 1.0; elseif (t <= 0.125) tmp = t_1; else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a + 0.8333333333333334))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = x / (x + (y * exp(((b * 1.3333333333333333) / t)))); t_2 = x / (x + (y * exp((-1.3333333333333333 * (c / t))))); tmp = 0.0; if (t <= -7.4e-106) tmp = x / (x + (y * exp((2.0 * (a * -b))))); elseif (t <= -9.5e-223) tmp = t_2; elseif (t <= -4e-284) tmp = t_1; elseif (t <= 2e-303) tmp = 1.0; elseif (t <= 5.4e-189) tmp = t_2; elseif (t <= 3.2e-140) tmp = 1.0; elseif (t <= 0.125) tmp = t_1; else tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(x / N[(x + N[(y * N[Exp[N[(N[(b * 1.3333333333333333), $MachinePrecision] / t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x / N[(x + N[(y * N[Exp[N[(-1.3333333333333333 * N[(c / t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -7.4e-106], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * (-b)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -9.5e-223], t$95$2, If[LessEqual[t, -4e-284], t$95$1, If[LessEqual[t, 2e-303], 1.0, If[LessEqual[t, 5.4e-189], t$95$2, If[LessEqual[t, 3.2e-140], 1.0, If[LessEqual[t, 0.125], t$95$1, N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{x + y \cdot e^{\frac{b \cdot 1.3333333333333333}{t}}}\\
t_2 := \frac{x}{x + y \cdot e^{-1.3333333333333333 \cdot \frac{c}{t}}}\\
\mathbf{if}\;t \leq -7.4 \cdot 10^{-106}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot \left(-b\right)\right)}}\\
\mathbf{elif}\;t \leq -9.5 \cdot 10^{-223}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -4 \cdot 10^{-284}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 2 \cdot 10^{-303}:\\
\;\;\;\;1\\
\mathbf{elif}\;t \leq 5.4 \cdot 10^{-189}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 3.2 \cdot 10^{-140}:\\
\;\;\;\;1\\
\mathbf{elif}\;t \leq 0.125:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a + 0.8333333333333334\right)\right)}}\\
\end{array}
\end{array}
if t < -7.39999999999999959e-106Initial program 93.3%
Taylor expanded in b around inf 86.0%
associate-*r/86.0%
metadata-eval86.0%
+-commutative86.0%
Simplified86.0%
Taylor expanded in a around inf 86.0%
associate-*r*86.0%
neg-mul-186.0%
Simplified86.0%
if -7.39999999999999959e-106 < t < -9.49999999999999992e-223 or 1.99999999999999986e-303 < t < 5.3999999999999999e-189Initial program 94.4%
Taylor expanded in t around 0 100.0%
Taylor expanded in c around inf 81.3%
*-commutative81.3%
Simplified81.3%
Taylor expanded in y around 0 81.3%
if -9.49999999999999992e-223 < t < -4.00000000000000015e-284 or 3.2000000000000001e-140 < t < 0.125Initial program 100.0%
Taylor expanded in b around inf 76.5%
associate-*r/76.5%
metadata-eval76.5%
+-commutative76.5%
Simplified76.5%
Taylor expanded in t around 0 74.2%
associate-*r/74.2%
*-commutative74.2%
Simplified74.2%
Taylor expanded in b around 0 74.2%
associate-*r/74.2%
Simplified74.2%
if -4.00000000000000015e-284 < t < 1.99999999999999986e-303 or 5.3999999999999999e-189 < t < 3.2000000000000001e-140Initial program 91.7%
Taylor expanded in c around inf 48.1%
+-commutative48.1%
associate-*r/48.1%
metadata-eval48.1%
Simplified48.1%
Taylor expanded in a around inf 48.1%
associate-/l*55.6%
associate-*r/55.6%
metadata-eval55.6%
Simplified55.6%
Taylor expanded in x around inf 75.8%
if 0.125 < t Initial program 99.2%
Taylor expanded in c around inf 66.9%
+-commutative66.9%
associate-*r/66.9%
metadata-eval66.9%
Simplified66.9%
Taylor expanded in t around inf 66.9%
Final simplification73.1%
(FPCore (x y z t a b c)
:precision binary64
(if (or (<= c -6600000.0)
(and (not (<= c 5.2e-72)) (or (<= c 1.55e+51) (not (<= c 5.8e+99)))))
(/
x
(+
x
(*
y
(exp
(* 2.0 (* c (- (+ a 0.8333333333333334) (/ 0.6666666666666666 t))))))))
(/
x
(+
x
(*
y
(exp
(*
2.0
(* b (- (/ 0.6666666666666666 t) (+ a 0.8333333333333334))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((c <= -6600000.0) || (!(c <= 5.2e-72) && ((c <= 1.55e+51) || !(c <= 5.8e+99)))) {
tmp = x / (x + (y * exp((2.0 * (c * ((a + 0.8333333333333334) - (0.6666666666666666 / t)))))));
} else {
tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if ((c <= (-6600000.0d0)) .or. (.not. (c <= 5.2d-72)) .and. (c <= 1.55d+51) .or. (.not. (c <= 5.8d+99))) then
tmp = x / (x + (y * exp((2.0d0 * (c * ((a + 0.8333333333333334d0) - (0.6666666666666666d0 / t)))))))
else
tmp = x / (x + (y * exp((2.0d0 * (b * ((0.6666666666666666d0 / t) - (a + 0.8333333333333334d0)))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((c <= -6600000.0) || (!(c <= 5.2e-72) && ((c <= 1.55e+51) || !(c <= 5.8e+99)))) {
tmp = x / (x + (y * Math.exp((2.0 * (c * ((a + 0.8333333333333334) - (0.6666666666666666 / t)))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if (c <= -6600000.0) or (not (c <= 5.2e-72) and ((c <= 1.55e+51) or not (c <= 5.8e+99))): tmp = x / (x + (y * math.exp((2.0 * (c * ((a + 0.8333333333333334) - (0.6666666666666666 / t))))))) else: tmp = x / (x + (y * math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if ((c <= -6600000.0) || (!(c <= 5.2e-72) && ((c <= 1.55e+51) || !(c <= 5.8e+99)))) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(Float64(a + 0.8333333333333334) - Float64(0.6666666666666666 / t)))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(Float64(0.6666666666666666 / t) - Float64(a + 0.8333333333333334)))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if ((c <= -6600000.0) || (~((c <= 5.2e-72)) && ((c <= 1.55e+51) || ~((c <= 5.8e+99))))) tmp = x / (x + (y * exp((2.0 * (c * ((a + 0.8333333333333334) - (0.6666666666666666 / t))))))); else tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[Or[LessEqual[c, -6600000.0], And[N[Not[LessEqual[c, 5.2e-72]], $MachinePrecision], Or[LessEqual[c, 1.55e+51], N[Not[LessEqual[c, 5.8e+99]], $MachinePrecision]]]], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(N[(a + 0.8333333333333334), $MachinePrecision] - N[(0.6666666666666666 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(N[(0.6666666666666666 / t), $MachinePrecision] - N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;c \leq -6600000 \lor \neg \left(c \leq 5.2 \cdot 10^{-72}\right) \land \left(c \leq 1.55 \cdot 10^{+51} \lor \neg \left(c \leq 5.8 \cdot 10^{+99}\right)\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(\left(a + 0.8333333333333334\right) - \frac{0.6666666666666666}{t}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}\\
\end{array}
\end{array}
if c < -6.6e6 or 5.19999999999999992e-72 < c < 1.55000000000000006e51 or 5.8000000000000004e99 < c Initial program 96.0%
Taylor expanded in c around inf 88.4%
+-commutative88.4%
associate-*r/88.4%
metadata-eval88.4%
Simplified88.4%
if -6.6e6 < c < 5.19999999999999992e-72 or 1.55000000000000006e51 < c < 5.8000000000000004e99Initial program 98.5%
Taylor expanded in b around inf 81.6%
associate-*r/81.6%
metadata-eval81.6%
+-commutative81.6%
Simplified81.6%
Final simplification84.9%
(FPCore (x y z t a b c)
:precision binary64
(if (<= c -3400000.0)
(/ x (+ x (* y (exp (* 2.0 (* c (+ a 0.8333333333333334)))))))
(if (or (<= c 2.9e-72) (and (not (<= c 5.5e+48)) (<= c 5.8e+99)))
(/
x
(+
x
(*
y
(exp
(*
2.0
(* b (- (/ 0.6666666666666666 t) (+ a 0.8333333333333334))))))))
(/ x (+ x (* y (exp (* 2.0 (* c (- a (/ 0.6666666666666666 t)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (c <= -3400000.0) {
tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334))))));
} else if ((c <= 2.9e-72) || (!(c <= 5.5e+48) && (c <= 5.8e+99))) {
tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
} else {
tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (c <= (-3400000.0d0)) then
tmp = x / (x + (y * exp((2.0d0 * (c * (a + 0.8333333333333334d0))))))
else if ((c <= 2.9d-72) .or. (.not. (c <= 5.5d+48)) .and. (c <= 5.8d+99)) then
tmp = x / (x + (y * exp((2.0d0 * (b * ((0.6666666666666666d0 / t) - (a + 0.8333333333333334d0)))))))
else
tmp = x / (x + (y * exp((2.0d0 * (c * (a - (0.6666666666666666d0 / t)))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (c <= -3400000.0) {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a + 0.8333333333333334))))));
} else if ((c <= 2.9e-72) || (!(c <= 5.5e+48) && (c <= 5.8e+99))) {
tmp = x / (x + (y * Math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334)))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if c <= -3400000.0: tmp = x / (x + (y * math.exp((2.0 * (c * (a + 0.8333333333333334)))))) elif (c <= 2.9e-72) or (not (c <= 5.5e+48) and (c <= 5.8e+99)): tmp = x / (x + (y * math.exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))) else: tmp = x / (x + (y * math.exp((2.0 * (c * (a - (0.6666666666666666 / t))))))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (c <= -3400000.0) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a + 0.8333333333333334))))))); elseif ((c <= 2.9e-72) || (!(c <= 5.5e+48) && (c <= 5.8e+99))) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(Float64(0.6666666666666666 / t) - Float64(a + 0.8333333333333334)))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a - Float64(0.6666666666666666 / t)))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (c <= -3400000.0) tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334)))))); elseif ((c <= 2.9e-72) || (~((c <= 5.5e+48)) && (c <= 5.8e+99))) tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - (a + 0.8333333333333334))))))); else tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[c, -3400000.0], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[c, 2.9e-72], And[N[Not[LessEqual[c, 5.5e+48]], $MachinePrecision], LessEqual[c, 5.8e+99]]], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(N[(0.6666666666666666 / t), $MachinePrecision] - N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a - N[(0.6666666666666666 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;c \leq -3400000:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a + 0.8333333333333334\right)\right)}}\\
\mathbf{elif}\;c \leq 2.9 \cdot 10^{-72} \lor \neg \left(c \leq 5.5 \cdot 10^{+48}\right) \land c \leq 5.8 \cdot 10^{+99}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a - \frac{0.6666666666666666}{t}\right)\right)}}\\
\end{array}
\end{array}
if c < -3.4e6Initial program 95.6%
Taylor expanded in c around inf 87.2%
+-commutative87.2%
associate-*r/87.2%
metadata-eval87.2%
Simplified87.2%
Taylor expanded in t around inf 75.8%
if -3.4e6 < c < 2.89999999999999998e-72 or 5.5000000000000002e48 < c < 5.8000000000000004e99Initial program 98.5%
Taylor expanded in b around inf 81.6%
associate-*r/81.6%
metadata-eval81.6%
+-commutative81.6%
Simplified81.6%
if 2.89999999999999998e-72 < c < 5.5000000000000002e48 or 5.8000000000000004e99 < c Initial program 96.5%
Taylor expanded in c around inf 89.8%
+-commutative89.8%
associate-*r/89.8%
metadata-eval89.8%
Simplified89.8%
Taylor expanded in a around inf 77.0%
Final simplification79.0%
(FPCore (x y z t a b c)
:precision binary64
(if (<= t -3.05e+66)
(/ x (+ x (* b (+ (* -2.0 (* y a)) (/ y b)))))
(if (or (<= t -5e-217) (and (not (<= t 3.1e-289)) (<= t 1.02e-189)))
(/ x (+ x (* y (exp (* -1.3333333333333333 (/ c t))))))
1.0)))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -3.05e+66) {
tmp = x / (x + (b * ((-2.0 * (y * a)) + (y / b))));
} else if ((t <= -5e-217) || (!(t <= 3.1e-289) && (t <= 1.02e-189))) {
tmp = x / (x + (y * exp((-1.3333333333333333 * (c / t)))));
} else {
tmp = 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (t <= (-3.05d+66)) then
tmp = x / (x + (b * (((-2.0d0) * (y * a)) + (y / b))))
else if ((t <= (-5d-217)) .or. (.not. (t <= 3.1d-289)) .and. (t <= 1.02d-189)) then
tmp = x / (x + (y * exp(((-1.3333333333333333d0) * (c / t)))))
else
tmp = 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -3.05e+66) {
tmp = x / (x + (b * ((-2.0 * (y * a)) + (y / b))));
} else if ((t <= -5e-217) || (!(t <= 3.1e-289) && (t <= 1.02e-189))) {
tmp = x / (x + (y * Math.exp((-1.3333333333333333 * (c / t)))));
} else {
tmp = 1.0;
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if t <= -3.05e+66: tmp = x / (x + (b * ((-2.0 * (y * a)) + (y / b)))) elif (t <= -5e-217) or (not (t <= 3.1e-289) and (t <= 1.02e-189)): tmp = x / (x + (y * math.exp((-1.3333333333333333 * (c / t))))) else: tmp = 1.0 return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (t <= -3.05e+66) tmp = Float64(x / Float64(x + Float64(b * Float64(Float64(-2.0 * Float64(y * a)) + Float64(y / b))))); elseif ((t <= -5e-217) || (!(t <= 3.1e-289) && (t <= 1.02e-189))) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(-1.3333333333333333 * Float64(c / t)))))); else tmp = 1.0; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (t <= -3.05e+66) tmp = x / (x + (b * ((-2.0 * (y * a)) + (y / b)))); elseif ((t <= -5e-217) || (~((t <= 3.1e-289)) && (t <= 1.02e-189))) tmp = x / (x + (y * exp((-1.3333333333333333 * (c / t))))); else tmp = 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[t, -3.05e+66], N[(x / N[(x + N[(b * N[(N[(-2.0 * N[(y * a), $MachinePrecision]), $MachinePrecision] + N[(y / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[t, -5e-217], And[N[Not[LessEqual[t, 3.1e-289]], $MachinePrecision], LessEqual[t, 1.02e-189]]], N[(x / N[(x + N[(y * N[Exp[N[(-1.3333333333333333 * N[(c / t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1.0]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -3.05 \cdot 10^{+66}:\\
\;\;\;\;\frac{x}{x + b \cdot \left(-2 \cdot \left(y \cdot a\right) + \frac{y}{b}\right)}\\
\mathbf{elif}\;t \leq -5 \cdot 10^{-217} \lor \neg \left(t \leq 3.1 \cdot 10^{-289}\right) \land t \leq 1.02 \cdot 10^{-189}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{-1.3333333333333333 \cdot \frac{c}{t}}}\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}
\end{array}
if t < -3.0500000000000001e66Initial program 100.0%
Taylor expanded in b around inf 77.6%
associate-*r/77.6%
metadata-eval77.6%
+-commutative77.6%
Simplified77.6%
Taylor expanded in a around inf 77.6%
associate-*r*77.6%
neg-mul-177.6%
Simplified77.6%
Taylor expanded in a around 0 48.0%
associate-*r*55.4%
*-commutative55.4%
Simplified55.4%
Taylor expanded in b around inf 62.8%
if -3.0500000000000001e66 < t < -5.0000000000000002e-217 or 3.1e-289 < t < 1.01999999999999999e-189Initial program 92.0%
Taylor expanded in t around 0 92.9%
Taylor expanded in c around inf 79.4%
*-commutative79.4%
Simplified79.4%
Taylor expanded in y around 0 79.4%
if -5.0000000000000002e-217 < t < 3.1e-289 or 1.01999999999999999e-189 < t Initial program 98.5%
Taylor expanded in c around inf 65.1%
+-commutative65.1%
associate-*r/65.1%
metadata-eval65.1%
Simplified65.1%
Taylor expanded in a around inf 65.1%
associate-/l*65.5%
associate-*r/65.5%
metadata-eval65.5%
Simplified65.5%
Taylor expanded in x around inf 55.3%
Final simplification60.4%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1 (/ x (+ x (* y (exp (* 2.0 (* a c))))))))
(if (<= t -3.45e-189)
t_1
(if (<= t 4.2e-40)
(/ x (+ x (* y (exp (/ (* b 1.3333333333333333) t)))))
(if (or (<= t 1.45e+41) (not (<= t 1.52e+153))) t_1 1.0)))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * exp((2.0 * (a * c)))));
double tmp;
if (t <= -3.45e-189) {
tmp = t_1;
} else if (t <= 4.2e-40) {
tmp = x / (x + (y * exp(((b * 1.3333333333333333) / t))));
} else if ((t <= 1.45e+41) || !(t <= 1.52e+153)) {
tmp = t_1;
} else {
tmp = 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: tmp
t_1 = x / (x + (y * exp((2.0d0 * (a * c)))))
if (t <= (-3.45d-189)) then
tmp = t_1
else if (t <= 4.2d-40) then
tmp = x / (x + (y * exp(((b * 1.3333333333333333d0) / t))))
else if ((t <= 1.45d+41) .or. (.not. (t <= 1.52d+153))) then
tmp = t_1
else
tmp = 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * Math.exp((2.0 * (a * c)))));
double tmp;
if (t <= -3.45e-189) {
tmp = t_1;
} else if (t <= 4.2e-40) {
tmp = x / (x + (y * Math.exp(((b * 1.3333333333333333) / t))));
} else if ((t <= 1.45e+41) || !(t <= 1.52e+153)) {
tmp = t_1;
} else {
tmp = 1.0;
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = x / (x + (y * math.exp((2.0 * (a * c))))) tmp = 0 if t <= -3.45e-189: tmp = t_1 elif t <= 4.2e-40: tmp = x / (x + (y * math.exp(((b * 1.3333333333333333) / t)))) elif (t <= 1.45e+41) or not (t <= 1.52e+153): tmp = t_1 else: tmp = 1.0 return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * c)))))) tmp = 0.0 if (t <= -3.45e-189) tmp = t_1; elseif (t <= 4.2e-40) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(Float64(b * 1.3333333333333333) / t))))); elseif ((t <= 1.45e+41) || !(t <= 1.52e+153)) tmp = t_1; else tmp = 1.0; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = x / (x + (y * exp((2.0 * (a * c))))); tmp = 0.0; if (t <= -3.45e-189) tmp = t_1; elseif (t <= 4.2e-40) tmp = x / (x + (y * exp(((b * 1.3333333333333333) / t)))); elseif ((t <= 1.45e+41) || ~((t <= 1.52e+153))) tmp = t_1; else tmp = 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.45e-189], t$95$1, If[LessEqual[t, 4.2e-40], N[(x / N[(x + N[(y * N[Exp[N[(N[(b * 1.3333333333333333), $MachinePrecision] / t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[t, 1.45e+41], N[Not[LessEqual[t, 1.52e+153]], $MachinePrecision]], t$95$1, 1.0]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot c\right)}}\\
\mathbf{if}\;t \leq -3.45 \cdot 10^{-189}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 4.2 \cdot 10^{-40}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{\frac{b \cdot 1.3333333333333333}{t}}}\\
\mathbf{elif}\;t \leq 1.45 \cdot 10^{+41} \lor \neg \left(t \leq 1.52 \cdot 10^{+153}\right):\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}
\end{array}
if t < -3.4500000000000001e-189 or 4.20000000000000036e-40 < t < 1.44999999999999994e41 or 1.52e153 < t Initial program 97.8%
Taylor expanded in c around inf 74.0%
+-commutative74.0%
associate-*r/74.0%
metadata-eval74.0%
Simplified74.0%
Taylor expanded in a around inf 65.8%
if -3.4500000000000001e-189 < t < 4.20000000000000036e-40Initial program 95.1%
Taylor expanded in b around inf 71.3%
associate-*r/71.3%
metadata-eval71.3%
+-commutative71.3%
Simplified71.3%
Taylor expanded in t around 0 69.0%
associate-*r/69.0%
*-commutative69.0%
Simplified69.0%
Taylor expanded in b around 0 69.0%
associate-*r/69.0%
Simplified69.0%
if 1.44999999999999994e41 < t < 1.52e153Initial program 100.0%
Taylor expanded in c around inf 56.6%
+-commutative56.6%
associate-*r/56.6%
metadata-eval56.6%
Simplified56.6%
Taylor expanded in a around inf 56.6%
associate-/l*56.6%
associate-*r/56.6%
metadata-eval56.6%
Simplified56.6%
Taylor expanded in x around inf 56.4%
Final simplification65.3%
(FPCore (x y z t a b c)
:precision binary64
(if (<= t -5.3e-46)
(/ x (+ x (* y (exp (* 2.0 (* a (- b)))))))
(if (<= t 7.2e-40)
(/ x (+ x (* y (exp (/ (* b 1.3333333333333333) t)))))
(if (or (<= t 2.4e+40) (not (<= t 4.9e+156)))
(/ x (+ x (* y (exp (* 2.0 (* a c))))))
1.0))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -5.3e-46) {
tmp = x / (x + (y * exp((2.0 * (a * -b)))));
} else if (t <= 7.2e-40) {
tmp = x / (x + (y * exp(((b * 1.3333333333333333) / t))));
} else if ((t <= 2.4e+40) || !(t <= 4.9e+156)) {
tmp = x / (x + (y * exp((2.0 * (a * c)))));
} else {
tmp = 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (t <= (-5.3d-46)) then
tmp = x / (x + (y * exp((2.0d0 * (a * -b)))))
else if (t <= 7.2d-40) then
tmp = x / (x + (y * exp(((b * 1.3333333333333333d0) / t))))
else if ((t <= 2.4d+40) .or. (.not. (t <= 4.9d+156))) then
tmp = x / (x + (y * exp((2.0d0 * (a * c)))))
else
tmp = 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -5.3e-46) {
tmp = x / (x + (y * Math.exp((2.0 * (a * -b)))));
} else if (t <= 7.2e-40) {
tmp = x / (x + (y * Math.exp(((b * 1.3333333333333333) / t))));
} else if ((t <= 2.4e+40) || !(t <= 4.9e+156)) {
tmp = x / (x + (y * Math.exp((2.0 * (a * c)))));
} else {
tmp = 1.0;
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if t <= -5.3e-46: tmp = x / (x + (y * math.exp((2.0 * (a * -b))))) elif t <= 7.2e-40: tmp = x / (x + (y * math.exp(((b * 1.3333333333333333) / t)))) elif (t <= 2.4e+40) or not (t <= 4.9e+156): tmp = x / (x + (y * math.exp((2.0 * (a * c))))) else: tmp = 1.0 return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (t <= -5.3e-46) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * Float64(-b))))))); elseif (t <= 7.2e-40) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(Float64(b * 1.3333333333333333) / t))))); elseif ((t <= 2.4e+40) || !(t <= 4.9e+156)) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * c)))))); else tmp = 1.0; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (t <= -5.3e-46) tmp = x / (x + (y * exp((2.0 * (a * -b))))); elseif (t <= 7.2e-40) tmp = x / (x + (y * exp(((b * 1.3333333333333333) / t)))); elseif ((t <= 2.4e+40) || ~((t <= 4.9e+156))) tmp = x / (x + (y * exp((2.0 * (a * c))))); else tmp = 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[t, -5.3e-46], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * (-b)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 7.2e-40], N[(x / N[(x + N[(y * N[Exp[N[(N[(b * 1.3333333333333333), $MachinePrecision] / t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[t, 2.4e+40], N[Not[LessEqual[t, 4.9e+156]], $MachinePrecision]], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1.0]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -5.3 \cdot 10^{-46}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot \left(-b\right)\right)}}\\
\mathbf{elif}\;t \leq 7.2 \cdot 10^{-40}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{\frac{b \cdot 1.3333333333333333}{t}}}\\
\mathbf{elif}\;t \leq 2.4 \cdot 10^{+40} \lor \neg \left(t \leq 4.9 \cdot 10^{+156}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot c\right)}}\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}
\end{array}
if t < -5.30000000000000018e-46Initial program 100.0%
Taylor expanded in b around inf 87.9%
associate-*r/87.9%
metadata-eval87.9%
+-commutative87.9%
Simplified87.9%
Taylor expanded in a around inf 87.9%
associate-*r*87.9%
neg-mul-187.9%
Simplified87.9%
if -5.30000000000000018e-46 < t < 7.2e-40Initial program 93.6%
Taylor expanded in b around inf 69.8%
associate-*r/69.8%
metadata-eval69.8%
+-commutative69.8%
Simplified69.8%
Taylor expanded in t around 0 67.7%
associate-*r/67.7%
*-commutative67.7%
Simplified67.7%
Taylor expanded in b around 0 67.7%
associate-*r/67.7%
Simplified67.7%
if 7.2e-40 < t < 2.4e40 or 4.89999999999999969e156 < t Initial program 99.0%
Taylor expanded in c around inf 73.5%
+-commutative73.5%
associate-*r/73.5%
metadata-eval73.5%
Simplified73.5%
Taylor expanded in a around inf 62.4%
if 2.4e40 < t < 4.89999999999999969e156Initial program 100.0%
Taylor expanded in c around inf 56.6%
+-commutative56.6%
associate-*r/56.6%
metadata-eval56.6%
Simplified56.6%
Taylor expanded in a around inf 56.6%
associate-/l*56.6%
associate-*r/56.6%
metadata-eval56.6%
Simplified56.6%
Taylor expanded in x around inf 56.4%
Final simplification65.8%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1 (/ x (+ x (* y (exp (* 2.0 (* a c))))))))
(if (<= a -9.4e+52)
t_1
(if (<= a -6.4e-221)
1.0
(if (<= a -1e-237)
(/ x (+ x (+ y (* -1.3333333333333333 (/ (* y c) t)))))
(if (<= a 1.9e-7) 1.0 t_1))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * exp((2.0 * (a * c)))));
double tmp;
if (a <= -9.4e+52) {
tmp = t_1;
} else if (a <= -6.4e-221) {
tmp = 1.0;
} else if (a <= -1e-237) {
tmp = x / (x + (y + (-1.3333333333333333 * ((y * c) / t))));
} else if (a <= 1.9e-7) {
tmp = 1.0;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: tmp
t_1 = x / (x + (y * exp((2.0d0 * (a * c)))))
if (a <= (-9.4d+52)) then
tmp = t_1
else if (a <= (-6.4d-221)) then
tmp = 1.0d0
else if (a <= (-1d-237)) then
tmp = x / (x + (y + ((-1.3333333333333333d0) * ((y * c) / t))))
else if (a <= 1.9d-7) then
tmp = 1.0d0
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = x / (x + (y * Math.exp((2.0 * (a * c)))));
double tmp;
if (a <= -9.4e+52) {
tmp = t_1;
} else if (a <= -6.4e-221) {
tmp = 1.0;
} else if (a <= -1e-237) {
tmp = x / (x + (y + (-1.3333333333333333 * ((y * c) / t))));
} else if (a <= 1.9e-7) {
tmp = 1.0;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = x / (x + (y * math.exp((2.0 * (a * c))))) tmp = 0 if a <= -9.4e+52: tmp = t_1 elif a <= -6.4e-221: tmp = 1.0 elif a <= -1e-237: tmp = x / (x + (y + (-1.3333333333333333 * ((y * c) / t)))) elif a <= 1.9e-7: tmp = 1.0 else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(a * c)))))) tmp = 0.0 if (a <= -9.4e+52) tmp = t_1; elseif (a <= -6.4e-221) tmp = 1.0; elseif (a <= -1e-237) tmp = Float64(x / Float64(x + Float64(y + Float64(-1.3333333333333333 * Float64(Float64(y * c) / t))))); elseif (a <= 1.9e-7) tmp = 1.0; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = x / (x + (y * exp((2.0 * (a * c))))); tmp = 0.0; if (a <= -9.4e+52) tmp = t_1; elseif (a <= -6.4e-221) tmp = 1.0; elseif (a <= -1e-237) tmp = x / (x + (y + (-1.3333333333333333 * ((y * c) / t)))); elseif (a <= 1.9e-7) tmp = 1.0; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -9.4e+52], t$95$1, If[LessEqual[a, -6.4e-221], 1.0, If[LessEqual[a, -1e-237], N[(x / N[(x + N[(y + N[(-1.3333333333333333 * N[(N[(y * c), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 1.9e-7], 1.0, t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{x + y \cdot e^{2 \cdot \left(a \cdot c\right)}}\\
\mathbf{if}\;a \leq -9.4 \cdot 10^{+52}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -6.4 \cdot 10^{-221}:\\
\;\;\;\;1\\
\mathbf{elif}\;a \leq -1 \cdot 10^{-237}:\\
\;\;\;\;\frac{x}{x + \left(y + -1.3333333333333333 \cdot \frac{y \cdot c}{t}\right)}\\
\mathbf{elif}\;a \leq 1.9 \cdot 10^{-7}:\\
\;\;\;\;1\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if a < -9.3999999999999999e52 or 1.90000000000000007e-7 < a Initial program 94.5%
Taylor expanded in c around inf 71.3%
+-commutative71.3%
associate-*r/71.3%
metadata-eval71.3%
Simplified71.3%
Taylor expanded in a around inf 69.2%
if -9.3999999999999999e52 < a < -6.40000000000000031e-221 or -9.9999999999999999e-238 < a < 1.90000000000000007e-7Initial program 99.3%
Taylor expanded in c around inf 64.1%
+-commutative64.1%
associate-*r/64.1%
metadata-eval64.1%
Simplified64.1%
Taylor expanded in a around inf 64.1%
associate-/l*64.7%
associate-*r/64.7%
metadata-eval64.7%
Simplified64.7%
Taylor expanded in x around inf 63.2%
if -6.40000000000000031e-221 < a < -9.9999999999999999e-238Initial program 100.0%
Taylor expanded in t around 0 0.0%
Taylor expanded in c around inf 81.3%
*-commutative81.3%
Simplified81.3%
Taylor expanded in c around 0 100.0%
Final simplification66.5%
(FPCore (x y z t a b c)
:precision binary64
(if (or (<= b -5.2e-87) (not (<= b 1.65e+44)))
(/
x
(+
x
(*
y
(exp (* 2.0 (* b (- (/ 0.6666666666666666 t) 0.8333333333333334)))))))
(/ x (+ x (* y (exp (* 2.0 (* c (+ a 0.8333333333333334)))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((b <= -5.2e-87) || !(b <= 1.65e+44)) {
tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334))))));
} else {
tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if ((b <= (-5.2d-87)) .or. (.not. (b <= 1.65d+44))) then
tmp = x / (x + (y * exp((2.0d0 * (b * ((0.6666666666666666d0 / t) - 0.8333333333333334d0))))))
else
tmp = x / (x + (y * exp((2.0d0 * (c * (a + 0.8333333333333334d0))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((b <= -5.2e-87) || !(b <= 1.65e+44)) {
tmp = x / (x + (y * Math.exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a + 0.8333333333333334))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if (b <= -5.2e-87) or not (b <= 1.65e+44): tmp = x / (x + (y * math.exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334)))))) else: tmp = x / (x + (y * math.exp((2.0 * (c * (a + 0.8333333333333334)))))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if ((b <= -5.2e-87) || !(b <= 1.65e+44)) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(Float64(0.6666666666666666 / t) - 0.8333333333333334))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a + 0.8333333333333334))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if ((b <= -5.2e-87) || ~((b <= 1.65e+44))) tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334)))))); else tmp = x / (x + (y * exp((2.0 * (c * (a + 0.8333333333333334)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[Or[LessEqual[b, -5.2e-87], N[Not[LessEqual[b, 1.65e+44]], $MachinePrecision]], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(N[(0.6666666666666666 / t), $MachinePrecision] - 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a + 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -5.2 \cdot 10^{-87} \lor \neg \left(b \leq 1.65 \cdot 10^{+44}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - 0.8333333333333334\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a + 0.8333333333333334\right)\right)}}\\
\end{array}
\end{array}
if b < -5.20000000000000005e-87 or 1.65000000000000007e44 < b Initial program 96.3%
Taylor expanded in b around inf 81.2%
associate-*r/81.2%
metadata-eval81.2%
+-commutative81.2%
Simplified81.2%
Taylor expanded in a around 0 76.2%
if -5.20000000000000005e-87 < b < 1.65000000000000007e44Initial program 98.4%
Taylor expanded in c around inf 78.3%
+-commutative78.3%
associate-*r/78.3%
metadata-eval78.3%
Simplified78.3%
Taylor expanded in t around inf 66.9%
Final simplification71.8%
(FPCore (x y z t a b c)
:precision binary64
(if (or (<= b -3.25e+25) (not (<= b 150.0)))
(/
x
(+
x
(*
y
(exp (* 2.0 (* b (- (/ 0.6666666666666666 t) 0.8333333333333334)))))))
(/ x (+ x (* y (exp (* 2.0 (* c (- a (/ 0.6666666666666666 t))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((b <= -3.25e+25) || !(b <= 150.0)) {
tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334))))));
} else {
tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if ((b <= (-3.25d+25)) .or. (.not. (b <= 150.0d0))) then
tmp = x / (x + (y * exp((2.0d0 * (b * ((0.6666666666666666d0 / t) - 0.8333333333333334d0))))))
else
tmp = x / (x + (y * exp((2.0d0 * (c * (a - (0.6666666666666666d0 / t)))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if ((b <= -3.25e+25) || !(b <= 150.0)) {
tmp = x / (x + (y * Math.exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * (c * (a - (0.6666666666666666 / t)))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if (b <= -3.25e+25) or not (b <= 150.0): tmp = x / (x + (y * math.exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334)))))) else: tmp = x / (x + (y * math.exp((2.0 * (c * (a - (0.6666666666666666 / t))))))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if ((b <= -3.25e+25) || !(b <= 150.0)) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(b * Float64(Float64(0.6666666666666666 / t) - 0.8333333333333334))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(c * Float64(a - Float64(0.6666666666666666 / t)))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if ((b <= -3.25e+25) || ~((b <= 150.0))) tmp = x / (x + (y * exp((2.0 * (b * ((0.6666666666666666 / t) - 0.8333333333333334)))))); else tmp = x / (x + (y * exp((2.0 * (c * (a - (0.6666666666666666 / t))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[Or[LessEqual[b, -3.25e+25], N[Not[LessEqual[b, 150.0]], $MachinePrecision]], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(b * N[(N[(0.6666666666666666 / t), $MachinePrecision] - 0.8333333333333334), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(c * N[(a - N[(0.6666666666666666 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -3.25 \cdot 10^{+25} \lor \neg \left(b \leq 150\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - 0.8333333333333334\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(c \cdot \left(a - \frac{0.6666666666666666}{t}\right)\right)}}\\
\end{array}
\end{array}
if b < -3.25000000000000003e25 or 150 < b Initial program 95.3%
Taylor expanded in b around inf 82.8%
associate-*r/82.8%
metadata-eval82.8%
+-commutative82.8%
Simplified82.8%
Taylor expanded in a around 0 79.2%
if -3.25000000000000003e25 < b < 150Initial program 98.7%
Taylor expanded in c around inf 77.7%
+-commutative77.7%
associate-*r/77.7%
metadata-eval77.7%
Simplified77.7%
Taylor expanded in a around inf 70.8%
Final simplification74.3%
(FPCore (x y z t a b c)
:precision binary64
(if (<= c -5.4e-231)
1.0
(if (<= c 8.5e-159)
(/ x (- x (* y (- -1.0 (* b (* a -2.0))))))
(if (<= c 2.75e-76)
1.0
(if (<= c 2.1e-32)
(/ x (* b (- (/ (+ x y) b) (* y (* 2.0 a)))))
(if (<= c 3.3e+176)
1.0
(/ x (* a (- (/ (+ x y) a) (* 2.0 (* y b)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (c <= -5.4e-231) {
tmp = 1.0;
} else if (c <= 8.5e-159) {
tmp = x / (x - (y * (-1.0 - (b * (a * -2.0)))));
} else if (c <= 2.75e-76) {
tmp = 1.0;
} else if (c <= 2.1e-32) {
tmp = x / (b * (((x + y) / b) - (y * (2.0 * a))));
} else if (c <= 3.3e+176) {
tmp = 1.0;
} else {
tmp = x / (a * (((x + y) / a) - (2.0 * (y * b))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (c <= (-5.4d-231)) then
tmp = 1.0d0
else if (c <= 8.5d-159) then
tmp = x / (x - (y * ((-1.0d0) - (b * (a * (-2.0d0))))))
else if (c <= 2.75d-76) then
tmp = 1.0d0
else if (c <= 2.1d-32) then
tmp = x / (b * (((x + y) / b) - (y * (2.0d0 * a))))
else if (c <= 3.3d+176) then
tmp = 1.0d0
else
tmp = x / (a * (((x + y) / a) - (2.0d0 * (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 c) {
double tmp;
if (c <= -5.4e-231) {
tmp = 1.0;
} else if (c <= 8.5e-159) {
tmp = x / (x - (y * (-1.0 - (b * (a * -2.0)))));
} else if (c <= 2.75e-76) {
tmp = 1.0;
} else if (c <= 2.1e-32) {
tmp = x / (b * (((x + y) / b) - (y * (2.0 * a))));
} else if (c <= 3.3e+176) {
tmp = 1.0;
} else {
tmp = x / (a * (((x + y) / a) - (2.0 * (y * b))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if c <= -5.4e-231: tmp = 1.0 elif c <= 8.5e-159: tmp = x / (x - (y * (-1.0 - (b * (a * -2.0))))) elif c <= 2.75e-76: tmp = 1.0 elif c <= 2.1e-32: tmp = x / (b * (((x + y) / b) - (y * (2.0 * a)))) elif c <= 3.3e+176: tmp = 1.0 else: tmp = x / (a * (((x + y) / a) - (2.0 * (y * b)))) return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (c <= -5.4e-231) tmp = 1.0; elseif (c <= 8.5e-159) tmp = Float64(x / Float64(x - Float64(y * Float64(-1.0 - Float64(b * Float64(a * -2.0)))))); elseif (c <= 2.75e-76) tmp = 1.0; elseif (c <= 2.1e-32) tmp = Float64(x / Float64(b * Float64(Float64(Float64(x + y) / b) - Float64(y * Float64(2.0 * a))))); elseif (c <= 3.3e+176) tmp = 1.0; else tmp = Float64(x / Float64(a * Float64(Float64(Float64(x + y) / a) - Float64(2.0 * Float64(y * b))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (c <= -5.4e-231) tmp = 1.0; elseif (c <= 8.5e-159) tmp = x / (x - (y * (-1.0 - (b * (a * -2.0))))); elseif (c <= 2.75e-76) tmp = 1.0; elseif (c <= 2.1e-32) tmp = x / (b * (((x + y) / b) - (y * (2.0 * a)))); elseif (c <= 3.3e+176) tmp = 1.0; else tmp = x / (a * (((x + y) / a) - (2.0 * (y * b)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[c, -5.4e-231], 1.0, If[LessEqual[c, 8.5e-159], N[(x / N[(x - N[(y * N[(-1.0 - N[(b * N[(a * -2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[c, 2.75e-76], 1.0, If[LessEqual[c, 2.1e-32], N[(x / N[(b * N[(N[(N[(x + y), $MachinePrecision] / b), $MachinePrecision] - N[(y * N[(2.0 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[c, 3.3e+176], 1.0, N[(x / N[(a * N[(N[(N[(x + y), $MachinePrecision] / a), $MachinePrecision] - N[(2.0 * N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;c \leq -5.4 \cdot 10^{-231}:\\
\;\;\;\;1\\
\mathbf{elif}\;c \leq 8.5 \cdot 10^{-159}:\\
\;\;\;\;\frac{x}{x - y \cdot \left(-1 - b \cdot \left(a \cdot -2\right)\right)}\\
\mathbf{elif}\;c \leq 2.75 \cdot 10^{-76}:\\
\;\;\;\;1\\
\mathbf{elif}\;c \leq 2.1 \cdot 10^{-32}:\\
\;\;\;\;\frac{x}{b \cdot \left(\frac{x + y}{b} - y \cdot \left(2 \cdot a\right)\right)}\\
\mathbf{elif}\;c \leq 3.3 \cdot 10^{+176}:\\
\;\;\;\;1\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{a \cdot \left(\frac{x + y}{a} - 2 \cdot \left(y \cdot b\right)\right)}\\
\end{array}
\end{array}
if c < -5.40000000000000046e-231 or 8.4999999999999998e-159 < c < 2.75000000000000007e-76 or 2.0999999999999999e-32 < c < 3.30000000000000025e176Initial program 97.3%
Taylor expanded in c around inf 69.4%
+-commutative69.4%
associate-*r/69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in a around inf 69.4%
associate-/l*69.4%
associate-*r/69.4%
metadata-eval69.4%
Simplified69.4%
Taylor expanded in x around inf 60.4%
if -5.40000000000000046e-231 < c < 8.4999999999999998e-159Initial program 95.7%
Taylor expanded in b around inf 83.2%
associate-*r/83.2%
metadata-eval83.2%
+-commutative83.2%
Simplified83.2%
Taylor expanded in a around inf 64.6%
associate-*r*64.6%
neg-mul-164.6%
Simplified64.6%
Taylor expanded in a around 0 61.5%
associate-*r*61.5%
*-commutative61.5%
Simplified61.5%
if 2.75000000000000007e-76 < c < 2.0999999999999999e-32Initial program 100.0%
Taylor expanded in b around inf 26.1%
associate-*r/26.1%
metadata-eval26.1%
+-commutative26.1%
Simplified26.1%
Taylor expanded in a around inf 26.1%
associate-*r*26.1%
neg-mul-126.1%
Simplified26.1%
Taylor expanded in a around 0 40.6%
associate-*r*54.4%
*-commutative54.4%
Simplified54.4%
Taylor expanded in b around -inf 81.8%
mul-1-neg81.8%
*-commutative81.8%
distribute-rgt-neg-in81.8%
+-commutative81.8%
mul-1-neg81.8%
unsub-neg81.8%
associate-*r*81.8%
+-commutative81.8%
Simplified81.8%
if 3.30000000000000025e176 < c Initial program 100.0%
Taylor expanded in b around inf 71.5%
associate-*r/71.5%
metadata-eval71.5%
+-commutative71.5%
Simplified71.5%
Taylor expanded in a around inf 58.3%
associate-*r*58.3%
neg-mul-158.3%
Simplified58.3%
Taylor expanded in a around 0 41.4%
associate-*r*41.4%
*-commutative41.4%
Simplified41.4%
Taylor expanded in a around -inf 58.3%
mul-1-neg58.3%
*-commutative58.3%
distribute-rgt-neg-in58.3%
+-commutative58.3%
mul-1-neg58.3%
unsub-neg58.3%
*-commutative58.3%
*-commutative58.3%
+-commutative58.3%
Simplified58.3%
Final simplification61.0%
(FPCore (x y z t a b c) :precision binary64 (if (<= t -9e-218) (/ x (- x (* y (- -1.0 (* b (* a -2.0)))))) 1.0))
double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -9e-218) {
tmp = x / (x - (y * (-1.0 - (b * (a * -2.0)))));
} else {
tmp = 1.0;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: tmp
if (t <= (-9d-218)) then
tmp = x / (x - (y * ((-1.0d0) - (b * (a * (-2.0d0))))))
else
tmp = 1.0d0
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double tmp;
if (t <= -9e-218) {
tmp = x / (x - (y * (-1.0 - (b * (a * -2.0)))));
} else {
tmp = 1.0;
}
return tmp;
}
def code(x, y, z, t, a, b, c): tmp = 0 if t <= -9e-218: tmp = x / (x - (y * (-1.0 - (b * (a * -2.0))))) else: tmp = 1.0 return tmp
function code(x, y, z, t, a, b, c) tmp = 0.0 if (t <= -9e-218) tmp = Float64(x / Float64(x - Float64(y * Float64(-1.0 - Float64(b * Float64(a * -2.0)))))); else tmp = 1.0; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) tmp = 0.0; if (t <= -9e-218) tmp = x / (x - (y * (-1.0 - (b * (a * -2.0))))); else tmp = 1.0; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := If[LessEqual[t, -9e-218], N[(x / N[(x - N[(y * N[(-1.0 - N[(b * N[(a * -2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1.0]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -9 \cdot 10^{-218}:\\
\;\;\;\;\frac{x}{x - y \cdot \left(-1 - b \cdot \left(a \cdot -2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}
\end{array}
if t < -8.99999999999999953e-218Initial program 93.3%
Taylor expanded in b around inf 77.7%
associate-*r/77.7%
metadata-eval77.7%
+-commutative77.7%
Simplified77.7%
Taylor expanded in a around inf 69.3%
associate-*r*69.3%
neg-mul-169.3%
Simplified69.3%
Taylor expanded in a around 0 53.4%
associate-*r*55.6%
*-commutative55.6%
Simplified55.6%
if -8.99999999999999953e-218 < t Initial program 98.1%
Taylor expanded in c around inf 66.7%
+-commutative66.7%
associate-*r/66.7%
metadata-eval66.7%
Simplified66.7%
Taylor expanded in a around inf 66.7%
associate-/l*67.1%
associate-*r/67.1%
metadata-eval67.1%
Simplified67.1%
Taylor expanded in x around inf 54.1%
Final simplification54.4%
(FPCore (x y z t a b c) :precision binary64 1.0)
double code(double x, double y, double z, double t, double a, double b, double c) {
return 1.0;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
code = 1.0d0
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
return 1.0;
}
def code(x, y, z, t, a, b, c): return 1.0
function code(x, y, z, t, a, b, c) return 1.0 end
function tmp = code(x, y, z, t, a, b, c) tmp = 1.0; end
code[x_, y_, z_, t_, a_, b_, c_] := 1.0
\begin{array}{l}
\\
1
\end{array}
Initial program 97.3%
Taylor expanded in c around inf 67.9%
+-commutative67.9%
associate-*r/67.9%
metadata-eval67.9%
Simplified67.9%
Taylor expanded in a around inf 67.9%
associate-/l*68.2%
associate-*r/68.2%
metadata-eval68.2%
Simplified68.2%
Taylor expanded in x around inf 52.7%
Final simplification52.7%
(FPCore (x y z t a b c)
:precision binary64
(let* ((t_1 (* z (sqrt (+ t a)))) (t_2 (- a (/ 5.0 6.0))))
(if (< t -2.118326644891581e-50)
(/
x
(+
x
(* y (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b)))))))
(if (< t 5.196588770651547e-123)
(/
x
(+
x
(*
y
(exp
(*
2.0
(/
(-
(* t_1 (* (* 3.0 t) t_2))
(*
(- (* (+ (/ 5.0 6.0) a) (* 3.0 t)) 2.0)
(* t_2 (* (- b c) t))))
(* (* (* t t) 3.0) t_2)))))))
(/
x
(+
x
(*
y
(exp
(*
2.0
(-
(/ t_1 t)
(* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = z * sqrt((t + a));
double t_2 = a - (5.0 / 6.0);
double tmp;
if (t < -2.118326644891581e-50) {
tmp = x / (x + (y * exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))));
} else if (t < 5.196588770651547e-123) {
tmp = x / (x + (y * exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))));
} else {
tmp = x / (x + (y * exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c)
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), intent (in) :: c
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = z * sqrt((t + a))
t_2 = a - (5.0d0 / 6.0d0)
if (t < (-2.118326644891581d-50)) then
tmp = x / (x + (y * exp((2.0d0 * (((a * c) + (0.8333333333333334d0 * c)) - (a * b))))))
else if (t < 5.196588770651547d-123) then
tmp = x / (x + (y * exp((2.0d0 * (((t_1 * ((3.0d0 * t) * t_2)) - (((((5.0d0 / 6.0d0) + a) * (3.0d0 * t)) - 2.0d0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0d0) * t_2))))))
else
tmp = x / (x + (y * exp((2.0d0 * ((t_1 / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
double t_1 = z * Math.sqrt((t + a));
double t_2 = a - (5.0 / 6.0);
double tmp;
if (t < -2.118326644891581e-50) {
tmp = x / (x + (y * Math.exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))));
} else if (t < 5.196588770651547e-123) {
tmp = x / (x + (y * Math.exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))));
} else {
tmp = x / (x + (y * Math.exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
return tmp;
}
def code(x, y, z, t, a, b, c): t_1 = z * math.sqrt((t + a)) t_2 = a - (5.0 / 6.0) tmp = 0 if t < -2.118326644891581e-50: tmp = x / (x + (y * math.exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b)))))) elif t < 5.196588770651547e-123: tmp = x / (x + (y * math.exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2)))))) else: tmp = x / (x + (y * math.exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0))))))))) return tmp
function code(x, y, z, t, a, b, c) t_1 = Float64(z * sqrt(Float64(t + a))) t_2 = Float64(a - Float64(5.0 / 6.0)) tmp = 0.0 if (t < -2.118326644891581e-50) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(a * c) + Float64(0.8333333333333334 * c)) - Float64(a * b))))))); elseif (t < 5.196588770651547e-123) tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(t_1 * Float64(Float64(3.0 * t) * t_2)) - Float64(Float64(Float64(Float64(Float64(5.0 / 6.0) + a) * Float64(3.0 * t)) - 2.0) * Float64(t_2 * Float64(Float64(b - c) * t)))) / Float64(Float64(Float64(t * t) * 3.0) * t_2))))))); else tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(t_1 / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0)))))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c) t_1 = z * sqrt((t + a)); t_2 = a - (5.0 / 6.0); tmp = 0.0; if (t < -2.118326644891581e-50) tmp = x / (x + (y * exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b)))))); elseif (t < 5.196588770651547e-123) tmp = x / (x + (y * exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2)))))); else tmp = x / (x + (y * exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0))))))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a - N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision]}, If[Less[t, -2.118326644891581e-50], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(a * c), $MachinePrecision] + N[(0.8333333333333334 * c), $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Less[t, 5.196588770651547e-123], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(t$95$1 * N[(N[(3.0 * t), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(N[(N[(5.0 / 6.0), $MachinePrecision] + a), $MachinePrecision] * N[(3.0 * t), $MachinePrecision]), $MachinePrecision] - 2.0), $MachinePrecision] * N[(t$95$2 * N[(N[(b - c), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(t * t), $MachinePrecision] * 3.0), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(t$95$1 / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := z \cdot \sqrt{t + a}\\
t_2 := a - \frac{5}{6}\\
\mathbf{if}\;t < -2.118326644891581 \cdot 10^{-50}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333334 \cdot c\right) - a \cdot b\right)}}\\
\mathbf{elif}\;t < 5.196588770651547 \cdot 10^{-123}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{t\_1 \cdot \left(\left(3 \cdot t\right) \cdot t\_2\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(t\_2 \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot t\_2}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{t\_1}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\
\end{array}
\end{array}
herbie shell --seed 2024059
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
:precision binary64
:alt
(if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2.0 (/ (- (* (* z (sqrt (+ t a))) (* (* 3.0 t) (- a (/ 5.0 6.0)))) (* (- (* (+ (/ 5.0 6.0) a) (* 3.0 t)) 2.0) (* (- a (/ 5.0 6.0)) (* (- b c) t)))) (* (* (* t t) 3.0) (- a (/ 5.0 6.0))))))))) (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))))
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))