]> www.ginac.de Git - cln.git/blob - src/real/transcendental/cl_R_ln.cc
* All Files have been modified for inclusion of namespace cln;
[cln.git] / src / real / transcendental / cl_R_ln.cc
1 // ln().
2
3 // General includes.
4 #include "cl_sysdep.h"
5
6 // Specification.
7 #include "cln/real.h"
8
9
10 // Implementation.
11
12 #include "cln/float.h"
13 #include "cl_R.h"
14
15 namespace cln {
16
17 const cl_R ln (const cl_R& x)
18 {
19 // Methode:
20 // x rational -> bei x=1 0 als Ergebnis, sonst x in Float umwandeln.
21 // x Float -> bekannt.
22
23         if (rationalp(x)) {
24                 DeclareType(cl_RA,x);
25                 if (x == 1) // x=1 -> 0 als Ergebnis
26                         return 0;
27                 return ln(cl_float(x)); // sonst in Float umwandeln
28         } else {
29                 DeclareType(cl_F,x);
30                 return ln(x);
31         }
32 }
33
34 }  // namespace cln