diff options
author | Han-Wen Nienhuys <hanwen@lilypond.org> | 2007-04-09 14:47:41 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@lilypond.org> | 2007-04-09 14:47:41 +0000 |
commit | 1d8ce4c04d984a6a60104ccf47b9b8679d44a493 (patch) | |
tree | a955e91bfebeaa4997f89f90fcca626f926bff6b /libguile/numbers.c | |
parent | afb49959b0952c257770f88bc87ca40ae0305c45 (diff) | |
download | guile-1d8ce4c04d984a6a60104ccf47b9b8679d44a493.tar.gz |
* configure.in (HAVE_CRYPT): check for cexp, clog, carg
* numbers.c (carg): provide carg, cexp, clog in case they are
missing.
Diffstat (limited to 'libguile/numbers.c')
-rw-r--r-- | libguile/numbers.c | 29 |
1 files changed, 29 insertions, 0 deletions
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 |