\log \left(\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}\right)\log \left(\mathsf{hypot}\left(\frac{\sqrt{1}}{\sqrt{x}}, \frac{\sqrt{\sqrt{1 - x \cdot x}}}{\sqrt{x}}\right)\right) + \log \left(\sqrt{\frac{1}{x} + \frac{\sqrt{1 - x \cdot x}}{x}}\right)double f(double x) {
double r95048 = 1.0;
double r95049 = x;
double r95050 = r95048 / r95049;
double r95051 = r95049 * r95049;
double r95052 = r95048 - r95051;
double r95053 = sqrt(r95052);
double r95054 = r95053 / r95049;
double r95055 = r95050 + r95054;
double r95056 = log(r95055);
return r95056;
}
double f(double x) {
double r95057 = 1.0;
double r95058 = sqrt(r95057);
double r95059 = x;
double r95060 = sqrt(r95059);
double r95061 = r95058 / r95060;
double r95062 = r95059 * r95059;
double r95063 = r95057 - r95062;
double r95064 = sqrt(r95063);
double r95065 = sqrt(r95064);
double r95066 = r95065 / r95060;
double r95067 = hypot(r95061, r95066);
double r95068 = log(r95067);
double r95069 = r95057 / r95059;
double r95070 = r95064 / r95059;
double r95071 = r95069 + r95070;
double r95072 = sqrt(r95071);
double r95073 = log(r95072);
double r95074 = r95068 + r95073;
return r95074;
}



Bits error versus x
Results
Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied log-prod0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied sqrt-prod0.0
Applied times-frac0.0
Applied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
Applied hypot-def0.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))))