Average Error: 30.2 → 0.5
Time: 14.0s
Precision: 64
\[\frac{1 - \cos x}{\sin x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.0211819715308778529:\\ \;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{{1}^{3} + {\left(\cos x\right)}^{3}}{\cos x \cdot \left(\cos x - 1\right) + 1 \cdot 1} + 1 \cdot 1\right)}\\ \mathbf{elif}\;x \le 0.024888732994626496:\\ \;\;\;\;0.04166666666666663 \cdot {x}^{3} + \left(0.004166666666666624 \cdot {x}^{5} + 0.5 \cdot x\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{1 \cdot 1 - {\left(\cos x\right)}^{2}}{1 - \cos x} + 1 \cdot 1\right)}\\ \end{array}\]
\frac{1 - \cos x}{\sin x}
\begin{array}{l}
\mathbf{if}\;x \le -0.0211819715308778529:\\
\;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{{1}^{3} + {\left(\cos x\right)}^{3}}{\cos x \cdot \left(\cos x - 1\right) + 1 \cdot 1} + 1 \cdot 1\right)}\\

\mathbf{elif}\;x \le 0.024888732994626496:\\
\;\;\;\;0.04166666666666663 \cdot {x}^{3} + \left(0.004166666666666624 \cdot {x}^{5} + 0.5 \cdot x\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{1 \cdot 1 - {\left(\cos x\right)}^{2}}{1 - \cos x} + 1 \cdot 1\right)}\\

\end{array}
double f(double x) {
        double r68592 = 1.0;
        double r68593 = x;
        double r68594 = cos(r68593);
        double r68595 = r68592 - r68594;
        double r68596 = sin(r68593);
        double r68597 = r68595 / r68596;
        return r68597;
}

double f(double x) {
        double r68598 = x;
        double r68599 = -0.021181971530877853;
        bool r68600 = r68598 <= r68599;
        double r68601 = 1.0;
        double r68602 = 3.0;
        double r68603 = pow(r68601, r68602);
        double r68604 = cos(r68598);
        double r68605 = pow(r68604, r68602);
        double r68606 = r68603 - r68605;
        double r68607 = sin(r68598);
        double r68608 = r68603 + r68605;
        double r68609 = r68604 - r68601;
        double r68610 = r68604 * r68609;
        double r68611 = r68601 * r68601;
        double r68612 = r68610 + r68611;
        double r68613 = r68608 / r68612;
        double r68614 = r68604 * r68613;
        double r68615 = r68614 + r68611;
        double r68616 = r68607 * r68615;
        double r68617 = r68606 / r68616;
        double r68618 = 0.024888732994626496;
        bool r68619 = r68598 <= r68618;
        double r68620 = 0.04166666666666663;
        double r68621 = pow(r68598, r68602);
        double r68622 = r68620 * r68621;
        double r68623 = 0.004166666666666624;
        double r68624 = 5.0;
        double r68625 = pow(r68598, r68624);
        double r68626 = r68623 * r68625;
        double r68627 = 0.5;
        double r68628 = r68627 * r68598;
        double r68629 = r68626 + r68628;
        double r68630 = r68622 + r68629;
        double r68631 = 2.0;
        double r68632 = pow(r68604, r68631);
        double r68633 = r68611 - r68632;
        double r68634 = r68601 - r68604;
        double r68635 = r68633 / r68634;
        double r68636 = r68604 * r68635;
        double r68637 = r68636 + r68611;
        double r68638 = r68607 * r68637;
        double r68639 = r68606 / r68638;
        double r68640 = r68619 ? r68630 : r68639;
        double r68641 = r68600 ? r68617 : r68640;
        return r68641;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original30.2
Target0.0
Herbie0.5
\[\tan \left(\frac{x}{2}\right)\]

Derivation

  1. Split input into 3 regimes
  2. if x < -0.021181971530877853

    1. Initial program 0.9

      \[\frac{1 - \cos x}{\sin x}\]
    2. Using strategy rm
    3. Applied flip3--1.0

      \[\leadsto \frac{\color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}}{\sin x}\]
    4. Applied associate-/l/1.0

      \[\leadsto \color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)\right)}}\]
    5. Simplified1.0

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\color{blue}{\sin x \cdot \left(\cos x \cdot \left(1 + \cos x\right) + 1 \cdot 1\right)}}\]
    6. Using strategy rm
    7. Applied flip3-+1.0

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \color{blue}{\frac{{1}^{3} + {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x - 1 \cdot \cos x\right)}} + 1 \cdot 1\right)}\]
    8. Simplified1.0

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{{1}^{3} + {\left(\cos x\right)}^{3}}{\color{blue}{\cos x \cdot \left(\cos x - 1\right) + 1 \cdot 1}} + 1 \cdot 1\right)}\]

    if -0.021181971530877853 < x < 0.024888732994626496

    1. Initial program 59.9

      \[\frac{1 - \cos x}{\sin x}\]
    2. Using strategy rm
    3. Applied flip3--59.9

      \[\leadsto \frac{\color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}}{\sin x}\]
    4. Applied associate-/l/59.9

      \[\leadsto \color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)\right)}}\]
    5. Simplified59.9

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\color{blue}{\sin x \cdot \left(\cos x \cdot \left(1 + \cos x\right) + 1 \cdot 1\right)}}\]
    6. Taylor expanded around 0 0.0

      \[\leadsto \color{blue}{0.04166666666666663 \cdot {x}^{3} + \left(0.004166666666666624 \cdot {x}^{5} + 0.5 \cdot x\right)}\]

    if 0.024888732994626496 < x

    1. Initial program 0.9

      \[\frac{1 - \cos x}{\sin x}\]
    2. Using strategy rm
    3. Applied flip3--1.0

      \[\leadsto \frac{\color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}}{\sin x}\]
    4. Applied associate-/l/1.0

      \[\leadsto \color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)\right)}}\]
    5. Simplified1.0

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\color{blue}{\sin x \cdot \left(\cos x \cdot \left(1 + \cos x\right) + 1 \cdot 1\right)}}\]
    6. Using strategy rm
    7. Applied flip-+1.0

      \[\leadsto \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \color{blue}{\frac{1 \cdot 1 - \cos x \cdot \cos x}{1 - \cos x}} + 1 \cdot 1\right)}\]
    8. Simplified1.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.0211819715308778529:\\ \;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{{1}^{3} + {\left(\cos x\right)}^{3}}{\cos x \cdot \left(\cos x - 1\right) + 1 \cdot 1} + 1 \cdot 1\right)}\\ \mathbf{elif}\;x \le 0.024888732994626496:\\ \;\;\;\;0.04166666666666663 \cdot {x}^{3} + \left(0.004166666666666624 \cdot {x}^{5} + 0.5 \cdot x\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\sin x \cdot \left(\cos x \cdot \frac{1 \cdot 1 - {\left(\cos x\right)}^{2}}{1 - \cos x} + 1 \cdot 1\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020042 
(FPCore (x)
  :name "tanhf (example 3.4)"
  :precision binary64
  :herbie-expected 2

  :herbie-target
  (tan (/ x 2))

  (/ (- 1 (cos x)) (sin x)))