Average Error: 0.1 → 0.1
Time: 11.5s
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}} \cdot \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}} \cdot \sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)
double f(double x) {
        double r33280 = 1.0;
        double r33281 = x;
        double r33282 = r33280 / r33281;
        double r33283 = r33281 * r33281;
        double r33284 = r33280 - r33283;
        double r33285 = sqrt(r33284);
        double r33286 = r33285 / r33281;
        double r33287 = r33282 + r33286;
        double r33288 = log(r33287);
        return r33288;
}

double f(double x) {
        double r33289 = 1.0;
        double r33290 = x;
        double r33291 = r33289 / r33290;
        double r33292 = r33290 * r33290;
        double r33293 = r33289 - r33292;
        double r33294 = sqrt(r33293);
        double r33295 = r33294 / r33290;
        double r33296 = r33291 + r33295;
        double r33297 = sqrt(r33296);
        double r33298 = r33297 * r33297;
        double r33299 = log(r33298);
        return r33299;
}

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. Final simplification0.1

    \[\leadsto \log \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)\]

Reproduce

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