Average Error: 0.1 → 0.1
Time: 18.1s
Precision: 64
\[\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)\]
\[\log \left(\frac{1}{x} + \sqrt{1 - x \cdot x} \cdot \frac{1}{x}\right)\]
\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)
\log \left(\frac{1}{x} + \sqrt{1 - x \cdot x} \cdot \frac{1}{x}\right)
double f(double x) {
        double r29303 = 1.0;
        double r29304 = x;
        double r29305 = r29303 / r29304;
        double r29306 = r29304 * r29304;
        double r29307 = r29303 - r29306;
        double r29308 = sqrt(r29307);
        double r29309 = r29308 / r29304;
        double r29310 = r29305 + r29309;
        double r29311 = log(r29310);
        return r29311;
}

double f(double x) {
        double r29312 = 1.0;
        double r29313 = x;
        double r29314 = r29312 / r29313;
        double r29315 = r29313 * r29313;
        double r29316 = r29312 - r29315;
        double r29317 = sqrt(r29316);
        double r29318 = 1.0;
        double r29319 = r29318 / r29313;
        double r29320 = r29317 * r29319;
        double r29321 = r29314 + r29320;
        double r29322 = log(r29321);
        return r29322;
}

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 div-inv0.1

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

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

Reproduce

herbie shell --seed 2019303 
(FPCore (x)
  :name "Hyperbolic arc-(co)secant"
  :precision binary64
  (log (+ (/ 1 x) (/ (sqrt (- 1 (* x x))) x))))