From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/numeric%2Fmath%2Flog.html | 84 +++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 devdocs/c/numeric%2Fmath%2Flog.html (limited to 'devdocs/c/numeric%2Fmath%2Flog.html') diff --git a/devdocs/c/numeric%2Fmath%2Flog.html b/devdocs/c/numeric%2Fmath%2Flog.html new file mode 100644 index 00000000..297dca2b --- /dev/null +++ b/devdocs/c/numeric%2Fmath%2Flog.html @@ -0,0 +1,84 @@ +

log, logf, logl

Defined in header <math.h>
float       logf( float arg );
+
(1) (since C99)
double      log( double arg );
+
(2)
long double logl( long double arg );
+
(3) (since C99)
Defined in header <tgmath.h>
#define log( arg )
+
(4) (since C99)
+1-3) Computes the natural (base e) logarithm of arg.
+4) Type-generic macro: If arg has type long double, logl is called. Otherwise, if arg has integer type or the type double, log is called. Otherwise, logf is called. If arg is complex or imaginary, then the macro invokes the corresponding complex function (clogf, clog, clogl).

Parameters

+ +
arg - floating point value

Return value

If no errors occur, the natural (base-e) logarithm of arg (ln(arg) or loge(arg)) is returned.

+

If a domain error occurs, an implementation-defined value is returned (NaN where supported).

+

If a pole error occurs, -HUGE_VAL, -HUGE_VALF, or -HUGE_VALL is returned.

+

Error handling

Errors are reported as specified in math_errhandling.

+

Domain error occurs if arg is less than zero.

+

Pole error may occur if arg is zero.

+

If the implementation supports IEEE floating-point arithmetic (IEC 60559),

+

Example

#include <stdio.h>
+#include <math.h>
+#include <float.h>
+#include <errno.h>
+#include <fenv.h>
+// #pragma STDC FENV_ACCESS ON
+int main(void)
+{
+    printf("log(1) = %f\n", log(1));
+    printf("base-5 logarithm of 125 = %f\n", log(125)/log(5));
+    // special values
+    printf("log(1) = %f\n", log(1));
+    printf("log(+Inf) = %f\n", log(INFINITY));
+    //error handling
+    errno = 0; feclearexcept(FE_ALL_EXCEPT);
+    printf("log(0) = %f\n", log(0));
+    if(errno == ERANGE) perror("    errno == ERANGE");
+    if(fetestexcept(FE_DIVBYZERO)) puts("    FE_DIVBYZERO raised");
+}

Output:

+
log(1) = 0.000000
+base-5 logarithm of 125 = 3.000000
+log(1) = 0.000000
+log(+Inf) = inf
+log(0) = -inf
+    errno == ERANGE: Numerical result out of range
+    FE_DIVBYZERO raised

References

See also

+ + + + + +
+
(C99)(C99)
computes common (base-10) logarithm (\({\small \log_{10}{x} }\)log10(x))
(function)
+
(C99)(C99)(C99)
computes base-2 logarithm (\({\small \log_{2}{x} }\)log2(x))
(function)
+
(C99)(C99)(C99)
computes natural (base-e) logarithm of 1 plus the given number (\({\small \ln{(1+x)} }\)ln(1+x))
(function)
+
(C99)(C99)
computes e raised to the given power (\({\small e^x}\)ex)
(function)
+
(C99)(C99)(C99)
computes the complex natural logarithm
(function)
C++ documentation for log
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/numeric/math/log +

+
-- cgit v1.2.3