
(FPCore (x y z t a b c i) :precision binary64 (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = ((((((((x * y) + z) * y) + 27464.7644705d0) * y) + 230661.510616d0) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
def code(x, y, z, t, a, b, c, i): return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(y + a) * y) + b) * y) + c) * y) + i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + 27464.7644705), $MachinePrecision] * y), $MachinePrecision] + 230661.510616), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(y + a), $MachinePrecision] * y), $MachinePrecision] + b), $MachinePrecision] * y), $MachinePrecision] + c), $MachinePrecision] * y), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i) :precision binary64 (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = ((((((((x * y) + z) * y) + 27464.7644705d0) * y) + 230661.510616d0) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
def code(x, y, z, t, a, b, c, i): return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(y + a) * y) + b) * y) + c) * y) + i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + 27464.7644705), $MachinePrecision] * y), $MachinePrecision] + 230661.510616), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(y + a), $MachinePrecision] * y), $MachinePrecision] + b), $MachinePrecision] * y), $MachinePrecision] + c), $MachinePrecision] * y), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\end{array}
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1
(/
(+
t
(* y (+ 230661.510616 (* y (+ 27464.7644705 (* y (+ (* x y) z)))))))
(+ (* y (+ c (* y (+ b (* y (+ y a)))))) i))))
(if (<= t_1 INFINITY) t_1 (- (+ x (/ z y)) (* a (/ x y))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
double tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = t_1;
} else {
tmp = (x + (z / y)) - (a * (x / y));
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
double tmp;
if (t_1 <= Double.POSITIVE_INFINITY) {
tmp = t_1;
} else {
tmp = (x + (z / y)) - (a * (x / y));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i) tmp = 0 if t_1 <= math.inf: tmp = t_1 else: tmp = (x + (z / y)) - (a * (x / y)) return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * Float64(27464.7644705 + Float64(y * Float64(Float64(x * y) + z))))))) / Float64(Float64(y * Float64(c + Float64(y * Float64(b + Float64(y * Float64(y + a)))))) + i)) tmp = 0.0 if (t_1 <= Inf) tmp = t_1; else tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i); tmp = 0.0; if (t_1 <= Inf) tmp = t_1; else tmp = (x + (z / y)) - (a * (x / y)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(N[(t + N[(y * N[(230661.510616 + N[(y * N[(27464.7644705 + N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(y * N[(c + N[(y * N[(b + N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{t + y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot \left(x \cdot y + z\right)\right)\right)}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i}\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\end{array}
\end{array}
if (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < +inf.0Initial program 93.9%
if +inf.0 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) Initial program 0.0%
Taylor expanded in y around inf 64.0%
associate-/l*67.9%
Simplified67.9%
Final simplification84.8%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (* y (+ c (* y (+ b (* y (+ y a)))))))
(t_2
(/
(+
t
(* y (+ 230661.510616 (* y (+ 27464.7644705 (* y (+ (* x y) z)))))))
t_1))
(t_3 (- (+ x (/ z y)) (* a (/ x y)))))
(if (<= y -1.8e+78)
t_3
(if (<= y -7.5e-18)
t_2
(if (<= y 3.4e-16)
(/
(+ t (* y (+ 230661.510616 (* y (+ 27464.7644705 (* y z))))))
(+ t_1 i))
(if (<= y 1.45e+76) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = y * (c + (y * (b + (y * (y + a)))));
double t_2 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / t_1;
double t_3 = (x + (z / y)) - (a * (x / y));
double tmp;
if (y <= -1.8e+78) {
tmp = t_3;
} else if (y <= -7.5e-18) {
tmp = t_2;
} else if (y <= 3.4e-16) {
tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / (t_1 + i);
} else if (y <= 1.45e+76) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_1 = y * (c + (y * (b + (y * (y + a)))))
t_2 = (t + (y * (230661.510616d0 + (y * (27464.7644705d0 + (y * ((x * y) + z))))))) / t_1
t_3 = (x + (z / y)) - (a * (x / y))
if (y <= (-1.8d+78)) then
tmp = t_3
else if (y <= (-7.5d-18)) then
tmp = t_2
else if (y <= 3.4d-16) then
tmp = (t + (y * (230661.510616d0 + (y * (27464.7644705d0 + (y * z)))))) / (t_1 + i)
else if (y <= 1.45d+76) then
tmp = t_2
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = y * (c + (y * (b + (y * (y + a)))));
double t_2 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / t_1;
double t_3 = (x + (z / y)) - (a * (x / y));
double tmp;
if (y <= -1.8e+78) {
tmp = t_3;
} else if (y <= -7.5e-18) {
tmp = t_2;
} else if (y <= 3.4e-16) {
tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / (t_1 + i);
} else if (y <= 1.45e+76) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = y * (c + (y * (b + (y * (y + a))))) t_2 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / t_1 t_3 = (x + (z / y)) - (a * (x / y)) tmp = 0 if y <= -1.8e+78: tmp = t_3 elif y <= -7.5e-18: tmp = t_2 elif y <= 3.4e-16: tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / (t_1 + i) elif y <= 1.45e+76: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(y * Float64(c + Float64(y * Float64(b + Float64(y * Float64(y + a)))))) t_2 = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * Float64(27464.7644705 + Float64(y * Float64(Float64(x * y) + z))))))) / t_1) t_3 = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))) tmp = 0.0 if (y <= -1.8e+78) tmp = t_3; elseif (y <= -7.5e-18) tmp = t_2; elseif (y <= 3.4e-16) tmp = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * Float64(27464.7644705 + Float64(y * z)))))) / Float64(t_1 + i)); elseif (y <= 1.45e+76) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = y * (c + (y * (b + (y * (y + a))))); t_2 = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * ((x * y) + z))))))) / t_1; t_3 = (x + (z / y)) - (a * (x / y)); tmp = 0.0; if (y <= -1.8e+78) tmp = t_3; elseif (y <= -7.5e-18) tmp = t_2; elseif (y <= 3.4e-16) tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / (t_1 + i); elseif (y <= 1.45e+76) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(y * N[(c + N[(y * N[(b + N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t + N[(y * N[(230661.510616 + N[(y * N[(27464.7644705 + N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.8e+78], t$95$3, If[LessEqual[y, -7.5e-18], t$95$2, If[LessEqual[y, 3.4e-16], N[(N[(t + N[(y * N[(230661.510616 + N[(y * N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 + i), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.45e+76], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right)\\
t_2 := \frac{t + y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot \left(x \cdot y + z\right)\right)\right)}{t\_1}\\
t_3 := \left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{if}\;y \leq -1.8 \cdot 10^{+78}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq -7.5 \cdot 10^{-18}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.4 \cdot 10^{-16}:\\
\;\;\;\;\frac{t + y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot z\right)\right)}{t\_1 + i}\\
\mathbf{elif}\;y \leq 1.45 \cdot 10^{+76}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y < -1.8000000000000001e78 or 1.4500000000000001e76 < y Initial program 0.2%
Taylor expanded in y around inf 66.7%
associate-/l*70.7%
Simplified70.7%
if -1.8000000000000001e78 < y < -7.50000000000000015e-18 or 3.4e-16 < y < 1.4500000000000001e76Initial program 75.6%
Taylor expanded in i around 0 69.5%
if -7.50000000000000015e-18 < y < 3.4e-16Initial program 99.7%
Taylor expanded in x around 0 97.3%
Final simplification83.2%
(FPCore (x y z t a b c i)
:precision binary64
(if (or (<= y -5.2e+65) (not (<= y 2.7e+47)))
(- (+ x (/ z y)) (* a (/ x y)))
(/
(+ t (* y (+ 230661.510616 (* y (+ 27464.7644705 (* y z))))))
(+ (* y (+ c (* y (+ b (* y (+ y a)))))) i))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -5.2e+65) || !(y <= 2.7e+47)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-5.2d+65)) .or. (.not. (y <= 2.7d+47))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = (t + (y * (230661.510616d0 + (y * (27464.7644705d0 + (y * z)))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -5.2e+65) || !(y <= 2.7e+47)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -5.2e+65) or not (y <= 2.7e+47): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -5.2e+65) || !(y <= 2.7e+47)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * Float64(27464.7644705 + Float64(y * z)))))) / Float64(Float64(y * Float64(c + Float64(y * Float64(b + Float64(y * Float64(y + a)))))) + i)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -5.2e+65) || ~((y <= 2.7e+47))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = (t + (y * (230661.510616 + (y * (27464.7644705 + (y * z)))))) / ((y * (c + (y * (b + (y * (y + a)))))) + i); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -5.2e+65], N[Not[LessEqual[y, 2.7e+47]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t + N[(y * N[(230661.510616 + N[(y * N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(y * N[(c + N[(y * N[(b + N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -5.2 \cdot 10^{+65} \lor \neg \left(y \leq 2.7 \cdot 10^{+47}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot z\right)\right)}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i}\\
\end{array}
\end{array}
if y < -5.20000000000000005e65 or 2.69999999999999996e47 < y Initial program 6.3%
Taylor expanded in y around inf 65.4%
associate-/l*69.1%
Simplified69.1%
if -5.20000000000000005e65 < y < 2.69999999999999996e47Initial program 94.2%
Taylor expanded in x around 0 85.7%
Final simplification79.4%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ t (* y 230661.510616)))
(t_2 (/ t_1 i))
(t_3 (- (+ x (/ z y)) (* a (/ x y)))))
(if (<= y -47000.0)
t_3
(if (<= y -2.6e-224)
t_2
(if (<= y -3.8e-241)
(/ t_1 (* y c))
(if (<= y 2.15e-26)
t_2
(if (<= y 5e+101) (* y (+ (/ x a) (/ z (* y a)))) t_3)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = (x + (z / y)) - (a * (x / y));
double tmp;
if (y <= -47000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 2.15e-26) {
tmp = t_2;
} else if (y <= 5e+101) {
tmp = y * ((x / a) + (z / (y * a)));
} else {
tmp = t_3;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_1 = t + (y * 230661.510616d0)
t_2 = t_1 / i
t_3 = (x + (z / y)) - (a * (x / y))
if (y <= (-47000.0d0)) then
tmp = t_3
else if (y <= (-2.6d-224)) then
tmp = t_2
else if (y <= (-3.8d-241)) then
tmp = t_1 / (y * c)
else if (y <= 2.15d-26) then
tmp = t_2
else if (y <= 5d+101) then
tmp = y * ((x / a) + (z / (y * a)))
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = (x + (z / y)) - (a * (x / y));
double tmp;
if (y <= -47000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 2.15e-26) {
tmp = t_2;
} else if (y <= 5e+101) {
tmp = y * ((x / a) + (z / (y * a)));
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = t + (y * 230661.510616) t_2 = t_1 / i t_3 = (x + (z / y)) - (a * (x / y)) tmp = 0 if y <= -47000.0: tmp = t_3 elif y <= -2.6e-224: tmp = t_2 elif y <= -3.8e-241: tmp = t_1 / (y * c) elif y <= 2.15e-26: tmp = t_2 elif y <= 5e+101: tmp = y * ((x / a) + (z / (y * a))) else: tmp = t_3 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(t + Float64(y * 230661.510616)) t_2 = Float64(t_1 / i) t_3 = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))) tmp = 0.0 if (y <= -47000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = Float64(t_1 / Float64(y * c)); elseif (y <= 2.15e-26) tmp = t_2; elseif (y <= 5e+101) tmp = Float64(y * Float64(Float64(x / a) + Float64(z / Float64(y * a)))); else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = t + (y * 230661.510616); t_2 = t_1 / i; t_3 = (x + (z / y)) - (a * (x / y)); tmp = 0.0; if (y <= -47000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = t_1 / (y * c); elseif (y <= 2.15e-26) tmp = t_2; elseif (y <= 5e+101) tmp = y * ((x / a) + (z / (y * a))); else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 / i), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -47000.0], t$95$3, If[LessEqual[y, -2.6e-224], t$95$2, If[LessEqual[y, -3.8e-241], N[(t$95$1 / N[(y * c), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.15e-26], t$95$2, If[LessEqual[y, 5e+101], N[(y * N[(N[(x / a), $MachinePrecision] + N[(z / N[(y * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + y \cdot 230661.510616\\
t_2 := \frac{t\_1}{i}\\
t_3 := \left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{if}\;y \leq -47000:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq -2.6 \cdot 10^{-224}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -3.8 \cdot 10^{-241}:\\
\;\;\;\;\frac{t\_1}{y \cdot c}\\
\mathbf{elif}\;y \leq 2.15 \cdot 10^{-26}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+101}:\\
\;\;\;\;y \cdot \left(\frac{x}{a} + \frac{z}{y \cdot a}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y < -47000 or 4.99999999999999989e101 < y Initial program 11.1%
Taylor expanded in y around inf 60.7%
associate-/l*64.2%
Simplified64.2%
if -47000 < y < -2.6000000000000002e-224 or -3.7999999999999999e-241 < y < 2.14999999999999994e-26Initial program 99.8%
Taylor expanded in y around 0 93.9%
*-commutative93.9%
Simplified93.9%
Taylor expanded in y around 0 92.3%
*-commutative92.3%
Simplified92.3%
Taylor expanded in y around 0 92.3%
*-commutative92.3%
Simplified92.3%
Taylor expanded in i around inf 67.4%
if -2.6000000000000002e-224 < y < -3.7999999999999999e-241Initial program 98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in c around inf 98.8%
if 2.14999999999999994e-26 < y < 4.99999999999999989e101Initial program 68.7%
Taylor expanded in a around inf 22.9%
Taylor expanded in y around inf 27.7%
*-commutative27.7%
Simplified27.7%
Final simplification62.3%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ t (* y 230661.510616)))
(t_2 (/ t_1 i))
(t_3 (+ x (/ (- z (* x a)) y))))
(if (<= y -180000000000.0)
t_3
(if (<= y -2.6e-224)
t_2
(if (<= y -3.8e-241)
(/ t_1 (* y c))
(if (<= y 3e-26)
t_2
(if (<= y 5.1e+101) (* y (+ (/ x a) (/ z (* y a)))) t_3)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -180000000000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 3e-26) {
tmp = t_2;
} else if (y <= 5.1e+101) {
tmp = y * ((x / a) + (z / (y * a)));
} else {
tmp = t_3;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_1 = t + (y * 230661.510616d0)
t_2 = t_1 / i
t_3 = x + ((z - (x * a)) / y)
if (y <= (-180000000000.0d0)) then
tmp = t_3
else if (y <= (-2.6d-224)) then
tmp = t_2
else if (y <= (-3.8d-241)) then
tmp = t_1 / (y * c)
else if (y <= 3d-26) then
tmp = t_2
else if (y <= 5.1d+101) then
tmp = y * ((x / a) + (z / (y * a)))
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -180000000000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 3e-26) {
tmp = t_2;
} else if (y <= 5.1e+101) {
tmp = y * ((x / a) + (z / (y * a)));
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = t + (y * 230661.510616) t_2 = t_1 / i t_3 = x + ((z - (x * a)) / y) tmp = 0 if y <= -180000000000.0: tmp = t_3 elif y <= -2.6e-224: tmp = t_2 elif y <= -3.8e-241: tmp = t_1 / (y * c) elif y <= 3e-26: tmp = t_2 elif y <= 5.1e+101: tmp = y * ((x / a) + (z / (y * a))) else: tmp = t_3 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(t + Float64(y * 230661.510616)) t_2 = Float64(t_1 / i) t_3 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -180000000000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = Float64(t_1 / Float64(y * c)); elseif (y <= 3e-26) tmp = t_2; elseif (y <= 5.1e+101) tmp = Float64(y * Float64(Float64(x / a) + Float64(z / Float64(y * a)))); else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = t + (y * 230661.510616); t_2 = t_1 / i; t_3 = x + ((z - (x * a)) / y); tmp = 0.0; if (y <= -180000000000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = t_1 / (y * c); elseif (y <= 3e-26) tmp = t_2; elseif (y <= 5.1e+101) tmp = y * ((x / a) + (z / (y * a))); else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 / i), $MachinePrecision]}, Block[{t$95$3 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -180000000000.0], t$95$3, If[LessEqual[y, -2.6e-224], t$95$2, If[LessEqual[y, -3.8e-241], N[(t$95$1 / N[(y * c), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3e-26], t$95$2, If[LessEqual[y, 5.1e+101], N[(y * N[(N[(x / a), $MachinePrecision] + N[(z / N[(y * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + y \cdot 230661.510616\\
t_2 := \frac{t\_1}{i}\\
t_3 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -180000000000:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq -2.6 \cdot 10^{-224}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -3.8 \cdot 10^{-241}:\\
\;\;\;\;\frac{t\_1}{y \cdot c}\\
\mathbf{elif}\;y \leq 3 \cdot 10^{-26}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 5.1 \cdot 10^{+101}:\\
\;\;\;\;y \cdot \left(\frac{x}{a} + \frac{z}{y \cdot a}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y < -1.8e11 or 5.09999999999999995e101 < y Initial program 11.1%
Taylor expanded in y around -inf 60.7%
mul-1-neg60.7%
unsub-neg60.7%
sub-neg60.7%
mul-1-neg60.7%
mul-1-neg60.7%
remove-double-neg60.7%
Simplified60.7%
if -1.8e11 < y < -2.6000000000000002e-224 or -3.7999999999999999e-241 < y < 3.00000000000000012e-26Initial program 99.8%
Taylor expanded in y around 0 93.9%
*-commutative93.9%
Simplified93.9%
Taylor expanded in y around 0 92.3%
*-commutative92.3%
Simplified92.3%
Taylor expanded in y around 0 92.3%
*-commutative92.3%
Simplified92.3%
Taylor expanded in i around inf 67.4%
if -2.6000000000000002e-224 < y < -3.7999999999999999e-241Initial program 98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in c around inf 98.8%
if 3.00000000000000012e-26 < y < 5.09999999999999995e101Initial program 68.7%
Taylor expanded in a around inf 22.9%
Taylor expanded in y around inf 27.7%
*-commutative27.7%
Simplified27.7%
Final simplification60.9%
(FPCore (x y z t a b c i)
:precision binary64
(if (or (<= y -8e+53) (not (<= y 1.35e+45)))
(- (+ x (/ z y)) (* a (/ x y)))
(/
(+ t (* y (+ 230661.510616 (* y 27464.7644705))))
(+ (* y (+ c (* y (+ b (* y (+ y a)))))) i))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -8e+53) || !(y <= 1.35e+45)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-8d+53)) .or. (.not. (y <= 1.35d+45))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = (t + (y * (230661.510616d0 + (y * 27464.7644705d0)))) / ((y * (c + (y * (b + (y * (y + a)))))) + i)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -8e+53) || !(y <= 1.35e+45)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -8e+53) or not (y <= 1.35e+45): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / ((y * (c + (y * (b + (y * (y + a)))))) + i) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -8e+53) || !(y <= 1.35e+45)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * 27464.7644705)))) / Float64(Float64(y * Float64(c + Float64(y * Float64(b + Float64(y * Float64(y + a)))))) + i)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -8e+53) || ~((y <= 1.35e+45))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / ((y * (c + (y * (b + (y * (y + a)))))) + i); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -8e+53], N[Not[LessEqual[y, 1.35e+45]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t + N[(y * N[(230661.510616 + N[(y * 27464.7644705), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(y * N[(c + N[(y * N[(b + N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -8 \cdot 10^{+53} \lor \neg \left(y \leq 1.35 \cdot 10^{+45}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot \left(230661.510616 + y \cdot 27464.7644705\right)}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i}\\
\end{array}
\end{array}
if y < -7.9999999999999999e53 or 1.34999999999999992e45 < y Initial program 8.1%
Taylor expanded in y around inf 63.7%
associate-/l*67.2%
Simplified67.2%
if -7.9999999999999999e53 < y < 1.34999999999999992e45Initial program 94.8%
Taylor expanded in y around 0 80.9%
*-commutative80.9%
Simplified80.9%
Final simplification75.6%
(FPCore (x y z t a b c i) :precision binary64 (if (or (<= y -1.8e+23) (not (<= y 1.4e+47))) (- (+ x (/ z y)) (* a (/ x y))) (/ (+ t (* y 230661.510616)) (+ (* y (+ c (* y (+ b (* y (+ y a)))))) i))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -1.8e+23) || !(y <= 1.4e+47)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * 230661.510616)) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-1.8d+23)) .or. (.not. (y <= 1.4d+47))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = (t + (y * 230661.510616d0)) / ((y * (c + (y * (b + (y * (y + a)))))) + i)
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -1.8e+23) || !(y <= 1.4e+47)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * 230661.510616)) / ((y * (c + (y * (b + (y * (y + a)))))) + i);
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -1.8e+23) or not (y <= 1.4e+47): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = (t + (y * 230661.510616)) / ((y * (c + (y * (b + (y * (y + a)))))) + i) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -1.8e+23) || !(y <= 1.4e+47)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(Float64(t + Float64(y * 230661.510616)) / Float64(Float64(y * Float64(c + Float64(y * Float64(b + Float64(y * Float64(y + a)))))) + i)); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -1.8e+23) || ~((y <= 1.4e+47))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = (t + (y * 230661.510616)) / ((y * (c + (y * (b + (y * (y + a)))))) + i); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -1.8e+23], N[Not[LessEqual[y, 1.4e+47]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision] / N[(N[(y * N[(c + N[(y * N[(b + N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -1.8 \cdot 10^{+23} \lor \neg \left(y \leq 1.4 \cdot 10^{+47}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot 230661.510616}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i}\\
\end{array}
\end{array}
if y < -1.7999999999999999e23 or 1.39999999999999994e47 < y Initial program 11.2%
Taylor expanded in y around inf 59.0%
associate-/l*62.3%
Simplified62.3%
if -1.7999999999999999e23 < y < 1.39999999999999994e47Initial program 98.4%
Taylor expanded in y around 0 84.4%
*-commutative84.4%
Simplified84.4%
Final simplification74.9%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ t (* y 230661.510616)))
(t_2 (/ t_1 i))
(t_3 (+ x (/ (- z (* x a)) y))))
(if (<= y -51000000000.0)
t_3
(if (<= y -2.6e-224)
t_2
(if (<= y -3.8e-241) (/ t_1 (* y c)) (if (<= y 4.6e-15) t_2 t_3))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -51000000000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 4.6e-15) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_1 = t + (y * 230661.510616d0)
t_2 = t_1 / i
t_3 = x + ((z - (x * a)) / y)
if (y <= (-51000000000.0d0)) then
tmp = t_3
else if (y <= (-2.6d-224)) then
tmp = t_2
else if (y <= (-3.8d-241)) then
tmp = t_1 / (y * c)
else if (y <= 4.6d-15) then
tmp = t_2
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double t_3 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -51000000000.0) {
tmp = t_3;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 4.6e-15) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = t + (y * 230661.510616) t_2 = t_1 / i t_3 = x + ((z - (x * a)) / y) tmp = 0 if y <= -51000000000.0: tmp = t_3 elif y <= -2.6e-224: tmp = t_2 elif y <= -3.8e-241: tmp = t_1 / (y * c) elif y <= 4.6e-15: tmp = t_2 else: tmp = t_3 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(t + Float64(y * 230661.510616)) t_2 = Float64(t_1 / i) t_3 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -51000000000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = Float64(t_1 / Float64(y * c)); elseif (y <= 4.6e-15) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = t + (y * 230661.510616); t_2 = t_1 / i; t_3 = x + ((z - (x * a)) / y); tmp = 0.0; if (y <= -51000000000.0) tmp = t_3; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = t_1 / (y * c); elseif (y <= 4.6e-15) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 / i), $MachinePrecision]}, Block[{t$95$3 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -51000000000.0], t$95$3, If[LessEqual[y, -2.6e-224], t$95$2, If[LessEqual[y, -3.8e-241], N[(t$95$1 / N[(y * c), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.6e-15], t$95$2, t$95$3]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + y \cdot 230661.510616\\
t_2 := \frac{t\_1}{i}\\
t_3 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -51000000000:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq -2.6 \cdot 10^{-224}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -3.8 \cdot 10^{-241}:\\
\;\;\;\;\frac{t\_1}{y \cdot c}\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{-15}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y < -5.1e10 or 4.59999999999999981e-15 < y Initial program 22.1%
Taylor expanded in y around -inf 51.4%
mul-1-neg51.4%
unsub-neg51.4%
sub-neg51.4%
mul-1-neg51.4%
mul-1-neg51.4%
remove-double-neg51.4%
Simplified51.4%
if -5.1e10 < y < -2.6000000000000002e-224 or -3.7999999999999999e-241 < y < 4.59999999999999981e-15Initial program 99.8%
Taylor expanded in y around 0 91.7%
*-commutative91.7%
Simplified91.7%
Taylor expanded in y around 0 90.2%
*-commutative90.2%
Simplified90.2%
Taylor expanded in y around 0 90.2%
*-commutative90.2%
Simplified90.2%
Taylor expanded in i around inf 65.9%
if -2.6000000000000002e-224 < y < -3.7999999999999999e-241Initial program 98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in c around inf 98.8%
Final simplification59.3%
(FPCore (x y z t a b c i)
:precision binary64
(if (or (<= y -4.1e+51) (not (<= y 6.5e+44)))
(- (+ x (/ z y)) (* a (/ x y)))
(/
(+ t (* y (+ 230661.510616 (* y 27464.7644705))))
(+ i (* y (+ c (* y b)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -4.1e+51) || !(y <= 6.5e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / (i + (y * (c + (y * b))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-4.1d+51)) .or. (.not. (y <= 6.5d+44))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = (t + (y * (230661.510616d0 + (y * 27464.7644705d0)))) / (i + (y * (c + (y * b))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -4.1e+51) || !(y <= 6.5e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / (i + (y * (c + (y * b))));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -4.1e+51) or not (y <= 6.5e+44): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / (i + (y * (c + (y * b)))) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -4.1e+51) || !(y <= 6.5e+44)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(Float64(t + Float64(y * Float64(230661.510616 + Float64(y * 27464.7644705)))) / Float64(i + Float64(y * Float64(c + Float64(y * b))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -4.1e+51) || ~((y <= 6.5e+44))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = (t + (y * (230661.510616 + (y * 27464.7644705)))) / (i + (y * (c + (y * b)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -4.1e+51], N[Not[LessEqual[y, 6.5e+44]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t + N[(y * N[(230661.510616 + N[(y * 27464.7644705), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(i + N[(y * N[(c + N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -4.1 \cdot 10^{+51} \lor \neg \left(y \leq 6.5 \cdot 10^{+44}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot \left(230661.510616 + y \cdot 27464.7644705\right)}{i + y \cdot \left(c + y \cdot b\right)}\\
\end{array}
\end{array}
if y < -4.10000000000000011e51 or 6.50000000000000018e44 < y Initial program 9.0%
Taylor expanded in y around inf 62.5%
associate-/l*66.0%
Simplified66.0%
if -4.10000000000000011e51 < y < 6.50000000000000018e44Initial program 95.3%
Taylor expanded in y around 0 81.3%
*-commutative81.3%
Simplified81.3%
Taylor expanded in y around 0 78.1%
*-commutative78.1%
Simplified78.1%
Final simplification73.3%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ t (* y 230661.510616))) (t_2 (/ t_1 i)))
(if (<= y -1.55e+27)
x
(if (<= y -2.6e-224)
t_2
(if (<= y -3.8e-241) (/ t_1 (* y c)) (if (<= y 3.2e-17) t_2 x))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double tmp;
if (y <= -1.55e+27) {
tmp = x;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 3.2e-17) {
tmp = t_2;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = t + (y * 230661.510616d0)
t_2 = t_1 / i
if (y <= (-1.55d+27)) then
tmp = x
else if (y <= (-2.6d-224)) then
tmp = t_2
else if (y <= (-3.8d-241)) then
tmp = t_1 / (y * c)
else if (y <= 3.2d-17) then
tmp = t_2
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 c, double i) {
double t_1 = t + (y * 230661.510616);
double t_2 = t_1 / i;
double tmp;
if (y <= -1.55e+27) {
tmp = x;
} else if (y <= -2.6e-224) {
tmp = t_2;
} else if (y <= -3.8e-241) {
tmp = t_1 / (y * c);
} else if (y <= 3.2e-17) {
tmp = t_2;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = t + (y * 230661.510616) t_2 = t_1 / i tmp = 0 if y <= -1.55e+27: tmp = x elif y <= -2.6e-224: tmp = t_2 elif y <= -3.8e-241: tmp = t_1 / (y * c) elif y <= 3.2e-17: tmp = t_2 else: tmp = x return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(t + Float64(y * 230661.510616)) t_2 = Float64(t_1 / i) tmp = 0.0 if (y <= -1.55e+27) tmp = x; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = Float64(t_1 / Float64(y * c)); elseif (y <= 3.2e-17) tmp = t_2; else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = t + (y * 230661.510616); t_2 = t_1 / i; tmp = 0.0; if (y <= -1.55e+27) tmp = x; elseif (y <= -2.6e-224) tmp = t_2; elseif (y <= -3.8e-241) tmp = t_1 / (y * c); elseif (y <= 3.2e-17) tmp = t_2; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 / i), $MachinePrecision]}, If[LessEqual[y, -1.55e+27], x, If[LessEqual[y, -2.6e-224], t$95$2, If[LessEqual[y, -3.8e-241], N[(t$95$1 / N[(y * c), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.2e-17], t$95$2, x]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t + y \cdot 230661.510616\\
t_2 := \frac{t\_1}{i}\\
\mathbf{if}\;y \leq -1.55 \cdot 10^{+27}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq -2.6 \cdot 10^{-224}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq -3.8 \cdot 10^{-241}:\\
\;\;\;\;\frac{t\_1}{y \cdot c}\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{-17}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -1.54999999999999998e27 or 3.2000000000000002e-17 < y Initial program 20.4%
Taylor expanded in y around inf 43.5%
if -1.54999999999999998e27 < y < -2.6000000000000002e-224 or -3.7999999999999999e-241 < y < 3.2000000000000002e-17Initial program 99.0%
Taylor expanded in y around 0 89.6%
*-commutative89.6%
Simplified89.6%
Taylor expanded in y around 0 88.2%
*-commutative88.2%
Simplified88.2%
Taylor expanded in y around 0 88.3%
*-commutative88.3%
Simplified88.3%
Taylor expanded in i around inf 63.9%
if -2.6000000000000002e-224 < y < -3.7999999999999999e-241Initial program 98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in y around 0 98.8%
*-commutative98.8%
Simplified98.8%
Taylor expanded in c around inf 98.8%
Final simplification54.7%
(FPCore (x y z t a b c i) :precision binary64 (if (or (<= y -7.4e+22) (not (<= y 4e+44))) (- (+ x (/ z y)) (* a (/ x y))) (/ (+ t (* y 230661.510616)) (+ i (* y (+ c (* y b)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -7.4e+22) || !(y <= 4e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * 230661.510616)) / (i + (y * (c + (y * b))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-7.4d+22)) .or. (.not. (y <= 4d+44))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = (t + (y * 230661.510616d0)) / (i + (y * (c + (y * b))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -7.4e+22) || !(y <= 4e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = (t + (y * 230661.510616)) / (i + (y * (c + (y * b))));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -7.4e+22) or not (y <= 4e+44): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = (t + (y * 230661.510616)) / (i + (y * (c + (y * b)))) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -7.4e+22) || !(y <= 4e+44)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(Float64(t + Float64(y * 230661.510616)) / Float64(i + Float64(y * Float64(c + Float64(y * b))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -7.4e+22) || ~((y <= 4e+44))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = (t + (y * 230661.510616)) / (i + (y * (c + (y * b)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -7.4e+22], N[Not[LessEqual[y, 4e+44]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision] / N[(i + N[(y * N[(c + N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -7.4 \cdot 10^{+22} \lor \neg \left(y \leq 4 \cdot 10^{+44}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot 230661.510616}{i + y \cdot \left(c + y \cdot b\right)}\\
\end{array}
\end{array}
if y < -7.3999999999999996e22 or 4.0000000000000004e44 < y Initial program 12.0%
Taylor expanded in y around inf 58.6%
associate-/l*61.8%
Simplified61.8%
if -7.3999999999999996e22 < y < 4.0000000000000004e44Initial program 98.3%
Taylor expanded in y around 0 84.9%
*-commutative84.9%
Simplified84.9%
Taylor expanded in y around 0 82.0%
*-commutative82.0%
Simplified82.0%
Taylor expanded in y around 0 82.0%
*-commutative82.0%
Simplified82.0%
Final simplification73.3%
(FPCore (x y z t a b c i) :precision binary64 (if (or (<= y -3.8e+23) (not (<= y 4e+44))) (- (+ x (/ z y)) (* a (/ x y))) (/ t (+ i (* y (+ c (* y b)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -3.8e+23) || !(y <= 4e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = t / (i + (y * (c + (y * b))));
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-3.8d+23)) .or. (.not. (y <= 4d+44))) then
tmp = (x + (z / y)) - (a * (x / y))
else
tmp = t / (i + (y * (c + (y * b))))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -3.8e+23) || !(y <= 4e+44)) {
tmp = (x + (z / y)) - (a * (x / y));
} else {
tmp = t / (i + (y * (c + (y * b))));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -3.8e+23) or not (y <= 4e+44): tmp = (x + (z / y)) - (a * (x / y)) else: tmp = t / (i + (y * (c + (y * b)))) return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -3.8e+23) || !(y <= 4e+44)) tmp = Float64(Float64(x + Float64(z / y)) - Float64(a * Float64(x / y))); else tmp = Float64(t / Float64(i + Float64(y * Float64(c + Float64(y * b))))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -3.8e+23) || ~((y <= 4e+44))) tmp = (x + (z / y)) - (a * (x / y)); else tmp = t / (i + (y * (c + (y * b)))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -3.8e+23], N[Not[LessEqual[y, 4e+44]], $MachinePrecision]], N[(N[(x + N[(z / y), $MachinePrecision]), $MachinePrecision] - N[(a * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t / N[(i + N[(y * N[(c + N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.8 \cdot 10^{+23} \lor \neg \left(y \leq 4 \cdot 10^{+44}\right):\\
\;\;\;\;\left(x + \frac{z}{y}\right) - a \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t}{i + y \cdot \left(c + y \cdot b\right)}\\
\end{array}
\end{array}
if y < -3.79999999999999975e23 or 4.0000000000000004e44 < y Initial program 12.0%
Taylor expanded in y around inf 58.6%
associate-/l*61.8%
Simplified61.8%
if -3.79999999999999975e23 < y < 4.0000000000000004e44Initial program 98.3%
Taylor expanded in y around 0 84.9%
*-commutative84.9%
Simplified84.9%
Taylor expanded in y around 0 82.0%
*-commutative82.0%
Simplified82.0%
Taylor expanded in t around inf 72.3%
Final simplification67.8%
(FPCore (x y z t a b c i) :precision binary64 (if (or (<= y -3.3e+24) (not (<= y 3.2e-17))) x (/ (+ t (* y 230661.510616)) i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -3.3e+24) || !(y <= 3.2e-17)) {
tmp = x;
} else {
tmp = (t + (y * 230661.510616)) / i;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-3.3d+24)) .or. (.not. (y <= 3.2d-17))) then
tmp = x
else
tmp = (t + (y * 230661.510616d0)) / i
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -3.3e+24) || !(y <= 3.2e-17)) {
tmp = x;
} else {
tmp = (t + (y * 230661.510616)) / i;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -3.3e+24) or not (y <= 3.2e-17): tmp = x else: tmp = (t + (y * 230661.510616)) / i return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -3.3e+24) || !(y <= 3.2e-17)) tmp = x; else tmp = Float64(Float64(t + Float64(y * 230661.510616)) / i); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -3.3e+24) || ~((y <= 3.2e-17))) tmp = x; else tmp = (t + (y * 230661.510616)) / i; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -3.3e+24], N[Not[LessEqual[y, 3.2e-17]], $MachinePrecision]], x, N[(N[(t + N[(y * 230661.510616), $MachinePrecision]), $MachinePrecision] / i), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.3 \cdot 10^{+24} \lor \neg \left(y \leq 3.2 \cdot 10^{-17}\right):\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;\frac{t + y \cdot 230661.510616}{i}\\
\end{array}
\end{array}
if y < -3.2999999999999999e24 or 3.2000000000000002e-17 < y Initial program 20.4%
Taylor expanded in y around inf 43.5%
if -3.2999999999999999e24 < y < 3.2000000000000002e-17Initial program 99.0%
Taylor expanded in y around 0 90.0%
*-commutative90.0%
Simplified90.0%
Taylor expanded in y around 0 88.6%
*-commutative88.6%
Simplified88.6%
Taylor expanded in y around 0 88.7%
*-commutative88.7%
Simplified88.7%
Taylor expanded in i around inf 61.7%
Final simplification52.9%
(FPCore (x y z t a b c i) :precision binary64 (if (or (<= y -9.6e+39) (not (<= y 3.8e-25))) x (/ t i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -9.6e+39) || !(y <= 3.8e-25)) {
tmp = x;
} else {
tmp = t / i;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if ((y <= (-9.6d+39)) .or. (.not. (y <= 3.8d-25))) then
tmp = x
else
tmp = t / i
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if ((y <= -9.6e+39) || !(y <= 3.8e-25)) {
tmp = x;
} else {
tmp = t / i;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if (y <= -9.6e+39) or not (y <= 3.8e-25): tmp = x else: tmp = t / i return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if ((y <= -9.6e+39) || !(y <= 3.8e-25)) tmp = x; else tmp = Float64(t / i); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if ((y <= -9.6e+39) || ~((y <= 3.8e-25))) tmp = x; else tmp = t / i; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[Or[LessEqual[y, -9.6e+39], N[Not[LessEqual[y, 3.8e-25]], $MachinePrecision]], x, N[(t / i), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -9.6 \cdot 10^{+39} \lor \neg \left(y \leq 3.8 \cdot 10^{-25}\right):\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;\frac{t}{i}\\
\end{array}
\end{array}
if y < -9.6000000000000004e39 or 3.7999999999999998e-25 < y Initial program 19.8%
Taylor expanded in y around inf 44.1%
if -9.6000000000000004e39 < y < 3.7999999999999998e-25Initial program 98.3%
Taylor expanded in y around 0 57.7%
Final simplification51.2%
(FPCore (x y z t a b c i) :precision binary64 x)
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return x;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = x
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return x;
}
def code(x, y, z, t, a, b, c, i): return x
function code(x, y, z, t, a, b, c, i) return x end
function tmp = code(x, y, z, t, a, b, c, i) tmp = x; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 60.9%
Taylor expanded in y around inf 22.6%
herbie shell --seed 2024095
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
:precision binary64
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))