LowLevelCallable#
- class scipy.LowLevelCallable(function, user_data=None, signature=None)[source]#
- Low-level callback function. - Some functions in SciPy take as arguments callback functions, which can either be python callables or low-level compiled functions. Using compiled callback functions can improve performance somewhat by avoiding wrapping data in Python objects. - Such low-level functions in SciPy are wrapped in - LowLevelCallableobjects, which can be constructed from function pointers obtained from ctypes, cffi, Cython, or contained in Python PyCapsule objects.- See also - Functions accepting low-level callables: - scipy.integrate.quad,- scipy.ndimage.generic_filter,- scipy.ndimage.generic_filter1d,- scipy.ndimage.geometric_transform- Usage examples: - Extending scipy.ndimage in C, Faster integration using low-level callback functions - Parameters:
- function{PyCapsule, ctypes function pointer, cffi function pointer}
- Low-level callback function. 
- user_data{PyCapsule, ctypes void pointer, cffi void pointer}
- User data to pass on to the callback function. 
- signaturestr, optional
- Signature of the function. If omitted, determined from function, if possible. 
 
- Attributes:
- function
- Callback function given. 
- user_data
- User data given. 
- signature
- Signature of the function. 
 
 - Methods - from_cython(module, name[, user_data, signature])- Create a low-level callback function from an exported Cython function. - Notes - The argument - functioncan be one of:- PyCapsule, whose name contains the C function signature 
- ctypes function pointer 
- cffi function pointer 
 - The signature of the low-level callback must match one of those expected by the routine it is passed to. - If constructing low-level functions from a PyCapsule, the name of the capsule must be the corresponding signature, in the format: - return_type (arg1_type, arg2_type, ...) - For example: - "void (double)" "double (double, int *, void *)" - The context of a PyCapsule passed in as - functionis used as- user_data, if an explicit value for- user_datawas not given.