python-2.7.6/include/bitset.h Source File

bitset.h
Go to the documentation of this file.
1 
2 #ifndef Py_BITSET_H
3 #define Py_BITSET_H
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 /* Bitset interface */
9 
10 #define BYTE char
11 
12 typedef BYTE *bitset;
13 
14 bitset newbitset(int nbits);
15 void delbitset(bitset bs);
16 #define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)
17 int addbit(bitset bs, int ibit); /* Returns 0 if already set */
18 int samebitset(bitset bs1, bitset bs2, int nbits);
19 void mergebitset(bitset bs1, bitset bs2, int nbits);
20 
21 #define BITSPERBYTE (8*sizeof(BYTE))
22 #define NBYTES(nbits) (((nbits) + BITSPERBYTE - 1) / BITSPERBYTE)
23 
24 #define BIT2BYTE(ibit) ((ibit) / BITSPERBYTE)
25 #define BIT2SHIFT(ibit) ((ibit) % BITSPERBYTE)
26 #define BIT2MASK(ibit) (1 << BIT2SHIFT(ibit))
27 #define BYTE2BIT(ibyte) ((ibyte) * BITSPERBYTE)
28 
29 #ifdef __cplusplus
30 }
31 #endif
32 #endif /* !Py_BITSET_H */
char * bitset
Definition: bitset.h:12
#define BYTE
Definition: bitset.h:10
void mergebitset(bitset bs1, bitset bs2, int nbits)
bitset newbitset(int nbits)
void delbitset(bitset bs)
int samebitset(bitset bs1, bitset bs2, int nbits)
int addbit(bitset bs, int ibit)