| Alternative 1 | |
|---|---|
| Error | 2.7 |
| Cost | 19648 |
\[-4 \cdot \frac{\log \left(\frac{4}{f \cdot \pi}\right)}{\pi}
\]
(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 (fma -2.0 (+ (/ (* f (* PI 0.0)) PI) (/ (* f f) (/ PI (* (pow PI 2.0) 0.041666666666666664)))) (* -4.0 (/ (log (/ (/ 4.0 f) PI)) 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) {
return fma(-2.0, (((f * (((double) M_PI) * 0.0)) / ((double) M_PI)) + ((f * f) / (((double) M_PI) / (pow(((double) M_PI), 2.0) * 0.041666666666666664)))), (-4.0 * (log(((4.0 / f) / ((double) M_PI))) / ((double) M_PI))));
}
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) return fma(-2.0, Float64(Float64(Float64(f * Float64(pi * 0.0)) / pi) + Float64(Float64(f * f) / Float64(pi / Float64((pi ^ 2.0) * 0.041666666666666664)))), Float64(-4.0 * Float64(log(Float64(Float64(4.0 / f) / pi)) / pi))) 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_] := N[(-2.0 * N[(N[(N[(f * N[(Pi * 0.0), $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision] + N[(N[(f * f), $MachinePrecision] / N[(Pi / N[(N[Power[Pi, 2.0], $MachinePrecision] * 0.041666666666666664), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-4.0 * N[(N[Log[N[(N[(4.0 / f), $MachinePrecision] / Pi), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $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)
\mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\log \left(\frac{\frac{4}{f}}{\pi}\right)}{\pi}\right)
Initial program 61.5
Simplified61.5
[Start]61.5 | \[ -\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 [=>]61.5 | \[ -\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 [=>]61.5 | \[ \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 2.4
Simplified2.4
[Start]2.4 | \[ -4 \cdot \frac{\log \left(\frac{2}{0.25 \cdot \pi - -0.25 \cdot \pi}\right) + -1 \cdot \log f}{\pi} + \left(-2 \cdot \frac{\left(-0.25 \cdot \left({\left(0.25 \cdot \pi - -0.25 \cdot \pi\right)}^{2} \cdot {\left(-0.25 \cdot \frac{\pi}{0.25 \cdot \pi - -0.25 \cdot \pi} + 0.25 \cdot \frac{\pi}{0.25 \cdot \pi - -0.25 \cdot \pi}\right)}^{2}\right) + \left(0.25 \cdot \pi - -0.25 \cdot \pi\right) \cdot \left(0.0625 \cdot \frac{{\pi}^{2}}{0.25 \cdot \pi - -0.25 \cdot \pi} - 2 \cdot \frac{0.0026041666666666665 \cdot {\pi}^{3} - -0.0026041666666666665 \cdot {\pi}^{3}}{{\left(0.25 \cdot \pi - -0.25 \cdot \pi\right)}^{2}}\right)\right) \cdot {f}^{2}}{\pi} + -2 \cdot \frac{\left(0.25 \cdot \pi - -0.25 \cdot \pi\right) \cdot \left(f \cdot \left(-0.25 \cdot \frac{\pi}{0.25 \cdot \pi - -0.25 \cdot \pi} + 0.25 \cdot \frac{\pi}{0.25 \cdot \pi - -0.25 \cdot \pi}\right)\right)}{\pi}\right)
\] |
|---|
Applied egg-rr2.4
Simplified2.4
[Start]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{0 + \pi \cdot \left(0.5 \cdot \mathsf{fma}\left(0.0625, 2 \cdot \pi, \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
|---|---|
+-lft-identity [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\color{blue}{\pi \cdot \left(0.5 \cdot \mathsf{fma}\left(0.0625, 2 \cdot \pi, \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
associate-*r* [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\color{blue}{\left(\pi \cdot 0.5\right) \cdot \mathsf{fma}\left(0.0625, 2 \cdot \pi, \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
fma-udef [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \color{blue}{\left(0.0625 \cdot \left(2 \cdot \pi\right) + \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
+-commutative [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \color{blue}{\left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + 0.0625 \cdot \left(2 \cdot \pi\right)\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
associate-*r* [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + \color{blue}{\left(0.0625 \cdot 2\right) \cdot \pi}\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
metadata-eval [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + \color{blue}{0.125} \cdot \pi\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
metadata-eval [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + \color{blue}{\frac{0.0625}{0.5}} \cdot \pi\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
associate-/r/ [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + \color{blue}{\frac{0.0625}{\frac{0.5}{\pi}}}\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
associate-/l* [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \left(\frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2 + \color{blue}{\frac{0.0625 \cdot \pi}{0.5}}\right)}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
+-commutative [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\left(\pi \cdot 0.5\right) \cdot \color{blue}{\left(\frac{0.0625 \cdot \pi}{0.5} + \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
associate-*l* [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\color{blue}{\pi \cdot \left(0.5 \cdot \left(\frac{0.0625 \cdot \pi}{0.5} + \frac{{\pi}^{3}}{{\pi}^{2} \cdot 48} \cdot -2\right)\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
Applied egg-rr2.4
Simplified2.4
[Start]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{0.0625 \cdot {\pi}^{2} + -0.020833333333333332 \cdot {\pi}^{2}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
|---|---|
distribute-rgt-out [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{\color{blue}{{\pi}^{2} \cdot \left(0.0625 + -0.020833333333333332\right)}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
metadata-eval [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot \color{blue}{0.041666666666666664}}}, -4 \cdot \frac{\log \left(\frac{\frac{2}{\pi}}{0.5}\right) - \log f}{\pi}\right)
\] |
Taylor expanded in f around 0 2.4
Simplified2.5
[Start]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\log \left(\frac{4}{\pi}\right) - \log f}{\pi}\right)
\] |
|---|---|
log-div [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\color{blue}{\left(\log 4 - \log \pi\right)} - \log f}{\pi}\right)
\] |
associate--l- [=>]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\color{blue}{\log 4 - \left(\log \pi + \log f\right)}}{\pi}\right)
\] |
log-prod [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\log 4 - \color{blue}{\log \left(\pi \cdot f\right)}}{\pi}\right)
\] |
*-commutative [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\log 4 - \log \color{blue}{\left(f \cdot \pi\right)}}{\pi}\right)
\] |
log-div [<=]2.4 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\color{blue}{\log \left(\frac{4}{f \cdot \pi}\right)}}{\pi}\right)
\] |
associate-/r* [=>]2.5 | \[ \mathsf{fma}\left(-2, \frac{f \cdot \left(\pi \cdot 0\right)}{\pi} + \frac{f \cdot f}{\frac{\pi}{{\pi}^{2} \cdot 0.041666666666666664}}, -4 \cdot \frac{\log \color{blue}{\left(\frac{\frac{4}{f}}{\pi}\right)}}{\pi}\right)
\] |
Final simplification2.5
| Alternative 1 | |
|---|---|
| Error | 2.7 |
| Cost | 19648 |
| Alternative 2 | |
|---|---|
| Error | 55.3 |
| Cost | 6528 |
herbie shell --seed 2023045
(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)))))))))