| Alternative 1 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 39108 |
(FPCore (x n) :precision binary64 (- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))
(FPCore (x n)
:precision binary64
(let* ((t_0 (- (exp (/ (log1p x) n)) (pow x (pow n -1.0)))))
(if (<= (/ 1.0 n) -5e-7)
(log (exp t_0))
(if (<= (/ 1.0 n) 1e-18)
(/ (log1p (/ 1.0 x)) n)
(pow (pow t_0 3.0) 0.3333333333333333)))))double code(double x, double n) {
return pow((x + 1.0), (1.0 / n)) - pow(x, (1.0 / n));
}
double code(double x, double n) {
double t_0 = exp((log1p(x) / n)) - pow(x, pow(n, -1.0));
double tmp;
if ((1.0 / n) <= -5e-7) {
tmp = log(exp(t_0));
} else if ((1.0 / n) <= 1e-18) {
tmp = log1p((1.0 / x)) / n;
} else {
tmp = pow(pow(t_0, 3.0), 0.3333333333333333);
}
return tmp;
}
public static double code(double x, double n) {
return Math.pow((x + 1.0), (1.0 / n)) - Math.pow(x, (1.0 / n));
}
public static double code(double x, double n) {
double t_0 = Math.exp((Math.log1p(x) / n)) - Math.pow(x, Math.pow(n, -1.0));
double tmp;
if ((1.0 / n) <= -5e-7) {
tmp = Math.log(Math.exp(t_0));
} else if ((1.0 / n) <= 1e-18) {
tmp = Math.log1p((1.0 / x)) / n;
} else {
tmp = Math.pow(Math.pow(t_0, 3.0), 0.3333333333333333);
}
return tmp;
}
def code(x, n): return math.pow((x + 1.0), (1.0 / n)) - math.pow(x, (1.0 / n))
def code(x, n): t_0 = math.exp((math.log1p(x) / n)) - math.pow(x, math.pow(n, -1.0)) tmp = 0 if (1.0 / n) <= -5e-7: tmp = math.log(math.exp(t_0)) elif (1.0 / n) <= 1e-18: tmp = math.log1p((1.0 / x)) / n else: tmp = math.pow(math.pow(t_0, 3.0), 0.3333333333333333) return tmp
function code(x, n) return Float64((Float64(x + 1.0) ^ Float64(1.0 / n)) - (x ^ Float64(1.0 / n))) end
function code(x, n) t_0 = Float64(exp(Float64(log1p(x) / n)) - (x ^ (n ^ -1.0))) tmp = 0.0 if (Float64(1.0 / n) <= -5e-7) tmp = log(exp(t_0)); elseif (Float64(1.0 / n) <= 1e-18) tmp = Float64(log1p(Float64(1.0 / x)) / n); else tmp = (t_0 ^ 3.0) ^ 0.3333333333333333; end return tmp end
code[x_, n_] := N[(N[Power[N[(x + 1.0), $MachinePrecision], N[(1.0 / n), $MachinePrecision]], $MachinePrecision] - N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[x_, n_] := Block[{t$95$0 = N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - N[Power[x, N[Power[n, -1.0], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -5e-7], N[Log[N[Exp[t$95$0], $MachinePrecision]], $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 1e-18], N[(N[Log[1 + N[(1.0 / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], N[Power[N[Power[t$95$0, 3.0], $MachinePrecision], 0.3333333333333333], $MachinePrecision]]]]
{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\begin{array}{l}
t_0 := e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left({n}^{-1}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -5 \cdot 10^{-7}:\\
\;\;\;\;\log \left(e^{t_0}\right)\\
\mathbf{elif}\;\frac{1}{n} \leq 10^{-18}:\\
\;\;\;\;\frac{\mathsf{log1p}\left(\frac{1}{x}\right)}{n}\\
\mathbf{else}:\\
\;\;\;\;{\left({t_0}^{3}\right)}^{0.3333333333333333}\\
\end{array}
Results
if (/.f64 1 n) < -4.99999999999999977e-7Initial program 98.3%
Applied egg-rr98.0%
[Start]98.3 | \[ {\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\] |
|---|---|
add-log-exp [=>]98.0 | \[ \color{blue}{\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)}
\] |
pow-to-exp [=>]98.0 | \[ \log \left(e^{\color{blue}{e^{\log \left(x + 1\right) \cdot \frac{1}{n}}} - {x}^{\left(\frac{1}{n}\right)}}\right)
\] |
un-div-inv [=>]98.0 | \[ \log \left(e^{e^{\color{blue}{\frac{\log \left(x + 1\right)}{n}}} - {x}^{\left(\frac{1}{n}\right)}}\right)
\] |
+-commutative [=>]98.0 | \[ \log \left(e^{e^{\frac{\log \color{blue}{\left(1 + x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right)
\] |
log1p-def [=>]98.0 | \[ \log \left(e^{e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right)
\] |
inv-pow [=>]98.0 | \[ \log \left(e^{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\color{blue}{\left({n}^{-1}\right)}}}\right)
\] |
if -4.99999999999999977e-7 < (/.f64 1 n) < 1.0000000000000001e-18Initial program 28.7%
Taylor expanded in n around inf 78.0%
Simplified78.0%
[Start]78.0 | \[ \frac{\log \left(1 + x\right) - \log x}{n}
\] |
|---|---|
log1p-def [=>]78.0 | \[ \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n}
\] |
Applied egg-rr78.2%
[Start]78.0 | \[ \frac{\mathsf{log1p}\left(x\right) - \log x}{n}
\] |
|---|---|
add-log-exp [=>]78.0 | \[ \frac{\color{blue}{\log \left(e^{\mathsf{log1p}\left(x\right) - \log x}\right)}}{n}
\] |
exp-diff [=>]78.0 | \[ \frac{\log \color{blue}{\left(\frac{e^{\mathsf{log1p}\left(x\right)}}{e^{\log x}}\right)}}{n}
\] |
log1p-udef [=>]78.0 | \[ \frac{\log \left(\frac{e^{\color{blue}{\log \left(1 + x\right)}}}{e^{\log x}}\right)}{n}
\] |
add-exp-log [<=]56.5 | \[ \frac{\log \left(\frac{\color{blue}{1 + x}}{e^{\log x}}\right)}{n}
\] |
+-commutative [=>]56.5 | \[ \frac{\log \left(\frac{\color{blue}{x + 1}}{e^{\log x}}\right)}{n}
\] |
add-exp-log [<=]78.2 | \[ \frac{\log \left(\frac{x + 1}{\color{blue}{x}}\right)}{n}
\] |
Applied egg-rr78.2%
[Start]78.2 | \[ \frac{\log \left(\frac{x + 1}{x}\right)}{n}
\] |
|---|---|
log1p-expm1-u [=>]78.2 | \[ \frac{\color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\log \left(\frac{x + 1}{x}\right)\right)\right)}}{n}
\] |
expm1-udef [=>]78.2 | \[ \frac{\mathsf{log1p}\left(\color{blue}{e^{\log \left(\frac{x + 1}{x}\right)} - 1}\right)}{n}
\] |
add-exp-log [<=]78.2 | \[ \frac{\mathsf{log1p}\left(\color{blue}{\frac{x + 1}{x}} - 1\right)}{n}
\] |
Simplified99.2%
[Start]78.2 | \[ \frac{\mathsf{log1p}\left(\frac{x + 1}{x} - 1\right)}{n}
\] |
|---|---|
*-lft-identity [<=]78.2 | \[ \frac{\mathsf{log1p}\left(\frac{\color{blue}{1 \cdot \left(x + 1\right)}}{x} - 1\right)}{n}
\] |
associate-*l/ [<=]75.1 | \[ \frac{\mathsf{log1p}\left(\color{blue}{\frac{1}{x} \cdot \left(x + 1\right)} - 1\right)}{n}
\] |
distribute-rgt-in [=>]75.1 | \[ \frac{\mathsf{log1p}\left(\color{blue}{\left(x \cdot \frac{1}{x} + 1 \cdot \frac{1}{x}\right)} - 1\right)}{n}
\] |
+-commutative [=>]75.1 | \[ \frac{\mathsf{log1p}\left(\color{blue}{\left(1 \cdot \frac{1}{x} + x \cdot \frac{1}{x}\right)} - 1\right)}{n}
\] |
*-lft-identity [=>]75.1 | \[ \frac{\mathsf{log1p}\left(\left(\color{blue}{\frac{1}{x}} + x \cdot \frac{1}{x}\right) - 1\right)}{n}
\] |
rgt-mult-inverse [=>]78.2 | \[ \frac{\mathsf{log1p}\left(\left(\frac{1}{x} + \color{blue}{1}\right) - 1\right)}{n}
\] |
associate--l+ [=>]99.2 | \[ \frac{\mathsf{log1p}\left(\color{blue}{\frac{1}{x} + \left(1 - 1\right)}\right)}{n}
\] |
metadata-eval [=>]99.2 | \[ \frac{\mathsf{log1p}\left(\frac{1}{x} + \color{blue}{0}\right)}{n}
\] |
Taylor expanded in n around 0 78.2%
Simplified99.2%
[Start]78.2 | \[ \frac{\log \left(1 + \frac{1}{x}\right)}{n}
\] |
|---|---|
log1p-def [=>]99.2 | \[ \frac{\color{blue}{\mathsf{log1p}\left(\frac{1}{x}\right)}}{n}
\] |
if 1.0000000000000001e-18 < (/.f64 1 n) Initial program 83.5%
Applied egg-rr87.5%
[Start]83.5 | \[ {\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\] |
|---|---|
add-cbrt-cube [=>]83.5 | \[ \color{blue}{\sqrt[3]{\left(\left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)}}
\] |
pow1/3 [=>]83.5 | \[ \color{blue}{{\left(\left(\left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)\right) \cdot \left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)\right)}^{0.3333333333333333}}
\] |
pow3 [=>]83.5 | \[ {\color{blue}{\left({\left({\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\right)}^{3}\right)}}^{0.3333333333333333}
\] |
pow-to-exp [=>]83.4 | \[ {\left({\left(\color{blue}{e^{\log \left(x + 1\right) \cdot \frac{1}{n}}} - {x}^{\left(\frac{1}{n}\right)}\right)}^{3}\right)}^{0.3333333333333333}
\] |
un-div-inv [=>]83.4 | \[ {\left({\left(e^{\color{blue}{\frac{\log \left(x + 1\right)}{n}}} - {x}^{\left(\frac{1}{n}\right)}\right)}^{3}\right)}^{0.3333333333333333}
\] |
+-commutative [=>]83.4 | \[ {\left({\left(e^{\frac{\log \color{blue}{\left(1 + x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}\right)}^{3}\right)}^{0.3333333333333333}
\] |
log1p-def [=>]87.5 | \[ {\left({\left(e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}\right)}^{3}\right)}^{0.3333333333333333}
\] |
inv-pow [=>]87.5 | \[ {\left({\left(e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\color{blue}{\left({n}^{-1}\right)}}\right)}^{3}\right)}^{0.3333333333333333}
\] |
Final simplification97.7%
| Alternative 1 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 39108 |
| Alternative 2 | |
|---|---|
| Accuracy | 97.8% |
| Cost | 20232 |
| Alternative 3 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 14344 |
| Alternative 4 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 13833 |
| Alternative 5 | |
|---|---|
| Accuracy | 97.2% |
| Cost | 7560 |
| Alternative 6 | |
|---|---|
| Accuracy | 97.7% |
| Cost | 7180 |
| Alternative 7 | |
|---|---|
| Accuracy | 89.8% |
| Cost | 6985 |
| Alternative 8 | |
|---|---|
| Accuracy | 74.7% |
| Cost | 6788 |
| Alternative 9 | |
|---|---|
| Accuracy | 44.4% |
| Cost | 840 |
| Alternative 10 | |
|---|---|
| Accuracy | 54.2% |
| Cost | 712 |
| Alternative 11 | |
|---|---|
| Accuracy | 36.0% |
| Cost | 320 |
| Alternative 12 | |
|---|---|
| Accuracy | 36.6% |
| Cost | 320 |
| Alternative 13 | |
|---|---|
| Accuracy | 4.7% |
| Cost | 192 |
herbie shell --seed 2023138
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
:precision binary64
(- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))