Average Error: 60.0 → 0.4
Time: 31.3s
Precision: 64
\[-0.026 \lt x \land x \lt 0.026\]
\[\frac{1}{x} - \frac{1}{\tan x}\]
\[\mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot x\right)\right)\right)\right)\]
\frac{1}{x} - \frac{1}{\tan x}
\mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot x\right)\right)\right)\right)
double f(double x) {
        double r2684592 = 1.0;
        double r2684593 = x;
        double r2684594 = r2684592 / r2684593;
        double r2684595 = tan(r2684593);
        double r2684596 = r2684592 / r2684595;
        double r2684597 = r2684594 - r2684596;
        return r2684597;
}

double f(double x) {
        double r2684598 = 0.0021164021164021165;
        double r2684599 = x;
        double r2684600 = 5.0;
        double r2684601 = pow(r2684599, r2684600);
        double r2684602 = r2684599 * r2684599;
        double r2684603 = 0.022222222222222223;
        double r2684604 = 0.3333333333333333;
        double r2684605 = fma(r2684602, r2684603, r2684604);
        double r2684606 = sqrt(r2684605);
        double r2684607 = sqrt(r2684606);
        double r2684608 = sqrt(r2684607);
        double r2684609 = r2684606 * r2684599;
        double r2684610 = r2684608 * r2684609;
        double r2684611 = r2684608 * r2684610;
        double r2684612 = r2684607 * r2684611;
        double r2684613 = fma(r2684598, r2684601, r2684612);
        return r2684613;
}

Error

Bits error versus x

Target

Original60.0
Target0.1
Herbie0.4
\[\begin{array}{l} \mathbf{if}\;\left|x\right| \lt 0.026:\\ \;\;\;\;\frac{x}{3} \cdot \left(1 + \frac{x \cdot x}{15}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x} - \frac{1}{\tan x}\\ \end{array}\]

Derivation

  1. Initial program 60.0

    \[\frac{1}{x} - \frac{1}{\tan x}\]
  2. Taylor expanded around 0 0.3

    \[\leadsto \color{blue}{\frac{1}{3} \cdot x + \left(\frac{1}{45} \cdot {x}^{3} + \frac{2}{945} \cdot {x}^{5}\right)}\]
  3. Simplified0.3

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{2}{945}, {x}^{5}, x \cdot \mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)\right)}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.3

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, x \cdot \color{blue}{\left(\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right)}\right)\]
  6. Applied associate-*r*0.7

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \color{blue}{\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt0.7

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}\right)\]
  9. Applied sqrt-prod0.7

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \color{blue}{\left(\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)}\right)\]
  10. Applied associate-*r*0.5

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \color{blue}{\left(\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right) \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}\right)\]
  11. Using strategy rm
  12. Applied add-sqr-sqrt0.5

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \left(\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}}\right) \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)\]
  13. Applied sqrt-prod0.5

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \left(\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}}\right) \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)\]
  14. Applied sqrt-prod0.5

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \left(\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \color{blue}{\left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}\right)}\right) \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)\]
  15. Applied associate-*r*0.4

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \color{blue}{\left(\left(\left(x \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}\right) \cdot \sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}\right) \cdot \sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}}\right)} \cdot \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}\right)\]
  16. Final simplification0.4

    \[\leadsto \mathsf{fma}\left(\frac{2}{945}, {x}^{5}, \sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)}}} \cdot \left(\sqrt{\mathsf{fma}\left(x \cdot x, \frac{1}{45}, \frac{1}{3}\right)} \cdot x\right)\right)\right)\right)\]

Reproduce

herbie shell --seed 2019163 +o rules:numerics
(FPCore (x)
  :name "invcot (example 3.9)"
  :pre (and (< -0.026 x) (< x 0.026))

  :herbie-target
  (if (< (fabs x) 0.026) (* (/ x 3) (+ 1 (/ (* x x) 15))) (- (/ 1 x) (/ 1 (tan x))))

  (- (/ 1 x) (/ 1 (tan x))))