\log \left(x + \sqrt{x \cdot x - 1}\right)\log \left(x + \left(\sqrt{\sqrt{x + \sqrt{1}}} \cdot \sqrt{\sqrt{x - \sqrt{1}}}\right) \cdot \left(\sqrt{\sqrt{x + \sqrt{1}}} \cdot \sqrt{\sqrt{x - \sqrt{1}}}\right)\right)double f(double x) {
double r68903 = x;
double r68904 = r68903 * r68903;
double r68905 = 1.0;
double r68906 = r68904 - r68905;
double r68907 = sqrt(r68906);
double r68908 = r68903 + r68907;
double r68909 = log(r68908);
return r68909;
}
double f(double x) {
double r68910 = x;
double r68911 = 1.0;
double r68912 = sqrt(r68911);
double r68913 = r68910 + r68912;
double r68914 = sqrt(r68913);
double r68915 = sqrt(r68914);
double r68916 = r68910 - r68912;
double r68917 = sqrt(r68916);
double r68918 = sqrt(r68917);
double r68919 = r68915 * r68918;
double r68920 = r68919 * r68919;
double r68921 = r68910 + r68920;
double r68922 = log(r68921);
return r68922;
}



Bits error versus x
Results
Initial program 31.5
rmApplied add-sqr-sqrt31.5
Applied difference-of-squares31.5
Applied sqrt-prod0.1
rmApplied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied unswap-sqr0.1
Final simplification0.1
herbie shell --seed 2020045 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-cosine"
:precision binary64
(log (+ x (sqrt (- (* x x) 1)))))