]> www.ginac.de Git - cln.git/blobdiff - src/complex/transcendental/cl_C_asinh.cc
Fix linking problems on some platforms caused by inline/non-inline versions
[cln.git] / src / complex / transcendental / cl_C_asinh.cc
index 816391c35d3c2c59b5292126c50f8aab886af464..a11100f5e22c09d7adb84f5f0bc6389bd54d29b0 100644 (file)
@@ -4,13 +4,15 @@
 #include "cl_sysdep.h"
 
 // Specification.
-#include "cl_complex.h"
+#include "cln/complex.h"
 
 
 // Implementation.
 
 #include "cl_C.h"
-#include "cl_real.h"
+#include "cln/real.h"
+
+namespace cln {
 
 // Methode:
 // Wert und Branch Cuts nach der Formel CLTL2, S. 313:
 //     arsinh(z) = -arsinh(-z).
 //     (Denn arsinh(z)+arsinh(-z) == log((z+sqrt(1+z^2))(-z+sqrt(1+z^2)))
 //           = log((1+z^2)-z^2) = log(1) = 0 mod 2 pi i, und links ist
-//      der Imaginärteil betragsmäßig <=pi.)
+//      der Imaginärteil betragsmäßig <=pi.)
 //     Also arsinh(z) = -arsinh(-z) = - 2 artanh(-z/(1+sqrt(1+z^2)))
 //          = (wegen -artanh(-w) = artanh(w)) = 2 artanh(z/(1+sqrt(1+z^2))).
-// Real- und Imaginärteil des Ergebnisses sind Floats, außer wenn z reell oder
-// rein imaginär ist.
+// Real- und Imaginärteil des Ergebnisses sind Floats, außer wenn z reell oder
+// rein imaginär ist.
 
-// Um für zwei Zahlen u,v mit u^2-v^2=1 und u,v beide in Bild(sqrt)
-// (d.h. Realteil>0.0 oder Realteil=0.0 und Imaginärteil>=0.0)
+// Um für zwei Zahlen u,v mit u^2-v^2=1 und u,v beide in Bild(sqrt)
+// (d.h. Realteil>0.0 oder Realteil=0.0 und Imaginärteil>=0.0)
 // log(u+v) zu berechnen:
 //               log(u+v) = 2 artanh(v/(u+1))                            (!)
 // (Beweis: 2 artanh(v/(u+1)) = log(1+(v/(u+1))) - log(1-(v/(u+1)))
 //  = log((1+u+v)/(u+1)) - log((1+u-v)/(u+1)) == log((1+u+v)/(1+u-v))
-//  = log(u+v) mod 2 pi i, und beider Imaginärteil ist > -pi und <= pi.)
+//  = log(u+v) mod 2 pi i, und beider Imaginärteil ist > -pi und <= pi.)
 
 inline const cl_C_R _asinh (const cl_N& z)
 {
@@ -78,3 +80,5 @@ const cl_N asinh (const cl_N& z)
        var cl_R& v = u_v.imagpart;
        return complex(u,v);
 }
+
+}  // namespace cln