Average Error: 27.3 → 2.5
Time: 1.7m
Precision: 64
\[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
\[\begin{array}{l} \mathbf{if}\;sin \le 3.9964811626697553 \cdot 10^{-250}:\\ \;\;\;\;\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot cos\right) \cdot sin}}{\sqrt{sin} \cdot \left(\sqrt{sin} \cdot \left(x \cdot cos\right)\right)}\\ \end{array}\]
\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}
\begin{array}{l}
\mathbf{if}\;sin \le 3.9964811626697553 \cdot 10^{-250}:\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot cos\right) \cdot sin}}{\sqrt{sin} \cdot \left(\sqrt{sin} \cdot \left(x \cdot cos\right)\right)}\\

\end{array}
double f(double x, double cos, double sin) {
        double r12670896 = 2.0;
        double r12670897 = x;
        double r12670898 = r12670896 * r12670897;
        double r12670899 = cos(r12670898);
        double r12670900 = cos;
        double r12670901 = pow(r12670900, r12670896);
        double r12670902 = sin;
        double r12670903 = pow(r12670902, r12670896);
        double r12670904 = r12670897 * r12670903;
        double r12670905 = r12670904 * r12670897;
        double r12670906 = r12670901 * r12670905;
        double r12670907 = r12670899 / r12670906;
        return r12670907;
}

double f(double x, double cos, double sin) {
        double r12670908 = sin;
        double r12670909 = 3.9964811626697553e-250;
        bool r12670910 = r12670908 <= r12670909;
        double r12670911 = 2.0;
        double r12670912 = x;
        double r12670913 = r12670911 * r12670912;
        double r12670914 = cos(r12670913);
        double r12670915 = r12670912 * r12670908;
        double r12670916 = cos;
        double r12670917 = r12670915 * r12670916;
        double r12670918 = r12670917 * r12670917;
        double r12670919 = r12670914 / r12670918;
        double r12670920 = r12670912 * r12670916;
        double r12670921 = r12670920 * r12670908;
        double r12670922 = r12670914 / r12670921;
        double r12670923 = sqrt(r12670908);
        double r12670924 = r12670923 * r12670920;
        double r12670925 = r12670923 * r12670924;
        double r12670926 = r12670922 / r12670925;
        double r12670927 = r12670910 ? r12670919 : r12670926;
        return r12670927;
}

Error

Bits error versus x

Bits error versus cos

Bits error versus sin

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if sin < 3.9964811626697553e-250

    1. Initial program 29.5

      \[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
    2. Simplified3.6

      \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{\left(sin \cdot \left(x \cdot cos\right)\right) \cdot \left(sin \cdot \left(x \cdot cos\right)\right)}}\]
    3. Taylor expanded around inf 32.9

      \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{{sin}^{2} \cdot \left({x}^{2} \cdot {cos}^{2}\right)}}\]
    4. Simplified3.0

      \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}}\]

    if 3.9964811626697553e-250 < sin

    1. Initial program 25.1

      \[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
    2. Simplified2.1

      \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{\left(sin \cdot \left(x \cdot cos\right)\right) \cdot \left(sin \cdot \left(x \cdot cos\right)\right)}}\]
    3. Using strategy rm
    4. Applied associate-/r*2.0

      \[\leadsto \color{blue}{\frac{\frac{\cos \left(2 \cdot x\right)}{sin \cdot \left(x \cdot cos\right)}}{sin \cdot \left(x \cdot cos\right)}}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt2.0

      \[\leadsto \frac{\frac{\cos \left(2 \cdot x\right)}{sin \cdot \left(x \cdot cos\right)}}{\color{blue}{\left(\sqrt{sin} \cdot \sqrt{sin}\right)} \cdot \left(x \cdot cos\right)}\]
    7. Applied associate-*l*2.0

      \[\leadsto \frac{\frac{\cos \left(2 \cdot x\right)}{sin \cdot \left(x \cdot cos\right)}}{\color{blue}{\sqrt{sin} \cdot \left(\sqrt{sin} \cdot \left(x \cdot cos\right)\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;sin \le 3.9964811626697553 \cdot 10^{-250}:\\ \;\;\;\;\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot cos\right) \cdot sin}}{\sqrt{sin} \cdot \left(\sqrt{sin} \cdot \left(x \cdot cos\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019107 +o rules:numerics
(FPCore (x cos sin)
  :name "cos(2*x)/(cos^2(x)*sin^2(x))"
  (/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))))