?

Average Accuracy: 38.0% → 99.5%
Time: 20.9s
Precision: binary64
Cost: 39104

?

\[\cos \left(x + \varepsilon\right) - \cos x \]
\[\mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\tan \left(\frac{\varepsilon}{2}\right) \cdot \left(-\sin \varepsilon\right)\right)\right) \]
(FPCore (x eps) :precision binary64 (- (cos (+ x eps)) (cos x)))
(FPCore (x eps)
 :precision binary64
 (fma (- (sin x)) (sin eps) (* (cos x) (* (tan (/ eps 2.0)) (- (sin eps))))))
double code(double x, double eps) {
	return cos((x + eps)) - cos(x);
}
double code(double x, double eps) {
	return fma(-sin(x), sin(eps), (cos(x) * (tan((eps / 2.0)) * -sin(eps))));
}
function code(x, eps)
	return Float64(cos(Float64(x + eps)) - cos(x))
end
function code(x, eps)
	return fma(Float64(-sin(x)), sin(eps), Float64(cos(x) * Float64(tan(Float64(eps / 2.0)) * Float64(-sin(eps)))))
end
code[x_, eps_] := N[(N[Cos[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision]
code[x_, eps_] := N[((-N[Sin[x], $MachinePrecision]) * N[Sin[eps], $MachinePrecision] + N[(N[Cos[x], $MachinePrecision] * N[(N[Tan[N[(eps / 2.0), $MachinePrecision]], $MachinePrecision] * (-N[Sin[eps], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\cos \left(x + \varepsilon\right) - \cos x
\mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\tan \left(\frac{\varepsilon}{2}\right) \cdot \left(-\sin \varepsilon\right)\right)\right)

Error?

Derivation?

  1. Initial program 36.1%

    \[\cos \left(x + \varepsilon\right) - \cos x \]
  2. Applied egg-rr59.0%

    \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right)} - \cos x \]
    Step-by-step derivation

    [Start]36.1

    \[ \cos \left(x + \varepsilon\right) - \cos x \]

    cos-sum [=>]59.0

    \[ \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x \]

    sub-neg [=>]59.0

    \[ \color{blue}{\left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right)} - \cos x \]
  3. Simplified59.0%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sin \varepsilon, -\sin x, \cos \varepsilon \cdot \cos x\right)} - \cos x \]
    Step-by-step derivation

    [Start]59.0

    \[ \left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right) - \cos x \]

    +-commutative [=>]59.0

    \[ \color{blue}{\left(\left(-\sin x \cdot \sin \varepsilon\right) + \cos x \cdot \cos \varepsilon\right)} - \cos x \]

    distribute-lft-neg-in [=>]59.0

    \[ \left(\color{blue}{\left(-\sin x\right) \cdot \sin \varepsilon} + \cos x \cdot \cos \varepsilon\right) - \cos x \]

    *-commutative [=>]59.0

    \[ \left(\color{blue}{\sin \varepsilon \cdot \left(-\sin x\right)} + \cos x \cdot \cos \varepsilon\right) - \cos x \]

    fma-def [=>]59.0

    \[ \color{blue}{\mathsf{fma}\left(\sin \varepsilon, -\sin x, \cos x \cdot \cos \varepsilon\right)} - \cos x \]

    *-commutative [=>]59.0

    \[ \mathsf{fma}\left(\sin \varepsilon, -\sin x, \color{blue}{\cos \varepsilon \cdot \cos x}\right) - \cos x \]
  4. Applied egg-rr91.4%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sin \varepsilon \cdot -1, \sin x, \cos \varepsilon \cdot \cos x - \cos x\right)} \]
    Step-by-step derivation

    [Start]59.0

    \[ \mathsf{fma}\left(\sin \varepsilon, -\sin x, \cos \varepsilon \cdot \cos x\right) - \cos x \]

    fma-udef [=>]59.0

    \[ \color{blue}{\left(\sin \varepsilon \cdot \left(-\sin x\right) + \cos \varepsilon \cdot \cos x\right)} - \cos x \]

    associate--l+ [=>]91.3

    \[ \color{blue}{\sin \varepsilon \cdot \left(-\sin x\right) + \left(\cos \varepsilon \cdot \cos x - \cos x\right)} \]

    neg-mul-1 [=>]91.3

    \[ \sin \varepsilon \cdot \color{blue}{\left(-1 \cdot \sin x\right)} + \left(\cos \varepsilon \cdot \cos x - \cos x\right) \]

    associate-*r* [=>]91.3

    \[ \color{blue}{\left(\sin \varepsilon \cdot -1\right) \cdot \sin x} + \left(\cos \varepsilon \cdot \cos x - \cos x\right) \]

    fma-def [=>]91.4

    \[ \color{blue}{\mathsf{fma}\left(\sin \varepsilon \cdot -1, \sin x, \cos \varepsilon \cdot \cos x - \cos x\right)} \]
  5. Taylor expanded in eps around inf 59.0%

    \[\leadsto \color{blue}{\left(-1 \cdot \left(\sin x \cdot \sin \varepsilon\right) + \cos x \cdot \cos \varepsilon\right) - \cos x} \]
  6. Simplified91.4%

    \[\leadsto \color{blue}{\mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)} \]
    Step-by-step derivation

    [Start]59.0

    \[ \left(-1 \cdot \left(\sin x \cdot \sin \varepsilon\right) + \cos x \cdot \cos \varepsilon\right) - \cos x \]

    associate--l+ [=>]91.3

    \[ \color{blue}{-1 \cdot \left(\sin x \cdot \sin \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon - \cos x\right)} \]

    associate-*r* [=>]91.3

    \[ \color{blue}{\left(-1 \cdot \sin x\right) \cdot \sin \varepsilon} + \left(\cos x \cdot \cos \varepsilon - \cos x\right) \]

    sub-neg [=>]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \color{blue}{\left(\cos x \cdot \cos \varepsilon + \left(-\cos x\right)\right)} \]

    *-commutative [=>]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \left(\color{blue}{\cos \varepsilon \cdot \cos x} + \left(-\cos x\right)\right) \]

    neg-mul-1 [=>]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \left(\cos \varepsilon \cdot \cos x + \color{blue}{-1 \cdot \cos x}\right) \]

    distribute-rgt-in [<=]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \color{blue}{\cos x \cdot \left(\cos \varepsilon + -1\right)} \]

    metadata-eval [<=]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \cos x \cdot \left(\cos \varepsilon + \color{blue}{\left(-1\right)}\right) \]

    sub-neg [<=]91.3

    \[ \left(-1 \cdot \sin x\right) \cdot \sin \varepsilon + \cos x \cdot \color{blue}{\left(\cos \varepsilon - 1\right)} \]

    fma-udef [<=]91.4

    \[ \color{blue}{\mathsf{fma}\left(-1 \cdot \sin x, \sin \varepsilon, \cos x \cdot \left(\cos \varepsilon - 1\right)\right)} \]

    mul-1-neg [=>]91.4

    \[ \mathsf{fma}\left(\color{blue}{-\sin x}, \sin \varepsilon, \cos x \cdot \left(\cos \varepsilon - 1\right)\right) \]

    sub-neg [=>]91.4

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\left(\cos \varepsilon + \left(-1\right)\right)}\right) \]

    metadata-eval [=>]91.4

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + \color{blue}{-1}\right)\right) \]
  7. Applied egg-rr99.1%

    \[\leadsto \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\left(\left(-{\sin \varepsilon}^{2}\right) \cdot \frac{1}{\cos \varepsilon + 1}\right)}\right) \]
    Step-by-step derivation

    [Start]91.4

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right) \]

    flip-+ [=>]91.0

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\frac{\cos \varepsilon \cdot \cos \varepsilon - -1 \cdot -1}{\cos \varepsilon - -1}}\right) \]

    div-inv [=>]91.0

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\left(\left(\cos \varepsilon \cdot \cos \varepsilon - -1 \cdot -1\right) \cdot \frac{1}{\cos \varepsilon - -1}\right)}\right) \]

    metadata-eval [=>]91.0

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\left(\cos \varepsilon \cdot \cos \varepsilon - \color{blue}{1}\right) \cdot \frac{1}{\cos \varepsilon - -1}\right)\right) \]

    sub-1-cos [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\color{blue}{\left(-\sin \varepsilon \cdot \sin \varepsilon\right)} \cdot \frac{1}{\cos \varepsilon - -1}\right)\right) \]

    pow2 [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\left(-\color{blue}{{\sin \varepsilon}^{2}}\right) \cdot \frac{1}{\cos \varepsilon - -1}\right)\right) \]

    sub-neg [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\left(-{\sin \varepsilon}^{2}\right) \cdot \frac{1}{\color{blue}{\cos \varepsilon + \left(--1\right)}}\right)\right) \]

    metadata-eval [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\left(-{\sin \varepsilon}^{2}\right) \cdot \frac{1}{\cos \varepsilon + \color{blue}{1}}\right)\right) \]
  8. Simplified99.6%

    \[\leadsto \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\left(-\tan \left(\frac{\varepsilon}{2}\right) \cdot \sin \varepsilon\right)}\right) \]
    Step-by-step derivation

    [Start]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\left(-{\sin \varepsilon}^{2}\right) \cdot \frac{1}{\cos \varepsilon + 1}\right)\right) \]

    associate-*r/ [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\frac{\left(-{\sin \varepsilon}^{2}\right) \cdot 1}{\cos \varepsilon + 1}}\right) \]

    *-rgt-identity [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \frac{\color{blue}{-{\sin \varepsilon}^{2}}}{\cos \varepsilon + 1}\right) \]

    distribute-frac-neg [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \color{blue}{\left(-\frac{{\sin \varepsilon}^{2}}{\cos \varepsilon + 1}\right)}\right) \]

    unpow2 [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-\frac{\color{blue}{\sin \varepsilon \cdot \sin \varepsilon}}{\cos \varepsilon + 1}\right)\right) \]

    associate-/l* [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-\color{blue}{\frac{\sin \varepsilon}{\frac{\cos \varepsilon + 1}{\sin \varepsilon}}}\right)\right) \]

    associate-/r/ [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-\color{blue}{\frac{\sin \varepsilon}{\cos \varepsilon + 1} \cdot \sin \varepsilon}\right)\right) \]

    +-commutative [=>]99.1

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-\frac{\sin \varepsilon}{\color{blue}{1 + \cos \varepsilon}} \cdot \sin \varepsilon\right)\right) \]

    hang-0p-tan [=>]99.6

    \[ \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-\color{blue}{\tan \left(\frac{\varepsilon}{2}\right)} \cdot \sin \varepsilon\right)\right) \]
  9. Final simplification99.6%

    \[\leadsto \mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(\tan \left(\frac{\varepsilon}{2}\right) \cdot \left(-\sin \varepsilon\right)\right)\right) \]

Alternatives

Alternative 1
Accuracy99.2%
Cost39176
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -1.75 \cdot 10^{-5}:\\ \;\;\;\;\mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-1 + \cos \varepsilon\right)\right)\\ \mathbf{elif}\;\varepsilon \leq 5.2 \cdot 10^{-5}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \sin x \cdot \varepsilon\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-\sin \varepsilon, \sin x, \cos x \cdot \cos \varepsilon - \cos x\right)\\ \end{array} \]
Alternative 2
Accuracy99.2%
Cost32777
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -4.3 \cdot 10^{-5} \lor \neg \left(\varepsilon \leq 2.9 \cdot 10^{-5}\right):\\ \;\;\;\;\mathsf{fma}\left(\cos x, -1 + \cos \varepsilon, \sin x \cdot \left(-\sin \varepsilon\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \sin x \cdot \varepsilon\\ \end{array} \]
Alternative 3
Accuracy99.2%
Cost32777
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -4.2 \cdot 10^{-5} \lor \neg \left(\varepsilon \leq 4.8 \cdot 10^{-5}\right):\\ \;\;\;\;\mathsf{fma}\left(-\sin x, \sin \varepsilon, \cos x \cdot \left(-1 + \cos \varepsilon\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \sin x \cdot \varepsilon\\ \end{array} \]
Alternative 4
Accuracy99.2%
Cost26441
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -1.75 \cdot 10^{-5} \lor \neg \left(\varepsilon \leq 4.8 \cdot 10^{-5}\right):\\ \;\;\;\;\cos x \cdot \left(-1 + \cos \varepsilon\right) - \sin x \cdot \sin \varepsilon\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \sin x \cdot \varepsilon\\ \end{array} \]
Alternative 5
Accuracy76.3%
Cost13769
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0112 \lor \neg \left(\varepsilon \leq 0.0085\right):\\ \;\;\;\;\cos \varepsilon - \cos x\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \sin x \cdot \varepsilon\\ \end{array} \]
Alternative 6
Accuracy76.3%
Cost13641
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.011 \lor \neg \left(\varepsilon \leq 0.0062\right):\\ \;\;\;\;\cos \varepsilon - \cos x\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot \left(\cos x \cdot -0.5\right) - \sin x\right)\\ \end{array} \]
Alternative 7
Accuracy75.7%
Cost13632
\[-2 \cdot \left(\sin \left(0.5 \cdot \left(\varepsilon - x \cdot -2\right)\right) \cdot \sin \left(\varepsilon \cdot 0.5\right)\right) \]
Alternative 8
Accuracy76.1%
Cost13257
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0077 \lor \neg \left(\varepsilon \leq 0.00095\right):\\ \;\;\;\;\cos \varepsilon - \cos x\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5 - \sin x\right)\\ \end{array} \]
Alternative 9
Accuracy75.4%
Cost7113
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0073 \lor \neg \left(\varepsilon \leq 0.0145\right):\\ \;\;\;\;-1 + \cos \varepsilon\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5 - \sin x\right)\\ \end{array} \]
Alternative 10
Accuracy65.9%
Cost7052
\[\begin{array}{l} t_0 := -1 + \cos \varepsilon\\ \mathbf{if}\;\varepsilon \leq -0.00017:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq -1.35 \cdot 10^{-94}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) - x \cdot \varepsilon\\ \mathbf{elif}\;\varepsilon \leq 8 \cdot 10^{-7}:\\ \;\;\;\;\sin x \cdot \left(-\varepsilon\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 11
Accuracy52.4%
Cost6857
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.000112 \lor \neg \left(\varepsilon \leq 0.00013\right):\\ \;\;\;\;-1 + \cos \varepsilon\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) - x \cdot \varepsilon\\ \end{array} \]
Alternative 12
Accuracy23.9%
Cost585
\[\begin{array}{l} \mathbf{if}\;x \leq -3.05 \cdot 10^{-115} \lor \neg \left(x \leq 1.32 \cdot 10^{-80}\right):\\ \;\;\;\;x \cdot \left(-\varepsilon\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right)\\ \end{array} \]
Alternative 13
Accuracy25.9%
Cost576
\[-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) - x \cdot \varepsilon \]
Alternative 14
Accuracy25.9%
Cost448
\[\varepsilon \cdot \left(\varepsilon \cdot -0.5 - x\right) \]
Alternative 15
Accuracy17.3%
Cost256
\[x \cdot \left(-\varepsilon\right) \]

Error

Reproduce?

herbie shell --seed 2023157 
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))