/*****************************************************************************//*****************************************************************************/// atanhf from musl-0.9.15/*****************************************************************************//*****************************************************************************/#include "libm.h"/* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */float atanhf(float x){union {float f; uint32_t i;} u = {.f = x};unsigned s = u.i >> 31;float_t y;/* |x| */u.i &= 0x7fffffff;y = u.f;if (u.i < 0x3f800000 - (1<<23)) {if (u.i < 0x3f800000 - (32<<23)) {/* handle underflow */if (u.i < (1<<23))FORCE_EVAL((float)(y*y));} else {/* |x| < 0.5, up to 1.7ulp error */y = 0.5f*log1pf(2*y + 2*y*y/(1-y));}} else {/* avoid overflow */y = 0.5f*log1pf(2*(y/(1-y)));}return s ? -y : y;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。