Average Error: 31.1 → 0.1
Time: 28.8s
Precision: 64
\[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
\[\log \left(x + \sqrt{1 + x} \cdot \sqrt{x - 1}\right)\]
\log \left(x + \sqrt{x \cdot x - 1}\right)
\log \left(x + \sqrt{1 + x} \cdot \sqrt{x - 1}\right)
double f(double x) {
        double r10570937 = x;
        double r10570938 = r10570937 * r10570937;
        double r10570939 = 1.0;
        double r10570940 = r10570938 - r10570939;
        double r10570941 = sqrt(r10570940);
        double r10570942 = r10570937 + r10570941;
        double r10570943 = log(r10570942);
        return r10570943;
}

double f(double x) {
        double r10570944 = x;
        double r10570945 = 1.0;
        double r10570946 = r10570945 + r10570944;
        double r10570947 = sqrt(r10570946);
        double r10570948 = r10570944 - r10570945;
        double r10570949 = sqrt(r10570948);
        double r10570950 = r10570947 * r10570949;
        double r10570951 = r10570944 + r10570950;
        double r10570952 = log(r10570951);
        return r10570952;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.1

    \[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
  2. Using strategy rm
  3. Applied *-un-lft-identity31.1

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

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

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

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

Reproduce

herbie shell --seed 2019104 
(FPCore (x)
  :name "Hyperbolic arc-cosine"
  (log (+ x (sqrt (- (* x x) 1)))))