X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/afb49959b0952c257770f88bc87ca40ae0305c45..1d8ce4c04d984a6a60104ccf47b9b8679d44a493:/libguile/numbers.c diff --git a/libguile/numbers.c b/libguile/numbers.c index a0ef29cdd..4454a342c 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -5997,6 +5997,35 @@ scm_is_number (SCM z) return scm_is_true (scm_number_p (z)); } +#if HAVE_COMPLEX_DOUBLE +#if !HAVE_CLOG +complex double clog (complex double z); +complex double +clog (complex double z) +{ + return log(cabs(z))+I*carg(z); +} +#endif + +#if !HAVE_CEXP +complex double cexp (complex double z); +complex double +cexp (complex double z) +{ + return exp (cabs (z)) * cos(carg (z) + I*sin(carg (z))); +} +#endif + +#if !HAVE_CARG +double carg (complex double z); +double +carg (complex double z) +{ + return atan2 (cimag(z), creal(z)); +} +#endif +#endif HAVE_COMPLEX_DOUBLE + /* In the following functions we dispatch to the real-arg funcs like log() when we know the arg is real, instead of just handing everything to