| Alternative 1 | |
|---|---|
| Error | 98.3% |
| Cost | 32900.00 |
(FPCore (f)
:precision binary64
(-
(*
(/ 1.0 (/ PI 4.0))
(log
(/
(+ (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f))))
(- (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f)))))))))(FPCore (f)
:precision binary64
(if (<= (* (/ PI 4.0) f) 0.0002)
(fma
-4.0
(/ (log (/ 4.0 (* PI f))) PI)
(* (* f f) (* PI -0.08333333333333333)))
(* (log1p (- (pow (pow (exp f) PI) -0.25))) (/ 4.0 PI))))double code(double f) {
return -((1.0 / (((double) M_PI) / 4.0)) * log(((exp(((((double) M_PI) / 4.0) * f)) + exp(-((((double) M_PI) / 4.0) * f))) / (exp(((((double) M_PI) / 4.0) * f)) - exp(-((((double) M_PI) / 4.0) * f))))));
}
double code(double f) {
double tmp;
if (((((double) M_PI) / 4.0) * f) <= 0.0002) {
tmp = fma(-4.0, (log((4.0 / (((double) M_PI) * f))) / ((double) M_PI)), ((f * f) * (((double) M_PI) * -0.08333333333333333)));
} else {
tmp = log1p(-pow(pow(exp(f), ((double) M_PI)), -0.25)) * (4.0 / ((double) M_PI));
}
return tmp;
}
function code(f) return Float64(-Float64(Float64(1.0 / Float64(pi / 4.0)) * log(Float64(Float64(exp(Float64(Float64(pi / 4.0) * f)) + exp(Float64(-Float64(Float64(pi / 4.0) * f)))) / Float64(exp(Float64(Float64(pi / 4.0) * f)) - exp(Float64(-Float64(Float64(pi / 4.0) * f)))))))) end
function code(f) tmp = 0.0 if (Float64(Float64(pi / 4.0) * f) <= 0.0002) tmp = fma(-4.0, Float64(log(Float64(4.0 / Float64(pi * f))) / pi), Float64(Float64(f * f) * Float64(pi * -0.08333333333333333))); else tmp = Float64(log1p(Float64(-((exp(f) ^ pi) ^ -0.25))) * Float64(4.0 / pi)); end return tmp end
code[f_] := (-N[(N[(1.0 / N[(Pi / 4.0), $MachinePrecision]), $MachinePrecision] * N[Log[N[(N[(N[Exp[N[(N[(Pi / 4.0), $MachinePrecision] * f), $MachinePrecision]], $MachinePrecision] + N[Exp[(-N[(N[(Pi / 4.0), $MachinePrecision] * f), $MachinePrecision])], $MachinePrecision]), $MachinePrecision] / N[(N[Exp[N[(N[(Pi / 4.0), $MachinePrecision] * f), $MachinePrecision]], $MachinePrecision] - N[Exp[(-N[(N[(Pi / 4.0), $MachinePrecision] * f), $MachinePrecision])], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision])
code[f_] := If[LessEqual[N[(N[(Pi / 4.0), $MachinePrecision] * f), $MachinePrecision], 0.0002], N[(-4.0 * N[(N[Log[N[(4.0 / N[(Pi * f), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision] + N[(N[(f * f), $MachinePrecision] * N[(Pi * -0.08333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Log[1 + (-N[Power[N[Power[N[Exp[f], $MachinePrecision], Pi], $MachinePrecision], -0.25], $MachinePrecision])], $MachinePrecision] * N[(4.0 / Pi), $MachinePrecision]), $MachinePrecision]]
-\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right)
\begin{array}{l}
\mathbf{if}\;\frac{\pi}{4} \cdot f \leq 0.0002:\\
\;\;\;\;\mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\pi \cdot f}\right)}{\pi}, \left(f \cdot f\right) \cdot \left(\pi \cdot -0.08333333333333333\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{log1p}\left(-{\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right) \cdot \frac{4}{\pi}\\
\end{array}
if (*.f64 (/.f64 (PI.f64) 4) f) < 2.0000000000000001e-4Initial program 2.7
Simplified2.7
[Start]2.7 | \[ -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right)
\] |
|---|---|
*-commutative [=>]2.7 | \[ -\color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right) \cdot \frac{1}{\frac{\pi}{4}}}
\] |
distribute-rgt-neg-in [=>]2.7 | \[ \color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right) \cdot \left(-\frac{1}{\frac{\pi}{4}}\right)}
\] |
Applied egg-rr2.7
Taylor expanded in f around 0 99.3
Simplified99.3
[Start]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\left(0.25 \cdot \pi - -0.25 \cdot \pi\right) \cdot f + {f}^{3} \cdot \left(0.0026041666666666665 \cdot {\pi}^{3} - -0.0026041666666666665 \cdot {\pi}^{3}\right)}\right) \cdot \frac{-4}{\pi}
\] |
|---|---|
fma-def [=>]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\color{blue}{\mathsf{fma}\left(0.25 \cdot \pi - -0.25 \cdot \pi, f, {f}^{3} \cdot \left(0.0026041666666666665 \cdot {\pi}^{3} - -0.0026041666666666665 \cdot {\pi}^{3}\right)\right)}}\right) \cdot \frac{-4}{\pi}
\] |
distribute-rgt-out-- [=>]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\mathsf{fma}\left(\color{blue}{\pi \cdot \left(0.25 - -0.25\right)}, f, {f}^{3} \cdot \left(0.0026041666666666665 \cdot {\pi}^{3} - -0.0026041666666666665 \cdot {\pi}^{3}\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\mathsf{fma}\left(\pi \cdot \color{blue}{0.5}, f, {f}^{3} \cdot \left(0.0026041666666666665 \cdot {\pi}^{3} - -0.0026041666666666665 \cdot {\pi}^{3}\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
distribute-rgt-out-- [=>]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\mathsf{fma}\left(\pi \cdot 0.5, f, {f}^{3} \cdot \color{blue}{\left({\pi}^{3} \cdot \left(0.0026041666666666665 - -0.0026041666666666665\right)\right)}\right)}\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]99.3 | \[ \log \left(\frac{e^{\frac{\pi \cdot f}{4}} + e^{-0.25 \cdot \left(\pi \cdot f\right)}}{\mathsf{fma}\left(\pi \cdot 0.5, f, {f}^{3} \cdot \left({\pi}^{3} \cdot \color{blue}{0.005208333333333333}\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
Taylor expanded in f around 0 99.4
Simplified99.4
[Start]99.4 | \[ \left(0.5 \cdot \left({f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right)\right) + \left(0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right) + \left(\log \left(\frac{4}{\pi}\right) + -1 \cdot \log f\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
|---|---|
associate-+r+ [=>]99.4 | \[ \color{blue}{\left(\left(0.5 \cdot \left({f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right)\right) + 0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right)\right) + \left(\log \left(\frac{4}{\pi}\right) + -1 \cdot \log f\right)\right)} \cdot \frac{-4}{\pi}
\] |
+-commutative [=>]99.4 | \[ \color{blue}{\left(\left(\log \left(\frac{4}{\pi}\right) + -1 \cdot \log f\right) + \left(0.5 \cdot \left({f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right)\right) + 0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right)\right)\right)} \cdot \frac{-4}{\pi}
\] |
mul-1-neg [=>]99.4 | \[ \left(\left(\log \left(\frac{4}{\pi}\right) + \color{blue}{\left(-\log f\right)}\right) + \left(0.5 \cdot \left({f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right)\right) + 0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
unsub-neg [=>]99.4 | \[ \left(\color{blue}{\left(\log \left(\frac{4}{\pi}\right) - \log f\right)} + \left(0.5 \cdot \left({f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right)\right) + 0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
fma-def [=>]99.4 | \[ \left(\left(\log \left(\frac{4}{\pi}\right) - \log f\right) + \color{blue}{\mathsf{fma}\left(0.5, {f}^{2} \cdot \left(-0.25 \cdot {\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}^{2} + 0.5 \cdot \left(\left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) \cdot \pi\right)\right), 0.5 \cdot \left(f \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
Taylor expanded in f around 0 99.5
Simplified99.4
[Start]99.5 | \[ -4 \cdot \frac{\log \left(\frac{4}{\pi}\right) - \log f}{\pi} + -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)
\] |
|---|---|
fma-def [=>]99.5 | \[ \color{blue}{\mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\pi}\right) - \log f}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)}
\] |
log-div [=>]99.5 | \[ \mathsf{fma}\left(-4, \frac{\color{blue}{\left(\log 4 - \log \pi\right)} - \log f}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
associate--l- [=>]99.4 | \[ \mathsf{fma}\left(-4, \frac{\color{blue}{\log 4 - \left(\log \pi + \log f\right)}}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
log-prod [<=]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log 4 - \color{blue}{\log \left(\pi \cdot f\right)}}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
*-commutative [<=]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log 4 - \log \color{blue}{\left(f \cdot \pi\right)}}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
log-div [<=]99.4 | \[ \mathsf{fma}\left(-4, \frac{\color{blue}{\log \left(\frac{4}{f \cdot \pi}\right)}}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
*-commutative [=>]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\color{blue}{\pi \cdot f}}\right)}{\pi}, -0.08333333333333333 \cdot \left({f}^{2} \cdot \pi\right)\right)
\] |
*-commutative [=>]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\pi \cdot f}\right)}{\pi}, \color{blue}{\left({f}^{2} \cdot \pi\right) \cdot -0.08333333333333333}\right)
\] |
associate-*l* [=>]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\pi \cdot f}\right)}{\pi}, \color{blue}{{f}^{2} \cdot \left(\pi \cdot -0.08333333333333333\right)}\right)
\] |
unpow2 [=>]99.4 | \[ \mathsf{fma}\left(-4, \frac{\log \left(\frac{4}{\pi \cdot f}\right)}{\pi}, \color{blue}{\left(f \cdot f\right)} \cdot \left(\pi \cdot -0.08333333333333333\right)\right)
\] |
if 2.0000000000000001e-4 < (*.f64 (/.f64 (PI.f64) 4) f) Initial program 40.0
Simplified40.0
[Start]40.0 | \[ -\frac{1}{\frac{\pi}{4}} \cdot \log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right)
\] |
|---|---|
*-commutative [=>]40.0 | \[ -\color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right) \cdot \frac{1}{\frac{\pi}{4}}}
\] |
distribute-rgt-neg-in [=>]40.0 | \[ \color{blue}{\log \left(\frac{e^{\frac{\pi}{4} \cdot f} + e^{-\frac{\pi}{4} \cdot f}}{e^{\frac{\pi}{4} \cdot f} - e^{-\frac{\pi}{4} \cdot f}}\right) \cdot \left(-\frac{1}{\frac{\pi}{4}}\right)}
\] |
Taylor expanded in f around 0 8.7
Applied egg-rr0.0
Simplified61.2
[Start]0.0 | \[ \left(\log \left({\left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)}^{2} - {\left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)}^{2}\right) - \left(\log \left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right) - \log \left(\frac{1}{1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}}\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
|---|---|
+-inverses [=>]0.0 | \[ \left(\log \color{blue}{0} - \left(\log \left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right) - \log \left(\frac{1}{1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}}\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
+-inverses [<=]0.0 | \[ \left(\log \color{blue}{\left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)} - \left(\log \left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right) - \log \left(\frac{1}{1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}}\right)\right)\right) \cdot \frac{-4}{\pi}
\] |
associate-+l- [<=]0.0 | \[ \color{blue}{\left(\left(\log \left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right) - \log \left({\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25} - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)\right) + \log \left(\frac{1}{1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}}\right)\right)} \cdot \frac{-4}{\pi}
\] |
+-inverses [=>]61.0 | \[ \left(\color{blue}{0} + \log \left(\frac{1}{1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}}\right)\right) \cdot \frac{-4}{\pi}
\] |
log-rec [=>]61.0 | \[ \left(0 + \color{blue}{\left(-\log \left(1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
sub-neg [<=]61.0 | \[ \color{blue}{\left(0 - \log \left(1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)\right)} \cdot \frac{-4}{\pi}
\] |
sub0-neg [=>]61.0 | \[ \color{blue}{\left(-\log \left(1 - {\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)\right)} \cdot \frac{-4}{\pi}
\] |
sub-neg [=>]61.0 | \[ \left(-\log \color{blue}{\left(1 + \left(-{\left({\left(e^{f}\right)}^{\pi}\right)}^{-0.25}\right)\right)}\right) \cdot \frac{-4}{\pi}
\] |
Final simplification97.9
| Alternative 1 | |
|---|---|
| Error | 98.3% |
| Cost | 32900.00 |
| Alternative 2 | |
|---|---|
| Error | 97.8% |
| Cost | 26180.00 |
| Alternative 3 | |
|---|---|
| Error | 97.6% |
| Cost | 20036.00 |
| Alternative 4 | |
|---|---|
| Error | 97.6% |
| Cost | 19780.00 |
| Alternative 5 | |
|---|---|
| Error | 97.6% |
| Cost | 19780.00 |
| Alternative 6 | |
|---|---|
| Error | 30.9% |
| Cost | 19652.00 |
| Alternative 7 | |
|---|---|
| Error | 7.4% |
| Cost | 13252.00 |
| Alternative 8 | |
|---|---|
| Error | 4.3% |
| Cost | 6784.00 |
| Alternative 9 | |
|---|---|
| Error | 5.1% |
| Cost | 6656.00 |
herbie shell --seed 2023093
(FPCore (f)
:name "VandenBroeck and Keller, Equation (20)"
:precision binary64
(- (* (/ 1.0 (/ PI 4.0)) (log (/ (+ (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f)))) (- (exp (* (/ PI 4.0) f)) (exp (- (* (/ PI 4.0) f)))))))))