File: bit.pxd

package info (click to toggle)
cython 3.1.6%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,932 kB
  • sloc: python: 92,172; ansic: 19,275; cpp: 1,407; xml: 1,031; javascript: 511; makefile: 373; sh: 223; sed: 11
file content (29 lines) | stat: -rw-r--r-- 749 bytes parent folder | download | duplicates (2)
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
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