?

Average Accuracy: 36.7% → 51.2%
Time: 10.8s
Precision: binary64
Cost: 13376

?

\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U \]
\[\mathsf{fma}\left(2 \cdot \ell, J \cdot \cos \left(\frac{K}{2}\right), U\right) \]
(FPCore (J l K U)
 :precision binary64
 (+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))
(FPCore (J l K U) :precision binary64 (fma (* 2.0 l) (* J (cos (/ K 2.0))) U))
double code(double J, double l, double K, double U) {
	return ((J * (exp(l) - exp(-l))) * cos((K / 2.0))) + U;
}
double code(double J, double l, double K, double U) {
	return fma((2.0 * l), (J * cos((K / 2.0))), U);
}
function code(J, l, K, U)
	return Float64(Float64(Float64(J * Float64(exp(l) - exp(Float64(-l)))) * cos(Float64(K / 2.0))) + U)
end
function code(J, l, K, U)
	return fma(Float64(2.0 * l), Float64(J * cos(Float64(K / 2.0))), U)
end
code[J_, l_, K_, U_] := N[(N[(N[(J * N[(N[Exp[l], $MachinePrecision] - N[Exp[(-l)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[N[(K / 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + U), $MachinePrecision]
code[J_, l_, K_, U_] := N[(N[(2.0 * l), $MachinePrecision] * N[(J * N[Cos[N[(K / 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + U), $MachinePrecision]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
\mathsf{fma}\left(2 \cdot \ell, J \cdot \cos \left(\frac{K}{2}\right), U\right)

Error?

Derivation?

  1. Initial program 33.2%

    \[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U \]
  2. Simplified33.2%

    \[\leadsto \color{blue}{\mathsf{fma}\left(e^{\ell} - e^{-\ell}, J \cdot \cos \left(\frac{K}{2}\right), U\right)} \]
    Proof

    [Start]33.2

    \[ \left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U \]

    *-commutative [=>]33.2

    \[ \color{blue}{\left(\left(e^{\ell} - e^{-\ell}\right) \cdot J\right)} \cdot \cos \left(\frac{K}{2}\right) + U \]

    associate-*l* [=>]33.2

    \[ \color{blue}{\left(e^{\ell} - e^{-\ell}\right) \cdot \left(J \cdot \cos \left(\frac{K}{2}\right)\right)} + U \]

    fma-def [=>]33.2

    \[ \color{blue}{\mathsf{fma}\left(e^{\ell} - e^{-\ell}, J \cdot \cos \left(\frac{K}{2}\right), U\right)} \]
  3. Taylor expanded in l around 0 50.2%

    \[\leadsto \mathsf{fma}\left(\color{blue}{2 \cdot \ell}, J \cdot \cos \left(\frac{K}{2}\right), U\right) \]
  4. Final simplification50.2%

    \[\leadsto \mathsf{fma}\left(2 \cdot \ell, J \cdot \cos \left(\frac{K}{2}\right), U\right) \]

Alternatives

Alternative 1
Accuracy44.8%
Cost7108
\[\begin{array}{l} \mathbf{if}\;J \leq 2.2 \cdot 10^{+259}:\\ \;\;\;\;U + \ell \cdot \left(J + J\right)\\ \mathbf{else}:\\ \;\;\;\;\cos \left(K \cdot 0.5\right) \cdot \left(\left(2 \cdot \ell\right) \cdot J\right)\\ \end{array} \]
Alternative 2
Accuracy44.8%
Cost7108
\[\begin{array}{l} \mathbf{if}\;J \leq 5.4 \cdot 10^{+259}:\\ \;\;\;\;U + \ell \cdot \left(J + J\right)\\ \mathbf{else}:\\ \;\;\;\;\left(2 \cdot \ell\right) \cdot \left(J \cdot \cos \left(K \cdot 0.5\right)\right)\\ \end{array} \]
Alternative 3
Accuracy51.2%
Cost7104
\[U + \cos \left(\frac{K}{2}\right) \cdot \left(\left(2 \cdot \ell\right) \cdot J\right) \]
Alternative 4
Accuracy44.8%
Cost448
\[U + \ell \cdot \left(J + J\right) \]
Alternative 5
Accuracy2.7%
Cost64
\[-3 \]
Alternative 6
Accuracy36.9%
Cost64
\[U \]

Error

Reproduce?

herbie shell --seed 2023153 
(FPCore (J l K U)
  :name "Maksimov and Kolovsky, Equation (4)"
  :precision binary64
  (+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))