Average Error: 0.1 → 0.1
Time: 12.2s
Precision: 64
\[\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)\]
\[\log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right) + \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)\]
\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)
\log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right) + \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)
double f(double x) {
        double r3154816 = 1.0;
        double r3154817 = x;
        double r3154818 = r3154816 / r3154817;
        double r3154819 = r3154817 * r3154817;
        double r3154820 = r3154816 - r3154819;
        double r3154821 = sqrt(r3154820);
        double r3154822 = r3154821 / r3154817;
        double r3154823 = r3154818 + r3154822;
        double r3154824 = log(r3154823);
        return r3154824;
}

double f(double x) {
        double r3154825 = 1.0;
        double r3154826 = x;
        double r3154827 = r3154825 / r3154826;
        double r3154828 = r3154826 * r3154826;
        double r3154829 = r3154825 - r3154828;
        double r3154830 = sqrt(r3154829);
        double r3154831 = r3154830 / r3154826;
        double r3154832 = r3154827 + r3154831;
        double r3154833 = sqrt(r3154832);
        double r3154834 = log(r3154833);
        double r3154835 = r3154834 + r3154834;
        return r3154835;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.1

    \[\leadsto \log \color{blue}{\left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}} \cdot \sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)}\]
  4. Applied log-prod0.1

    \[\leadsto \color{blue}{\log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right) + \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)}\]
  5. Final simplification0.1

    \[\leadsto \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right) + \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x)
  :name "Hyperbolic arc-(co)secant"
  (log (+ (/ 1.0 x) (/ (sqrt (- 1.0 (* x x))) x))))