diff options
Diffstat (limited to 'newlib/libm/complex/clog10.c')
-rw-r--r-- | newlib/libm/complex/clog10.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/newlib/libm/complex/clog10.c b/newlib/libm/complex/clog10.c new file mode 100644 index 000000000..c857a65d9 --- /dev/null +++ b/newlib/libm/complex/clog10.c @@ -0,0 +1,46 @@ +/* +FUNCTION + <<clog10>>, <<clog10f>>---complex base-10 logarithm + +INDEX + clog10 +INDEX + clog10f + +ANSI_SYNOPSIS + #define _GNU_SOURCE + #include <complex.h> + double complex clog10(double complex <[z]>); + float complex clog10f(float complex <[z]>); + + +DESCRIPTION + These functions compute the complex base-10 logarithm of <[z]>. + <<clog10>> is equivalent to <<clog>>(<[z]>)/<<log>>(10). + + <<clog10f>> is identical to <<clog10>>, except that it performs + its calculations on <<floats complex>>. + +RETURNS + The clog10 functions return the complex base-10 logarithm value. + +PORTABILITY + <<clog10>> and <<clog10f>> are GNU extensions. + +*/ + +#include <complex.h> +#include <math.h> + +double complex +clog10(double complex z) +{ + double complex w; + double p, rr; + + rr = cabs(z); + p = log10(rr); + rr = atan2(cimag(z), creal(z)) * M_IVLN10; + w = p + rr * I; + return w; +} |