
(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 15 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
(let* ((t_0 (* a (pow k m))))
(if (<= m -5e-15)
(/ t_0 (+ 1.0 (* k 10.0)))
(if (<= m 1.22e-14)
(/
1.0
(+ (/ 1.0 a) (* k (+ (/ (/ k a) (pow k m)) (/ (/ 10.0 a) (pow k m))))))
t_0))))
double code(double a, double k, double m) {
double t_0 = a * pow(k, m);
double tmp;
if (m <= -5e-15) {
tmp = t_0 / (1.0 + (k * 10.0));
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * (((k / a) / pow(k, m)) + ((10.0 / a) / pow(k, m)))));
} 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 <= (-5d-15)) then
tmp = t_0 / (1.0d0 + (k * 10.0d0))
else if (m <= 1.22d-14) then
tmp = 1.0d0 / ((1.0d0 / a) + (k * (((k / a) / (k ** m)) + ((10.0d0 / a) / (k ** m)))))
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 <= -5e-15) {
tmp = t_0 / (1.0 + (k * 10.0));
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * (((k / a) / Math.pow(k, m)) + ((10.0 / a) / Math.pow(k, m)))));
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a * math.pow(k, m) tmp = 0 if m <= -5e-15: tmp = t_0 / (1.0 + (k * 10.0)) elif m <= 1.22e-14: tmp = 1.0 / ((1.0 / a) + (k * (((k / a) / math.pow(k, m)) + ((10.0 / a) / math.pow(k, m))))) else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a * (k ^ m)) tmp = 0.0 if (m <= -5e-15) tmp = Float64(t_0 / Float64(1.0 + Float64(k * 10.0))); elseif (m <= 1.22e-14) tmp = Float64(1.0 / Float64(Float64(1.0 / a) + Float64(k * Float64(Float64(Float64(k / a) / (k ^ m)) + Float64(Float64(10.0 / a) / (k ^ m)))))); 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 <= -5e-15) tmp = t_0 / (1.0 + (k * 10.0)); elseif (m <= 1.22e-14) tmp = 1.0 / ((1.0 / a) + (k * (((k / a) / (k ^ m)) + ((10.0 / a) / (k ^ m))))); 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, -5e-15], N[(t$95$0 / N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.22e-14], N[(1.0 / N[(N[(1.0 / a), $MachinePrecision] + N[(k * N[(N[(N[(k / a), $MachinePrecision] / N[Power[k, m], $MachinePrecision]), $MachinePrecision] + N[(N[(10.0 / a), $MachinePrecision] / N[Power[k, m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
\mathbf{if}\;m \leq -5 \cdot 10^{-15}:\\
\;\;\;\;\frac{t\_0}{1 + k \cdot 10}\\
\mathbf{elif}\;m \leq 1.22 \cdot 10^{-14}:\\
\;\;\;\;\frac{1}{\frac{1}{a} + k \cdot \left(\frac{\frac{k}{a}}{{k}^{m}} + \frac{\frac{10}{a}}{{k}^{m}}\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if m < -4.99999999999999999e-15Initial 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 k around 0
*-commutativeN/A
metadata-evalN/A
associate-*l*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64100.0%
Simplified100.0%
if -4.99999999999999999e-15 < m < 1.21999999999999994e-14Initial program 92.6%
/-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.6%
Simplified92.6%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6492.5%
Applied egg-rr92.5%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
associate-*r/N/A
metadata-evalN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6499.1%
Simplified99.1%
Taylor expanded in m around 0
/-lowering-/.f6499.1%
Simplified99.1%
if 1.21999999999999994e-14 < m Initial program 85.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-+.f6485.2%
Simplified85.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6498.7%
Simplified98.7%
(FPCore (a k m)
:precision binary64
(if (<= k 5.4e-33)
(* a (pow k m))
(/
1.0
(+
(/ (/ 1.0 a) (pow k m))
(* k (+ (/ (/ k a) (pow k m)) (/ (/ 10.0 a) (pow k m))))))))
double code(double a, double k, double m) {
double tmp;
if (k <= 5.4e-33) {
tmp = a * pow(k, m);
} else {
tmp = 1.0 / (((1.0 / a) / pow(k, m)) + (k * (((k / a) / pow(k, m)) + ((10.0 / a) / pow(k, 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 <= 5.4d-33) then
tmp = a * (k ** m)
else
tmp = 1.0d0 / (((1.0d0 / a) / (k ** m)) + (k * (((k / a) / (k ** m)) + ((10.0d0 / a) / (k ** m)))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 5.4e-33) {
tmp = a * Math.pow(k, m);
} else {
tmp = 1.0 / (((1.0 / a) / Math.pow(k, m)) + (k * (((k / a) / Math.pow(k, m)) + ((10.0 / a) / Math.pow(k, m)))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 5.4e-33: tmp = a * math.pow(k, m) else: tmp = 1.0 / (((1.0 / a) / math.pow(k, m)) + (k * (((k / a) / math.pow(k, m)) + ((10.0 / a) / math.pow(k, m))))) return tmp
function code(a, k, m) tmp = 0.0 if (k <= 5.4e-33) tmp = Float64(a * (k ^ m)); else tmp = Float64(1.0 / Float64(Float64(Float64(1.0 / a) / (k ^ m)) + Float64(k * Float64(Float64(Float64(k / a) / (k ^ m)) + Float64(Float64(10.0 / a) / (k ^ m)))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 5.4e-33) tmp = a * (k ^ m); else tmp = 1.0 / (((1.0 / a) / (k ^ m)) + (k * (((k / a) / (k ^ m)) + ((10.0 / a) / (k ^ m))))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 5.4e-33], N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(N[(N[(1.0 / a), $MachinePrecision] / N[Power[k, m], $MachinePrecision]), $MachinePrecision] + N[(k * N[(N[(N[(k / a), $MachinePrecision] / N[Power[k, m], $MachinePrecision]), $MachinePrecision] + N[(N[(10.0 / a), $MachinePrecision] / N[Power[k, m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 5.4 \cdot 10^{-33}:\\
\;\;\;\;a \cdot {k}^{m}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{\frac{1}{a}}{{k}^{m}} + k \cdot \left(\frac{\frac{k}{a}}{{k}^{m}} + \frac{\frac{10}{a}}{{k}^{m}}\right)}\\
\end{array}
\end{array}
if k < 5.4000000000000002e-33Initial program 96.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-+.f6496.8%
Simplified96.8%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.4%
Simplified99.4%
if 5.4000000000000002e-33 < k 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%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6486.0%
Applied egg-rr86.0%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
associate-*r/N/A
metadata-evalN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6497.4%
Simplified97.4%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* a (pow k m))))
(if (<= m -5e-15)
(/ t_0 (+ 1.0 (* k 10.0)))
(if (<= m 1.22e-14)
(/ 1.0 (+ (/ 1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
t_0))))
double code(double a, double k, double m) {
double t_0 = a * pow(k, m);
double tmp;
if (m <= -5e-15) {
tmp = t_0 / (1.0 + (k * 10.0));
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / 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 ** m)
if (m <= (-5d-15)) then
tmp = t_0 / (1.0d0 + (k * 10.0d0))
else if (m <= 1.22d-14) then
tmp = 1.0d0 / ((1.0d0 / a) + (k * ((k / a) + (10.0d0 / 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 * Math.pow(k, m);
double tmp;
if (m <= -5e-15) {
tmp = t_0 / (1.0 + (k * 10.0));
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a))));
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a * math.pow(k, m) tmp = 0 if m <= -5e-15: tmp = t_0 / (1.0 + (k * 10.0)) elif m <= 1.22e-14: tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))) else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a * (k ^ m)) tmp = 0.0 if (m <= -5e-15) tmp = Float64(t_0 / Float64(1.0 + Float64(k * 10.0))); elseif (m <= 1.22e-14) tmp = Float64(1.0 / Float64(Float64(1.0 / a) + Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); 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 <= -5e-15) tmp = t_0 / (1.0 + (k * 10.0)); elseif (m <= 1.22e-14) tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))); 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, -5e-15], N[(t$95$0 / N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.22e-14], N[(1.0 / N[(N[(1.0 / a), $MachinePrecision] + N[(k * N[(N[(k / a), $MachinePrecision] + N[(10.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
\mathbf{if}\;m \leq -5 \cdot 10^{-15}:\\
\;\;\;\;\frac{t\_0}{1 + k \cdot 10}\\
\mathbf{elif}\;m \leq 1.22 \cdot 10^{-14}:\\
\;\;\;\;\frac{1}{\frac{1}{a} + k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if m < -4.99999999999999999e-15Initial 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 k around 0
*-commutativeN/A
metadata-evalN/A
associate-*l*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64100.0%
Simplified100.0%
if -4.99999999999999999e-15 < m < 1.21999999999999994e-14Initial program 92.6%
/-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.6%
Simplified92.6%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6492.5%
Applied egg-rr92.5%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
associate-*r/N/A
metadata-evalN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6499.1%
Simplified99.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
/-lowering-/.f6498.8%
Simplified98.8%
if 1.21999999999999994e-14 < m Initial program 85.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-+.f6485.2%
Simplified85.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6498.7%
Simplified98.7%
Final simplification99.2%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* a (pow k m))))
(if (<= m -0.00022)
t_0
(if (<= m 1.22e-14)
(/ 1.0 (+ (/ 1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
t_0))))
double code(double a, double k, double m) {
double t_0 = a * pow(k, m);
double tmp;
if (m <= -0.00022) {
tmp = t_0;
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / 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 ** m)
if (m <= (-0.00022d0)) then
tmp = t_0
else if (m <= 1.22d-14) then
tmp = 1.0d0 / ((1.0d0 / a) + (k * ((k / a) + (10.0d0 / 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 * Math.pow(k, m);
double tmp;
if (m <= -0.00022) {
tmp = t_0;
} else if (m <= 1.22e-14) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a))));
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a * math.pow(k, m) tmp = 0 if m <= -0.00022: tmp = t_0 elif m <= 1.22e-14: tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))) else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a * (k ^ m)) tmp = 0.0 if (m <= -0.00022) tmp = t_0; elseif (m <= 1.22e-14) tmp = Float64(1.0 / Float64(Float64(1.0 / a) + Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); 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.00022) tmp = t_0; elseif (m <= 1.22e-14) tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))); 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.00022], t$95$0, If[LessEqual[m, 1.22e-14], N[(1.0 / N[(N[(1.0 / a), $MachinePrecision] + N[(k * N[(N[(k / a), $MachinePrecision] + N[(10.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
\mathbf{if}\;m \leq -0.00022:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;m \leq 1.22 \cdot 10^{-14}:\\
\;\;\;\;\frac{1}{\frac{1}{a} + k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if m < -2.20000000000000008e-4 or 1.21999999999999994e-14 < m Initial program 92.3%
/-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.3%
Simplified92.3%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.3%
Simplified99.3%
if -2.20000000000000008e-4 < m < 1.21999999999999994e-14Initial program 92.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-+.f6492.8%
Simplified92.8%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6492.7%
Applied egg-rr92.7%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
associate-*r/N/A
metadata-evalN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6499.1%
Simplified99.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
/-lowering-/.f6498.6%
Simplified98.6%
Final simplification99.1%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* k (* k k))))
(if (<= m -0.215)
(/ (* a 99.0) (* k t_0))
(if (<= m 0.27)
(/ 1.0 (+ (/ 1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
(* a (* t_0 1e-5))))))
double code(double a, double k, double m) {
double t_0 = k * (k * k);
double tmp;
if (m <= -0.215) {
tmp = (a * 99.0) / (k * t_0);
} else if (m <= 0.27) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a))));
} else {
tmp = a * (t_0 * 1e-5);
}
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 * k)
if (m <= (-0.215d0)) then
tmp = (a * 99.0d0) / (k * t_0)
else if (m <= 0.27d0) then
tmp = 1.0d0 / ((1.0d0 / a) + (k * ((k / a) + (10.0d0 / a))))
else
tmp = a * (t_0 * 1d-5)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = k * (k * k);
double tmp;
if (m <= -0.215) {
tmp = (a * 99.0) / (k * t_0);
} else if (m <= 0.27) {
tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a))));
} else {
tmp = a * (t_0 * 1e-5);
}
return tmp;
}
def code(a, k, m): t_0 = k * (k * k) tmp = 0 if m <= -0.215: tmp = (a * 99.0) / (k * t_0) elif m <= 0.27: tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))) else: tmp = a * (t_0 * 1e-5) return tmp
function code(a, k, m) t_0 = Float64(k * Float64(k * k)) tmp = 0.0 if (m <= -0.215) tmp = Float64(Float64(a * 99.0) / Float64(k * t_0)); elseif (m <= 0.27) tmp = Float64(1.0 / Float64(Float64(1.0 / a) + Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); else tmp = Float64(a * Float64(t_0 * 1e-5)); end return tmp end
function tmp_2 = code(a, k, m) t_0 = k * (k * k); tmp = 0.0; if (m <= -0.215) tmp = (a * 99.0) / (k * t_0); elseif (m <= 0.27) tmp = 1.0 / ((1.0 / a) + (k * ((k / a) + (10.0 / a)))); else tmp = a * (t_0 * 1e-5); end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.215], N[(N[(a * 99.0), $MachinePrecision] / N[(k * t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.27], N[(1.0 / N[(N[(1.0 / a), $MachinePrecision] + N[(k * N[(N[(k / a), $MachinePrecision] + N[(10.0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(t$95$0 * 1e-5), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := k \cdot \left(k \cdot k\right)\\
\mathbf{if}\;m \leq -0.215:\\
\;\;\;\;\frac{a \cdot 99}{k \cdot t\_0}\\
\mathbf{elif}\;m \leq 0.27:\\
\;\;\;\;\frac{1}{\frac{1}{a} + k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(t\_0 \cdot 10^{-5}\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-+.f6433.1%
Simplified33.1%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified59.7%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-commutativeN/A
associate-/l*N/A
distribute-lft-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
/-lowering-/.f6459.7%
Applied egg-rr59.7%
Taylor expanded in k around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-plusN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6473.6%
Simplified73.6%
if -0.214999999999999997 < m < 0.27000000000000002Initial program 92.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-+.f6492.9%
Simplified92.9%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6492.8%
Applied egg-rr92.8%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
associate-*r/N/A
metadata-evalN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6499.1%
Simplified99.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
/-lowering-/.f6498.4%
Simplified98.4%
if 0.27000000000000002 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr2.9%
Taylor expanded in k around inf
+-commutativeN/A
associate--l+N/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sub-negN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-neg-fracN/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
Taylor expanded in k around 0
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.6%
Simplified62.6%
Final simplification78.5%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* k (* k k))))
(if (<= m -0.18)
(/ (* a 99.0) (* k t_0))
(if (<= m 0.75) (/ a (+ 1.0 (* k (+ k 10.0)))) (* a (* t_0 1e-5))))))
double code(double a, double k, double m) {
double t_0 = k * (k * k);
double tmp;
if (m <= -0.18) {
tmp = (a * 99.0) / (k * t_0);
} else if (m <= 0.75) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * (t_0 * 1e-5);
}
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 * k)
if (m <= (-0.18d0)) then
tmp = (a * 99.0d0) / (k * t_0)
else if (m <= 0.75d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a * (t_0 * 1d-5)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = k * (k * k);
double tmp;
if (m <= -0.18) {
tmp = (a * 99.0) / (k * t_0);
} else if (m <= 0.75) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * (t_0 * 1e-5);
}
return tmp;
}
def code(a, k, m): t_0 = k * (k * k) tmp = 0 if m <= -0.18: tmp = (a * 99.0) / (k * t_0) elif m <= 0.75: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a * (t_0 * 1e-5) return tmp
function code(a, k, m) t_0 = Float64(k * Float64(k * k)) tmp = 0.0 if (m <= -0.18) tmp = Float64(Float64(a * 99.0) / Float64(k * t_0)); elseif (m <= 0.75) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a * Float64(t_0 * 1e-5)); end return tmp end
function tmp_2 = code(a, k, m) t_0 = k * (k * k); tmp = 0.0; if (m <= -0.18) tmp = (a * 99.0) / (k * t_0); elseif (m <= 0.75) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a * (t_0 * 1e-5); end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.18], N[(N[(a * 99.0), $MachinePrecision] / N[(k * t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.75], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(t$95$0 * 1e-5), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := k \cdot \left(k \cdot k\right)\\
\mathbf{if}\;m \leq -0.18:\\
\;\;\;\;\frac{a \cdot 99}{k \cdot t\_0}\\
\mathbf{elif}\;m \leq 0.75:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(t\_0 \cdot 10^{-5}\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-+.f6433.1%
Simplified33.1%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified59.7%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-commutativeN/A
associate-/l*N/A
distribute-lft-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
/-lowering-/.f6459.7%
Applied egg-rr59.7%
Taylor expanded in k around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-plusN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6473.6%
Simplified73.6%
if -0.17999999999999999 < m < 0.75Initial program 92.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-+.f6492.9%
Simplified92.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.4%
Simplified92.4%
if 0.75 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr2.9%
Taylor expanded in k around inf
+-commutativeN/A
associate--l+N/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sub-negN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-neg-fracN/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
Taylor expanded in k around 0
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.6%
Simplified62.6%
Final simplification76.4%
(FPCore (a k m)
:precision binary64
(if (<= m -0.2)
(/ a (* k k))
(if (<= m 0.68)
(/ a (+ 1.0 (* k (+ k 10.0))))
(* a (* (* k (* k k)) 1e-5)))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.2) {
tmp = a / (k * k);
} else if (m <= 0.68) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * ((k * (k * k)) * 1e-5);
}
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.2d0)) then
tmp = a / (k * k)
else if (m <= 0.68d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a * ((k * (k * k)) * 1d-5)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.2) {
tmp = a / (k * k);
} else if (m <= 0.68) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * ((k * (k * k)) * 1e-5);
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.2: tmp = a / (k * k) elif m <= 0.68: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a * ((k * (k * k)) * 1e-5) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.2) tmp = Float64(a / Float64(k * k)); elseif (m <= 0.68) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a * Float64(Float64(k * Float64(k * k)) * 1e-5)); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.2) tmp = a / (k * k); elseif (m <= 0.68) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a * ((k * (k * k)) * 1e-5); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.2], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.68], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision] * 1e-5), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.2:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 0.68:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(k \cdot \left(k \cdot k\right)\right) \cdot 10^{-5}\right)\\
\end{array}
\end{array}
if m < -0.20000000000000001Initial 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-+.f6433.1%
Simplified33.1%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6453.7%
Simplified53.7%
if -0.20000000000000001 < m < 0.680000000000000049Initial program 92.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-+.f6492.9%
Simplified92.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.4%
Simplified92.4%
if 0.680000000000000049 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr2.9%
Taylor expanded in k around inf
+-commutativeN/A
associate--l+N/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sub-negN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-neg-fracN/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
Taylor expanded in k around 0
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.6%
Simplified62.6%
Final simplification70.2%
(FPCore (a k m) :precision binary64 (if (<= m -0.18) (/ a (* k k)) (if (<= m 0.9) (/ a (+ 1.0 (* k k))) (* a (* (* k (* k k)) 1e-5)))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.18) {
tmp = a / (k * k);
} else if (m <= 0.9) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * ((k * (k * k)) * 1e-5);
}
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 / (k * k)
else if (m <= 0.9d0) then
tmp = a / (1.0d0 + (k * k))
else
tmp = a * ((k * (k * k)) * 1d-5)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.18) {
tmp = a / (k * k);
} else if (m <= 0.9) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * ((k * (k * k)) * 1e-5);
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.18: tmp = a / (k * k) elif m <= 0.9: tmp = a / (1.0 + (k * k)) else: tmp = a * ((k * (k * k)) * 1e-5) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.18) tmp = Float64(a / Float64(k * k)); elseif (m <= 0.9) tmp = Float64(a / Float64(1.0 + Float64(k * k))); else tmp = Float64(a * Float64(Float64(k * Float64(k * k)) * 1e-5)); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.18) tmp = a / (k * k); elseif (m <= 0.9) tmp = a / (1.0 + (k * k)); else tmp = a * ((k * (k * k)) * 1e-5); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.18], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.9], N[(a / N[(1.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision] * 1e-5), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.18:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 0.9:\\
\;\;\;\;\frac{a}{1 + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(k \cdot \left(k \cdot k\right)\right) \cdot 10^{-5}\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-+.f6433.1%
Simplified33.1%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6453.7%
Simplified53.7%
if -0.17999999999999999 < m < 0.900000000000000022Initial program 92.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-+.f6492.9%
Simplified92.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.4%
Simplified92.4%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6491.5%
Simplified91.5%
if 0.900000000000000022 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr2.9%
Taylor expanded in k around inf
+-commutativeN/A
associate--l+N/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sub-negN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-neg-fracN/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
Taylor expanded in k around 0
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.6%
Simplified62.6%
Final simplification69.9%
(FPCore (a k m) :precision binary64 (if (<= m -0.225) (/ a (* k k)) (if (<= m 1.0) (/ a (+ 1.0 (* k k))) (* a (* 99.0 (* k k))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.225) {
tmp = a / (k * k);
} else if (m <= 1.0) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * (99.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.225d0)) then
tmp = a / (k * k)
else if (m <= 1.0d0) then
tmp = a / (1.0d0 + (k * k))
else
tmp = a * (99.0d0 * (k * k))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.225) {
tmp = a / (k * k);
} else if (m <= 1.0) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * (99.0 * (k * k));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.225: tmp = a / (k * k) elif m <= 1.0: tmp = a / (1.0 + (k * k)) else: tmp = a * (99.0 * (k * k)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.225) tmp = Float64(a / Float64(k * k)); elseif (m <= 1.0) tmp = Float64(a / Float64(1.0 + Float64(k * k))); else tmp = Float64(a * Float64(99.0 * Float64(k * k))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.225) tmp = a / (k * k); elseif (m <= 1.0) tmp = a / (1.0 + (k * k)); else tmp = a * (99.0 * (k * k)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.225], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.0], N[(a / N[(1.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(99.0 * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.225:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 1:\\
\;\;\;\;\frac{a}{1 + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(99 \cdot \left(k \cdot k\right)\right)\\
\end{array}
\end{array}
if m < -0.225000000000000006Initial 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-+.f6433.1%
Simplified33.1%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6453.7%
Simplified53.7%
if -0.225000000000000006 < m < 1Initial program 92.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-+.f6492.9%
Simplified92.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.4%
Simplified92.4%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6491.5%
Simplified91.5%
if 1 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f643.4%
Applied egg-rr3.4%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
distribute-rgt-neg-inN/A
distribute-rgt1-inN/A
metadata-evalN/A
*-lowering-*.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6423.8%
Simplified23.8%
Taylor expanded in k around inf
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.5%
Simplified60.5%
Final simplification69.1%
(FPCore (a k m) :precision binary64 (if (<= m -1.82e-87) (/ 1.0 (/ (* k k) a)) (if (<= m 0.24) (/ a (+ 1.0 (* k 10.0))) (* a (* 99.0 (* k k))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -1.82e-87) {
tmp = 1.0 / ((k * k) / a);
} else if (m <= 0.24) {
tmp = a / (1.0 + (k * 10.0));
} else {
tmp = a * (99.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 <= (-1.82d-87)) then
tmp = 1.0d0 / ((k * k) / a)
else if (m <= 0.24d0) then
tmp = a / (1.0d0 + (k * 10.0d0))
else
tmp = a * (99.0d0 * (k * k))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -1.82e-87) {
tmp = 1.0 / ((k * k) / a);
} else if (m <= 0.24) {
tmp = a / (1.0 + (k * 10.0));
} else {
tmp = a * (99.0 * (k * k));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -1.82e-87: tmp = 1.0 / ((k * k) / a) elif m <= 0.24: tmp = a / (1.0 + (k * 10.0)) else: tmp = a * (99.0 * (k * k)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -1.82e-87) tmp = Float64(1.0 / Float64(Float64(k * k) / a)); elseif (m <= 0.24) tmp = Float64(a / Float64(1.0 + Float64(k * 10.0))); else tmp = Float64(a * Float64(99.0 * Float64(k * k))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -1.82e-87) tmp = 1.0 / ((k * k) / a); elseif (m <= 0.24) tmp = a / (1.0 + (k * 10.0)); else tmp = a * (99.0 * (k * k)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -1.82e-87], N[(1.0 / N[(N[(k * k), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.24], N[(a / N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(99.0 * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -1.82 \cdot 10^{-87}:\\
\;\;\;\;\frac{1}{\frac{k \cdot k}{a}}\\
\mathbf{elif}\;m \leq 0.24:\\
\;\;\;\;\frac{a}{1 + k \cdot 10}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(99 \cdot \left(k \cdot k\right)\right)\\
\end{array}
\end{array}
if m < -1.81999999999999993e-87Initial program 98.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-+.f6498.0%
Simplified98.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6442.0%
Simplified42.0%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6442.0%
Applied egg-rr42.0%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6455.5%
Simplified55.5%
if -1.81999999999999993e-87 < m < 0.23999999999999999Initial program 93.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-+.f6493.9%
Simplified93.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6493.7%
Simplified93.7%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6456.4%
Simplified56.4%
if 0.23999999999999999 < m Initial program 85.1%
/-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-+.f6485.1%
Simplified85.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.4%
Simplified3.4%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f643.4%
Applied egg-rr3.4%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
distribute-rgt-neg-inN/A
distribute-rgt1-inN/A
metadata-evalN/A
*-lowering-*.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6423.8%
Simplified23.8%
Taylor expanded in k around inf
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.5%
Simplified60.5%
Final simplification57.4%
(FPCore (a k m) :precision binary64 (let* ((t_0 (/ a (* k k)))) (if (<= k 1.85e-285) t_0 (if (<= k 9.2e-15) a t_0))))
double code(double a, double k, double m) {
double t_0 = a / (k * k);
double tmp;
if (k <= 1.85e-285) {
tmp = t_0;
} else if (k <= 9.2e-15) {
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 <= 1.85d-285) then
tmp = t_0
else if (k <= 9.2d-15) 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 <= 1.85e-285) {
tmp = t_0;
} else if (k <= 9.2e-15) {
tmp = a;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a / (k * k) tmp = 0 if k <= 1.85e-285: tmp = t_0 elif k <= 9.2e-15: 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 <= 1.85e-285) tmp = t_0; elseif (k <= 9.2e-15) 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 <= 1.85e-285) tmp = t_0; elseif (k <= 9.2e-15) 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, 1.85e-285], t$95$0, If[LessEqual[k, 9.2e-15], a, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{a}{k \cdot k}\\
\mathbf{if}\;k \leq 1.85 \cdot 10^{-285}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;k \leq 9.2 \cdot 10^{-15}:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if k < 1.8499999999999999e-285 or 9.19999999999999961e-15 < k Initial program 88.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-+.f6488.7%
Simplified88.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6442.2%
Simplified42.2%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6446.0%
Simplified46.0%
if 1.8499999999999999e-285 < k < 9.19999999999999961e-15Initial 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-+.f6446.5%
Simplified46.5%
Taylor expanded in k around 0
Simplified46.5%
(FPCore (a k m) :precision binary64 (if (<= m 1.22e-14) (/ 1.0 (/ (* k k) a)) (* a (* 99.0 (* k k)))))
double code(double a, double k, double m) {
double tmp;
if (m <= 1.22e-14) {
tmp = 1.0 / ((k * k) / a);
} else {
tmp = a * (99.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 <= 1.22d-14) then
tmp = 1.0d0 / ((k * k) / a)
else
tmp = a * (99.0d0 * (k * k))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= 1.22e-14) {
tmp = 1.0 / ((k * k) / a);
} else {
tmp = a * (99.0 * (k * k));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= 1.22e-14: tmp = 1.0 / ((k * k) / a) else: tmp = a * (99.0 * (k * k)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= 1.22e-14) tmp = Float64(1.0 / Float64(Float64(k * k) / a)); else tmp = Float64(a * Float64(99.0 * Float64(k * k))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= 1.22e-14) tmp = 1.0 / ((k * k) / a); else tmp = a * (99.0 * (k * k)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, 1.22e-14], N[(1.0 / N[(N[(k * k), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], N[(a * N[(99.0 * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq 1.22 \cdot 10^{-14}:\\
\;\;\;\;\frac{1}{\frac{k \cdot k}{a}}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(99 \cdot \left(k \cdot k\right)\right)\\
\end{array}
\end{array}
if m < 1.21999999999999994e-14Initial program 96.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-+.f6496.2%
Simplified96.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6464.2%
Simplified64.2%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6464.2%
Applied egg-rr64.2%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6452.6%
Simplified52.6%
if 1.21999999999999994e-14 < m Initial program 85.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-+.f6485.2%
Simplified85.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f644.3%
Simplified4.3%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f644.3%
Applied egg-rr4.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
distribute-rgt-neg-inN/A
distribute-rgt1-inN/A
metadata-evalN/A
*-lowering-*.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6424.4%
Simplified24.4%
Taylor expanded in k around inf
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.9%
Simplified59.9%
Final simplification55.1%
(FPCore (a k m) :precision binary64 (if (<= m 1.22e-14) (/ a (* k k)) (* a (* 99.0 (* k k)))))
double code(double a, double k, double m) {
double tmp;
if (m <= 1.22e-14) {
tmp = a / (k * k);
} else {
tmp = a * (99.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 <= 1.22d-14) then
tmp = a / (k * k)
else
tmp = a * (99.0d0 * (k * k))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= 1.22e-14) {
tmp = a / (k * k);
} else {
tmp = a * (99.0 * (k * k));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= 1.22e-14: tmp = a / (k * k) else: tmp = a * (99.0 * (k * k)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= 1.22e-14) tmp = Float64(a / Float64(k * k)); else tmp = Float64(a * Float64(99.0 * Float64(k * k))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= 1.22e-14) tmp = a / (k * k); else tmp = a * (99.0 * (k * k)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, 1.22e-14], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], N[(a * N[(99.0 * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq 1.22 \cdot 10^{-14}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(99 \cdot \left(k \cdot k\right)\right)\\
\end{array}
\end{array}
if m < 1.21999999999999994e-14Initial program 96.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-+.f6496.2%
Simplified96.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6464.2%
Simplified64.2%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6452.6%
Simplified52.6%
if 1.21999999999999994e-14 < m Initial program 85.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-+.f6485.2%
Simplified85.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f644.3%
Simplified4.3%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f644.3%
Applied egg-rr4.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
metadata-evalN/A
+-lowering-+.f64N/A
mul-1-negN/A
distribute-rgt-neg-inN/A
distribute-rgt1-inN/A
metadata-evalN/A
*-lowering-*.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6424.4%
Simplified24.4%
Taylor expanded in k around inf
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.9%
Simplified59.9%
Final simplification55.1%
(FPCore (a k m) :precision binary64 (if (<= m -9.2e-51) (/ a (* k 10.0)) a))
double code(double a, double k, double m) {
double tmp;
if (m <= -9.2e-51) {
tmp = a / (k * 10.0);
} else {
tmp = a;
}
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 <= (-9.2d-51)) then
tmp = a / (k * 10.0d0)
else
tmp = a
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -9.2e-51) {
tmp = a / (k * 10.0);
} else {
tmp = a;
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -9.2e-51: tmp = a / (k * 10.0) else: tmp = a return tmp
function code(a, k, m) tmp = 0.0 if (m <= -9.2e-51) tmp = Float64(a / Float64(k * 10.0)); else tmp = a; end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -9.2e-51) tmp = a / (k * 10.0); else tmp = a; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -9.2e-51], N[(a / N[(k * 10.0), $MachinePrecision]), $MachinePrecision], a]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -9.2 \cdot 10^{-51}:\\
\;\;\;\;\frac{a}{k \cdot 10}\\
\mathbf{else}:\\
\;\;\;\;a\\
\end{array}
\end{array}
if m < -9.20000000000000007e-51Initial program 98.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-+.f6498.9%
Simplified98.9%
Taylor expanded in k around 0
*-commutativeN/A
metadata-evalN/A
associate-*l*N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in k around inf
*-commutativeN/A
*-lowering-*.f6475.5%
Simplified75.5%
Taylor expanded in m around 0
Simplified20.1%
if -9.20000000000000007e-51 < m Initial program 89.1%
/-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.1%
Simplified89.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6446.6%
Simplified46.6%
Taylor expanded in k around 0
Simplified25.1%
(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 92.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-+.f6492.4%
Simplified92.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6443.6%
Simplified43.6%
Taylor expanded in k around 0
Simplified18.1%
herbie shell --seed 2024150
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))