
(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 22 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 (* x (exp (fma a (- (log1p (- z)) b) (* y (- (log z) t))))))
double code(double x, double y, double z, double t, double a, double b) {
return x * exp(fma(a, (log1p(-z) - b), (y * (log(z) - t))));
}
function code(x, y, z, t, a, b) return Float64(x * exp(fma(a, Float64(log1p(Float64(-z)) - b), Float64(y * Float64(log(z) - t))))) end
code[x_, y_, z_, t_, a_, b_] := N[(x * N[Exp[N[(a * N[(N[Log[1 + (-z)], $MachinePrecision] - b), $MachinePrecision] + N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot e^{\mathsf{fma}\left(a, \mathsf{log1p}\left(-z\right) - b, y \cdot \left(\log z - t\right)\right)}
\end{array}
Initial program 95.8%
+-commutative95.8%
fma-def96.6%
sub-neg96.6%
log1p-def99.2%
Simplified99.2%
Final simplification99.2%
(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}
Initial program 95.8%
Final simplification95.8%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -2.4e-28) (not (<= y 2.35e-26))) (* x (exp (* y (- (log z) t)))) (* x (exp (* a (- (- z) b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -2.4e-28) || !(y <= 2.35e-26)) {
tmp = x * exp((y * (log(z) - t)));
} else {
tmp = x * exp((a * (-z - 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.4d-28)) .or. (.not. (y <= 2.35d-26))) then
tmp = x * exp((y * (log(z) - t)))
else
tmp = x * exp((a * (-z - 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.4e-28) || !(y <= 2.35e-26)) {
tmp = x * Math.exp((y * (Math.log(z) - t)));
} else {
tmp = x * Math.exp((a * (-z - b)));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -2.4e-28) or not (y <= 2.35e-26): tmp = x * math.exp((y * (math.log(z) - t))) else: tmp = x * math.exp((a * (-z - b))) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -2.4e-28) || !(y <= 2.35e-26)) tmp = Float64(x * exp(Float64(y * Float64(log(z) - t)))); else tmp = Float64(x * exp(Float64(a * Float64(Float64(-z) - b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -2.4e-28) || ~((y <= 2.35e-26))) tmp = x * exp((y * (log(z) - t))); else tmp = x * exp((a * (-z - b))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -2.4e-28], N[Not[LessEqual[y, 2.35e-26]], $MachinePrecision]], N[(x * N[Exp[N[(y * N[(N[Log[z], $MachinePrecision] - t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x * N[Exp[N[(a * N[((-z) - b), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.4 \cdot 10^{-28} \lor \neg \left(y \leq 2.35 \cdot 10^{-26}\right):\\
\;\;\;\;x \cdot e^{y \cdot \left(\log z - t\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot e^{a \cdot \left(\left(-z\right) - b\right)}\\
\end{array}
\end{array}
if y < -2.4000000000000002e-28 or 2.34999999999999995e-26 < y Initial program 96.4%
Taylor expanded in y around inf 89.3%
if -2.4000000000000002e-28 < y < 2.34999999999999995e-26Initial program 95.1%
Taylor expanded in y around 0 85.9%
sub-neg85.9%
neg-mul-185.9%
log1p-def91.6%
neg-mul-191.6%
Simplified91.6%
Taylor expanded in z around 0 91.6%
associate-*r*91.6%
associate-*r*91.6%
distribute-lft-out91.6%
mul-1-neg91.6%
+-commutative91.6%
Simplified91.6%
Final simplification90.4%
(FPCore (x y z t a b) :precision binary64 (if (<= y -9.2e+19) (* x (pow z y)) (if (<= y 1.8e-26) (* 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 <= -9.2e+19) {
tmp = x * pow(z, y);
} else if (y <= 1.8e-26) {
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 <= (-9.2d+19)) then
tmp = x * (z ** y)
else if (y <= 1.8d-26) 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 <= -9.2e+19) {
tmp = x * Math.pow(z, y);
} else if (y <= 1.8e-26) {
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 <= -9.2e+19: tmp = x * math.pow(z, y) elif y <= 1.8e-26: 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 <= -9.2e+19) tmp = Float64(x * (z ^ y)); elseif (y <= 1.8e-26) tmp = Float64(x * exp(Float64(a * Float64(Float64(-z) - b)))); else tmp = Float64(x * exp(Float64(y * Float64(-t)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -9.2e+19) tmp = x * (z ^ y); elseif (y <= 1.8e-26) 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, -9.2e+19], N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.8e-26], 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 -9.2 \cdot 10^{+19}:\\
\;\;\;\;x \cdot {z}^{y}\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{-26}:\\
\;\;\;\;x \cdot e^{a \cdot \left(\left(-z\right) - b\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot e^{y \cdot \left(-t\right)}\\
\end{array}
\end{array}
if y < -9.2e19Initial program 96.8%
Taylor expanded in y around inf 90.5%
Taylor expanded in t around 0 69.8%
*-commutative69.8%
Simplified69.8%
if -9.2e19 < y < 1.8000000000000001e-26Initial program 95.4%
Taylor expanded in y around 0 84.3%
sub-neg84.3%
neg-mul-184.3%
log1p-def89.6%
neg-mul-189.6%
Simplified89.6%
Taylor expanded in z around 0 89.6%
associate-*r*89.6%
associate-*r*89.6%
distribute-lft-out89.6%
mul-1-neg89.6%
+-commutative89.6%
Simplified89.6%
if 1.8000000000000001e-26 < y Initial program 95.5%
Taylor expanded in t around inf 68.5%
mul-1-neg68.5%
distribute-lft-neg-out68.5%
*-commutative68.5%
Simplified68.5%
Final simplification79.5%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -1.6e+18) (not (<= y 9.2e-26))) (* x (pow z y)) (* x (exp (* a (- b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -1.6e+18) || !(y <= 9.2e-26)) {
tmp = x * pow(z, y);
} else {
tmp = x * exp((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.6d+18)) .or. (.not. (y <= 9.2d-26))) then
tmp = x * (z ** y)
else
tmp = x * exp((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.6e+18) || !(y <= 9.2e-26)) {
tmp = x * Math.pow(z, y);
} else {
tmp = x * Math.exp((a * -b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -1.6e+18) or not (y <= 9.2e-26): tmp = x * math.pow(z, y) else: tmp = x * math.exp((a * -b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -1.6e+18) || !(y <= 9.2e-26)) tmp = Float64(x * (z ^ y)); else tmp = Float64(x * exp(Float64(a * Float64(-b)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -1.6e+18) || ~((y <= 9.2e-26))) tmp = x * (z ^ y); else tmp = x * exp((a * -b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -1.6e+18], N[Not[LessEqual[y, 9.2e-26]], $MachinePrecision]], N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision], N[(x * N[Exp[N[(a * (-b)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.6 \cdot 10^{+18} \lor \neg \left(y \leq 9.2 \cdot 10^{-26}\right):\\
\;\;\;\;x \cdot {z}^{y}\\
\mathbf{else}:\\
\;\;\;\;x \cdot e^{a \cdot \left(-b\right)}\\
\end{array}
\end{array}
if y < -1.6e18 or 9.20000000000000035e-26 < y Initial program 96.1%
Taylor expanded in y around inf 89.9%
Taylor expanded in t around 0 63.7%
*-commutative63.7%
Simplified63.7%
if -1.6e18 < y < 9.20000000000000035e-26Initial program 95.4%
Taylor expanded in b around inf 83.6%
mul-1-neg83.6%
distribute-rgt-neg-out83.6%
Simplified83.6%
Final simplification73.7%
(FPCore (x y z t a b) :precision binary64 (if (or (<= b -2.5e+92) (not (<= b 5.8e+41))) (* x (exp (* a (- b)))) (* x (exp (* y (- t))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((b <= -2.5e+92) || !(b <= 5.8e+41)) {
tmp = x * exp((a * -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 ((b <= (-2.5d+92)) .or. (.not. (b <= 5.8d+41))) then
tmp = x * exp((a * -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 ((b <= -2.5e+92) || !(b <= 5.8e+41)) {
tmp = x * Math.exp((a * -b));
} else {
tmp = x * Math.exp((y * -t));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (b <= -2.5e+92) or not (b <= 5.8e+41): tmp = x * math.exp((a * -b)) else: tmp = x * math.exp((y * -t)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((b <= -2.5e+92) || !(b <= 5.8e+41)) tmp = Float64(x * exp(Float64(a * Float64(-b)))); else tmp = Float64(x * exp(Float64(y * Float64(-t)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((b <= -2.5e+92) || ~((b <= 5.8e+41))) tmp = x * exp((a * -b)); else tmp = x * exp((y * -t)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[b, -2.5e+92], N[Not[LessEqual[b, 5.8e+41]], $MachinePrecision]], N[(x * N[Exp[N[(a * (-b)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(x * N[Exp[N[(y * (-t)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -2.5 \cdot 10^{+92} \lor \neg \left(b \leq 5.8 \cdot 10^{+41}\right):\\
\;\;\;\;x \cdot e^{a \cdot \left(-b\right)}\\
\mathbf{else}:\\
\;\;\;\;x \cdot e^{y \cdot \left(-t\right)}\\
\end{array}
\end{array}
if b < -2.50000000000000011e92 or 5.79999999999999977e41 < b Initial program 96.2%
Taylor expanded in b around inf 82.4%
mul-1-neg82.4%
distribute-rgt-neg-out82.4%
Simplified82.4%
if -2.50000000000000011e92 < b < 5.79999999999999977e41Initial program 95.5%
Taylor expanded in t around inf 73.6%
mul-1-neg73.6%
distribute-lft-neg-out73.6%
*-commutative73.6%
Simplified73.6%
Final simplification77.2%
(FPCore (x y z t a b) :precision binary64 (if (<= t -1.35e+83) (* x (+ 1.0 (- (* 0.5 (* (* t t) (* y y))) (* y t)))) (if (<= t -0.007) (* a (* x (- z))) (* x (pow z y)))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.35e+83) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (t <= -0.007) {
tmp = a * (x * -z);
} else {
tmp = x * pow(z, y);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (t <= (-1.35d+83)) then
tmp = x * (1.0d0 + ((0.5d0 * ((t * t) * (y * y))) - (y * t)))
else if (t <= (-0.007d0)) then
tmp = a * (x * -z)
else
tmp = x * (z ** y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (t <= -1.35e+83) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (t <= -0.007) {
tmp = a * (x * -z);
} else {
tmp = x * Math.pow(z, y);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if t <= -1.35e+83: tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))) elif t <= -0.007: tmp = a * (x * -z) else: tmp = x * math.pow(z, y) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (t <= -1.35e+83) tmp = Float64(x * Float64(1.0 + Float64(Float64(0.5 * Float64(Float64(t * t) * Float64(y * y))) - Float64(y * t)))); elseif (t <= -0.007) tmp = Float64(a * Float64(x * Float64(-z))); else tmp = Float64(x * (z ^ y)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (t <= -1.35e+83) tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))); elseif (t <= -0.007) tmp = a * (x * -z); else tmp = x * (z ^ y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[t, -1.35e+83], N[(x * N[(1.0 + N[(N[(0.5 * N[(N[(t * t), $MachinePrecision] * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -0.007], N[(a * N[(x * (-z)), $MachinePrecision]), $MachinePrecision], N[(x * N[Power[z, y], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;t \leq -1.35 \cdot 10^{+83}:\\
\;\;\;\;x \cdot \left(1 + \left(0.5 \cdot \left(\left(t \cdot t\right) \cdot \left(y \cdot y\right)\right) - y \cdot t\right)\right)\\
\mathbf{elif}\;t \leq -0.007:\\
\;\;\;\;a \cdot \left(x \cdot \left(-z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot {z}^{y}\\
\end{array}
\end{array}
if t < -1.35000000000000003e83Initial program 96.1%
Taylor expanded in t around inf 83.1%
mul-1-neg83.1%
distribute-lft-neg-out83.1%
*-commutative83.1%
Simplified83.1%
Taylor expanded in y around 0 50.3%
associate-+r+50.3%
mul-1-neg50.3%
unsub-neg50.3%
*-commutative50.3%
associate-*r*50.3%
unpow250.3%
*-commutative50.3%
unpow250.3%
Simplified50.3%
Taylor expanded in x around 0 50.3%
associate--l+50.3%
unpow250.3%
unpow250.3%
Simplified50.3%
if -1.35000000000000003e83 < t < -0.00700000000000000015Initial program 100.0%
Taylor expanded in y around 0 63.0%
sub-neg63.0%
neg-mul-163.0%
log1p-def63.0%
neg-mul-163.0%
Simplified63.0%
Taylor expanded in z around 0 63.0%
associate-*r*63.0%
associate-*r*63.0%
distribute-lft-out63.0%
mul-1-neg63.0%
+-commutative63.0%
Simplified63.0%
Taylor expanded in a around 0 10.3%
mul-1-neg10.3%
unsub-neg10.3%
*-commutative10.3%
associate-*l*10.8%
*-commutative10.8%
Simplified10.8%
Taylor expanded in z around inf 54.8%
mul-1-neg54.8%
distribute-rgt-neg-in54.8%
Simplified54.8%
if -0.00700000000000000015 < t Initial program 95.4%
Taylor expanded in y around inf 73.6%
Taylor expanded in t around 0 64.0%
*-commutative64.0%
Simplified64.0%
Final simplification60.8%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))))
(if (<= y -4.3e-169)
(* x (+ 1.0 (- (* 0.5 (* (* t t) (* y y))) (* y t))))
(if (<= y 1.75e-19)
(* x (+ 1.0 (- (* t_1 (* b b)) (* a b))))
(* t_1 (* x (* b b)))))))
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 <= -4.3e-169) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (y <= 1.75e-19) {
tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b)));
} else {
tmp = t_1 * (x * (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 = 0.5d0 * (a * a)
if (y <= (-4.3d-169)) then
tmp = x * (1.0d0 + ((0.5d0 * ((t * t) * (y * y))) - (y * t)))
else if (y <= 1.75d-19) then
tmp = x * (1.0d0 + ((t_1 * (b * b)) - (a * b)))
else
tmp = t_1 * (x * (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 tmp;
if (y <= -4.3e-169) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (y <= 1.75e-19) {
tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b)));
} else {
tmp = t_1 * (x * (b * b));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) tmp = 0 if y <= -4.3e-169: tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))) elif y <= 1.75e-19: tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b))) else: tmp = t_1 * (x * (b * b)) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) tmp = 0.0 if (y <= -4.3e-169) tmp = Float64(x * Float64(1.0 + Float64(Float64(0.5 * Float64(Float64(t * t) * Float64(y * y))) - Float64(y * t)))); elseif (y <= 1.75e-19) tmp = Float64(x * Float64(1.0 + Float64(Float64(t_1 * Float64(b * b)) - Float64(a * b)))); else tmp = Float64(t_1 * Float64(x * Float64(b * b))); 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 <= -4.3e-169) tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))); elseif (y <= 1.75e-19) tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b))); else tmp = t_1 * (x * (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]}, If[LessEqual[y, -4.3e-169], N[(x * N[(1.0 + N[(N[(0.5 * N[(N[(t * t), $MachinePrecision] * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.75e-19], N[(x * N[(1.0 + N[(N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(x * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
\mathbf{if}\;y \leq -4.3 \cdot 10^{-169}:\\
\;\;\;\;x \cdot \left(1 + \left(0.5 \cdot \left(\left(t \cdot t\right) \cdot \left(y \cdot y\right)\right) - y \cdot t\right)\right)\\
\mathbf{elif}\;y \leq 1.75 \cdot 10^{-19}:\\
\;\;\;\;x \cdot \left(1 + \left(t_1 \cdot \left(b \cdot b\right) - a \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t_1 \cdot \left(x \cdot \left(b \cdot b\right)\right)\\
\end{array}
\end{array}
if y < -4.29999999999999984e-169Initial program 97.0%
Taylor expanded in t around inf 64.3%
mul-1-neg64.3%
distribute-lft-neg-out64.3%
*-commutative64.3%
Simplified64.3%
Taylor expanded in y around 0 41.0%
associate-+r+41.0%
mul-1-neg41.0%
unsub-neg41.0%
*-commutative41.0%
associate-*r*41.0%
unpow241.0%
*-commutative41.0%
unpow241.0%
Simplified41.0%
Taylor expanded in x around 0 43.2%
associate--l+43.2%
unpow243.2%
unpow243.2%
Simplified43.2%
if -4.29999999999999984e-169 < y < 1.75000000000000008e-19Initial program 94.7%
Taylor expanded in b around inf 88.1%
mul-1-neg88.1%
distribute-rgt-neg-out88.1%
Simplified88.1%
Taylor expanded in a around 0 52.2%
associate-+r+52.2%
mul-1-neg52.2%
unsub-neg52.2%
*-commutative52.2%
associate-*r*57.4%
unpow257.4%
unpow257.4%
unswap-sqr57.9%
Simplified57.9%
Taylor expanded in x around 0 59.4%
associate--l+59.4%
associate-*r*59.4%
unpow259.4%
unpow259.4%
Simplified59.4%
if 1.75000000000000008e-19 < y Initial program 95.4%
Taylor expanded in b around inf 42.7%
mul-1-neg42.7%
distribute-rgt-neg-out42.7%
Simplified42.7%
Taylor expanded in a around 0 21.8%
associate-+r+21.8%
mul-1-neg21.8%
unsub-neg21.8%
*-commutative21.8%
associate-*r*23.4%
unpow223.4%
unpow223.4%
unswap-sqr19.3%
Simplified19.3%
Taylor expanded in a around inf 40.0%
associate-*r*40.0%
unpow240.0%
*-commutative40.0%
unpow240.0%
Simplified40.0%
Final simplification48.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* 0.5 (* a a))))
(if (<= y -5.8e-105)
(+ (- x (* y (* x t))) (* 0.5 (* t (* t (* x (* y y))))))
(if (<= y 2.05e-20)
(* x (+ 1.0 (- (* t_1 (* b b)) (* a b))))
(* t_1 (* x (* b b)))))))
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 <= -5.8e-105) {
tmp = (x - (y * (x * t))) + (0.5 * (t * (t * (x * (y * y)))));
} else if (y <= 2.05e-20) {
tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b)));
} else {
tmp = t_1 * (x * (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 = 0.5d0 * (a * a)
if (y <= (-5.8d-105)) then
tmp = (x - (y * (x * t))) + (0.5d0 * (t * (t * (x * (y * y)))))
else if (y <= 2.05d-20) then
tmp = x * (1.0d0 + ((t_1 * (b * b)) - (a * b)))
else
tmp = t_1 * (x * (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 tmp;
if (y <= -5.8e-105) {
tmp = (x - (y * (x * t))) + (0.5 * (t * (t * (x * (y * y)))));
} else if (y <= 2.05e-20) {
tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b)));
} else {
tmp = t_1 * (x * (b * b));
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = 0.5 * (a * a) tmp = 0 if y <= -5.8e-105: tmp = (x - (y * (x * t))) + (0.5 * (t * (t * (x * (y * y))))) elif y <= 2.05e-20: tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b))) else: tmp = t_1 * (x * (b * b)) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(0.5 * Float64(a * a)) tmp = 0.0 if (y <= -5.8e-105) tmp = Float64(Float64(x - Float64(y * Float64(x * t))) + Float64(0.5 * Float64(t * Float64(t * Float64(x * Float64(y * y)))))); elseif (y <= 2.05e-20) tmp = Float64(x * Float64(1.0 + Float64(Float64(t_1 * Float64(b * b)) - Float64(a * b)))); else tmp = Float64(t_1 * Float64(x * Float64(b * b))); 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 <= -5.8e-105) tmp = (x - (y * (x * t))) + (0.5 * (t * (t * (x * (y * y))))); elseif (y <= 2.05e-20) tmp = x * (1.0 + ((t_1 * (b * b)) - (a * b))); else tmp = t_1 * (x * (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]}, If[LessEqual[y, -5.8e-105], N[(N[(x - N[(y * N[(x * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 * N[(t * N[(t * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.05e-20], N[(x * N[(1.0 + N[(N[(t$95$1 * N[(b * b), $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(x * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := 0.5 \cdot \left(a \cdot a\right)\\
\mathbf{if}\;y \leq -5.8 \cdot 10^{-105}:\\
\;\;\;\;\left(x - y \cdot \left(x \cdot t\right)\right) + 0.5 \cdot \left(t \cdot \left(t \cdot \left(x \cdot \left(y \cdot y\right)\right)\right)\right)\\
\mathbf{elif}\;y \leq 2.05 \cdot 10^{-20}:\\
\;\;\;\;x \cdot \left(1 + \left(t_1 \cdot \left(b \cdot b\right) - a \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t_1 \cdot \left(x \cdot \left(b \cdot b\right)\right)\\
\end{array}
\end{array}
if y < -5.80000000000000007e-105Initial program 97.5%
Taylor expanded in t around inf 62.8%
mul-1-neg62.8%
distribute-lft-neg-out62.8%
*-commutative62.8%
Simplified62.8%
Taylor expanded in y around 0 38.3%
associate-+r+38.3%
mul-1-neg38.3%
unsub-neg38.3%
*-commutative38.3%
associate-*r*38.3%
unpow238.3%
*-commutative38.3%
unpow238.3%
Simplified38.3%
Taylor expanded in t around 0 38.3%
associate-+r+38.3%
mul-1-neg38.3%
sub-neg38.3%
associate-*r*42.0%
unpow242.0%
unpow242.0%
associate-*l*47.2%
Simplified47.2%
if -5.80000000000000007e-105 < y < 2.05e-20Initial program 94.7%
Taylor expanded in b around inf 85.6%
mul-1-neg85.6%
distribute-rgt-neg-out85.6%
Simplified85.6%
Taylor expanded in a around 0 52.4%
associate-+r+52.4%
mul-1-neg52.4%
unsub-neg52.4%
*-commutative52.4%
associate-*r*57.7%
unpow257.7%
unpow257.7%
unswap-sqr57.4%
Simplified57.4%
Taylor expanded in x around 0 59.5%
associate--l+59.5%
associate-*r*59.5%
unpow259.5%
unpow259.5%
Simplified59.5%
if 2.05e-20 < y Initial program 95.4%
Taylor expanded in b around inf 42.7%
mul-1-neg42.7%
distribute-rgt-neg-out42.7%
Simplified42.7%
Taylor expanded in a around 0 21.8%
associate-+r+21.8%
mul-1-neg21.8%
unsub-neg21.8%
*-commutative21.8%
associate-*r*23.4%
unpow223.4%
unpow223.4%
unswap-sqr19.3%
Simplified19.3%
Taylor expanded in a around inf 40.0%
associate-*r*40.0%
unpow240.0%
*-commutative40.0%
unpow240.0%
Simplified40.0%
Final simplification50.7%
(FPCore (x y z t a b)
:precision binary64
(if (<= y -4.1e-162)
(* x (+ 1.0 (- (* 0.5 (* (* t t) (* y y))) (* y t))))
(if (<= y 2.65e-20)
(- x (* x (* a (+ z b))))
(* (* 0.5 (* a a)) (* x (* b b))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -4.1e-162) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (y <= 2.65e-20) {
tmp = x - (x * (a * (z + b)));
} else {
tmp = (0.5 * (a * a)) * (x * (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) :: tmp
if (y <= (-4.1d-162)) then
tmp = x * (1.0d0 + ((0.5d0 * ((t * t) * (y * y))) - (y * t)))
else if (y <= 2.65d-20) then
tmp = x - (x * (a * (z + b)))
else
tmp = (0.5d0 * (a * a)) * (x * (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 tmp;
if (y <= -4.1e-162) {
tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t)));
} else if (y <= 2.65e-20) {
tmp = x - (x * (a * (z + b)));
} else {
tmp = (0.5 * (a * a)) * (x * (b * b));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -4.1e-162: tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))) elif y <= 2.65e-20: tmp = x - (x * (a * (z + b))) else: tmp = (0.5 * (a * a)) * (x * (b * b)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -4.1e-162) tmp = Float64(x * Float64(1.0 + Float64(Float64(0.5 * Float64(Float64(t * t) * Float64(y * y))) - Float64(y * t)))); elseif (y <= 2.65e-20) tmp = Float64(x - Float64(x * Float64(a * Float64(z + b)))); else tmp = Float64(Float64(0.5 * Float64(a * a)) * Float64(x * Float64(b * b))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -4.1e-162) tmp = x * (1.0 + ((0.5 * ((t * t) * (y * y))) - (y * t))); elseif (y <= 2.65e-20) tmp = x - (x * (a * (z + b))); else tmp = (0.5 * (a * a)) * (x * (b * b)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -4.1e-162], N[(x * N[(1.0 + N[(N[(0.5 * N[(N[(t * t), $MachinePrecision] * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.65e-20], N[(x - N[(x * N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision] * N[(x * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.1 \cdot 10^{-162}:\\
\;\;\;\;x \cdot \left(1 + \left(0.5 \cdot \left(\left(t \cdot t\right) \cdot \left(y \cdot y\right)\right) - y \cdot t\right)\right)\\
\mathbf{elif}\;y \leq 2.65 \cdot 10^{-20}:\\
\;\;\;\;x - x \cdot \left(a \cdot \left(z + b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.5 \cdot \left(a \cdot a\right)\right) \cdot \left(x \cdot \left(b \cdot b\right)\right)\\
\end{array}
\end{array}
if y < -4.10000000000000019e-162Initial program 96.9%
Taylor expanded in t around inf 64.9%
mul-1-neg64.9%
distribute-lft-neg-out64.9%
*-commutative64.9%
Simplified64.9%
Taylor expanded in y around 0 41.4%
associate-+r+41.4%
mul-1-neg41.4%
unsub-neg41.4%
*-commutative41.4%
associate-*r*41.4%
unpow241.4%
*-commutative41.4%
unpow241.4%
Simplified41.4%
Taylor expanded in x around 0 43.6%
associate--l+43.6%
unpow243.6%
unpow243.6%
Simplified43.6%
if -4.10000000000000019e-162 < y < 2.6500000000000001e-20Initial program 94.8%
Taylor expanded in y around 0 89.3%
sub-neg89.3%
neg-mul-189.3%
log1p-def94.5%
neg-mul-194.5%
Simplified94.5%
Taylor expanded in z around 0 94.5%
associate-*r*94.5%
associate-*r*94.5%
distribute-lft-out94.5%
mul-1-neg94.5%
+-commutative94.5%
Simplified94.5%
Taylor expanded in a around 0 47.6%
mul-1-neg47.6%
unsub-neg47.6%
*-commutative47.6%
associate-*l*53.3%
*-commutative53.3%
Simplified53.3%
if 2.6500000000000001e-20 < y Initial program 95.4%
Taylor expanded in b around inf 42.7%
mul-1-neg42.7%
distribute-rgt-neg-out42.7%
Simplified42.7%
Taylor expanded in a around 0 21.8%
associate-+r+21.8%
mul-1-neg21.8%
unsub-neg21.8%
*-commutative21.8%
associate-*r*23.4%
unpow223.4%
unpow223.4%
unswap-sqr19.3%
Simplified19.3%
Taylor expanded in a around inf 40.0%
associate-*r*40.0%
unpow240.0%
*-commutative40.0%
unpow240.0%
Simplified40.0%
Final simplification46.3%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (* 0.5 (* a a)) (* x (* b b)))))
(if (<= a -1.06e-59)
t_1
(if (<= a 3.5e+119)
(* x (- 1.0 (* y t)))
(if (<= a 4.2e+238) t_1 (* t (* x (- y))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (0.5 * (a * a)) * (x * (b * b));
double tmp;
if (a <= -1.06e-59) {
tmp = t_1;
} else if (a <= 3.5e+119) {
tmp = x * (1.0 - (y * t));
} else if (a <= 4.2e+238) {
tmp = t_1;
} else {
tmp = t * (x * -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)) * (x * (b * b))
if (a <= (-1.06d-59)) then
tmp = t_1
else if (a <= 3.5d+119) then
tmp = x * (1.0d0 - (y * t))
else if (a <= 4.2d+238) then
tmp = t_1
else
tmp = t * (x * -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)) * (x * (b * b));
double tmp;
if (a <= -1.06e-59) {
tmp = t_1;
} else if (a <= 3.5e+119) {
tmp = x * (1.0 - (y * t));
} else if (a <= 4.2e+238) {
tmp = t_1;
} else {
tmp = t * (x * -y);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = (0.5 * (a * a)) * (x * (b * b)) tmp = 0 if a <= -1.06e-59: tmp = t_1 elif a <= 3.5e+119: tmp = x * (1.0 - (y * t)) elif a <= 4.2e+238: tmp = t_1 else: tmp = t * (x * -y) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(Float64(0.5 * Float64(a * a)) * Float64(x * Float64(b * b))) tmp = 0.0 if (a <= -1.06e-59) tmp = t_1; elseif (a <= 3.5e+119) tmp = Float64(x * Float64(1.0 - Float64(y * t))); elseif (a <= 4.2e+238) tmp = t_1; else tmp = Float64(t * Float64(x * Float64(-y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = (0.5 * (a * a)) * (x * (b * b)); tmp = 0.0; if (a <= -1.06e-59) tmp = t_1; elseif (a <= 3.5e+119) tmp = x * (1.0 - (y * t)); elseif (a <= 4.2e+238) tmp = t_1; else tmp = t * (x * -y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(0.5 * N[(a * a), $MachinePrecision]), $MachinePrecision] * N[(x * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.06e-59], t$95$1, If[LessEqual[a, 3.5e+119], N[(x * N[(1.0 - N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 4.2e+238], t$95$1, N[(t * N[(x * (-y)), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(0.5 \cdot \left(a \cdot a\right)\right) \cdot \left(x \cdot \left(b \cdot b\right)\right)\\
\mathbf{if}\;a \leq -1.06 \cdot 10^{-59}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;a \leq 3.5 \cdot 10^{+119}:\\
\;\;\;\;x \cdot \left(1 - y \cdot t\right)\\
\mathbf{elif}\;a \leq 4.2 \cdot 10^{+238}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(x \cdot \left(-y\right)\right)\\
\end{array}
\end{array}
if a < -1.06e-59 or 3.5000000000000001e119 < a < 4.20000000000000015e238Initial program 93.3%
Taylor expanded in b around inf 69.8%
mul-1-neg69.8%
distribute-rgt-neg-out69.8%
Simplified69.8%
Taylor expanded in a around 0 37.1%
associate-+r+37.1%
mul-1-neg37.1%
unsub-neg37.1%
*-commutative37.1%
associate-*r*41.9%
unpow241.9%
unpow241.9%
unswap-sqr37.5%
Simplified37.5%
Taylor expanded in a around inf 40.1%
associate-*r*40.1%
unpow240.1%
*-commutative40.1%
unpow240.1%
Simplified40.1%
if -1.06e-59 < a < 3.5000000000000001e119Initial program 99.3%
Taylor expanded in t around inf 71.6%
mul-1-neg71.6%
distribute-lft-neg-out71.6%
*-commutative71.6%
Simplified71.6%
Taylor expanded in y around 0 45.7%
mul-1-neg45.7%
unsub-neg45.7%
*-commutative45.7%
Simplified45.7%
if 4.20000000000000015e238 < a Initial program 80.5%
Taylor expanded in t around inf 48.6%
mul-1-neg48.6%
distribute-lft-neg-out48.6%
*-commutative48.6%
Simplified48.6%
Taylor expanded in y around 0 16.4%
mul-1-neg16.4%
unsub-neg16.4%
*-commutative16.4%
Simplified16.4%
Taylor expanded in y around inf 54.7%
Final simplification44.0%
(FPCore (x y z t a b)
:precision binary64
(if (<= a -1.32e+244)
(* x (* a (- b)))
(if (<= a -1.65e+94)
(* x (* y (- t)))
(if (<= a -1.05e+53)
(* a (* x (- z)))
(if (<= a 6.2e+97) (* x (- 1.0 (* y t))) (* t (* x (- y))))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -1.32e+244) {
tmp = x * (a * -b);
} else if (a <= -1.65e+94) {
tmp = x * (y * -t);
} else if (a <= -1.05e+53) {
tmp = a * (x * -z);
} else if (a <= 6.2e+97) {
tmp = x * (1.0 - (y * t));
} else {
tmp = t * (x * -y);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-1.32d+244)) then
tmp = x * (a * -b)
else if (a <= (-1.65d+94)) then
tmp = x * (y * -t)
else if (a <= (-1.05d+53)) then
tmp = a * (x * -z)
else if (a <= 6.2d+97) then
tmp = x * (1.0d0 - (y * t))
else
tmp = t * (x * -y)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (a <= -1.32e+244) {
tmp = x * (a * -b);
} else if (a <= -1.65e+94) {
tmp = x * (y * -t);
} else if (a <= -1.05e+53) {
tmp = a * (x * -z);
} else if (a <= 6.2e+97) {
tmp = x * (1.0 - (y * t));
} else {
tmp = t * (x * -y);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if a <= -1.32e+244: tmp = x * (a * -b) elif a <= -1.65e+94: tmp = x * (y * -t) elif a <= -1.05e+53: tmp = a * (x * -z) elif a <= 6.2e+97: tmp = x * (1.0 - (y * t)) else: tmp = t * (x * -y) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (a <= -1.32e+244) tmp = Float64(x * Float64(a * Float64(-b))); elseif (a <= -1.65e+94) tmp = Float64(x * Float64(y * Float64(-t))); elseif (a <= -1.05e+53) tmp = Float64(a * Float64(x * Float64(-z))); elseif (a <= 6.2e+97) tmp = Float64(x * Float64(1.0 - Float64(y * t))); else tmp = Float64(t * Float64(x * Float64(-y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (a <= -1.32e+244) tmp = x * (a * -b); elseif (a <= -1.65e+94) tmp = x * (y * -t); elseif (a <= -1.05e+53) tmp = a * (x * -z); elseif (a <= 6.2e+97) tmp = x * (1.0 - (y * t)); else tmp = t * (x * -y); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[a, -1.32e+244], N[(x * N[(a * (-b)), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, -1.65e+94], N[(x * N[(y * (-t)), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, -1.05e+53], N[(a * N[(x * (-z)), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 6.2e+97], N[(x * N[(1.0 - N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t * N[(x * (-y)), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.32 \cdot 10^{+244}:\\
\;\;\;\;x \cdot \left(a \cdot \left(-b\right)\right)\\
\mathbf{elif}\;a \leq -1.65 \cdot 10^{+94}:\\
\;\;\;\;x \cdot \left(y \cdot \left(-t\right)\right)\\
\mathbf{elif}\;a \leq -1.05 \cdot 10^{+53}:\\
\;\;\;\;a \cdot \left(x \cdot \left(-z\right)\right)\\
\mathbf{elif}\;a \leq 6.2 \cdot 10^{+97}:\\
\;\;\;\;x \cdot \left(1 - y \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(x \cdot \left(-y\right)\right)\\
\end{array}
\end{array}
if a < -1.31999999999999998e244Initial program 92.9%
Taylor expanded in y around 0 93.0%
sub-neg93.0%
neg-mul-193.0%
log1p-def93.0%
neg-mul-193.0%
Simplified93.0%
Taylor expanded in z around 0 93.0%
associate-*r*93.0%
associate-*r*93.0%
distribute-lft-out93.0%
mul-1-neg93.0%
+-commutative93.0%
Simplified93.0%
Taylor expanded in a around 0 44.2%
mul-1-neg44.2%
unsub-neg44.2%
*-commutative44.2%
associate-*l*50.8%
*-commutative50.8%
Simplified50.8%
Taylor expanded in b around inf 37.1%
mul-1-neg37.1%
associate-*r*43.6%
distribute-rgt-neg-in43.6%
Simplified43.6%
if -1.31999999999999998e244 < a < -1.65e94Initial program 91.0%
Taylor expanded in t around inf 52.8%
mul-1-neg52.8%
distribute-lft-neg-out52.8%
*-commutative52.8%
Simplified52.8%
Taylor expanded in y around 0 17.4%
mul-1-neg17.4%
unsub-neg17.4%
*-commutative17.4%
Simplified17.4%
Taylor expanded in y around inf 28.7%
mul-1-neg28.7%
distribute-rgt-neg-in28.7%
Simplified28.7%
if -1.65e94 < a < -1.0500000000000001e53Initial program 100.0%
Taylor expanded in y around 0 64.7%
sub-neg64.7%
neg-mul-164.7%
log1p-def64.7%
neg-mul-164.7%
Simplified64.7%
Taylor expanded in z around 0 64.7%
associate-*r*64.7%
associate-*r*64.7%
distribute-lft-out64.7%
mul-1-neg64.7%
+-commutative64.7%
Simplified64.7%
Taylor expanded in a around 0 3.7%
mul-1-neg3.7%
unsub-neg3.7%
*-commutative3.7%
associate-*l*3.7%
*-commutative3.7%
Simplified3.7%
Taylor expanded in z around inf 38.5%
mul-1-neg38.5%
distribute-rgt-neg-in38.5%
Simplified38.5%
if -1.0500000000000001e53 < a < 6.19999999999999962e97Initial program 99.3%
Taylor expanded in t around inf 70.8%
mul-1-neg70.8%
distribute-lft-neg-out70.8%
*-commutative70.8%
Simplified70.8%
Taylor expanded in y around 0 43.3%
mul-1-neg43.3%
unsub-neg43.3%
*-commutative43.3%
Simplified43.3%
if 6.19999999999999962e97 < a Initial program 85.4%
Taylor expanded in t around inf 47.2%
mul-1-neg47.2%
distribute-lft-neg-out47.2%
*-commutative47.2%
Simplified47.2%
Taylor expanded in y around 0 17.9%
mul-1-neg17.9%
unsub-neg17.9%
*-commutative17.9%
Simplified17.9%
Taylor expanded in y around inf 36.4%
Final simplification40.2%
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* t (* x (- y)))))
(if (<= y -1.9e-8)
t_1
(if (<= y 5.45e-219)
x
(if (<= y 5e-183) t_1 (if (<= y 1.16e-35) x (* y (* x (- t)))))))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = t * (x * -y);
double tmp;
if (y <= -1.9e-8) {
tmp = t_1;
} else if (y <= 5.45e-219) {
tmp = x;
} else if (y <= 5e-183) {
tmp = t_1;
} else if (y <= 1.16e-35) {
tmp = x;
} else {
tmp = y * (x * -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) :: t_1
real(8) :: tmp
t_1 = t * (x * -y)
if (y <= (-1.9d-8)) then
tmp = t_1
else if (y <= 5.45d-219) then
tmp = x
else if (y <= 5d-183) then
tmp = t_1
else if (y <= 1.16d-35) then
tmp = x
else
tmp = y * (x * -t)
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 = t * (x * -y);
double tmp;
if (y <= -1.9e-8) {
tmp = t_1;
} else if (y <= 5.45e-219) {
tmp = x;
} else if (y <= 5e-183) {
tmp = t_1;
} else if (y <= 1.16e-35) {
tmp = x;
} else {
tmp = y * (x * -t);
}
return tmp;
}
def code(x, y, z, t, a, b): t_1 = t * (x * -y) tmp = 0 if y <= -1.9e-8: tmp = t_1 elif y <= 5.45e-219: tmp = x elif y <= 5e-183: tmp = t_1 elif y <= 1.16e-35: tmp = x else: tmp = y * (x * -t) return tmp
function code(x, y, z, t, a, b) t_1 = Float64(t * Float64(x * Float64(-y))) tmp = 0.0 if (y <= -1.9e-8) tmp = t_1; elseif (y <= 5.45e-219) tmp = x; elseif (y <= 5e-183) tmp = t_1; elseif (y <= 1.16e-35) tmp = x; else tmp = Float64(y * Float64(x * Float64(-t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) t_1 = t * (x * -y); tmp = 0.0; if (y <= -1.9e-8) tmp = t_1; elseif (y <= 5.45e-219) tmp = x; elseif (y <= 5e-183) tmp = t_1; elseif (y <= 1.16e-35) tmp = x; else tmp = y * (x * -t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(t * N[(x * (-y)), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.9e-8], t$95$1, If[LessEqual[y, 5.45e-219], x, If[LessEqual[y, 5e-183], t$95$1, If[LessEqual[y, 1.16e-35], x, N[(y * N[(x * (-t)), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t \cdot \left(x \cdot \left(-y\right)\right)\\
\mathbf{if}\;y \leq -1.9 \cdot 10^{-8}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 5.45 \cdot 10^{-219}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 5 \cdot 10^{-183}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{-35}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(x \cdot \left(-t\right)\right)\\
\end{array}
\end{array}
if y < -1.90000000000000014e-8 or 5.4499999999999997e-219 < y < 5.0000000000000002e-183Initial program 93.6%
Taylor expanded in t around inf 54.8%
mul-1-neg54.8%
distribute-lft-neg-out54.8%
*-commutative54.8%
Simplified54.8%
Taylor expanded in y around 0 19.5%
mul-1-neg19.5%
unsub-neg19.5%
*-commutative19.5%
Simplified19.5%
Taylor expanded in y around inf 27.7%
if -1.90000000000000014e-8 < y < 5.4499999999999997e-219 or 5.0000000000000002e-183 < y < 1.16000000000000005e-35Initial program 97.4%
Taylor expanded in y around inf 64.9%
Taylor expanded in y around 0 43.0%
if 1.16000000000000005e-35 < y Initial program 95.5%
Taylor expanded in t around inf 67.6%
mul-1-neg67.6%
distribute-lft-neg-out67.6%
*-commutative67.6%
Simplified67.6%
Taylor expanded in y around 0 26.4%
mul-1-neg26.4%
unsub-neg26.4%
*-commutative26.4%
Simplified26.4%
Taylor expanded in y around inf 26.7%
mul-1-neg26.7%
associate-*r*36.7%
distribute-lft-neg-in36.7%
*-commutative36.7%
Simplified36.7%
Final simplification36.8%
(FPCore (x y z t a b) :precision binary64 (if (<= y -0.00023) (* t (* x (- y))) (if (<= y 5.5e-35) (- x (* x (* a (+ z b)))) (* y (* x (- t))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -0.00023) {
tmp = t * (x * -y);
} else if (y <= 5.5e-35) {
tmp = x - (x * (a * (z + b)));
} else {
tmp = y * (x * -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 <= (-0.00023d0)) then
tmp = t * (x * -y)
else if (y <= 5.5d-35) then
tmp = x - (x * (a * (z + b)))
else
tmp = y * (x * -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 <= -0.00023) {
tmp = t * (x * -y);
} else if (y <= 5.5e-35) {
tmp = x - (x * (a * (z + b)));
} else {
tmp = y * (x * -t);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -0.00023: tmp = t * (x * -y) elif y <= 5.5e-35: tmp = x - (x * (a * (z + b))) else: tmp = y * (x * -t) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -0.00023) tmp = Float64(t * Float64(x * Float64(-y))); elseif (y <= 5.5e-35) tmp = Float64(x - Float64(x * Float64(a * Float64(z + b)))); else tmp = Float64(y * Float64(x * Float64(-t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -0.00023) tmp = t * (x * -y); elseif (y <= 5.5e-35) tmp = x - (x * (a * (z + b))); else tmp = y * (x * -t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -0.00023], N[(t * N[(x * (-y)), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.5e-35], N[(x - N[(x * N[(a * N[(z + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(x * (-t)), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -0.00023:\\
\;\;\;\;t \cdot \left(x \cdot \left(-y\right)\right)\\
\mathbf{elif}\;y \leq 5.5 \cdot 10^{-35}:\\
\;\;\;\;x - x \cdot \left(a \cdot \left(z + b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(x \cdot \left(-t\right)\right)\\
\end{array}
\end{array}
if y < -2.3000000000000001e-4Initial program 96.9%
Taylor expanded in t around inf 59.8%
mul-1-neg59.8%
distribute-lft-neg-out59.8%
*-commutative59.8%
Simplified59.8%
Taylor expanded in y around 0 21.0%
mul-1-neg21.0%
unsub-neg21.0%
*-commutative21.0%
Simplified21.0%
Taylor expanded in y around inf 23.4%
if -2.3000000000000001e-4 < y < 5.4999999999999997e-35Initial program 95.3%
Taylor expanded in y around 0 84.6%
sub-neg84.6%
neg-mul-184.6%
log1p-def90.1%
neg-mul-190.1%
Simplified90.1%
Taylor expanded in z around 0 90.1%
associate-*r*90.1%
associate-*r*90.1%
distribute-lft-out90.1%
mul-1-neg90.1%
+-commutative90.1%
Simplified90.1%
Taylor expanded in a around 0 46.3%
mul-1-neg46.3%
unsub-neg46.3%
*-commutative46.3%
associate-*l*52.1%
*-commutative52.1%
Simplified52.1%
if 5.4999999999999997e-35 < y Initial program 95.5%
Taylor expanded in t around inf 67.6%
mul-1-neg67.6%
distribute-lft-neg-out67.6%
*-commutative67.6%
Simplified67.6%
Taylor expanded in y around 0 26.4%
mul-1-neg26.4%
unsub-neg26.4%
*-commutative26.4%
Simplified26.4%
Taylor expanded in y around inf 26.7%
mul-1-neg26.7%
associate-*r*36.7%
distribute-lft-neg-in36.7%
*-commutative36.7%
Simplified36.7%
Final simplification40.8%
(FPCore (x y z t a b) :precision binary64 (if (<= y -1.55e-5) (* t (* x (- y))) (if (<= y 5.5e-35) (- x (* a (* x b))) (* y (* x (- t))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -1.55e-5) {
tmp = t * (x * -y);
} else if (y <= 5.5e-35) {
tmp = x - (a * (x * b));
} else {
tmp = y * (x * -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 <= (-1.55d-5)) then
tmp = t * (x * -y)
else if (y <= 5.5d-35) then
tmp = x - (a * (x * b))
else
tmp = y * (x * -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 <= -1.55e-5) {
tmp = t * (x * -y);
} else if (y <= 5.5e-35) {
tmp = x - (a * (x * b));
} else {
tmp = y * (x * -t);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -1.55e-5: tmp = t * (x * -y) elif y <= 5.5e-35: tmp = x - (a * (x * b)) else: tmp = y * (x * -t) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -1.55e-5) tmp = Float64(t * Float64(x * Float64(-y))); elseif (y <= 5.5e-35) tmp = Float64(x - Float64(a * Float64(x * b))); else tmp = Float64(y * Float64(x * Float64(-t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -1.55e-5) tmp = t * (x * -y); elseif (y <= 5.5e-35) tmp = x - (a * (x * b)); else tmp = y * (x * -t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -1.55e-5], N[(t * N[(x * (-y)), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.5e-35], N[(x - N[(a * N[(x * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(x * (-t)), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.55 \cdot 10^{-5}:\\
\;\;\;\;t \cdot \left(x \cdot \left(-y\right)\right)\\
\mathbf{elif}\;y \leq 5.5 \cdot 10^{-35}:\\
\;\;\;\;x - a \cdot \left(x \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(x \cdot \left(-t\right)\right)\\
\end{array}
\end{array}
if y < -1.55000000000000007e-5Initial program 96.9%
Taylor expanded in t around inf 59.8%
mul-1-neg59.8%
distribute-lft-neg-out59.8%
*-commutative59.8%
Simplified59.8%
Taylor expanded in y around 0 21.0%
mul-1-neg21.0%
unsub-neg21.0%
*-commutative21.0%
Simplified21.0%
Taylor expanded in y around inf 23.4%
if -1.55000000000000007e-5 < y < 5.4999999999999997e-35Initial program 95.3%
Taylor expanded in b around inf 83.8%
mul-1-neg83.8%
distribute-rgt-neg-out83.8%
Simplified83.8%
Taylor expanded in a around 0 45.4%
mul-1-neg45.4%
unsub-neg45.4%
*-commutative45.4%
Simplified45.4%
if 5.4999999999999997e-35 < y Initial program 95.5%
Taylor expanded in t around inf 67.6%
mul-1-neg67.6%
distribute-lft-neg-out67.6%
*-commutative67.6%
Simplified67.6%
Taylor expanded in y around 0 26.4%
mul-1-neg26.4%
unsub-neg26.4%
*-commutative26.4%
Simplified26.4%
Taylor expanded in y around inf 26.7%
mul-1-neg26.7%
associate-*r*36.7%
distribute-lft-neg-in36.7%
*-commutative36.7%
Simplified36.7%
Final simplification37.6%
(FPCore (x y z t a b) :precision binary64 (if (<= y -3.6e-253) (- x (* t (* x y))) (if (<= y 1.06e-35) (- x (* a (* x b))) (* y (* x (- t))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -3.6e-253) {
tmp = x - (t * (x * y));
} else if (y <= 1.06e-35) {
tmp = x - (a * (x * b));
} else {
tmp = y * (x * -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 <= (-3.6d-253)) then
tmp = x - (t * (x * y))
else if (y <= 1.06d-35) then
tmp = x - (a * (x * b))
else
tmp = y * (x * -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 <= -3.6e-253) {
tmp = x - (t * (x * y));
} else if (y <= 1.06e-35) {
tmp = x - (a * (x * b));
} else {
tmp = y * (x * -t);
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -3.6e-253: tmp = x - (t * (x * y)) elif y <= 1.06e-35: tmp = x - (a * (x * b)) else: tmp = y * (x * -t) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -3.6e-253) tmp = Float64(x - Float64(t * Float64(x * y))); elseif (y <= 1.06e-35) tmp = Float64(x - Float64(a * Float64(x * b))); else tmp = Float64(y * Float64(x * Float64(-t))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -3.6e-253) tmp = x - (t * (x * y)); elseif (y <= 1.06e-35) tmp = x - (a * (x * b)); else tmp = y * (x * -t); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -3.6e-253], N[(x - N[(t * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.06e-35], N[(x - N[(a * N[(x * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(x * (-t)), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.6 \cdot 10^{-253}:\\
\;\;\;\;x - t \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;y \leq 1.06 \cdot 10^{-35}:\\
\;\;\;\;x - a \cdot \left(x \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(x \cdot \left(-t\right)\right)\\
\end{array}
\end{array}
if y < -3.6e-253Initial program 95.8%
Taylor expanded in t around inf 63.8%
mul-1-neg63.8%
distribute-lft-neg-out63.8%
*-commutative63.8%
Simplified63.8%
Taylor expanded in y around 0 31.1%
mul-1-neg31.1%
unsub-neg31.1%
*-commutative31.1%
Simplified31.1%
if -3.6e-253 < y < 1.06e-35Initial program 95.9%
Taylor expanded in b around inf 91.5%
mul-1-neg91.5%
distribute-rgt-neg-out91.5%
Simplified91.5%
Taylor expanded in a around 0 49.8%
mul-1-neg49.8%
unsub-neg49.8%
*-commutative49.8%
Simplified49.8%
if 1.06e-35 < y Initial program 95.5%
Taylor expanded in t around inf 67.6%
mul-1-neg67.6%
distribute-lft-neg-out67.6%
*-commutative67.6%
Simplified67.6%
Taylor expanded in y around 0 26.4%
mul-1-neg26.4%
unsub-neg26.4%
*-commutative26.4%
Simplified26.4%
Taylor expanded in y around inf 26.7%
mul-1-neg26.7%
associate-*r*36.7%
distribute-lft-neg-in36.7%
*-commutative36.7%
Simplified36.7%
Final simplification37.7%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -7e+90) (not (<= y 1.9e-74))) (- (* b (* x a))) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -7e+90) || !(y <= 1.9e-74)) {
tmp = -(b * (x * a));
} else {
tmp = x;
}
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 <= (-7d+90)) .or. (.not. (y <= 1.9d-74))) then
tmp = -(b * (x * a))
else
tmp = x
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 <= -7e+90) || !(y <= 1.9e-74)) {
tmp = -(b * (x * a));
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -7e+90) or not (y <= 1.9e-74): tmp = -(b * (x * a)) else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -7e+90) || !(y <= 1.9e-74)) tmp = Float64(-Float64(b * Float64(x * a))); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -7e+90) || ~((y <= 1.9e-74))) tmp = -(b * (x * a)); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -7e+90], N[Not[LessEqual[y, 1.9e-74]], $MachinePrecision]], (-N[(b * N[(x * a), $MachinePrecision]), $MachinePrecision]), x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -7 \cdot 10^{+90} \lor \neg \left(y \leq 1.9 \cdot 10^{-74}\right):\\
\;\;\;\;-b \cdot \left(x \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -6.9999999999999997e90 or 1.8999999999999998e-74 < y Initial program 96.2%
Taylor expanded in y around 0 49.8%
sub-neg49.8%
neg-mul-149.8%
log1p-def50.6%
neg-mul-150.6%
Simplified50.6%
Taylor expanded in z around 0 50.6%
associate-*r*50.6%
associate-*r*50.6%
distribute-lft-out50.6%
mul-1-neg50.6%
+-commutative50.6%
Simplified50.6%
Taylor expanded in a around 0 18.7%
mul-1-neg18.7%
unsub-neg18.7%
*-commutative18.7%
associate-*l*18.7%
*-commutative18.7%
Simplified18.7%
Taylor expanded in b around inf 22.7%
mul-1-neg22.7%
*-commutative22.7%
associate-*r*21.2%
*-commutative21.2%
Simplified21.2%
if -6.9999999999999997e90 < y < 1.8999999999999998e-74Initial program 95.3%
Taylor expanded in y around inf 65.9%
Taylor expanded in y around 0 36.9%
Final simplification28.9%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -4.2e-9) (not (<= y 4.5e-35))) (* x (* y (- t))) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -4.2e-9) || !(y <= 4.5e-35)) {
tmp = x * (y * -t);
} else {
tmp = x;
}
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.2d-9)) .or. (.not. (y <= 4.5d-35))) then
tmp = x * (y * -t)
else
tmp = x
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.2e-9) || !(y <= 4.5e-35)) {
tmp = x * (y * -t);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -4.2e-9) or not (y <= 4.5e-35): tmp = x * (y * -t) else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -4.2e-9) || !(y <= 4.5e-35)) tmp = Float64(x * Float64(y * Float64(-t))); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -4.2e-9) || ~((y <= 4.5e-35))) tmp = x * (y * -t); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -4.2e-9], N[Not[LessEqual[y, 4.5e-35]], $MachinePrecision]], N[(x * N[(y * (-t)), $MachinePrecision]), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.2 \cdot 10^{-9} \lor \neg \left(y \leq 4.5 \cdot 10^{-35}\right):\\
\;\;\;\;x \cdot \left(y \cdot \left(-t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -4.20000000000000039e-9 or 4.5000000000000001e-35 < y Initial program 96.2%
Taylor expanded in t around inf 64.0%
mul-1-neg64.0%
distribute-lft-neg-out64.0%
*-commutative64.0%
Simplified64.0%
Taylor expanded in y around 0 23.5%
mul-1-neg23.5%
unsub-neg23.5%
*-commutative23.5%
Simplified23.5%
Taylor expanded in y around inf 26.3%
mul-1-neg26.3%
distribute-rgt-neg-in26.3%
Simplified26.3%
if -4.20000000000000039e-9 < y < 4.5000000000000001e-35Initial program 95.2%
Taylor expanded in y around inf 61.0%
Taylor expanded in y around 0 40.4%
Final simplification33.1%
(FPCore (x y z t a b) :precision binary64 (if (or (<= y -8.2e-8) (not (<= y 5.5e-35))) (* y (* x (- t))) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((y <= -8.2e-8) || !(y <= 5.5e-35)) {
tmp = y * (x * -t);
} else {
tmp = x;
}
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 <= (-8.2d-8)) .or. (.not. (y <= 5.5d-35))) then
tmp = y * (x * -t)
else
tmp = x
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 <= -8.2e-8) || !(y <= 5.5e-35)) {
tmp = y * (x * -t);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (y <= -8.2e-8) or not (y <= 5.5e-35): tmp = y * (x * -t) else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((y <= -8.2e-8) || !(y <= 5.5e-35)) tmp = Float64(y * Float64(x * Float64(-t))); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((y <= -8.2e-8) || ~((y <= 5.5e-35))) tmp = y * (x * -t); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[y, -8.2e-8], N[Not[LessEqual[y, 5.5e-35]], $MachinePrecision]], N[(y * N[(x * (-t)), $MachinePrecision]), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -8.2 \cdot 10^{-8} \lor \neg \left(y \leq 5.5 \cdot 10^{-35}\right):\\
\;\;\;\;y \cdot \left(x \cdot \left(-t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -8.20000000000000063e-8 or 5.4999999999999997e-35 < y Initial program 96.2%
Taylor expanded in t around inf 64.0%
mul-1-neg64.0%
distribute-lft-neg-out64.0%
*-commutative64.0%
Simplified64.0%
Taylor expanded in y around 0 23.5%
mul-1-neg23.5%
unsub-neg23.5%
*-commutative23.5%
Simplified23.5%
Taylor expanded in y around inf 24.9%
mul-1-neg24.9%
associate-*r*29.2%
distribute-lft-neg-in29.2%
*-commutative29.2%
Simplified29.2%
if -8.20000000000000063e-8 < y < 5.4999999999999997e-35Initial program 95.2%
Taylor expanded in y around inf 61.0%
Taylor expanded in y around 0 40.4%
Final simplification34.6%
(FPCore (x y z t a b) :precision binary64 (if (<= y -2.85e-40) (* a (* x (- z))) (if (<= y 2.5e-74) x (- (* b (* x a))))))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -2.85e-40) {
tmp = a * (x * -z);
} else if (y <= 2.5e-74) {
tmp = x;
} else {
tmp = -(b * (x * a));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (y <= (-2.85d-40)) then
tmp = a * (x * -z)
else if (y <= 2.5d-74) then
tmp = x
else
tmp = -(b * (x * a))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if (y <= -2.85e-40) {
tmp = a * (x * -z);
} else if (y <= 2.5e-74) {
tmp = x;
} else {
tmp = -(b * (x * a));
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if y <= -2.85e-40: tmp = a * (x * -z) elif y <= 2.5e-74: tmp = x else: tmp = -(b * (x * a)) return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if (y <= -2.85e-40) tmp = Float64(a * Float64(x * Float64(-z))); elseif (y <= 2.5e-74) tmp = x; else tmp = Float64(-Float64(b * Float64(x * a))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if (y <= -2.85e-40) tmp = a * (x * -z); elseif (y <= 2.5e-74) tmp = x; else tmp = -(b * (x * a)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[y, -2.85e-40], N[(a * N[(x * (-z)), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.5e-74], x, (-N[(b * N[(x * a), $MachinePrecision]), $MachinePrecision])]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -2.85 \cdot 10^{-40}:\\
\;\;\;\;a \cdot \left(x \cdot \left(-z\right)\right)\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{-74}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;-b \cdot \left(x \cdot a\right)\\
\end{array}
\end{array}
if y < -2.84999999999999992e-40Initial program 97.2%
Taylor expanded in y around 0 45.1%
sub-neg45.1%
neg-mul-145.1%
log1p-def45.0%
neg-mul-145.0%
Simplified45.0%
Taylor expanded in z around 0 45.0%
associate-*r*45.0%
associate-*r*45.0%
distribute-lft-out45.0%
mul-1-neg45.0%
+-commutative45.0%
Simplified45.0%
Taylor expanded in a around 0 13.1%
mul-1-neg13.1%
unsub-neg13.1%
*-commutative13.1%
associate-*l*13.1%
*-commutative13.1%
Simplified13.1%
Taylor expanded in z around inf 15.4%
mul-1-neg15.4%
distribute-rgt-neg-in15.4%
Simplified15.4%
if -2.84999999999999992e-40 < y < 2.49999999999999999e-74Initial program 94.2%
Taylor expanded in y around inf 59.8%
Taylor expanded in y around 0 43.4%
if 2.49999999999999999e-74 < y Initial program 96.4%
Taylor expanded in y around 0 52.9%
sub-neg52.9%
neg-mul-152.9%
log1p-def54.1%
neg-mul-154.1%
Simplified54.1%
Taylor expanded in z around 0 54.1%
associate-*r*54.1%
associate-*r*54.1%
distribute-lft-out54.1%
mul-1-neg54.1%
+-commutative54.1%
Simplified54.1%
Taylor expanded in a around 0 21.0%
mul-1-neg21.0%
unsub-neg21.0%
*-commutative21.0%
associate-*l*22.2%
*-commutative22.2%
Simplified22.2%
Taylor expanded in b around inf 26.9%
mul-1-neg26.9%
*-commutative26.9%
associate-*r*25.6%
*-commutative25.6%
Simplified25.6%
Final simplification29.7%
(FPCore (x y z t a b) :precision binary64 (if (or (<= a -1.6e+168) (not (<= a 1.6e+97))) (* x (* y t)) x))
double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((a <= -1.6e+168) || !(a <= 1.6e+97)) {
tmp = x * (y * t);
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((a <= (-1.6d+168)) .or. (.not. (a <= 1.6d+97))) then
tmp = x * (y * t)
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
double tmp;
if ((a <= -1.6e+168) || !(a <= 1.6e+97)) {
tmp = x * (y * t);
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b): tmp = 0 if (a <= -1.6e+168) or not (a <= 1.6e+97): tmp = x * (y * t) else: tmp = x return tmp
function code(x, y, z, t, a, b) tmp = 0.0 if ((a <= -1.6e+168) || !(a <= 1.6e+97)) tmp = Float64(x * Float64(y * t)); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b) tmp = 0.0; if ((a <= -1.6e+168) || ~((a <= 1.6e+97))) tmp = x * (y * t); else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[a, -1.6e+168], N[Not[LessEqual[a, 1.6e+97]], $MachinePrecision]], N[(x * N[(y * t), $MachinePrecision]), $MachinePrecision], x]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.6 \cdot 10^{+168} \lor \neg \left(a \leq 1.6 \cdot 10^{+97}\right):\\
\;\;\;\;x \cdot \left(y \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if a < -1.6000000000000001e168 or 1.60000000000000008e97 < a Initial program 86.0%
Taylor expanded in t around inf 42.1%
mul-1-neg42.1%
distribute-lft-neg-out42.1%
*-commutative42.1%
Simplified42.1%
Taylor expanded in y around 0 11.5%
mul-1-neg11.5%
unsub-neg11.5%
*-commutative11.5%
Simplified11.5%
Taylor expanded in y around inf 27.3%
mul-1-neg27.3%
distribute-rgt-neg-in27.3%
Simplified27.3%
expm1-log1p-u22.6%
expm1-udef29.4%
*-commutative29.4%
add-sqr-sqrt10.5%
sqrt-unprod33.8%
sqr-neg33.8%
sqrt-unprod17.7%
add-sqr-sqrt26.5%
Applied egg-rr26.5%
expm1-def19.8%
expm1-log1p21.9%
Simplified21.9%
if -1.6000000000000001e168 < a < 1.60000000000000008e97Initial program 99.4%
Taylor expanded in y around inf 84.8%
Taylor expanded in y around 0 28.1%
Final simplification26.4%
(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 95.8%
Taylor expanded in y around inf 75.4%
Taylor expanded in y around 0 21.9%
Final simplification21.9%
herbie shell --seed 2023297
(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))))))