
(FPCore (x y z t a b) :precision binary64 (* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))
double code(double x, double y, double z, double t, double a, double b) {
return x * exp(((y * (log(z) - t)) + (a * (log((1.0 - z)) - 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 * exp(((y * (log(z) - t)) + (a * (log((1.0d0 - z)) - b))))
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)) + (a * (Math.log((1.0 - z)) - b))));
}
def code(x, y, z, t, a, b): return x * math.exp(((y * (math.log(z) - t)) + (a * (math.log((1.0 - z)) - b))))
function code(x, y, z, t, a, b) return Float64(x * exp(Float64(Float64(y * Float64(log(z) - t)) + Float64(a * Float64(log(Float64(1.0 - z)) - b))))) end
function tmp = code(x, y, z, t, a, b) tmp = x * exp(((y * (log(z) - t)) + (a * (log((1.0 - z)) - b)))); end
code[x_, y_, z_, t_, a_, b_] := N[(x * N[Exp[N[(N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision] + N[(a * N[(N[Log[N[(1.0 - z), $MachinePrecision]], $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 28 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b) :precision binary64 (* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))
double code(double x, double y, double z, double t, double a, double b) {
return x * exp(((y * (log(z) - t)) + (a * (log((1.0 - z)) - 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 * exp(((y * (log(z) - t)) + (a * (log((1.0d0 - z)) - b))))
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)) + (a * (Math.log((1.0 - z)) - b))));
}
def code(x, y, z, t, a, b): return x * math.exp(((y * (math.log(z) - t)) + (a * (math.log((1.0 - z)) - b))))
function code(x, y, z, t, a, b) return Float64(x * exp(Float64(Float64(y * Float64(log(z) - t)) + Float64(a * Float64(log(Float64(1.0 - z)) - b))))) end
function tmp = code(x, y, z, t, a, b) tmp = x * exp(((y * (log(z) - t)) + (a * (log((1.0 - z)) - b)))); end
code[x_, y_, z_, t_, a_, b_] := N[(x * N[Exp[N[(N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision] + N[(a * N[(N[Log[N[(1.0 - z), $MachinePrecision]], $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
\end{array}
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* y (- (log z) t))))
(if (<= (+ t_1 (* a (- (log (- 1.0 z)) b))) INFINITY)
(* x (exp (- t_1 (* a (+ z b)))))
(* x (* (* 0.5 (* a a)) (* b b))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y * (log(z) - t);
double tmp;
if ((t_1 + (a * (log((1.0 - z)) - b))) <= ((double) INFINITY)) {
tmp = x * exp((t_1 - (a * (z + b))));
} else {
tmp = x * ((0.5 * (a * a)) * (b * b));
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = y * (Math.log(z) - t);
double tmp;
if ((t_1 + (a * (Math.log((1.0 - z)) - b))) <= Double.POSITIVE_INFINITY) {
tmp = x * Math.exp((t_1 - (a * (z + b))));
} else {
tmp = x * ((0.5 * (a * a)) * (b * b));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = y * (math.log(z) - t) tmp = 0 if (t_1 + (a * (math.log((1.0 - z)) - b))) <= math.inf: tmp = x * math.exp((t_1 - (a * (z + b)))) else: tmp = x * ((0.5 * (a * a)) * (b * b)) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(y * Float64(log(z) - t)) tmp = 0.0 if (Float64(t_1 + Float64(a * Float64(log(Float64(1.0 - z)) - b))) <= Inf) tmp = Float64(x * exp(Float64(t_1 - Float64(a * Float64(z + b))))); else tmp = Float64(x * Float64(Float64(0.5 * Float64(a * a)) * Float64(b * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = y * (log(z) - t); tmp = 0.0; if ((t_1 + (a * (log((1.0 - z)) - b))) <= Inf) tmp = x * exp((t_1 - (a * (z + b)))); else tmp = x * ((0.5 * (a * a)) * (b * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(t$95$1 + N[(a * N[(N[Log[N[(1.0 - z), $MachinePrecision]], $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(x * N[Exp[N[(t$95$1 - N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x * N[(N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(\log z - t\right)\\
\mathbf{if}\;t\_1 + a \cdot \left(\log \left(1 - z\right) - b\right) \leq \infty:\\
\;\;\;\;x \cdot e^{t\_1 - a \cdot \left(z + b\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(\left(0.5 \cdot \left(a \cdot a\right)\right) \cdot \left(b \cdot b\right)\right)\\
\end{array}
\end{array}
if (+.f64 (*.f64 y (-.f64 (log.f64 z) t)) (*.f64 a (-.f64 (log.f64 (-.f64 #s(literal 1 binary64) z)) b))) < +inf.0Initial program 97.9%
Taylor expanded in z around 0
distribute-lft-outN/A
mul-1-negN/A
neg-lowering-neg.f64N/A
distribute-lft-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64100.0%
Simplified100.0%
if +inf.0 < (+.f64 (*.f64 y (-.f64 (log.f64 z) t)) (*.f64 a (-.f64 (log.f64 (-.f64 #s(literal 1 binary64) z)) b))) Initial program 0.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6450.8%
Simplified50.8%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64100.0%
Simplified100.0%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64100.0%
Simplified100.0%
Final simplification100.0%
(FPCore (x y z t a b)
:precision binary64
(if (<= y -3.15e-7)
(* x (exp (* y (- (log z) t))))
(if (<= y 1.16e-94)
(/ x (exp (* a (+ z b))))
(/ x (exp (* y (- t (log z))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -3.15e-7) {
tmp = x * exp((y * (log(z) - t)));
} else if (y <= 1.16e-94) {
tmp = x / exp((a * (z + b)));
} else {
tmp = x / exp((y * (t - log(z))));
}
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 <= (-3.15d-7)) then
tmp = x * exp((y * (log(z) - t)))
else if (y <= 1.16d-94) then
tmp = x / exp((a * (z + b)))
else
tmp = x / exp((y * (t - log(z))))
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 <= -3.15e-7) {
tmp = x * Math.exp((y * (Math.log(z) - t)));
} else if (y <= 1.16e-94) {
tmp = x / Math.exp((a * (z + b)));
} else {
tmp = x / Math.exp((y * (t - Math.log(z))));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -3.15e-7: tmp = x * math.exp((y * (math.log(z) - t))) elif y <= 1.16e-94: tmp = x / math.exp((a * (z + b))) else: tmp = x / math.exp((y * (t - math.log(z)))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -3.15e-7) tmp = Float64(x * exp(Float64(y * Float64(log(z) - t)))); elseif (y <= 1.16e-94) tmp = Float64(x / exp(Float64(a * Float64(z + b)))); else tmp = Float64(x / exp(Float64(y * Float64(t - log(z))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -3.15e-7) tmp = x * exp((y * (log(z) - t))); elseif (y <= 1.16e-94) tmp = x / exp((a * (z + b))); else tmp = x / exp((y * (t - log(z)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -3.15e-7], N[(x * N[Exp[N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.16e-94], N[(x / N[Exp[N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x / N[Exp[N[(y * N[(t - N[Log[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.15 \cdot 10^{-7}:\\
\;\;\;\;x \cdot e^{y \cdot \left(\log z - t\right)}\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{-94}:\\
\;\;\;\;\frac{x}{e^{a \cdot \left(z + b\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{e^{y \cdot \left(t - \log z\right)}}\\
\end{array}
\end{array}
if y < -3.15000000000000002e-7Initial program 93.5%
Taylor expanded in a around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6487.3%
Simplified87.3%
if -3.15000000000000002e-7 < y < 1.16000000000000001e-94Initial program 95.2%
Simplified95.2%
Taylor expanded in y around 0
/-lowering-/.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f64N/A
--lowering--.f6487.4%
Simplified87.4%
Taylor expanded in z around 0
distribute-lft-inN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
if 1.16000000000000001e-94 < y Initial program 99.5%
Simplified99.5%
Taylor expanded in a around 0
/-lowering-/.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6488.7%
Simplified88.7%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* x (exp (* y (- (log z) t)))))) (if (<= y -2.6e-7) t_1 (if (<= y 1.16e-94) (/ x (exp (* a (+ z b)))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * exp((y * (log(z) - t)));
double tmp;
if (y <= -2.6e-7) {
tmp = t_1;
} else if (y <= 1.16e-94) {
tmp = x / exp((a * (z + b)));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x * exp((y * (log(z) - t)))
if (y <= (-2.6d-7)) then
tmp = t_1
else if (y <= 1.16d-94) then
tmp = x / exp((a * (z + b)))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * Math.exp((y * (Math.log(z) - t)));
double tmp;
if (y <= -2.6e-7) {
tmp = t_1;
} else if (y <= 1.16e-94) {
tmp = x / Math.exp((a * (z + b)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x * math.exp((y * (math.log(z) - t))) tmp = 0 if y <= -2.6e-7: tmp = t_1 elif y <= 1.16e-94: tmp = x / math.exp((a * (z + b))) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x * exp(Float64(y * Float64(log(z) - t)))) tmp = 0.0 if (y <= -2.6e-7) tmp = t_1; elseif (y <= 1.16e-94) tmp = Float64(x / exp(Float64(a * Float64(z + b)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x * exp((y * (log(z) - t))); tmp = 0.0; if (y <= -2.6e-7) tmp = t_1; elseif (y <= 1.16e-94) tmp = x / exp((a * (z + b))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x * N[Exp[N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -2.6e-7], t$95$1, If[LessEqual[y, 1.16e-94], N[(x / N[Exp[N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot e^{y \cdot \left(\log z - t\right)}\\
\mathbf{if}\;y \leq -2.6 \cdot 10^{-7}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{-94}:\\
\;\;\;\;\frac{x}{e^{a \cdot \left(z + b\right)}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -2.59999999999999999e-7 or 1.16000000000000001e-94 < y Initial program 97.1%
Taylor expanded in a around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6488.1%
Simplified88.1%
if -2.59999999999999999e-7 < y < 1.16000000000000001e-94Initial program 95.2%
Simplified95.2%
Taylor expanded in y around 0
/-lowering-/.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f64N/A
--lowering--.f6487.4%
Simplified87.4%
Taylor expanded in z around 0
distribute-lft-inN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
(FPCore (x y z t a b) :precision binary64 (if (<= t -400.0) (/ x (exp (* y t))) (* x (exp (- (* y (log z)) (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -400.0) {
tmp = x / exp((y * t));
} else {
tmp = x * exp(((y * log(z)) - (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 (t <= (-400.0d0)) then
tmp = x / exp((y * t))
else
tmp = x * exp(((y * log(z)) - (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 (t <= -400.0) {
tmp = x / Math.exp((y * t));
} else {
tmp = x * Math.exp(((y * Math.log(z)) - (a * b)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -400.0: tmp = x / math.exp((y * t)) else: tmp = x * math.exp(((y * math.log(z)) - (a * b))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -400.0) tmp = Float64(x / exp(Float64(y * t))); else tmp = Float64(x * exp(Float64(Float64(y * log(z)) - Float64(a * b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -400.0) tmp = x / exp((y * t)); else tmp = x * exp(((y * log(z)) - (a * b))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -400.0], N[(x / N[Exp[N[(y * t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x * N[Exp[N[(N[(y * N[Log[z], $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -400:\\
\;\;\;\;\frac{x}{e^{y \cdot t}}\\
\mathbf{else}:\\
\;\;\;\;x \cdot e^{y \cdot \log z - a \cdot b}\\
\end{array}
\end{array}
if t < -400Initial program 96.6%
Simplified96.6%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6484.9%
Simplified84.9%
if -400 < t Initial program 96.3%
Taylor expanded in z around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
+-commutativeN/A
mul-1-negN/A
sub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f64N/A
*-lowering-*.f6495.8%
Simplified95.8%
Taylor expanded in t around 0
--lowering--.f64N/A
*-lowering-*.f64N/A
log-lowering-log.f64N/A
*-lowering-*.f6490.5%
Simplified90.5%
(FPCore (x y z t a b) :precision binary64 (/ x (exp (+ (* a (+ z b)) (* y (- t (log z)))))))
double code(double x, double y, double z, double t, double a, double b) {
return x / exp(((a * (z + b)) + (y * (t - log(z)))));
}
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(((a * (z + b)) + (y * (t - log(z)))))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x / Math.exp(((a * (z + b)) + (y * (t - Math.log(z)))));
}
def code(x, y, z, t, a, b): return x / math.exp(((a * (z + b)) + (y * (t - math.log(z)))))
function code(x, y, z, t, a, b) return Float64(x / exp(Float64(Float64(a * Float64(z + b)) + Float64(y * Float64(t - log(z)))))) end
function tmp = code(x, y, z, t, a, b) tmp = x / exp(((a * (z + b)) + (y * (t - log(z))))); end
code[x_, y_, z_, t_, a_, b_] := N[(x / N[Exp[N[(N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision] + N[(y * N[(t - N[Log[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{e^{a \cdot \left(z + b\right) + y \cdot \left(t - \log z\right)}}
\end{array}
Initial program 96.4%
Simplified96.4%
Taylor expanded in z around 0
associate-+r+N/A
+-lowering-+.f64N/A
distribute-lft-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6498.4%
Simplified98.4%
Final simplification98.4%
(FPCore (x y z t a b) :precision binary64 (* x (exp (- (* y (- (log z) t)) (* a b)))))
double code(double x, double y, double z, double t, double a, double b) {
return x * exp(((y * (log(z) - t)) - (a * 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 * exp(((y * (log(z) - t)) - (a * b)))
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)) - (a * b)));
}
def code(x, y, z, t, a, b): return x * math.exp(((y * (math.log(z) - t)) - (a * b)))
function code(x, y, z, t, a, b) return Float64(x * exp(Float64(Float64(y * Float64(log(z) - t)) - Float64(a * b)))) end
function tmp = code(x, y, z, t, a, b) tmp = x * exp(((y * (log(z) - t)) - (a * b))); end
code[x_, y_, z_, t_, a_, b_] := N[(x * N[Exp[N[(N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot e^{y \cdot \left(\log z - t\right) - a \cdot b}
\end{array}
Initial program 96.4%
Taylor expanded in z around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
+-commutativeN/A
mul-1-negN/A
sub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f64N/A
*-lowering-*.f6496.0%
Simplified96.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* x (pow z y))))
(if (<= y -1.45e-7)
t_1
(if (<= y -7e-132)
(* 2.0 (/ x (* a (* a (* b b)))))
(if (<= y 1.3e-298)
(*
x
(+
1.0
(*
a
(-
(*
a
(+ (* 0.5 (* b b)) (* (* a -0.16666666666666666) (* b (* b b)))))
b))))
(if (<= y 7.2e-7)
(/ x (+ 1.0 (* b (+ a (* b (* 0.5 (* a a)))))))
t_1))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * pow(z, y);
double tmp;
if (y <= -1.45e-7) {
tmp = t_1;
} else if (y <= -7e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.3e-298) {
tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b)));
} else if (y <= 7.2e-7) {
tmp = x / (1.0 + (b * (a + (b * (0.5 * (a * a))))));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x * (z ** y)
if (y <= (-1.45d-7)) then
tmp = t_1
else if (y <= (-7d-132)) then
tmp = 2.0d0 * (x / (a * (a * (b * b))))
else if (y <= 1.3d-298) then
tmp = x * (1.0d0 + (a * ((a * ((0.5d0 * (b * b)) + ((a * (-0.16666666666666666d0)) * (b * (b * b))))) - b)))
else if (y <= 7.2d-7) then
tmp = x / (1.0d0 + (b * (a + (b * (0.5d0 * (a * a))))))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * Math.pow(z, y);
double tmp;
if (y <= -1.45e-7) {
tmp = t_1;
} else if (y <= -7e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.3e-298) {
tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b)));
} else if (y <= 7.2e-7) {
tmp = x / (1.0 + (b * (a + (b * (0.5 * (a * a))))));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x * math.pow(z, y) tmp = 0 if y <= -1.45e-7: tmp = t_1 elif y <= -7e-132: tmp = 2.0 * (x / (a * (a * (b * b)))) elif y <= 1.3e-298: tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b))) elif y <= 7.2e-7: tmp = x / (1.0 + (b * (a + (b * (0.5 * (a * a)))))) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x * (z ^ y)) tmp = 0.0 if (y <= -1.45e-7) tmp = t_1; elseif (y <= -7e-132) tmp = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))); elseif (y <= 1.3e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(a * Float64(Float64(0.5 * Float64(b * b)) + Float64(Float64(a * -0.16666666666666666) * Float64(b * Float64(b * b))))) - b)))); elseif (y <= 7.2e-7) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(a + Float64(b * Float64(0.5 * Float64(a * a))))))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x * (z ^ y); tmp = 0.0; if (y <= -1.45e-7) tmp = t_1; elseif (y <= -7e-132) tmp = 2.0 * (x / (a * (a * (b * b)))); elseif (y <= 1.3e-298) tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b))); elseif (y <= 7.2e-7) tmp = x / (1.0 + (b * (a + (b * (0.5 * (a * a)))))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.45e-7], t$95$1, If[LessEqual[y, -7e-132], N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.3e-298], N[(x * N[(1.0 + N[(a * N[(N[(a * N[(N[(0.5 * N[(b * b), $MachinePrecision]), $MachinePrecision] + N[(N[(a * -0.16666666666666666), $MachinePrecision] * N[(b * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 7.2e-7], N[(x / N[(1.0 + N[(b * N[(a + N[(b * N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot {z}^{y}\\
\mathbf{if}\;y \leq -1.45 \cdot 10^{-7}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -7 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{elif}\;y \leq 1.3 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(a \cdot \left(0.5 \cdot \left(b \cdot b\right) + \left(a \cdot -0.16666666666666666\right) \cdot \left(b \cdot \left(b \cdot b\right)\right)\right) - b\right)\right)\\
\mathbf{elif}\;y \leq 7.2 \cdot 10^{-7}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(a + b \cdot \left(0.5 \cdot \left(a \cdot a\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.4499999999999999e-7 or 7.19999999999999989e-7 < y Initial program 96.8%
Taylor expanded in a around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6487.3%
Simplified87.3%
Taylor expanded in t around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6465.4%
Simplified65.4%
if -1.4499999999999999e-7 < y < -6.9999999999999999e-132Initial program 100.0%
Simplified100.0%
Taylor expanded in b around inf
*-lowering-*.f6478.6%
Simplified78.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.7%
Simplified56.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6467.5%
Simplified67.5%
if -6.9999999999999999e-132 < y < 1.2999999999999999e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
Simplified72.8%
if 1.2999999999999999e-298 < y < 7.19999999999999989e-7Initial program 93.8%
Simplified93.8%
Taylor expanded in b around inf
*-lowering-*.f6475.5%
Simplified75.5%
Taylor expanded in b around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.5%
Simplified58.5%
Final simplification64.9%
(FPCore (x y z t a b) :precision binary64 (if (<= y -7.8e-7) (* x (pow z y)) (if (<= y 1.16e-94) (/ x (exp (* a (+ z b)))) (/ x (exp (* y t))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -7.8e-7) {
tmp = x * pow(z, y);
} else if (y <= 1.16e-94) {
tmp = x / exp((a * (z + b)));
} else {
tmp = x / exp((y * t));
}
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 <= (-7.8d-7)) then
tmp = x * (z ** y)
else if (y <= 1.16d-94) then
tmp = x / exp((a * (z + b)))
else
tmp = x / exp((y * t))
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 <= -7.8e-7) {
tmp = x * Math.pow(z, y);
} else if (y <= 1.16e-94) {
tmp = x / Math.exp((a * (z + b)));
} else {
tmp = x / Math.exp((y * t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -7.8e-7: tmp = x * math.pow(z, y) elif y <= 1.16e-94: tmp = x / math.exp((a * (z + b))) else: tmp = x / math.exp((y * t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -7.8e-7) tmp = Float64(x * (z ^ y)); elseif (y <= 1.16e-94) tmp = Float64(x / exp(Float64(a * Float64(z + b)))); else tmp = Float64(x / exp(Float64(y * t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -7.8e-7) tmp = x * (z ^ y); elseif (y <= 1.16e-94) tmp = x / exp((a * (z + b))); else tmp = x / exp((y * t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -7.8e-7], N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.16e-94], N[(x / N[Exp[N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x / N[Exp[N[(y * t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -7.8 \cdot 10^{-7}:\\
\;\;\;\;x \cdot {z}^{y}\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{-94}:\\
\;\;\;\;\frac{x}{e^{a \cdot \left(z + b\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{e^{y \cdot t}}\\
\end{array}
\end{array}
if y < -7.80000000000000049e-7Initial program 93.5%
Taylor expanded in a around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6487.3%
Simplified87.3%
Taylor expanded in t around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6471.4%
Simplified71.4%
if -7.80000000000000049e-7 < y < 1.16000000000000001e-94Initial program 95.2%
Simplified95.2%
Taylor expanded in y around 0
/-lowering-/.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f64N/A
--lowering--.f6487.4%
Simplified87.4%
Taylor expanded in z around 0
distribute-lft-inN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
if 1.16000000000000001e-94 < y Initial program 99.5%
Simplified99.5%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6470.8%
Simplified70.8%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (/ x (exp (* a b))))) (if (<= b -4.1e+167) t_1 (if (<= b 4800000.0) (/ x (exp (* y t))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x / exp((a * b));
double tmp;
if (b <= -4.1e+167) {
tmp = t_1;
} else if (b <= 4800000.0) {
tmp = x / exp((y * t));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x / exp((a * b))
if (b <= (-4.1d+167)) then
tmp = t_1
else if (b <= 4800000.0d0) then
tmp = x / exp((y * t))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x / Math.exp((a * b));
double tmp;
if (b <= -4.1e+167) {
tmp = t_1;
} else if (b <= 4800000.0) {
tmp = x / Math.exp((y * t));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x / math.exp((a * b)) tmp = 0 if b <= -4.1e+167: tmp = t_1 elif b <= 4800000.0: tmp = x / math.exp((y * t)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x / exp(Float64(a * b))) tmp = 0.0 if (b <= -4.1e+167) tmp = t_1; elseif (b <= 4800000.0) tmp = Float64(x / exp(Float64(y * t))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x / exp((a * b)); tmp = 0.0; if (b <= -4.1e+167) tmp = t_1; elseif (b <= 4800000.0) tmp = x / exp((y * t)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x / N[Exp[N[(a * b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -4.1e+167], t$95$1, If[LessEqual[b, 4800000.0], N[(x / N[Exp[N[(y * t), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{x}{e^{a \cdot b}}\\
\mathbf{if}\;b \leq -4.1 \cdot 10^{+167}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 4800000:\\
\;\;\;\;\frac{x}{e^{y \cdot t}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -4.1e167 or 4.8e6 < b Initial program 96.7%
Simplified96.7%
Taylor expanded in b around inf
*-lowering-*.f6490.4%
Simplified90.4%
if -4.1e167 < b < 4.8e6Initial program 96.2%
Simplified96.2%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6472.8%
Simplified72.8%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* x (pow z y)))) (if (<= y -7.8e-7) t_1 (if (<= y 2.4e+75) (/ x (exp (* a b))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * pow(z, y);
double tmp;
if (y <= -7.8e-7) {
tmp = t_1;
} else if (y <= 2.4e+75) {
tmp = x / exp((a * b));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = x * (z ** y)
if (y <= (-7.8d-7)) then
tmp = t_1
else if (y <= 2.4d+75) then
tmp = x / exp((a * b))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * Math.pow(z, y);
double tmp;
if (y <= -7.8e-7) {
tmp = t_1;
} else if (y <= 2.4e+75) {
tmp = x / Math.exp((a * b));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x * math.pow(z, y) tmp = 0 if y <= -7.8e-7: tmp = t_1 elif y <= 2.4e+75: tmp = x / math.exp((a * b)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x * (z ^ y)) tmp = 0.0 if (y <= -7.8e-7) tmp = t_1; elseif (y <= 2.4e+75) tmp = Float64(x / exp(Float64(a * b))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x * (z ^ y); tmp = 0.0; if (y <= -7.8e-7) tmp = t_1; elseif (y <= 2.4e+75) tmp = x / exp((a * b)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -7.8e-7], t$95$1, If[LessEqual[y, 2.4e+75], N[(x / N[Exp[N[(a * b), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot {z}^{y}\\
\mathbf{if}\;y \leq -7.8 \cdot 10^{-7}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.4 \cdot 10^{+75}:\\
\;\;\;\;\frac{x}{e^{a \cdot b}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -7.80000000000000049e-7 or 2.4e75 < y Initial program 96.4%
Taylor expanded in a around 0
*-lowering-*.f64N/A
exp-lowering-exp.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
log-lowering-log.f6490.3%
Simplified90.3%
Taylor expanded in t around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6469.2%
Simplified69.2%
if -7.80000000000000049e-7 < y < 2.4e75Initial program 96.3%
Simplified96.3%
Taylor expanded in b around inf
*-lowering-*.f6479.0%
Simplified79.0%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))))
(if (<= y -1.05e+140)
(+ x (* t (- (* 0.5 (* t (* x (* y y)))) (* y x))))
(if (<= y -5.6e-132)
(* 2.0 (/ x (* a (* a (* b b)))))
(if (<= y 1.3e-298)
(*
x
(+
1.0
(*
a
(-
(*
a
(+ (* 0.5 (* b b)) (* (* a -0.16666666666666666) (* b (* b b)))))
b))))
(if (<= y 6.2e+44)
(/ x (+ 1.0 (* b (+ a (* b t_1)))))
(if (<= y 7.5e+153)
(* x (* t_1 (* b b)))
(/ x (+ 1.0 (* t (+ y (* t (* 0.5 (* y y))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.5 * (a * a);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x)));
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.3e-298) {
tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b)));
} else if (y <= 6.2e+44) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 7.5e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * 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) :: t_1
real(8) :: tmp
t_1 = 0.5d0 * (a * a)
if (y <= (-1.05d+140)) then
tmp = x + (t * ((0.5d0 * (t * (x * (y * y)))) - (y * x)))
else if (y <= (-5.6d-132)) then
tmp = 2.0d0 * (x / (a * (a * (b * b))))
else if (y <= 1.3d-298) then
tmp = x * (1.0d0 + (a * ((a * ((0.5d0 * (b * b)) + ((a * (-0.16666666666666666d0)) * (b * (b * b))))) - b)))
else if (y <= 6.2d+44) then
tmp = x / (1.0d0 + (b * (a + (b * t_1))))
else if (y <= 7.5d+153) then
tmp = x * (t_1 * (b * b))
else
tmp = x / (1.0d0 + (t * (y + (t * (0.5d0 * (y * y))))))
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 = 0.5 * (a * a);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x)));
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.3e-298) {
tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b)));
} else if (y <= 6.2e+44) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 7.5e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y))))));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) tmp = 0 if y <= -1.05e+140: tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x))) elif y <= -5.6e-132: tmp = 2.0 * (x / (a * (a * (b * b)))) elif y <= 1.3e-298: tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b))) elif y <= 6.2e+44: tmp = x / (1.0 + (b * (a + (b * t_1)))) elif y <= 7.5e+153: tmp = x * (t_1 * (b * b)) else: tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) tmp = 0.0 if (y <= -1.05e+140) tmp = Float64(x + Float64(t * Float64(Float64(0.5 * Float64(t * Float64(x * Float64(y * y)))) - Float64(y * x)))); elseif (y <= -5.6e-132) tmp = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))); elseif (y <= 1.3e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(a * Float64(Float64(0.5 * Float64(b * b)) + Float64(Float64(a * -0.16666666666666666) * Float64(b * Float64(b * b))))) - b)))); elseif (y <= 6.2e+44) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(a + Float64(b * t_1))))); elseif (y <= 7.5e+153) tmp = Float64(x * Float64(t_1 * Float64(b * b))); else tmp = Float64(x / Float64(1.0 + Float64(t * Float64(y + Float64(t * Float64(0.5 * Float64(y * y))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.5 * (a * a); tmp = 0.0; if (y <= -1.05e+140) tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x))); elseif (y <= -5.6e-132) tmp = 2.0 * (x / (a * (a * (b * b)))); elseif (y <= 1.3e-298) tmp = x * (1.0 + (a * ((a * ((0.5 * (b * b)) + ((a * -0.16666666666666666) * (b * (b * b))))) - b))); elseif (y <= 6.2e+44) tmp = x / (1.0 + (b * (a + (b * t_1)))); elseif (y <= 7.5e+153) tmp = x * (t_1 * (b * b)); else tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.05e+140], N[(x + N[(t * N[(N[(0.5 * N[(t * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -5.6e-132], N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.3e-298], N[(x * N[(1.0 + N[(a * N[(N[(a * N[(N[(0.5 * N[(b * b), $MachinePrecision]), $MachinePrecision] + N[(N[(a * -0.16666666666666666), $MachinePrecision] * N[(b * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 6.2e+44], N[(x / N[(1.0 + N[(b * N[(a + N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 7.5e+153], N[(x * N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(1.0 + N[(t * N[(y + N[(t * N[(0.5 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
\mathbf{if}\;y \leq -1.05 \cdot 10^{+140}:\\
\;\;\;\;x + t \cdot \left(0.5 \cdot \left(t \cdot \left(x \cdot \left(y \cdot y\right)\right)\right) - y \cdot x\right)\\
\mathbf{elif}\;y \leq -5.6 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{elif}\;y \leq 1.3 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(a \cdot \left(0.5 \cdot \left(b \cdot b\right) + \left(a \cdot -0.16666666666666666\right) \cdot \left(b \cdot \left(b \cdot b\right)\right)\right) - b\right)\right)\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+44}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(a + b \cdot t\_1\right)}\\
\mathbf{elif}\;y \leq 7.5 \cdot 10^{+153}:\\
\;\;\;\;x \cdot \left(t\_1 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 + t \cdot \left(y + t \cdot \left(0.5 \cdot \left(y \cdot y\right)\right)\right)}\\
\end{array}
\end{array}
if y < -1.0500000000000001e140Initial program 91.9%
Simplified91.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.0%
Simplified71.0%
Taylor expanded in t around 0
Simplified0.0%
Taylor expanded in t around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
mul-1-negN/A
+-commutativeN/A
sub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6462.5%
Simplified62.5%
if -1.0500000000000001e140 < y < -5.60000000000000005e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -5.60000000000000005e-132 < y < 1.2999999999999999e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
Simplified72.8%
if 1.2999999999999999e-298 < y < 6.19999999999999991e44Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in b around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.9%
Simplified56.9%
if 6.19999999999999991e44 < y < 7.50000000000000065e153Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6444.0%
Simplified44.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6425.0%
Simplified25.0%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.1%
Simplified51.1%
if 7.50000000000000065e153 < y Initial program 100.0%
Simplified100.0%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6472.1%
Simplified72.1%
Taylor expanded in t around 0
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6475.4%
Simplified75.4%
Final simplification61.7%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))) (t_2 (* a (* b b))))
(if (<= y -1.05e+140)
(+ x (* t (- (* 0.5 (* t (* x (* y y)))) (* y x))))
(if (<= y -7.2e-132)
(* 2.0 (/ x (* a t_2)))
(if (<= y 4.2e-298)
(* x (+ 1.0 (* a (- (* 0.5 t_2) b))))
(if (<= y 5.8e+44)
(/ x (+ 1.0 (* b (+ a (* b t_1)))))
(if (<= y 4.4e+153)
(* x (* t_1 (* b b)))
(/ x (+ 1.0 (* t (+ y (* t (* 0.5 (* y y))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x)));
} else if (y <= -7.2e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 4.2e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 5.8e+44) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 4.4e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * 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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = 0.5d0 * (a * a)
t_2 = a * (b * b)
if (y <= (-1.05d+140)) then
tmp = x + (t * ((0.5d0 * (t * (x * (y * y)))) - (y * x)))
else if (y <= (-7.2d-132)) then
tmp = 2.0d0 * (x / (a * t_2))
else if (y <= 4.2d-298) then
tmp = x * (1.0d0 + (a * ((0.5d0 * t_2) - b)))
else if (y <= 5.8d+44) then
tmp = x / (1.0d0 + (b * (a + (b * t_1))))
else if (y <= 4.4d+153) then
tmp = x * (t_1 * (b * b))
else
tmp = x / (1.0d0 + (t * (y + (t * (0.5d0 * (y * y))))))
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 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x)));
} else if (y <= -7.2e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 4.2e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 5.8e+44) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 4.4e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y))))));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) t_2 = a * (b * b) tmp = 0 if y <= -1.05e+140: tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x))) elif y <= -7.2e-132: tmp = 2.0 * (x / (a * t_2)) elif y <= 4.2e-298: tmp = x * (1.0 + (a * ((0.5 * t_2) - b))) elif y <= 5.8e+44: tmp = x / (1.0 + (b * (a + (b * t_1)))) elif y <= 4.4e+153: tmp = x * (t_1 * (b * b)) else: tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) t_2 = Float64(a * Float64(b * b)) tmp = 0.0 if (y <= -1.05e+140) tmp = Float64(x + Float64(t * Float64(Float64(0.5 * Float64(t * Float64(x * Float64(y * y)))) - Float64(y * x)))); elseif (y <= -7.2e-132) tmp = Float64(2.0 * Float64(x / Float64(a * t_2))); elseif (y <= 4.2e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(0.5 * t_2) - b)))); elseif (y <= 5.8e+44) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(a + Float64(b * t_1))))); elseif (y <= 4.4e+153) tmp = Float64(x * Float64(t_1 * Float64(b * b))); else tmp = Float64(x / Float64(1.0 + Float64(t * Float64(y + Float64(t * Float64(0.5 * Float64(y * y))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.5 * (a * a); t_2 = a * (b * b); tmp = 0.0; if (y <= -1.05e+140) tmp = x + (t * ((0.5 * (t * (x * (y * y)))) - (y * x))); elseif (y <= -7.2e-132) tmp = 2.0 * (x / (a * t_2)); elseif (y <= 4.2e-298) tmp = x * (1.0 + (a * ((0.5 * t_2) - b))); elseif (y <= 5.8e+44) tmp = x / (1.0 + (b * (a + (b * t_1)))); elseif (y <= 4.4e+153) tmp = x * (t_1 * (b * b)); else tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.05e+140], N[(x + N[(t * N[(N[(0.5 * N[(t * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -7.2e-132], N[(2.0 * N[(x / N[(a * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.2e-298], N[(x * N[(1.0 + N[(a * N[(N[(0.5 * t$95$2), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.8e+44], N[(x / N[(1.0 + N[(b * N[(a + N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.4e+153], N[(x * N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(1.0 + N[(t * N[(y + N[(t * N[(0.5 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
t_2 := a \cdot \left(b \cdot b\right)\\
\mathbf{if}\;y \leq -1.05 \cdot 10^{+140}:\\
\;\;\;\;x + t \cdot \left(0.5 \cdot \left(t \cdot \left(x \cdot \left(y \cdot y\right)\right)\right) - y \cdot x\right)\\
\mathbf{elif}\;y \leq -7.2 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot t\_2}\\
\mathbf{elif}\;y \leq 4.2 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(0.5 \cdot t\_2 - b\right)\right)\\
\mathbf{elif}\;y \leq 5.8 \cdot 10^{+44}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(a + b \cdot t\_1\right)}\\
\mathbf{elif}\;y \leq 4.4 \cdot 10^{+153}:\\
\;\;\;\;x \cdot \left(t\_1 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 + t \cdot \left(y + t \cdot \left(0.5 \cdot \left(y \cdot y\right)\right)\right)}\\
\end{array}
\end{array}
if y < -1.0500000000000001e140Initial program 91.9%
Simplified91.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.0%
Simplified71.0%
Taylor expanded in t around 0
Simplified0.0%
Taylor expanded in t around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
mul-1-negN/A
+-commutativeN/A
sub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6462.5%
Simplified62.5%
if -1.0500000000000001e140 < y < -7.20000000000000015e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -7.20000000000000015e-132 < y < 4.2000000000000001e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.2%
Simplified70.2%
if 4.2000000000000001e-298 < y < 5.8000000000000004e44Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in b around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.9%
Simplified56.9%
if 5.8000000000000004e44 < y < 4.3999999999999999e153Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6444.0%
Simplified44.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6425.0%
Simplified25.0%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.1%
Simplified51.1%
if 4.3999999999999999e153 < y Initial program 100.0%
Simplified100.0%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6472.1%
Simplified72.1%
Taylor expanded in t around 0
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6475.4%
Simplified75.4%
Final simplification61.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))) (t_2 (* a (* b b))))
(if (<= y -1.05e+140)
(+ x (* t (* y (- (* 0.5 (* t (* y x))) x))))
(if (<= y -6.8e-132)
(* 2.0 (/ x (* a t_2)))
(if (<= y 1.65e-298)
(* x (+ 1.0 (* a (- (* 0.5 t_2) b))))
(if (<= y 1.1e+45)
(/ x (+ 1.0 (* b (+ a (* b t_1)))))
(if (<= y 7.2e+153)
(* x (* t_1 (* b b)))
(/ x (+ 1.0 (* t (+ y (* t (* 0.5 (* y y))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -6.8e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 1.65e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 1.1e+45) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 7.2e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * 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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = 0.5d0 * (a * a)
t_2 = a * (b * b)
if (y <= (-1.05d+140)) then
tmp = x + (t * (y * ((0.5d0 * (t * (y * x))) - x)))
else if (y <= (-6.8d-132)) then
tmp = 2.0d0 * (x / (a * t_2))
else if (y <= 1.65d-298) then
tmp = x * (1.0d0 + (a * ((0.5d0 * t_2) - b)))
else if (y <= 1.1d+45) then
tmp = x / (1.0d0 + (b * (a + (b * t_1))))
else if (y <= 7.2d+153) then
tmp = x * (t_1 * (b * b))
else
tmp = x / (1.0d0 + (t * (y + (t * (0.5d0 * (y * y))))))
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 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -6.8e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 1.65e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 1.1e+45) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 7.2e+153) {
tmp = x * (t_1 * (b * b));
} else {
tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y))))));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) t_2 = a * (b * b) tmp = 0 if y <= -1.05e+140: tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))) elif y <= -6.8e-132: tmp = 2.0 * (x / (a * t_2)) elif y <= 1.65e-298: tmp = x * (1.0 + (a * ((0.5 * t_2) - b))) elif y <= 1.1e+45: tmp = x / (1.0 + (b * (a + (b * t_1)))) elif y <= 7.2e+153: tmp = x * (t_1 * (b * b)) else: tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) t_2 = Float64(a * Float64(b * b)) tmp = 0.0 if (y <= -1.05e+140) tmp = Float64(x + Float64(t * Float64(y * Float64(Float64(0.5 * Float64(t * Float64(y * x))) - x)))); elseif (y <= -6.8e-132) tmp = Float64(2.0 * Float64(x / Float64(a * t_2))); elseif (y <= 1.65e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(0.5 * t_2) - b)))); elseif (y <= 1.1e+45) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(a + Float64(b * t_1))))); elseif (y <= 7.2e+153) tmp = Float64(x * Float64(t_1 * Float64(b * b))); else tmp = Float64(x / Float64(1.0 + Float64(t * Float64(y + Float64(t * Float64(0.5 * Float64(y * y))))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.5 * (a * a); t_2 = a * (b * b); tmp = 0.0; if (y <= -1.05e+140) tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))); elseif (y <= -6.8e-132) tmp = 2.0 * (x / (a * t_2)); elseif (y <= 1.65e-298) tmp = x * (1.0 + (a * ((0.5 * t_2) - b))); elseif (y <= 1.1e+45) tmp = x / (1.0 + (b * (a + (b * t_1)))); elseif (y <= 7.2e+153) tmp = x * (t_1 * (b * b)); else tmp = x / (1.0 + (t * (y + (t * (0.5 * (y * y)))))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.05e+140], N[(x + N[(t * N[(y * N[(N[(0.5 * N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -6.8e-132], N[(2.0 * N[(x / N[(a * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.65e-298], N[(x * N[(1.0 + N[(a * N[(N[(0.5 * t$95$2), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.1e+45], N[(x / N[(1.0 + N[(b * N[(a + N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 7.2e+153], N[(x * N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(1.0 + N[(t * N[(y + N[(t * N[(0.5 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
t_2 := a \cdot \left(b \cdot b\right)\\
\mathbf{if}\;y \leq -1.05 \cdot 10^{+140}:\\
\;\;\;\;x + t \cdot \left(y \cdot \left(0.5 \cdot \left(t \cdot \left(y \cdot x\right)\right) - x\right)\right)\\
\mathbf{elif}\;y \leq -6.8 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot t\_2}\\
\mathbf{elif}\;y \leq 1.65 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(0.5 \cdot t\_2 - b\right)\right)\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+45}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(a + b \cdot t\_1\right)}\\
\mathbf{elif}\;y \leq 7.2 \cdot 10^{+153}:\\
\;\;\;\;x \cdot \left(t\_1 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 + t \cdot \left(y + t \cdot \left(0.5 \cdot \left(y \cdot y\right)\right)\right)}\\
\end{array}
\end{array}
if y < -1.0500000000000001e140Initial program 91.9%
Simplified91.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.0%
Simplified71.0%
Taylor expanded in t around 0
Simplified0.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6455.2%
Simplified55.2%
if -1.0500000000000001e140 < y < -6.79999999999999965e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -6.79999999999999965e-132 < y < 1.6500000000000001e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.2%
Simplified70.2%
if 1.6500000000000001e-298 < y < 1.1e45Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in b around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.9%
Simplified56.9%
if 1.1e45 < y < 7.2000000000000001e153Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6444.0%
Simplified44.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6425.0%
Simplified25.0%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.1%
Simplified51.1%
if 7.2000000000000001e153 < y Initial program 100.0%
Simplified100.0%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6472.1%
Simplified72.1%
Taylor expanded in t around 0
+-lowering-+.f64N/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6475.4%
Simplified75.4%
Final simplification60.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))) (t_2 (* a (* b b))))
(if (<= y -1.05e+140)
(+ x (* t (* y (- (* 0.5 (* t (* y x))) x))))
(if (<= y -7e-132)
(* 2.0 (/ x (* a t_2)))
(if (<= y 3.8e-298)
(* x (+ 1.0 (* a (- (* 0.5 t_2) b))))
(if (<= y 2.65e+45)
(/ x (+ 1.0 (* b (+ a (* b t_1)))))
(if (<= y 1.2e+134)
(* x (* t_1 (* b b)))
(* 2.0 (/ (/ (/ x (* a a)) b) b)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -7e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 3.8e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 2.65e+45) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 1.2e+134) {
tmp = x * (t_1 * (b * b));
} else {
tmp = 2.0 * (((x / (a * a)) / b) / 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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = 0.5d0 * (a * a)
t_2 = a * (b * b)
if (y <= (-1.05d+140)) then
tmp = x + (t * (y * ((0.5d0 * (t * (y * x))) - x)))
else if (y <= (-7d-132)) then
tmp = 2.0d0 * (x / (a * t_2))
else if (y <= 3.8d-298) then
tmp = x * (1.0d0 + (a * ((0.5d0 * t_2) - b)))
else if (y <= 2.65d+45) then
tmp = x / (1.0d0 + (b * (a + (b * t_1))))
else if (y <= 1.2d+134) then
tmp = x * (t_1 * (b * b))
else
tmp = 2.0d0 * (((x / (a * a)) / b) / b)
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 = 0.5 * (a * a);
double t_2 = a * (b * b);
double tmp;
if (y <= -1.05e+140) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -7e-132) {
tmp = 2.0 * (x / (a * t_2));
} else if (y <= 3.8e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_2) - b)));
} else if (y <= 2.65e+45) {
tmp = x / (1.0 + (b * (a + (b * t_1))));
} else if (y <= 1.2e+134) {
tmp = x * (t_1 * (b * b));
} else {
tmp = 2.0 * (((x / (a * a)) / b) / b);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) t_2 = a * (b * b) tmp = 0 if y <= -1.05e+140: tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))) elif y <= -7e-132: tmp = 2.0 * (x / (a * t_2)) elif y <= 3.8e-298: tmp = x * (1.0 + (a * ((0.5 * t_2) - b))) elif y <= 2.65e+45: tmp = x / (1.0 + (b * (a + (b * t_1)))) elif y <= 1.2e+134: tmp = x * (t_1 * (b * b)) else: tmp = 2.0 * (((x / (a * a)) / b) / b) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) t_2 = Float64(a * Float64(b * b)) tmp = 0.0 if (y <= -1.05e+140) tmp = Float64(x + Float64(t * Float64(y * Float64(Float64(0.5 * Float64(t * Float64(y * x))) - x)))); elseif (y <= -7e-132) tmp = Float64(2.0 * Float64(x / Float64(a * t_2))); elseif (y <= 3.8e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(0.5 * t_2) - b)))); elseif (y <= 2.65e+45) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(a + Float64(b * t_1))))); elseif (y <= 1.2e+134) tmp = Float64(x * Float64(t_1 * Float64(b * b))); else tmp = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.5 * (a * a); t_2 = a * (b * b); tmp = 0.0; if (y <= -1.05e+140) tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))); elseif (y <= -7e-132) tmp = 2.0 * (x / (a * t_2)); elseif (y <= 3.8e-298) tmp = x * (1.0 + (a * ((0.5 * t_2) - b))); elseif (y <= 2.65e+45) tmp = x / (1.0 + (b * (a + (b * t_1)))); elseif (y <= 1.2e+134) tmp = x * (t_1 * (b * b)); else tmp = 2.0 * (((x / (a * a)) / b) / b); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.05e+140], N[(x + N[(t * N[(y * N[(N[(0.5 * N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -7e-132], N[(2.0 * N[(x / N[(a * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.8e-298], N[(x * N[(1.0 + N[(a * N[(N[(0.5 * t$95$2), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.65e+45], N[(x / N[(1.0 + N[(b * N[(a + N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.2e+134], N[(x * N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
t_2 := a \cdot \left(b \cdot b\right)\\
\mathbf{if}\;y \leq -1.05 \cdot 10^{+140}:\\
\;\;\;\;x + t \cdot \left(y \cdot \left(0.5 \cdot \left(t \cdot \left(y \cdot x\right)\right) - x\right)\right)\\
\mathbf{elif}\;y \leq -7 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot t\_2}\\
\mathbf{elif}\;y \leq 3.8 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(0.5 \cdot t\_2 - b\right)\right)\\
\mathbf{elif}\;y \leq 2.65 \cdot 10^{+45}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(a + b \cdot t\_1\right)}\\
\mathbf{elif}\;y \leq 1.2 \cdot 10^{+134}:\\
\;\;\;\;x \cdot \left(t\_1 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
\end{array}
\end{array}
if y < -1.0500000000000001e140Initial program 91.9%
Simplified91.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.0%
Simplified71.0%
Taylor expanded in t around 0
Simplified0.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6455.2%
Simplified55.2%
if -1.0500000000000001e140 < y < -6.9999999999999999e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -6.9999999999999999e-132 < y < 3.8e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.2%
Simplified70.2%
if 3.8e-298 < y < 2.64999999999999996e45Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in b around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.9%
Simplified56.9%
if 2.64999999999999996e45 < y < 1.20000000000000003e134Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6448.6%
Simplified48.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.1%
Simplified31.1%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.2%
Simplified58.2%
if 1.20000000000000003e134 < y Initial program 100.0%
Simplified100.0%
Taylor expanded in b around inf
*-lowering-*.f6432.7%
Simplified32.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.2%
Simplified30.2%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6426.0%
Simplified26.0%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6449.5%
Simplified49.5%
Final simplification58.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (* b b))) (t_2 (* 0.5 (* a a))))
(if (<= y -5.2e+139)
(+ x (* t (* y (- (* 0.5 (* t (* y x))) x))))
(if (<= y -5.6e-132)
(* 2.0 (/ x (* a t_1)))
(if (<= y 5.4e-298)
(* x (+ 1.0 (* a (- (* 0.5 t_1) b))))
(if (<= y 6.2e+44)
(/ x (+ 1.0 (* b (* b t_2))))
(if (<= y 1.15e+134)
(* x (* t_2 (* b b)))
(* 2.0 (/ (/ (/ x (* a a)) b) b)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (b * b);
double t_2 = 0.5 * (a * a);
double tmp;
if (y <= -5.2e+139) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * t_1));
} else if (y <= 5.4e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_1) - b)));
} else if (y <= 6.2e+44) {
tmp = x / (1.0 + (b * (b * t_2)));
} else if (y <= 1.15e+134) {
tmp = x * (t_2 * (b * b));
} else {
tmp = 2.0 * (((x / (a * a)) / b) / 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) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = a * (b * b)
t_2 = 0.5d0 * (a * a)
if (y <= (-5.2d+139)) then
tmp = x + (t * (y * ((0.5d0 * (t * (y * x))) - x)))
else if (y <= (-5.6d-132)) then
tmp = 2.0d0 * (x / (a * t_1))
else if (y <= 5.4d-298) then
tmp = x * (1.0d0 + (a * ((0.5d0 * t_1) - b)))
else if (y <= 6.2d+44) then
tmp = x / (1.0d0 + (b * (b * t_2)))
else if (y <= 1.15d+134) then
tmp = x * (t_2 * (b * b))
else
tmp = 2.0d0 * (((x / (a * a)) / b) / b)
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 = a * (b * b);
double t_2 = 0.5 * (a * a);
double tmp;
if (y <= -5.2e+139) {
tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x)));
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * t_1));
} else if (y <= 5.4e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_1) - b)));
} else if (y <= 6.2e+44) {
tmp = x / (1.0 + (b * (b * t_2)));
} else if (y <= 1.15e+134) {
tmp = x * (t_2 * (b * b));
} else {
tmp = 2.0 * (((x / (a * a)) / b) / b);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (b * b) t_2 = 0.5 * (a * a) tmp = 0 if y <= -5.2e+139: tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))) elif y <= -5.6e-132: tmp = 2.0 * (x / (a * t_1)) elif y <= 5.4e-298: tmp = x * (1.0 + (a * ((0.5 * t_1) - b))) elif y <= 6.2e+44: tmp = x / (1.0 + (b * (b * t_2))) elif y <= 1.15e+134: tmp = x * (t_2 * (b * b)) else: tmp = 2.0 * (((x / (a * a)) / b) / b) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(b * b)) t_2 = Float64(0.5 * Float64(a * a)) tmp = 0.0 if (y <= -5.2e+139) tmp = Float64(x + Float64(t * Float64(y * Float64(Float64(0.5 * Float64(t * Float64(y * x))) - x)))); elseif (y <= -5.6e-132) tmp = Float64(2.0 * Float64(x / Float64(a * t_1))); elseif (y <= 5.4e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(0.5 * t_1) - b)))); elseif (y <= 6.2e+44) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(b * t_2)))); elseif (y <= 1.15e+134) tmp = Float64(x * Float64(t_2 * Float64(b * b))); else tmp = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (b * b); t_2 = 0.5 * (a * a); tmp = 0.0; if (y <= -5.2e+139) tmp = x + (t * (y * ((0.5 * (t * (y * x))) - x))); elseif (y <= -5.6e-132) tmp = 2.0 * (x / (a * t_1)); elseif (y <= 5.4e-298) tmp = x * (1.0 + (a * ((0.5 * t_1) - b))); elseif (y <= 6.2e+44) tmp = x / (1.0 + (b * (b * t_2))); elseif (y <= 1.15e+134) tmp = x * (t_2 * (b * b)); else tmp = 2.0 * (((x / (a * a)) / b) / b); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -5.2e+139], N[(x + N[(t * N[(y * N[(N[(0.5 * N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -5.6e-132], N[(2.0 * N[(x / N[(a * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.4e-298], N[(x * N[(1.0 + N[(a * N[(N[(0.5 * t$95$1), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 6.2e+44], N[(x / N[(1.0 + N[(b * N[(b * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.15e+134], N[(x * N[(t$95$2 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(b \cdot b\right)\\
t_2 := 0.5 \cdot \left(a \cdot a\right)\\
\mathbf{if}\;y \leq -5.2 \cdot 10^{+139}:\\
\;\;\;\;x + t \cdot \left(y \cdot \left(0.5 \cdot \left(t \cdot \left(y \cdot x\right)\right) - x\right)\right)\\
\mathbf{elif}\;y \leq -5.6 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot t\_1}\\
\mathbf{elif}\;y \leq 5.4 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(0.5 \cdot t\_1 - b\right)\right)\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+44}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(b \cdot t\_2\right)}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+134}:\\
\;\;\;\;x \cdot \left(t\_2 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
\end{array}
\end{array}
if y < -5.20000000000000044e139Initial program 91.9%
Simplified91.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.0%
Simplified71.0%
Taylor expanded in t around 0
Simplified0.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6455.2%
Simplified55.2%
if -5.20000000000000044e139 < y < -5.60000000000000005e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -5.60000000000000005e-132 < y < 5.4000000000000002e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.2%
Simplified70.2%
if 5.4000000000000002e-298 < y < 6.19999999999999991e44Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.7%
Simplified51.7%
Taylor expanded in a around inf
associate-*r*N/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.5%
Simplified56.5%
if 6.19999999999999991e44 < y < 1.1499999999999999e134Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6448.6%
Simplified48.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.1%
Simplified31.1%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.2%
Simplified58.2%
if 1.1499999999999999e134 < y Initial program 100.0%
Simplified100.0%
Taylor expanded in b around inf
*-lowering-*.f6432.7%
Simplified32.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.2%
Simplified30.2%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6426.0%
Simplified26.0%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6449.5%
Simplified49.5%
Final simplification58.1%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* a (* b b)))
(t_2 (* 2.0 (/ (/ (/ x (* a a)) b) b)))
(t_3 (* 0.5 (* a a))))
(if (<= y -7e+139)
t_2
(if (<= y -4.8e-132)
(* 2.0 (/ x (* a t_1)))
(if (<= y 2.6e-298)
(* x (+ 1.0 (* a (- (* 0.5 t_1) b))))
(if (<= y 1.05e+45)
(/ x (+ 1.0 (* b (* b t_3))))
(if (<= y 1.2e+134) (* x (* t_3 (* b b))) t_2)))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = a * (b * b);
double t_2 = 2.0 * (((x / (a * a)) / b) / b);
double t_3 = 0.5 * (a * a);
double tmp;
if (y <= -7e+139) {
tmp = t_2;
} else if (y <= -4.8e-132) {
tmp = 2.0 * (x / (a * t_1));
} else if (y <= 2.6e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_1) - b)));
} else if (y <= 1.05e+45) {
tmp = x / (1.0 + (b * (b * t_3)));
} else if (y <= 1.2e+134) {
tmp = x * (t_3 * (b * b));
} 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) :: t_3
real(8) :: tmp
t_1 = a * (b * b)
t_2 = 2.0d0 * (((x / (a * a)) / b) / b)
t_3 = 0.5d0 * (a * a)
if (y <= (-7d+139)) then
tmp = t_2
else if (y <= (-4.8d-132)) then
tmp = 2.0d0 * (x / (a * t_1))
else if (y <= 2.6d-298) then
tmp = x * (1.0d0 + (a * ((0.5d0 * t_1) - b)))
else if (y <= 1.05d+45) then
tmp = x / (1.0d0 + (b * (b * t_3)))
else if (y <= 1.2d+134) then
tmp = x * (t_3 * (b * b))
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 = a * (b * b);
double t_2 = 2.0 * (((x / (a * a)) / b) / b);
double t_3 = 0.5 * (a * a);
double tmp;
if (y <= -7e+139) {
tmp = t_2;
} else if (y <= -4.8e-132) {
tmp = 2.0 * (x / (a * t_1));
} else if (y <= 2.6e-298) {
tmp = x * (1.0 + (a * ((0.5 * t_1) - b)));
} else if (y <= 1.05e+45) {
tmp = x / (1.0 + (b * (b * t_3)));
} else if (y <= 1.2e+134) {
tmp = x * (t_3 * (b * b));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = a * (b * b) t_2 = 2.0 * (((x / (a * a)) / b) / b) t_3 = 0.5 * (a * a) tmp = 0 if y <= -7e+139: tmp = t_2 elif y <= -4.8e-132: tmp = 2.0 * (x / (a * t_1)) elif y <= 2.6e-298: tmp = x * (1.0 + (a * ((0.5 * t_1) - b))) elif y <= 1.05e+45: tmp = x / (1.0 + (b * (b * t_3))) elif y <= 1.2e+134: tmp = x * (t_3 * (b * b)) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(a * Float64(b * b)) t_2 = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)) t_3 = Float64(0.5 * Float64(a * a)) tmp = 0.0 if (y <= -7e+139) tmp = t_2; elseif (y <= -4.8e-132) tmp = Float64(2.0 * Float64(x / Float64(a * t_1))); elseif (y <= 2.6e-298) tmp = Float64(x * Float64(1.0 + Float64(a * Float64(Float64(0.5 * t_1) - b)))); elseif (y <= 1.05e+45) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(b * t_3)))); elseif (y <= 1.2e+134) tmp = Float64(x * Float64(t_3 * Float64(b * b))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = a * (b * b); t_2 = 2.0 * (((x / (a * a)) / b) / b); t_3 = 0.5 * (a * a); tmp = 0.0; if (y <= -7e+139) tmp = t_2; elseif (y <= -4.8e-132) tmp = 2.0 * (x / (a * t_1)); elseif (y <= 2.6e-298) tmp = x * (1.0 + (a * ((0.5 * t_1) - b))); elseif (y <= 1.05e+45) tmp = x / (1.0 + (b * (b * t_3))); elseif (y <= 1.2e+134) tmp = x * (t_3 * (b * b)); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -7e+139], t$95$2, If[LessEqual[y, -4.8e-132], N[(2.0 * N[(x / N[(a * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.6e-298], N[(x * N[(1.0 + N[(a * N[(N[(0.5 * t$95$1), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.05e+45], N[(x / N[(1.0 + N[(b * N[(b * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.2e+134], N[(x * N[(t$95$3 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(b \cdot b\right)\\
t_2 := 2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
t_3 := 0.5 \cdot \left(a \cdot a\right)\\
\mathbf{if}\;y \leq -7 \cdot 10^{+139}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -4.8 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot t\_1}\\
\mathbf{elif}\;y \leq 2.6 \cdot 10^{-298}:\\
\;\;\;\;x \cdot \left(1 + a \cdot \left(0.5 \cdot t\_1 - b\right)\right)\\
\mathbf{elif}\;y \leq 1.05 \cdot 10^{+45}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(b \cdot t\_3\right)}\\
\mathbf{elif}\;y \leq 1.2 \cdot 10^{+134}:\\
\;\;\;\;x \cdot \left(t\_3 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y < -6.99999999999999957e139 or 1.20000000000000003e134 < y Initial program 95.9%
Simplified95.9%
Taylor expanded in b around inf
*-lowering-*.f6433.7%
Simplified33.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6421.7%
Simplified21.7%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6419.2%
Simplified19.2%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6450.9%
Simplified50.9%
if -6.99999999999999957e139 < y < -4.80000000000000031e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -4.80000000000000031e-132 < y < 2.5999999999999999e-298Initial program 97.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.2%
Simplified70.2%
if 2.5999999999999999e-298 < y < 1.04999999999999997e45Initial program 94.2%
Simplified94.2%
Taylor expanded in b around inf
*-lowering-*.f6472.4%
Simplified72.4%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.7%
Simplified51.7%
Taylor expanded in a around inf
associate-*r*N/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.5%
Simplified56.5%
if 1.04999999999999997e45 < y < 1.20000000000000003e134Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6448.6%
Simplified48.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.1%
Simplified31.1%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.2%
Simplified58.2%
Final simplification57.6%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))) (t_2 (* 2.0 (/ (/ (/ x (* a a)) b) b))))
(if (<= y -4.6e+139)
t_2
(if (<= y -1.08e-94)
(* 2.0 (/ x (* a (* a (* b b)))))
(if (<= y 5.5e+44)
(/ x (+ 1.0 (* b (* b t_1))))
(if (<= y 1.15e+134) (* x (* t_1 (* b b))) t_2))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.5 * (a * a);
double t_2 = 2.0 * (((x / (a * a)) / b) / b);
double tmp;
if (y <= -4.6e+139) {
tmp = t_2;
} else if (y <= -1.08e-94) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 5.5e+44) {
tmp = x / (1.0 + (b * (b * t_1)));
} else if (y <= 1.15e+134) {
tmp = x * (t_1 * (b * b));
} 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 = 0.5d0 * (a * a)
t_2 = 2.0d0 * (((x / (a * a)) / b) / b)
if (y <= (-4.6d+139)) then
tmp = t_2
else if (y <= (-1.08d-94)) then
tmp = 2.0d0 * (x / (a * (a * (b * b))))
else if (y <= 5.5d+44) then
tmp = x / (1.0d0 + (b * (b * t_1)))
else if (y <= 1.15d+134) then
tmp = x * (t_1 * (b * b))
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 = 0.5 * (a * a);
double t_2 = 2.0 * (((x / (a * a)) / b) / b);
double tmp;
if (y <= -4.6e+139) {
tmp = t_2;
} else if (y <= -1.08e-94) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 5.5e+44) {
tmp = x / (1.0 + (b * (b * t_1)));
} else if (y <= 1.15e+134) {
tmp = x * (t_1 * (b * b));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) t_2 = 2.0 * (((x / (a * a)) / b) / b) tmp = 0 if y <= -4.6e+139: tmp = t_2 elif y <= -1.08e-94: tmp = 2.0 * (x / (a * (a * (b * b)))) elif y <= 5.5e+44: tmp = x / (1.0 + (b * (b * t_1))) elif y <= 1.15e+134: tmp = x * (t_1 * (b * b)) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) t_2 = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)) tmp = 0.0 if (y <= -4.6e+139) tmp = t_2; elseif (y <= -1.08e-94) tmp = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))); elseif (y <= 5.5e+44) tmp = Float64(x / Float64(1.0 + Float64(b * Float64(b * t_1)))); elseif (y <= 1.15e+134) tmp = Float64(x * Float64(t_1 * Float64(b * b))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.5 * (a * a); t_2 = 2.0 * (((x / (a * a)) / b) / b); tmp = 0.0; if (y <= -4.6e+139) tmp = t_2; elseif (y <= -1.08e-94) tmp = 2.0 * (x / (a * (a * (b * b)))); elseif (y <= 5.5e+44) tmp = x / (1.0 + (b * (b * t_1))); elseif (y <= 1.15e+134) tmp = x * (t_1 * (b * b)); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -4.6e+139], t$95$2, If[LessEqual[y, -1.08e-94], N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.5e+44], N[(x / N[(1.0 + N[(b * N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.15e+134], N[(x * N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
t_2 := 2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
\mathbf{if}\;y \leq -4.6 \cdot 10^{+139}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -1.08 \cdot 10^{-94}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{elif}\;y \leq 5.5 \cdot 10^{+44}:\\
\;\;\;\;\frac{x}{1 + b \cdot \left(b \cdot t\_1\right)}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+134}:\\
\;\;\;\;x \cdot \left(t\_1 \cdot \left(b \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y < -4.6e139 or 1.1499999999999999e134 < y Initial program 95.9%
Simplified95.9%
Taylor expanded in b around inf
*-lowering-*.f6433.7%
Simplified33.7%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6421.7%
Simplified21.7%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6419.2%
Simplified19.2%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6450.9%
Simplified50.9%
if -4.6e139 < y < -1.08e-94Initial program 97.6%
Simplified97.5%
Taylor expanded in b around inf
*-lowering-*.f6453.8%
Simplified53.8%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6432.3%
Simplified32.3%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.6%
Simplified59.6%
if -1.08e-94 < y < 5.5000000000000001e44Initial program 95.3%
Simplified95.3%
Taylor expanded in b around inf
*-lowering-*.f6480.2%
Simplified80.2%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6452.8%
Simplified52.8%
Taylor expanded in a around inf
associate-*r*N/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6455.6%
Simplified55.6%
if 5.5000000000000001e44 < y < 1.1499999999999999e134Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6448.6%
Simplified48.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.1%
Simplified31.1%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.2%
Simplified58.2%
Final simplification55.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* x (* (* 0.5 (* a a)) (* b b)))))
(if (<= a -1.9e-20)
t_1
(if (<= a -5.6e-95)
(* x (- 1.0 (* a b)))
(if (<= a 2.8e-173)
(* 2.0 (/ x (* a (* a (* b b)))))
(if (<= a 80.0) t_1 (* 2.0 (/ (/ (/ x (* a a)) b) b))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = x * ((0.5 * (a * a)) * (b * b));
double tmp;
if (a <= -1.9e-20) {
tmp = t_1;
} else if (a <= -5.6e-95) {
tmp = x * (1.0 - (a * b));
} else if (a <= 2.8e-173) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (a <= 80.0) {
tmp = t_1;
} else {
tmp = 2.0 * (((x / (a * a)) / b) / 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) :: t_1
real(8) :: tmp
t_1 = x * ((0.5d0 * (a * a)) * (b * b))
if (a <= (-1.9d-20)) then
tmp = t_1
else if (a <= (-5.6d-95)) then
tmp = x * (1.0d0 - (a * b))
else if (a <= 2.8d-173) then
tmp = 2.0d0 * (x / (a * (a * (b * b))))
else if (a <= 80.0d0) then
tmp = t_1
else
tmp = 2.0d0 * (((x / (a * a)) / b) / b)
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 * ((0.5 * (a * a)) * (b * b));
double tmp;
if (a <= -1.9e-20) {
tmp = t_1;
} else if (a <= -5.6e-95) {
tmp = x * (1.0 - (a * b));
} else if (a <= 2.8e-173) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (a <= 80.0) {
tmp = t_1;
} else {
tmp = 2.0 * (((x / (a * a)) / b) / b);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = x * ((0.5 * (a * a)) * (b * b)) tmp = 0 if a <= -1.9e-20: tmp = t_1 elif a <= -5.6e-95: tmp = x * (1.0 - (a * b)) elif a <= 2.8e-173: tmp = 2.0 * (x / (a * (a * (b * b)))) elif a <= 80.0: tmp = t_1 else: tmp = 2.0 * (((x / (a * a)) / b) / b) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(x * Float64(Float64(0.5 * Float64(a * a)) * Float64(b * b))) tmp = 0.0 if (a <= -1.9e-20) tmp = t_1; elseif (a <= -5.6e-95) tmp = Float64(x * Float64(1.0 - Float64(a * b))); elseif (a <= 2.8e-173) tmp = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))); elseif (a <= 80.0) tmp = t_1; else tmp = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = x * ((0.5 * (a * a)) * (b * b)); tmp = 0.0; if (a <= -1.9e-20) tmp = t_1; elseif (a <= -5.6e-95) tmp = x * (1.0 - (a * b)); elseif (a <= 2.8e-173) tmp = 2.0 * (x / (a * (a * (b * b)))); elseif (a <= 80.0) tmp = t_1; else tmp = 2.0 * (((x / (a * a)) / b) / b); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x * N[(N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.9e-20], t$95$1, If[LessEqual[a, -5.6e-95], N[(x * N[(1.0 - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.8e-173], N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 80.0], t$95$1, N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot \left(\left(0.5 \cdot \left(a \cdot a\right)\right) \cdot \left(b \cdot b\right)\right)\\
\mathbf{if}\;a \leq -1.9 \cdot 10^{-20}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;a \leq -5.6 \cdot 10^{-95}:\\
\;\;\;\;x \cdot \left(1 - a \cdot b\right)\\
\mathbf{elif}\;a \leq 2.8 \cdot 10^{-173}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{elif}\;a \leq 80:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
\end{array}
\end{array}
if a < -1.8999999999999999e-20 or 2.7999999999999999e-173 < a < 80Initial program 96.9%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6462.6%
Simplified62.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6442.1%
Simplified42.1%
Taylor expanded in a around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6445.7%
Simplified45.7%
if -1.8999999999999999e-20 < a < -5.5999999999999998e-95Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6482.3%
Simplified82.3%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6473.1%
Simplified73.1%
if -5.5999999999999998e-95 < a < 2.7999999999999999e-173Initial program 100.0%
Simplified100.0%
Taylor expanded in b around inf
*-lowering-*.f6441.8%
Simplified41.8%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6437.2%
Simplified37.2%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6448.9%
Simplified48.9%
if 80 < a Initial program 92.6%
Simplified92.6%
Taylor expanded in b around inf
*-lowering-*.f6465.6%
Simplified65.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.4%
Simplified46.4%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6446.5%
Simplified46.5%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6459.2%
Simplified59.2%
Final simplification52.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 2.0 (/ (/ (/ x (* a a)) b) b))))
(if (<= y -6.5e+139)
t_1
(if (<= y -5.6e-132)
(* 2.0 (/ x (* a (* a (* b b)))))
(if (<= y 1.1e-266) (* x (- 1.0 (* a b))) t_1)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 2.0 * (((x / (a * a)) / b) / b);
double tmp;
if (y <= -6.5e+139) {
tmp = t_1;
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.1e-266) {
tmp = x * (1.0 - (a * b));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = 2.0d0 * (((x / (a * a)) / b) / b)
if (y <= (-6.5d+139)) then
tmp = t_1
else if (y <= (-5.6d-132)) then
tmp = 2.0d0 * (x / (a * (a * (b * b))))
else if (y <= 1.1d-266) then
tmp = x * (1.0d0 - (a * b))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 2.0 * (((x / (a * a)) / b) / b);
double tmp;
if (y <= -6.5e+139) {
tmp = t_1;
} else if (y <= -5.6e-132) {
tmp = 2.0 * (x / (a * (a * (b * b))));
} else if (y <= 1.1e-266) {
tmp = x * (1.0 - (a * b));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 2.0 * (((x / (a * a)) / b) / b) tmp = 0 if y <= -6.5e+139: tmp = t_1 elif y <= -5.6e-132: tmp = 2.0 * (x / (a * (a * (b * b)))) elif y <= 1.1e-266: tmp = x * (1.0 - (a * b)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(2.0 * Float64(Float64(Float64(x / Float64(a * a)) / b) / b)) tmp = 0.0 if (y <= -6.5e+139) tmp = t_1; elseif (y <= -5.6e-132) tmp = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))); elseif (y <= 1.1e-266) tmp = Float64(x * Float64(1.0 - Float64(a * b))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 2.0 * (((x / (a * a)) / b) / b); tmp = 0.0; if (y <= -6.5e+139) tmp = t_1; elseif (y <= -5.6e-132) tmp = 2.0 * (x / (a * (a * (b * b)))); elseif (y <= 1.1e-266) tmp = x * (1.0 - (a * b)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(2.0 * N[(N[(N[(x / N[(a * a), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -6.5e+139], t$95$1, If[LessEqual[y, -5.6e-132], N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.1e-266], N[(x * N[(1.0 - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 2 \cdot \frac{\frac{\frac{x}{a \cdot a}}{b}}{b}\\
\mathbf{if}\;y \leq -6.5 \cdot 10^{+139}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -5.6 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{-266}:\\
\;\;\;\;x \cdot \left(1 - a \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -6.5000000000000003e139 or 1.1e-266 < y Initial program 96.1%
Simplified96.1%
Taylor expanded in b around inf
*-lowering-*.f6450.6%
Simplified50.6%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.7%
Simplified31.7%
Taylor expanded in b around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sub-negN/A
distribute-neg-fracN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
/-lowering-/.f6428.2%
Simplified28.2%
Taylor expanded in b around inf
*-lowering-*.f64N/A
associate-/r*N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6444.8%
Simplified44.8%
if -6.5000000000000003e139 < y < -5.60000000000000005e-132Initial program 97.7%
Simplified97.7%
Taylor expanded in b around inf
*-lowering-*.f6457.0%
Simplified57.0%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.1%
Simplified60.1%
if -5.60000000000000005e-132 < y < 1.1e-266Initial program 96.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6491.9%
Simplified91.9%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6448.7%
Simplified48.7%
Final simplification48.1%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (* 2.0 (/ x (* a (* a (* b b))))))) (if (<= y -2.8e-132) t_1 (if (<= y 1.28e-49) (/ x (+ 1.0 (* a b))) t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 2.0 * (x / (a * (a * (b * b))));
double tmp;
if (y <= -2.8e-132) {
tmp = t_1;
} else if (y <= 1.28e-49) {
tmp = x / (1.0 + (a * b));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = 2.0d0 * (x / (a * (a * (b * b))))
if (y <= (-2.8d-132)) then
tmp = t_1
else if (y <= 1.28d-49) then
tmp = x / (1.0d0 + (a * b))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 2.0 * (x / (a * (a * (b * b))));
double tmp;
if (y <= -2.8e-132) {
tmp = t_1;
} else if (y <= 1.28e-49) {
tmp = x / (1.0 + (a * b));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 2.0 * (x / (a * (a * (b * b)))) tmp = 0 if y <= -2.8e-132: tmp = t_1 elif y <= 1.28e-49: tmp = x / (1.0 + (a * b)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(2.0 * Float64(x / Float64(a * Float64(a * Float64(b * b))))) tmp = 0.0 if (y <= -2.8e-132) tmp = t_1; elseif (y <= 1.28e-49) tmp = Float64(x / Float64(1.0 + Float64(a * b))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 2.0 * (x / (a * (a * (b * b)))); tmp = 0.0; if (y <= -2.8e-132) tmp = t_1; elseif (y <= 1.28e-49) tmp = x / (1.0 + (a * b)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(2.0 * N[(x / N[(a * N[(a * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -2.8e-132], t$95$1, If[LessEqual[y, 1.28e-49], N[(x / N[(1.0 + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 2 \cdot \frac{x}{a \cdot \left(a \cdot \left(b \cdot b\right)\right)}\\
\mathbf{if}\;y \leq -2.8 \cdot 10^{-132}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.28 \cdot 10^{-49}:\\
\;\;\;\;\frac{x}{1 + a \cdot b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -2.80000000000000002e-132 or 1.28e-49 < y Initial program 97.3%
Simplified97.2%
Taylor expanded in b around inf
*-lowering-*.f6444.9%
Simplified44.9%
Taylor expanded in a around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6426.3%
Simplified26.3%
Taylor expanded in a around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6444.3%
Simplified44.3%
if -2.80000000000000002e-132 < y < 1.28e-49Initial program 94.8%
Simplified94.8%
Taylor expanded in b around inf
*-lowering-*.f6484.5%
Simplified84.5%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6445.7%
Simplified45.7%
Final simplification44.8%
(FPCore (x y z t a b) :precision binary64 (if (<= b -35000000000000.0) (* a (- (/ x a) (* b x))) (if (<= b 8.6e+32) (- x (* t (* y x))) (/ x (+ 1.0 (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (b <= -35000000000000.0) {
tmp = a * ((x / a) - (b * x));
} else if (b <= 8.6e+32) {
tmp = x - (t * (y * x));
} else {
tmp = x / (1.0 + (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 <= (-35000000000000.0d0)) then
tmp = a * ((x / a) - (b * x))
else if (b <= 8.6d+32) then
tmp = x - (t * (y * x))
else
tmp = x / (1.0d0 + (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 <= -35000000000000.0) {
tmp = a * ((x / a) - (b * x));
} else if (b <= 8.6e+32) {
tmp = x - (t * (y * x));
} else {
tmp = x / (1.0 + (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if b <= -35000000000000.0: tmp = a * ((x / a) - (b * x)) elif b <= 8.6e+32: tmp = x - (t * (y * x)) else: tmp = x / (1.0 + (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (b <= -35000000000000.0) tmp = Float64(a * Float64(Float64(x / a) - Float64(b * x))); elseif (b <= 8.6e+32) tmp = Float64(x - Float64(t * Float64(y * x))); else tmp = Float64(x / Float64(1.0 + Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (b <= -35000000000000.0) tmp = a * ((x / a) - (b * x)); elseif (b <= 8.6e+32) tmp = x - (t * (y * x)); else tmp = x / (1.0 + (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[b, -35000000000000.0], N[(a * N[(N[(x / a), $MachinePrecision] - N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 8.6e+32], N[(x - N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(1.0 + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -35000000000000:\\
\;\;\;\;a \cdot \left(\frac{x}{a} - b \cdot x\right)\\
\mathbf{elif}\;b \leq 8.6 \cdot 10^{+32}:\\
\;\;\;\;x - t \cdot \left(y \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 + a \cdot b}\\
\end{array}
\end{array}
if b < -3.5e13Initial program 96.4%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6474.1%
Simplified74.1%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6427.4%
Simplified27.4%
Taylor expanded in a around inf
*-lowering-*.f64N/A
mul-1-negN/A
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6430.7%
Simplified30.7%
if -3.5e13 < b < 8.5999999999999994e32Initial program 96.2%
Simplified96.2%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6471.9%
Simplified71.9%
Taylor expanded in y around 0
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6432.9%
Simplified32.9%
if 8.5999999999999994e32 < b Initial program 96.6%
Simplified96.6%
Taylor expanded in b around inf
*-lowering-*.f6491.7%
Simplified91.7%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6444.0%
Simplified44.0%
Final simplification35.0%
(FPCore (x y z t a b) :precision binary64 (if (<= y -9.5e+49) (- x (* t (* y x))) (if (<= y 5.5e+44) (/ x (+ 1.0 (* a b))) (- 0.0 (* x (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -9.5e+49) {
tmp = x - (t * (y * x));
} else if (y <= 5.5e+44) {
tmp = x / (1.0 + (a * b));
} else {
tmp = 0.0 - (x * (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 (y <= (-9.5d+49)) then
tmp = x - (t * (y * x))
else if (y <= 5.5d+44) then
tmp = x / (1.0d0 + (a * b))
else
tmp = 0.0d0 - (x * (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 (y <= -9.5e+49) {
tmp = x - (t * (y * x));
} else if (y <= 5.5e+44) {
tmp = x / (1.0 + (a * b));
} else {
tmp = 0.0 - (x * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -9.5e+49: tmp = x - (t * (y * x)) elif y <= 5.5e+44: tmp = x / (1.0 + (a * b)) else: tmp = 0.0 - (x * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -9.5e+49) tmp = Float64(x - Float64(t * Float64(y * x))); elseif (y <= 5.5e+44) tmp = Float64(x / Float64(1.0 + Float64(a * b))); else tmp = Float64(0.0 - Float64(x * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -9.5e+49) tmp = x - (t * (y * x)); elseif (y <= 5.5e+44) tmp = x / (1.0 + (a * b)); else tmp = 0.0 - (x * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -9.5e+49], N[(x - N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.5e+44], N[(x / N[(1.0 + N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.0 - N[(x * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -9.5 \cdot 10^{+49}:\\
\;\;\;\;x - t \cdot \left(y \cdot x\right)\\
\mathbf{elif}\;y \leq 5.5 \cdot 10^{+44}:\\
\;\;\;\;\frac{x}{1 + a \cdot b}\\
\mathbf{else}:\\
\;\;\;\;0 - x \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if y < -9.49999999999999969e49Initial program 94.0%
Simplified94.0%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6466.9%
Simplified66.9%
Taylor expanded in y around 0
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6428.0%
Simplified28.0%
if -9.49999999999999969e49 < y < 5.5000000000000001e44Initial program 95.6%
Simplified95.5%
Taylor expanded in b around inf
*-lowering-*.f6476.8%
Simplified76.8%
Taylor expanded in a around 0
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6439.8%
Simplified39.8%
if 5.5000000000000001e44 < y Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6439.7%
Simplified39.7%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.9%
Simplified10.9%
Taylor expanded in a around inf
neg-mul-1N/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6428.4%
Simplified28.4%
Final simplification34.6%
(FPCore (x y z t a b) :precision binary64 (if (<= y -6.8e+50) (- x (* t (* y x))) (if (<= y 2.3e+41) (- x (* a (* b x))) (- 0.0 (* x (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -6.8e+50) {
tmp = x - (t * (y * x));
} else if (y <= 2.3e+41) {
tmp = x - (a * (b * x));
} else {
tmp = 0.0 - (x * (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 (y <= (-6.8d+50)) then
tmp = x - (t * (y * x))
else if (y <= 2.3d+41) then
tmp = x - (a * (b * x))
else
tmp = 0.0d0 - (x * (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 (y <= -6.8e+50) {
tmp = x - (t * (y * x));
} else if (y <= 2.3e+41) {
tmp = x - (a * (b * x));
} else {
tmp = 0.0 - (x * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -6.8e+50: tmp = x - (t * (y * x)) elif y <= 2.3e+41: tmp = x - (a * (b * x)) else: tmp = 0.0 - (x * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -6.8e+50) tmp = Float64(x - Float64(t * Float64(y * x))); elseif (y <= 2.3e+41) tmp = Float64(x - Float64(a * Float64(b * x))); else tmp = Float64(0.0 - Float64(x * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -6.8e+50) tmp = x - (t * (y * x)); elseif (y <= 2.3e+41) tmp = x - (a * (b * x)); else tmp = 0.0 - (x * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -6.8e+50], N[(x - N[(t * N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.3e+41], N[(x - N[(a * N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.0 - N[(x * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -6.8 \cdot 10^{+50}:\\
\;\;\;\;x - t \cdot \left(y \cdot x\right)\\
\mathbf{elif}\;y \leq 2.3 \cdot 10^{+41}:\\
\;\;\;\;x - a \cdot \left(b \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;0 - x \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if y < -6.7999999999999997e50Initial program 93.9%
Simplified93.9%
Taylor expanded in t around inf
*-commutativeN/A
*-lowering-*.f6468.2%
Simplified68.2%
Taylor expanded in y around 0
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6428.5%
Simplified28.5%
if -6.7999999999999997e50 < y < 2.2999999999999998e41Initial program 95.6%
Simplified95.5%
Taylor expanded in b around inf
*-lowering-*.f6476.8%
Simplified76.8%
Taylor expanded in a around 0
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6432.6%
Simplified32.6%
if 2.2999999999999998e41 < y Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.8%
Simplified10.8%
Taylor expanded in a around inf
neg-mul-1N/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6428.0%
Simplified28.0%
Final simplification30.7%
(FPCore (x y z t a b) :precision binary64 (if (<= y -1.95e-24) (- 0.0 (* a (* b x))) (if (<= y 2e+41) (* x (- 1.0 (* a b))) (- 0.0 (* x (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -1.95e-24) {
tmp = 0.0 - (a * (b * x));
} else if (y <= 2e+41) {
tmp = x * (1.0 - (a * b));
} else {
tmp = 0.0 - (x * (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 (y <= (-1.95d-24)) then
tmp = 0.0d0 - (a * (b * x))
else if (y <= 2d+41) then
tmp = x * (1.0d0 - (a * b))
else
tmp = 0.0d0 - (x * (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 (y <= -1.95e-24) {
tmp = 0.0 - (a * (b * x));
} else if (y <= 2e+41) {
tmp = x * (1.0 - (a * b));
} else {
tmp = 0.0 - (x * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -1.95e-24: tmp = 0.0 - (a * (b * x)) elif y <= 2e+41: tmp = x * (1.0 - (a * b)) else: tmp = 0.0 - (x * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -1.95e-24) tmp = Float64(0.0 - Float64(a * Float64(b * x))); elseif (y <= 2e+41) tmp = Float64(x * Float64(1.0 - Float64(a * b))); else tmp = Float64(0.0 - Float64(x * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -1.95e-24) tmp = 0.0 - (a * (b * x)); elseif (y <= 2e+41) tmp = x * (1.0 - (a * b)); else tmp = 0.0 - (x * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -1.95e-24], N[(0.0 - N[(a * N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2e+41], N[(x * N[(1.0 - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.0 - N[(x * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.95 \cdot 10^{-24}:\\
\;\;\;\;0 - a \cdot \left(b \cdot x\right)\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+41}:\\
\;\;\;\;x \cdot \left(1 - a \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;0 - x \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if y < -1.95e-24Initial program 94.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6438.5%
Simplified38.5%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.9%
Simplified10.9%
Taylor expanded in a around inf
mul-1-negN/A
distribute-rgt-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6418.4%
Simplified18.4%
if -1.95e-24 < y < 2.00000000000000001e41Initial program 95.7%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6480.2%
Simplified80.2%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6435.6%
Simplified35.6%
if 2.00000000000000001e41 < y Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.8%
Simplified10.8%
Taylor expanded in a around inf
neg-mul-1N/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6428.0%
Simplified28.0%
Final simplification29.2%
(FPCore (x y z t a b) :precision binary64 (if (<= y -4.4e-8) (- 0.0 (* a (* b x))) (if (<= y 5e+44) x (- 0.0 (* x (* a b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -4.4e-8) {
tmp = 0.0 - (a * (b * x));
} else if (y <= 5e+44) {
tmp = x;
} else {
tmp = 0.0 - (x * (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 (y <= (-4.4d-8)) then
tmp = 0.0d0 - (a * (b * x))
else if (y <= 5d+44) then
tmp = x
else
tmp = 0.0d0 - (x * (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 (y <= -4.4e-8) {
tmp = 0.0 - (a * (b * x));
} else if (y <= 5e+44) {
tmp = x;
} else {
tmp = 0.0 - (x * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -4.4e-8: tmp = 0.0 - (a * (b * x)) elif y <= 5e+44: tmp = x else: tmp = 0.0 - (x * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -4.4e-8) tmp = Float64(0.0 - Float64(a * Float64(b * x))); elseif (y <= 5e+44) tmp = x; else tmp = Float64(0.0 - Float64(x * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -4.4e-8) tmp = 0.0 - (a * (b * x)); elseif (y <= 5e+44) tmp = x; else tmp = 0.0 - (x * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -4.4e-8], N[(0.0 - N[(a * N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5e+44], x, N[(0.0 - N[(x * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.4 \cdot 10^{-8}:\\
\;\;\;\;0 - a \cdot \left(b \cdot x\right)\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+44}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;0 - x \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if y < -4.3999999999999997e-8Initial program 93.7%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6437.7%
Simplified37.7%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6411.4%
Simplified11.4%
Taylor expanded in a around inf
mul-1-negN/A
distribute-rgt-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6419.2%
Simplified19.2%
if -4.3999999999999997e-8 < y < 4.9999999999999996e44Initial program 95.9%
Simplified95.9%
Taylor expanded in b around inf
*-lowering-*.f6479.5%
Simplified79.5%
Taylor expanded in a around 0
Simplified27.1%
if 4.9999999999999996e44 < y Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6439.7%
Simplified39.7%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.9%
Simplified10.9%
Taylor expanded in a around inf
neg-mul-1N/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6428.4%
Simplified28.4%
Final simplification25.5%
(FPCore (x y z t a b) :precision binary64 (let* ((t_1 (- 0.0 (* a (* b x))))) (if (<= y -7e-10) t_1 (if (<= y 9.8e+33) x t_1))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.0 - (a * (b * x));
double tmp;
if (y <= -7e-10) {
tmp = t_1;
} else if (y <= 9.8e+33) {
tmp = x;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = 0.0d0 - (a * (b * x))
if (y <= (-7d-10)) then
tmp = t_1
else if (y <= 9.8d+33) then
tmp = x
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = 0.0 - (a * (b * x));
double tmp;
if (y <= -7e-10) {
tmp = t_1;
} else if (y <= 9.8e+33) {
tmp = x;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.0 - (a * (b * x)) tmp = 0 if y <= -7e-10: tmp = t_1 elif y <= 9.8e+33: tmp = x else: tmp = t_1 return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.0 - Float64(a * Float64(b * x))) tmp = 0.0 if (y <= -7e-10) tmp = t_1; elseif (y <= 9.8e+33) tmp = x; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = 0.0 - (a * (b * x)); tmp = 0.0; if (y <= -7e-10) tmp = t_1; elseif (y <= 9.8e+33) tmp = x; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(0.0 - N[(a * N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -7e-10], t$95$1, If[LessEqual[y, 9.8e+33], x, t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0 - a \cdot \left(b \cdot x\right)\\
\mathbf{if}\;y \leq -7 \cdot 10^{-10}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 9.8 \cdot 10^{+33}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -6.99999999999999961e-10 or 9.80000000000000027e33 < y Initial program 97.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6440.3%
Simplified40.3%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.8%
Simplified10.8%
Taylor expanded in a around inf
mul-1-negN/A
distribute-rgt-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f6423.0%
Simplified23.0%
if -6.99999999999999961e-10 < y < 9.80000000000000027e33Initial program 95.7%
Simplified95.7%
Taylor expanded in b around inf
*-lowering-*.f6479.4%
Simplified79.4%
Taylor expanded in a around 0
Simplified27.9%
Final simplification25.4%
(FPCore (x y z t a b) :precision binary64 (if (<= y 2.15e+41) (- x (* a (* b x))) (- 0.0 (* x (* a b)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= 2.15e+41) {
tmp = x - (a * (b * x));
} else {
tmp = 0.0 - (x * (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 (y <= 2.15d+41) then
tmp = x - (a * (b * x))
else
tmp = 0.0d0 - (x * (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 (y <= 2.15e+41) {
tmp = x - (a * (b * x));
} else {
tmp = 0.0 - (x * (a * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= 2.15e+41: tmp = x - (a * (b * x)) else: tmp = 0.0 - (x * (a * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= 2.15e+41) tmp = Float64(x - Float64(a * Float64(b * x))); else tmp = Float64(0.0 - Float64(x * Float64(a * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= 2.15e+41) tmp = x - (a * (b * x)); else tmp = 0.0 - (x * (a * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, 2.15e+41], N[(x - N[(a * N[(b * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.0 - N[(x * N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.15 \cdot 10^{+41}:\\
\;\;\;\;x - a \cdot \left(b \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;0 - x \cdot \left(a \cdot b\right)\\
\end{array}
\end{array}
if y < 2.15000000000000012e41Initial program 95.1%
Simplified95.1%
Taylor expanded in b around inf
*-lowering-*.f6465.6%
Simplified65.6%
Taylor expanded in a around 0
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6427.6%
Simplified27.6%
if 2.15000000000000012e41 < y Initial program 100.0%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in a around 0
neg-mul-1N/A
unsub-negN/A
--lowering--.f64N/A
*-lowering-*.f6410.8%
Simplified10.8%
Taylor expanded in a around inf
neg-mul-1N/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f6428.0%
Simplified28.0%
Final simplification27.7%
(FPCore (x y z t a b) :precision binary64 x)
double code(double x, double y, double z, double t, double a, double b) {
return x;
}
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
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return x;
}
def code(x, y, z, t, a, b): return x
function code(x, y, z, t, a, b) return x end
function tmp = code(x, y, z, t, a, b) tmp = x; end
code[x_, y_, z_, t_, a_, b_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 96.4%
Simplified96.4%
Taylor expanded in b around inf
*-lowering-*.f6459.2%
Simplified59.2%
Taylor expanded in a around 0
Simplified15.6%
herbie shell --seed 2024138
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
:precision binary64
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))