
(FPCore (x y z t a b c i) :precision binary64 (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = ((((((((x * y) + z) * y) + 27464.7644705d0) * y) + 230661.510616d0) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
def code(x, y, z, t, a, b, c, i): return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(y + a) * y) + b) * y) + c) * y) + i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + 27464.7644705), $MachinePrecision] * y), $MachinePrecision] + 230661.510616), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(y + a), $MachinePrecision] * y), $MachinePrecision] + b), $MachinePrecision] * y), $MachinePrecision] + c), $MachinePrecision] * y), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 23 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i) :precision binary64 (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = ((((((((x * y) + z) * y) + 27464.7644705d0) * y) + 230661.510616d0) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i);
}
def code(x, y, z, t, a, b, c, i): return ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i)
function code(x, y, z, t, a, b, c, i) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(y + a) * y) + b) * y) + c) * y) + i)) end
function tmp = code(x, y, z, t, a, b, c, i) tmp = ((((((((x * y) + z) * y) + 27464.7644705) * y) + 230661.510616) * y) + t) / (((((((y + a) * y) + b) * y) + c) * y) + i); end
code[x_, y_, z_, t_, a_, b_, c_, i_] := N[(N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision] * y), $MachinePrecision] + 27464.7644705), $MachinePrecision] * y), $MachinePrecision] + 230661.510616), $MachinePrecision] * y), $MachinePrecision] + t), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(y + a), $MachinePrecision] * y), $MachinePrecision] + b), $MachinePrecision] * y), $MachinePrecision] + c), $MachinePrecision] * y), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\end{array}
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (fma y (fma y (+ y a) b) c))
(t_2 (+ x (/ (- z (* x a)) y)))
(t_3 (fma y t_1 i)))
(if (<= y -4.8e+87)
t_2
(if (<= y 1.8e+88)
(fma
y
(/ (fma y (fma y z 27464.7644705) 230661.510616) t_3)
(fma x (/ (* y (* y y)) t_1) (/ t t_3)))
t_2))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = fma(y, fma(y, (y + a), b), c);
double t_2 = x + ((z - (x * a)) / y);
double t_3 = fma(y, t_1, i);
double tmp;
if (y <= -4.8e+87) {
tmp = t_2;
} else if (y <= 1.8e+88) {
tmp = fma(y, (fma(y, fma(y, z, 27464.7644705), 230661.510616) / t_3), fma(x, ((y * (y * y)) / t_1), (t / t_3)));
} else {
tmp = t_2;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = fma(y, fma(y, Float64(y + a), b), c) t_2 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) t_3 = fma(y, t_1, i) tmp = 0.0 if (y <= -4.8e+87) tmp = t_2; elseif (y <= 1.8e+88) tmp = fma(y, Float64(fma(y, fma(y, z, 27464.7644705), 230661.510616) / t_3), fma(x, Float64(Float64(y * Float64(y * y)) / t_1), Float64(t / t_3))); else tmp = t_2; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision]}, Block[{t$95$2 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y * t$95$1 + i), $MachinePrecision]}, If[LessEqual[y, -4.8e+87], t$95$2, If[LessEqual[y, 1.8e+88], N[(y * N[(N[(y * N[(y * z + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] / t$95$3), $MachinePrecision] + N[(x * N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(t / t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right)\\
t_2 := x + \frac{z - x \cdot a}{y}\\
t_3 := \mathsf{fma}\left(y, t\_1, i\right)\\
\mathbf{if}\;y \leq -4.8 \cdot 10^{+87}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{+88}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, z, 27464.7644705\right), 230661.510616\right)}{t\_3}, \mathsf{fma}\left(x, \frac{y \cdot \left(y \cdot y\right)}{t\_1}, \frac{t}{t\_3}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y < -4.79999999999999963e87 or 1.8000000000000001e88 < y Initial program 0.8%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified0.0%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6465.6
Simplified65.6%
if -4.79999999999999963e87 < y < 1.8000000000000001e88Initial program 84.5%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified88.2%
metadata-evalN/A
pow-powN/A
pow2N/A
pow2N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
+-lowering-+.f6489.0
Applied egg-rr89.0%
Taylor expanded in i around 0
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6489.6
Simplified89.6%
Final simplification79.9%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (fma y (fma y (fma y (+ y a) b) c) i)))
(if (<=
(/
(+
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))
t)
(+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))
INFINITY)
(fma
y
(/ (fma y (fma y z 27464.7644705) 230661.510616) t_1)
(fma x (* (* y y) (/ (* y y) t_1)) (/ t t_1)))
(+ x (/ (- z (* x a)) y)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = fma(y, fma(y, fma(y, (y + a), b), c), i);
double tmp;
if ((((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i)) <= ((double) INFINITY)) {
tmp = fma(y, (fma(y, fma(y, z, 27464.7644705), 230661.510616) / t_1), fma(x, ((y * y) * ((y * y) / t_1)), (t / t_1)));
} else {
tmp = x + ((z - (x * a)) / y);
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = fma(y, fma(y, fma(y, Float64(y + a), b), c), i) tmp = 0.0 if (Float64(Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(Float64(x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)) <= Inf) tmp = fma(y, Float64(fma(y, fma(y, z, 27464.7644705), 230661.510616) / t_1), fma(x, Float64(Float64(y * y) * Float64(Float64(y * y) / t_1)), Float64(t / t_1))); else tmp = Float64(x + Float64(Float64(z - Float64(x * a)) / y)); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]}, If[LessEqual[N[(N[(N[(y * N[(N[(y * N[(N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] + 27464.7644705), $MachinePrecision]), $MachinePrecision] + 230661.510616), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], Infinity], N[(y * N[(N[(y * N[(y * z + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(x * N[(N[(y * y), $MachinePrecision] * N[(N[(y * y), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision] + N[(t / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)\\
\mathbf{if}\;\frac{y \cdot \left(y \cdot \left(y \cdot \left(x \cdot y + z\right) + 27464.7644705\right) + 230661.510616\right) + t}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i} \leq \infty:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, z, 27464.7644705\right), 230661.510616\right)}{t\_1}, \mathsf{fma}\left(x, \left(y \cdot y\right) \cdot \frac{y \cdot y}{t\_1}, \frac{t}{t\_1}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{z - x \cdot a}{y}\\
\end{array}
\end{array}
if (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < +inf.0Initial program 83.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified87.0%
metadata-evalN/A
pow-powN/A
pow2N/A
pow2N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
+-lowering-+.f6488.2
Applied egg-rr88.2%
if +inf.0 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) Initial program 0.0%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified0.0%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6466.5
Simplified66.5%
Final simplification79.6%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1
(/
(+
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))
t)
(+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))))
(if (<= t_1 -2e-76)
(/ t (fma y (fma y (fma y (+ y a) b) c) i))
(if (<= t_1 1e+153)
(/ (fma y 230661.510616 t) (+ i (* a (* y (* y y)))))
(+ x (/ (- z (* x a)) y))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i);
double tmp;
if (t_1 <= -2e-76) {
tmp = t / fma(y, fma(y, fma(y, (y + a), b), c), i);
} else if (t_1 <= 1e+153) {
tmp = fma(y, 230661.510616, t) / (i + (a * (y * (y * y))));
} else {
tmp = x + ((z - (x * a)) / y);
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(Float64(x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)) tmp = 0.0 if (t_1 <= -2e-76) tmp = Float64(t / fma(y, fma(y, fma(y, Float64(y + a), b), c), i)); elseif (t_1 <= 1e+153) tmp = Float64(fma(y, 230661.510616, t) / Float64(i + Float64(a * Float64(y * Float64(y * y))))); else tmp = Float64(x + Float64(Float64(z - Float64(x * a)) / y)); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(N[(N[(y * N[(N[(y * N[(N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] + 27464.7644705), $MachinePrecision]), $MachinePrecision] + 230661.510616), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -2e-76], N[(t / N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 1e+153], N[(N[(y * 230661.510616 + t), $MachinePrecision] / N[(i + N[(a * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \frac{y \cdot \left(y \cdot \left(y \cdot \left(x \cdot y + z\right) + 27464.7644705\right) + 230661.510616\right) + t}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i}\\
\mathbf{if}\;t\_1 \leq -2 \cdot 10^{-76}:\\
\;\;\;\;\frac{t}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}\\
\mathbf{elif}\;t\_1 \leq 10^{+153}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, 230661.510616, t\right)}{i + a \cdot \left(y \cdot \left(y \cdot y\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{z - x \cdot a}{y}\\
\end{array}
\end{array}
if (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < -1.99999999999999985e-76Initial program 97.6%
Taylor expanded in t around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6474.0
Simplified74.0%
if -1.99999999999999985e-76 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < 1e153Initial program 81.8%
Taylor expanded in a around inf
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.2
Simplified59.2%
*-commutativeN/A
*-commutativeN/A
*-commutativeN/A
distribute-rgt-inN/A
associate-+l+N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f6459.2
Applied egg-rr59.2%
Taylor expanded in y around 0
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f6454.1
Simplified54.1%
if 1e153 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) Initial program 8.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified14.2%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.3
Simplified62.3%
Final simplification61.3%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (fma y (fma y (fma y (+ y a) b) c) i)))
(if (<=
(/
(+
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))
t)
(+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))
INFINITY)
(fma
y
(/ (fma y (fma y (fma y x z) 27464.7644705) 230661.510616) t_1)
(/ t t_1))
(+ x (/ (- z (* x a)) y)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = fma(y, fma(y, fma(y, (y + a), b), c), i);
double tmp;
if ((((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i)) <= ((double) INFINITY)) {
tmp = fma(y, (fma(y, fma(y, fma(y, x, z), 27464.7644705), 230661.510616) / t_1), (t / t_1));
} else {
tmp = x + ((z - (x * a)) / y);
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = fma(y, fma(y, fma(y, Float64(y + a), b), c), i) tmp = 0.0 if (Float64(Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(Float64(x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)) <= Inf) tmp = fma(y, Float64(fma(y, fma(y, fma(y, x, z), 27464.7644705), 230661.510616) / t_1), Float64(t / t_1)); else tmp = Float64(x + Float64(Float64(z - Float64(x * a)) / y)); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]}, If[LessEqual[N[(N[(N[(y * N[(N[(y * N[(N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] + 27464.7644705), $MachinePrecision]), $MachinePrecision] + 230661.510616), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], Infinity], N[(y * N[(N[(y * N[(y * N[(y * x + z), $MachinePrecision] + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(t / t$95$1), $MachinePrecision]), $MachinePrecision], N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)\\
\mathbf{if}\;\frac{y \cdot \left(y \cdot \left(y \cdot \left(x \cdot y + z\right) + 27464.7644705\right) + 230661.510616\right) + t}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i} \leq \infty:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right)}{t\_1}, \frac{t}{t\_1}\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{z - x \cdot a}{y}\\
\end{array}
\end{array}
if (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < +inf.0Initial program 83.9%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified85.8%
if +inf.0 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) #s(literal 54929528941/2000000 binary64)) y) #s(literal 28832688827/125000 binary64)) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) Initial program 0.0%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified0.0%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6466.5
Simplified66.5%
Final simplification78.1%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -9.6e+41)
t_1
(if (<= y 6e+53)
(/
(+
t
(* y (+ 230661.510616 (fma (* y (fma x y z)) y (* y 27464.7644705)))))
(+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -9.6e+41) {
tmp = t_1;
} else if (y <= 6e+53) {
tmp = (t + (y * (230661.510616 + fma((y * fma(x, y, z)), y, (y * 27464.7644705))))) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -9.6e+41) tmp = t_1; elseif (y <= 6e+53) tmp = Float64(Float64(t + Float64(y * Float64(230661.510616 + fma(Float64(y * fma(x, y, z)), y, Float64(y * 27464.7644705))))) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -9.6e+41], t$95$1, If[LessEqual[y, 6e+53], N[(N[(t + N[(y * N[(230661.510616 + N[(N[(y * N[(x * y + z), $MachinePrecision]), $MachinePrecision] * y + N[(y * 27464.7644705), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -9.6 \cdot 10^{+41}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 6 \cdot 10^{+53}:\\
\;\;\;\;\frac{t + y \cdot \left(230661.510616 + \mathsf{fma}\left(y \cdot \mathsf{fma}\left(x, y, z\right), y, y \cdot 27464.7644705\right)\right)}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -9.6000000000000007e41 or 5.99999999999999996e53 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.6
Simplified62.6%
if -9.6000000000000007e41 < y < 5.99999999999999996e53Initial program 94.0%
*-commutativeN/A
distribute-rgt-inN/A
accelerator-lowering-fma.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
*-lowering-*.f6494.0
Applied egg-rr94.0%
Final simplification79.0%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -8.5e+41)
t_1
(if (<= y 2.3e+53)
(/
(+
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))
t)
(+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -8.5e+41) {
tmp = t_1;
} else if (y <= 2.3e+53) {
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i);
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: tmp
t_1 = x + ((z - (x * a)) / y)
if (y <= (-8.5d+41)) then
tmp = t_1
else if (y <= 2.3d+53) then
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705d0)) + 230661.510616d0)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i)
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -8.5e+41) {
tmp = t_1;
} else if (y <= 2.3e+53) {
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = x + ((z - (x * a)) / y) tmp = 0 if y <= -8.5e+41: tmp = t_1 elif y <= 2.3e+53: tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -8.5e+41) tmp = t_1; elseif (y <= 2.3e+53) tmp = Float64(Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(Float64(x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = x + ((z - (x * a)) / y); tmp = 0.0; if (y <= -8.5e+41) tmp = t_1; elseif (y <= 2.3e+53) tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -8.5e+41], t$95$1, If[LessEqual[y, 2.3e+53], N[(N[(N[(y * N[(N[(y * N[(N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] + 27464.7644705), $MachinePrecision]), $MachinePrecision] + 230661.510616), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -8.5 \cdot 10^{+41}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.3 \cdot 10^{+53}:\\
\;\;\;\;\frac{y \cdot \left(y \cdot \left(y \cdot \left(x \cdot y + z\right) + 27464.7644705\right) + 230661.510616\right) + t}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -8.49999999999999938e41 or 2.3000000000000002e53 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.6
Simplified62.6%
if -8.49999999999999938e41 < y < 2.3000000000000002e53Initial program 94.0%
Final simplification79.0%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -9.6e+41)
t_1
(if (<= y 8e+52)
(/
1.0
(/
(fma y (fma y (fma y (+ y a) b) c) i)
(fma y (fma y (fma y (fma x y z) 27464.7644705) 230661.510616) t)))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -9.6e+41) {
tmp = t_1;
} else if (y <= 8e+52) {
tmp = 1.0 / (fma(y, fma(y, fma(y, (y + a), b), c), i) / fma(y, fma(y, fma(y, fma(x, y, z), 27464.7644705), 230661.510616), t));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -9.6e+41) tmp = t_1; elseif (y <= 8e+52) tmp = Float64(1.0 / Float64(fma(y, fma(y, fma(y, Float64(y + a), b), c), i) / fma(y, fma(y, fma(y, fma(x, y, z), 27464.7644705), 230661.510616), t))); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -9.6e+41], t$95$1, If[LessEqual[y, 8e+52], N[(1.0 / N[(N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision] / N[(y * N[(y * N[(y * N[(x * y + z), $MachinePrecision] + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] + t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -9.6 \cdot 10^{+41}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 8 \cdot 10^{+52}:\\
\;\;\;\;\frac{1}{\frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(x, y, z\right), 27464.7644705\right), 230661.510616\right), t\right)}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -9.6000000000000007e41 or 7.9999999999999999e52 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.6
Simplified62.6%
if -9.6000000000000007e41 < y < 7.9999999999999999e52Initial program 94.0%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
+-lowering-+.f64N/A
Applied egg-rr93.7%
Final simplification78.9%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -9.6e+41)
t_1
(if (<= y 1.35e+48)
(*
(fma y (fma y (fma y (fma x y z) 27464.7644705) 230661.510616) t)
(/ 1.0 (fma y (fma y (fma y (+ y a) b) c) i)))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -9.6e+41) {
tmp = t_1;
} else if (y <= 1.35e+48) {
tmp = fma(y, fma(y, fma(y, fma(x, y, z), 27464.7644705), 230661.510616), t) * (1.0 / fma(y, fma(y, fma(y, (y + a), b), c), i));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -9.6e+41) tmp = t_1; elseif (y <= 1.35e+48) tmp = Float64(fma(y, fma(y, fma(y, fma(x, y, z), 27464.7644705), 230661.510616), t) * Float64(1.0 / fma(y, fma(y, fma(y, Float64(y + a), b), c), i))); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -9.6e+41], t$95$1, If[LessEqual[y, 1.35e+48], N[(N[(y * N[(y * N[(y * N[(x * y + z), $MachinePrecision] + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] + t), $MachinePrecision] * N[(1.0 / N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -9.6 \cdot 10^{+41}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+48}:\\
\;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(x, y, z\right), 27464.7644705\right), 230661.510616\right), t\right) \cdot \frac{1}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -9.6000000000000007e41 or 1.35000000000000002e48 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.6
Simplified62.6%
if -9.6000000000000007e41 < y < 1.35000000000000002e48Initial program 94.0%
div-invN/A
*-lowering-*.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
Applied egg-rr93.7%
Final simplification78.9%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -1.55e+47)
t_1
(if (<= y 8.8e+26)
(/
(fma y (fma y (fma y (fma y x z) 27464.7644705) 230661.510616) t)
(fma y (fma y (fma y y b) c) i))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -1.55e+47) {
tmp = t_1;
} else if (y <= 8.8e+26) {
tmp = fma(y, fma(y, fma(y, fma(y, x, z), 27464.7644705), 230661.510616), t) / fma(y, fma(y, fma(y, y, b), c), i);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -1.55e+47) tmp = t_1; elseif (y <= 8.8e+26) tmp = Float64(fma(y, fma(y, fma(y, fma(y, x, z), 27464.7644705), 230661.510616), t) / fma(y, fma(y, fma(y, y, b), c), i)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.55e+47], t$95$1, If[LessEqual[y, 8.8e+26], N[(N[(y * N[(y * N[(y * N[(y * x + z), $MachinePrecision] + 27464.7644705), $MachinePrecision] + 230661.510616), $MachinePrecision] + t), $MachinePrecision] / N[(y * N[(y * N[(y * y + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -1.55 \cdot 10^{+47}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 8.8 \cdot 10^{+26}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y, b\right), c\right), i\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.55e47 or 8.80000000000000028e26 < y Initial program 3.5%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified7.4%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6462.1
Simplified62.1%
if -1.55e47 < y < 8.80000000000000028e26Initial program 93.9%
Taylor expanded in a around 0
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
unpow2N/A
accelerator-lowering-fma.f6489.6
Simplified89.6%
Final simplification76.4%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -1.55e+17)
t_1
(if (<= y 2.75e+23)
(/
(+
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))
t)
(+ i (* y c)))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -1.55e+17) {
tmp = t_1;
} else if (y <= 2.75e+23) {
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / (i + (y * c));
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: t_1
real(8) :: tmp
t_1 = x + ((z - (x * a)) / y)
if (y <= (-1.55d+17)) then
tmp = t_1
else if (y <= 2.75d+23) then
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705d0)) + 230661.510616d0)) + t) / (i + (y * c))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -1.55e+17) {
tmp = t_1;
} else if (y <= 2.75e+23) {
tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / (i + (y * c));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): t_1 = x + ((z - (x * a)) / y) tmp = 0 if y <= -1.55e+17: tmp = t_1 elif y <= 2.75e+23: tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / (i + (y * c)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -1.55e+17) tmp = t_1; elseif (y <= 2.75e+23) tmp = Float64(Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(Float64(x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / Float64(i + Float64(y * c))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) t_1 = x + ((z - (x * a)) / y); tmp = 0.0; if (y <= -1.55e+17) tmp = t_1; elseif (y <= 2.75e+23) tmp = ((y * ((y * ((y * ((x * y) + z)) + 27464.7644705)) + 230661.510616)) + t) / (i + (y * c)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.55e+17], t$95$1, If[LessEqual[y, 2.75e+23], N[(N[(N[(y * N[(N[(y * N[(N[(y * N[(N[(x * y), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] + 27464.7644705), $MachinePrecision]), $MachinePrecision] + 230661.510616), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision] / N[(i + N[(y * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -1.55 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.75 \cdot 10^{+23}:\\
\;\;\;\;\frac{y \cdot \left(y \cdot \left(y \cdot \left(x \cdot y + z\right) + 27464.7644705\right) + 230661.510616\right) + t}{i + y \cdot c}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.55e17 or 2.75000000000000002e23 < y Initial program 7.1%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified10.7%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6458.3
Simplified58.3%
if -1.55e17 < y < 2.75000000000000002e23Initial program 97.3%
Taylor expanded in y around 0
*-commutativeN/A
*-lowering-*.f6482.2
Simplified82.2%
Final simplification69.8%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -1.32e+29)
t_1
(if (<= y 3e-24)
(/ t (fma y (fma y (fma y (+ y a) b) c) i))
(if (<= y 1.85e+53)
(/
(+ (+ 27464.7644705 (/ 230661.510616 y)) (fma x (* y y) (* y z)))
b)
t_1)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -1.32e+29) {
tmp = t_1;
} else if (y <= 3e-24) {
tmp = t / fma(y, fma(y, fma(y, (y + a), b), c), i);
} else if (y <= 1.85e+53) {
tmp = ((27464.7644705 + (230661.510616 / y)) + fma(x, (y * y), (y * z))) / b;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -1.32e+29) tmp = t_1; elseif (y <= 3e-24) tmp = Float64(t / fma(y, fma(y, fma(y, Float64(y + a), b), c), i)); elseif (y <= 1.85e+53) tmp = Float64(Float64(Float64(27464.7644705 + Float64(230661.510616 / y)) + fma(x, Float64(y * y), Float64(y * z))) / b); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.32e+29], t$95$1, If[LessEqual[y, 3e-24], N[(t / N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.85e+53], N[(N[(N[(27464.7644705 + N[(230661.510616 / y), $MachinePrecision]), $MachinePrecision] + N[(x * N[(y * y), $MachinePrecision] + N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -1.32 \cdot 10^{+29}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3 \cdot 10^{-24}:\\
\;\;\;\;\frac{t}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}\\
\mathbf{elif}\;y \leq 1.85 \cdot 10^{+53}:\\
\;\;\;\;\frac{\left(27464.7644705 + \frac{230661.510616}{y}\right) + \mathsf{fma}\left(x, y \cdot y, y \cdot z\right)}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.32e29 or 1.85e53 < y Initial program 4.3%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified6.6%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6461.9
Simplified61.9%
if -1.32e29 < y < 2.99999999999999995e-24Initial program 98.9%
Taylor expanded in t around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6467.3
Simplified67.3%
if 2.99999999999999995e-24 < y < 1.85e53Initial program 65.6%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified82.5%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6449.0
Simplified49.0%
Taylor expanded in t around 0
/-lowering-/.f64N/A
associate-+r+N/A
+-lowering-+.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6442.0
Simplified42.0%
Final simplification63.0%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -2.55e+28)
t_1
(if (<= y 3e-24)
(/ t (fma y (fma y (fma y (+ y a) b) c) i))
(if (<= y 3.3e+48) (* (* y y) (+ (/ x b) (/ z (* y b)))) t_1)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -2.55e+28) {
tmp = t_1;
} else if (y <= 3e-24) {
tmp = t / fma(y, fma(y, fma(y, (y + a), b), c), i);
} else if (y <= 3.3e+48) {
tmp = (y * y) * ((x / b) + (z / (y * b)));
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -2.55e+28) tmp = t_1; elseif (y <= 3e-24) tmp = Float64(t / fma(y, fma(y, fma(y, Float64(y + a), b), c), i)); elseif (y <= 3.3e+48) tmp = Float64(Float64(y * y) * Float64(Float64(x / b) + Float64(z / Float64(y * b)))); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -2.55e+28], t$95$1, If[LessEqual[y, 3e-24], N[(t / N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.3e+48], N[(N[(y * y), $MachinePrecision] * N[(N[(x / b), $MachinePrecision] + N[(z / N[(y * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -2.55 \cdot 10^{+28}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3 \cdot 10^{-24}:\\
\;\;\;\;\frac{t}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}\\
\mathbf{elif}\;y \leq 3.3 \cdot 10^{+48}:\\
\;\;\;\;\left(y \cdot y\right) \cdot \left(\frac{x}{b} + \frac{z}{y \cdot b}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -2.5500000000000002e28 or 3.30000000000000023e48 < y Initial program 4.3%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified6.6%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6461.9
Simplified61.9%
if -2.5500000000000002e28 < y < 2.99999999999999995e-24Initial program 98.9%
Taylor expanded in t around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6467.3
Simplified67.3%
if 2.99999999999999995e-24 < y < 3.30000000000000023e48Initial program 65.6%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified82.5%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6449.0
Simplified49.0%
Taylor expanded in y around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6441.7
Simplified41.7%
Final simplification63.0%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -1.52e+29)
t_1
(if (<= y 2.1e+46)
(/ (fma y 230661.510616 t) (+ (* y (+ (* y (+ (* y (+ y a)) b)) c)) i))
t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -1.52e+29) {
tmp = t_1;
} else if (y <= 2.1e+46) {
tmp = fma(y, 230661.510616, t) / ((y * ((y * ((y * (y + a)) + b)) + c)) + i);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -1.52e+29) tmp = t_1; elseif (y <= 2.1e+46) tmp = Float64(fma(y, 230661.510616, t) / Float64(Float64(y * Float64(Float64(y * Float64(Float64(y * Float64(y + a)) + b)) + c)) + i)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.52e+29], t$95$1, If[LessEqual[y, 2.1e+46], N[(N[(y * 230661.510616 + t), $MachinePrecision] / N[(N[(y * N[(N[(y * N[(N[(y * N[(y + a), $MachinePrecision]), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] + c), $MachinePrecision]), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -1.52 \cdot 10^{+29}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+46}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, 230661.510616, t\right)}{y \cdot \left(y \cdot \left(y \cdot \left(y + a\right) + b\right) + c\right) + i}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -1.52e29 or 2.1e46 < y Initial program 4.3%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified6.6%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6461.9
Simplified61.9%
if -1.52e29 < y < 2.1e46Initial program 94.6%
Taylor expanded in y around 0
+-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f6476.9
Simplified76.9%
Final simplification69.6%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -9e+44)
t_1
(if (<= y -2.7e-11)
(/ (/ t y) (* y b))
(if (<= y 1.35e-31)
(fma y (/ 230661.510616 i) (/ t i))
(if (<= y 7.6e+54) (/ (+ 27464.7644705 (* y z)) b) t_1))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -9e+44) {
tmp = t_1;
} else if (y <= -2.7e-11) {
tmp = (t / y) / (y * b);
} else if (y <= 1.35e-31) {
tmp = fma(y, (230661.510616 / i), (t / i));
} else if (y <= 7.6e+54) {
tmp = (27464.7644705 + (y * z)) / b;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -9e+44) tmp = t_1; elseif (y <= -2.7e-11) tmp = Float64(Float64(t / y) / Float64(y * b)); elseif (y <= 1.35e-31) tmp = fma(y, Float64(230661.510616 / i), Float64(t / i)); elseif (y <= 7.6e+54) tmp = Float64(Float64(27464.7644705 + Float64(y * z)) / b); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -9e+44], t$95$1, If[LessEqual[y, -2.7e-11], N[(N[(t / y), $MachinePrecision] / N[(y * b), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.35e-31], N[(y * N[(230661.510616 / i), $MachinePrecision] + N[(t / i), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 7.6e+54], N[(N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -9 \cdot 10^{+44}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -2.7 \cdot 10^{-11}:\\
\;\;\;\;\frac{\frac{t}{y}}{y \cdot b}\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{-31}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{230661.510616}{i}, \frac{t}{i}\right)\\
\mathbf{elif}\;y \leq 7.6 \cdot 10^{+54}:\\
\;\;\;\;\frac{27464.7644705 + y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -9e44 or 7.6000000000000005e54 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6464.0
Simplified64.0%
if -9e44 < y < -2.70000000000000005e-11Initial program 78.2%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified78.2%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6445.7
Simplified45.7%
Taylor expanded in y around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6433.5
Simplified33.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6433.7
Applied egg-rr33.7%
if -2.70000000000000005e-11 < y < 1.35000000000000007e-31Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6482.5
Simplified82.5%
Taylor expanded in y around 0
/-lowering-/.f6472.2
Simplified72.2%
if 1.35000000000000007e-31 < y < 7.6000000000000005e54Initial program 65.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified80.3%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6441.9
Simplified41.9%
Taylor expanded in z around inf
*-lowering-*.f6427.2
Simplified27.2%
Final simplification62.2%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -8e+44)
t_1
(if (<= y -3.3e-10)
(/ (/ t y) (* y b))
(if (<= y 2.7e-32)
(/ (fma 230661.510616 y t) i)
(if (<= y 8.8e+55) (/ (+ 27464.7644705 (* y z)) b) t_1))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -8e+44) {
tmp = t_1;
} else if (y <= -3.3e-10) {
tmp = (t / y) / (y * b);
} else if (y <= 2.7e-32) {
tmp = fma(230661.510616, y, t) / i;
} else if (y <= 8.8e+55) {
tmp = (27464.7644705 + (y * z)) / b;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -8e+44) tmp = t_1; elseif (y <= -3.3e-10) tmp = Float64(Float64(t / y) / Float64(y * b)); elseif (y <= 2.7e-32) tmp = Float64(fma(230661.510616, y, t) / i); elseif (y <= 8.8e+55) tmp = Float64(Float64(27464.7644705 + Float64(y * z)) / b); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -8e+44], t$95$1, If[LessEqual[y, -3.3e-10], N[(N[(t / y), $MachinePrecision] / N[(y * b), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.7e-32], N[(N[(230661.510616 * y + t), $MachinePrecision] / i), $MachinePrecision], If[LessEqual[y, 8.8e+55], N[(N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -8 \cdot 10^{+44}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -3.3 \cdot 10^{-10}:\\
\;\;\;\;\frac{\frac{t}{y}}{y \cdot b}\\
\mathbf{elif}\;y \leq 2.7 \cdot 10^{-32}:\\
\;\;\;\;\frac{\mathsf{fma}\left(230661.510616, y, t\right)}{i}\\
\mathbf{elif}\;y \leq 8.8 \cdot 10^{+55}:\\
\;\;\;\;\frac{27464.7644705 + y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -8.0000000000000007e44 or 8.80000000000000042e55 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6464.0
Simplified64.0%
if -8.0000000000000007e44 < y < -3.3e-10Initial program 78.2%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified78.2%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6445.7
Simplified45.7%
Taylor expanded in y around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6433.5
Simplified33.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6433.7
Applied egg-rr33.7%
if -3.3e-10 < y < 2.69999999999999981e-32Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6482.5
Simplified82.5%
Taylor expanded in i around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f6472.2
Simplified72.2%
if 2.69999999999999981e-32 < y < 8.80000000000000042e55Initial program 65.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified80.3%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6441.9
Simplified41.9%
Taylor expanded in z around inf
*-lowering-*.f6427.2
Simplified27.2%
Final simplification62.2%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -9e+44)
t_1
(if (<= y -4.3e-10)
(/ (/ t b) (* y y))
(if (<= y 1.6e-31)
(/ (fma 230661.510616 y t) i)
(if (<= y 7.4e+53) (/ (+ 27464.7644705 (* y z)) b) t_1))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -9e+44) {
tmp = t_1;
} else if (y <= -4.3e-10) {
tmp = (t / b) / (y * y);
} else if (y <= 1.6e-31) {
tmp = fma(230661.510616, y, t) / i;
} else if (y <= 7.4e+53) {
tmp = (27464.7644705 + (y * z)) / b;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -9e+44) tmp = t_1; elseif (y <= -4.3e-10) tmp = Float64(Float64(t / b) / Float64(y * y)); elseif (y <= 1.6e-31) tmp = Float64(fma(230661.510616, y, t) / i); elseif (y <= 7.4e+53) tmp = Float64(Float64(27464.7644705 + Float64(y * z)) / b); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -9e+44], t$95$1, If[LessEqual[y, -4.3e-10], N[(N[(t / b), $MachinePrecision] / N[(y * y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.6e-31], N[(N[(230661.510616 * y + t), $MachinePrecision] / i), $MachinePrecision], If[LessEqual[y, 7.4e+53], N[(N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -9 \cdot 10^{+44}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq -4.3 \cdot 10^{-10}:\\
\;\;\;\;\frac{\frac{t}{b}}{y \cdot y}\\
\mathbf{elif}\;y \leq 1.6 \cdot 10^{-31}:\\
\;\;\;\;\frac{\mathsf{fma}\left(230661.510616, y, t\right)}{i}\\
\mathbf{elif}\;y \leq 7.4 \cdot 10^{+53}:\\
\;\;\;\;\frac{27464.7644705 + y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -9e44 or 7.4e53 < y Initial program 2.7%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified5.1%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6464.0
Simplified64.0%
if -9e44 < y < -4.30000000000000014e-10Initial program 78.2%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified78.2%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6445.7
Simplified45.7%
Taylor expanded in y around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6433.5
Simplified33.5%
associate-/l/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6433.6
Applied egg-rr33.6%
if -4.30000000000000014e-10 < y < 1.60000000000000009e-31Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6482.5
Simplified82.5%
Taylor expanded in i around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f6472.2
Simplified72.2%
if 1.60000000000000009e-31 < y < 7.4e53Initial program 65.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified80.3%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6441.9
Simplified41.9%
Taylor expanded in z around inf
*-lowering-*.f6427.2
Simplified27.2%
Final simplification62.2%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -3e+30)
t_1
(if (<= y 4.3e+46) (/ t (fma y (fma y (fma y (+ y a) b) c) i)) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -3e+30) {
tmp = t_1;
} else if (y <= 4.3e+46) {
tmp = t / fma(y, fma(y, fma(y, (y + a), b), c), i);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -3e+30) tmp = t_1; elseif (y <= 4.3e+46) tmp = Float64(t / fma(y, fma(y, fma(y, Float64(y + a), b), c), i)); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -3e+30], t$95$1, If[LessEqual[y, 4.3e+46], N[(t / N[(y * N[(y * N[(y * N[(y + a), $MachinePrecision] + b), $MachinePrecision] + c), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -3 \cdot 10^{+30}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4.3 \cdot 10^{+46}:\\
\;\;\;\;\frac{t}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -2.99999999999999978e30 or 4.30000000000000005e46 < y Initial program 4.3%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified6.6%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6461.9
Simplified61.9%
if -2.99999999999999978e30 < y < 4.30000000000000005e46Initial program 94.6%
Taylor expanded in t around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6460.4
Simplified60.4%
Final simplification61.2%
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ x (/ (- z (* x a)) y))))
(if (<= y -0.32)
t_1
(if (<= y 1.6e-31)
(/ (fma 230661.510616 y t) i)
(if (<= y 1.35e+62) (/ (+ 27464.7644705 (* y z)) b) t_1)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double t_1 = x + ((z - (x * a)) / y);
double tmp;
if (y <= -0.32) {
tmp = t_1;
} else if (y <= 1.6e-31) {
tmp = fma(230661.510616, y, t) / i;
} else if (y <= 1.35e+62) {
tmp = (27464.7644705 + (y * z)) / b;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) t_1 = Float64(x + Float64(Float64(z - Float64(x * a)) / y)) tmp = 0.0 if (y <= -0.32) tmp = t_1; elseif (y <= 1.6e-31) tmp = Float64(fma(230661.510616, y, t) / i); elseif (y <= 1.35e+62) tmp = Float64(Float64(27464.7644705 + Float64(y * z)) / b); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := Block[{t$95$1 = N[(x + N[(N[(z - N[(x * a), $MachinePrecision]), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -0.32], t$95$1, If[LessEqual[y, 1.6e-31], N[(N[(230661.510616 * y + t), $MachinePrecision] / i), $MachinePrecision], If[LessEqual[y, 1.35e+62], N[(N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x + \frac{z - x \cdot a}{y}\\
\mathbf{if}\;y \leq -0.32:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.6 \cdot 10^{-31}:\\
\;\;\;\;\frac{\mathsf{fma}\left(230661.510616, y, t\right)}{i}\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+62}:\\
\;\;\;\;\frac{27464.7644705 + y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -0.320000000000000007 or 1.35e62 < y Initial program 9.3%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified11.5%
Taylor expanded in y around inf
associate--l+N/A
div-subN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f6458.9
Simplified58.9%
if -0.320000000000000007 < y < 1.60000000000000009e-31Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6479.0
Simplified79.0%
Taylor expanded in i around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f6469.0
Simplified69.0%
if 1.60000000000000009e-31 < y < 1.35e62Initial program 65.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified80.3%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6441.9
Simplified41.9%
Taylor expanded in z around inf
*-lowering-*.f6427.2
Simplified27.2%
Final simplification60.5%
(FPCore (x y z t a b c i)
:precision binary64
(if (<= y -0.059)
x
(if (<= y 1.6e-31)
(/ (fma 230661.510616 y t) i)
(if (<= y 1.35e+62) (/ (+ 27464.7644705 (* y z)) b) x))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -0.059) {
tmp = x;
} else if (y <= 1.6e-31) {
tmp = fma(230661.510616, y, t) / i;
} else if (y <= 1.35e+62) {
tmp = (27464.7644705 + (y * z)) / b;
} else {
tmp = x;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (y <= -0.059) tmp = x; elseif (y <= 1.6e-31) tmp = Float64(fma(230661.510616, y, t) / i); elseif (y <= 1.35e+62) tmp = Float64(Float64(27464.7644705 + Float64(y * z)) / b); else tmp = x; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[y, -0.059], x, If[LessEqual[y, 1.6e-31], N[(N[(230661.510616 * y + t), $MachinePrecision] / i), $MachinePrecision], If[LessEqual[y, 1.35e+62], N[(N[(27464.7644705 + N[(y * z), $MachinePrecision]), $MachinePrecision] / b), $MachinePrecision], x]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -0.059:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 1.6 \cdot 10^{-31}:\\
\;\;\;\;\frac{\mathsf{fma}\left(230661.510616, y, t\right)}{i}\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+62}:\\
\;\;\;\;\frac{27464.7644705 + y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -0.058999999999999997 or 1.35e62 < y Initial program 10.7%
Taylor expanded in y around inf
Simplified42.7%
if -0.058999999999999997 < y < 1.60000000000000009e-31Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6480.2
Simplified80.2%
Taylor expanded in i around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f6470.2
Simplified70.2%
if 1.60000000000000009e-31 < y < 1.35e62Initial program 65.9%
Taylor expanded in x around 0
+-commutativeN/A
+-commutativeN/A
associate-+l+N/A
Simplified80.3%
Taylor expanded in b around inf
/-lowering-/.f64N/A
+-lowering-+.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6441.9
Simplified41.9%
Taylor expanded in z around inf
*-lowering-*.f6427.2
Simplified27.2%
(FPCore (x y z t a b c i)
:precision binary64
(if (<= y -0.054)
x
(if (<= y 8e-28)
(/ (fma 230661.510616 y t) i)
(if (<= y 1.1e+55) (/ (* y z) b) x))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -0.054) {
tmp = x;
} else if (y <= 8e-28) {
tmp = fma(230661.510616, y, t) / i;
} else if (y <= 1.1e+55) {
tmp = (y * z) / b;
} else {
tmp = x;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (y <= -0.054) tmp = x; elseif (y <= 8e-28) tmp = Float64(fma(230661.510616, y, t) / i); elseif (y <= 1.1e+55) tmp = Float64(Float64(y * z) / b); else tmp = x; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[y, -0.054], x, If[LessEqual[y, 8e-28], N[(N[(230661.510616 * y + t), $MachinePrecision] / i), $MachinePrecision], If[LessEqual[y, 1.1e+55], N[(N[(y * z), $MachinePrecision] / b), $MachinePrecision], x]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -0.054:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 8 \cdot 10^{-28}:\\
\;\;\;\;\frac{\mathsf{fma}\left(230661.510616, y, t\right)}{i}\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+55}:\\
\;\;\;\;\frac{y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -0.0539999999999999994 or 1.10000000000000005e55 < y Initial program 10.7%
Taylor expanded in y around inf
Simplified42.7%
if -0.0539999999999999994 < y < 7.99999999999999977e-28Initial program 99.7%
Taylor expanded in t around 0
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6480.4
Simplified80.4%
Taylor expanded in i around inf
/-lowering-/.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f6469.6
Simplified69.6%
if 7.99999999999999977e-28 < y < 1.10000000000000005e55Initial program 64.1%
Taylor expanded in z around inf
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6418.2
Simplified18.2%
Taylor expanded in b around inf
/-lowering-/.f64N/A
*-lowering-*.f6428.2
Simplified28.2%
(FPCore (x y z t a b c i) :precision binary64 (if (<= y -6.5e-9) x (if (<= y 8e-28) (/ t i) (if (<= y 8.2e+55) (/ (* y z) b) x))))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -6.5e-9) {
tmp = x;
} else if (y <= 8e-28) {
tmp = t / i;
} else if (y <= 8.2e+55) {
tmp = (y * z) / b;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if (y <= (-6.5d-9)) then
tmp = x
else if (y <= 8d-28) then
tmp = t / i
else if (y <= 8.2d+55) then
tmp = (y * z) / b
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -6.5e-9) {
tmp = x;
} else if (y <= 8e-28) {
tmp = t / i;
} else if (y <= 8.2e+55) {
tmp = (y * z) / b;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if y <= -6.5e-9: tmp = x elif y <= 8e-28: tmp = t / i elif y <= 8.2e+55: tmp = (y * z) / b else: tmp = x return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (y <= -6.5e-9) tmp = x; elseif (y <= 8e-28) tmp = Float64(t / i); elseif (y <= 8.2e+55) tmp = Float64(Float64(y * z) / b); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if (y <= -6.5e-9) tmp = x; elseif (y <= 8e-28) tmp = t / i; elseif (y <= 8.2e+55) tmp = (y * z) / b; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[y, -6.5e-9], x, If[LessEqual[y, 8e-28], N[(t / i), $MachinePrecision], If[LessEqual[y, 8.2e+55], N[(N[(y * z), $MachinePrecision] / b), $MachinePrecision], x]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -6.5 \cdot 10^{-9}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 8 \cdot 10^{-28}:\\
\;\;\;\;\frac{t}{i}\\
\mathbf{elif}\;y \leq 8.2 \cdot 10^{+55}:\\
\;\;\;\;\frac{y \cdot z}{b}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -6.5000000000000003e-9 or 8.19999999999999962e55 < y Initial program 12.6%
Taylor expanded in y around inf
Simplified41.9%
if -6.5000000000000003e-9 < y < 7.99999999999999977e-28Initial program 99.7%
Taylor expanded in y around 0
/-lowering-/.f6456.7
Simplified56.7%
if 7.99999999999999977e-28 < y < 8.19999999999999962e55Initial program 64.1%
Taylor expanded in z around inf
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
+-commutativeN/A
+-lowering-+.f6418.2
Simplified18.2%
Taylor expanded in b around inf
/-lowering-/.f64N/A
*-lowering-*.f6428.2
Simplified28.2%
(FPCore (x y z t a b c i) :precision binary64 (if (<= y -5.6e-10) x (if (<= y 85000000.0) (/ t i) x)))
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -5.6e-10) {
tmp = x;
} else if (y <= 85000000.0) {
tmp = t / i;
} else {
tmp = x;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8) :: tmp
if (y <= (-5.6d-10)) then
tmp = x
else if (y <= 85000000.0d0) then
tmp = t / i
else
tmp = x
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
double tmp;
if (y <= -5.6e-10) {
tmp = x;
} else if (y <= 85000000.0) {
tmp = t / i;
} else {
tmp = x;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i): tmp = 0 if y <= -5.6e-10: tmp = x elif y <= 85000000.0: tmp = t / i else: tmp = x return tmp
function code(x, y, z, t, a, b, c, i) tmp = 0.0 if (y <= -5.6e-10) tmp = x; elseif (y <= 85000000.0) tmp = Float64(t / i); else tmp = x; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i) tmp = 0.0; if (y <= -5.6e-10) tmp = x; elseif (y <= 85000000.0) tmp = t / i; else tmp = x; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := If[LessEqual[y, -5.6e-10], x, If[LessEqual[y, 85000000.0], N[(t / i), $MachinePrecision], x]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -5.6 \cdot 10^{-10}:\\
\;\;\;\;x\\
\mathbf{elif}\;y \leq 85000000:\\
\;\;\;\;\frac{t}{i}\\
\mathbf{else}:\\
\;\;\;\;x\\
\end{array}
\end{array}
if y < -5.60000000000000031e-10 or 8.5e7 < y Initial program 14.1%
Taylor expanded in y around inf
Simplified39.6%
if -5.60000000000000031e-10 < y < 8.5e7Initial program 98.8%
Taylor expanded in y around 0
/-lowering-/.f6451.9
Simplified51.9%
(FPCore (x y z t a b c i) :precision binary64 x)
double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return x;
}
real(8) function code(x, y, z, t, a, b, c, i)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
code = x
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i) {
return x;
}
def code(x, y, z, t, a, b, c, i): return x
function code(x, y, z, t, a, b, c, i) return x end
function tmp = code(x, y, z, t, a, b, c, i) tmp = x; end
code[x_, y_, z_, t_, a_, b_, c_, i_] := x
\begin{array}{l}
\\
x
\end{array}
Initial program 50.5%
Taylor expanded in y around inf
Simplified24.1%
herbie shell --seed 2024196
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
:precision binary64
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))