System configuration#
When NumPy is built, information about system configuration isrecorded, and is made available for extension modules using NumPy’s CAPI. These are mostly defined innumpyconfig.h (included inndarrayobject.h). The public symbols are prefixed byNPY_*.NumPy also offers some functions for querying information about theplatform in use.
For private use, NumPy also constructs aconfig.h in the NumPyinclude directory, which is not exported by NumPy (that is a pythonextension which use the numpy C API will not see those symbols), toavoid namespace pollution.
Data type sizes#
TheNPY_SIZEOF_{CTYPE} constants are defined so that sizeofinformation is available to the pre-processor.
- NPY_SIZEOF_SHORT#
sizeof(short)
- NPY_SIZEOF_INT#
sizeof(int)
- NPY_SIZEOF_LONG#
sizeof(long)
- NPY_SIZEOF_LONGLONG#
sizeof(longlong) where longlong is defined appropriately on theplatform.
- NPY_SIZEOF_PY_LONG_LONG#
- NPY_SIZEOF_FLOAT#
sizeof(float)
- NPY_SIZEOF_DOUBLE#
sizeof(double)
- NPY_SIZEOF_LONG_DOUBLE#
- NPY_SIZEOF_LONGDOUBLE#
sizeof(longdouble)
- NPY_SIZEOF_PY_INTPTR_T#
Size of a pointer
void*andintptr_t/Py_intptr_t.
- NPY_SIZEOF_INTP#
Size of a
size_ton this platform (sizeof(size_t))
Platform information#
- NPY_CPU_X86#
- NPY_CPU_AMD64#
- NPY_CPU_IA64#
- NPY_CPU_PPC#
- NPY_CPU_PPC64#
- NPY_CPU_SPARC#
- NPY_CPU_SPARC64#
- NPY_CPU_S390#
- NPY_CPU_PARISC#
CPU architecture of the platform; only one of the above isdefined.
Defined in
numpy/npy_cpu.h
- NPY_LITTLE_ENDIAN#
- NPY_BIG_ENDIAN#
- NPY_BYTE_ORDER#
Portable alternatives to the
endian.hmacros of GNU Libc.If big endian,NPY_BYTE_ORDER==NPY_BIG_ENDIAN, andsimilarly for little endian architectures.Defined in
numpy/npy_endian.h.
- intPyArray_GetEndianness()#
Returns the endianness of the current platform.One of
NPY_CPU_BIG,NPY_CPU_LITTLE,orNPY_CPU_UNKNOWN_ENDIAN.- NPY_CPU_BIG#
- NPY_CPU_LITTLE#
- NPY_CPU_UNKNOWN_ENDIAN#
- NPY_CPU_BIG#
Compiler directives#
- NPY_LIKELY#
- NPY_UNLIKELY#
- NPY_UNUSED#