\log \left(x + \sqrt{x \cdot x - 1}\right)\log \left(x + \sqrt{x + \sqrt{1}} \cdot \sqrt{x - \sqrt{1}}\right)double f(double x) {
double r65087 = x;
double r65088 = r65087 * r65087;
double r65089 = 1.0;
double r65090 = r65088 - r65089;
double r65091 = sqrt(r65090);
double r65092 = r65087 + r65091;
double r65093 = log(r65092);
return r65093;
}
double f(double x) {
double r65094 = x;
double r65095 = 1.0;
double r65096 = sqrt(r65095);
double r65097 = r65094 + r65096;
double r65098 = sqrt(r65097);
double r65099 = r65094 - r65096;
double r65100 = sqrt(r65099);
double r65101 = r65098 * r65100;
double r65102 = r65094 + r65101;
double r65103 = log(r65102);
return r65103;
}



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