// log().
// General includes.
-#include "cl_sysdep.h"
+#include "base/cl_sysdep.h"
// Specification.
#include "cln/complex.h"
// Implementation.
-#include "cl_C.h"
+#include "complex/cl_C.h"
#include "cln/real.h"
-#include "cl_R.h"
-#include "cl_N.h"
+#include "real/cl_R.h"
+#include "base/cl_N.h"
namespace cln {
// falls (= a 0): Error
// sonst: (phase a) errechnen, ein Float.
// b (falls rational) ins selbe Float-Format umwandeln,
-// Imaginärteil := (/ (phase a) (log dieses_b)).
+// Imaginärteil := (/ (phase a) (log dieses_b)).
// Falls a rational: (log (abs a) b).
-// Falls a komplex mit rationalem Real- und Imaginärteil,
+// Falls a komplex mit rationalem Real- und Imaginärteil,
// Betragsquadrat (expt (abs a) 2) exakt ausrechnen als
// (+ (expt (realpart a) 2) (expt (imagpart a) 2)).
// Setze Realteil := (/ (log Betragsquadrat b) 2).
}
// b ist reell und >0, a aber nicht.
- // Imaginärteil (/ (phase a) (log b)) errechnen:
+ // Imaginärteil (/ (phase a) (log b)) errechnen:
var cl_F im;
{
var cl_R angle = phase(a);
} else {
DeclareType(cl_C,a);
if (rationalp(realpart(a)) && rationalp(imagpart(a))) {
- // a komplex mit rationalem Real- und Imaginärteil a1,a2
+ // a komplex mit rationalem Real- und Imaginärteil a1,a2
var const cl_R& a1 = realpart(a);
var const cl_R& a2 = imagpart(a);
re = log(square(a1)+square(a2),b) / 2;
goto re_ok;
}
}
- // Keine Chance für rationalen Realteil.
+ // Keine Chance für rationalen Realteil.
{
var cl_F abs_a = The(cl_F)(abs(a));
var cl_F log_abs_a = ln(abs_a);