
(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 -4.5e-14)
t_0
(if (<= m 1.65e-10) (/ 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 <= -4.5e-14) {
tmp = t_0;
} else if (m <= 1.65e-10) {
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 <= (-4.5d-14)) then
tmp = t_0
else if (m <= 1.65d-10) 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 <= -4.5e-14) {
tmp = t_0;
} else if (m <= 1.65e-10) {
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 <= -4.5e-14: tmp = t_0 elif m <= 1.65e-10: 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 <= -4.5e-14) tmp = t_0; elseif (m <= 1.65e-10) 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 <= -4.5e-14) tmp = t_0; elseif (m <= 1.65e-10) 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, -4.5e-14], t$95$0, If[LessEqual[m, 1.65e-10], 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 -4.5 \cdot 10^{-14}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;m \leq 1.65 \cdot 10^{-10}:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if m < -4.4999999999999998e-14 or 1.65e-10 < m Initial program 87.8%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
if -4.4999999999999998e-14 < m < 1.65e-10Initial program 89.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified89.0%
Final simplification96.4%
(FPCore (a k m) :precision binary64 (let* ((t_0 (* a (pow k m))) (t_1 (/ t_0 (+ (+ 1.0 (* k 10.0)) (* k k))))) (if (<= t_1 5e+133) t_1 t_0)))
double code(double a, double k, double m) {
double t_0 = a * pow(k, m);
double t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k));
double tmp;
if (t_1 <= 5e+133) {
tmp = t_1;
} 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) :: t_1
real(8) :: tmp
t_0 = a * (k ** m)
t_1 = t_0 / ((1.0d0 + (k * 10.0d0)) + (k * k))
if (t_1 <= 5d+133) then
tmp = t_1
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 t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k));
double tmp;
if (t_1 <= 5e+133) {
tmp = t_1;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a * math.pow(k, m) t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k)) tmp = 0 if t_1 <= 5e+133: tmp = t_1 else: tmp = t_0 return tmp
function code(a, k, m) t_0 = Float64(a * (k ^ m)) t_1 = Float64(t_0 / Float64(Float64(1.0 + Float64(k * 10.0)) + Float64(k * k))) tmp = 0.0 if (t_1 <= 5e+133) tmp = t_1; else tmp = t_0; end return tmp end
function tmp_2 = code(a, k, m) t_0 = a * (k ^ m); t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k)); tmp = 0.0; if (t_1 <= 5e+133) tmp = t_1; 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]}, Block[{t$95$1 = N[(t$95$0 / N[(N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 5e+133], t$95$1, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
t_1 := \frac{t\_0}{\left(1 + k \cdot 10\right) + k \cdot k}\\
\mathbf{if}\;t\_1 \leq 5 \cdot 10^{+133}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 4.99999999999999961e133Initial program 95.5%
if 4.99999999999999961e133 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) Initial program 58.0%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
Final simplification96.4%
(FPCore (a k m) :precision binary64 (if (<= m 1.32e-9) (* a (/ (pow k m) (+ 1.0 (* k (+ k 10.0))))) (* a (pow k m))))
double code(double a, double k, double m) {
double tmp;
if (m <= 1.32e-9) {
tmp = a * (pow(k, m) / (1.0 + (k * (k + 10.0))));
} else {
tmp = 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 (m <= 1.32d-9) then
tmp = a * ((k ** m) / (1.0d0 + (k * (k + 10.0d0))))
else
tmp = a * (k ** m)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= 1.32e-9) {
tmp = a * (Math.pow(k, m) / (1.0 + (k * (k + 10.0))));
} else {
tmp = a * Math.pow(k, m);
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= 1.32e-9: tmp = a * (math.pow(k, m) / (1.0 + (k * (k + 10.0)))) else: tmp = a * math.pow(k, m) return tmp
function code(a, k, m) tmp = 0.0 if (m <= 1.32e-9) tmp = Float64(a * Float64((k ^ m) / Float64(1.0 + Float64(k * Float64(k + 10.0))))); else tmp = Float64(a * (k ^ m)); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= 1.32e-9) tmp = a * ((k ^ m) / (1.0 + (k * (k + 10.0)))); else tmp = a * (k ^ m); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, 1.32e-9], N[(a * N[(N[Power[k, m], $MachinePrecision] / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq 1.32 \cdot 10^{-9}:\\
\;\;\;\;a \cdot \frac{{k}^{m}}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a \cdot {k}^{m}\\
\end{array}
\end{array}
if m < 1.32e-9Initial program 94.6%
associate-/l*N/A
*-commutativeN/A
*-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
+-lowering-+.f6494.5%
Applied egg-rr94.5%
if 1.32e-9 < m Initial program 75.6%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
Final simplification96.4%
(FPCore (a k m)
:precision binary64
(if (<= m -0.38)
(* a (/ (+ 1.0 (/ (+ -10.0 (/ 100.0 k)) k)) (* k k)))
(if (<= m 0.19)
(/ a (+ 1.0 (* k (+ k 10.0))))
(if (<= m 1.25e+218)
(/
a
(+ 1.0 (/ (* k (* k (* k (+ -1.0 (/ 100.0 (* k k)))))) (- 10.0 k))))
(+ a (* k (* a (+ 10.0 (* k 99.0)))))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.38) {
tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k));
} else if (m <= 0.19) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else if (m <= 1.25e+218) {
tmp = a / (1.0 + ((k * (k * (k * (-1.0 + (100.0 / (k * k)))))) / (10.0 - k)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.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.38d0)) then
tmp = a * ((1.0d0 + (((-10.0d0) + (100.0d0 / k)) / k)) / (k * k))
else if (m <= 0.19d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else if (m <= 1.25d+218) then
tmp = a / (1.0d0 + ((k * (k * (k * ((-1.0d0) + (100.0d0 / (k * k)))))) / (10.0d0 - k)))
else
tmp = a + (k * (a * (10.0d0 + (k * 99.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.38) {
tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k));
} else if (m <= 0.19) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else if (m <= 1.25e+218) {
tmp = a / (1.0 + ((k * (k * (k * (-1.0 + (100.0 / (k * k)))))) / (10.0 - k)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.38: tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k)) elif m <= 0.19: tmp = a / (1.0 + (k * (k + 10.0))) elif m <= 1.25e+218: tmp = a / (1.0 + ((k * (k * (k * (-1.0 + (100.0 / (k * k)))))) / (10.0 - k))) else: tmp = a + (k * (a * (10.0 + (k * 99.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.38) tmp = Float64(a * Float64(Float64(1.0 + Float64(Float64(-10.0 + Float64(100.0 / k)) / k)) / Float64(k * k))); elseif (m <= 0.19) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); elseif (m <= 1.25e+218) tmp = Float64(a / Float64(1.0 + Float64(Float64(k * Float64(k * Float64(k * Float64(-1.0 + Float64(100.0 / Float64(k * k)))))) / Float64(10.0 - k)))); else tmp = Float64(a + Float64(k * Float64(a * Float64(10.0 + Float64(k * 99.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.38) tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k)); elseif (m <= 0.19) tmp = a / (1.0 + (k * (k + 10.0))); elseif (m <= 1.25e+218) tmp = a / (1.0 + ((k * (k * (k * (-1.0 + (100.0 / (k * k)))))) / (10.0 - k))); else tmp = a + (k * (a * (10.0 + (k * 99.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.38], N[(a * N[(N[(1.0 + N[(N[(-10.0 + N[(100.0 / k), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.19], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.25e+218], N[(a / N[(1.0 + N[(N[(k * N[(k * N[(k * N[(-1.0 + N[(100.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(10.0 - k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(a * N[(10.0 + N[(k * 99.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.38:\\
\;\;\;\;a \cdot \frac{1 + \frac{-10 + \frac{100}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 0.19:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{elif}\;m \leq 1.25 \cdot 10^{+218}:\\
\;\;\;\;\frac{a}{1 + \frac{k \cdot \left(k \cdot \left(k \cdot \left(-1 + \frac{100}{k \cdot k}\right)\right)\right)}{10 - k}}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(a \cdot \left(10 + k \cdot 99\right)\right)\\
\end{array}
\end{array}
if m < -0.38Initial program 100.0%
Taylor expanded in m around 0
Simplified36.5%
Taylor expanded in k around inf
*-commutativeN/A
*-lowering-*.f6443.9%
Simplified43.9%
div-invN/A
*-commutativeN/A
distribute-lft-outN/A
flip-+N/A
metadata-evalN/A
associate-/l*N/A
*-commutativeN/A
clear-numN/A
*-lowering-*.f64N/A
Applied egg-rr43.9%
Taylor expanded in k around inf
/-lowering-/.f64N/A
Simplified75.0%
if -0.38 < m < 0.19Initial program 89.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified88.4%
if 0.19 < m < 1.24999999999999996e218Initial program 81.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified3.5%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
metadata-evalN/A
*-lowering-*.f64N/A
--lowering--.f643.5%
Applied egg-rr3.5%
Taylor expanded in k around inf
cube-multN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6433.2%
Simplified33.2%
if 1.24999999999999996e218 < m Initial program 63.0%
Taylor expanded in m around 0
Simplified2.7%
Applied egg-rr2.3%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
associate-*r*N/A
mul-1-negN/A
distribute-rgt1-inN/A
associate-*r*N/A
metadata-evalN/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
mul-1-negN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
metadata-eval46.8%
Simplified46.8%
Final simplification67.1%
(FPCore (a k m)
:precision binary64
(if (<= m -1.35)
(* a (/ (+ 1.0 (/ (+ -10.0 (/ 100.0 k)) k)) (* k k)))
(if (<= m 44.0)
(/ a (+ 1.0 (* k (+ k 10.0))))
(+ a (* k (* a (+ 10.0 (* k 99.0))))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -1.35) {
tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k));
} else if (m <= 44.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.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 <= (-1.35d0)) then
tmp = a * ((1.0d0 + (((-10.0d0) + (100.0d0 / k)) / k)) / (k * k))
else if (m <= 44.0d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a + (k * (a * (10.0d0 + (k * 99.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -1.35) {
tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k));
} else if (m <= 44.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -1.35: tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k)) elif m <= 44.0: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a + (k * (a * (10.0 + (k * 99.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -1.35) tmp = Float64(a * Float64(Float64(1.0 + Float64(Float64(-10.0 + Float64(100.0 / k)) / k)) / Float64(k * k))); elseif (m <= 44.0) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a + Float64(k * Float64(a * Float64(10.0 + Float64(k * 99.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -1.35) tmp = a * ((1.0 + ((-10.0 + (100.0 / k)) / k)) / (k * k)); elseif (m <= 44.0) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a + (k * (a * (10.0 + (k * 99.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -1.35], N[(a * N[(N[(1.0 + N[(N[(-10.0 + N[(100.0 / k), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 44.0], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(a * N[(10.0 + N[(k * 99.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -1.35:\\
\;\;\;\;a \cdot \frac{1 + \frac{-10 + \frac{100}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 44:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(a \cdot \left(10 + k \cdot 99\right)\right)\\
\end{array}
\end{array}
if m < -1.3500000000000001Initial program 100.0%
Taylor expanded in m around 0
Simplified36.5%
Taylor expanded in k around inf
*-commutativeN/A
*-lowering-*.f6443.9%
Simplified43.9%
div-invN/A
*-commutativeN/A
distribute-lft-outN/A
flip-+N/A
metadata-evalN/A
associate-/l*N/A
*-commutativeN/A
clear-numN/A
*-lowering-*.f64N/A
Applied egg-rr43.9%
Taylor expanded in k around inf
/-lowering-/.f64N/A
Simplified75.0%
if -1.3500000000000001 < m < 44Initial program 89.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified87.4%
if 44 < m Initial program 75.0%
Taylor expanded in m around 0
Simplified3.3%
Applied egg-rr2.9%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
associate-*r*N/A
mul-1-negN/A
distribute-rgt1-inN/A
associate-*r*N/A
metadata-evalN/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
mul-1-negN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
metadata-eval28.5%
Simplified28.5%
Final simplification64.0%
(FPCore (a k m)
:precision binary64
(if (<= m -49000.0)
(/ (* (/ (/ (/ a k) k) k) -980.0) (* k k))
(if (<= m 2100.0)
(/ a (+ 1.0 (* k (+ k 10.0))))
(+ a (* k (* a (+ 10.0 (* k 99.0))))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -49000.0) {
tmp = ((((a / k) / k) / k) * -980.0) / (k * k);
} else if (m <= 2100.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.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 <= (-49000.0d0)) then
tmp = ((((a / k) / k) / k) * (-980.0d0)) / (k * k)
else if (m <= 2100.0d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a + (k * (a * (10.0d0 + (k * 99.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -49000.0) {
tmp = ((((a / k) / k) / k) * -980.0) / (k * k);
} else if (m <= 2100.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -49000.0: tmp = ((((a / k) / k) / k) * -980.0) / (k * k) elif m <= 2100.0: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a + (k * (a * (10.0 + (k * 99.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -49000.0) tmp = Float64(Float64(Float64(Float64(Float64(a / k) / k) / k) * -980.0) / Float64(k * k)); elseif (m <= 2100.0) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a + Float64(k * Float64(a * Float64(10.0 + Float64(k * 99.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -49000.0) tmp = ((((a / k) / k) / k) * -980.0) / (k * k); elseif (m <= 2100.0) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a + (k * (a * (10.0 + (k * 99.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -49000.0], N[(N[(N[(N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] * -980.0), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 2100.0], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(a * N[(10.0 + N[(k * 99.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -49000:\\
\;\;\;\;\frac{\frac{\frac{\frac{a}{k}}{k}}{k} \cdot -980}{k \cdot k}\\
\mathbf{elif}\;m \leq 2100:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(a \cdot \left(10 + k \cdot 99\right)\right)\\
\end{array}
\end{array}
if m < -49000Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified36.9%
Taylor expanded in k around -inf
Simplified54.4%
Taylor expanded in k around 0
unpow3N/A
unpow2N/A
distribute-rgt-outN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
mul-1-negN/A
distribute-neg-fracN/A
distribute-neg-frac2N/A
mul-1-negN/A
times-fracN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
times-fracN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
Simplified64.8%
if -49000 < m < 2100Initial program 89.6%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified85.6%
if 2100 < m Initial program 74.7%
Taylor expanded in m around 0
Simplified3.2%
Applied egg-rr2.9%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
associate-*r*N/A
mul-1-negN/A
distribute-rgt1-inN/A
associate-*r*N/A
metadata-evalN/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
mul-1-negN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
metadata-eval28.8%
Simplified28.8%
Final simplification60.4%
(FPCore (a k m)
:precision binary64
(if (<= m -0.24)
(/ a (* k k))
(if (<= m 2100.0)
(/ a (+ 1.0 (* k (+ k 10.0))))
(+ a (* k (* a (+ 10.0 (* k 99.0))))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.24) {
tmp = a / (k * k);
} else if (m <= 2100.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.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.24d0)) then
tmp = a / (k * k)
else if (m <= 2100.0d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a + (k * (a * (10.0d0 + (k * 99.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.24) {
tmp = a / (k * k);
} else if (m <= 2100.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (10.0 + (k * 99.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.24: tmp = a / (k * k) elif m <= 2100.0: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a + (k * (a * (10.0 + (k * 99.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.24) tmp = Float64(a / Float64(k * k)); elseif (m <= 2100.0) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a + Float64(k * Float64(a * Float64(10.0 + Float64(k * 99.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.24) tmp = a / (k * k); elseif (m <= 2100.0) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a + (k * (a * (10.0 + (k * 99.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.24], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 2100.0], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(a * N[(10.0 + N[(k * 99.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.24:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 2100:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(a \cdot \left(10 + k \cdot 99\right)\right)\\
\end{array}
\end{array}
if m < -0.23999999999999999Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified36.5%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6463.9%
Simplified63.9%
if -0.23999999999999999 < m < 2100Initial program 89.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified86.5%
if 2100 < m Initial program 74.7%
Taylor expanded in m around 0
Simplified3.2%
Applied egg-rr2.9%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
associate-*r*N/A
mul-1-negN/A
distribute-rgt1-inN/A
associate-*r*N/A
metadata-evalN/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
mul-1-negN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
metadata-eval28.8%
Simplified28.8%
Final simplification60.3%
(FPCore (a k m)
:precision binary64
(if (<= m -0.32)
(/ a (* k k))
(if (<= m 44.0)
(/ a (+ 1.0 (* k (+ k 10.0))))
(+ a (* k (* a (+ -10.0 (* k 99.0))))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.32) {
tmp = a / (k * k);
} else if (m <= 44.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (-10.0 + (k * 99.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.32d0)) then
tmp = a / (k * k)
else if (m <= 44.0d0) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a + (k * (a * ((-10.0d0) + (k * 99.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.32) {
tmp = a / (k * k);
} else if (m <= 44.0) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a + (k * (a * (-10.0 + (k * 99.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.32: tmp = a / (k * k) elif m <= 44.0: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a + (k * (a * (-10.0 + (k * 99.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.32) tmp = Float64(a / Float64(k * k)); elseif (m <= 44.0) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a + Float64(k * Float64(a * Float64(-10.0 + Float64(k * 99.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.32) tmp = a / (k * k); elseif (m <= 44.0) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a + (k * (a * (-10.0 + (k * 99.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.32], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 44.0], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(a * N[(-10.0 + N[(k * 99.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.32:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 44:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(a \cdot \left(-10 + k \cdot 99\right)\right)\\
\end{array}
\end{array}
if m < -0.320000000000000007Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified36.5%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6463.9%
Simplified63.9%
if -0.320000000000000007 < m < 44Initial program 89.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified87.4%
if 44 < m Initial program 75.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified3.3%
*-commutativeN/A
flip-+N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
metadata-evalN/A
*-lowering-*.f64N/A
--lowering--.f643.2%
Applied egg-rr3.2%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
cancel-sign-sub-invN/A
associate-*r*N/A
metadata-evalN/A
distribute-rgt1-inN/A
metadata-evalN/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f6428.5%
Simplified28.5%
Final simplification60.3%
(FPCore (a k m)
:precision binary64
(if (<= m -0.46)
(/ a (* k k))
(if (<= m 1.32e-9)
(/ a (+ 1.0 (* k (+ k 10.0))))
(* a (+ 1.0 (* k 10.0))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.46) {
tmp = a / (k * k);
} else if (m <= 1.32e-9) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * (1.0 + (k * 10.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 / (k * k)
else if (m <= 1.32d-9) then
tmp = a / (1.0d0 + (k * (k + 10.0d0)))
else
tmp = a * (1.0d0 + (k * 10.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 / (k * k);
} else if (m <= 1.32e-9) {
tmp = a / (1.0 + (k * (k + 10.0)));
} else {
tmp = a * (1.0 + (k * 10.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.46: tmp = a / (k * k) elif m <= 1.32e-9: tmp = a / (1.0 + (k * (k + 10.0))) else: tmp = a * (1.0 + (k * 10.0)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.46) tmp = Float64(a / Float64(k * k)); elseif (m <= 1.32e-9) tmp = Float64(a / Float64(1.0 + Float64(k * Float64(k + 10.0)))); else tmp = Float64(a * Float64(1.0 + Float64(k * 10.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.46) tmp = a / (k * k); elseif (m <= 1.32e-9) tmp = a / (1.0 + (k * (k + 10.0))); else tmp = a * (1.0 + (k * 10.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.46], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.32e-9], N[(a / N[(1.0 + N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.46:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.32 \cdot 10^{-9}:\\
\;\;\;\;\frac{a}{1 + k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(1 + k \cdot 10\right)\\
\end{array}
\end{array}
if m < -0.46000000000000002Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified36.5%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6463.9%
Simplified63.9%
if -0.46000000000000002 < m < 1.32e-9Initial program 89.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified88.8%
if 1.32e-9 < m Initial program 75.6%
Taylor expanded in m around 0
Simplified3.8%
Applied egg-rr3.5%
Taylor expanded in k around 0
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6413.1%
Simplified13.1%
Final simplification55.1%
(FPCore (a k m) :precision binary64 (if (<= m -0.28) (/ a (* k k)) (if (<= m 1.32e-9) (/ a (+ 1.0 (* k k))) (* a (+ 1.0 (* k 10.0))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.28) {
tmp = a / (k * k);
} else if (m <= 1.32e-9) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * (1.0 + (k * 10.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.28d0)) then
tmp = a / (k * k)
else if (m <= 1.32d-9) then
tmp = a / (1.0d0 + (k * k))
else
tmp = a * (1.0d0 + (k * 10.0d0))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.28) {
tmp = a / (k * k);
} else if (m <= 1.32e-9) {
tmp = a / (1.0 + (k * k));
} else {
tmp = a * (1.0 + (k * 10.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.28: tmp = a / (k * k) elif m <= 1.32e-9: tmp = a / (1.0 + (k * k)) else: tmp = a * (1.0 + (k * 10.0)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.28) tmp = Float64(a / Float64(k * k)); elseif (m <= 1.32e-9) tmp = Float64(a / Float64(1.0 + Float64(k * k))); else tmp = Float64(a * Float64(1.0 + Float64(k * 10.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.28) tmp = a / (k * k); elseif (m <= 1.32e-9) tmp = a / (1.0 + (k * k)); else tmp = a * (1.0 + (k * 10.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.28], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.32e-9], N[(a / N[(1.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.28:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;m \leq 1.32 \cdot 10^{-9}:\\
\;\;\;\;\frac{a}{1 + k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(1 + k \cdot 10\right)\\
\end{array}
\end{array}
if m < -0.28000000000000003Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified36.5%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6463.9%
Simplified63.9%
if -0.28000000000000003 < m < 1.32e-9Initial program 89.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified88.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6488.5%
Simplified88.5%
if 1.32e-9 < m Initial program 75.6%
Taylor expanded in m around 0
Simplified3.8%
Applied egg-rr3.5%
Taylor expanded in k around 0
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6413.1%
Simplified13.1%
Final simplification55.0%
(FPCore (a k m) :precision binary64 (if (<= k 4.6e-287) (/ a (* k k)) (if (<= k 0.000155) (* a (+ 1.0 (* k -10.0))) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= 4.6e-287) {
tmp = a / (k * k);
} else if (k <= 0.000155) {
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 <= 4.6d-287) then
tmp = a / (k * k)
else if (k <= 0.000155d0) 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 <= 4.6e-287) {
tmp = a / (k * k);
} else if (k <= 0.000155) {
tmp = a * (1.0 + (k * -10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 4.6e-287: tmp = a / (k * k) elif k <= 0.000155: tmp = a * (1.0 + (k * -10.0)) else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= 4.6e-287) tmp = Float64(a / Float64(k * k)); elseif (k <= 0.000155) 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 <= 4.6e-287) tmp = a / (k * k); elseif (k <= 0.000155) tmp = a * (1.0 + (k * -10.0)); else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 4.6e-287], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.000155], 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 4.6 \cdot 10^{-287}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 0.000155:\\
\;\;\;\;a \cdot \left(1 + k \cdot -10\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < 4.59999999999999972e-287Initial program 95.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified17.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6435.0%
Simplified35.0%
if 4.59999999999999972e-287 < k < 1.55e-4Initial program 100.0%
Taylor expanded in k around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
distribute-lft1-inN/A
rem-exp-logN/A
remove-double-negN/A
log-recN/A
exp-prodN/A
distribute-lft-neg-inN/A
*-commutativeN/A
mul-1-negN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
Simplified100.0%
Taylor expanded in m around 0
Simplified54.3%
if 1.55e-4 < k Initial program 72.1%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified57.0%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6462.4%
Simplified62.4%
Final simplification50.7%
(FPCore (a k m) :precision binary64 (if (<= k 4.7e-287) (/ a (* k k)) (if (<= k 21500.0) (* a (+ 1.0 (* k 10.0))) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= 4.7e-287) {
tmp = a / (k * k);
} else if (k <= 21500.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 <= 4.7d-287) then
tmp = a / (k * k)
else if (k <= 21500.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 <= 4.7e-287) {
tmp = a / (k * k);
} else if (k <= 21500.0) {
tmp = a * (1.0 + (k * 10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 4.7e-287: tmp = a / (k * k) elif k <= 21500.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 <= 4.7e-287) tmp = Float64(a / Float64(k * k)); elseif (k <= 21500.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 <= 4.7e-287) tmp = a / (k * k); elseif (k <= 21500.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, 4.7e-287], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 21500.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 4.7 \cdot 10^{-287}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 21500:\\
\;\;\;\;a \cdot \left(1 + k \cdot 10\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < 4.6999999999999999e-287Initial program 95.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified17.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6435.0%
Simplified35.0%
if 4.6999999999999999e-287 < k < 21500Initial program 100.0%
Taylor expanded in m around 0
Simplified52.4%
Applied egg-rr52.3%
Taylor expanded in k around 0
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6452.4%
Simplified52.4%
if 21500 < k Initial program 71.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified58.8%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6464.4%
Simplified64.4%
Final simplification50.7%
(FPCore (a k m) :precision binary64 (if (<= k 1.25e-287) (/ a (* k k)) (if (<= k 21500.0) a (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= 1.25e-287) {
tmp = a / (k * k);
} else if (k <= 21500.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 <= 1.25d-287) then
tmp = a / (k * k)
else if (k <= 21500.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 <= 1.25e-287) {
tmp = a / (k * k);
} else if (k <= 21500.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 1.25e-287: tmp = a / (k * k) elif k <= 21500.0: tmp = a else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= 1.25e-287) tmp = Float64(a / Float64(k * k)); elseif (k <= 21500.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 <= 1.25e-287) tmp = a / (k * k); elseif (k <= 21500.0) tmp = a; else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 1.25e-287], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 21500.0], a, N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 1.25 \cdot 10^{-287}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 21500:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < 1.25000000000000006e-287Initial program 95.4%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified17.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6435.0%
Simplified35.0%
if 1.25000000000000006e-287 < k < 21500Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified52.4%
Taylor expanded in k around 0
Simplified52.4%
if 21500 < k Initial program 71.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified58.8%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6464.4%
Simplified64.4%
(FPCore (a k m) :precision binary64 (let* ((t_0 (/ a (* k k)))) (if (<= k 2e-287) t_0 (if (<= k 21500.0) a t_0))))
double code(double a, double k, double m) {
double t_0 = a / (k * k);
double tmp;
if (k <= 2e-287) {
tmp = t_0;
} else if (k <= 21500.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 <= 2d-287) then
tmp = t_0
else if (k <= 21500.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 <= 2e-287) {
tmp = t_0;
} else if (k <= 21500.0) {
tmp = a;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a / (k * k) tmp = 0 if k <= 2e-287: tmp = t_0 elif k <= 21500.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 <= 2e-287) tmp = t_0; elseif (k <= 21500.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 <= 2e-287) tmp = t_0; elseif (k <= 21500.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, 2e-287], t$95$0, If[LessEqual[k, 21500.0], a, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{a}{k \cdot k}\\
\mathbf{if}\;k \leq 2 \cdot 10^{-287}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;k \leq 21500:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if k < 2.00000000000000004e-287 or 21500 < k Initial program 83.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified38.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6447.0%
Simplified47.0%
if 2.00000000000000004e-287 < k < 21500Initial program 100.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified52.4%
Taylor expanded in k around 0
Simplified52.4%
(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 88.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
unpow2N/A
distribute-rgt-inN/A
metadata-evalN/A
lft-mult-inverseN/A
associate-*l*N/A
*-lft-identityN/A
distribute-rgt-inN/A
+-commutativeN/A
associate-*l*N/A
unpow2N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
+-commutativeN/A
distribute-rgt-inN/A
associate-*l*N/A
lft-mult-inverseN/A
metadata-evalN/A
*-lft-identityN/A
Simplified42.9%
Taylor expanded in k around 0
Simplified18.9%
herbie shell --seed 2024192
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))