
(FPCore (x y z t a b c i j k) :precision binary64 (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k);
}
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
code = (((((((x * 18.0d0) * y) * z) * t) - ((a * 4.0d0) * t)) + (b * c)) - ((x * 4.0d0) * i)) - ((j * 27.0d0) * k)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k);
}
def code(x, y, z, t, a, b, c, i, j, k): return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k)
function code(x, y, z, t, a, b, c, i, j, k) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 18.0) * y) * z) * t) - Float64(Float64(a * 4.0) * t)) + Float64(b * c)) - Float64(Float64(x * 4.0) * i)) - Float64(Float64(j * 27.0) * k)) end
function tmp = code(x, y, z, t, a, b, c, i, j, k) tmp = (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := N[(N[(N[(N[(N[(N[(N[(N[(x * 18.0), $MachinePrecision] * y), $MachinePrecision] * z), $MachinePrecision] * t), $MachinePrecision] - N[(N[(a * 4.0), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] + N[(b * c), $MachinePrecision]), $MachinePrecision] - N[(N[(x * 4.0), $MachinePrecision] * i), $MachinePrecision]), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 28 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i j k) :precision binary64 (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k);
}
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
code = (((((((x * 18.0d0) * y) * z) * t) - ((a * 4.0d0) * t)) + (b * c)) - ((x * 4.0d0) * i)) - ((j * 27.0d0) * k)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k);
}
def code(x, y, z, t, a, b, c, i, j, k): return (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k)
function code(x, y, z, t, a, b, c, i, j, k) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 18.0) * y) * z) * t) - Float64(Float64(a * 4.0) * t)) + Float64(b * c)) - Float64(Float64(x * 4.0) * i)) - Float64(Float64(j * 27.0) * k)) end
function tmp = code(x, y, z, t, a, b, c, i, j, k) tmp = (((((((x * 18.0) * y) * z) * t) - ((a * 4.0) * t)) + (b * c)) - ((x * 4.0) * i)) - ((j * 27.0) * k); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := N[(N[(N[(N[(N[(N[(N[(N[(x * 18.0), $MachinePrecision] * y), $MachinePrecision] * z), $MachinePrecision] * t), $MachinePrecision] - N[(N[(a * 4.0), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] + N[(b * c), $MachinePrecision]), $MachinePrecision] - N[(N[(x * 4.0), $MachinePrecision] * i), $MachinePrecision]), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\end{array}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k))
(t_2
(-
(-
(+ (- (* (* (* (* x 18.0) y) z) t) (* t (* a 4.0))) (* b c))
(* (* x 4.0) i))
t_1))
(t_3 (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))
(t_4 (- (- (+ (* b c) t_3) (* 4.0 (* t a))) t_1)))
(if (<= t_2 (- INFINITY))
t_4
(if (<= t_2 5e+245) t_2 (if (<= t_2 INFINITY) t_4 t_3)))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (((((((x * 18.0) * y) * z) * t) - (t * (a * 4.0))) + (b * c)) - ((x * 4.0) * i)) - t_1;
double t_3 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double t_4 = (((b * c) + t_3) - (4.0 * (t * a))) - t_1;
double tmp;
if (t_2 <= -((double) INFINITY)) {
tmp = t_4;
} else if (t_2 <= 5e+245) {
tmp = t_2;
} else if (t_2 <= ((double) INFINITY)) {
tmp = t_4;
} else {
tmp = t_3;
}
return tmp;
}
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (((((((x * 18.0) * y) * z) * t) - (t * (a * 4.0))) + (b * c)) - ((x * 4.0) * i)) - t_1;
double t_3 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double t_4 = (((b * c) + t_3) - (4.0 * (t * a))) - t_1;
double tmp;
if (t_2 <= -Double.POSITIVE_INFINITY) {
tmp = t_4;
} else if (t_2 <= 5e+245) {
tmp = t_2;
} else if (t_2 <= Double.POSITIVE_INFINITY) {
tmp = t_4;
} else {
tmp = t_3;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k t_2 = (((((((x * 18.0) * y) * z) * t) - (t * (a * 4.0))) + (b * c)) - ((x * 4.0) * i)) - t_1 t_3 = x * ((18.0 * (t * (y * z))) - (4.0 * i)) t_4 = (((b * c) + t_3) - (4.0 * (t * a))) - t_1 tmp = 0 if t_2 <= -math.inf: tmp = t_4 elif t_2 <= 5e+245: tmp = t_2 elif t_2 <= math.inf: tmp = t_4 else: tmp = t_3 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) t_2 = Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 18.0) * y) * z) * t) - Float64(t * Float64(a * 4.0))) + Float64(b * c)) - Float64(Float64(x * 4.0) * i)) - t_1) t_3 = Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i))) t_4 = Float64(Float64(Float64(Float64(b * c) + t_3) - Float64(4.0 * Float64(t * a))) - t_1) tmp = 0.0 if (t_2 <= Float64(-Inf)) tmp = t_4; elseif (t_2 <= 5e+245) tmp = t_2; elseif (t_2 <= Inf) tmp = t_4; else tmp = t_3; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
t_2 = (((((((x * 18.0) * y) * z) * t) - (t * (a * 4.0))) + (b * c)) - ((x * 4.0) * i)) - t_1;
t_3 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
t_4 = (((b * c) + t_3) - (4.0 * (t * a))) - t_1;
tmp = 0.0;
if (t_2 <= -Inf)
tmp = t_4;
elseif (t_2 <= 5e+245)
tmp = t_2;
elseif (t_2 <= Inf)
tmp = t_4;
else
tmp = t_3;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[(N[(N[(N[(N[(x * 18.0), $MachinePrecision] * y), $MachinePrecision] * z), $MachinePrecision] * t), $MachinePrecision] - N[(t * N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(b * c), $MachinePrecision]), $MachinePrecision] - N[(N[(x * 4.0), $MachinePrecision] * i), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]}, Block[{t$95$3 = N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[(b * c), $MachinePrecision] + t$95$3), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]}, If[LessEqual[t$95$2, (-Infinity)], t$95$4, If[LessEqual[t$95$2, 5e+245], t$95$2, If[LessEqual[t$95$2, Infinity], t$95$4, t$95$3]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
t_2 := \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - t \cdot \left(a \cdot 4\right)\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - t\_1\\
t_3 := x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
t_4 := \left(\left(b \cdot c + t\_3\right) - 4 \cdot \left(t \cdot a\right)\right) - t\_1\\
\mathbf{if}\;t\_2 \leq -\infty:\\
\;\;\;\;t\_4\\
\mathbf{elif}\;t\_2 \leq 5 \cdot 10^{+245}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t\_2 \leq \infty:\\
\;\;\;\;t\_4\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if (-.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k)) < -inf.0 or 5.00000000000000034e245 < (-.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k)) < +inf.0Initial program 91.8%
Taylor expanded in x around 0 97.1%
if -inf.0 < (-.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k)) < 5.00000000000000034e245Initial program 99.5%
if +inf.0 < (-.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k)) Initial program 0.0%
Simplified29.0%
Taylor expanded in x around inf 80.7%
Final simplification95.9%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* t a) -4.0))
(t_2 (- (* b c) (* 4.0 (* x i))))
(t_3 (* (* j 27.0) k)))
(if (<= t_3 -2e+113)
(- (* b c) t_3)
(if (<= t_3 -5e-23)
t_2
(if (<= t_3 -5e-49)
(* x (* 18.0 (* t (* y z))))
(if (<= t_3 2e-253)
t_2
(if (<= t_3 5e-152)
(+ (* b c) t_1)
(if (<= t_3 2e+186) t_2 (+ (* j (* k -27.0)) t_1)))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (t * a) * -4.0;
double t_2 = (b * c) - (4.0 * (x * i));
double t_3 = (j * 27.0) * k;
double tmp;
if (t_3 <= -2e+113) {
tmp = (b * c) - t_3;
} else if (t_3 <= -5e-23) {
tmp = t_2;
} else if (t_3 <= -5e-49) {
tmp = x * (18.0 * (t * (y * z)));
} else if (t_3 <= 2e-253) {
tmp = t_2;
} else if (t_3 <= 5e-152) {
tmp = (b * c) + t_1;
} else if (t_3 <= 2e+186) {
tmp = t_2;
} else {
tmp = (j * (k * -27.0)) + t_1;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_1 = (t * a) * (-4.0d0)
t_2 = (b * c) - (4.0d0 * (x * i))
t_3 = (j * 27.0d0) * k
if (t_3 <= (-2d+113)) then
tmp = (b * c) - t_3
else if (t_3 <= (-5d-23)) then
tmp = t_2
else if (t_3 <= (-5d-49)) then
tmp = x * (18.0d0 * (t * (y * z)))
else if (t_3 <= 2d-253) then
tmp = t_2
else if (t_3 <= 5d-152) then
tmp = (b * c) + t_1
else if (t_3 <= 2d+186) then
tmp = t_2
else
tmp = (j * (k * (-27.0d0))) + t_1
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (t * a) * -4.0;
double t_2 = (b * c) - (4.0 * (x * i));
double t_3 = (j * 27.0) * k;
double tmp;
if (t_3 <= -2e+113) {
tmp = (b * c) - t_3;
} else if (t_3 <= -5e-23) {
tmp = t_2;
} else if (t_3 <= -5e-49) {
tmp = x * (18.0 * (t * (y * z)));
} else if (t_3 <= 2e-253) {
tmp = t_2;
} else if (t_3 <= 5e-152) {
tmp = (b * c) + t_1;
} else if (t_3 <= 2e+186) {
tmp = t_2;
} else {
tmp = (j * (k * -27.0)) + t_1;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (t * a) * -4.0 t_2 = (b * c) - (4.0 * (x * i)) t_3 = (j * 27.0) * k tmp = 0 if t_3 <= -2e+113: tmp = (b * c) - t_3 elif t_3 <= -5e-23: tmp = t_2 elif t_3 <= -5e-49: tmp = x * (18.0 * (t * (y * z))) elif t_3 <= 2e-253: tmp = t_2 elif t_3 <= 5e-152: tmp = (b * c) + t_1 elif t_3 <= 2e+186: tmp = t_2 else: tmp = (j * (k * -27.0)) + t_1 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(t * a) * -4.0) t_2 = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))) t_3 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (t_3 <= -2e+113) tmp = Float64(Float64(b * c) - t_3); elseif (t_3 <= -5e-23) tmp = t_2; elseif (t_3 <= -5e-49) tmp = Float64(x * Float64(18.0 * Float64(t * Float64(y * z)))); elseif (t_3 <= 2e-253) tmp = t_2; elseif (t_3 <= 5e-152) tmp = Float64(Float64(b * c) + t_1); elseif (t_3 <= 2e+186) tmp = t_2; else tmp = Float64(Float64(j * Float64(k * -27.0)) + t_1); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (t * a) * -4.0;
t_2 = (b * c) - (4.0 * (x * i));
t_3 = (j * 27.0) * k;
tmp = 0.0;
if (t_3 <= -2e+113)
tmp = (b * c) - t_3;
elseif (t_3 <= -5e-23)
tmp = t_2;
elseif (t_3 <= -5e-49)
tmp = x * (18.0 * (t * (y * z)));
elseif (t_3 <= 2e-253)
tmp = t_2;
elseif (t_3 <= 5e-152)
tmp = (b * c) + t_1;
elseif (t_3 <= 2e+186)
tmp = t_2;
else
tmp = (j * (k * -27.0)) + t_1;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(t * a), $MachinePrecision] * -4.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[t$95$3, -2e+113], N[(N[(b * c), $MachinePrecision] - t$95$3), $MachinePrecision], If[LessEqual[t$95$3, -5e-23], t$95$2, If[LessEqual[t$95$3, -5e-49], N[(x * N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$3, 2e-253], t$95$2, If[LessEqual[t$95$3, 5e-152], N[(N[(b * c), $MachinePrecision] + t$95$1), $MachinePrecision], If[LessEqual[t$95$3, 2e+186], t$95$2, N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(t \cdot a\right) \cdot -4\\
t_2 := b \cdot c - 4 \cdot \left(x \cdot i\right)\\
t_3 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;t\_3 \leq -2 \cdot 10^{+113}:\\
\;\;\;\;b \cdot c - t\_3\\
\mathbf{elif}\;t\_3 \leq -5 \cdot 10^{-23}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t\_3 \leq -5 \cdot 10^{-49}:\\
\;\;\;\;x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right)\right)\\
\mathbf{elif}\;t\_3 \leq 2 \cdot 10^{-253}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t\_3 \leq 5 \cdot 10^{-152}:\\
\;\;\;\;b \cdot c + t\_1\\
\mathbf{elif}\;t\_3 \leq 2 \cdot 10^{+186}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;j \cdot \left(k \cdot -27\right) + t\_1\\
\end{array}
\end{array}
if (*.f64 (*.f64 j 27) k) < -2e113Initial program 83.2%
Taylor expanded in x around 0 88.8%
Taylor expanded in b around inf 78.1%
if -2e113 < (*.f64 (*.f64 j 27) k) < -5.0000000000000002e-23 or -4.9999999999999999e-49 < (*.f64 (*.f64 j 27) k) < 2.0000000000000001e-253 or 4.9999999999999997e-152 < (*.f64 (*.f64 j 27) k) < 1.99999999999999996e186Initial program 86.8%
Taylor expanded in t around 0 61.3%
Taylor expanded in j around 0 55.8%
if -5.0000000000000002e-23 < (*.f64 (*.f64 j 27) k) < -4.9999999999999999e-49Initial program 56.6%
Simplified67.6%
Taylor expanded in x around inf 67.7%
Taylor expanded in t around inf 67.7%
if 2.0000000000000001e-253 < (*.f64 (*.f64 j 27) k) < 4.9999999999999997e-152Initial program 76.7%
Simplified88.9%
Taylor expanded in x around inf 88.9%
associate-*r*88.9%
*-commutative88.9%
Simplified88.9%
Taylor expanded in x around 0 60.1%
if 1.99999999999999996e186 < (*.f64 (*.f64 j 27) k) Initial program 79.2%
Simplified85.3%
Taylor expanded in a around inf 85.5%
*-commutative85.5%
Simplified85.5%
Final simplification64.9%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (- (* b c) (* 4.0 (* x i)))) (t_2 (* (* j 27.0) k)))
(if (<= t_2 -2e+113)
(- (* b c) t_2)
(if (<= t_2 -5e-23)
t_1
(if (<= t_2 -5e-49)
(* x (* 18.0 (* t (* y z))))
(if (<= t_2 2e-253)
t_1
(if (<= t_2 5e-152)
(+ (* b c) (* (* t a) -4.0))
(if (<= t_2 1e+118) t_1 (+ (* b c) (* j (* k -27.0)))))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) - (4.0 * (x * i));
double t_2 = (j * 27.0) * k;
double tmp;
if (t_2 <= -2e+113) {
tmp = (b * c) - t_2;
} else if (t_2 <= -5e-23) {
tmp = t_1;
} else if (t_2 <= -5e-49) {
tmp = x * (18.0 * (t * (y * z)));
} else if (t_2 <= 2e-253) {
tmp = t_1;
} else if (t_2 <= 5e-152) {
tmp = (b * c) + ((t * a) * -4.0);
} else if (t_2 <= 1e+118) {
tmp = t_1;
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (b * c) - (4.0d0 * (x * i))
t_2 = (j * 27.0d0) * k
if (t_2 <= (-2d+113)) then
tmp = (b * c) - t_2
else if (t_2 <= (-5d-23)) then
tmp = t_1
else if (t_2 <= (-5d-49)) then
tmp = x * (18.0d0 * (t * (y * z)))
else if (t_2 <= 2d-253) then
tmp = t_1
else if (t_2 <= 5d-152) then
tmp = (b * c) + ((t * a) * (-4.0d0))
else if (t_2 <= 1d+118) then
tmp = t_1
else
tmp = (b * c) + (j * (k * (-27.0d0)))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) - (4.0 * (x * i));
double t_2 = (j * 27.0) * k;
double tmp;
if (t_2 <= -2e+113) {
tmp = (b * c) - t_2;
} else if (t_2 <= -5e-23) {
tmp = t_1;
} else if (t_2 <= -5e-49) {
tmp = x * (18.0 * (t * (y * z)));
} else if (t_2 <= 2e-253) {
tmp = t_1;
} else if (t_2 <= 5e-152) {
tmp = (b * c) + ((t * a) * -4.0);
} else if (t_2 <= 1e+118) {
tmp = t_1;
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (b * c) - (4.0 * (x * i)) t_2 = (j * 27.0) * k tmp = 0 if t_2 <= -2e+113: tmp = (b * c) - t_2 elif t_2 <= -5e-23: tmp = t_1 elif t_2 <= -5e-49: tmp = x * (18.0 * (t * (y * z))) elif t_2 <= 2e-253: tmp = t_1 elif t_2 <= 5e-152: tmp = (b * c) + ((t * a) * -4.0) elif t_2 <= 1e+118: tmp = t_1 else: tmp = (b * c) + (j * (k * -27.0)) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))) t_2 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (t_2 <= -2e+113) tmp = Float64(Float64(b * c) - t_2); elseif (t_2 <= -5e-23) tmp = t_1; elseif (t_2 <= -5e-49) tmp = Float64(x * Float64(18.0 * Float64(t * Float64(y * z)))); elseif (t_2 <= 2e-253) tmp = t_1; elseif (t_2 <= 5e-152) tmp = Float64(Float64(b * c) + Float64(Float64(t * a) * -4.0)); elseif (t_2 <= 1e+118) tmp = t_1; else tmp = Float64(Float64(b * c) + Float64(j * Float64(k * -27.0))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (b * c) - (4.0 * (x * i));
t_2 = (j * 27.0) * k;
tmp = 0.0;
if (t_2 <= -2e+113)
tmp = (b * c) - t_2;
elseif (t_2 <= -5e-23)
tmp = t_1;
elseif (t_2 <= -5e-49)
tmp = x * (18.0 * (t * (y * z)));
elseif (t_2 <= 2e-253)
tmp = t_1;
elseif (t_2 <= 5e-152)
tmp = (b * c) + ((t * a) * -4.0);
elseif (t_2 <= 1e+118)
tmp = t_1;
else
tmp = (b * c) + (j * (k * -27.0));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[t$95$2, -2e+113], N[(N[(b * c), $MachinePrecision] - t$95$2), $MachinePrecision], If[LessEqual[t$95$2, -5e-23], t$95$1, If[LessEqual[t$95$2, -5e-49], N[(x * N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$2, 2e-253], t$95$1, If[LessEqual[t$95$2, 5e-152], N[(N[(b * c), $MachinePrecision] + N[(N[(t * a), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$2, 1e+118], t$95$1, N[(N[(b * c), $MachinePrecision] + N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := b \cdot c - 4 \cdot \left(x \cdot i\right)\\
t_2 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;t\_2 \leq -2 \cdot 10^{+113}:\\
\;\;\;\;b \cdot c - t\_2\\
\mathbf{elif}\;t\_2 \leq -5 \cdot 10^{-23}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_2 \leq -5 \cdot 10^{-49}:\\
\;\;\;\;x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right)\right)\\
\mathbf{elif}\;t\_2 \leq 2 \cdot 10^{-253}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_2 \leq 5 \cdot 10^{-152}:\\
\;\;\;\;b \cdot c + \left(t \cdot a\right) \cdot -4\\
\mathbf{elif}\;t\_2 \leq 10^{+118}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;b \cdot c + j \cdot \left(k \cdot -27\right)\\
\end{array}
\end{array}
if (*.f64 (*.f64 j 27) k) < -2e113Initial program 83.2%
Taylor expanded in x around 0 88.8%
Taylor expanded in b around inf 78.1%
if -2e113 < (*.f64 (*.f64 j 27) k) < -5.0000000000000002e-23 or -4.9999999999999999e-49 < (*.f64 (*.f64 j 27) k) < 2.0000000000000001e-253 or 4.9999999999999997e-152 < (*.f64 (*.f64 j 27) k) < 9.99999999999999967e117Initial program 86.1%
Taylor expanded in t around 0 60.0%
Taylor expanded in j around 0 56.0%
if -5.0000000000000002e-23 < (*.f64 (*.f64 j 27) k) < -4.9999999999999999e-49Initial program 56.6%
Simplified67.6%
Taylor expanded in x around inf 67.7%
Taylor expanded in t around inf 67.7%
if 2.0000000000000001e-253 < (*.f64 (*.f64 j 27) k) < 4.9999999999999997e-152Initial program 76.7%
Simplified88.9%
Taylor expanded in x around inf 88.9%
associate-*r*88.9%
*-commutative88.9%
Simplified88.9%
Taylor expanded in x around 0 60.1%
if 9.99999999999999967e117 < (*.f64 (*.f64 j 27) k) Initial program 82.7%
Simplified87.7%
Taylor expanded in b around inf 75.8%
Final simplification64.3%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(if (<= (* b c) -5.5e+104)
(* b c)
(if (<= (* b c) -1.35e-92)
(* x (* 18.0 (* z (* y t))))
(if (<= (* b c) 3.5e-302)
(* k (* j -27.0))
(if (<= (* b c) 2e-170)
(* (* x i) -4.0)
(if (<= (* b c) 7e-79)
(* -27.0 (* j k))
(if (<= (* b c) 1.35e+40)
(* t (* a -4.0))
(if (<= (* b c) 1.48e+181)
(* 18.0 (* t (* x (* y z))))
(* b c)))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -5.5e+104) {
tmp = b * c;
} else if ((b * c) <= -1.35e-92) {
tmp = x * (18.0 * (z * (y * t)));
} else if ((b * c) <= 3.5e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 2e-170) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 7e-79) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.35e+40) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 1.48e+181) {
tmp = 18.0 * (t * (x * (y * z)));
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((b * c) <= (-5.5d+104)) then
tmp = b * c
else if ((b * c) <= (-1.35d-92)) then
tmp = x * (18.0d0 * (z * (y * t)))
else if ((b * c) <= 3.5d-302) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 2d-170) then
tmp = (x * i) * (-4.0d0)
else if ((b * c) <= 7d-79) then
tmp = (-27.0d0) * (j * k)
else if ((b * c) <= 1.35d+40) then
tmp = t * (a * (-4.0d0))
else if ((b * c) <= 1.48d+181) then
tmp = 18.0d0 * (t * (x * (y * z)))
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -5.5e+104) {
tmp = b * c;
} else if ((b * c) <= -1.35e-92) {
tmp = x * (18.0 * (z * (y * t)));
} else if ((b * c) <= 3.5e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 2e-170) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 7e-79) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.35e+40) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 1.48e+181) {
tmp = 18.0 * (t * (x * (y * z)));
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (b * c) <= -5.5e+104: tmp = b * c elif (b * c) <= -1.35e-92: tmp = x * (18.0 * (z * (y * t))) elif (b * c) <= 3.5e-302: tmp = k * (j * -27.0) elif (b * c) <= 2e-170: tmp = (x * i) * -4.0 elif (b * c) <= 7e-79: tmp = -27.0 * (j * k) elif (b * c) <= 1.35e+40: tmp = t * (a * -4.0) elif (b * c) <= 1.48e+181: tmp = 18.0 * (t * (x * (y * z))) else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if (Float64(b * c) <= -5.5e+104) tmp = Float64(b * c); elseif (Float64(b * c) <= -1.35e-92) tmp = Float64(x * Float64(18.0 * Float64(z * Float64(y * t)))); elseif (Float64(b * c) <= 3.5e-302) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 2e-170) tmp = Float64(Float64(x * i) * -4.0); elseif (Float64(b * c) <= 7e-79) tmp = Float64(-27.0 * Float64(j * k)); elseif (Float64(b * c) <= 1.35e+40) tmp = Float64(t * Float64(a * -4.0)); elseif (Float64(b * c) <= 1.48e+181) tmp = Float64(18.0 * Float64(t * Float64(x * Float64(y * z)))); else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((b * c) <= -5.5e+104)
tmp = b * c;
elseif ((b * c) <= -1.35e-92)
tmp = x * (18.0 * (z * (y * t)));
elseif ((b * c) <= 3.5e-302)
tmp = k * (j * -27.0);
elseif ((b * c) <= 2e-170)
tmp = (x * i) * -4.0;
elseif ((b * c) <= 7e-79)
tmp = -27.0 * (j * k);
elseif ((b * c) <= 1.35e+40)
tmp = t * (a * -4.0);
elseif ((b * c) <= 1.48e+181)
tmp = 18.0 * (t * (x * (y * z)));
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[LessEqual[N[(b * c), $MachinePrecision], -5.5e+104], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], -1.35e-92], N[(x * N[(18.0 * N[(z * N[(y * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 3.5e-302], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 2e-170], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 7e-79], N[(-27.0 * N[(j * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.35e+40], N[(t * N[(a * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.48e+181], N[(18.0 * N[(t * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * c), $MachinePrecision]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;b \cdot c \leq -5.5 \cdot 10^{+104}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq -1.35 \cdot 10^{-92}:\\
\;\;\;\;x \cdot \left(18 \cdot \left(z \cdot \left(y \cdot t\right)\right)\right)\\
\mathbf{elif}\;b \cdot c \leq 3.5 \cdot 10^{-302}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 2 \cdot 10^{-170}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{elif}\;b \cdot c \leq 7 \cdot 10^{-79}:\\
\;\;\;\;-27 \cdot \left(j \cdot k\right)\\
\mathbf{elif}\;b \cdot c \leq 1.35 \cdot 10^{+40}:\\
\;\;\;\;t \cdot \left(a \cdot -4\right)\\
\mathbf{elif}\;b \cdot c \leq 1.48 \cdot 10^{+181}:\\
\;\;\;\;18 \cdot \left(t \cdot \left(x \cdot \left(y \cdot z\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -5.50000000000000017e104 or 1.4800000000000001e181 < (*.f64 b c) Initial program 83.2%
Taylor expanded in x around 0 87.7%
Taylor expanded in a around 0 83.0%
Taylor expanded in b around inf 60.4%
if -5.50000000000000017e104 < (*.f64 b c) < -1.34999999999999998e-92Initial program 87.5%
Simplified91.0%
Taylor expanded in x around inf 61.6%
Taylor expanded in t around inf 42.6%
associate-*r*42.6%
Simplified42.6%
if -1.34999999999999998e-92 < (*.f64 b c) < 3.5000000000000001e-302Initial program 87.2%
Taylor expanded in x around 0 86.4%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 46.4%
associate-*r*46.4%
Simplified46.4%
if 3.5000000000000001e-302 < (*.f64 b c) < 1.99999999999999997e-170Initial program 79.9%
Simplified83.9%
Taylor expanded in x around inf 72.8%
Taylor expanded in t around 0 49.5%
if 1.99999999999999997e-170 < (*.f64 b c) < 7.00000000000000059e-79Initial program 99.4%
Simplified99.6%
Taylor expanded in j around inf 51.3%
if 7.00000000000000059e-79 < (*.f64 b c) < 1.35000000000000005e40Initial program 78.0%
Taylor expanded in x around 0 86.3%
Taylor expanded in t around 0 72.2%
*-commutative72.2%
*-commutative72.2%
associate-*r*72.2%
*-commutative72.2%
Simplified72.2%
Taylor expanded in a around inf 41.2%
associate-*r*41.2%
Simplified41.2%
if 1.35000000000000005e40 < (*.f64 b c) < 1.4800000000000001e181Initial program 71.2%
Simplified89.4%
Taylor expanded in x around inf 60.3%
Taylor expanded in t around inf 42.1%
Final simplification50.0%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (+ (* b c) (* (* t a) -4.0))) (t_2 (* (* y (* x z)) (* 18.0 t))))
(if (<= (* b c) -3.8e+73)
t_1
(if (<= (* b c) -1.6e-91)
t_2
(if (<= (* b c) 5.5e-302)
(* k (* j -27.0))
(if (<= (* b c) 4.5e-78)
(* (* x i) -4.0)
(if (or (<= (* b c) 1.55e+46) (not (<= (* b c) 7.6e+168)))
t_1
t_2)))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) + ((t * a) * -4.0);
double t_2 = (y * (x * z)) * (18.0 * t);
double tmp;
if ((b * c) <= -3.8e+73) {
tmp = t_1;
} else if ((b * c) <= -1.6e-91) {
tmp = t_2;
} else if ((b * c) <= 5.5e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 4.5e-78) {
tmp = (x * i) * -4.0;
} else if (((b * c) <= 1.55e+46) || !((b * c) <= 7.6e+168)) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (b * c) + ((t * a) * (-4.0d0))
t_2 = (y * (x * z)) * (18.0d0 * t)
if ((b * c) <= (-3.8d+73)) then
tmp = t_1
else if ((b * c) <= (-1.6d-91)) then
tmp = t_2
else if ((b * c) <= 5.5d-302) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 4.5d-78) then
tmp = (x * i) * (-4.0d0)
else if (((b * c) <= 1.55d+46) .or. (.not. ((b * c) <= 7.6d+168))) then
tmp = t_1
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) + ((t * a) * -4.0);
double t_2 = (y * (x * z)) * (18.0 * t);
double tmp;
if ((b * c) <= -3.8e+73) {
tmp = t_1;
} else if ((b * c) <= -1.6e-91) {
tmp = t_2;
} else if ((b * c) <= 5.5e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 4.5e-78) {
tmp = (x * i) * -4.0;
} else if (((b * c) <= 1.55e+46) || !((b * c) <= 7.6e+168)) {
tmp = t_1;
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (b * c) + ((t * a) * -4.0) t_2 = (y * (x * z)) * (18.0 * t) tmp = 0 if (b * c) <= -3.8e+73: tmp = t_1 elif (b * c) <= -1.6e-91: tmp = t_2 elif (b * c) <= 5.5e-302: tmp = k * (j * -27.0) elif (b * c) <= 4.5e-78: tmp = (x * i) * -4.0 elif ((b * c) <= 1.55e+46) or not ((b * c) <= 7.6e+168): tmp = t_1 else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(b * c) + Float64(Float64(t * a) * -4.0)) t_2 = Float64(Float64(y * Float64(x * z)) * Float64(18.0 * t)) tmp = 0.0 if (Float64(b * c) <= -3.8e+73) tmp = t_1; elseif (Float64(b * c) <= -1.6e-91) tmp = t_2; elseif (Float64(b * c) <= 5.5e-302) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 4.5e-78) tmp = Float64(Float64(x * i) * -4.0); elseif ((Float64(b * c) <= 1.55e+46) || !(Float64(b * c) <= 7.6e+168)) tmp = t_1; else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (b * c) + ((t * a) * -4.0);
t_2 = (y * (x * z)) * (18.0 * t);
tmp = 0.0;
if ((b * c) <= -3.8e+73)
tmp = t_1;
elseif ((b * c) <= -1.6e-91)
tmp = t_2;
elseif ((b * c) <= 5.5e-302)
tmp = k * (j * -27.0);
elseif ((b * c) <= 4.5e-78)
tmp = (x * i) * -4.0;
elseif (((b * c) <= 1.55e+46) || ~(((b * c) <= 7.6e+168)))
tmp = t_1;
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(b * c), $MachinePrecision] + N[(N[(t * a), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(y * N[(x * z), $MachinePrecision]), $MachinePrecision] * N[(18.0 * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(b * c), $MachinePrecision], -3.8e+73], t$95$1, If[LessEqual[N[(b * c), $MachinePrecision], -1.6e-91], t$95$2, If[LessEqual[N[(b * c), $MachinePrecision], 5.5e-302], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 4.5e-78], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], If[Or[LessEqual[N[(b * c), $MachinePrecision], 1.55e+46], N[Not[LessEqual[N[(b * c), $MachinePrecision], 7.6e+168]], $MachinePrecision]], t$95$1, t$95$2]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := b \cdot c + \left(t \cdot a\right) \cdot -4\\
t_2 := \left(y \cdot \left(x \cdot z\right)\right) \cdot \left(18 \cdot t\right)\\
\mathbf{if}\;b \cdot c \leq -3.8 \cdot 10^{+73}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \cdot c \leq -1.6 \cdot 10^{-91}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;b \cdot c \leq 5.5 \cdot 10^{-302}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 4.5 \cdot 10^{-78}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{elif}\;b \cdot c \leq 1.55 \cdot 10^{+46} \lor \neg \left(b \cdot c \leq 7.6 \cdot 10^{+168}\right):\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if (*.f64 b c) < -3.80000000000000022e73 or 4.5e-78 < (*.f64 b c) < 1.54999999999999988e46 or 7.6000000000000005e168 < (*.f64 b c) Initial program 82.9%
Simplified86.4%
Taylor expanded in x around inf 79.6%
associate-*r*79.6%
*-commutative79.6%
Simplified79.6%
Taylor expanded in x around 0 61.5%
if -3.80000000000000022e73 < (*.f64 b c) < -1.59999999999999998e-91 or 1.54999999999999988e46 < (*.f64 b c) < 7.6000000000000005e168Initial program 77.8%
Simplified89.2%
Taylor expanded in x around inf 75.0%
associate-*r*75.0%
*-commutative75.0%
Simplified75.0%
Taylor expanded in y around inf 46.9%
*-commutative46.9%
*-commutative46.9%
associate-*l*47.0%
*-commutative47.0%
associate-*l*48.7%
Simplified48.7%
if -1.59999999999999998e-91 < (*.f64 b c) < 5.5000000000000001e-302Initial program 87.2%
Taylor expanded in x around 0 86.4%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 46.4%
associate-*r*46.4%
Simplified46.4%
if 5.5000000000000001e-302 < (*.f64 b c) < 4.5e-78Initial program 86.6%
Simplified89.3%
Taylor expanded in x around inf 64.1%
Taylor expanded in t around 0 43.6%
Final simplification52.9%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(if (<= (* b c) -9.5e+152)
(* b c)
(if (<= (* b c) 1.9e-302)
(* k (* j -27.0))
(if (<= (* b c) 5.6e-171)
(* (* x i) -4.0)
(if (<= (* b c) 6.5e-79)
(* -27.0 (* j k))
(if (<= (* b c) 1.3e+40)
(* t (* a -4.0))
(if (<= (* b c) 3.7e+185)
(* 18.0 (* t (* x (* y z))))
(* b c))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -9.5e+152) {
tmp = b * c;
} else if ((b * c) <= 1.9e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 5.6e-171) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 6.5e-79) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.3e+40) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 3.7e+185) {
tmp = 18.0 * (t * (x * (y * z)));
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((b * c) <= (-9.5d+152)) then
tmp = b * c
else if ((b * c) <= 1.9d-302) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 5.6d-171) then
tmp = (x * i) * (-4.0d0)
else if ((b * c) <= 6.5d-79) then
tmp = (-27.0d0) * (j * k)
else if ((b * c) <= 1.3d+40) then
tmp = t * (a * (-4.0d0))
else if ((b * c) <= 3.7d+185) then
tmp = 18.0d0 * (t * (x * (y * z)))
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -9.5e+152) {
tmp = b * c;
} else if ((b * c) <= 1.9e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 5.6e-171) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 6.5e-79) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.3e+40) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 3.7e+185) {
tmp = 18.0 * (t * (x * (y * z)));
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (b * c) <= -9.5e+152: tmp = b * c elif (b * c) <= 1.9e-302: tmp = k * (j * -27.0) elif (b * c) <= 5.6e-171: tmp = (x * i) * -4.0 elif (b * c) <= 6.5e-79: tmp = -27.0 * (j * k) elif (b * c) <= 1.3e+40: tmp = t * (a * -4.0) elif (b * c) <= 3.7e+185: tmp = 18.0 * (t * (x * (y * z))) else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if (Float64(b * c) <= -9.5e+152) tmp = Float64(b * c); elseif (Float64(b * c) <= 1.9e-302) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 5.6e-171) tmp = Float64(Float64(x * i) * -4.0); elseif (Float64(b * c) <= 6.5e-79) tmp = Float64(-27.0 * Float64(j * k)); elseif (Float64(b * c) <= 1.3e+40) tmp = Float64(t * Float64(a * -4.0)); elseif (Float64(b * c) <= 3.7e+185) tmp = Float64(18.0 * Float64(t * Float64(x * Float64(y * z)))); else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((b * c) <= -9.5e+152)
tmp = b * c;
elseif ((b * c) <= 1.9e-302)
tmp = k * (j * -27.0);
elseif ((b * c) <= 5.6e-171)
tmp = (x * i) * -4.0;
elseif ((b * c) <= 6.5e-79)
tmp = -27.0 * (j * k);
elseif ((b * c) <= 1.3e+40)
tmp = t * (a * -4.0);
elseif ((b * c) <= 3.7e+185)
tmp = 18.0 * (t * (x * (y * z)));
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[LessEqual[N[(b * c), $MachinePrecision], -9.5e+152], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.9e-302], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 5.6e-171], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 6.5e-79], N[(-27.0 * N[(j * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.3e+40], N[(t * N[(a * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 3.7e+185], N[(18.0 * N[(t * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * c), $MachinePrecision]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;b \cdot c \leq -9.5 \cdot 10^{+152}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq 1.9 \cdot 10^{-302}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 5.6 \cdot 10^{-171}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{elif}\;b \cdot c \leq 6.5 \cdot 10^{-79}:\\
\;\;\;\;-27 \cdot \left(j \cdot k\right)\\
\mathbf{elif}\;b \cdot c \leq 1.3 \cdot 10^{+40}:\\
\;\;\;\;t \cdot \left(a \cdot -4\right)\\
\mathbf{elif}\;b \cdot c \leq 3.7 \cdot 10^{+185}:\\
\;\;\;\;18 \cdot \left(t \cdot \left(x \cdot \left(y \cdot z\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -9.49999999999999916e152 or 3.6999999999999997e185 < (*.f64 b c) Initial program 81.9%
Taylor expanded in x around 0 86.8%
Taylor expanded in a around 0 83.0%
Taylor expanded in b around inf 64.9%
if -9.49999999999999916e152 < (*.f64 b c) < 1.9e-302Initial program 88.1%
Taylor expanded in x around 0 87.8%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 38.4%
associate-*r*38.4%
Simplified38.4%
if 1.9e-302 < (*.f64 b c) < 5.60000000000000046e-171Initial program 79.9%
Simplified83.9%
Taylor expanded in x around inf 72.8%
Taylor expanded in t around 0 49.5%
if 5.60000000000000046e-171 < (*.f64 b c) < 6.5000000000000003e-79Initial program 99.4%
Simplified99.6%
Taylor expanded in j around inf 51.3%
if 6.5000000000000003e-79 < (*.f64 b c) < 1.3e40Initial program 78.0%
Taylor expanded in x around 0 86.3%
Taylor expanded in t around 0 72.2%
*-commutative72.2%
*-commutative72.2%
associate-*r*72.2%
*-commutative72.2%
Simplified72.2%
Taylor expanded in a around inf 41.2%
associate-*r*41.2%
Simplified41.2%
if 1.3e40 < (*.f64 b c) < 3.6999999999999997e185Initial program 71.2%
Simplified89.4%
Taylor expanded in x around inf 60.3%
Taylor expanded in t around inf 42.1%
Final simplification48.6%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* y (* x z)) (* 18.0 t))))
(if (<= (* b c) -1.75e+205)
(* b c)
(if (<= (* b c) -7.8e-87)
t_1
(if (<= (* b c) 3.2e-302)
(* k (* j -27.0))
(if (<= (* b c) 3.8e-78)
(* (* x i) -4.0)
(if (<= (* b c) 1.6e+32)
(* t (* a -4.0))
(if (<= (* b c) 7.5e+181) t_1 (* b c)))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (y * (x * z)) * (18.0 * t);
double tmp;
if ((b * c) <= -1.75e+205) {
tmp = b * c;
} else if ((b * c) <= -7.8e-87) {
tmp = t_1;
} else if ((b * c) <= 3.2e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 3.8e-78) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 1.6e+32) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 7.5e+181) {
tmp = t_1;
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (y * (x * z)) * (18.0d0 * t)
if ((b * c) <= (-1.75d+205)) then
tmp = b * c
else if ((b * c) <= (-7.8d-87)) then
tmp = t_1
else if ((b * c) <= 3.2d-302) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 3.8d-78) then
tmp = (x * i) * (-4.0d0)
else if ((b * c) <= 1.6d+32) then
tmp = t * (a * (-4.0d0))
else if ((b * c) <= 7.5d+181) then
tmp = t_1
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (y * (x * z)) * (18.0 * t);
double tmp;
if ((b * c) <= -1.75e+205) {
tmp = b * c;
} else if ((b * c) <= -7.8e-87) {
tmp = t_1;
} else if ((b * c) <= 3.2e-302) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 3.8e-78) {
tmp = (x * i) * -4.0;
} else if ((b * c) <= 1.6e+32) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 7.5e+181) {
tmp = t_1;
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (y * (x * z)) * (18.0 * t) tmp = 0 if (b * c) <= -1.75e+205: tmp = b * c elif (b * c) <= -7.8e-87: tmp = t_1 elif (b * c) <= 3.2e-302: tmp = k * (j * -27.0) elif (b * c) <= 3.8e-78: tmp = (x * i) * -4.0 elif (b * c) <= 1.6e+32: tmp = t * (a * -4.0) elif (b * c) <= 7.5e+181: tmp = t_1 else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(y * Float64(x * z)) * Float64(18.0 * t)) tmp = 0.0 if (Float64(b * c) <= -1.75e+205) tmp = Float64(b * c); elseif (Float64(b * c) <= -7.8e-87) tmp = t_1; elseif (Float64(b * c) <= 3.2e-302) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 3.8e-78) tmp = Float64(Float64(x * i) * -4.0); elseif (Float64(b * c) <= 1.6e+32) tmp = Float64(t * Float64(a * -4.0)); elseif (Float64(b * c) <= 7.5e+181) tmp = t_1; else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (y * (x * z)) * (18.0 * t);
tmp = 0.0;
if ((b * c) <= -1.75e+205)
tmp = b * c;
elseif ((b * c) <= -7.8e-87)
tmp = t_1;
elseif ((b * c) <= 3.2e-302)
tmp = k * (j * -27.0);
elseif ((b * c) <= 3.8e-78)
tmp = (x * i) * -4.0;
elseif ((b * c) <= 1.6e+32)
tmp = t * (a * -4.0);
elseif ((b * c) <= 7.5e+181)
tmp = t_1;
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(y * N[(x * z), $MachinePrecision]), $MachinePrecision] * N[(18.0 * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(b * c), $MachinePrecision], -1.75e+205], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], -7.8e-87], t$95$1, If[LessEqual[N[(b * c), $MachinePrecision], 3.2e-302], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 3.8e-78], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.6e+32], N[(t * N[(a * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 7.5e+181], t$95$1, N[(b * c), $MachinePrecision]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(y \cdot \left(x \cdot z\right)\right) \cdot \left(18 \cdot t\right)\\
\mathbf{if}\;b \cdot c \leq -1.75 \cdot 10^{+205}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq -7.8 \cdot 10^{-87}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \cdot c \leq 3.2 \cdot 10^{-302}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 3.8 \cdot 10^{-78}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{elif}\;b \cdot c \leq 1.6 \cdot 10^{+32}:\\
\;\;\;\;t \cdot \left(a \cdot -4\right)\\
\mathbf{elif}\;b \cdot c \leq 7.5 \cdot 10^{+181}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -1.7499999999999999e205 or 7.5000000000000005e181 < (*.f64 b c) Initial program 83.5%
Taylor expanded in x around 0 86.2%
Taylor expanded in a around 0 83.3%
Taylor expanded in b around inf 70.1%
if -1.7499999999999999e205 < (*.f64 b c) < -7.7999999999999996e-87 or 1.5999999999999999e32 < (*.f64 b c) < 7.5000000000000005e181Initial program 80.7%
Simplified89.9%
Taylor expanded in x around inf 74.1%
associate-*r*74.1%
*-commutative74.1%
Simplified74.1%
Taylor expanded in y around inf 36.8%
*-commutative36.8%
*-commutative36.8%
associate-*l*36.8%
*-commutative36.8%
associate-*l*38.0%
Simplified38.0%
if -7.7999999999999996e-87 < (*.f64 b c) < 3.19999999999999978e-302Initial program 87.2%
Taylor expanded in x around 0 86.4%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 46.4%
associate-*r*46.4%
Simplified46.4%
if 3.19999999999999978e-302 < (*.f64 b c) < 3.7999999999999999e-78Initial program 86.6%
Simplified89.3%
Taylor expanded in x around inf 64.1%
Taylor expanded in t around 0 43.6%
if 3.7999999999999999e-78 < (*.f64 b c) < 1.5999999999999999e32Initial program 75.8%
Taylor expanded in x around 0 84.9%
Taylor expanded in t around 0 69.4%
*-commutative69.4%
*-commutative69.4%
associate-*r*69.4%
*-commutative69.4%
Simplified69.4%
Taylor expanded in a around inf 45.1%
associate-*r*45.1%
Simplified45.1%
Final simplification49.4%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* 4.0 (* t a))) (t_2 (* x (- (* 18.0 (* t (* y z))) (* 4.0 i)))))
(if (<= x -3.8e+103)
t_2
(if (<= x -1.8e+28)
(- (+ (* b c) (* (* x i) -4.0)) t_1)
(if (<= x -5.1e-12)
(+ (* j (* k -27.0)) (* x (* (* y t) (* 18.0 z))))
(if (or (<= x 450000000.0)
(and (not (<= x 2.5e+162)) (<= x 1.8e+216)))
(- (- (* b c) t_1) (* (* j 27.0) k))
t_2))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = 4.0 * (t * a);
double t_2 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double tmp;
if (x <= -3.8e+103) {
tmp = t_2;
} else if (x <= -1.8e+28) {
tmp = ((b * c) + ((x * i) * -4.0)) - t_1;
} else if (x <= -5.1e-12) {
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
} else if ((x <= 450000000.0) || (!(x <= 2.5e+162) && (x <= 1.8e+216))) {
tmp = ((b * c) - t_1) - ((j * 27.0) * k);
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = 4.0d0 * (t * a)
t_2 = x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i))
if (x <= (-3.8d+103)) then
tmp = t_2
else if (x <= (-1.8d+28)) then
tmp = ((b * c) + ((x * i) * (-4.0d0))) - t_1
else if (x <= (-5.1d-12)) then
tmp = (j * (k * (-27.0d0))) + (x * ((y * t) * (18.0d0 * z)))
else if ((x <= 450000000.0d0) .or. (.not. (x <= 2.5d+162)) .and. (x <= 1.8d+216)) then
tmp = ((b * c) - t_1) - ((j * 27.0d0) * k)
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = 4.0 * (t * a);
double t_2 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double tmp;
if (x <= -3.8e+103) {
tmp = t_2;
} else if (x <= -1.8e+28) {
tmp = ((b * c) + ((x * i) * -4.0)) - t_1;
} else if (x <= -5.1e-12) {
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
} else if ((x <= 450000000.0) || (!(x <= 2.5e+162) && (x <= 1.8e+216))) {
tmp = ((b * c) - t_1) - ((j * 27.0) * k);
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = 4.0 * (t * a) t_2 = x * ((18.0 * (t * (y * z))) - (4.0 * i)) tmp = 0 if x <= -3.8e+103: tmp = t_2 elif x <= -1.8e+28: tmp = ((b * c) + ((x * i) * -4.0)) - t_1 elif x <= -5.1e-12: tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z))) elif (x <= 450000000.0) or (not (x <= 2.5e+162) and (x <= 1.8e+216)): tmp = ((b * c) - t_1) - ((j * 27.0) * k) else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(4.0 * Float64(t * a)) t_2 = Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i))) tmp = 0.0 if (x <= -3.8e+103) tmp = t_2; elseif (x <= -1.8e+28) tmp = Float64(Float64(Float64(b * c) + Float64(Float64(x * i) * -4.0)) - t_1); elseif (x <= -5.1e-12) tmp = Float64(Float64(j * Float64(k * -27.0)) + Float64(x * Float64(Float64(y * t) * Float64(18.0 * z)))); elseif ((x <= 450000000.0) || (!(x <= 2.5e+162) && (x <= 1.8e+216))) tmp = Float64(Float64(Float64(b * c) - t_1) - Float64(Float64(j * 27.0) * k)); else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = 4.0 * (t * a);
t_2 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
tmp = 0.0;
if (x <= -3.8e+103)
tmp = t_2;
elseif (x <= -1.8e+28)
tmp = ((b * c) + ((x * i) * -4.0)) - t_1;
elseif (x <= -5.1e-12)
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
elseif ((x <= 450000000.0) || (~((x <= 2.5e+162)) && (x <= 1.8e+216)))
tmp = ((b * c) - t_1) - ((j * 27.0) * k);
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -3.8e+103], t$95$2, If[LessEqual[x, -1.8e+28], N[(N[(N[(b * c), $MachinePrecision] + N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, -5.1e-12], N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(x * N[(N[(y * t), $MachinePrecision] * N[(18.0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[x, 450000000.0], And[N[Not[LessEqual[x, 2.5e+162]], $MachinePrecision], LessEqual[x, 1.8e+216]]], N[(N[(N[(b * c), $MachinePrecision] - t$95$1), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := 4 \cdot \left(t \cdot a\right)\\
t_2 := x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{if}\;x \leq -3.8 \cdot 10^{+103}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq -1.8 \cdot 10^{+28}:\\
\;\;\;\;\left(b \cdot c + \left(x \cdot i\right) \cdot -4\right) - t\_1\\
\mathbf{elif}\;x \leq -5.1 \cdot 10^{-12}:\\
\;\;\;\;j \cdot \left(k \cdot -27\right) + x \cdot \left(\left(y \cdot t\right) \cdot \left(18 \cdot z\right)\right)\\
\mathbf{elif}\;x \leq 450000000 \lor \neg \left(x \leq 2.5 \cdot 10^{+162}\right) \land x \leq 1.8 \cdot 10^{+216}:\\
\;\;\;\;\left(b \cdot c - t\_1\right) - \left(j \cdot 27\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -3.7999999999999997e103 or 4.5e8 < x < 2.4999999999999998e162 or 1.8000000000000001e216 < x Initial program 71.3%
Simplified79.2%
Taylor expanded in x around inf 78.7%
if -3.7999999999999997e103 < x < -1.8e28Initial program 76.9%
Taylor expanded in x around 0 76.9%
Taylor expanded in t around 0 92.3%
*-commutative92.3%
*-commutative92.3%
associate-*r*92.3%
*-commutative92.3%
Simplified92.3%
Taylor expanded in j around 0 84.9%
if -1.8e28 < x < -5.09999999999999968e-12Initial program 91.2%
Simplified91.3%
Taylor expanded in y around inf 83.3%
*-commutative83.3%
*-commutative83.3%
associate-*l*83.3%
*-commutative83.3%
associate-*r*83.3%
associate-*r*83.3%
associate-*l*83.3%
Simplified83.3%
if -5.09999999999999968e-12 < x < 4.5e8 or 2.4999999999999998e162 < x < 1.8000000000000001e216Initial program 92.2%
Taylor expanded in x around 0 78.4%
Final simplification79.1%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (+ (* j (* k -27.0)) (* x (* i -4.0))))
(t_2 (* t (- (* 18.0 (* x (* y z))) (* a 4.0)))))
(if (<= t -7e-15)
t_2
(if (<= t -5.4e-44)
t_1
(if (<= t -2.15e-75)
t_2
(if (<= t -8.5e-189)
(- (* b c) (* 4.0 (* x i)))
(if (<= t 2.05e-202)
t_1
(if (<= t 1.8e+77) (- (* b c) (* (* j 27.0) k)) t_2))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * (k * -27.0)) + (x * (i * -4.0));
double t_2 = t * ((18.0 * (x * (y * z))) - (a * 4.0));
double tmp;
if (t <= -7e-15) {
tmp = t_2;
} else if (t <= -5.4e-44) {
tmp = t_1;
} else if (t <= -2.15e-75) {
tmp = t_2;
} else if (t <= -8.5e-189) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 2.05e-202) {
tmp = t_1;
} else if (t <= 1.8e+77) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (j * (k * (-27.0d0))) + (x * (i * (-4.0d0)))
t_2 = t * ((18.0d0 * (x * (y * z))) - (a * 4.0d0))
if (t <= (-7d-15)) then
tmp = t_2
else if (t <= (-5.4d-44)) then
tmp = t_1
else if (t <= (-2.15d-75)) then
tmp = t_2
else if (t <= (-8.5d-189)) then
tmp = (b * c) - (4.0d0 * (x * i))
else if (t <= 2.05d-202) then
tmp = t_1
else if (t <= 1.8d+77) then
tmp = (b * c) - ((j * 27.0d0) * k)
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * (k * -27.0)) + (x * (i * -4.0));
double t_2 = t * ((18.0 * (x * (y * z))) - (a * 4.0));
double tmp;
if (t <= -7e-15) {
tmp = t_2;
} else if (t <= -5.4e-44) {
tmp = t_1;
} else if (t <= -2.15e-75) {
tmp = t_2;
} else if (t <= -8.5e-189) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 2.05e-202) {
tmp = t_1;
} else if (t <= 1.8e+77) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * (k * -27.0)) + (x * (i * -4.0)) t_2 = t * ((18.0 * (x * (y * z))) - (a * 4.0)) tmp = 0 if t <= -7e-15: tmp = t_2 elif t <= -5.4e-44: tmp = t_1 elif t <= -2.15e-75: tmp = t_2 elif t <= -8.5e-189: tmp = (b * c) - (4.0 * (x * i)) elif t <= 2.05e-202: tmp = t_1 elif t <= 1.8e+77: tmp = (b * c) - ((j * 27.0) * k) else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * Float64(k * -27.0)) + Float64(x * Float64(i * -4.0))) t_2 = Float64(t * Float64(Float64(18.0 * Float64(x * Float64(y * z))) - Float64(a * 4.0))) tmp = 0.0 if (t <= -7e-15) tmp = t_2; elseif (t <= -5.4e-44) tmp = t_1; elseif (t <= -2.15e-75) tmp = t_2; elseif (t <= -8.5e-189) tmp = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))); elseif (t <= 2.05e-202) tmp = t_1; elseif (t <= 1.8e+77) tmp = Float64(Float64(b * c) - Float64(Float64(j * 27.0) * k)); else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * (k * -27.0)) + (x * (i * -4.0));
t_2 = t * ((18.0 * (x * (y * z))) - (a * 4.0));
tmp = 0.0;
if (t <= -7e-15)
tmp = t_2;
elseif (t <= -5.4e-44)
tmp = t_1;
elseif (t <= -2.15e-75)
tmp = t_2;
elseif (t <= -8.5e-189)
tmp = (b * c) - (4.0 * (x * i));
elseif (t <= 2.05e-202)
tmp = t_1;
elseif (t <= 1.8e+77)
tmp = (b * c) - ((j * 27.0) * k);
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(x * N[(i * -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[(N[(18.0 * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -7e-15], t$95$2, If[LessEqual[t, -5.4e-44], t$95$1, If[LessEqual[t, -2.15e-75], t$95$2, If[LessEqual[t, -8.5e-189], N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.05e-202], t$95$1, If[LessEqual[t, 1.8e+77], N[(N[(b * c), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := j \cdot \left(k \cdot -27\right) + x \cdot \left(i \cdot -4\right)\\
t_2 := t \cdot \left(18 \cdot \left(x \cdot \left(y \cdot z\right)\right) - a \cdot 4\right)\\
\mathbf{if}\;t \leq -7 \cdot 10^{-15}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -5.4 \cdot 10^{-44}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq -2.15 \cdot 10^{-75}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -8.5 \cdot 10^{-189}:\\
\;\;\;\;b \cdot c - 4 \cdot \left(x \cdot i\right)\\
\mathbf{elif}\;t \leq 2.05 \cdot 10^{-202}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1.8 \cdot 10^{+77}:\\
\;\;\;\;b \cdot c - \left(j \cdot 27\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if t < -7.0000000000000001e-15 or -5.3999999999999998e-44 < t < -2.15e-75 or 1.7999999999999999e77 < t Initial program 77.0%
Simplified83.2%
Taylor expanded in x around inf 78.3%
associate-*r*78.3%
*-commutative78.3%
Simplified78.3%
Taylor expanded in t around inf 67.6%
if -7.0000000000000001e-15 < t < -5.3999999999999998e-44 or -8.50000000000000068e-189 < t < 2.0500000000000002e-202Initial program 88.5%
Simplified85.2%
Taylor expanded in i around inf 78.2%
associate-*r*78.2%
*-commutative78.2%
Simplified78.2%
if -2.15e-75 < t < -8.50000000000000068e-189Initial program 89.2%
Taylor expanded in t around 0 83.0%
Taylor expanded in j around 0 71.1%
if 2.0500000000000002e-202 < t < 1.7999999999999999e77Initial program 89.6%
Taylor expanded in x around 0 93.9%
Taylor expanded in b around inf 73.3%
Final simplification71.5%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))
(t_2 (+ (* j (* k -27.0)) (* x (* i -4.0)))))
(if (<= t -2.8e-14)
(* t (- (* 18.0 (* x (* y z))) (* a 4.0)))
(if (<= t -2.8e-43)
t_2
(if (<= t -1.1e-75)
t_1
(if (<= t -1.52e-186)
(- (* b c) (* 4.0 (* x i)))
(if (<= t 1e-201)
t_2
(if (<= t 1.42e+72) (- (* b c) (* (* j 27.0) k)) t_1))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
double tmp;
if (t <= -2.8e-14) {
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
} else if (t <= -2.8e-43) {
tmp = t_2;
} else if (t <= -1.1e-75) {
tmp = t_1;
} else if (t <= -1.52e-186) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 1e-201) {
tmp = t_2;
} else if (t <= 1.42e+72) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = t_1;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i))
t_2 = (j * (k * (-27.0d0))) + (x * (i * (-4.0d0)))
if (t <= (-2.8d-14)) then
tmp = t * ((18.0d0 * (x * (y * z))) - (a * 4.0d0))
else if (t <= (-2.8d-43)) then
tmp = t_2
else if (t <= (-1.1d-75)) then
tmp = t_1
else if (t <= (-1.52d-186)) then
tmp = (b * c) - (4.0d0 * (x * i))
else if (t <= 1d-201) then
tmp = t_2
else if (t <= 1.42d+72) then
tmp = (b * c) - ((j * 27.0d0) * k)
else
tmp = t_1
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
double t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
double tmp;
if (t <= -2.8e-14) {
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
} else if (t <= -2.8e-43) {
tmp = t_2;
} else if (t <= -1.1e-75) {
tmp = t_1;
} else if (t <= -1.52e-186) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 1e-201) {
tmp = t_2;
} else if (t <= 1.42e+72) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = t_1;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = x * ((18.0 * (t * (y * z))) - (4.0 * i)) t_2 = (j * (k * -27.0)) + (x * (i * -4.0)) tmp = 0 if t <= -2.8e-14: tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0)) elif t <= -2.8e-43: tmp = t_2 elif t <= -1.1e-75: tmp = t_1 elif t <= -1.52e-186: tmp = (b * c) - (4.0 * (x * i)) elif t <= 1e-201: tmp = t_2 elif t <= 1.42e+72: tmp = (b * c) - ((j * 27.0) * k) else: tmp = t_1 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i))) t_2 = Float64(Float64(j * Float64(k * -27.0)) + Float64(x * Float64(i * -4.0))) tmp = 0.0 if (t <= -2.8e-14) tmp = Float64(t * Float64(Float64(18.0 * Float64(x * Float64(y * z))) - Float64(a * 4.0))); elseif (t <= -2.8e-43) tmp = t_2; elseif (t <= -1.1e-75) tmp = t_1; elseif (t <= -1.52e-186) tmp = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))); elseif (t <= 1e-201) tmp = t_2; elseif (t <= 1.42e+72) tmp = Float64(Float64(b * c) - Float64(Float64(j * 27.0) * k)); else tmp = t_1; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = x * ((18.0 * (t * (y * z))) - (4.0 * i));
t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
tmp = 0.0;
if (t <= -2.8e-14)
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
elseif (t <= -2.8e-43)
tmp = t_2;
elseif (t <= -1.1e-75)
tmp = t_1;
elseif (t <= -1.52e-186)
tmp = (b * c) - (4.0 * (x * i));
elseif (t <= 1e-201)
tmp = t_2;
elseif (t <= 1.42e+72)
tmp = (b * c) - ((j * 27.0) * k);
else
tmp = t_1;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(x * N[(i * -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -2.8e-14], N[(t * N[(N[(18.0 * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -2.8e-43], t$95$2, If[LessEqual[t, -1.1e-75], t$95$1, If[LessEqual[t, -1.52e-186], N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1e-201], t$95$2, If[LessEqual[t, 1.42e+72], N[(N[(b * c), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
t_2 := j \cdot \left(k \cdot -27\right) + x \cdot \left(i \cdot -4\right)\\
\mathbf{if}\;t \leq -2.8 \cdot 10^{-14}:\\
\;\;\;\;t \cdot \left(18 \cdot \left(x \cdot \left(y \cdot z\right)\right) - a \cdot 4\right)\\
\mathbf{elif}\;t \leq -2.8 \cdot 10^{-43}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -1.1 \cdot 10^{-75}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq -1.52 \cdot 10^{-186}:\\
\;\;\;\;b \cdot c - 4 \cdot \left(x \cdot i\right)\\
\mathbf{elif}\;t \leq 10^{-201}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 1.42 \cdot 10^{+72}:\\
\;\;\;\;b \cdot c - \left(j \cdot 27\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if t < -2.8000000000000001e-14Initial program 85.0%
Simplified88.7%
Taylor expanded in x around inf 81.4%
associate-*r*81.4%
*-commutative81.4%
Simplified81.4%
Taylor expanded in t around inf 68.3%
if -2.8000000000000001e-14 < t < -2.7999999999999998e-43 or -1.5200000000000001e-186 < t < 9.99999999999999946e-202Initial program 88.5%
Simplified85.2%
Taylor expanded in i around inf 78.2%
associate-*r*78.2%
*-commutative78.2%
Simplified78.2%
if -2.7999999999999998e-43 < t < -1.10000000000000003e-75 or 1.41999999999999997e72 < t Initial program 67.9%
Simplified76.9%
Taylor expanded in x around inf 71.2%
if -1.10000000000000003e-75 < t < -1.5200000000000001e-186Initial program 89.2%
Taylor expanded in t around 0 83.0%
Taylor expanded in j around 0 71.1%
if 9.99999999999999946e-202 < t < 1.41999999999999997e72Initial program 89.2%
Taylor expanded in x around 0 93.6%
Taylor expanded in b around inf 74.3%
Final simplification72.6%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* t (* y z))) (t_2 (+ (* j (* k -27.0)) (* x (* i -4.0)))))
(if (<= t -1.75e-15)
(* t (- (* 18.0 (* x (* y z))) (* a 4.0)))
(if (<= t -1.02e-42)
t_2
(if (<= t -5.2e-77)
(+ (* b c) (* 18.0 (* x t_1)))
(if (<= t -2.2e-187)
(- (* b c) (* 4.0 (* x i)))
(if (<= t 8e-202)
t_2
(if (<= t 9e+72)
(- (* b c) (* (* j 27.0) k))
(* x (- (* 18.0 t_1) (* 4.0 i)))))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = t * (y * z);
double t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
double tmp;
if (t <= -1.75e-15) {
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
} else if (t <= -1.02e-42) {
tmp = t_2;
} else if (t <= -5.2e-77) {
tmp = (b * c) + (18.0 * (x * t_1));
} else if (t <= -2.2e-187) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 8e-202) {
tmp = t_2;
} else if (t <= 9e+72) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = x * ((18.0 * t_1) - (4.0 * i));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = t * (y * z)
t_2 = (j * (k * (-27.0d0))) + (x * (i * (-4.0d0)))
if (t <= (-1.75d-15)) then
tmp = t * ((18.0d0 * (x * (y * z))) - (a * 4.0d0))
else if (t <= (-1.02d-42)) then
tmp = t_2
else if (t <= (-5.2d-77)) then
tmp = (b * c) + (18.0d0 * (x * t_1))
else if (t <= (-2.2d-187)) then
tmp = (b * c) - (4.0d0 * (x * i))
else if (t <= 8d-202) then
tmp = t_2
else if (t <= 9d+72) then
tmp = (b * c) - ((j * 27.0d0) * k)
else
tmp = x * ((18.0d0 * t_1) - (4.0d0 * i))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = t * (y * z);
double t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
double tmp;
if (t <= -1.75e-15) {
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
} else if (t <= -1.02e-42) {
tmp = t_2;
} else if (t <= -5.2e-77) {
tmp = (b * c) + (18.0 * (x * t_1));
} else if (t <= -2.2e-187) {
tmp = (b * c) - (4.0 * (x * i));
} else if (t <= 8e-202) {
tmp = t_2;
} else if (t <= 9e+72) {
tmp = (b * c) - ((j * 27.0) * k);
} else {
tmp = x * ((18.0 * t_1) - (4.0 * i));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = t * (y * z) t_2 = (j * (k * -27.0)) + (x * (i * -4.0)) tmp = 0 if t <= -1.75e-15: tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0)) elif t <= -1.02e-42: tmp = t_2 elif t <= -5.2e-77: tmp = (b * c) + (18.0 * (x * t_1)) elif t <= -2.2e-187: tmp = (b * c) - (4.0 * (x * i)) elif t <= 8e-202: tmp = t_2 elif t <= 9e+72: tmp = (b * c) - ((j * 27.0) * k) else: tmp = x * ((18.0 * t_1) - (4.0 * i)) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(t * Float64(y * z)) t_2 = Float64(Float64(j * Float64(k * -27.0)) + Float64(x * Float64(i * -4.0))) tmp = 0.0 if (t <= -1.75e-15) tmp = Float64(t * Float64(Float64(18.0 * Float64(x * Float64(y * z))) - Float64(a * 4.0))); elseif (t <= -1.02e-42) tmp = t_2; elseif (t <= -5.2e-77) tmp = Float64(Float64(b * c) + Float64(18.0 * Float64(x * t_1))); elseif (t <= -2.2e-187) tmp = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))); elseif (t <= 8e-202) tmp = t_2; elseif (t <= 9e+72) tmp = Float64(Float64(b * c) - Float64(Float64(j * 27.0) * k)); else tmp = Float64(x * Float64(Float64(18.0 * t_1) - Float64(4.0 * i))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = t * (y * z);
t_2 = (j * (k * -27.0)) + (x * (i * -4.0));
tmp = 0.0;
if (t <= -1.75e-15)
tmp = t * ((18.0 * (x * (y * z))) - (a * 4.0));
elseif (t <= -1.02e-42)
tmp = t_2;
elseif (t <= -5.2e-77)
tmp = (b * c) + (18.0 * (x * t_1));
elseif (t <= -2.2e-187)
tmp = (b * c) - (4.0 * (x * i));
elseif (t <= 8e-202)
tmp = t_2;
elseif (t <= 9e+72)
tmp = (b * c) - ((j * 27.0) * k);
else
tmp = x * ((18.0 * t_1) - (4.0 * i));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(x * N[(i * -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -1.75e-15], N[(t * N[(N[(18.0 * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -1.02e-42], t$95$2, If[LessEqual[t, -5.2e-77], N[(N[(b * c), $MachinePrecision] + N[(18.0 * N[(x * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -2.2e-187], N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 8e-202], t$95$2, If[LessEqual[t, 9e+72], N[(N[(b * c), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(x * N[(N[(18.0 * t$95$1), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := t \cdot \left(y \cdot z\right)\\
t_2 := j \cdot \left(k \cdot -27\right) + x \cdot \left(i \cdot -4\right)\\
\mathbf{if}\;t \leq -1.75 \cdot 10^{-15}:\\
\;\;\;\;t \cdot \left(18 \cdot \left(x \cdot \left(y \cdot z\right)\right) - a \cdot 4\right)\\
\mathbf{elif}\;t \leq -1.02 \cdot 10^{-42}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq -5.2 \cdot 10^{-77}:\\
\;\;\;\;b \cdot c + 18 \cdot \left(x \cdot t\_1\right)\\
\mathbf{elif}\;t \leq -2.2 \cdot 10^{-187}:\\
\;\;\;\;b \cdot c - 4 \cdot \left(x \cdot i\right)\\
\mathbf{elif}\;t \leq 8 \cdot 10^{-202}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t \leq 9 \cdot 10^{+72}:\\
\;\;\;\;b \cdot c - \left(j \cdot 27\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(18 \cdot t\_1 - 4 \cdot i\right)\\
\end{array}
\end{array}
if t < -1.75e-15Initial program 85.0%
Simplified88.7%
Taylor expanded in x around inf 81.4%
associate-*r*81.4%
*-commutative81.4%
Simplified81.4%
Taylor expanded in t around inf 68.3%
if -1.75e-15 < t < -1.0199999999999999e-42 or -2.20000000000000008e-187 < t < 8.0000000000000003e-202Initial program 88.5%
Simplified85.2%
Taylor expanded in i around inf 78.2%
associate-*r*78.2%
*-commutative78.2%
Simplified78.2%
if -1.0199999999999999e-42 < t < -5.2000000000000002e-77Initial program 62.7%
Taylor expanded in x around 0 99.8%
Taylor expanded in a around 0 80.5%
Taylor expanded in j around 0 80.5%
Taylor expanded in t around inf 53.0%
*-commutative53.0%
associate-*r*70.4%
Simplified70.4%
if -5.2000000000000002e-77 < t < -2.20000000000000008e-187Initial program 89.2%
Taylor expanded in t around 0 83.0%
Taylor expanded in j around 0 71.1%
if 8.0000000000000003e-202 < t < 8.9999999999999997e72Initial program 89.2%
Taylor expanded in x around 0 93.6%
Taylor expanded in b around inf 74.3%
if 8.9999999999999997e72 < t Initial program 69.0%
Simplified78.0%
Taylor expanded in x around inf 71.6%
Final simplification72.6%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* j (* k -27.0)))
(t_2 (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))))
(if (<= x -4.2e+62)
t_2
(if (<= x 1.95e-7)
(- (- (* b c) (* 4.0 (* t a))) (* (* j 27.0) k))
(if (<= x 1.06e+46)
t_2
(if (<= x 1.26e+67)
(+ t_1 (* x (* i -4.0)))
(if (<= x 2.6e+113) (+ t_1 (* x (* (* y t) (* 18.0 z)))) t_2)))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = j * (k * -27.0);
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 1.95e-7) {
tmp = ((b * c) - (4.0 * (t * a))) - ((j * 27.0) * k);
} else if (x <= 1.06e+46) {
tmp = t_2;
} else if (x <= 1.26e+67) {
tmp = t_1 + (x * (i * -4.0));
} else if (x <= 2.6e+113) {
tmp = t_1 + (x * ((y * t) * (18.0 * z)));
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = j * (k * (-27.0d0))
t_2 = (b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))
if (x <= (-4.2d+62)) then
tmp = t_2
else if (x <= 1.95d-7) then
tmp = ((b * c) - (4.0d0 * (t * a))) - ((j * 27.0d0) * k)
else if (x <= 1.06d+46) then
tmp = t_2
else if (x <= 1.26d+67) then
tmp = t_1 + (x * (i * (-4.0d0)))
else if (x <= 2.6d+113) then
tmp = t_1 + (x * ((y * t) * (18.0d0 * z)))
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = j * (k * -27.0);
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 1.95e-7) {
tmp = ((b * c) - (4.0 * (t * a))) - ((j * 27.0) * k);
} else if (x <= 1.06e+46) {
tmp = t_2;
} else if (x <= 1.26e+67) {
tmp = t_1 + (x * (i * -4.0));
} else if (x <= 2.6e+113) {
tmp = t_1 + (x * ((y * t) * (18.0 * z)));
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = j * (k * -27.0) t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i))) tmp = 0 if x <= -4.2e+62: tmp = t_2 elif x <= 1.95e-7: tmp = ((b * c) - (4.0 * (t * a))) - ((j * 27.0) * k) elif x <= 1.06e+46: tmp = t_2 elif x <= 1.26e+67: tmp = t_1 + (x * (i * -4.0)) elif x <= 2.6e+113: tmp = t_1 + (x * ((y * t) * (18.0 * z))) else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(j * Float64(k * -27.0)) t_2 = Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) tmp = 0.0 if (x <= -4.2e+62) tmp = t_2; elseif (x <= 1.95e-7) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(t * a))) - Float64(Float64(j * 27.0) * k)); elseif (x <= 1.06e+46) tmp = t_2; elseif (x <= 1.26e+67) tmp = Float64(t_1 + Float64(x * Float64(i * -4.0))); elseif (x <= 2.6e+113) tmp = Float64(t_1 + Float64(x * Float64(Float64(y * t) * Float64(18.0 * z)))); else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = j * (k * -27.0);
t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
tmp = 0.0;
if (x <= -4.2e+62)
tmp = t_2;
elseif (x <= 1.95e-7)
tmp = ((b * c) - (4.0 * (t * a))) - ((j * 27.0) * k);
elseif (x <= 1.06e+46)
tmp = t_2;
elseif (x <= 1.26e+67)
tmp = t_1 + (x * (i * -4.0));
elseif (x <= 2.6e+113)
tmp = t_1 + (x * ((y * t) * (18.0 * z)));
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -4.2e+62], t$95$2, If[LessEqual[x, 1.95e-7], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.06e+46], t$95$2, If[LessEqual[x, 1.26e+67], N[(t$95$1 + N[(x * N[(i * -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.6e+113], N[(t$95$1 + N[(x * N[(N[(y * t), $MachinePrecision] * N[(18.0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := j \cdot \left(k \cdot -27\right)\\
t_2 := b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{if}\;x \leq -4.2 \cdot 10^{+62}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq 1.95 \cdot 10^{-7}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(t \cdot a\right)\right) - \left(j \cdot 27\right) \cdot k\\
\mathbf{elif}\;x \leq 1.06 \cdot 10^{+46}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq 1.26 \cdot 10^{+67}:\\
\;\;\;\;t\_1 + x \cdot \left(i \cdot -4\right)\\
\mathbf{elif}\;x \leq 2.6 \cdot 10^{+113}:\\
\;\;\;\;t\_1 + x \cdot \left(\left(y \cdot t\right) \cdot \left(18 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -4.2e62 or 1.95000000000000012e-7 < x < 1.05999999999999998e46 or 2.5999999999999999e113 < x Initial program 73.3%
Taylor expanded in x around 0 93.6%
Taylor expanded in a around 0 91.8%
Taylor expanded in j around 0 88.1%
if -4.2e62 < x < 1.95000000000000012e-7Initial program 91.5%
Taylor expanded in x around 0 75.8%
if 1.05999999999999998e46 < x < 1.26e67Initial program 50.0%
Simplified100.0%
Taylor expanded in i around inf 100.0%
associate-*r*100.0%
*-commutative100.0%
Simplified100.0%
if 1.26e67 < x < 2.5999999999999999e113Initial program 90.0%
Simplified90.0%
Taylor expanded in y around inf 90.1%
*-commutative90.1%
*-commutative90.1%
associate-*l*90.0%
*-commutative90.0%
associate-*r*90.1%
associate-*r*81.1%
associate-*l*81.1%
Simplified81.1%
Final simplification81.4%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k)))
(if (<= t_1 -2e+148)
(- (* b c) t_1)
(if (<= t_1 -5e-56)
(* x (- (* 18.0 (* t (* y z))) (* 4.0 i)))
(if (<= t_1 2e+186)
(- (+ (* b c) (* (* x i) -4.0)) (* 4.0 (* t a)))
(+ (* j (* k -27.0)) (* (* t a) -4.0)))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (t_1 <= -2e+148) {
tmp = (b * c) - t_1;
} else if (t_1 <= -5e-56) {
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
} else if (t_1 <= 2e+186) {
tmp = ((b * c) + ((x * i) * -4.0)) - (4.0 * (t * a));
} else {
tmp = (j * (k * -27.0)) + ((t * a) * -4.0);
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (j * 27.0d0) * k
if (t_1 <= (-2d+148)) then
tmp = (b * c) - t_1
else if (t_1 <= (-5d-56)) then
tmp = x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i))
else if (t_1 <= 2d+186) then
tmp = ((b * c) + ((x * i) * (-4.0d0))) - (4.0d0 * (t * a))
else
tmp = (j * (k * (-27.0d0))) + ((t * a) * (-4.0d0))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (t_1 <= -2e+148) {
tmp = (b * c) - t_1;
} else if (t_1 <= -5e-56) {
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
} else if (t_1 <= 2e+186) {
tmp = ((b * c) + ((x * i) * -4.0)) - (4.0 * (t * a));
} else {
tmp = (j * (k * -27.0)) + ((t * a) * -4.0);
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k tmp = 0 if t_1 <= -2e+148: tmp = (b * c) - t_1 elif t_1 <= -5e-56: tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i)) elif t_1 <= 2e+186: tmp = ((b * c) + ((x * i) * -4.0)) - (4.0 * (t * a)) else: tmp = (j * (k * -27.0)) + ((t * a) * -4.0) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (t_1 <= -2e+148) tmp = Float64(Float64(b * c) - t_1); elseif (t_1 <= -5e-56) tmp = Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i))); elseif (t_1 <= 2e+186) tmp = Float64(Float64(Float64(b * c) + Float64(Float64(x * i) * -4.0)) - Float64(4.0 * Float64(t * a))); else tmp = Float64(Float64(j * Float64(k * -27.0)) + Float64(Float64(t * a) * -4.0)); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
tmp = 0.0;
if (t_1 <= -2e+148)
tmp = (b * c) - t_1;
elseif (t_1 <= -5e-56)
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
elseif (t_1 <= 2e+186)
tmp = ((b * c) + ((x * i) * -4.0)) - (4.0 * (t * a));
else
tmp = (j * (k * -27.0)) + ((t * a) * -4.0);
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[t$95$1, -2e+148], N[(N[(b * c), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[t$95$1, -5e-56], N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 2e+186], N[(N[(N[(b * c), $MachinePrecision] + N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(N[(t * a), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;t\_1 \leq -2 \cdot 10^{+148}:\\
\;\;\;\;b \cdot c - t\_1\\
\mathbf{elif}\;t\_1 \leq -5 \cdot 10^{-56}:\\
\;\;\;\;x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{elif}\;t\_1 \leq 2 \cdot 10^{+186}:\\
\;\;\;\;\left(b \cdot c + \left(x \cdot i\right) \cdot -4\right) - 4 \cdot \left(t \cdot a\right)\\
\mathbf{else}:\\
\;\;\;\;j \cdot \left(k \cdot -27\right) + \left(t \cdot a\right) \cdot -4\\
\end{array}
\end{array}
if (*.f64 (*.f64 j 27) k) < -2.0000000000000001e148Initial program 83.2%
Taylor expanded in x around 0 87.4%
Taylor expanded in b around inf 81.4%
if -2.0000000000000001e148 < (*.f64 (*.f64 j 27) k) < -4.99999999999999997e-56Initial program 79.4%
Simplified79.9%
Taylor expanded in x around inf 66.9%
if -4.99999999999999997e-56 < (*.f64 (*.f64 j 27) k) < 1.99999999999999996e186Initial program 85.4%
Taylor expanded in x around 0 89.2%
Taylor expanded in t around 0 76.6%
*-commutative76.6%
*-commutative76.6%
associate-*r*76.6%
*-commutative76.6%
Simplified76.6%
Taylor expanded in j around 0 71.7%
if 1.99999999999999996e186 < (*.f64 (*.f64 j 27) k) Initial program 79.2%
Simplified85.3%
Taylor expanded in a around inf 85.5%
*-commutative85.5%
Simplified85.5%
Final simplification74.6%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* x i) -4.0)))
(if (<= (* b c) -1.35e+153)
(* b c)
(if (<= (* b c) 2.15e-303)
(* k (* j -27.0))
(if (<= (* b c) 3.75e-78)
t_1
(if (<= (* b c) 3.2e+28)
(* t (* a -4.0))
(if (<= (* b c) 1.85e+185) t_1 (* b c))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (x * i) * -4.0;
double tmp;
if ((b * c) <= -1.35e+153) {
tmp = b * c;
} else if ((b * c) <= 2.15e-303) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 3.75e-78) {
tmp = t_1;
} else if ((b * c) <= 3.2e+28) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 1.85e+185) {
tmp = t_1;
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (x * i) * (-4.0d0)
if ((b * c) <= (-1.35d+153)) then
tmp = b * c
else if ((b * c) <= 2.15d-303) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 3.75d-78) then
tmp = t_1
else if ((b * c) <= 3.2d+28) then
tmp = t * (a * (-4.0d0))
else if ((b * c) <= 1.85d+185) then
tmp = t_1
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (x * i) * -4.0;
double tmp;
if ((b * c) <= -1.35e+153) {
tmp = b * c;
} else if ((b * c) <= 2.15e-303) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 3.75e-78) {
tmp = t_1;
} else if ((b * c) <= 3.2e+28) {
tmp = t * (a * -4.0);
} else if ((b * c) <= 1.85e+185) {
tmp = t_1;
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (x * i) * -4.0 tmp = 0 if (b * c) <= -1.35e+153: tmp = b * c elif (b * c) <= 2.15e-303: tmp = k * (j * -27.0) elif (b * c) <= 3.75e-78: tmp = t_1 elif (b * c) <= 3.2e+28: tmp = t * (a * -4.0) elif (b * c) <= 1.85e+185: tmp = t_1 else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(x * i) * -4.0) tmp = 0.0 if (Float64(b * c) <= -1.35e+153) tmp = Float64(b * c); elseif (Float64(b * c) <= 2.15e-303) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 3.75e-78) tmp = t_1; elseif (Float64(b * c) <= 3.2e+28) tmp = Float64(t * Float64(a * -4.0)); elseif (Float64(b * c) <= 1.85e+185) tmp = t_1; else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (x * i) * -4.0;
tmp = 0.0;
if ((b * c) <= -1.35e+153)
tmp = b * c;
elseif ((b * c) <= 2.15e-303)
tmp = k * (j * -27.0);
elseif ((b * c) <= 3.75e-78)
tmp = t_1;
elseif ((b * c) <= 3.2e+28)
tmp = t * (a * -4.0);
elseif ((b * c) <= 1.85e+185)
tmp = t_1;
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision]}, If[LessEqual[N[(b * c), $MachinePrecision], -1.35e+153], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 2.15e-303], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 3.75e-78], t$95$1, If[LessEqual[N[(b * c), $MachinePrecision], 3.2e+28], N[(t * N[(a * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.85e+185], t$95$1, N[(b * c), $MachinePrecision]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(x \cdot i\right) \cdot -4\\
\mathbf{if}\;b \cdot c \leq -1.35 \cdot 10^{+153}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq 2.15 \cdot 10^{-303}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 3.75 \cdot 10^{-78}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \cdot c \leq 3.2 \cdot 10^{+28}:\\
\;\;\;\;t \cdot \left(a \cdot -4\right)\\
\mathbf{elif}\;b \cdot c \leq 1.85 \cdot 10^{+185}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -1.35e153 or 1.8499999999999999e185 < (*.f64 b c) Initial program 81.9%
Taylor expanded in x around 0 86.8%
Taylor expanded in a around 0 83.0%
Taylor expanded in b around inf 64.9%
if -1.35e153 < (*.f64 b c) < 2.14999999999999991e-303Initial program 88.1%
Taylor expanded in x around 0 87.8%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 38.4%
associate-*r*38.4%
Simplified38.4%
if 2.14999999999999991e-303 < (*.f64 b c) < 3.75000000000000021e-78 or 3.2e28 < (*.f64 b c) < 1.8499999999999999e185Initial program 80.5%
Simplified89.5%
Taylor expanded in x around inf 63.1%
Taylor expanded in t around 0 36.5%
if 3.75000000000000021e-78 < (*.f64 b c) < 3.2e28Initial program 75.8%
Taylor expanded in x around 0 84.9%
Taylor expanded in t around 0 69.4%
*-commutative69.4%
*-commutative69.4%
associate-*r*69.4%
*-commutative69.4%
Simplified69.4%
Taylor expanded in a around inf 45.1%
associate-*r*45.1%
Simplified45.1%
Final simplification46.3%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* j (* k -27.0))) (t_2 (+ t_1 (* x (* i -4.0)))))
(if (<= (* b c) -6e+133)
(- (* b c) (* (* j 27.0) k))
(if (<= (* b c) 3.7e-78)
t_2
(if (<= (* b c) 3.6e+28)
(+ t_1 (* (* t a) -4.0))
(if (<= (* b c) 6.2e+182) t_2 (- (* b c) (* 4.0 (* x i)))))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = j * (k * -27.0);
double t_2 = t_1 + (x * (i * -4.0));
double tmp;
if ((b * c) <= -6e+133) {
tmp = (b * c) - ((j * 27.0) * k);
} else if ((b * c) <= 3.7e-78) {
tmp = t_2;
} else if ((b * c) <= 3.6e+28) {
tmp = t_1 + ((t * a) * -4.0);
} else if ((b * c) <= 6.2e+182) {
tmp = t_2;
} else {
tmp = (b * c) - (4.0 * (x * i));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = j * (k * (-27.0d0))
t_2 = t_1 + (x * (i * (-4.0d0)))
if ((b * c) <= (-6d+133)) then
tmp = (b * c) - ((j * 27.0d0) * k)
else if ((b * c) <= 3.7d-78) then
tmp = t_2
else if ((b * c) <= 3.6d+28) then
tmp = t_1 + ((t * a) * (-4.0d0))
else if ((b * c) <= 6.2d+182) then
tmp = t_2
else
tmp = (b * c) - (4.0d0 * (x * i))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = j * (k * -27.0);
double t_2 = t_1 + (x * (i * -4.0));
double tmp;
if ((b * c) <= -6e+133) {
tmp = (b * c) - ((j * 27.0) * k);
} else if ((b * c) <= 3.7e-78) {
tmp = t_2;
} else if ((b * c) <= 3.6e+28) {
tmp = t_1 + ((t * a) * -4.0);
} else if ((b * c) <= 6.2e+182) {
tmp = t_2;
} else {
tmp = (b * c) - (4.0 * (x * i));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = j * (k * -27.0) t_2 = t_1 + (x * (i * -4.0)) tmp = 0 if (b * c) <= -6e+133: tmp = (b * c) - ((j * 27.0) * k) elif (b * c) <= 3.7e-78: tmp = t_2 elif (b * c) <= 3.6e+28: tmp = t_1 + ((t * a) * -4.0) elif (b * c) <= 6.2e+182: tmp = t_2 else: tmp = (b * c) - (4.0 * (x * i)) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(j * Float64(k * -27.0)) t_2 = Float64(t_1 + Float64(x * Float64(i * -4.0))) tmp = 0.0 if (Float64(b * c) <= -6e+133) tmp = Float64(Float64(b * c) - Float64(Float64(j * 27.0) * k)); elseif (Float64(b * c) <= 3.7e-78) tmp = t_2; elseif (Float64(b * c) <= 3.6e+28) tmp = Float64(t_1 + Float64(Float64(t * a) * -4.0)); elseif (Float64(b * c) <= 6.2e+182) tmp = t_2; else tmp = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = j * (k * -27.0);
t_2 = t_1 + (x * (i * -4.0));
tmp = 0.0;
if ((b * c) <= -6e+133)
tmp = (b * c) - ((j * 27.0) * k);
elseif ((b * c) <= 3.7e-78)
tmp = t_2;
elseif ((b * c) <= 3.6e+28)
tmp = t_1 + ((t * a) * -4.0);
elseif ((b * c) <= 6.2e+182)
tmp = t_2;
else
tmp = (b * c) - (4.0 * (x * i));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 + N[(x * N[(i * -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(b * c), $MachinePrecision], -6e+133], N[(N[(b * c), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 3.7e-78], t$95$2, If[LessEqual[N[(b * c), $MachinePrecision], 3.6e+28], N[(t$95$1 + N[(N[(t * a), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 6.2e+182], t$95$2, N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := j \cdot \left(k \cdot -27\right)\\
t_2 := t\_1 + x \cdot \left(i \cdot -4\right)\\
\mathbf{if}\;b \cdot c \leq -6 \cdot 10^{+133}:\\
\;\;\;\;b \cdot c - \left(j \cdot 27\right) \cdot k\\
\mathbf{elif}\;b \cdot c \leq 3.7 \cdot 10^{-78}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;b \cdot c \leq 3.6 \cdot 10^{+28}:\\
\;\;\;\;t\_1 + \left(t \cdot a\right) \cdot -4\\
\mathbf{elif}\;b \cdot c \leq 6.2 \cdot 10^{+182}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;b \cdot c - 4 \cdot \left(x \cdot i\right)\\
\end{array}
\end{array}
if (*.f64 b c) < -6.00000000000000013e133Initial program 86.8%
Taylor expanded in x around 0 91.0%
Taylor expanded in b around inf 71.8%
if -6.00000000000000013e133 < (*.f64 b c) < 3.70000000000000006e-78 or 3.5999999999999999e28 < (*.f64 b c) < 6.19999999999999993e182Initial program 84.8%
Simplified87.7%
Taylor expanded in i around inf 57.6%
associate-*r*57.6%
*-commutative57.6%
Simplified57.6%
if 3.70000000000000006e-78 < (*.f64 b c) < 3.5999999999999999e28Initial program 75.8%
Simplified90.2%
Taylor expanded in a around inf 50.1%
*-commutative50.1%
Simplified50.1%
if 6.19999999999999993e182 < (*.f64 b c) Initial program 76.2%
Taylor expanded in t around 0 82.0%
Taylor expanded in j around 0 82.0%
Final simplification62.6%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(if (or (<= x -2e+111) (not (<= x 2e+35)))
(-
(- (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i)))) (* 4.0 (* t a)))
(* (* j 27.0) k))
(-
(+ (* b c) (* t (- (* (* x 18.0) (* y z)) (* a 4.0))))
(+ (* x (* 4.0 i)) (* j (* 27.0 k))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((x <= -2e+111) || !(x <= 2e+35)) {
tmp = (((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - (4.0 * (t * a))) - ((j * 27.0) * k);
} else {
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((x <= (-2d+111)) .or. (.not. (x <= 2d+35))) then
tmp = (((b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))) - (4.0d0 * (t * a))) - ((j * 27.0d0) * k)
else
tmp = ((b * c) + (t * (((x * 18.0d0) * (y * z)) - (a * 4.0d0)))) - ((x * (4.0d0 * i)) + (j * (27.0d0 * k)))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((x <= -2e+111) || !(x <= 2e+35)) {
tmp = (((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - (4.0 * (t * a))) - ((j * 27.0) * k);
} else {
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (x <= -2e+111) or not (x <= 2e+35): tmp = (((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - (4.0 * (t * a))) - ((j * 27.0) * k) else: tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k))) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if ((x <= -2e+111) || !(x <= 2e+35)) tmp = Float64(Float64(Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) - Float64(4.0 * Float64(t * a))) - Float64(Float64(j * 27.0) * k)); else tmp = Float64(Float64(Float64(b * c) + Float64(t * Float64(Float64(Float64(x * 18.0) * Float64(y * z)) - Float64(a * 4.0)))) - Float64(Float64(x * Float64(4.0 * i)) + Float64(j * Float64(27.0 * k)))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((x <= -2e+111) || ~((x <= 2e+35)))
tmp = (((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - (4.0 * (t * a))) - ((j * 27.0) * k);
else
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[Or[LessEqual[x, -2e+111], N[Not[LessEqual[x, 2e+35]], $MachinePrecision]], N[(N[(N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(N[(N[(b * c), $MachinePrecision] + N[(t * N[(N[(N[(x * 18.0), $MachinePrecision] * N[(y * z), $MachinePrecision]), $MachinePrecision] - N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(x * N[(4.0 * i), $MachinePrecision]), $MachinePrecision] + N[(j * N[(27.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;x \leq -2 \cdot 10^{+111} \lor \neg \left(x \leq 2 \cdot 10^{+35}\right):\\
\;\;\;\;\left(\left(b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\right) - 4 \cdot \left(t \cdot a\right)\right) - \left(j \cdot 27\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot c + t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right)\right) - \left(x \cdot \left(4 \cdot i\right) + j \cdot \left(27 \cdot k\right)\right)\\
\end{array}
\end{array}
if x < -1.99999999999999991e111 or 1.9999999999999999e35 < x Initial program 71.6%
Taylor expanded in x around 0 93.1%
if -1.99999999999999991e111 < x < 1.9999999999999999e35Initial program 91.2%
Simplified92.4%
Final simplification92.7%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))))
(if (<= x -1e+124)
t_1
(if (<= x 1.02e+195)
(-
(+ (* b c) (* t (- (* (* x 18.0) (* y z)) (* a 4.0))))
(+ (* x (* 4.0 i)) (* j (* 27.0 k))))
(- t_1 (* (* j 27.0) k))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -1e+124) {
tmp = t_1;
} else if (x <= 1.02e+195) {
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
} else {
tmp = t_1 - ((j * 27.0) * k);
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))
if (x <= (-1d+124)) then
tmp = t_1
else if (x <= 1.02d+195) then
tmp = ((b * c) + (t * (((x * 18.0d0) * (y * z)) - (a * 4.0d0)))) - ((x * (4.0d0 * i)) + (j * (27.0d0 * k)))
else
tmp = t_1 - ((j * 27.0d0) * k)
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -1e+124) {
tmp = t_1;
} else if (x <= 1.02e+195) {
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
} else {
tmp = t_1 - ((j * 27.0) * k);
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i))) tmp = 0 if x <= -1e+124: tmp = t_1 elif x <= 1.02e+195: tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k))) else: tmp = t_1 - ((j * 27.0) * k) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) tmp = 0.0 if (x <= -1e+124) tmp = t_1; elseif (x <= 1.02e+195) tmp = Float64(Float64(Float64(b * c) + Float64(t * Float64(Float64(Float64(x * 18.0) * Float64(y * z)) - Float64(a * 4.0)))) - Float64(Float64(x * Float64(4.0 * i)) + Float64(j * Float64(27.0 * k)))); else tmp = Float64(t_1 - Float64(Float64(j * 27.0) * k)); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
tmp = 0.0;
if (x <= -1e+124)
tmp = t_1;
elseif (x <= 1.02e+195)
tmp = ((b * c) + (t * (((x * 18.0) * (y * z)) - (a * 4.0)))) - ((x * (4.0 * i)) + (j * (27.0 * k)));
else
tmp = t_1 - ((j * 27.0) * k);
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1e+124], t$95$1, If[LessEqual[x, 1.02e+195], N[(N[(N[(b * c), $MachinePrecision] + N[(t * N[(N[(N[(x * 18.0), $MachinePrecision] * N[(y * z), $MachinePrecision]), $MachinePrecision] - N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(x * N[(4.0 * i), $MachinePrecision]), $MachinePrecision] + N[(j * N[(27.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 - N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{if}\;x \leq -1 \cdot 10^{+124}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;x \leq 1.02 \cdot 10^{+195}:\\
\;\;\;\;\left(b \cdot c + t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right)\right) - \left(x \cdot \left(4 \cdot i\right) + j \cdot \left(27 \cdot k\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1 - \left(j \cdot 27\right) \cdot k\\
\end{array}
\end{array}
if x < -9.99999999999999948e123Initial program 64.6%
Taylor expanded in x around 0 95.4%
Taylor expanded in a around 0 93.2%
Taylor expanded in j around 0 93.4%
if -9.99999999999999948e123 < x < 1.02e195Initial program 91.0%
Simplified92.0%
if 1.02e195 < x Initial program 65.2%
Taylor expanded in x around 0 90.3%
Taylor expanded in a around 0 90.3%
Final simplification92.0%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k))
(t_2 (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))))
(if (<= x -4.2e+62)
t_2
(if (<= x 2.15e-51)
(- (- (* b c) (* 4.0 (* t a))) t_1)
(if (<= x 1.24e+107)
(+ (* t (+ (* a -4.0) (* 18.0 (* x (* y z))))) (* j (* k -27.0)))
(if (<= x 2.9e+175) (- (- (* b c) (* 4.0 (* x i))) t_1) t_2))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 2.15e-51) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 1.24e+107) {
tmp = (t * ((a * -4.0) + (18.0 * (x * (y * z))))) + (j * (k * -27.0));
} else if (x <= 2.9e+175) {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (j * 27.0d0) * k
t_2 = (b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))
if (x <= (-4.2d+62)) then
tmp = t_2
else if (x <= 2.15d-51) then
tmp = ((b * c) - (4.0d0 * (t * a))) - t_1
else if (x <= 1.24d+107) then
tmp = (t * ((a * (-4.0d0)) + (18.0d0 * (x * (y * z))))) + (j * (k * (-27.0d0)))
else if (x <= 2.9d+175) then
tmp = ((b * c) - (4.0d0 * (x * i))) - t_1
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 2.15e-51) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 1.24e+107) {
tmp = (t * ((a * -4.0) + (18.0 * (x * (y * z))))) + (j * (k * -27.0));
} else if (x <= 2.9e+175) {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i))) tmp = 0 if x <= -4.2e+62: tmp = t_2 elif x <= 2.15e-51: tmp = ((b * c) - (4.0 * (t * a))) - t_1 elif x <= 1.24e+107: tmp = (t * ((a * -4.0) + (18.0 * (x * (y * z))))) + (j * (k * -27.0)) elif x <= 2.9e+175: tmp = ((b * c) - (4.0 * (x * i))) - t_1 else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) t_2 = Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) tmp = 0.0 if (x <= -4.2e+62) tmp = t_2; elseif (x <= 2.15e-51) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(t * a))) - t_1); elseif (x <= 1.24e+107) tmp = Float64(Float64(t * Float64(Float64(a * -4.0) + Float64(18.0 * Float64(x * Float64(y * z))))) + Float64(j * Float64(k * -27.0))); elseif (x <= 2.9e+175) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))) - t_1); else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
tmp = 0.0;
if (x <= -4.2e+62)
tmp = t_2;
elseif (x <= 2.15e-51)
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
elseif (x <= 1.24e+107)
tmp = (t * ((a * -4.0) + (18.0 * (x * (y * z))))) + (j * (k * -27.0));
elseif (x <= 2.9e+175)
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -4.2e+62], t$95$2, If[LessEqual[x, 2.15e-51], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 1.24e+107], N[(N[(t * N[(N[(a * -4.0), $MachinePrecision] + N[(18.0 * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.9e+175], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], t$95$2]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
t_2 := b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{if}\;x \leq -4.2 \cdot 10^{+62}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq 2.15 \cdot 10^{-51}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(t \cdot a\right)\right) - t\_1\\
\mathbf{elif}\;x \leq 1.24 \cdot 10^{+107}:\\
\;\;\;\;t \cdot \left(a \cdot -4 + 18 \cdot \left(x \cdot \left(y \cdot z\right)\right)\right) + j \cdot \left(k \cdot -27\right)\\
\mathbf{elif}\;x \leq 2.9 \cdot 10^{+175}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(x \cdot i\right)\right) - t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -4.2e62 or 2.9e175 < x Initial program 68.6%
Taylor expanded in x around 0 94.2%
Taylor expanded in a around 0 90.8%
Taylor expanded in j around 0 89.4%
if -4.2e62 < x < 2.1499999999999999e-51Initial program 91.9%
Taylor expanded in x around 0 76.2%
if 2.1499999999999999e-51 < x < 1.24e107Initial program 79.9%
Simplified95.8%
Taylor expanded in t around inf 72.5%
if 1.24e107 < x < 2.9e175Initial program 100.0%
Taylor expanded in t around 0 94.1%
Final simplification81.4%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k))
(t_2 (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))))
(if (<= x -4.2e+62)
t_2
(if (<= x 2.55e-44)
(- (- (* b c) (* 4.0 (* t a))) t_1)
(if (<= x 1.42e+107)
(- (+ (* b c) (* 18.0 (* t (* x (* y z))))) t_1)
(if (<= x 2.9e+175) (- (- (* b c) (* 4.0 (* x i))) t_1) t_2))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 2.55e-44) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 1.42e+107) {
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
} else if (x <= 2.9e+175) {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
} else {
tmp = t_2;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = (j * 27.0d0) * k
t_2 = (b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))
if (x <= (-4.2d+62)) then
tmp = t_2
else if (x <= 2.55d-44) then
tmp = ((b * c) - (4.0d0 * (t * a))) - t_1
else if (x <= 1.42d+107) then
tmp = ((b * c) + (18.0d0 * (t * (x * (y * z))))) - t_1
else if (x <= 2.9d+175) then
tmp = ((b * c) - (4.0d0 * (x * i))) - t_1
else
tmp = t_2
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
double tmp;
if (x <= -4.2e+62) {
tmp = t_2;
} else if (x <= 2.55e-44) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 1.42e+107) {
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
} else if (x <= 2.9e+175) {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
} else {
tmp = t_2;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i))) tmp = 0 if x <= -4.2e+62: tmp = t_2 elif x <= 2.55e-44: tmp = ((b * c) - (4.0 * (t * a))) - t_1 elif x <= 1.42e+107: tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1 elif x <= 2.9e+175: tmp = ((b * c) - (4.0 * (x * i))) - t_1 else: tmp = t_2 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) t_2 = Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) tmp = 0.0 if (x <= -4.2e+62) tmp = t_2; elseif (x <= 2.55e-44) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(t * a))) - t_1); elseif (x <= 1.42e+107) tmp = Float64(Float64(Float64(b * c) + Float64(18.0 * Float64(t * Float64(x * Float64(y * z))))) - t_1); elseif (x <= 2.9e+175) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))) - t_1); else tmp = t_2; end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
t_2 = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
tmp = 0.0;
if (x <= -4.2e+62)
tmp = t_2;
elseif (x <= 2.55e-44)
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
elseif (x <= 1.42e+107)
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
elseif (x <= 2.9e+175)
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
else
tmp = t_2;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, Block[{t$95$2 = N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -4.2e+62], t$95$2, If[LessEqual[x, 2.55e-44], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 1.42e+107], N[(N[(N[(b * c), $MachinePrecision] + N[(18.0 * N[(t * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 2.9e+175], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], t$95$2]]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
t_2 := b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{if}\;x \leq -4.2 \cdot 10^{+62}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;x \leq 2.55 \cdot 10^{-44}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(t \cdot a\right)\right) - t\_1\\
\mathbf{elif}\;x \leq 1.42 \cdot 10^{+107}:\\
\;\;\;\;\left(b \cdot c + 18 \cdot \left(t \cdot \left(x \cdot \left(y \cdot z\right)\right)\right)\right) - t\_1\\
\mathbf{elif}\;x \leq 2.9 \cdot 10^{+175}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(x \cdot i\right)\right) - t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if x < -4.2e62 or 2.9e175 < x Initial program 68.6%
Taylor expanded in x around 0 94.2%
Taylor expanded in a around 0 90.8%
Taylor expanded in j around 0 89.4%
if -4.2e62 < x < 2.5500000000000002e-44Initial program 92.0%
Taylor expanded in x around 0 76.3%
if 2.5500000000000002e-44 < x < 1.42000000000000006e107Initial program 79.0%
Taylor expanded in i around 0 75.0%
Taylor expanded in a around 0 83.0%
if 1.42000000000000006e107 < x < 2.9e175Initial program 100.0%
Taylor expanded in t around 0 94.1%
Final simplification82.5%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k)))
(if (or (<= (* a 4.0) -5e+204) (not (<= (* a 4.0) 1e+36)))
(- (- (* b c) (+ (* 4.0 (* t a)) (* 4.0 (* x i)))) t_1)
(- (+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i)))) t_1))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (((a * 4.0) <= -5e+204) || !((a * 4.0) <= 1e+36)) {
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
} else {
tmp = ((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - t_1;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (j * 27.0d0) * k
if (((a * 4.0d0) <= (-5d+204)) .or. (.not. ((a * 4.0d0) <= 1d+36))) then
tmp = ((b * c) - ((4.0d0 * (t * a)) + (4.0d0 * (x * i)))) - t_1
else
tmp = ((b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))) - t_1
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (((a * 4.0) <= -5e+204) || !((a * 4.0) <= 1e+36)) {
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
} else {
tmp = ((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - t_1;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k tmp = 0 if ((a * 4.0) <= -5e+204) or not ((a * 4.0) <= 1e+36): tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1 else: tmp = ((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - t_1 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if ((Float64(a * 4.0) <= -5e+204) || !(Float64(a * 4.0) <= 1e+36)) tmp = Float64(Float64(Float64(b * c) - Float64(Float64(4.0 * Float64(t * a)) + Float64(4.0 * Float64(x * i)))) - t_1); else tmp = Float64(Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))) - t_1); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
tmp = 0.0;
if (((a * 4.0) <= -5e+204) || ~(((a * 4.0) <= 1e+36)))
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
else
tmp = ((b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)))) - t_1;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[Or[LessEqual[N[(a * 4.0), $MachinePrecision], -5e+204], N[Not[LessEqual[N[(a * 4.0), $MachinePrecision], 1e+36]], $MachinePrecision]], N[(N[(N[(b * c), $MachinePrecision] - N[(N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision] + N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], N[(N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;a \cdot 4 \leq -5 \cdot 10^{+204} \lor \neg \left(a \cdot 4 \leq 10^{+36}\right):\\
\;\;\;\;\left(b \cdot c - \left(4 \cdot \left(t \cdot a\right) + 4 \cdot \left(x \cdot i\right)\right)\right) - t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\right) - t\_1\\
\end{array}
\end{array}
if (*.f64 a 4) < -5.00000000000000008e204 or 1.00000000000000004e36 < (*.f64 a 4) Initial program 81.3%
Taylor expanded in y around 0 90.5%
if -5.00000000000000008e204 < (*.f64 a 4) < 1.00000000000000004e36Initial program 84.2%
Taylor expanded in x around 0 89.5%
Taylor expanded in a around 0 88.3%
Final simplification88.9%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k)))
(if (<= x -9.2e+117)
(+ (* b c) (* x (- (* 18.0 (* t (* y z))) (* 4.0 i))))
(if (or (<= x 6.2e-34) (not (<= x 1.95e+107)))
(- (- (* b c) (+ (* 4.0 (* t a)) (* 4.0 (* x i)))) t_1)
(- (+ (* b c) (* 18.0 (* t (* x (* y z))))) t_1)))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (x <= -9.2e+117) {
tmp = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
} else if ((x <= 6.2e-34) || !(x <= 1.95e+107)) {
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
} else {
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (j * 27.0d0) * k
if (x <= (-9.2d+117)) then
tmp = (b * c) + (x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i)))
else if ((x <= 6.2d-34) .or. (.not. (x <= 1.95d+107))) then
tmp = ((b * c) - ((4.0d0 * (t * a)) + (4.0d0 * (x * i)))) - t_1
else
tmp = ((b * c) + (18.0d0 * (t * (x * (y * z))))) - t_1
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (x <= -9.2e+117) {
tmp = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
} else if ((x <= 6.2e-34) || !(x <= 1.95e+107)) {
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
} else {
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k tmp = 0 if x <= -9.2e+117: tmp = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i))) elif (x <= 6.2e-34) or not (x <= 1.95e+107): tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1 else: tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (x <= -9.2e+117) tmp = Float64(Float64(b * c) + Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i)))); elseif ((x <= 6.2e-34) || !(x <= 1.95e+107)) tmp = Float64(Float64(Float64(b * c) - Float64(Float64(4.0 * Float64(t * a)) + Float64(4.0 * Float64(x * i)))) - t_1); else tmp = Float64(Float64(Float64(b * c) + Float64(18.0 * Float64(t * Float64(x * Float64(y * z))))) - t_1); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
tmp = 0.0;
if (x <= -9.2e+117)
tmp = (b * c) + (x * ((18.0 * (t * (y * z))) - (4.0 * i)));
elseif ((x <= 6.2e-34) || ~((x <= 1.95e+107)))
tmp = ((b * c) - ((4.0 * (t * a)) + (4.0 * (x * i)))) - t_1;
else
tmp = ((b * c) + (18.0 * (t * (x * (y * z))))) - t_1;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[x, -9.2e+117], N[(N[(b * c), $MachinePrecision] + N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[x, 6.2e-34], N[Not[LessEqual[x, 1.95e+107]], $MachinePrecision]], N[(N[(N[(b * c), $MachinePrecision] - N[(N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision] + N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], N[(N[(N[(b * c), $MachinePrecision] + N[(18.0 * N[(t * N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;x \leq -9.2 \cdot 10^{+117}:\\
\;\;\;\;b \cdot c + x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{elif}\;x \leq 6.2 \cdot 10^{-34} \lor \neg \left(x \leq 1.95 \cdot 10^{+107}\right):\\
\;\;\;\;\left(b \cdot c - \left(4 \cdot \left(t \cdot a\right) + 4 \cdot \left(x \cdot i\right)\right)\right) - t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot c + 18 \cdot \left(t \cdot \left(x \cdot \left(y \cdot z\right)\right)\right)\right) - t\_1\\
\end{array}
\end{array}
if x < -9.19999999999999951e117Initial program 64.6%
Taylor expanded in x around 0 95.4%
Taylor expanded in a around 0 93.2%
Taylor expanded in j around 0 93.4%
if -9.19999999999999951e117 < x < 6.1999999999999996e-34 or 1.9499999999999999e107 < x Initial program 88.3%
Taylor expanded in y around 0 84.0%
if 6.1999999999999996e-34 < x < 1.9499999999999999e107Initial program 79.0%
Taylor expanded in i around 0 75.0%
Taylor expanded in a around 0 83.0%
Final simplification85.5%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (* j 27.0) k)))
(if (<= x -3.3e+161)
(* x (- (* 18.0 (* t (* y z))) (* 4.0 i)))
(if (<= x 2.3e+34)
(- (- (* b c) (* 4.0 (* t a))) t_1)
(if (<= x 5.6e+106)
(+ (* j (* k -27.0)) (* x (* (* y t) (* 18.0 z))))
(- (- (* b c) (* 4.0 (* x i))) t_1))))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (x <= -3.3e+161) {
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
} else if (x <= 2.3e+34) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 5.6e+106) {
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
} else {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: tmp
t_1 = (j * 27.0d0) * k
if (x <= (-3.3d+161)) then
tmp = x * ((18.0d0 * (t * (y * z))) - (4.0d0 * i))
else if (x <= 2.3d+34) then
tmp = ((b * c) - (4.0d0 * (t * a))) - t_1
else if (x <= 5.6d+106) then
tmp = (j * (k * (-27.0d0))) + (x * ((y * t) * (18.0d0 * z)))
else
tmp = ((b * c) - (4.0d0 * (x * i))) - t_1
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = (j * 27.0) * k;
double tmp;
if (x <= -3.3e+161) {
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
} else if (x <= 2.3e+34) {
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
} else if (x <= 5.6e+106) {
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
} else {
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): t_1 = (j * 27.0) * k tmp = 0 if x <= -3.3e+161: tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i)) elif x <= 2.3e+34: tmp = ((b * c) - (4.0 * (t * a))) - t_1 elif x <= 5.6e+106: tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z))) else: tmp = ((b * c) - (4.0 * (x * i))) - t_1 return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (x <= -3.3e+161) tmp = Float64(x * Float64(Float64(18.0 * Float64(t * Float64(y * z))) - Float64(4.0 * i))); elseif (x <= 2.3e+34) tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(t * a))) - t_1); elseif (x <= 5.6e+106) tmp = Float64(Float64(j * Float64(k * -27.0)) + Float64(x * Float64(Float64(y * t) * Float64(18.0 * z)))); else tmp = Float64(Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))) - t_1); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
t_1 = (j * 27.0) * k;
tmp = 0.0;
if (x <= -3.3e+161)
tmp = x * ((18.0 * (t * (y * z))) - (4.0 * i));
elseif (x <= 2.3e+34)
tmp = ((b * c) - (4.0 * (t * a))) - t_1;
elseif (x <= 5.6e+106)
tmp = (j * (k * -27.0)) + (x * ((y * t) * (18.0 * z)));
else
tmp = ((b * c) - (4.0 * (x * i))) - t_1;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[x, -3.3e+161], N[(x * N[(N[(18.0 * N[(t * N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(4.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.3e+34], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 5.6e+106], N[(N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision] + N[(x * N[(N[(y * t), $MachinePrecision] * N[(18.0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
t_1 := \left(j \cdot 27\right) \cdot k\\
\mathbf{if}\;x \leq -3.3 \cdot 10^{+161}:\\
\;\;\;\;x \cdot \left(18 \cdot \left(t \cdot \left(y \cdot z\right)\right) - 4 \cdot i\right)\\
\mathbf{elif}\;x \leq 2.3 \cdot 10^{+34}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(t \cdot a\right)\right) - t\_1\\
\mathbf{elif}\;x \leq 5.6 \cdot 10^{+106}:\\
\;\;\;\;j \cdot \left(k \cdot -27\right) + x \cdot \left(\left(y \cdot t\right) \cdot \left(18 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot c - 4 \cdot \left(x \cdot i\right)\right) - t\_1\\
\end{array}
\end{array}
if x < -3.29999999999999997e161Initial program 66.9%
Simplified76.1%
Taylor expanded in x around inf 82.0%
if -3.29999999999999997e161 < x < 2.2999999999999998e34Initial program 90.7%
Taylor expanded in x around 0 73.5%
if 2.2999999999999998e34 < x < 5.59999999999999986e106Initial program 72.7%
Simplified90.9%
Taylor expanded in y around inf 81.9%
*-commutative81.9%
*-commutative81.9%
associate-*l*81.7%
*-commutative81.7%
associate-*r*81.9%
associate-*r*73.6%
associate-*l*73.6%
Simplified73.6%
if 5.59999999999999986e106 < x Initial program 76.1%
Taylor expanded in t around 0 81.3%
Final simplification76.3%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(if (<= (* b c) -1.3e+153)
(* b c)
(if (<= (* b c) 1.85e-302)
(* -27.0 (* j k))
(if (<= (* b c) 1.02e+183) (* (* x i) -4.0) (* b c)))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -1.3e+153) {
tmp = b * c;
} else if ((b * c) <= 1.85e-302) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.02e+183) {
tmp = (x * i) * -4.0;
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((b * c) <= (-1.3d+153)) then
tmp = b * c
else if ((b * c) <= 1.85d-302) then
tmp = (-27.0d0) * (j * k)
else if ((b * c) <= 1.02d+183) then
tmp = (x * i) * (-4.0d0)
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -1.3e+153) {
tmp = b * c;
} else if ((b * c) <= 1.85e-302) {
tmp = -27.0 * (j * k);
} else if ((b * c) <= 1.02e+183) {
tmp = (x * i) * -4.0;
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (b * c) <= -1.3e+153: tmp = b * c elif (b * c) <= 1.85e-302: tmp = -27.0 * (j * k) elif (b * c) <= 1.02e+183: tmp = (x * i) * -4.0 else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if (Float64(b * c) <= -1.3e+153) tmp = Float64(b * c); elseif (Float64(b * c) <= 1.85e-302) tmp = Float64(-27.0 * Float64(j * k)); elseif (Float64(b * c) <= 1.02e+183) tmp = Float64(Float64(x * i) * -4.0); else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((b * c) <= -1.3e+153)
tmp = b * c;
elseif ((b * c) <= 1.85e-302)
tmp = -27.0 * (j * k);
elseif ((b * c) <= 1.02e+183)
tmp = (x * i) * -4.0;
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[LessEqual[N[(b * c), $MachinePrecision], -1.3e+153], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.85e-302], N[(-27.0 * N[(j * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.02e+183], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], N[(b * c), $MachinePrecision]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;b \cdot c \leq -1.3 \cdot 10^{+153}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq 1.85 \cdot 10^{-302}:\\
\;\;\;\;-27 \cdot \left(j \cdot k\right)\\
\mathbf{elif}\;b \cdot c \leq 1.02 \cdot 10^{+183}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -1.2999999999999999e153 or 1.02000000000000002e183 < (*.f64 b c) Initial program 81.9%
Taylor expanded in x around 0 86.8%
Taylor expanded in a around 0 83.0%
Taylor expanded in b around inf 64.9%
if -1.2999999999999999e153 < (*.f64 b c) < 1.85e-302Initial program 88.1%
Simplified86.7%
Taylor expanded in j around inf 38.4%
if 1.85e-302 < (*.f64 b c) < 1.02000000000000002e183Initial program 79.4%
Simplified88.6%
Taylor expanded in x around inf 60.1%
Taylor expanded in t around 0 33.2%
Final simplification44.5%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
(FPCore (x y z t a b c i j k)
:precision binary64
(if (<= (* b c) -1.02e+153)
(* b c)
(if (<= (* b c) 2.8e-303)
(* k (* j -27.0))
(if (<= (* b c) 1.45e+181) (* (* x i) -4.0) (* b c)))))assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -1.02e+153) {
tmp = b * c;
} else if ((b * c) <= 2.8e-303) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 1.45e+181) {
tmp = (x * i) * -4.0;
} else {
tmp = b * c;
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((b * c) <= (-1.02d+153)) then
tmp = b * c
else if ((b * c) <= 2.8d-303) then
tmp = k * (j * (-27.0d0))
else if ((b * c) <= 1.45d+181) then
tmp = (x * i) * (-4.0d0)
else
tmp = b * c
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((b * c) <= -1.02e+153) {
tmp = b * c;
} else if ((b * c) <= 2.8e-303) {
tmp = k * (j * -27.0);
} else if ((b * c) <= 1.45e+181) {
tmp = (x * i) * -4.0;
} else {
tmp = b * c;
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (b * c) <= -1.02e+153: tmp = b * c elif (b * c) <= 2.8e-303: tmp = k * (j * -27.0) elif (b * c) <= 1.45e+181: tmp = (x * i) * -4.0 else: tmp = b * c return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if (Float64(b * c) <= -1.02e+153) tmp = Float64(b * c); elseif (Float64(b * c) <= 2.8e-303) tmp = Float64(k * Float64(j * -27.0)); elseif (Float64(b * c) <= 1.45e+181) tmp = Float64(Float64(x * i) * -4.0); else tmp = Float64(b * c); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((b * c) <= -1.02e+153)
tmp = b * c;
elseif ((b * c) <= 2.8e-303)
tmp = k * (j * -27.0);
elseif ((b * c) <= 1.45e+181)
tmp = (x * i) * -4.0;
else
tmp = b * c;
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[LessEqual[N[(b * c), $MachinePrecision], -1.02e+153], N[(b * c), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 2.8e-303], N[(k * N[(j * -27.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(b * c), $MachinePrecision], 1.45e+181], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], N[(b * c), $MachinePrecision]]]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;b \cdot c \leq -1.02 \cdot 10^{+153}:\\
\;\;\;\;b \cdot c\\
\mathbf{elif}\;b \cdot c \leq 2.8 \cdot 10^{-303}:\\
\;\;\;\;k \cdot \left(j \cdot -27\right)\\
\mathbf{elif}\;b \cdot c \leq 1.45 \cdot 10^{+181}:\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{else}:\\
\;\;\;\;b \cdot c\\
\end{array}
\end{array}
if (*.f64 b c) < -1.0199999999999999e153 or 1.45e181 < (*.f64 b c) Initial program 81.9%
Taylor expanded in x around 0 86.8%
Taylor expanded in a around 0 83.0%
Taylor expanded in b around inf 64.9%
if -1.0199999999999999e153 < (*.f64 b c) < 2.8e-303Initial program 88.1%
Taylor expanded in x around 0 87.8%
Taylor expanded in a around 0 79.6%
Taylor expanded in j around inf 38.4%
associate-*r*38.4%
Simplified38.4%
if 2.8e-303 < (*.f64 b c) < 1.45e181Initial program 79.4%
Simplified88.6%
Taylor expanded in x around inf 60.1%
Taylor expanded in t around 0 33.2%
Final simplification44.5%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. (FPCore (x y z t a b c i j k) :precision binary64 (if (or (<= (* b c) -1.1e+153) (not (<= (* b c) 1.8e+146))) (* b c) (* -27.0 (* j k))))
assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if (((b * c) <= -1.1e+153) || !((b * c) <= 1.8e+146)) {
tmp = b * c;
} else {
tmp = -27.0 * (j * k);
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if (((b * c) <= (-1.1d+153)) .or. (.not. ((b * c) <= 1.8d+146))) then
tmp = b * c
else
tmp = (-27.0d0) * (j * k)
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if (((b * c) <= -1.1e+153) || !((b * c) <= 1.8e+146)) {
tmp = b * c;
} else {
tmp = -27.0 * (j * k);
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if ((b * c) <= -1.1e+153) or not ((b * c) <= 1.8e+146): tmp = b * c else: tmp = -27.0 * (j * k) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if ((Float64(b * c) <= -1.1e+153) || !(Float64(b * c) <= 1.8e+146)) tmp = Float64(b * c); else tmp = Float64(-27.0 * Float64(j * k)); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if (((b * c) <= -1.1e+153) || ~(((b * c) <= 1.8e+146)))
tmp = b * c;
else
tmp = -27.0 * (j * k);
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[Or[LessEqual[N[(b * c), $MachinePrecision], -1.1e+153], N[Not[LessEqual[N[(b * c), $MachinePrecision], 1.8e+146]], $MachinePrecision]], N[(b * c), $MachinePrecision], N[(-27.0 * N[(j * k), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;b \cdot c \leq -1.1 \cdot 10^{+153} \lor \neg \left(b \cdot c \leq 1.8 \cdot 10^{+146}\right):\\
\;\;\;\;b \cdot c\\
\mathbf{else}:\\
\;\;\;\;-27 \cdot \left(j \cdot k\right)\\
\end{array}
\end{array}
if (*.f64 b c) < -1.1e153 or 1.7999999999999999e146 < (*.f64 b c) Initial program 82.8%
Taylor expanded in x around 0 87.5%
Taylor expanded in a around 0 82.6%
Taylor expanded in b around inf 61.8%
if -1.1e153 < (*.f64 b c) < 1.7999999999999999e146Initial program 83.6%
Simplified87.9%
Taylor expanded in j around inf 32.1%
Final simplification41.4%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. (FPCore (x y z t a b c i j k) :precision binary64 (if (or (<= i -3e+108) (not (<= i 1.05e+109))) (* (* x i) -4.0) (+ (* b c) (* j (* k -27.0)))))
assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((i <= -3e+108) || !(i <= 1.05e+109)) {
tmp = (x * i) * -4.0;
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((i <= (-3d+108)) .or. (.not. (i <= 1.05d+109))) then
tmp = (x * i) * (-4.0d0)
else
tmp = (b * c) + (j * (k * (-27.0d0)))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((i <= -3e+108) || !(i <= 1.05e+109)) {
tmp = (x * i) * -4.0;
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (i <= -3e+108) or not (i <= 1.05e+109): tmp = (x * i) * -4.0 else: tmp = (b * c) + (j * (k * -27.0)) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if ((i <= -3e+108) || !(i <= 1.05e+109)) tmp = Float64(Float64(x * i) * -4.0); else tmp = Float64(Float64(b * c) + Float64(j * Float64(k * -27.0))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((i <= -3e+108) || ~((i <= 1.05e+109)))
tmp = (x * i) * -4.0;
else
tmp = (b * c) + (j * (k * -27.0));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[Or[LessEqual[i, -3e+108], N[Not[LessEqual[i, 1.05e+109]], $MachinePrecision]], N[(N[(x * i), $MachinePrecision] * -4.0), $MachinePrecision], N[(N[(b * c), $MachinePrecision] + N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;i \leq -3 \cdot 10^{+108} \lor \neg \left(i \leq 1.05 \cdot 10^{+109}\right):\\
\;\;\;\;\left(x \cdot i\right) \cdot -4\\
\mathbf{else}:\\
\;\;\;\;b \cdot c + j \cdot \left(k \cdot -27\right)\\
\end{array}
\end{array}
if i < -2.99999999999999984e108 or 1.0500000000000001e109 < i Initial program 77.6%
Simplified79.2%
Taylor expanded in x around inf 65.1%
Taylor expanded in t around 0 51.4%
if -2.99999999999999984e108 < i < 1.0500000000000001e109Initial program 86.7%
Simplified90.9%
Taylor expanded in b around inf 56.2%
Final simplification54.4%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. (FPCore (x y z t a b c i j k) :precision binary64 (if (or (<= i -1.4e+108) (not (<= i 310000000.0))) (- (* b c) (* 4.0 (* x i))) (+ (* b c) (* j (* k -27.0)))))
assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((i <= -1.4e+108) || !(i <= 310000000.0)) {
tmp = (b * c) - (4.0 * (x * i));
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: tmp
if ((i <= (-1.4d+108)) .or. (.not. (i <= 310000000.0d0))) then
tmp = (b * c) - (4.0d0 * (x * i))
else
tmp = (b * c) + (j * (k * (-27.0d0)))
end if
code = tmp
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double tmp;
if ((i <= -1.4e+108) || !(i <= 310000000.0)) {
tmp = (b * c) - (4.0 * (x * i));
} else {
tmp = (b * c) + (j * (k * -27.0));
}
return tmp;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): tmp = 0 if (i <= -1.4e+108) or not (i <= 310000000.0): tmp = (b * c) - (4.0 * (x * i)) else: tmp = (b * c) + (j * (k * -27.0)) return tmp
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) tmp = 0.0 if ((i <= -1.4e+108) || !(i <= 310000000.0)) tmp = Float64(Float64(b * c) - Float64(4.0 * Float64(x * i))); else tmp = Float64(Float64(b * c) + Float64(j * Float64(k * -27.0))); end return tmp end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k)
tmp = 0.0;
if ((i <= -1.4e+108) || ~((i <= 310000000.0)))
tmp = (b * c) - (4.0 * (x * i));
else
tmp = (b * c) + (j * (k * -27.0));
end
tmp_2 = tmp;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := If[Or[LessEqual[i, -1.4e+108], N[Not[LessEqual[i, 310000000.0]], $MachinePrecision]], N[(N[(b * c), $MachinePrecision] - N[(4.0 * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(b * c), $MachinePrecision] + N[(j * N[(k * -27.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
\begin{array}{l}
\mathbf{if}\;i \leq -1.4 \cdot 10^{+108} \lor \neg \left(i \leq 310000000\right):\\
\;\;\;\;b \cdot c - 4 \cdot \left(x \cdot i\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot c + j \cdot \left(k \cdot -27\right)\\
\end{array}
\end{array}
if i < -1.3999999999999999e108 or 3.1e8 < i Initial program 78.8%
Taylor expanded in t around 0 65.8%
Taylor expanded in j around 0 57.0%
if -1.3999999999999999e108 < i < 3.1e8Initial program 87.2%
Simplified91.5%
Taylor expanded in b around inf 57.0%
Final simplification57.0%
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. (FPCore (x y z t a b c i j k) :precision binary64 (* b c))
assert(x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k);
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return b * c;
}
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function.
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
code = b * c
end function
assert x < y && y < z && z < t && t < a && a < b && b < c && c < i && i < j && j < k;
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
return b * c;
}
[x, y, z, t, a, b, c, i, j, k] = sort([x, y, z, t, a, b, c, i, j, k]) def code(x, y, z, t, a, b, c, i, j, k): return b * c
x, y, z, t, a, b, c, i, j, k = sort([x, y, z, t, a, b, c, i, j, k]) function code(x, y, z, t, a, b, c, i, j, k) return Float64(b * c) end
x, y, z, t, a, b, c, i, j, k = num2cell(sort([x, y, z, t, a, b, c, i, j, k])){:}
function tmp = code(x, y, z, t, a, b, c, i, j, k)
tmp = b * c;
end
NOTE: x, y, z, t, a, b, c, i, j, and k should be sorted in increasing order before calling this function. code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := N[(b * c), $MachinePrecision]
\begin{array}{l}
[x, y, z, t, a, b, c, i, j, k] = \mathsf{sort}([x, y, z, t, a, b, c, i, j, k])\\
\\
b \cdot c
\end{array}
Initial program 83.3%
Taylor expanded in x around 0 88.0%
Taylor expanded in a around 0 79.7%
Taylor expanded in b around inf 21.9%
Final simplification21.9%
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* (+ (* a t) (* i x)) 4.0))
(t_2
(-
(- (* (* 18.0 t) (* (* x y) z)) t_1)
(- (* (* k j) 27.0) (* c b)))))
(if (< t -1.6210815397541398e-69)
t_2
(if (< t 165.68027943805222)
(+ (- (* (* 18.0 y) (* x (* z t))) t_1) (- (* c b) (* 27.0 (* k j))))
t_2))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = ((a * t) + (i * x)) * 4.0;
double t_2 = (((18.0 * t) * ((x * y) * z)) - t_1) - (((k * j) * 27.0) - (c * b));
double tmp;
if (t < -1.6210815397541398e-69) {
tmp = t_2;
} else if (t < 165.68027943805222) {
tmp = (((18.0 * y) * (x * (z * t))) - t_1) + ((c * b) - (27.0 * (k * j)));
} else {
tmp = t_2;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i, j, k)
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), intent (in) :: j
real(8), intent (in) :: k
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = ((a * t) + (i * x)) * 4.0d0
t_2 = (((18.0d0 * t) * ((x * y) * z)) - t_1) - (((k * j) * 27.0d0) - (c * b))
if (t < (-1.6210815397541398d-69)) then
tmp = t_2
else if (t < 165.68027943805222d0) then
tmp = (((18.0d0 * y) * (x * (z * t))) - t_1) + ((c * b) - (27.0d0 * (k * j)))
else
tmp = t_2
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double t_1 = ((a * t) + (i * x)) * 4.0;
double t_2 = (((18.0 * t) * ((x * y) * z)) - t_1) - (((k * j) * 27.0) - (c * b));
double tmp;
if (t < -1.6210815397541398e-69) {
tmp = t_2;
} else if (t < 165.68027943805222) {
tmp = (((18.0 * y) * (x * (z * t))) - t_1) + ((c * b) - (27.0 * (k * j)));
} else {
tmp = t_2;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k): t_1 = ((a * t) + (i * x)) * 4.0 t_2 = (((18.0 * t) * ((x * y) * z)) - t_1) - (((k * j) * 27.0) - (c * b)) tmp = 0 if t < -1.6210815397541398e-69: tmp = t_2 elif t < 165.68027943805222: tmp = (((18.0 * y) * (x * (z * t))) - t_1) + ((c * b) - (27.0 * (k * j))) else: tmp = t_2 return tmp
function code(x, y, z, t, a, b, c, i, j, k) t_1 = Float64(Float64(Float64(a * t) + Float64(i * x)) * 4.0) t_2 = Float64(Float64(Float64(Float64(18.0 * t) * Float64(Float64(x * y) * z)) - t_1) - Float64(Float64(Float64(k * j) * 27.0) - Float64(c * b))) tmp = 0.0 if (t < -1.6210815397541398e-69) tmp = t_2; elseif (t < 165.68027943805222) tmp = Float64(Float64(Float64(Float64(18.0 * y) * Float64(x * Float64(z * t))) - t_1) + Float64(Float64(c * b) - Float64(27.0 * Float64(k * j)))); else tmp = t_2; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k) t_1 = ((a * t) + (i * x)) * 4.0; t_2 = (((18.0 * t) * ((x * y) * z)) - t_1) - (((k * j) * 27.0) - (c * b)); tmp = 0.0; if (t < -1.6210815397541398e-69) tmp = t_2; elseif (t < 165.68027943805222) tmp = (((18.0 * y) * (x * (z * t))) - t_1) + ((c * b) - (27.0 * (k * j))); else tmp = t_2; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_] := Block[{t$95$1 = N[(N[(N[(a * t), $MachinePrecision] + N[(i * x), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[(18.0 * t), $MachinePrecision] * N[(N[(x * y), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision] - N[(N[(N[(k * j), $MachinePrecision] * 27.0), $MachinePrecision] - N[(c * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[t, -1.6210815397541398e-69], t$95$2, If[Less[t, 165.68027943805222], N[(N[(N[(N[(18.0 * y), $MachinePrecision] * N[(x * N[(z * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision] + N[(N[(c * b), $MachinePrecision] - N[(27.0 * N[(k * j), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(a \cdot t + i \cdot x\right) \cdot 4\\
t_2 := \left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - t\_1\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\
\mathbf{if}\;t < -1.6210815397541398 \cdot 10^{-69}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t < 165.68027943805222:\\
\;\;\;\;\left(\left(18 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - t\_1\right) + \left(c \cdot b - 27 \cdot \left(k \cdot j\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
herbie shell --seed 2024026
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, E"
:precision binary64
:herbie-target
(if (< t -1.6210815397541398e-69) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18.0 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4.0)) (- (* c b) (* 27.0 (* k j)))) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b)))))
(- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))