1/* log1p(x) = log(1+x). The log1p function is designed to avoid the 2 significant loss of precision that arises from direct evaluation when x is 3 small. Use the substitute from _math.h on all platforms: it includes 4 workarounds for buggy handling of zeros. 5 */ 6 7static double 8_Py_log1p(double x) 9{ 10 /* Some platforms supply a log1p function but don't respect the sign of 11 zero: log1p(-0.0) gives 0.0 instead of the correct result of -0.0. 12 13 To save fiddling with configure tests and platform checks, we handle the 14 special case of zero input directly on all platforms. 15 */ 16 if (x == 0.0) { 17 return x; 18 } 19 else { 20 return log1p(x); 21 } 22} 23 24#define m_log1p _Py_log1p 25