]> www.ginac.de Git - cln.git/blob - src/integer/bitwise/cl_I_boole.cc
Use paths relative the `src' directory in the #include directives.
[cln.git] / src / integer / bitwise / cl_I_boole.cc
1 // boole().
2
3 // General includes.
4 #include "base/cl_sysdep.h"
5
6 // Specification.
7 #include "cln/integer.h"
8
9
10 // Implementation.
11
12 namespace cln {
13
14 const cl_I boole (cl_boole op, const cl_I& x, const cl_I& y)
15 {
16         switch (op) {
17                 case boole_clr:
18                         return 0;
19                 case boole_set:
20                         return -1;
21                 case boole_1:
22                         return x;
23                 case boole_2:
24                         return y;
25                 case boole_c1:
26                         return lognot(x);
27                 case boole_c2:
28                         return lognot(y);
29                 case boole_and:
30                         return logand(x,y);
31                 case boole_ior:
32                         return logior(x,y);
33                 case boole_xor:
34                         return logxor(x,y);
35                 case boole_eqv:
36                         return logeqv(x,y);
37                 case boole_nand:
38                         return lognand(x,y);
39                 case boole_nor:
40                         return lognor(x,y);
41                 case boole_andc1:
42                         return logandc1(x,y);
43                 case boole_andc2:
44                         return logandc2(x,y);
45                 case boole_orc1:
46                         return logorc1(x,y);
47                 case boole_orc2:
48                         return logorc2(x,y);
49                 default:
50                         NOTREACHED
51         }
52 }
53
54 }  // namespace cln