blob: cac12ea4fdace9c4202e281f57657e86853f189f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
cdef extern from "<bit>" namespace "std" nogil:
# bit_cast (gcc >= 11.0, clang >= 14.0)
cdef To bit_cast[To, From](From&)
# byteswap (C++23)
#cdef T byteswap[T](T)
# integral powers of 2 (gcc >= 10.0, clang >= 12.0)
cdef bint has_single_bit[T](T)
cdef T bit_ceil[T](T)
cdef T bit_floor[T](T)
cdef int bit_width[T](T)
# rotating (gcc >= 9.0, clang >= 9.0)
cdef T rotl[T](T, int shift)
cdef T rotr[T](T, int shift)
# counting (gcc >= 9.0, clang >= 9.0)
cdef int countl_zero[T](T)
cdef int countl_one[T](T)
cdef int countr_zero[T](T)
cdef int countr_one[T](T)
cdef int popcount[T](T)
# endian
cpdef enum class endian(int):
little,
big,
native
|