Viewing file: arrayscalars.h (3.85 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_ #define NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_
#ifndef _MULTIARRAYMODULE typedef struct { PyObject_HEAD npy_bool obval; } PyBoolScalarObject; #endif
typedef struct { PyObject_HEAD signed char obval; } PyByteScalarObject;
typedef struct { PyObject_HEAD short obval; } PyShortScalarObject;
typedef struct { PyObject_HEAD int obval; } PyIntScalarObject;
typedef struct { PyObject_HEAD long obval; } PyLongScalarObject;
typedef struct { PyObject_HEAD npy_longlong obval; } PyLongLongScalarObject;
typedef struct { PyObject_HEAD unsigned char obval; } PyUByteScalarObject;
typedef struct { PyObject_HEAD unsigned short obval; } PyUShortScalarObject;
typedef struct { PyObject_HEAD unsigned int obval; } PyUIntScalarObject;
typedef struct { PyObject_HEAD unsigned long obval; } PyULongScalarObject;
typedef struct { PyObject_HEAD npy_ulonglong obval; } PyULongLongScalarObject;
typedef struct { PyObject_HEAD npy_half obval; } PyHalfScalarObject;
typedef struct { PyObject_HEAD float obval; } PyFloatScalarObject;
typedef struct { PyObject_HEAD double obval; } PyDoubleScalarObject;
typedef struct { PyObject_HEAD npy_longdouble obval; } PyLongDoubleScalarObject;
typedef struct { PyObject_HEAD npy_cfloat obval; } PyCFloatScalarObject;
typedef struct { PyObject_HEAD npy_cdouble obval; } PyCDoubleScalarObject;
typedef struct { PyObject_HEAD npy_clongdouble obval; } PyCLongDoubleScalarObject;
typedef struct { PyObject_HEAD PyObject * obval; } PyObjectScalarObject;
typedef struct { PyObject_HEAD npy_datetime obval; PyArray_DatetimeMetaData obmeta; } PyDatetimeScalarObject;
typedef struct { PyObject_HEAD npy_timedelta obval; PyArray_DatetimeMetaData obmeta; } PyTimedeltaScalarObject;
typedef struct { PyObject_HEAD char obval; } PyScalarObject;
#define PyStringScalarObject PyBytesObject typedef struct { /* note that the PyObject_HEAD macro lives right here */ PyUnicodeObject base; Py_UCS4 *obval; #if NPY_FEATURE_VERSION >= NPY_1_20_API_VERSION char *buffer_fmt; #endif } PyUnicodeScalarObject;
typedef struct { PyObject_VAR_HEAD char *obval; PyArray_Descr *descr; int flags; PyObject *base; #if NPY_FEATURE_VERSION >= NPY_1_20_API_VERSION void *_buffer_info; /* private buffer info, tagged to allow warning */ #endif } PyVoidScalarObject;
/* Macros Py<Cls><bitsize>ScalarObject Py<Cls><bitsize>ArrType_Type are defined in ndarrayobject.h */
#define PyArrayScalar_False ((PyObject *)(&(_PyArrayScalar_BoolValues[0]))) #define PyArrayScalar_True ((PyObject *)(&(_PyArrayScalar_BoolValues[1]))) #define PyArrayScalar_FromLong(i) \ ((PyObject *)(&(_PyArrayScalar_BoolValues[((i)!=0)]))) #define PyArrayScalar_RETURN_BOOL_FROM_LONG(i) \ return Py_INCREF(PyArrayScalar_FromLong(i)), \ PyArrayScalar_FromLong(i) #define PyArrayScalar_RETURN_FALSE \ return Py_INCREF(PyArrayScalar_False), \ PyArrayScalar_False #define PyArrayScalar_RETURN_TRUE \ return Py_INCREF(PyArrayScalar_True), \ PyArrayScalar_True
#define PyArrayScalar_New(cls) \ Py##cls##ArrType_Type.tp_alloc(&Py##cls##ArrType_Type, 0) #define PyArrayScalar_VAL(obj, cls) \ ((Py##cls##ScalarObject *)obj)->obval #define PyArrayScalar_ASSIGN(obj, cls, val) \ PyArrayScalar_VAL(obj, cls) = val
#endif /* NUMPY_CORE_INCLUDE_NUMPY_ARRAYSCALARS_H_ */
|