| Alternative 1 | |
|---|---|
| Error | 2.9 |
| Cost | 26048 |
\[-4 \cdot \frac{\log \left(\frac{4}{\pi}\right) - \log f}{\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 (* (log (+ (/ 0.0 PI) (fma f (* PI 0.08333333333333333) (/ 4.0 (* PI f))))) (/ -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) {
return log(((0.0 / ((double) M_PI)) + fma(f, (((double) M_PI) * 0.08333333333333333), (4.0 / (((double) M_PI) * f))))) * (-4.0 / ((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 Float64(log(Float64(Float64(0.0 / pi) + fma(f, Float64(pi * 0.08333333333333333), Float64(4.0 / Float64(pi * f))))) * Float64(-4.0 / 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[(N[Log[N[(N[(0.0 / Pi), $MachinePrecision] + N[(f * N[(Pi * 0.08333333333333333), $MachinePrecision] + N[(4.0 / N[(Pi * f), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $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)
\log \left(\frac{0}{\pi} + \mathsf{fma}\left(f, \pi \cdot 0.08333333333333333, \frac{4}{\pi \cdot f}\right)\right) \cdot \frac{-4}{\pi}
Initial program 61.4
Simplified61.4
[Start]61.4 | \[ -\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.4 | \[ -\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.4 | \[ \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.7
Applied egg-rr2.7
Taylor expanded in f around 0 2.7
Simplified2.7
[Start]2.7 | \[ \left(\log \left(2 \cdot \frac{-0.25 \cdot \pi + 0.25 \cdot \pi}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
|---|---|
associate-*r/ [=>]2.7 | \[ \left(\log \left(\color{blue}{\frac{2 \cdot \left(-0.25 \cdot \pi + 0.25 \cdot \pi\right)}{\pi}} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
*-commutative [=>]2.7 | \[ \left(\log \left(\frac{\color{blue}{\left(-0.25 \cdot \pi + 0.25 \cdot \pi\right) \cdot 2}}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
distribute-rgt-out [=>]2.7 | \[ \left(\log \left(\frac{\color{blue}{\left(\pi \cdot \left(-0.25 + 0.25\right)\right)} \cdot 2}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]2.7 | \[ \left(\log \left(\frac{\left(\pi \cdot \color{blue}{0}\right) \cdot 2}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
mul0-rgt [=>]2.7 | \[ \left(\log \left(\frac{\color{blue}{0} \cdot 2}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]2.7 | \[ \left(\log \left(\frac{\color{blue}{0}}{\pi} + \left(f \cdot \left(0.125 \cdot \pi - 0.041666666666666664 \cdot \pi\right) + 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
fma-def [=>]2.7 | \[ \left(\log \left(\frac{0}{\pi} + \color{blue}{\mathsf{fma}\left(f, 0.125 \cdot \pi - 0.041666666666666664 \cdot \pi, 4 \cdot \frac{1}{f \cdot \pi}\right)}\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
distribute-rgt-out-- [=>]2.7 | \[ \left(\log \left(\frac{0}{\pi} + \mathsf{fma}\left(f, \color{blue}{\pi \cdot \left(0.125 - 0.041666666666666664\right)}, 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]2.7 | \[ \left(\log \left(\frac{0}{\pi} + \mathsf{fma}\left(f, \pi \cdot \color{blue}{0.08333333333333333}, 4 \cdot \frac{1}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
associate-*r/ [=>]2.7 | \[ \left(\log \left(\frac{0}{\pi} + \mathsf{fma}\left(f, \pi \cdot 0.08333333333333333, \color{blue}{\frac{4 \cdot 1}{f \cdot \pi}}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
metadata-eval [=>]2.7 | \[ \left(\log \left(\frac{0}{\pi} + \mathsf{fma}\left(f, \pi \cdot 0.08333333333333333, \frac{\color{blue}{4}}{f \cdot \pi}\right)\right) \cdot 1\right) \cdot \frac{-4}{\pi}
\] |
Final simplification2.7
| Alternative 1 | |
|---|---|
| Error | 2.9 |
| Cost | 26048 |
| Alternative 2 | |
|---|---|
| Error | 3.0 |
| Cost | 19648 |
| Alternative 3 | |
|---|---|
| Error | 3.0 |
| Cost | 19648 |
| Alternative 4 | |
|---|---|
| Error | 43.9 |
| Cost | 13248 |
| Alternative 5 | |
|---|---|
| Error | 53.0 |
| Cost | 6720 |
herbie shell --seed 2023059
(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)))))))))