\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)\log \left(\left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}} \cdot \sqrt{\frac{1}{\sqrt{x}}}\right) \cdot \sqrt{\frac{1}{\sqrt{x}} + \frac{\sqrt{1 - x \cdot x}}{\sqrt{x}}}\right)double f(double x) {
double r89666 = 1.0;
double r89667 = x;
double r89668 = r89666 / r89667;
double r89669 = r89667 * r89667;
double r89670 = r89666 - r89669;
double r89671 = sqrt(r89670);
double r89672 = r89671 / r89667;
double r89673 = r89668 + r89672;
double r89674 = log(r89673);
return r89674;
}
double f(double x) {
double r89675 = 1.0;
double r89676 = x;
double r89677 = r89675 / r89676;
double r89678 = r89676 * r89676;
double r89679 = r89675 - r89678;
double r89680 = sqrt(r89679);
double r89681 = r89680 / r89676;
double r89682 = r89677 + r89681;
double r89683 = sqrt(r89682);
double r89684 = 1.0;
double r89685 = sqrt(r89676);
double r89686 = r89684 / r89685;
double r89687 = sqrt(r89686);
double r89688 = r89683 * r89687;
double r89689 = r89675 / r89685;
double r89690 = r89680 / r89685;
double r89691 = r89689 + r89690;
double r89692 = sqrt(r89691);
double r89693 = r89688 * r89692;
double r89694 = log(r89693);
return r89694;
}



Bits error versus x
Results
Initial program 0.0
rmApplied add-sqr-sqrt0.0
rmApplied add-sqr-sqrt0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied add-sqr-sqrt0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied distribute-lft-out0.0
Applied sqrt-prod0.0
Applied associate-*r*0.0
Final simplification0.0
herbie shell --seed 2020045 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-(co)secant"
:precision binary64
(log (+ (/ 1 x) (/ (sqrt (- 1 (* x x))) x))))