
(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 16 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
(if (or (<= t -1.25e+112) (not (<= t 2e-47)))
(fma
(* -27.0 j)
k
(fma (fma z (* y (* 18.0 x)) (* -4.0 a)) t (fma c b (* (* -4.0 x) i))))
(fma
(* 18.0 y)
(* x (* t z))
(fma t (* a -4.0) (fma (* k j) -27.0 (fma b c (* i (* -4.0 x))))))))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 ((t <= -1.25e+112) || !(t <= 2e-47)) {
tmp = fma((-27.0 * j), k, fma(fma(z, (y * (18.0 * x)), (-4.0 * a)), t, fma(c, b, ((-4.0 * x) * i))));
} else {
tmp = fma((18.0 * y), (x * (t * z)), fma(t, (a * -4.0), fma((k * j), -27.0, fma(b, c, (i * (-4.0 * x))))));
}
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 ((t <= -1.25e+112) || !(t <= 2e-47)) tmp = fma(Float64(-27.0 * j), k, fma(fma(z, Float64(y * Float64(18.0 * x)), Float64(-4.0 * a)), t, fma(c, b, Float64(Float64(-4.0 * x) * i)))); else tmp = fma(Float64(18.0 * y), Float64(x * Float64(t * z)), fma(t, Float64(a * -4.0), fma(Float64(k * j), -27.0, fma(b, c, Float64(i * Float64(-4.0 * x)))))); end return 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[t, -1.25e+112], N[Not[LessEqual[t, 2e-47]], $MachinePrecision]], N[(N[(-27.0 * j), $MachinePrecision] * k + N[(N[(z * N[(y * N[(18.0 * x), $MachinePrecision]), $MachinePrecision] + N[(-4.0 * a), $MachinePrecision]), $MachinePrecision] * t + N[(c * b + N[(N[(-4.0 * x), $MachinePrecision] * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(18.0 * y), $MachinePrecision] * N[(x * N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(t * N[(a * -4.0), $MachinePrecision] + N[(N[(k * j), $MachinePrecision] * -27.0 + N[(b * c + N[(i * N[(-4.0 * x), $MachinePrecision]), $MachinePrecision]), $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}\;t \leq -1.25 \cdot 10^{+112} \lor \neg \left(t \leq 2 \cdot 10^{-47}\right):\\
\;\;\;\;\mathsf{fma}\left(-27 \cdot j, k, \mathsf{fma}\left(\mathsf{fma}\left(z, y \cdot \left(18 \cdot x\right), -4 \cdot a\right), t, \mathsf{fma}\left(c, b, \left(-4 \cdot x\right) \cdot i\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot y, x \cdot \left(t \cdot z\right), \mathsf{fma}\left(t, a \cdot -4, \mathsf{fma}\left(k \cdot j, -27, \mathsf{fma}\left(b, c, i \cdot \left(-4 \cdot x\right)\right)\right)\right)\right)\\
\end{array}
\end{array}
if t < -1.25e112 or 1.9999999999999999e-47 < t Initial program 79.3%
Applied rewrites95.8%
if -1.25e112 < t < 1.9999999999999999e-47Initial program 86.4%
Applied rewrites86.4%
Applied rewrites96.2%
Final simplification96.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
(if (or (<= t -1.4e-126) (not (<= t 1.1e+51)))
(fma
(* -27.0 j)
k
(fma (fma z (* y (* 18.0 x)) (* -4.0 a)) t (fma c b (* (* -4.0 x) i))))
(fma
(* k j)
-27.0
(fma (* (* x 18.0) (* t y)) z (fma (fma i x (* a t)) -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 ((t <= -1.4e-126) || !(t <= 1.1e+51)) {
tmp = fma((-27.0 * j), k, fma(fma(z, (y * (18.0 * x)), (-4.0 * a)), t, fma(c, b, ((-4.0 * x) * i))));
} else {
tmp = fma((k * j), -27.0, fma(((x * 18.0) * (t * y)), z, fma(fma(i, x, (a * t)), -4.0, (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 ((t <= -1.4e-126) || !(t <= 1.1e+51)) tmp = fma(Float64(-27.0 * j), k, fma(fma(z, Float64(y * Float64(18.0 * x)), Float64(-4.0 * a)), t, fma(c, b, Float64(Float64(-4.0 * x) * i)))); else tmp = fma(Float64(k * j), -27.0, fma(Float64(Float64(x * 18.0) * Float64(t * y)), z, fma(fma(i, x, Float64(a * t)), -4.0, Float64(b * c)))); end return 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[t, -1.4e-126], N[Not[LessEqual[t, 1.1e+51]], $MachinePrecision]], N[(N[(-27.0 * j), $MachinePrecision] * k + N[(N[(z * N[(y * N[(18.0 * x), $MachinePrecision]), $MachinePrecision] + N[(-4.0 * a), $MachinePrecision]), $MachinePrecision] * t + N[(c * b + N[(N[(-4.0 * x), $MachinePrecision] * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(k * j), $MachinePrecision] * -27.0 + N[(N[(N[(x * 18.0), $MachinePrecision] * N[(t * y), $MachinePrecision]), $MachinePrecision] * z + N[(N[(i * x + N[(a * t), $MachinePrecision]), $MachinePrecision] * -4.0 + N[(b * c), $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}\;t \leq -1.4 \cdot 10^{-126} \lor \neg \left(t \leq 1.1 \cdot 10^{+51}\right):\\
\;\;\;\;\mathsf{fma}\left(-27 \cdot j, k, \mathsf{fma}\left(\mathsf{fma}\left(z, y \cdot \left(18 \cdot x\right), -4 \cdot a\right), t, \mathsf{fma}\left(c, b, \left(-4 \cdot x\right) \cdot i\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot j, -27, \mathsf{fma}\left(\left(x \cdot 18\right) \cdot \left(t \cdot y\right), z, \mathsf{fma}\left(\mathsf{fma}\left(i, x, a \cdot t\right), -4, b \cdot c\right)\right)\right)\\
\end{array}
\end{array}
if t < -1.39999999999999996e-126 or 1.09999999999999996e51 < t Initial program 79.2%
Applied rewrites92.6%
if -1.39999999999999996e-126 < t < 1.09999999999999996e51Initial program 88.4%
lift--.f64N/A
lift-+.f64N/A
associate--l+N/A
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
associate-+l+N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lower-fma.f64N/A
Applied rewrites97.3%
Taylor expanded in x around 0
associate-+r+N/A
+-commutativeN/A
distribute-lft-outN/A
lower-fma.f64N/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6496.4
Applied rewrites96.4%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
+-commutativeN/A
lift-*.f64N/A
distribute-rgt-neg-inN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
Applied rewrites98.1%
Final simplification94.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 (<= x -1.16e+210)
(* (fma (* 18.0 z) (* t y) (* i -4.0)) x)
(if (<= x 7.8e+135)
(fma
(* 18.0 y)
(* x (* t z))
(fma t (* a -4.0) (fma (* j k) -27.0 (* c b))))
(* (fma (* (* t z) y) 18.0 (* i -4.0)) x))))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 <= -1.16e+210) {
tmp = fma((18.0 * z), (t * y), (i * -4.0)) * x;
} else if (x <= 7.8e+135) {
tmp = fma((18.0 * y), (x * (t * z)), fma(t, (a * -4.0), fma((j * k), -27.0, (c * b))));
} else {
tmp = fma(((t * z) * y), 18.0, (i * -4.0)) * x;
}
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 <= -1.16e+210) tmp = Float64(fma(Float64(18.0 * z), Float64(t * y), Float64(i * -4.0)) * x); elseif (x <= 7.8e+135) tmp = fma(Float64(18.0 * y), Float64(x * Float64(t * z)), fma(t, Float64(a * -4.0), fma(Float64(j * k), -27.0, Float64(c * b)))); else tmp = Float64(fma(Float64(Float64(t * z) * y), 18.0, Float64(i * -4.0)) * x); end return 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[x, -1.16e+210], N[(N[(N[(18.0 * z), $MachinePrecision] * N[(t * y), $MachinePrecision] + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], If[LessEqual[x, 7.8e+135], N[(N[(18.0 * y), $MachinePrecision] * N[(x * N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(t * N[(a * -4.0), $MachinePrecision] + N[(N[(j * k), $MachinePrecision] * -27.0 + N[(c * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(t * z), $MachinePrecision] * y), $MachinePrecision] * 18.0 + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $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 -1.16 \cdot 10^{+210}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot z, t \cdot y, i \cdot -4\right) \cdot x\\
\mathbf{elif}\;x \leq 7.8 \cdot 10^{+135}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot y, x \cdot \left(t \cdot z\right), \mathsf{fma}\left(t, a \cdot -4, \mathsf{fma}\left(j \cdot k, -27, c \cdot b\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(t \cdot z\right) \cdot y, 18, i \cdot -4\right) \cdot x\\
\end{array}
\end{array}
if x < -1.16e210Initial program 71.4%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6495.2
Applied rewrites95.2%
Applied rewrites100.0%
if -1.16e210 < x < 7.80000000000000064e135Initial program 86.0%
Applied rewrites92.4%
Applied rewrites90.2%
Taylor expanded in x around 0
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6478.8
Applied rewrites78.8%
if 7.80000000000000064e135 < x Initial program 71.2%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6484.1
Applied rewrites84.1%
Applied rewrites84.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
(if (<= y -8.5e+178)
(fma
(* 18.0 y)
(* x (* t z))
(fma t (* a -4.0) (fma (* j k) -27.0 (* c b))))
(fma
(* -27.0 j)
k
(fma (fma z (* y (* 18.0 x)) (* -4.0 a)) t (fma c b (* (* -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 tmp;
if (y <= -8.5e+178) {
tmp = fma((18.0 * y), (x * (t * z)), fma(t, (a * -4.0), fma((j * k), -27.0, (c * b))));
} else {
tmp = fma((-27.0 * j), k, fma(fma(z, (y * (18.0 * x)), (-4.0 * a)), t, fma(c, b, ((-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) tmp = 0.0 if (y <= -8.5e+178) tmp = fma(Float64(18.0 * y), Float64(x * Float64(t * z)), fma(t, Float64(a * -4.0), fma(Float64(j * k), -27.0, Float64(c * b)))); else tmp = fma(Float64(-27.0 * j), k, fma(fma(z, Float64(y * Float64(18.0 * x)), Float64(-4.0 * a)), t, fma(c, b, Float64(Float64(-4.0 * x) * i)))); end return 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[y, -8.5e+178], N[(N[(18.0 * y), $MachinePrecision] * N[(x * N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(t * N[(a * -4.0), $MachinePrecision] + N[(N[(j * k), $MachinePrecision] * -27.0 + N[(c * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(-27.0 * j), $MachinePrecision] * k + N[(N[(z * N[(y * N[(18.0 * x), $MachinePrecision]), $MachinePrecision] + N[(-4.0 * a), $MachinePrecision]), $MachinePrecision] * t + N[(c * b + N[(N[(-4.0 * x), $MachinePrecision] * i), $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}\;y \leq -8.5 \cdot 10^{+178}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot y, x \cdot \left(t \cdot z\right), \mathsf{fma}\left(t, a \cdot -4, \mathsf{fma}\left(j \cdot k, -27, c \cdot b\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-27 \cdot j, k, \mathsf{fma}\left(\mathsf{fma}\left(z, y \cdot \left(18 \cdot x\right), -4 \cdot a\right), t, \mathsf{fma}\left(c, b, \left(-4 \cdot x\right) \cdot i\right)\right)\right)\\
\end{array}
\end{array}
if y < -8.49999999999999991e178Initial program 61.7%
Applied rewrites68.9%
Applied rewrites89.2%
Taylor expanded in x around 0
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6492.7
Applied rewrites92.7%
if -8.49999999999999991e178 < y Initial program 85.6%
Applied rewrites93.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 (<= i -1.5e+171) (not (<= i 5e+99))) (- (fma (* i x) -4.0 (* c b)) (* (* k j) 27.0)) (fma (* -27.0 j) k (fma (fma -4.0 a (* (* (* z y) x) 18.0)) t (* c b)))))
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.5e+171) || !(i <= 5e+99)) {
tmp = fma((i * x), -4.0, (c * b)) - ((k * j) * 27.0);
} else {
tmp = fma((-27.0 * j), k, fma(fma(-4.0, a, (((z * y) * x) * 18.0)), t, (c * b)));
}
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.5e+171) || !(i <= 5e+99)) tmp = Float64(fma(Float64(i * x), -4.0, Float64(c * b)) - Float64(Float64(k * j) * 27.0)); else tmp = fma(Float64(-27.0 * j), k, fma(fma(-4.0, a, Float64(Float64(Float64(z * y) * x) * 18.0)), t, Float64(c * b))); end return 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.5e+171], N[Not[LessEqual[i, 5e+99]], $MachinePrecision]], N[(N[(N[(i * x), $MachinePrecision] * -4.0 + N[(c * b), $MachinePrecision]), $MachinePrecision] - N[(N[(k * j), $MachinePrecision] * 27.0), $MachinePrecision]), $MachinePrecision], N[(N[(-27.0 * j), $MachinePrecision] * k + N[(N[(-4.0 * a + N[(N[(N[(z * y), $MachinePrecision] * x), $MachinePrecision] * 18.0), $MachinePrecision]), $MachinePrecision] * t + N[(c * b), $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.5 \cdot 10^{+171} \lor \neg \left(i \leq 5 \cdot 10^{+99}\right):\\
\;\;\;\;\mathsf{fma}\left(i \cdot x, -4, c \cdot b\right) - \left(k \cdot j\right) \cdot 27\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-27 \cdot j, k, \mathsf{fma}\left(\mathsf{fma}\left(-4, a, \left(\left(z \cdot y\right) \cdot x\right) \cdot 18\right), t, c \cdot b\right)\right)\\
\end{array}
\end{array}
if i < -1.5e171 or 5.00000000000000008e99 < i Initial program 81.5%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6478.0
Applied rewrites78.0%
if -1.5e171 < i < 5.00000000000000008e99Initial program 83.7%
Taylor expanded in i around 0
+-commutativeN/A
associate--r+N/A
metadata-evalN/A
fp-cancel-sign-sub-invN/A
+-commutativeN/A
associate--l+N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
+-commutativeN/A
associate--l+N/A
+-commutativeN/A
Applied rewrites84.4%
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 (if (or (<= (* b c) -2e+133) (not (<= (* b c) 2e+68))) (fma (* k -27.0) j (* c b)) (fma (* i x) -4.0 (* (* k j) -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 (((b * c) <= -2e+133) || !((b * c) <= 2e+68)) {
tmp = fma((k * -27.0), j, (c * b));
} else {
tmp = fma((i * x), -4.0, ((k * j) * -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 ((Float64(b * c) <= -2e+133) || !(Float64(b * c) <= 2e+68)) tmp = fma(Float64(k * -27.0), j, Float64(c * b)); else tmp = fma(Float64(i * x), -4.0, Float64(Float64(k * j) * -27.0)); end return 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], -2e+133], N[Not[LessEqual[N[(b * c), $MachinePrecision], 2e+68]], $MachinePrecision]], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $MachinePrecision]), $MachinePrecision], N[(N[(i * x), $MachinePrecision] * -4.0 + N[(N[(k * j), $MachinePrecision] * -27.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}
\mathbf{if}\;b \cdot c \leq -2 \cdot 10^{+133} \lor \neg \left(b \cdot c \leq 2 \cdot 10^{+68}\right):\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(i \cdot x, -4, \left(k \cdot j\right) \cdot -27\right)\\
\end{array}
\end{array}
if (*.f64 b c) < -2e133 or 1.99999999999999991e68 < (*.f64 b c) Initial program 77.3%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6473.6
Applied rewrites73.6%
Taylor expanded in x around 0
Applied rewrites66.1%
Applied rewrites66.2%
if -2e133 < (*.f64 b c) < 1.99999999999999991e68Initial program 86.0%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6452.3
Applied rewrites52.3%
Taylor expanded in b around 0
Applied rewrites47.2%
Final simplification53.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 (* (* j 27.0) k)))
(if (or (<= t_1 -1e+159) (not (<= t_1 5e+86)))
(* (* -27.0 j) k)
(* (* -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 * 27.0) * k;
double tmp;
if ((t_1 <= -1e+159) || !(t_1 <= 5e+86)) {
tmp = (-27.0 * j) * k;
} else {
tmp = (-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) :: tmp
t_1 = (j * 27.0d0) * k
if ((t_1 <= (-1d+159)) .or. (.not. (t_1 <= 5d+86))) then
tmp = ((-27.0d0) * j) * k
else
tmp = ((-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 * 27.0) * k;
double tmp;
if ((t_1 <= -1e+159) || !(t_1 <= 5e+86)) {
tmp = (-27.0 * j) * k;
} else {
tmp = (-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 * 27.0) * k tmp = 0 if (t_1 <= -1e+159) or not (t_1 <= 5e+86): tmp = (-27.0 * j) * k else: tmp = (-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(Float64(j * 27.0) * k) tmp = 0.0 if ((t_1 <= -1e+159) || !(t_1 <= 5e+86)) tmp = Float64(Float64(-27.0 * j) * k); else tmp = Float64(Float64(-4.0 * 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 * 27.0) * k;
tmp = 0.0;
if ((t_1 <= -1e+159) || ~((t_1 <= 5e+86)))
tmp = (-27.0 * j) * k;
else
tmp = (-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[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[Or[LessEqual[t$95$1, -1e+159], N[Not[LessEqual[t$95$1, 5e+86]], $MachinePrecision]], N[(N[(-27.0 * j), $MachinePrecision] * k), $MachinePrecision], N[(N[(-4.0 * x), $MachinePrecision] * i), $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 -1 \cdot 10^{+159} \lor \neg \left(t\_1 \leq 5 \cdot 10^{+86}\right):\\
\;\;\;\;\left(-27 \cdot j\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;\left(-4 \cdot x\right) \cdot i\\
\end{array}
\end{array}
if (*.f64 (*.f64 j #s(literal 27 binary64)) k) < -9.9999999999999993e158 or 4.9999999999999998e86 < (*.f64 (*.f64 j #s(literal 27 binary64)) k) Initial program 76.9%
Taylor expanded in j around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f6456.0
Applied rewrites56.0%
if -9.9999999999999993e158 < (*.f64 (*.f64 j #s(literal 27 binary64)) k) < 4.9999999999999998e86Initial program 86.1%
Taylor expanded in i around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
Final simplification36.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 -1e+159)
(* (* k -27.0) j)
(if (<= t_1 5e+86) (* (* -4.0 x) i) (* (* -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 t_1 = (j * 27.0) * k;
double tmp;
if (t_1 <= -1e+159) {
tmp = (k * -27.0) * j;
} else if (t_1 <= 5e+86) {
tmp = (-4.0 * x) * i;
} 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) :: t_1
real(8) :: tmp
t_1 = (j * 27.0d0) * k
if (t_1 <= (-1d+159)) then
tmp = (k * (-27.0d0)) * j
else if (t_1 <= 5d+86) then
tmp = ((-4.0d0) * x) * i
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 t_1 = (j * 27.0) * k;
double tmp;
if (t_1 <= -1e+159) {
tmp = (k * -27.0) * j;
} else if (t_1 <= 5e+86) {
tmp = (-4.0 * x) * i;
} 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): t_1 = (j * 27.0) * k tmp = 0 if t_1 <= -1e+159: tmp = (k * -27.0) * j elif t_1 <= 5e+86: tmp = (-4.0 * x) * i 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) t_1 = Float64(Float64(j * 27.0) * k) tmp = 0.0 if (t_1 <= -1e+159) tmp = Float64(Float64(k * -27.0) * j); elseif (t_1 <= 5e+86) tmp = Float64(Float64(-4.0 * x) * i); else tmp = Float64(Float64(-27.0 * 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)
t_1 = (j * 27.0) * k;
tmp = 0.0;
if (t_1 <= -1e+159)
tmp = (k * -27.0) * j;
elseif (t_1 <= 5e+86)
tmp = (-4.0 * x) * i;
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_] := Block[{t$95$1 = N[(N[(j * 27.0), $MachinePrecision] * k), $MachinePrecision]}, If[LessEqual[t$95$1, -1e+159], N[(N[(k * -27.0), $MachinePrecision] * j), $MachinePrecision], If[LessEqual[t$95$1, 5e+86], N[(N[(-4.0 * x), $MachinePrecision] * i), $MachinePrecision], N[(N[(-27.0 * j), $MachinePrecision] * k), $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 -1 \cdot 10^{+159}:\\
\;\;\;\;\left(k \cdot -27\right) \cdot j\\
\mathbf{elif}\;t\_1 \leq 5 \cdot 10^{+86}:\\
\;\;\;\;\left(-4 \cdot x\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;\left(-27 \cdot j\right) \cdot k\\
\end{array}
\end{array}
if (*.f64 (*.f64 j #s(literal 27 binary64)) k) < -9.9999999999999993e158Initial program 75.1%
Taylor expanded in j around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f6459.7
Applied rewrites59.7%
Applied rewrites59.8%
if -9.9999999999999993e158 < (*.f64 (*.f64 j #s(literal 27 binary64)) k) < 4.9999999999999998e86Initial program 86.1%
Taylor expanded in i around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
if 4.9999999999999998e86 < (*.f64 (*.f64 j #s(literal 27 binary64)) k) Initial program 78.8%
Taylor expanded in j around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f6452.1
Applied rewrites52.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
(if (<= x -7.2e+61)
(* (fma (* 18.0 z) (* t y) (* i -4.0)) x)
(if (<= x 1.7e+135)
(fma (* -27.0 j) k (fma (* t a) -4.0 (* b c)))
(* (fma (* (* t z) y) 18.0 (* i -4.0)) x))))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 <= -7.2e+61) {
tmp = fma((18.0 * z), (t * y), (i * -4.0)) * x;
} else if (x <= 1.7e+135) {
tmp = fma((-27.0 * j), k, fma((t * a), -4.0, (b * c)));
} else {
tmp = fma(((t * z) * y), 18.0, (i * -4.0)) * x;
}
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 <= -7.2e+61) tmp = Float64(fma(Float64(18.0 * z), Float64(t * y), Float64(i * -4.0)) * x); elseif (x <= 1.7e+135) tmp = fma(Float64(-27.0 * j), k, fma(Float64(t * a), -4.0, Float64(b * c))); else tmp = Float64(fma(Float64(Float64(t * z) * y), 18.0, Float64(i * -4.0)) * x); end return 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[x, -7.2e+61], N[(N[(N[(18.0 * z), $MachinePrecision] * N[(t * y), $MachinePrecision] + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], If[LessEqual[x, 1.7e+135], N[(N[(-27.0 * j), $MachinePrecision] * k + N[(N[(t * a), $MachinePrecision] * -4.0 + N[(b * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(t * z), $MachinePrecision] * y), $MachinePrecision] * 18.0 + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $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 -7.2 \cdot 10^{+61}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot z, t \cdot y, i \cdot -4\right) \cdot x\\
\mathbf{elif}\;x \leq 1.7 \cdot 10^{+135}:\\
\;\;\;\;\mathsf{fma}\left(-27 \cdot j, k, \mathsf{fma}\left(t \cdot a, -4, b \cdot c\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(t \cdot z\right) \cdot y, 18, i \cdot -4\right) \cdot x\\
\end{array}
\end{array}
if x < -7.20000000000000021e61Initial program 79.1%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6477.7
Applied rewrites77.7%
Applied rewrites77.7%
if -7.20000000000000021e61 < x < 1.70000000000000005e135Initial program 86.3%
Applied rewrites92.1%
Taylor expanded in x around 0
*-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6473.6
Applied rewrites73.6%
if 1.70000000000000005e135 < x Initial program 71.2%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6484.1
Applied rewrites84.1%
Applied rewrites84.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 (if (or (<= x -4.3e-49) (not (<= x 6.8e+44))) (* (fma (* 18.0 z) (* t y) (* i -4.0)) x) (fma (* k -27.0) j (* c b))))
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 <= -4.3e-49) || !(x <= 6.8e+44)) {
tmp = fma((18.0 * z), (t * y), (i * -4.0)) * x;
} else {
tmp = fma((k * -27.0), j, (c * b));
}
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 <= -4.3e-49) || !(x <= 6.8e+44)) tmp = Float64(fma(Float64(18.0 * z), Float64(t * y), Float64(i * -4.0)) * x); else tmp = fma(Float64(k * -27.0), j, Float64(c * b)); end return 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, -4.3e-49], N[Not[LessEqual[x, 6.8e+44]], $MachinePrecision]], N[(N[(N[(18.0 * z), $MachinePrecision] * N[(t * y), $MachinePrecision] + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $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 -4.3 \cdot 10^{-49} \lor \neg \left(x \leq 6.8 \cdot 10^{+44}\right):\\
\;\;\;\;\mathsf{fma}\left(18 \cdot z, t \cdot y, i \cdot -4\right) \cdot x\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\end{array}
\end{array}
if x < -4.30000000000000016e-49 or 6.8e44 < x Initial program 76.1%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6467.6
Applied rewrites67.6%
Applied rewrites68.7%
if -4.30000000000000016e-49 < x < 6.8e44Initial program 89.1%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.8
Applied rewrites64.8%
Taylor expanded in x around 0
Applied rewrites58.4%
Applied rewrites58.5%
Final simplification63.2%
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 -4.3e-49) (not (<= x 1.7e+135))) (* (fma -4.0 i (* (* (* z y) t) 18.0)) x) (fma (* k -27.0) j (* c b))))
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 <= -4.3e-49) || !(x <= 1.7e+135)) {
tmp = fma(-4.0, i, (((z * y) * t) * 18.0)) * x;
} else {
tmp = fma((k * -27.0), j, (c * b));
}
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 <= -4.3e-49) || !(x <= 1.7e+135)) tmp = Float64(fma(-4.0, i, Float64(Float64(Float64(z * y) * t) * 18.0)) * x); else tmp = fma(Float64(k * -27.0), j, Float64(c * b)); end return 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, -4.3e-49], N[Not[LessEqual[x, 1.7e+135]], $MachinePrecision]], N[(N[(-4.0 * i + N[(N[(N[(z * y), $MachinePrecision] * t), $MachinePrecision] * 18.0), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $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 -4.3 \cdot 10^{-49} \lor \neg \left(x \leq 1.7 \cdot 10^{+135}\right):\\
\;\;\;\;\mathsf{fma}\left(-4, i, \left(\left(z \cdot y\right) \cdot t\right) \cdot 18\right) \cdot x\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\end{array}
\end{array}
if x < -4.30000000000000016e-49 or 1.70000000000000005e135 < x Initial program 77.8%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6473.6
Applied rewrites73.6%
if -4.30000000000000016e-49 < x < 1.70000000000000005e135Initial program 86.5%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6463.6
Applied rewrites63.6%
Taylor expanded in x around 0
Applied rewrites56.7%
Applied rewrites56.7%
Final simplification63.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 (<= x -4.3e-49)
(* (fma (* 18.0 z) (* t y) (* i -4.0)) x)
(if (<= x 4.2e+30)
(fma (* k -27.0) j (* c b))
(* (fma (* (* t z) y) 18.0 (* i -4.0)) x))))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 <= -4.3e-49) {
tmp = fma((18.0 * z), (t * y), (i * -4.0)) * x;
} else if (x <= 4.2e+30) {
tmp = fma((k * -27.0), j, (c * b));
} else {
tmp = fma(((t * z) * y), 18.0, (i * -4.0)) * x;
}
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 <= -4.3e-49) tmp = Float64(fma(Float64(18.0 * z), Float64(t * y), Float64(i * -4.0)) * x); elseif (x <= 4.2e+30) tmp = fma(Float64(k * -27.0), j, Float64(c * b)); else tmp = Float64(fma(Float64(Float64(t * z) * y), 18.0, Float64(i * -4.0)) * x); end return 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[x, -4.3e-49], N[(N[(N[(18.0 * z), $MachinePrecision] * N[(t * y), $MachinePrecision] + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], If[LessEqual[x, 4.2e+30], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(t * z), $MachinePrecision] * y), $MachinePrecision] * 18.0 + N[(i * -4.0), $MachinePrecision]), $MachinePrecision] * x), $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 -4.3 \cdot 10^{-49}:\\
\;\;\;\;\mathsf{fma}\left(18 \cdot z, t \cdot y, i \cdot -4\right) \cdot x\\
\mathbf{elif}\;x \leq 4.2 \cdot 10^{+30}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(t \cdot z\right) \cdot y, 18, i \cdot -4\right) \cdot x\\
\end{array}
\end{array}
if x < -4.30000000000000016e-49Initial program 80.7%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6469.0
Applied rewrites69.0%
Applied rewrites67.7%
if -4.30000000000000016e-49 < x < 4.2e30Initial program 90.3%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.4
Applied rewrites64.4%
Taylor expanded in x around 0
Applied rewrites58.6%
Applied rewrites58.7%
if 4.2e30 < x Initial program 67.9%
Taylor expanded in x around inf
*-commutativeN/A
lower-*.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
lower-fma.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.3
Applied rewrites64.3%
Applied rewrites70.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 (<= x -4.6e+63) (not (<= x 7.8e+135))) (* (* -4.0 x) i) (fma (* k -27.0) j (* c b))))
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 <= -4.6e+63) || !(x <= 7.8e+135)) {
tmp = (-4.0 * x) * i;
} else {
tmp = fma((k * -27.0), j, (c * b));
}
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 <= -4.6e+63) || !(x <= 7.8e+135)) tmp = Float64(Float64(-4.0 * x) * i); else tmp = fma(Float64(k * -27.0), j, Float64(c * b)); end return 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, -4.6e+63], N[Not[LessEqual[x, 7.8e+135]], $MachinePrecision]], N[(N[(-4.0 * x), $MachinePrecision] * i), $MachinePrecision], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $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 -4.6 \cdot 10^{+63} \lor \neg \left(x \leq 7.8 \cdot 10^{+135}\right):\\
\;\;\;\;\left(-4 \cdot x\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\end{array}
\end{array}
if x < -4.59999999999999986e63 or 7.80000000000000064e135 < x Initial program 76.2%
Taylor expanded in i around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6446.1
Applied rewrites46.1%
if -4.59999999999999986e63 < x < 7.80000000000000064e135Initial program 86.3%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6462.3
Applied rewrites62.3%
Taylor expanded in x around 0
Applied rewrites53.9%
Applied rewrites53.9%
Final simplification51.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 (<= x -4.6e+63) (not (<= x 7.8e+135))) (* (* -4.0 x) i) (fma b c (* (* k j) -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 ((x <= -4.6e+63) || !(x <= 7.8e+135)) {
tmp = (-4.0 * x) * i;
} else {
tmp = fma(b, c, ((k * j) * -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 ((x <= -4.6e+63) || !(x <= 7.8e+135)) tmp = Float64(Float64(-4.0 * x) * i); else tmp = fma(b, c, Float64(Float64(k * j) * -27.0)); end return 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, -4.6e+63], N[Not[LessEqual[x, 7.8e+135]], $MachinePrecision]], N[(N[(-4.0 * x), $MachinePrecision] * i), $MachinePrecision], N[(b * c + N[(N[(k * j), $MachinePrecision] * -27.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}
\mathbf{if}\;x \leq -4.6 \cdot 10^{+63} \lor \neg \left(x \leq 7.8 \cdot 10^{+135}\right):\\
\;\;\;\;\left(-4 \cdot x\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(b, c, \left(k \cdot j\right) \cdot -27\right)\\
\end{array}
\end{array}
if x < -4.59999999999999986e63 or 7.80000000000000064e135 < x Initial program 76.2%
Taylor expanded in i around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6446.1
Applied rewrites46.1%
if -4.59999999999999986e63 < x < 7.80000000000000064e135Initial program 86.3%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6462.3
Applied rewrites62.3%
Taylor expanded in x around 0
Applied rewrites53.9%
Final simplification51.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 (<= x -3.05e+156) (* (* (* (* y z) x) t) 18.0) (if (<= x 7.8e+135) (fma (* k -27.0) j (* c b)) (* (* -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 tmp;
if (x <= -3.05e+156) {
tmp = (((y * z) * x) * t) * 18.0;
} else if (x <= 7.8e+135) {
tmp = fma((k * -27.0), j, (c * b));
} else {
tmp = (-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) tmp = 0.0 if (x <= -3.05e+156) tmp = Float64(Float64(Float64(Float64(y * z) * x) * t) * 18.0); elseif (x <= 7.8e+135) tmp = fma(Float64(k * -27.0), j, Float64(c * b)); else tmp = Float64(Float64(-4.0 * x) * i); end return 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[x, -3.05e+156], N[(N[(N[(N[(y * z), $MachinePrecision] * x), $MachinePrecision] * t), $MachinePrecision] * 18.0), $MachinePrecision], If[LessEqual[x, 7.8e+135], N[(N[(k * -27.0), $MachinePrecision] * j + N[(c * b), $MachinePrecision]), $MachinePrecision], N[(N[(-4.0 * x), $MachinePrecision] * i), $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 -3.05 \cdot 10^{+156}:\\
\;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x\right) \cdot t\right) \cdot 18\\
\mathbf{elif}\;x \leq 7.8 \cdot 10^{+135}:\\
\;\;\;\;\mathsf{fma}\left(k \cdot -27, j, c \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(-4 \cdot x\right) \cdot i\\
\end{array}
\end{array}
if x < -3.0500000000000001e156Initial program 79.1%
Applied rewrites88.2%
Taylor expanded in y around inf
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6465.0
Applied rewrites65.0%
if -3.0500000000000001e156 < x < 7.80000000000000064e135Initial program 85.6%
Taylor expanded in t around 0
associate--r+N/A
lower--.f64N/A
fp-cancel-sub-sign-invN/A
metadata-evalN/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6463.0
Applied rewrites63.0%
Taylor expanded in x around 0
Applied rewrites51.9%
Applied rewrites52.0%
if 7.80000000000000064e135 < x Initial program 71.2%
Taylor expanded in i around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6446.8
Applied rewrites46.8%
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 (* (* -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) {
return (-27.0 * j) * k;
}
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 = ((-27.0d0) * j) * k
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 (-27.0 * j) * k;
}
[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 (-27.0 * j) * k
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(Float64(-27.0 * j) * k) 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 = (-27.0 * j) * k;
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[(N[(-27.0 * j), $MachinePrecision] * k), $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])\\
\\
\left(-27 \cdot j\right) \cdot k
\end{array}
Initial program 83.0%
Taylor expanded in j around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f6421.8
Applied rewrites21.8%
(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 2024332
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, E"
:precision binary64
:alt
(! :herbie-platform default (if (< t -8105407698770699/5000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))) (if (< t 8284013971902611/50000000000000) (+ (- (* (* 18 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4)) (- (* c b) (* 27 (* k j)))) (- (- (* (* 18 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4)) (- (* (* k j) 27) (* c b))))))
(- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))