
(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 19 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a k m) :precision binary64 (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
double code(double a, double k, double m) {
return (a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
code = (a * (k ** m)) / ((1.0d0 + (10.0d0 * k)) + (k * k))
end function
public static double code(double a, double k, double m) {
return (a * Math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
def code(a, k, m): return (a * math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k))
function code(a, k, m) return Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k))) end
function tmp = code(a, k, m) tmp = (a * (k ^ m)) / ((1.0 + (10.0 * k)) + (k * k)); end
code[a_, k_, m_] := N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\end{array}
(FPCore (a k m) :precision binary64 (if (<= m 2.1e-7) (* (/ (pow k m) (+ (* k (+ k 10.0)) 1.0)) a) (/ (/ (* (pow k m) a) k) k)))
double code(double a, double k, double m) {
double tmp;
if (m <= 2.1e-7) {
tmp = (pow(k, m) / ((k * (k + 10.0)) + 1.0)) * a;
} else {
tmp = ((pow(k, m) * 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 (m <= 2.1d-7) then
tmp = ((k ** m) / ((k * (k + 10.0d0)) + 1.0d0)) * a
else
tmp = (((k ** m) * a) / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= 2.1e-7) {
tmp = (Math.pow(k, m) / ((k * (k + 10.0)) + 1.0)) * a;
} else {
tmp = ((Math.pow(k, m) * a) / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= 2.1e-7: tmp = (math.pow(k, m) / ((k * (k + 10.0)) + 1.0)) * a else: tmp = ((math.pow(k, m) * a) / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (m <= 2.1e-7) tmp = Float64(Float64((k ^ m) / Float64(Float64(k * Float64(k + 10.0)) + 1.0)) * a); else tmp = Float64(Float64(Float64((k ^ m) * a) / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= 2.1e-7) tmp = ((k ^ m) / ((k * (k + 10.0)) + 1.0)) * a; else tmp = (((k ^ m) * a) / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, 2.1e-7], N[(N[(N[Power[k, m], $MachinePrecision] / N[(N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * a), $MachinePrecision], N[(N[(N[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq 2.1 \cdot 10^{-7}:\\
\;\;\;\;\frac{{k}^{m}}{k \cdot \left(k + 10\right) + 1} \cdot a\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{k}^{m} \cdot a}{k}}{k}\\
\end{array}
\end{array}
if m < 2.1e-7Initial program 99.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-+.f6499.4%
Simplified99.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6499.4%
Applied egg-rr99.4%
if 2.1e-7 < m Initial program 85.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-+.f6485.3%
Simplified85.3%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6459.7%
Simplified59.7%
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64100.0%
Applied egg-rr100.0%
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Applied egg-rr100.0%
Final simplification99.6%
(FPCore (a k m) :precision binary64 (let* ((t_0 (* (pow k m) a))) (if (<= k 0.1) (* t_0 (+ (* k -10.0) 1.0)) (/ (/ t_0 k) k))))
double code(double a, double k, double m) {
double t_0 = pow(k, m) * a;
double tmp;
if (k <= 0.1) {
tmp = t_0 * ((k * -10.0) + 1.0);
} else {
tmp = (t_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) :: t_0
real(8) :: tmp
t_0 = (k ** m) * a
if (k <= 0.1d0) then
tmp = t_0 * ((k * (-10.0d0)) + 1.0d0)
else
tmp = (t_0 / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = Math.pow(k, m) * a;
double tmp;
if (k <= 0.1) {
tmp = t_0 * ((k * -10.0) + 1.0);
} else {
tmp = (t_0 / k) / k;
}
return tmp;
}
def code(a, k, m): t_0 = math.pow(k, m) * a tmp = 0 if k <= 0.1: tmp = t_0 * ((k * -10.0) + 1.0) else: tmp = (t_0 / k) / k return tmp
function code(a, k, m) t_0 = Float64((k ^ m) * a) tmp = 0.0 if (k <= 0.1) tmp = Float64(t_0 * Float64(Float64(k * -10.0) + 1.0)); else tmp = Float64(Float64(t_0 / k) / k); end return tmp end
function tmp_2 = code(a, k, m) t_0 = (k ^ m) * a; tmp = 0.0; if (k <= 0.1) tmp = t_0 * ((k * -10.0) + 1.0); else tmp = (t_0 / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision]}, If[LessEqual[k, 0.1], N[(t$95$0 * N[(N[(k * -10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(t$95$0 / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := {k}^{m} \cdot a\\
\mathbf{if}\;k \leq 0.1:\\
\;\;\;\;t\_0 \cdot \left(k \cdot -10 + 1\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{t\_0}{k}}{k}\\
\end{array}
\end{array}
if k < 0.10000000000000001Initial program 98.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-+.f6498.2%
Simplified98.2%
Taylor expanded in k around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
distribute-lft1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
if 0.10000000000000001 < k Initial program 88.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-+.f6488.6%
Simplified88.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6486.8%
Simplified86.8%
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6498.0%
Applied egg-rr98.0%
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6498.1%
Applied egg-rr98.1%
Final simplification99.3%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* (pow k m) a)))
(if (<= m -5.8e-8)
t_0
(if (<= m 1.85e-11)
(/ -1.0 (- (/ -1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
t_0))))
double code(double a, double k, double m) {
double t_0 = pow(k, m) * a;
double tmp;
if (m <= -5.8e-8) {
tmp = t_0;
} else if (m <= 1.85e-11) {
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 = (k ** m) * a
if (m <= (-5.8d-8)) then
tmp = t_0
else if (m <= 1.85d-11) 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 = Math.pow(k, m) * a;
double tmp;
if (m <= -5.8e-8) {
tmp = t_0;
} else if (m <= 1.85e-11) {
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 = math.pow(k, m) * a tmp = 0 if m <= -5.8e-8: tmp = t_0 elif m <= 1.85e-11: 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((k ^ m) * a) tmp = 0.0 if (m <= -5.8e-8) tmp = t_0; elseif (m <= 1.85e-11) 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 = (k ^ m) * a; tmp = 0.0; if (m <= -5.8e-8) tmp = t_0; elseif (m <= 1.85e-11) 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[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision]}, If[LessEqual[m, -5.8e-8], t$95$0, If[LessEqual[m, 1.85e-11], 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 := {k}^{m} \cdot a\\
\mathbf{if}\;m \leq -5.8 \cdot 10^{-8}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;m \leq 1.85 \cdot 10^{-11}:\\
\;\;\;\;\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 < -5.8000000000000003e-8 or 1.8500000000000001e-11 < m Initial program 93.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-+.f6493.0%
Simplified93.0%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6498.9%
Simplified98.9%
if -5.8000000000000003e-8 < m < 1.8500000000000001e-11Initial program 98.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-+.f6498.8%
Simplified98.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6498.2%
Simplified98.2%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6498.1%
Applied egg-rr98.1%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6499.3%
Simplified99.3%
Final simplification99.0%
(FPCore (a k m) :precision binary64 (let* ((t_0 (* (pow k m) a))) (if (<= k 0.105) t_0 (/ (/ t_0 k) k))))
double code(double a, double k, double m) {
double t_0 = pow(k, m) * a;
double tmp;
if (k <= 0.105) {
tmp = t_0;
} else {
tmp = (t_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) :: t_0
real(8) :: tmp
t_0 = (k ** m) * a
if (k <= 0.105d0) then
tmp = t_0
else
tmp = (t_0 / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = Math.pow(k, m) * a;
double tmp;
if (k <= 0.105) {
tmp = t_0;
} else {
tmp = (t_0 / k) / k;
}
return tmp;
}
def code(a, k, m): t_0 = math.pow(k, m) * a tmp = 0 if k <= 0.105: tmp = t_0 else: tmp = (t_0 / k) / k return tmp
function code(a, k, m) t_0 = Float64((k ^ m) * a) tmp = 0.0 if (k <= 0.105) tmp = t_0; else tmp = Float64(Float64(t_0 / k) / k); end return tmp end
function tmp_2 = code(a, k, m) t_0 = (k ^ m) * a; tmp = 0.0; if (k <= 0.105) tmp = t_0; else tmp = (t_0 / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision]}, If[LessEqual[k, 0.105], t$95$0, N[(N[(t$95$0 / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := {k}^{m} \cdot a\\
\mathbf{if}\;k \leq 0.105:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{t\_0}{k}}{k}\\
\end{array}
\end{array}
if k < 0.104999999999999996Initial program 98.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-+.f6498.2%
Simplified98.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.7%
Simplified99.7%
if 0.104999999999999996 < k Initial program 88.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-+.f6488.6%
Simplified88.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6486.8%
Simplified86.8%
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6498.0%
Applied egg-rr98.0%
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f6498.1%
Applied egg-rr98.1%
Final simplification99.2%
(FPCore (a k m) :precision binary64 (if (<= k 0.105) (* (pow k m) a) (/ (* a (/ (pow k m) k)) k)))
double code(double a, double k, double m) {
double tmp;
if (k <= 0.105) {
tmp = pow(k, m) * a;
} else {
tmp = (a * (pow(k, m) / 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 <= 0.105d0) then
tmp = (k ** m) * a
else
tmp = (a * ((k ** m) / k)) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 0.105) {
tmp = Math.pow(k, m) * a;
} else {
tmp = (a * (Math.pow(k, m) / k)) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 0.105: tmp = math.pow(k, m) * a else: tmp = (a * (math.pow(k, m) / k)) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= 0.105) tmp = Float64((k ^ m) * a); else tmp = Float64(Float64(a * Float64((k ^ m) / k)) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 0.105) tmp = (k ^ m) * a; else tmp = (a * ((k ^ m) / k)) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 0.105], N[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision], N[(N[(a * N[(N[Power[k, m], $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 0.105:\\
\;\;\;\;{k}^{m} \cdot a\\
\mathbf{else}:\\
\;\;\;\;\frac{a \cdot \frac{{k}^{m}}{k}}{k}\\
\end{array}
\end{array}
if k < 0.104999999999999996Initial program 98.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-+.f6498.2%
Simplified98.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.7%
Simplified99.7%
if 0.104999999999999996 < k Initial program 88.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-+.f6488.6%
Simplified88.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6486.8%
Simplified86.8%
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f6498.0%
Applied egg-rr98.0%
Final simplification99.1%
(FPCore (a k m) :precision binary64 (if (<= k 0.105) (* (pow k m) a) (* a (pow k (- m 2.0)))))
double code(double a, double k, double m) {
double tmp;
if (k <= 0.105) {
tmp = pow(k, m) * a;
} else {
tmp = a * pow(k, (m - 2.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= 0.105d0) then
tmp = (k ** m) * a
else
tmp = a * (k ** (m - 2.0d0))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= 0.105) {
tmp = Math.pow(k, m) * a;
} else {
tmp = a * Math.pow(k, (m - 2.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= 0.105: tmp = math.pow(k, m) * a else: tmp = a * math.pow(k, (m - 2.0)) return tmp
function code(a, k, m) tmp = 0.0 if (k <= 0.105) tmp = Float64((k ^ m) * a); else tmp = Float64(a * (k ^ Float64(m - 2.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= 0.105) tmp = (k ^ m) * a; else tmp = a * (k ^ (m - 2.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, 0.105], N[(N[Power[k, m], $MachinePrecision] * a), $MachinePrecision], N[(a * N[Power[k, N[(m - 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq 0.105:\\
\;\;\;\;{k}^{m} \cdot a\\
\mathbf{else}:\\
\;\;\;\;a \cdot {k}^{\left(m - 2\right)}\\
\end{array}
\end{array}
if k < 0.104999999999999996Initial program 98.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-+.f6498.2%
Simplified98.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
pow-lowering-pow.f6499.7%
Simplified99.7%
if 0.104999999999999996 < k Initial program 88.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-+.f6488.6%
Simplified88.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6486.8%
Simplified86.8%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow2N/A
pow-divN/A
pow-lowering-pow.f64N/A
--lowering--.f6496.8%
Applied egg-rr96.8%
Final simplification98.7%
(FPCore (a k m)
:precision binary64
(if (<= m -0.2)
(/ (/ (/ (* a 99.0) k) k) (* k k))
(if (<= m 0.8)
(/ -1.0 (- (/ -1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
(/
a
(*
(/ (+ (/ (- (/ (+ 100.0 (/ -1000.0 k)) k) 10.0) k) 1.0) (* k k))
(+ (* k 10.0) 1.0))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.2) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 0.8) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a / (((((((100.0 + (-1000.0 / k)) / k) - 10.0) / k) + 1.0) / (k * k)) * ((k * 10.0) + 1.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.2d0)) then
tmp = (((a * 99.0d0) / k) / k) / (k * k)
else if (m <= 0.8d0) then
tmp = (-1.0d0) / (((-1.0d0) / a) - (k * ((k / a) + (10.0d0 / a))))
else
tmp = a / (((((((100.0d0 + ((-1000.0d0) / k)) / k) - 10.0d0) / k) + 1.0d0) / (k * k)) * ((k * 10.0d0) + 1.0d0))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.2) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 0.8) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a / (((((((100.0 + (-1000.0 / k)) / k) - 10.0) / k) + 1.0) / (k * k)) * ((k * 10.0) + 1.0));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.2: tmp = (((a * 99.0) / k) / k) / (k * k) elif m <= 0.8: tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))) else: tmp = a / (((((((100.0 + (-1000.0 / k)) / k) - 10.0) / k) + 1.0) / (k * k)) * ((k * 10.0) + 1.0)) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.2) tmp = Float64(Float64(Float64(Float64(a * 99.0) / k) / k) / Float64(k * k)); elseif (m <= 0.8) tmp = Float64(-1.0 / Float64(Float64(-1.0 / a) - Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); else tmp = Float64(a / Float64(Float64(Float64(Float64(Float64(Float64(Float64(100.0 + Float64(-1000.0 / k)) / k) - 10.0) / k) + 1.0) / Float64(k * k)) * Float64(Float64(k * 10.0) + 1.0))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.2) tmp = (((a * 99.0) / k) / k) / (k * k); elseif (m <= 0.8) tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))); else tmp = a / (((((((100.0 + (-1000.0 / k)) / k) - 10.0) / k) + 1.0) / (k * k)) * ((k * 10.0) + 1.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.2], N[(N[(N[(N[(a * 99.0), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 0.8], 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[(N[(N[(N[(N[(N[(N[(100.0 + N[(-1000.0 / k), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision] - 10.0), $MachinePrecision] / k), $MachinePrecision] + 1.0), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[(k * 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.2:\\
\;\;\;\;\frac{\frac{\frac{a \cdot 99}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 0.8:\\
\;\;\;\;\frac{-1}{\frac{-1}{a} - k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{\frac{\frac{\frac{100 + \frac{-1000}{k}}{k} - 10}{k} + 1}{k \cdot k} \cdot \left(k \cdot 10 + 1\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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified67.1%
Taylor expanded in k around 0
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
unpow2N/A
associate-/r*N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6476.1%
Simplified76.1%
if -0.20000000000000001 < m < 0.80000000000000004Initial program 98.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-+.f6498.8%
Simplified98.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6495.3%
Simplified95.3%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6495.2%
Applied egg-rr95.2%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6496.3%
Simplified96.3%
if 0.80000000000000004 < m Initial program 85.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-+.f6485.0%
Simplified85.0%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.5%
Simplified3.5%
flip-+N/A
metadata-evalN/A
*-commutativeN/A
associate-*r*N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr10.3%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified48.7%
Taylor expanded in k around 0
*-commutativeN/A
*-lowering-*.f6459.9%
Simplified59.9%
Final simplification77.9%
(FPCore (a k m)
:precision binary64
(let* ((t_0 (* k (+ k 10.0))))
(if (<= m -0.17)
(/ (/ (/ (* a 99.0) k) k) (* k k))
(if (<= m 2.45e+32)
(/ -1.0 (- (/ -1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
(/ a (* (/ 1.0 (* k k)) (+ (* t_0 (+ t_0 1.0)) 1.0)))))))
double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.17) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 2.45e+32) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a / ((1.0 / (k * k)) * ((t_0 * (t_0 + 1.0)) + 1.0));
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = k * (k + 10.0d0)
if (m <= (-0.17d0)) then
tmp = (((a * 99.0d0) / k) / k) / (k * k)
else if (m <= 2.45d+32) then
tmp = (-1.0d0) / (((-1.0d0) / a) - (k * ((k / a) + (10.0d0 / a))))
else
tmp = a / ((1.0d0 / (k * k)) * ((t_0 * (t_0 + 1.0d0)) + 1.0d0))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double t_0 = k * (k + 10.0);
double tmp;
if (m <= -0.17) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 2.45e+32) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a / ((1.0 / (k * k)) * ((t_0 * (t_0 + 1.0)) + 1.0));
}
return tmp;
}
def code(a, k, m): t_0 = k * (k + 10.0) tmp = 0 if m <= -0.17: tmp = (((a * 99.0) / k) / k) / (k * k) elif m <= 2.45e+32: tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))) else: tmp = a / ((1.0 / (k * k)) * ((t_0 * (t_0 + 1.0)) + 1.0)) return tmp
function code(a, k, m) t_0 = Float64(k * Float64(k + 10.0)) tmp = 0.0 if (m <= -0.17) tmp = Float64(Float64(Float64(Float64(a * 99.0) / k) / k) / Float64(k * k)); elseif (m <= 2.45e+32) tmp = Float64(-1.0 / Float64(Float64(-1.0 / a) - Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); else tmp = Float64(a / Float64(Float64(1.0 / Float64(k * k)) * Float64(Float64(t_0 * Float64(t_0 + 1.0)) + 1.0))); end return tmp end
function tmp_2 = code(a, k, m) t_0 = k * (k + 10.0); tmp = 0.0; if (m <= -0.17) tmp = (((a * 99.0) / k) / k) / (k * k); elseif (m <= 2.45e+32) tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))); else tmp = a / ((1.0 / (k * k)) * ((t_0 * (t_0 + 1.0)) + 1.0)); end tmp_2 = tmp; end
code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -0.17], N[(N[(N[(N[(a * 99.0), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 2.45e+32], 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[(N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$0 * N[(t$95$0 + 1.0), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := k \cdot \left(k + 10\right)\\
\mathbf{if}\;m \leq -0.17:\\
\;\;\;\;\frac{\frac{\frac{a \cdot 99}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 2.45 \cdot 10^{+32}:\\
\;\;\;\;\frac{-1}{\frac{-1}{a} - k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{\frac{1}{k \cdot k} \cdot \left(t\_0 \cdot \left(t\_0 + 1\right) + 1\right)}\\
\end{array}
\end{array}
if m < -0.170000000000000012Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified67.1%
Taylor expanded in k around 0
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
unpow2N/A
associate-/r*N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6476.1%
Simplified76.1%
if -0.170000000000000012 < m < 2.4500000000000001e32Initial program 95.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-+.f6495.7%
Simplified95.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6487.5%
Simplified87.5%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6487.4%
Applied egg-rr87.4%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6488.4%
Simplified88.4%
if 2.4500000000000001e32 < m Initial program 87.5%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6487.5%
Simplified87.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.6%
Simplified3.6%
flip-+N/A
metadata-evalN/A
*-commutativeN/A
associate-*r*N/A
flip3--N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr11.3%
Taylor expanded in k around inf
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6440.7%
Simplified40.7%
Final simplification70.7%
(FPCore (a k m)
:precision binary64
(if (<= m -0.64)
(/ (/ (/ (* a 99.0) k) k) (* k k))
(if (<= m 23.5)
(/ -1.0 (- (/ -1.0 a) (* k (+ (/ k a) (/ 10.0 a)))))
(+ a (* k (+ (* k (* a 99.0)) (* a -10.0)))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.64) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 23.5) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a + (k * ((k * (a * 99.0)) + (a * -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.64d0)) then
tmp = (((a * 99.0d0) / k) / k) / (k * k)
else if (m <= 23.5d0) then
tmp = (-1.0d0) / (((-1.0d0) / a) - (k * ((k / a) + (10.0d0 / a))))
else
tmp = a + (k * ((k * (a * 99.0d0)) + (a * (-10.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.64) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 23.5) {
tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a))));
} else {
tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0)));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.64: tmp = (((a * 99.0) / k) / k) / (k * k) elif m <= 23.5: tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))) else: tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.64) tmp = Float64(Float64(Float64(Float64(a * 99.0) / k) / k) / Float64(k * k)); elseif (m <= 23.5) tmp = Float64(-1.0 / Float64(Float64(-1.0 / a) - Float64(k * Float64(Float64(k / a) + Float64(10.0 / a))))); else tmp = Float64(a + Float64(k * Float64(Float64(k * Float64(a * 99.0)) + Float64(a * -10.0)))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.64) tmp = (((a * 99.0) / k) / k) / (k * k); elseif (m <= 23.5) tmp = -1.0 / ((-1.0 / a) - (k * ((k / a) + (10.0 / a)))); else tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.64], N[(N[(N[(N[(a * 99.0), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 23.5], 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[(k * N[(N[(k * N[(a * 99.0), $MachinePrecision]), $MachinePrecision] + N[(a * -10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.64:\\
\;\;\;\;\frac{\frac{\frac{a \cdot 99}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 23.5:\\
\;\;\;\;\frac{-1}{\frac{-1}{a} - k \cdot \left(\frac{k}{a} + \frac{10}{a}\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(k \cdot \left(a \cdot 99\right) + a \cdot -10\right)\\
\end{array}
\end{array}
if m < -0.640000000000000013Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified67.1%
Taylor expanded in k around 0
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
unpow2N/A
associate-/r*N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6476.1%
Simplified76.1%
if -0.640000000000000013 < m < 23.5Initial program 98.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-+.f6498.8%
Simplified98.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6494.3%
Simplified94.3%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6494.2%
Applied egg-rr94.2%
Taylor expanded in k around 0
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6495.3%
Simplified95.3%
if 23.5 < m Initial program 84.8%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6484.8%
Simplified84.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.5%
Simplified3.5%
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
*-lowering-*.f64N/A
distribute-rgt1-inN/A
distribute-lft-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6423.9%
Simplified23.9%
Final simplification66.6%
(FPCore (a k m)
:precision binary64
(if (<= m -0.175)
(/ (/ (/ (* a 99.0) k) k) (* k k))
(if (<= m 23.5)
(* a (/ -1.0 (- -1.0 (* k (+ k 10.0)))))
(+ a (* k (+ (* k (* a 99.0)) (* a -10.0)))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.175) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 23.5) {
tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0))));
} else {
tmp = a + (k * ((k * (a * 99.0)) + (a * -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.175d0)) then
tmp = (((a * 99.0d0) / k) / k) / (k * k)
else if (m <= 23.5d0) then
tmp = a * ((-1.0d0) / ((-1.0d0) - (k * (k + 10.0d0))))
else
tmp = a + (k * ((k * (a * 99.0d0)) + (a * (-10.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.175) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else if (m <= 23.5) {
tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0))));
} else {
tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0)));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.175: tmp = (((a * 99.0) / k) / k) / (k * k) elif m <= 23.5: tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))) else: tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.175) tmp = Float64(Float64(Float64(Float64(a * 99.0) / k) / k) / Float64(k * k)); elseif (m <= 23.5) tmp = Float64(a * Float64(-1.0 / Float64(-1.0 - Float64(k * Float64(k + 10.0))))); else tmp = Float64(a + Float64(k * Float64(Float64(k * Float64(a * 99.0)) + Float64(a * -10.0)))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.175) tmp = (((a * 99.0) / k) / k) / (k * k); elseif (m <= 23.5) tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))); else tmp = a + (k * ((k * (a * 99.0)) + (a * -10.0))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.175], N[(N[(N[(N[(a * 99.0), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 23.5], N[(a * N[(-1.0 / N[(-1.0 - N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a + N[(k * N[(N[(k * N[(a * 99.0), $MachinePrecision]), $MachinePrecision] + N[(a * -10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.175:\\
\;\;\;\;\frac{\frac{\frac{a \cdot 99}{k}}{k}}{k \cdot k}\\
\mathbf{elif}\;m \leq 23.5:\\
\;\;\;\;a \cdot \frac{-1}{-1 - k \cdot \left(k + 10\right)}\\
\mathbf{else}:\\
\;\;\;\;a + k \cdot \left(k \cdot \left(a \cdot 99\right) + a \cdot -10\right)\\
\end{array}
\end{array}
if m < -0.17499999999999999Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified67.1%
Taylor expanded in k around 0
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
unpow2N/A
associate-/r*N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6476.1%
Simplified76.1%
if -0.17499999999999999 < m < 23.5Initial program 98.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-+.f6498.8%
Simplified98.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6494.3%
Simplified94.3%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6494.3%
Applied egg-rr94.3%
if 23.5 < m Initial program 84.8%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6484.8%
Simplified84.8%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f643.5%
Simplified3.5%
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
*-lowering-*.f64N/A
distribute-rgt1-inN/A
distribute-lft-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6423.9%
Simplified23.9%
Final simplification66.2%
(FPCore (a k m) :precision binary64 (if (<= k -4.8e-283) (/ a (* k k)) (if (<= k 550000.0) (/ a (+ (* k 10.0) 1.0)) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -4.8e-283) {
tmp = a / (k * k);
} else if (k <= 550000.0) {
tmp = a / ((k * 10.0) + 1.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.8d-283)) then
tmp = a / (k * k)
else if (k <= 550000.0d0) then
tmp = a / ((k * 10.0d0) + 1.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.8e-283) {
tmp = a / (k * k);
} else if (k <= 550000.0) {
tmp = a / ((k * 10.0) + 1.0);
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -4.8e-283: tmp = a / (k * k) elif k <= 550000.0: tmp = a / ((k * 10.0) + 1.0) else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -4.8e-283) tmp = Float64(a / Float64(k * k)); elseif (k <= 550000.0) tmp = Float64(a / Float64(Float64(k * 10.0) + 1.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.8e-283) tmp = a / (k * k); elseif (k <= 550000.0) tmp = a / ((k * 10.0) + 1.0); else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -4.8e-283], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 550000.0], N[(a / N[(N[(k * 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -4.8 \cdot 10^{-283}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 550000:\\
\;\;\;\;\frac{a}{k \cdot 10 + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -4.7999999999999999e-283Initial program 95.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-+.f6495.7%
Simplified95.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6412.0%
Simplified12.0%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
if -4.7999999999999999e-283 < k < 5.5e5Initial 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-+.f6445.0%
Simplified45.0%
Taylor expanded in k around 0
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6444.2%
Simplified44.2%
if 5.5e5 < k Initial program 87.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-+.f6487.9%
Simplified87.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6465.4%
Simplified65.4%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6465.4%
Applied egg-rr65.4%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6464.9%
Simplified64.9%
Final simplification47.1%
(FPCore (a k m) :precision binary64 (if (<= k -4.8e-283) (/ a (* k k)) (if (<= k 0.106) (+ a (* a (* k -10.0))) (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -4.8e-283) {
tmp = a / (k * k);
} else if (k <= 0.106) {
tmp = a + (a * (k * -10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (k <= (-4.8d-283)) then
tmp = a / (k * k)
else if (k <= 0.106d0) then
tmp = a + (a * (k * (-10.0d0)))
else
tmp = (a / k) / k
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (k <= -4.8e-283) {
tmp = a / (k * k);
} else if (k <= 0.106) {
tmp = a + (a * (k * -10.0));
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -4.8e-283: tmp = a / (k * k) elif k <= 0.106: tmp = a + (a * (k * -10.0)) else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -4.8e-283) tmp = Float64(a / Float64(k * k)); elseif (k <= 0.106) tmp = Float64(a + Float64(a * Float64(k * -10.0))); else tmp = Float64(Float64(a / k) / k); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (k <= -4.8e-283) tmp = a / (k * k); elseif (k <= 0.106) tmp = a + (a * (k * -10.0)); else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -4.8e-283], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.106], N[(a + N[(a * N[(k * -10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -4.8 \cdot 10^{-283}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 0.106:\\
\;\;\;\;a + a \cdot \left(k \cdot -10\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -4.7999999999999999e-283Initial program 95.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-+.f6495.7%
Simplified95.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6412.0%
Simplified12.0%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
if -4.7999999999999999e-283 < k < 0.105999999999999997Initial 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-+.f6445.7%
Simplified45.7%
Taylor expanded in k around 0
associate-*r*N/A
+-lowering-+.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6445.7%
Simplified45.7%
if 0.105999999999999997 < k Initial program 88.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-+.f6488.5%
Simplified88.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6463.7%
Simplified63.7%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6463.6%
Applied egg-rr63.6%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6462.2%
Simplified62.2%
(FPCore (a k m) :precision binary64 (if (<= m -0.39) (/ (/ (/ (* a 99.0) k) k) (* k k)) (* a (/ -1.0 (- -1.0 (* k (+ k 10.0)))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.39) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else {
tmp = a * (-1.0 / (-1.0 - (k * (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.39d0)) then
tmp = (((a * 99.0d0) / k) / k) / (k * k)
else
tmp = a * ((-1.0d0) / ((-1.0d0) - (k * (k + 10.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.39) {
tmp = (((a * 99.0) / k) / k) / (k * k);
} else {
tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.39: tmp = (((a * 99.0) / k) / k) / (k * k) else: tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.39) tmp = Float64(Float64(Float64(Float64(a * 99.0) / k) / k) / Float64(k * k)); else tmp = Float64(a * Float64(-1.0 / Float64(-1.0 - Float64(k * Float64(k + 10.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.39) tmp = (((a * 99.0) / k) / k) / (k * k); else tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.39], N[(N[(N[(N[(a * 99.0), $MachinePrecision] / k), $MachinePrecision] / k), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision], N[(a * N[(-1.0 / N[(-1.0 - N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.39:\\
\;\;\;\;\frac{\frac{\frac{a \cdot 99}{k}}{k}}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \frac{-1}{-1 - k \cdot \left(k + 10\right)}\\
\end{array}
\end{array}
if m < -0.39000000000000001Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around -inf
/-lowering-/.f64N/A
Simplified67.1%
Taylor expanded in k around 0
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
unpow2N/A
associate-/r*N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
metadata-evalN/A
distribute-lft-neg-inN/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
*-commutativeN/A
*-lowering-*.f6476.1%
Simplified76.1%
if -0.39000000000000001 < m Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6451.3%
Simplified51.3%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6451.3%
Applied egg-rr51.3%
Final simplification59.9%
(FPCore (a k m) :precision binary64 (if (<= m -0.64) (/ a (* k k)) (* a (/ -1.0 (- -1.0 (* k (+ k 10.0)))))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.64) {
tmp = a / (k * k);
} else {
tmp = a * (-1.0 / (-1.0 - (k * (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.64d0)) then
tmp = a / (k * k)
else
tmp = a * ((-1.0d0) / ((-1.0d0) - (k * (k + 10.0d0))))
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.64) {
tmp = a / (k * k);
} else {
tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0))));
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.64: tmp = a / (k * k) else: tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.64) tmp = Float64(a / Float64(k * k)); else tmp = Float64(a * Float64(-1.0 / Float64(-1.0 - Float64(k * Float64(k + 10.0))))); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.64) tmp = a / (k * k); else tmp = a * (-1.0 / (-1.0 - (k * (k + 10.0)))); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.64], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], N[(a * N[(-1.0 / N[(-1.0 - N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.64:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;a \cdot \frac{-1}{-1 - k \cdot \left(k + 10\right)}\\
\end{array}
\end{array}
if m < -0.640000000000000013Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6462.5%
Simplified62.5%
if -0.640000000000000013 < m Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6451.3%
Simplified51.3%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6451.3%
Applied egg-rr51.3%
Final simplification55.2%
(FPCore (a k m) :precision binary64 (if (<= k -4.8e-283) (/ a (* k k)) (if (<= k 1.0) a (/ (/ a k) k))))
double code(double a, double k, double m) {
double tmp;
if (k <= -4.8e-283) {
tmp = a / (k * k);
} else if (k <= 1.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 <= (-4.8d-283)) then
tmp = a / (k * k)
else if (k <= 1.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 <= -4.8e-283) {
tmp = a / (k * k);
} else if (k <= 1.0) {
tmp = a;
} else {
tmp = (a / k) / k;
}
return tmp;
}
def code(a, k, m): tmp = 0 if k <= -4.8e-283: tmp = a / (k * k) elif k <= 1.0: tmp = a else: tmp = (a / k) / k return tmp
function code(a, k, m) tmp = 0.0 if (k <= -4.8e-283) tmp = Float64(a / Float64(k * k)); elseif (k <= 1.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 <= -4.8e-283) tmp = a / (k * k); elseif (k <= 1.0) tmp = a; else tmp = (a / k) / k; end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[k, -4.8e-283], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.0], a, N[(N[(a / k), $MachinePrecision] / k), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;k \leq -4.8 \cdot 10^{-283}:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{elif}\;k \leq 1:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{a}{k}}{k}\\
\end{array}
\end{array}
if k < -4.7999999999999999e-283Initial program 95.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-+.f6495.7%
Simplified95.7%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6412.0%
Simplified12.0%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6429.9%
Simplified29.9%
if -4.7999999999999999e-283 < k < 1Initial 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-+.f6445.7%
Simplified45.7%
Taylor expanded in k around 0
Simplified45.3%
if 1 < k Initial program 88.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-+.f6488.5%
Simplified88.5%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6463.7%
Simplified63.7%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f6463.6%
Applied egg-rr63.6%
Taylor expanded in k around inf
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6462.2%
Simplified62.2%
(FPCore (a k m) :precision binary64 (let* ((t_0 (/ a (* k k)))) (if (<= k -4.8e-283) t_0 (if (<= k 1.0) a t_0))))
double code(double a, double k, double m) {
double t_0 = a / (k * k);
double tmp;
if (k <= -4.8e-283) {
tmp = t_0;
} else if (k <= 1.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 <= (-4.8d-283)) then
tmp = t_0
else if (k <= 1.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 <= -4.8e-283) {
tmp = t_0;
} else if (k <= 1.0) {
tmp = a;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, k, m): t_0 = a / (k * k) tmp = 0 if k <= -4.8e-283: tmp = t_0 elif k <= 1.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 <= -4.8e-283) tmp = t_0; elseif (k <= 1.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 <= -4.8e-283) tmp = t_0; elseif (k <= 1.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, -4.8e-283], t$95$0, If[LessEqual[k, 1.0], a, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{a}{k \cdot k}\\
\mathbf{if}\;k \leq -4.8 \cdot 10^{-283}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;k \leq 1:\\
\;\;\;\;a\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if k < -4.7999999999999999e-283 or 1 < k Initial program 91.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-+.f6491.6%
Simplified91.6%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6440.8%
Simplified40.8%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6447.7%
Simplified47.7%
if -4.7999999999999999e-283 < k < 1Initial 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-+.f6445.7%
Simplified45.7%
Taylor expanded in k around 0
Simplified45.3%
(FPCore (a k m) :precision binary64 (if (<= m -0.045) (/ a (* k k)) (/ a (+ (* k (+ k 10.0)) 1.0))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.045) {
tmp = a / (k * k);
} else {
tmp = a / ((k * (k + 10.0)) + 1.0);
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.045d0)) then
tmp = a / (k * k)
else
tmp = a / ((k * (k + 10.0d0)) + 1.0d0)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.045) {
tmp = a / (k * k);
} else {
tmp = a / ((k * (k + 10.0)) + 1.0);
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.045: tmp = a / (k * k) else: tmp = a / ((k * (k + 10.0)) + 1.0) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.045) tmp = Float64(a / Float64(k * k)); else tmp = Float64(a / Float64(Float64(k * Float64(k + 10.0)) + 1.0)); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.045) tmp = a / (k * k); else tmp = a / ((k * (k + 10.0)) + 1.0); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.045], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], N[(a / N[(N[(k * N[(k + 10.0), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.045:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{k \cdot \left(k + 10\right) + 1}\\
\end{array}
\end{array}
if m < -0.044999999999999998Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6462.5%
Simplified62.5%
if -0.044999999999999998 < m Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6451.3%
Simplified51.3%
Final simplification55.2%
(FPCore (a k m) :precision binary64 (if (<= m -0.26) (/ a (* k k)) (/ a (+ (* k k) 1.0))))
double code(double a, double k, double m) {
double tmp;
if (m <= -0.26) {
tmp = a / (k * k);
} else {
tmp = a / ((k * k) + 1.0);
}
return tmp;
}
real(8) function code(a, k, m)
real(8), intent (in) :: a
real(8), intent (in) :: k
real(8), intent (in) :: m
real(8) :: tmp
if (m <= (-0.26d0)) then
tmp = a / (k * k)
else
tmp = a / ((k * k) + 1.0d0)
end if
code = tmp
end function
public static double code(double a, double k, double m) {
double tmp;
if (m <= -0.26) {
tmp = a / (k * k);
} else {
tmp = a / ((k * k) + 1.0);
}
return tmp;
}
def code(a, k, m): tmp = 0 if m <= -0.26: tmp = a / (k * k) else: tmp = a / ((k * k) + 1.0) return tmp
function code(a, k, m) tmp = 0.0 if (m <= -0.26) tmp = Float64(a / Float64(k * k)); else tmp = Float64(a / Float64(Float64(k * k) + 1.0)); end return tmp end
function tmp_2 = code(a, k, m) tmp = 0.0; if (m <= -0.26) tmp = a / (k * k); else tmp = a / ((k * k) + 1.0); end tmp_2 = tmp; end
code[a_, k_, m_] := If[LessEqual[m, -0.26], N[(a / N[(k * k), $MachinePrecision]), $MachinePrecision], N[(a / N[(N[(k * k), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;m \leq -0.26:\\
\;\;\;\;\frac{a}{k \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{k \cdot k + 1}\\
\end{array}
\end{array}
if m < -0.26000000000000001Initial 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-+.f6426.6%
Simplified26.6%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6462.5%
Simplified62.5%
if -0.26000000000000001 < m Initial program 92.2%
/-lowering-/.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
associate-+l+N/A
+-lowering-+.f64N/A
distribute-rgt-outN/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6492.2%
Simplified92.2%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6451.3%
Simplified51.3%
Taylor expanded in k around inf
unpow2N/A
*-lowering-*.f6450.1%
Simplified50.1%
Final simplification54.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 94.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-+.f6494.9%
Simplified94.9%
Taylor expanded in m around 0
/-lowering-/.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f6442.7%
Simplified42.7%
Taylor expanded in k around 0
Simplified20.2%
herbie shell --seed 2024161
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))