Average Error: 31.9 → 0.3
Time: 7.9s
Precision: 64
\[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
\[\log \left(x + \left(x - \left(\frac{0.125}{{x}^{3}} + \frac{0.5}{x}\right)\right)\right)\]
\log \left(x + \sqrt{x \cdot x - 1}\right)
\log \left(x + \left(x - \left(\frac{0.125}{{x}^{3}} + \frac{0.5}{x}\right)\right)\right)
double f(double x) {
        double r44950 = x;
        double r44951 = r44950 * r44950;
        double r44952 = 1.0;
        double r44953 = r44951 - r44952;
        double r44954 = sqrt(r44953);
        double r44955 = r44950 + r44954;
        double r44956 = log(r44955);
        return r44956;
}

double f(double x) {
        double r44957 = x;
        double r44958 = 0.125;
        double r44959 = 3.0;
        double r44960 = pow(r44957, r44959);
        double r44961 = r44958 / r44960;
        double r44962 = 0.5;
        double r44963 = r44962 / r44957;
        double r44964 = r44961 + r44963;
        double r44965 = r44957 - r44964;
        double r44966 = r44957 + r44965;
        double r44967 = log(r44966);
        return r44967;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.9

    \[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
  2. Taylor expanded around inf 0.3

    \[\leadsto \log \left(x + \color{blue}{\left(x - \left(0.5 \cdot \frac{1}{x} + 0.125 \cdot \frac{1}{{x}^{3}}\right)\right)}\right)\]
  3. Simplified0.3

    \[\leadsto \log \left(x + \color{blue}{\left(x - \left(\frac{0.125}{{x}^{3}} + \frac{0.5}{x}\right)\right)}\right)\]
  4. Final simplification0.3

    \[\leadsto \log \left(x + \left(x - \left(\frac{0.125}{{x}^{3}} + \frac{0.5}{x}\right)\right)\right)\]

Reproduce

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