]> www.ginac.de Git - cln.git/blob - src/complex/elem/cl_C_uminus.cc
Initial revision
[cln.git] / src / complex / elem / cl_C_uminus.cc
1 // unary operator -
2
3 // General includes.
4 #include "cl_sysdep.h"
5
6 // Specification.
7 #include "cl_complex.h"
8
9
10 // Implementation.
11
12 #include "cl_C.h"
13 #include "cl_real.h"
14
15 const cl_N operator- (const cl_N& x)
16 {
17 // Methode:
18 // x reell -> klar.
19 // x=a+bi -> (-a) + (-b) i
20         if (realp(x)) {
21                 DeclareType(cl_R,x);
22                 return -x;
23         } else {
24                 DeclareType(cl_C,x);
25                 var const cl_R& a = realpart(x);
26                 var const cl_R& b = imagpart(x);
27                 return complex_C(-a,-b);
28         }
29 }