
(FPCore (a k m) :precision binary64 (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
double code(double a, double k, double m) {
return (a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
code = (a * (k ** m)) / ((1.0d0 + (10.0d0 * k)) + (k * k))
end function
public static double code(double a, double k, double m) {
return (a * Math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
def code(a, k, m): return (a * math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k))
function code(a, k, m) return Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k))) end
function tmp = code(a, k, m) tmp = (a * (k ^ m)) / ((1.0 + (10.0 * k)) + (k * k)); end
code[a_, k_, m_] := N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a k m) :precision binary64 (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
double code(double a, double k, double m) {
return (a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
code = (a * (k ** m)) / ((1.0d0 + (10.0d0 * k)) + (k * k))
end function
public static double code(double a, double k, double m) {
return (a * Math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
def code(a, k, m): return (a * math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k))
function code(a, k, m) return Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k))) end
function tmp = code(a, k, m) tmp = (a * (k ^ m)) / ((1.0 + (10.0 * k)) + (k * k)); end
code[a_, k_, m_] := N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\end{array}
(FPCore (a k m) :precision binary64 (if (<= k 1.0) (/ a (pow (/ 1.0 k) m)) (/ (* (/ a k) (pow k m)) k)))
double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / pow((1.0 / k), m);
} else {
tmp = ((a / k) * pow(k, m)) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= 1.0d0) then
tmp = a / ((1.0d0 / k) ** m)
else
tmp = ((a / k) * (k ** m)) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / Math.pow((1.0 / k), m);
} else {
tmp = ((a / k) * Math.pow(k, m)) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 1.0: tmp = a / math.pow((1.0 / k), m) else: tmp = ((a / k) * math.pow(k, m)) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= 1.0) tmp = Float64(a / (Float64(1.0 / k) ^ m)); else tmp = Float64(Float64(Float64(a / k) * (k ^ m)) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 1.0) tmp = a / ((1.0 / k) ^ m); else tmp = ((a / k) * (k ^ m)) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 1.0], N[(a / N[Power[N[(1.0 / k), $MachinePrecision], m], $MachinePrecision]), $MachinePrecision], N[(N[(N[(a / k), $MachinePrecision] * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 1:\\
\;\;\;\;\frac{a}{{\left(\frac{1}{k}\right)}^{m}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k} \cdot {k}^{m}}{k}\\
\end{array}
\end{array}
if k < 1Initial program 96.4%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6496.4%
Simplified96.4%
Taylor expanded in k around inf
mul-1-negN/A
exp-negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
exp-to-powN/A
pow-lowering-pow.f64N/A
/-lowering-/.f6496.4%
Simplified96.4%
Taylor expanded in k around 0
Simplified99.4%
/-rgt-identityN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
/-lowering-/.f6499.4%
Applied egg-rr99.4%
if 1 < k Initial program 78.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.7%
Simplified78.7%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6478.1%
Simplified78.1%
times-fracN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6494.6%
Applied egg-rr94.6%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* a (pow k m))))
(if (<= m -0.0008)
t_0
(if (<= m 3.6e-12) (/ a (+ 1.0 (* k (+ k 10.0)))) t_0))))
double code(double a, double k, double m) {
double t_0 = a * pow(k, m);
double tmp;
if (m <= -0.0008) {
tmp = t_0;
} else if (m <= 3.6e-12) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = a * (k ** m)
if (m <= (-0.0008d0)) then
tmp = t_0
else if (m <= 3.6d-12) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = t_0
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = a * Math.pow(k, m);
double tmp;
if (m <= -0.0008) {
tmp = t_0;
} else if (m <= 3.6e-12) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a * math.pow(k, m) tmp = 0 if m <= -0.0008: tmp = t_0 elif m <= 3.6e-12: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a * (k ^ m)) tmp = 0.0 if (m <= -0.0008) tmp = t_0; elseif (m <= 3.6e-12) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = t_0; end return tmp end
function tmp_2 = code(a, k, m) t_0 = a * (k ^ m); tmp = 0.0; if (m <= -0.0008) tmp = t_0; elseif (m <= 3.6e-12) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = t_0; end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.0008], t$95$0, If[LessEqual[m, 3.6e-12], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
\mathbf{if}\;m \leq -0.0008:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;m \leq 3.6 \cdot 10^{-12}:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if m < -8.00000000000000038e-4 or 3.6e-12 < m Initial program 89.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6489.7%
Simplified89.7%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
if -8.00000000000000038e-4 < m < 3.6e-12Initial program 91.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.7%
Simplified91.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.0%
Simplified91.0%
(FPCore (a k m) :precision binary64 (if (<= k 1.0) (/ a (pow (/ 1.0 k) m)) (* (/ a k) (pow k (+ m -1.0)))))
double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / pow((1.0 / k), m);
} else {
tmp = (a / k) * pow(k, (m + -1.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= 1.0d0) then
tmp = a / ((1.0d0 / k) ** m)
else
tmp = (a / k) * (k ** (m + (-1.0d0)))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / Math.pow((1.0 / k), m);
} else {
tmp = (a / k) * Math.pow(k, (m + -1.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 1.0: tmp = a / math.pow((1.0 / k), m) else: tmp = (a / k) * math.pow(k, (m + -1.0)) return tmp
function code(a, k, m) tmp = 0.0 if (k <= 1.0) tmp = Float64(a / (Float64(1.0 / k) ^ m)); else tmp = Float64(Float64(a / k) * (k ^ Float64(m + -1.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 1.0) tmp = a / ((1.0 / k) ^ m); else tmp = (a / k) * (k ^ (m + -1.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 1.0], N[(a / N[Power[N[(1.0 / k), $MachinePrecision], m], $MachinePrecision]), $MachinePrecision], N[(N[(a / k), $MachinePrecision] * N[Power[k, N[(m + -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 1:\\
\;\;\;\;\frac{a}{{\left(\frac{1}{k}\right)}^{m}}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{k} \cdot {k}^{\left(m + -1\right)}\\
\end{array}
\end{array}
if k < 1Initial program 96.4%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6496.4%
Simplified96.4%
Taylor expanded in k around inf
mul-1-negN/A
exp-negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
exp-to-powN/A
pow-lowering-pow.f64N/A
/-lowering-/.f6496.4%
Simplified96.4%
Taylor expanded in k around 0
Simplified99.4%
/-rgt-identityN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
/-lowering-/.f6499.4%
Applied egg-rr99.4%
if 1 < k Initial program 78.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.7%
Simplified78.7%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6478.1%
Simplified78.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
div-invN/A
inv-powN/A
pow-prod-upN/A
pow-lowering-pow.f64N/A
+-lowering-+.f64N/A
/-lowering-/.f6494.5%
Applied egg-rr94.5%
Final simplification97.8%
(FPCore (a k m) :precision binary64 (if (<= k 1.0) (/ a (pow (/ 1.0 k) m)) (/ a (pow k (- 2.0 m)))))
double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / pow((1.0 / k), m);
} else {
tmp = a / pow(k, (2.0 - m));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= 1.0d0) then
tmp = a / ((1.0d0 / k) ** m)
else
tmp = a / (k ** (2.0d0 - m))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a / Math.pow((1.0 / k), m);
} else {
tmp = a / Math.pow(k, (2.0 - m));
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 1.0: tmp = a / math.pow((1.0 / k), m) else: tmp = a / math.pow(k, (2.0 - m)) return tmp
function code(a, k, m) tmp = 0.0 if (k <= 1.0) tmp = Float64(a / (Float64(1.0 / k) ^ m)); else tmp = Float64(a / (k ^ Float64(2.0 - m))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 1.0) tmp = a / ((1.0 / k) ^ m); else tmp = a / (k ^ (2.0 - m)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 1.0], N[(a / N[Power[N[(1.0 / k), $MachinePrecision], m], $MachinePrecision]), $MachinePrecision], N[(a / N[Power[k, N[(2.0 - m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 1:\\
\;\;\;\;\frac{a}{{\left(\frac{1}{k}\right)}^{m}}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{{k}^{\left(2 - m\right)}}\\
\end{array}
\end{array}
if k < 1Initial program 96.4%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6496.4%
Simplified96.4%
Taylor expanded in k around inf
mul-1-negN/A
exp-negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
exp-to-powN/A
pow-lowering-pow.f64N/A
/-lowering-/.f6496.4%
Simplified96.4%
Taylor expanded in k around 0
Simplified99.4%
/-rgt-identityN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
/-lowering-/.f6499.4%
Applied egg-rr99.4%
if 1 < k Initial program 78.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.7%
Simplified78.7%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6478.1%
Simplified78.1%
associate-/l*N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
pow2N/A
pow-divN/A
pow-lowering-pow.f64N/A
--lowering--.f6490.6%
Applied egg-rr90.6%
(FPCore (a k m) :precision binary64 (if (<= k 1.0) (* a (pow k m)) (/ a (pow k (- 2.0 m)))))
double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a * pow(k, m);
} else {
tmp = a / pow(k, (2.0 - m));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= 1.0d0) then
tmp = a * (k ** m)
else
tmp = a / (k ** (2.0d0 - m))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 1.0) {
tmp = a * Math.pow(k, m);
} else {
tmp = a / Math.pow(k, (2.0 - m));
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 1.0: tmp = a * math.pow(k, m) else: tmp = a / math.pow(k, (2.0 - m)) return tmp
function code(a, k, m) tmp = 0.0 if (k <= 1.0) tmp = Float64(a * (k ^ m)); else tmp = Float64(a / (k ^ Float64(2.0 - m))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 1.0) tmp = a * (k ^ m); else tmp = a / (k ^ (2.0 - m)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 1.0], N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision], N[(a / N[Power[k, N[(2.0 - m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 1:\\
\;\;\;\;a \cdot {k}^{m}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{{k}^{\left(2 - m\right)}}\\
\end{array}
\end{array}
if k < 1Initial program 96.4%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6496.4%
Simplified96.4%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.4%
Simplified99.4%
if 1 < k Initial program 78.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.7%
Simplified78.7%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6478.1%
Simplified78.1%
associate-/l*N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
pow2N/A
pow-divN/A
pow-lowering-pow.f64N/A
--lowering--.f6490.6%
Applied egg-rr90.6%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* k (+ k 10.0))))
(if (<= m -0.215)
(/ (- a (/ (+ (* (/ a k) -99.0) (* a 10.0)) k)) (* k k))
(if (<= m 1.35e-11)
(/ a (+ 1.0 t_0))
(if (<= m 8.2e+30)
(/ a (/ 1.0 (+ 1.0 (* t_0 t_0))))
(* k (* a (* (* k k) -980.0))))))))
double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.215) {
tmp = (a - ((((a / k) * -99.0) + (a * 10.0)) / k)) / (k * k);
} else if (m <= 1.35e-11) {
tmp = a / (1.0 + t_0);
} else if (m <= 8.2e+30) {
tmp = a / (1.0 / (1.0 + (t_0 * t_0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = k * (k + 10.0d0)
if (m <= (-0.215d0)) then
tmp = (a - ((((a / k) * (-99.0d0)) + (a * 10.0d0)) / k)) / (k * k)
else if (m <= 1.35d-11) then
tmp = a / (1.0d0 + t_0)
else if (m <= 8.2d+30) then
tmp = a / (1.0d0 / (1.0d0 + (t_0 * t_0)))
else
tmp = k * (a * ((k * k) * (-980.0d0)))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.215) {
tmp = (a - ((((a / k) * -99.0) + (a * 10.0)) / k)) / (k * k);
} else if (m <= 1.35e-11) {
tmp = a / (1.0 + t_0);
} else if (m <= 8.2e+30) {
tmp = a / (1.0 / (1.0 + (t_0 * t_0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
def code(a, k, m): t_0 = k * (k + 10.0) tmp = 0 if m <= -0.215: tmp = (a - ((((a / k) * -99.0) + (a * 10.0)) / k)) / (k * k) elif m <= 1.35e-11: tmp = a / (1.0 + t_0) elif m <= 8.2e+30: tmp = a / (1.0 / (1.0 + (t_0 * t_0))) else: tmp = k * (a * ((k * k) * -980.0)) return tmp
function code(a, k, m) t_0 = Float64(k * Float64(k + 10.0)) tmp = 0.0 if (m <= -0.215) tmp = Float64(Float64(a - Float64(Float64(Float64(Float64(a / k) * -99.0) + Float64(a * 10.0)) / k)) / Float64(k * k)); elseif (m <= 1.35e-11) tmp = Float64(a / Float64(1.0 + t_0)); elseif (m <= 8.2e+30) tmp = Float64(a / Float64(1.0 / Float64(1.0 + Float64(t_0 * t_0)))); else tmp = Float64(k * Float64(a * Float64(Float64(k * k) * -980.0))); end return tmp end
function tmp_2 = code(a, k, m) t_0 = k * (k + 10.0); tmp = 0.0; if (m <= -0.215) tmp = (a - ((((a / k) * -99.0) + (a * 10.0)) / k)) / (k * k); elseif (m <= 1.35e-11) tmp = a / (1.0 + t_0); elseif (m <= 8.2e+30) tmp = a / (1.0 / (1.0 + (t_0 * t_0))); else tmp = k * (a * ((k * k) * -980.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.215], N[(N[(a - N[(N[(N[(N[(a / k), $MachinePrecision] * -99.0), $MachinePrecision] + N[(a * 10.0), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.35e-11], N[(a / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 8.2e+30], N[(a / N[(1.0 / N[(1.0 + N[(t$95$0 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(k * N[(a * N[(N[(k * k), $MachinePrecision] * -980.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := k \cdot \left(k + 10\right)\\
\mathbf{if}\;m \leq -0.215:\\
\;\;\;\;\frac{a - \frac{\frac{a}{k} \cdot -99 + a \cdot 10}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.35 \cdot 10^{-11}:\\
\;\;\;\;\frac{a}{1 + t\_0}\\
\mathbf{elif}\;m \leq 8.2 \cdot 10^{+30}:\\
\;\;\;\;\frac{a}{\frac{1}{1 + t\_0 \cdot t\_0}}\\
\mathbf{else}:\\
\;\;\;\;k \cdot \left(a \cdot \left(\left(k \cdot k\right) \cdot -980\right)\right)\\
\end{array}
\end{array}
if m < -0.214999999999999997Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6436.7%
Simplified36.7%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified69.0%
if -0.214999999999999997 < m < 1.35000000000000002e-11Initial program 91.8%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.8%
Simplified91.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6490.3%
Simplified90.3%
if 1.35000000000000002e-11 < m < 8.20000000000000011e30Initial program 71.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6471.2%
Simplified71.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6410.9%
Simplified10.9%
flip-+N/A
metadata-evalN/A
*-commutativeN/A
associate-*r*N/A
div-invN/A
flip--N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr9.5%
Taylor expanded in k around 0
Simplified81.0%
if 8.20000000000000011e30 < m Initial program 80.5%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6480.5%
Simplified80.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.3%
Simplified3.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
Simplified14.5%
Taylor expanded in k around inf
associate-*r*N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*l*N/A
associate-*r*N/A
unpow2N/A
*-commutativeN/A
associate-*l*N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.3%
Simplified49.3%
Final simplification71.0%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* k (+ k 10.0))))
(if (<= m -0.08)
(* a (/ 1.0 (* k k)))
(if (<= m 1.35e-11)
(/ a (+ 1.0 t_0))
(if (<= m 4.9e+33)
(/ a (/ 1.0 (+ 1.0 (* t_0 t_0))))
(* k (* a (* (* k k) -980.0))))))))
double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.08) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e-11) {
tmp = a / (1.0 + t_0);
} else if (m <= 4.9e+33) {
tmp = a / (1.0 / (1.0 + (t_0 * t_0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = k * (k + 10.0d0)
if (m <= (-0.08d0)) then
tmp = a * (1.0d0 / (k * k))
else if (m <= 1.35d-11) then
tmp = a / (1.0d0 + t_0)
else if (m <= 4.9d+33) then
tmp = a / (1.0d0 / (1.0d0 + (t_0 * t_0)))
else
tmp = k * (a * ((k * k) * (-980.0d0)))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.08) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e-11) {
tmp = a / (1.0 + t_0);
} else if (m <= 4.9e+33) {
tmp = a / (1.0 / (1.0 + (t_0 * t_0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
def code(a, k, m): t_0 = k * (k + 10.0) tmp = 0 if m <= -0.08: tmp = a * (1.0 / (k * k)) elif m <= 1.35e-11: tmp = a / (1.0 + t_0) elif m <= 4.9e+33: tmp = a / (1.0 / (1.0 + (t_0 * t_0))) else: tmp = k * (a * ((k * k) * -980.0)) return tmp
function code(a, k, m) t_0 = Float64(k * Float64(k + 10.0)) tmp = 0.0 if (m <= -0.08) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (m <= 1.35e-11) tmp = Float64(a / Float64(1.0 + t_0)); elseif (m <= 4.9e+33) tmp = Float64(a / Float64(1.0 / Float64(1.0 + Float64(t_0 * t_0)))); else tmp = Float64(k * Float64(a * Float64(Float64(k * k) * -980.0))); end return tmp end
function tmp_2 = code(a, k, m) t_0 = k * (k + 10.0); tmp = 0.0; if (m <= -0.08) tmp = a * (1.0 / (k * k)); elseif (m <= 1.35e-11) tmp = a / (1.0 + t_0); elseif (m <= 4.9e+33) tmp = a / (1.0 / (1.0 + (t_0 * t_0))); else tmp = k * (a * ((k * k) * -980.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.08], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.35e-11], N[(a / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 4.9e+33], N[(a / N[(1.0 / N[(1.0 + N[(t$95$0 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(k * N[(a * N[(N[(k * k), $MachinePrecision] * -980.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := k \cdot \left(k + 10\right)\\
\mathbf{if}\;m \leq -0.08:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.35 \cdot 10^{-11}:\\
\;\;\;\;\frac{a}{1 + t\_0}\\
\mathbf{elif}\;m \leq 4.9 \cdot 10^{+33}:\\
\;\;\;\;\frac{a}{\frac{1}{1 + t\_0 \cdot t\_0}}\\
\mathbf{else}:\\
\;\;\;\;k \cdot \left(a \cdot \left(\left(k \cdot k\right) \cdot -980\right)\right)\\
\end{array}
\end{array}
if m < -0.0800000000000000017Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6436.7%
Simplified36.7%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6465.2%
Simplified65.2%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6466.4%
Applied egg-rr66.4%
if -0.0800000000000000017 < m < 1.35000000000000002e-11Initial program 91.8%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.8%
Simplified91.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6490.3%
Simplified90.3%
if 1.35000000000000002e-11 < m < 4.90000000000000014e33Initial program 71.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6471.2%
Simplified71.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6410.9%
Simplified10.9%
flip-+N/A
metadata-evalN/A
*-commutativeN/A
associate-*r*N/A
div-invN/A
flip--N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr9.5%
Taylor expanded in k around 0
Simplified81.0%
if 4.90000000000000014e33 < m Initial program 80.5%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6480.5%
Simplified80.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.3%
Simplified3.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
Simplified14.5%
Taylor expanded in k around inf
associate-*r*N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*l*N/A
associate-*r*N/A
unpow2N/A
*-commutativeN/A
associate-*l*N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.3%
Simplified49.3%
Final simplification70.2%
(FPCore (a k m)
:precision binary64
(if (<= m -0.46)
(* a (/ 1.0 (* k k)))
(if (<= m 1.35e+16)
(/ a (+ 1.0 (* k (+ k 10.0))))
(* k (* a (* (* k k) -980.0))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.46) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e+16) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.46d0)) then
tmp = a * (1.0d0 / (k * k))
else if (m <= 1.35d+16) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = k * (a * ((k * k) * (-980.0d0)))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.46) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e+16) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.46: tmp = a * (1.0 / (k * k)) elif m <= 1.35e+16: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = k * (a * ((k * k) * -980.0)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.46) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (m <= 1.35e+16) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(k * Float64(a * Float64(Float64(k * k) * -980.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.46) tmp = a * (1.0 / (k * k)); elseif (m <= 1.35e+16) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = k * (a * ((k * k) * -980.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.46], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.35e+16], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(k * N[(a * N[(N[(k * k), $MachinePrecision] * -980.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.46:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.35 \cdot 10^{+16}:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;k \cdot \left(a \cdot \left(\left(k \cdot k\right) \cdot -980\right)\right)\\
\end{array}
\end{array}
if m < -0.46000000000000002Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6436.7%
Simplified36.7%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6465.2%
Simplified65.2%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6466.4%
Applied egg-rr66.4%
if -0.46000000000000002 < m < 1.35e16Initial program 91.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.1%
Simplified91.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6487.2%
Simplified87.2%
if 1.35e16 < m Initial program 80.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6480.0%
Simplified80.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.3%
Simplified3.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
Simplified14.0%
Taylor expanded in k around inf
associate-*r*N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*l*N/A
associate-*r*N/A
unpow2N/A
*-commutativeN/A
associate-*l*N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.5%
Simplified47.5%
Final simplification68.3%
(FPCore (a k m) :precision binary64 (if (<= m -0.18) (* a (/ 1.0 (* k k))) (if (<= m 1.35e+16) (/ a (+ 1.0 (* k k))) (* k (* a (* (* k k) -980.0))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.18) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e+16) {
tmp = a / (1.0 + (k * k));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.18d0)) then
tmp = a * (1.0d0 / (k * k))
else if (m <= 1.35d+16) then
tmp = a / (1.0d0 + (k * k))
else
tmp = k * (a * ((k * k) * (-980.0d0)))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.18) {
tmp = a * (1.0 / (k * k));
} else if (m <= 1.35e+16) {
tmp = a / (1.0 + (k * k));
} else {
tmp = k * (a * ((k * k) * -980.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.18: tmp = a * (1.0 / (k * k)) elif m <= 1.35e+16: tmp = a / (1.0 + (k * k)) else: tmp = k * (a * ((k * k) * -980.0)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.18) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (m <= 1.35e+16) tmp = Float64(a / Float64(1.0 + Float64(k * k))); else tmp = Float64(k * Float64(a * Float64(Float64(k * k) * -980.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.18) tmp = a * (1.0 / (k * k)); elseif (m <= 1.35e+16) tmp = a / (1.0 + (k * k)); else tmp = k * (a * ((k * k) * -980.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.18], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.35e+16], N[(a / N[(1.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(k * N[(a * N[(N[(k * k), $MachinePrecision] * -980.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.18:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.35 \cdot 10^{+16}:\\
\;\;\;\;\frac{a}{1 + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;k \cdot \left(a \cdot \left(\left(k \cdot k\right) \cdot -980\right)\right)\\
\end{array}
\end{array}
if m < -0.17999999999999999Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6436.7%
Simplified36.7%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6465.2%
Simplified65.2%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6466.4%
Applied egg-rr66.4%
if -0.17999999999999999 < m < 1.35e16Initial program 91.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6491.1%
Simplified91.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6487.2%
Simplified87.2%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6485.7%
Simplified85.7%
if 1.35e16 < m Initial program 80.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6480.0%
Simplified80.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.3%
Simplified3.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
Simplified14.0%
Taylor expanded in k around inf
associate-*r*N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*l*N/A
associate-*r*N/A
unpow2N/A
*-commutativeN/A
associate-*l*N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.5%
Simplified47.5%
Final simplification67.8%
(FPCore (a k m) :precision binary64 (if (<= k -5.1e-290) (* a (/ 1.0 (* k k))) (if (<= k 44000000.0) (/ a (+ 1.0 (* k 10.0))) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 44000000.0) {
tmp = a / (1.0 + (k * 10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= (-5.1d-290)) then
tmp = a * (1.0d0 / (k * k))
else if (k <= 44000000.0d0) then
tmp = a / (1.0d0 + (k * 10.0d0))
else
tmp = (a / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 44000000.0) {
tmp = a / (1.0 + (k * 10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -5.1e-290: tmp = a * (1.0 / (k * k)) elif k <= 44000000.0: tmp = a / (1.0 + (k * 10.0)) else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -5.1e-290) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (k <= 44000000.0) tmp = Float64(a / Float64(1.0 + Float64(k * 10.0))); else tmp = Float64(Float64(a / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= -5.1e-290) tmp = a * (1.0 / (k * k)); elseif (k <= 44000000.0) tmp = a / (1.0 + (k * 10.0)); else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -5.1e-290], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 44000000.0], N[(a / N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -5.1 \cdot 10^{-290}:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;k \leq 44000000:\\
\;\;\;\;\frac{a}{1 + k \cdot 10}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -5.1e-290Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6423.4%
Simplified23.4%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6436.7%
Simplified36.7%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6438.0%
Applied egg-rr38.0%
if -5.1e-290 < k < 4.4e7Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6453.7%
Simplified53.7%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6453.4%
Simplified53.4%
if 4.4e7 < k Initial program 78.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.2%
Simplified78.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6455.6%
Simplified55.6%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6454.9%
Simplified54.9%
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6459.3%
Applied egg-rr59.3%
Final simplification50.7%
(FPCore (a k m) :precision binary64 (if (<= k -5.1e-290) (* a (/ 1.0 (* k k))) (if (<= k 0.028) (+ a (* a (* k -10.0))) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 0.028) {
tmp = a + (a * (k * -10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= (-5.1d-290)) then
tmp = a * (1.0d0 / (k * k))
else if (k <= 0.028d0) then
tmp = a + (a * (k * (-10.0d0)))
else
tmp = (a / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 0.028) {
tmp = a + (a * (k * -10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -5.1e-290: tmp = a * (1.0 / (k * k)) elif k <= 0.028: tmp = a + (a * (k * -10.0)) else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -5.1e-290) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (k <= 0.028) tmp = Float64(a + Float64(a * Float64(k * -10.0))); else tmp = Float64(Float64(a / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= -5.1e-290) tmp = a * (1.0 / (k * k)); elseif (k <= 0.028) tmp = a + (a * (k * -10.0)); else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -5.1e-290], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.028], N[(a + N[(a * N[(k * -10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -5.1 \cdot 10^{-290}:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;k \leq 0.028:\\
\;\;\;\;a + a \cdot \left(k \cdot -10\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -5.1e-290Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6423.4%
Simplified23.4%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6436.7%
Simplified36.7%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6438.0%
Applied egg-rr38.0%
if -5.1e-290 < k < 0.0280000000000000006Initial program 99.9%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6499.9%
Simplified99.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6454.8%
Simplified54.8%
flip-+N/A
metadata-evalN/A
*-commutativeN/A
associate-*r*N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr54.8%
Taylor expanded in k around 0
+-lowering-+.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
if 0.0280000000000000006 < k Initial program 78.7%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.7%
Simplified78.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6454.4%
Simplified54.4%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6453.7%
Simplified53.7%
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6458.0%
Applied egg-rr58.0%
Final simplification50.7%
(FPCore (a k m) :precision binary64 (if (<= k -5.1e-290) (* a (/ 1.0 (* k k))) (if (<= k 44000000.0) a (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= (-5.1d-290)) then
tmp = a * (1.0d0 / (k * k))
else if (k <= 44000000.0d0) then
tmp = a
else
tmp = (a / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a * (1.0 / (k * k));
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -5.1e-290: tmp = a * (1.0 / (k * k)) elif k <= 44000000.0: tmp = a else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -5.1e-290) tmp = Float64(a * Float64(1.0 / Float64(k * k))); elseif (k <= 44000000.0) tmp = a; else tmp = Float64(Float64(a / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= -5.1e-290) tmp = a * (1.0 / (k * k)); elseif (k <= 44000000.0) tmp = a; else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -5.1e-290], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 44000000.0], a, N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -5.1 \cdot 10^{-290}:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{elif}\;k \leq 44000000:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -5.1e-290Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6423.4%
Simplified23.4%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6436.7%
Simplified36.7%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6438.0%
Applied egg-rr38.0%
if -5.1e-290 < k < 4.4e7Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6453.7%
Simplified53.7%
Taylor expanded in k around 0
Simplified52.7%
if 4.4e7 < k Initial program 78.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.2%
Simplified78.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6455.6%
Simplified55.6%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6454.9%
Simplified54.9%
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6459.3%
Applied egg-rr59.3%
Final simplification50.5%
(FPCore (a k m) :precision binary64 (if (<= k -5.1e-290) (/ a (* k k)) (if (<= k 44000000.0) a (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a / (k * k);
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= (-5.1d-290)) then
tmp = a / (k * k)
else if (k <= 44000000.0d0) then
tmp = a
else
tmp = (a / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= -5.1e-290) {
tmp = a / (k * k);
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -5.1e-290: tmp = a / (k * k) elif k <= 44000000.0: tmp = a else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -5.1e-290) tmp = Float64(a / Float64(k * k)); elseif (k <= 44000000.0) tmp = a; else tmp = Float64(Float64(a / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= -5.1e-290) tmp = a / (k * k); elseif (k <= 44000000.0) tmp = a; else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -5.1e-290], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 44000000.0], a, N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -5.1 \cdot 10^{-290}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 44000000:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -5.1e-290Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6423.4%
Simplified23.4%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6436.7%
Simplified36.7%
if -5.1e-290 < k < 4.4e7Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6453.7%
Simplified53.7%
Taylor expanded in k around 0
Simplified52.7%
if 4.4e7 < k Initial program 78.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6478.2%
Simplified78.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6455.6%
Simplified55.6%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6454.9%
Simplified54.9%
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6459.3%
Applied egg-rr59.3%
(FPCore (a k m) :precision binary64 (let* ((t_0 (/ a (* k k)))) (if (<= k -5.1e-290) t_0 (if (<= k 44000000.0) a t_0))))
double code(double a, double k, double m) {
double t_0 = a / (k * k);
double tmp;
if (k <= -5.1e-290) {
tmp = t_0;
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = a / (k * k)
if (k <= (-5.1d-290)) then
tmp = t_0
else if (k <= 44000000.0d0) then
tmp = a
else
tmp = t_0
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = a / (k * k);
double tmp;
if (k <= -5.1e-290) {
tmp = t_0;
} else if (k <= 44000000.0) {
tmp = a;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a / (k * k) tmp = 0 if k <= -5.1e-290: tmp = t_0 elif k <= 44000000.0: tmp = a else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a / Float64(k * k)) tmp = 0.0 if (k <= -5.1e-290) tmp = t_0; elseif (k <= 44000000.0) tmp = a; else tmp = t_0; end return tmp end
function tmp_2 = code(a, k, m) t_0 = a / (k * k); tmp = 0.0; if (k <= -5.1e-290) tmp = t_0; elseif (k <= 44000000.0) tmp = a; else tmp = t_0; end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k, -5.1e-290], t$95$0, If[LessEqual[k, 44000000.0], a, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{a}{k \cdot k}\\
\mathbf{if}\;k \leq -5.1 \cdot 10^{-290}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;k \leq 44000000:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if k < -5.1e-290 or 4.4e7 < k Initial program 84.8%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6484.9%
Simplified84.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6440.3%
Simplified40.3%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6446.3%
Simplified46.3%
if -5.1e-290 < k < 4.4e7Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6453.7%
Simplified53.7%
Taylor expanded in k around 0
Simplified52.7%
(FPCore (a k m) :precision binary64 (if (<= m -0.0305) (* a (/ 1.0 (* k k))) (/ a (+ 1.0 (* k k)))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.0305) {
tmp = a * (1.0 / (k * k));
} else {
tmp = a / (1.0 + (k * k));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.0305d0)) then
tmp = a * (1.0d0 / (k * k))
else
tmp = a / (1.0d0 + (k * k))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.0305) {
tmp = a * (1.0 / (k * k));
} else {
tmp = a / (1.0 + (k * k));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.0305: tmp = a * (1.0 / (k * k)) else: tmp = a / (1.0 + (k * k)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.0305) tmp = Float64(a * Float64(1.0 / Float64(k * k))); else tmp = Float64(a / Float64(1.0 + Float64(k * k))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.0305) tmp = a * (1.0 / (k * k)); else tmp = a / (1.0 + (k * k)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.0305], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a / N[(1.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.0305:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{1 + k \cdot k}\\
\end{array}
\end{array}
if m < -0.030499999999999999Initial program 100.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64100.0%
Simplified100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6436.7%
Simplified36.7%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6465.2%
Simplified65.2%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6466.4%
Applied egg-rr66.4%
if -0.030499999999999999 < m Initial program 86.0%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6486.0%
Simplified86.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6449.1%
Simplified49.1%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6448.2%
Simplified48.2%
Final simplification53.9%
(FPCore (a k m) :precision binary64 a)
double code(double a, double k, double m) {
return a;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
code = a
end function
public static double code(double a, double k, double m) {
return a;
}
def code(a, k, m): return a
function code(a, k, m) return a end
function tmp = code(a, k, m) tmp = a; end
code[a_, k_, m_] := a
\begin{array}{l}
\\
a
\end{array}
Initial program 90.4%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6490.4%
Simplified90.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6445.2%
Simplified45.2%
Taylor expanded in k around 0
Simplified21.8%
herbie shell --seed 2024158
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))