1 /* mpn_and_n, mpn_ior_n, etc -- mpn logical operations.
2 
3 Copyright 2009 Free Software Foundation, Inc.
4 
5 This file is part of the GNU MP Library.
6 
7 The GNU MP Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The GNU MP Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15 License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License
18 along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
19 
20 #include "mpir.h"
21 #include "gmp-impl.h"
22 
23 #define OPERATION_xnor_n	1
24 
25 #ifndef _MSC_VER
26 
27 #ifdef OPERATION_and_n
28 #define func __MPN(and_n)
29 #define call mpn_and_n
30 #endif
31 
32 #ifdef OPERATION_andn_n
33 #define func __MPN(andn_n)
34 #define call mpn_andn_n
35 #endif
36 
37 #ifdef OPERATION_nand_n
38 #define func __MPN(nand_n)
39 #define call mpn_nand_n
40 #endif
41 
42 #ifdef OPERATION_ior_n
43 #define func __MPN(ior_n)
44 #define call mpn_ior_n
45 #endif
46 
47 #ifdef OPERATION_iorn_n
48 #define func __MPN(iorn_n)
49 #define call mpn_iorn_n
50 #endif
51 
52 #ifdef OPERATION_nior_n
53 #define func __MPN(nior_n)
54 #define call mpn_nior_n
55 #endif
56 
57 #ifdef OPERATION_xor_n
58 #define func __MPN(xor_n)
59 #define call mpn_xor_n
60 #endif
61 
62 #ifdef OPERATION_xnor_n
63 #define func __MPN(xnor_n)
64 #define call mpn_xnor_n
65 #endif
66 
67 void
func(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)68 func (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
69 {
70   call (rp, up, vp, n);
71 }
72 
73 #else
74 
75 #define _logicop(x) void __MPN(x ## _n)(mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n) { mpn_ ## x ## _n(rp, up, vp, n); }
76 
77 _logicop(xnor)
78 
79 #endif
80