'\" t .\" Copyright 1995 Jim Van Zandt .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified 2002-07-27 by Walter Harms .\" (walter.harms@informatik.uni-oldenburg.de) .TH log1p 3 2023-03-30 "Linux man-pages 6.04" .SH NAME log1p, log1pf, log1pl \- logarithm of 1 plus argument .SH LIBRARY Math library .RI ( libm ", " \-lm ) .SH SYNOPSIS .nf .B #include .PP .BI "double log1p(double " x ); .BI "float log1pf(float " x ); .BI "long double log1pl(long double " x ); .PP .fi .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP .nf .BR log1p (): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 500 .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .PP .BR log1pf (), .BR log1pl (): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH DESCRIPTION These functions return a value equivalent to .PP .nf log (1 + \fIx\fP) .fi .PP The result is computed in a way that is accurate even if the value of .I x is near zero. .SH RETURN VALUE On success, these functions return the natural logarithm of .IR "(1\ +\ x)" . .PP If .I x is a NaN, a NaN is returned. .PP If .I x is positive infinity, positive infinity is returned. .PP If .I x is \-1, a pole error occurs, and the functions return .RB \- HUGE_VAL , .RB \- HUGE_VALF , or .RB \- HUGE_VALL , respectively. .PP If .I x is less than \-1 (including negative infinity), a domain error occurs, and a NaN (not a number) is returned. .\" POSIX.1 specifies a possible range error if x is subnormal .\" glibc 2.8 doesn't do this .SH ERRORS See .BR math_error (7) for information on how to determine whether an error has occurred when calling these functions. .PP The following errors can occur: .TP Domain error: \fIx\fP is less than \-1 .I errno is set to .B EDOM (but see BUGS). An invalid floating-point exception .RB ( FE_INVALID ) is raised. .TP Pole error: \fIx\fP is \-1 .I errno is set to .B ERANGE (but see BUGS). A divide-by-zero floating-point exception .RB ( FE_DIVBYZERO ) is raised. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .ad l .nh .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .BR log1p (), .BR log1pf (), .BR log1pl () T} Thread safety MT-Safe .TE .hy .ad .sp 1 .SH STANDARDS C11, POSIX.1-2008. .SH HISTORY C99, POSIX.1-2001. .\" BSD .SH BUGS Before glibc 2.22, the glibc implementation did not set .\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6792 .I errno to .B EDOM when a domain error occurred. .PP Before glibc 2.22, the glibc implementation did not set .\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6792 .I errno to .B ERANGE when a range error occurred. .SH SEE ALSO .BR exp (3), .BR expm1 (3), .BR log (3)