__multiarray_api.h
1 2 #if defined(_MULTIARRAYMODULE) || defined(WITH_CPYCHECKER_STEALS_REFERENCE_TO_ARG_ATTRIBUTE) 3 4 typedef struct { 5 PyObject_HEAD 6 npy_bool obval; 7 } PyBoolScalarObject; 8 9 extern NPY_NO_EXPORT PyTypeObject PyArrayMapIter_Type; 10 extern NPY_NO_EXPORT PyTypeObject PyArrayNeighborhoodIter_Type; 11 extern NPY_NO_EXPORT PyBoolScalarObject _PyArrayScalar_BoolValues[2]; 12 13 NPY_NO_EXPORT unsigned int PyArray_GetNDArrayCVersion \ 14 (void); 15 extern NPY_NO_EXPORT PyTypeObject PyBigArray_Type; 16 17 extern NPY_NO_EXPORT PyTypeObject PyArray_Type; 18 19 extern NPY_NO_EXPORT PyArray_DTypeMeta PyArrayDescr_TypeFull; 20 #define PyArrayDescr_Type (*(PyTypeObject *)(&PyArrayDescr_TypeFull)) 21 22 extern NPY_NO_EXPORT PyTypeObject PyArrayFlags_Type; 23 24 extern NPY_NO_EXPORT PyTypeObject PyArrayIter_Type; 25 26 extern NPY_NO_EXPORT PyTypeObject PyArrayMultiIter_Type; 27 28 extern NPY_NO_EXPORT int NPY_NUMUSERTYPES; 29 30 extern NPY_NO_EXPORT PyTypeObject PyBoolArrType_Type; 31 32 extern NPY_NO_EXPORT PyBoolScalarObject _PyArrayScalar_BoolValues[2]; 33 34 extern NPY_NO_EXPORT PyTypeObject PyGenericArrType_Type; 35 36 extern NPY_NO_EXPORT PyTypeObject PyNumberArrType_Type; 37 38 extern NPY_NO_EXPORT PyTypeObject PyIntegerArrType_Type; 39 40 extern NPY_NO_EXPORT PyTypeObject PySignedIntegerArrType_Type; 41 42 extern NPY_NO_EXPORT PyTypeObject PyUnsignedIntegerArrType_Type; 43 44 extern NPY_NO_EXPORT PyTypeObject PyInexactArrType_Type; 45 46 extern NPY_NO_EXPORT PyTypeObject PyFloatingArrType_Type; 47 48 extern NPY_NO_EXPORT PyTypeObject PyComplexFloatingArrType_Type; 49 50 extern NPY_NO_EXPORT PyTypeObject PyFlexibleArrType_Type; 51 52 extern NPY_NO_EXPORT PyTypeObject PyCharacterArrType_Type; 53 54 extern NPY_NO_EXPORT PyTypeObject PyByteArrType_Type; 55 56 extern NPY_NO_EXPORT PyTypeObject PyShortArrType_Type; 57 58 extern NPY_NO_EXPORT PyTypeObject PyIntArrType_Type; 59 60 extern NPY_NO_EXPORT PyTypeObject PyLongArrType_Type; 61 62 extern NPY_NO_EXPORT PyTypeObject PyLongLongArrType_Type; 63 64 extern NPY_NO_EXPORT PyTypeObject PyUByteArrType_Type; 65 66 extern NPY_NO_EXPORT PyTypeObject PyUShortArrType_Type; 67 68 extern NPY_NO_EXPORT PyTypeObject PyUIntArrType_Type; 69 70 extern NPY_NO_EXPORT PyTypeObject PyULongArrType_Type; 71 72 extern NPY_NO_EXPORT PyTypeObject PyULongLongArrType_Type; 73 74 extern NPY_NO_EXPORT PyTypeObject PyFloatArrType_Type; 75 76 extern NPY_NO_EXPORT PyTypeObject PyDoubleArrType_Type; 77 78 extern NPY_NO_EXPORT PyTypeObject PyLongDoubleArrType_Type; 79 80 extern NPY_NO_EXPORT PyTypeObject PyCFloatArrType_Type; 81 82 extern NPY_NO_EXPORT PyTypeObject PyCDoubleArrType_Type; 83 84 extern NPY_NO_EXPORT PyTypeObject PyCLongDoubleArrType_Type; 85 86 extern NPY_NO_EXPORT PyTypeObject PyObjectArrType_Type; 87 88 extern NPY_NO_EXPORT PyTypeObject PyStringArrType_Type; 89 90 extern NPY_NO_EXPORT PyTypeObject PyUnicodeArrType_Type; 91 92 extern NPY_NO_EXPORT PyTypeObject PyVoidArrType_Type; 93 94 NPY_NO_EXPORT int PyArray_SetNumericOps \ 95 (PyObject *); 96 NPY_NO_EXPORT PyObject * PyArray_GetNumericOps \ 97 (void); 98 NPY_NO_EXPORT int PyArray_INCREF \ 99 (PyArrayObject *); 100 NPY_NO_EXPORT int PyArray_XDECREF \ 101 (PyArrayObject *); 102 NPY_NO_EXPORT void PyArray_SetStringFunction \ 103 (PyObject *, int); 104 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrFromType \ 105 (int); 106 NPY_NO_EXPORT PyObject * PyArray_TypeObjectFromType \ 107 (int); 108 NPY_NO_EXPORT char * PyArray_Zero \ 109 (PyArrayObject *); 110 NPY_NO_EXPORT char * PyArray_One \ 111 (PyArrayObject *); 112 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_CastToType \ 113 (PyArrayObject *, PyArray_Descr *, int); 114 NPY_NO_EXPORT int PyArray_CastTo \ 115 (PyArrayObject *, PyArrayObject *); 116 NPY_NO_EXPORT int PyArray_CastAnyTo \ 117 (PyArrayObject *, PyArrayObject *); 118 NPY_NO_EXPORT int PyArray_CanCastSafely \ 119 (int, int); 120 NPY_NO_EXPORT npy_bool PyArray_CanCastTo \ 121 (PyArray_Descr *, PyArray_Descr *); 122 NPY_NO_EXPORT int PyArray_ObjectType \ 123 (PyObject *, int); 124 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrFromObject \ 125 (PyObject *, PyArray_Descr *); 126 NPY_NO_EXPORT PyArrayObject ** PyArray_ConvertToCommonType \ 127 (PyObject *, int *); 128 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrFromScalar \ 129 (PyObject *); 130 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrFromTypeObject \ 131 (PyObject *); 132 NPY_NO_EXPORT npy_intp PyArray_Size \ 133 (PyObject *); 134 NPY_NO_EXPORT PyObject * PyArray_Scalar \ 135 (void *, PyArray_Descr *, PyObject *); 136 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_FromScalar \ 137 (PyObject *, PyArray_Descr *); 138 NPY_NO_EXPORT void PyArray_ScalarAsCtype \ 139 (PyObject *, void *); 140 NPY_NO_EXPORT int PyArray_CastScalarToCtype \ 141 (PyObject *, void *, PyArray_Descr *); 142 NPY_NO_EXPORT int PyArray_CastScalarDirect \ 143 (PyObject *, PyArray_Descr *, void *, int); 144 NPY_NO_EXPORT PyObject * PyArray_ScalarFromObject \ 145 (PyObject *); 146 NPY_NO_EXPORT PyArray_VectorUnaryFunc * PyArray_GetCastFunc \ 147 (PyArray_Descr *, int); 148 NPY_NO_EXPORT PyObject * PyArray_FromDims \ 149 (int NPY_UNUSED(nd), int *NPY_UNUSED(d), int NPY_UNUSED(type)); 150 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(3) PyObject * PyArray_FromDimsAndDataAndDescr \ 151 (int NPY_UNUSED(nd), int *NPY_UNUSED(d), PyArray_Descr *, char *NPY_UNUSED(data)); 152 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_FromAny \ 153 (PyObject *, PyArray_Descr *, int, int, int, PyObject *); 154 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(1) PyObject * PyArray_EnsureArray \ 155 (PyObject *); 156 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(1) PyObject * PyArray_EnsureAnyArray \ 157 (PyObject *); 158 NPY_NO_EXPORT PyObject * PyArray_FromFile \ 159 (FILE *, PyArray_Descr *, npy_intp, char *); 160 NPY_NO_EXPORT PyObject * PyArray_FromString \ 161 (char *, npy_intp, PyArray_Descr *, npy_intp, char *); 162 NPY_NO_EXPORT PyObject * PyArray_FromBuffer \ 163 (PyObject *, PyArray_Descr *, npy_intp, npy_intp); 164 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_FromIter \ 165 (PyObject *, PyArray_Descr *, npy_intp); 166 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(1) PyObject * PyArray_Return \ 167 (PyArrayObject *); 168 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_GetField \ 169 (PyArrayObject *, PyArray_Descr *, int); 170 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) int PyArray_SetField \ 171 (PyArrayObject *, PyArray_Descr *, int, PyObject *); 172 NPY_NO_EXPORT PyObject * PyArray_Byteswap \ 173 (PyArrayObject *, npy_bool); 174 NPY_NO_EXPORT PyObject * PyArray_Resize \ 175 (PyArrayObject *, PyArray_Dims *, int, NPY_ORDER NPY_UNUSED(order)); 176 NPY_NO_EXPORT int PyArray_MoveInto \ 177 (PyArrayObject *, PyArrayObject *); 178 NPY_NO_EXPORT int PyArray_CopyInto \ 179 (PyArrayObject *, PyArrayObject *); 180 NPY_NO_EXPORT int PyArray_CopyAnyInto \ 181 (PyArrayObject *, PyArrayObject *); 182 NPY_NO_EXPORT int PyArray_CopyObject \ 183 (PyArrayObject *, PyObject *); 184 NPY_NO_EXPORT PyObject * PyArray_NewCopy \ 185 (PyArrayObject *, NPY_ORDER); 186 NPY_NO_EXPORT PyObject * PyArray_ToList \ 187 (PyArrayObject *); 188 NPY_NO_EXPORT PyObject * PyArray_ToString \ 189 (PyArrayObject *, NPY_ORDER); 190 NPY_NO_EXPORT int PyArray_ToFile \ 191 (PyArrayObject *, FILE *, char *, char *); 192 NPY_NO_EXPORT int PyArray_Dump \ 193 (PyObject *, PyObject *, int); 194 NPY_NO_EXPORT PyObject * PyArray_Dumps \ 195 (PyObject *, int); 196 NPY_NO_EXPORT int PyArray_ValidType \ 197 (int); 198 NPY_NO_EXPORT void PyArray_UpdateFlags \ 199 (PyArrayObject *, int); 200 NPY_NO_EXPORT PyObject * PyArray_New \ 201 (PyTypeObject *, int, npy_intp const *, int, npy_intp const *, void *, int, int, PyObject *); 202 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_NewFromDescr \ 203 (PyTypeObject *, PyArray_Descr *, int, npy_intp const *, npy_intp const *, void *, int, PyObject *); 204 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrNew \ 205 (PyArray_Descr *); 206 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrNewFromType \ 207 (int); 208 NPY_NO_EXPORT double PyArray_GetPriority \ 209 (PyObject *, double); 210 NPY_NO_EXPORT PyObject * PyArray_IterNew \ 211 (PyObject *); 212 NPY_NO_EXPORT PyObject* PyArray_MultiIterNew \ 213 (int, ...); 214 NPY_NO_EXPORT int PyArray_PyIntAsInt \ 215 (PyObject *); 216 NPY_NO_EXPORT npy_intp PyArray_PyIntAsIntp \ 217 (PyObject *); 218 NPY_NO_EXPORT int PyArray_Broadcast \ 219 (PyArrayMultiIterObject *); 220 NPY_NO_EXPORT void PyArray_FillObjectArray \ 221 (PyArrayObject *, PyObject *); 222 NPY_NO_EXPORT int PyArray_FillWithScalar \ 223 (PyArrayObject *, PyObject *); 224 NPY_NO_EXPORT npy_bool PyArray_CheckStrides \ 225 (int, int, npy_intp, npy_intp, npy_intp const *, npy_intp const *); 226 NPY_NO_EXPORT PyArray_Descr * PyArray_DescrNewByteorder \ 227 (PyArray_Descr *, char); 228 NPY_NO_EXPORT PyObject * PyArray_IterAllButAxis \ 229 (PyObject *, int *); 230 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_CheckFromAny \ 231 (PyObject *, PyArray_Descr *, int, int, int, PyObject *); 232 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_FromArray \ 233 (PyArrayObject *, PyArray_Descr *, int); 234 NPY_NO_EXPORT PyObject * PyArray_FromInterface \ 235 (PyObject *); 236 NPY_NO_EXPORT PyObject * PyArray_FromStructInterface \ 237 (PyObject *); 238 NPY_NO_EXPORT PyObject * PyArray_FromArrayAttr \ 239 (PyObject *, PyArray_Descr *, PyObject *); 240 NPY_NO_EXPORT NPY_SCALARKIND PyArray_ScalarKind \ 241 (int, PyArrayObject **); 242 NPY_NO_EXPORT int PyArray_CanCoerceScalar \ 243 (int, int, NPY_SCALARKIND); 244 NPY_NO_EXPORT PyObject * PyArray_NewFlagsObject \ 245 (PyObject *); 246 NPY_NO_EXPORT npy_bool PyArray_CanCastScalar \ 247 (PyTypeObject *, PyTypeObject *); 248 NPY_NO_EXPORT int PyArray_CompareUCS4 \ 249 (npy_ucs4 const *, npy_ucs4 const *, size_t); 250 NPY_NO_EXPORT int PyArray_RemoveSmallest \ 251 (PyArrayMultiIterObject *); 252 NPY_NO_EXPORT int PyArray_ElementStrides \ 253 (PyObject *); 254 NPY_NO_EXPORT void PyArray_Item_INCREF \ 255 (char *, PyArray_Descr *); 256 NPY_NO_EXPORT void PyArray_Item_XDECREF \ 257 (char *, PyArray_Descr *); 258 NPY_NO_EXPORT PyObject * PyArray_FieldNames \ 259 (PyObject *); 260 NPY_NO_EXPORT PyObject * PyArray_Transpose \ 261 (PyArrayObject *, PyArray_Dims *); 262 NPY_NO_EXPORT PyObject * PyArray_TakeFrom \ 263 (PyArrayObject *, PyObject *, int, PyArrayObject *, NPY_CLIPMODE); 264 NPY_NO_EXPORT PyObject * PyArray_PutTo \ 265 (PyArrayObject *, PyObject*, PyObject *, NPY_CLIPMODE); 266 NPY_NO_EXPORT PyObject * PyArray_PutMask \ 267 (PyArrayObject *, PyObject*, PyObject*); 268 NPY_NO_EXPORT PyObject * PyArray_Repeat \ 269 (PyArrayObject *, PyObject *, int); 270 NPY_NO_EXPORT PyObject * PyArray_Choose \ 271 (PyArrayObject *, PyObject *, PyArrayObject *, NPY_CLIPMODE); 272 NPY_NO_EXPORT int PyArray_Sort \ 273 (PyArrayObject *, int, NPY_SORTKIND); 274 NPY_NO_EXPORT PyObject * PyArray_ArgSort \ 275 (PyArrayObject *, int, NPY_SORTKIND); 276 NPY_NO_EXPORT PyObject * PyArray_SearchSorted \ 277 (PyArrayObject *, PyObject *, NPY_SEARCHSIDE, PyObject *); 278 NPY_NO_EXPORT PyObject * PyArray_ArgMax \ 279 (PyArrayObject *, int, PyArrayObject *); 280 NPY_NO_EXPORT PyObject * PyArray_ArgMin \ 281 (PyArrayObject *, int, PyArrayObject *); 282 NPY_NO_EXPORT PyObject * PyArray_Reshape \ 283 (PyArrayObject *, PyObject *); 284 NPY_NO_EXPORT PyObject * PyArray_Newshape \ 285 (PyArrayObject *, PyArray_Dims *, NPY_ORDER); 286 NPY_NO_EXPORT PyObject * PyArray_Squeeze \ 287 (PyArrayObject *); 288 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) PyObject * PyArray_View \ 289 (PyArrayObject *, PyArray_Descr *, PyTypeObject *); 290 NPY_NO_EXPORT PyObject * PyArray_SwapAxes \ 291 (PyArrayObject *, int, int); 292 NPY_NO_EXPORT PyObject * PyArray_Max \ 293 (PyArrayObject *, int, PyArrayObject *); 294 NPY_NO_EXPORT PyObject * PyArray_Min \ 295 (PyArrayObject *, int, PyArrayObject *); 296 NPY_NO_EXPORT PyObject * PyArray_Ptp \ 297 (PyArrayObject *, int, PyArrayObject *); 298 NPY_NO_EXPORT PyObject * PyArray_Mean \ 299 (PyArrayObject *, int, int, PyArrayObject *); 300 NPY_NO_EXPORT PyObject * PyArray_Trace \ 301 (PyArrayObject *, int, int, int, int, PyArrayObject *); 302 NPY_NO_EXPORT PyObject * PyArray_Diagonal \ 303 (PyArrayObject *, int, int, int); 304 NPY_NO_EXPORT PyObject * PyArray_Clip \ 305 (PyArrayObject *, PyObject *, PyObject *, PyArrayObject *); 306 NPY_NO_EXPORT PyObject * PyArray_Conjugate \ 307 (PyArrayObject *, PyArrayObject *); 308 NPY_NO_EXPORT PyObject * PyArray_Nonzero \ 309 (PyArrayObject *); 310 NPY_NO_EXPORT PyObject * PyArray_Std \ 311 (PyArrayObject *, int, int, PyArrayObject *, int); 312 NPY_NO_EXPORT PyObject * PyArray_Sum \ 313 (PyArrayObject *, int, int, PyArrayObject *); 314 NPY_NO_EXPORT PyObject * PyArray_CumSum \ 315 (PyArrayObject *, int, int, PyArrayObject *); 316 NPY_NO_EXPORT PyObject * PyArray_Prod \ 317 (PyArrayObject *, int, int, PyArrayObject *); 318 NPY_NO_EXPORT PyObject * PyArray_CumProd \ 319 (PyArrayObject *, int, int, PyArrayObject *); 320 NPY_NO_EXPORT PyObject * PyArray_All \ 321 (PyArrayObject *, int, PyArrayObject *); 322 NPY_NO_EXPORT PyObject * PyArray_Any \ 323 (PyArrayObject *, int, PyArrayObject *); 324 NPY_NO_EXPORT PyObject * PyArray_Compress \ 325 (PyArrayObject *, PyObject *, int, PyArrayObject *); 326 NPY_NO_EXPORT PyObject * PyArray_Flatten \ 327 (PyArrayObject *, NPY_ORDER); 328 NPY_NO_EXPORT PyObject * PyArray_Ravel \ 329 (PyArrayObject *, NPY_ORDER); 330 NPY_NO_EXPORT npy_intp PyArray_MultiplyList \ 331 (npy_intp const *, int); 332 NPY_NO_EXPORT int PyArray_MultiplyIntList \ 333 (int const *, int); 334 NPY_NO_EXPORT void * PyArray_GetPtr \ 335 (PyArrayObject *, npy_intp const*); 336 NPY_NO_EXPORT int PyArray_CompareLists \ 337 (npy_intp const *, npy_intp const *, int); 338 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(5) int PyArray_AsCArray \ 339 (PyObject **, void *, npy_intp *, int, PyArray_Descr*); 340 NPY_NO_EXPORT int PyArray_As1D \ 341 (PyObject **NPY_UNUSED(op), char **NPY_UNUSED(ptr), int *NPY_UNUSED(d1), int NPY_UNUSED(typecode)); 342 NPY_NO_EXPORT int PyArray_As2D \ 343 (PyObject **NPY_UNUSED(op), char ***NPY_UNUSED(ptr), int *NPY_UNUSED(d1), int *NPY_UNUSED(d2), int NPY_UNUSED(typecode)); 344 NPY_NO_EXPORT int PyArray_Free \ 345 (PyObject *, void *); 346 NPY_NO_EXPORT int PyArray_Converter \ 347 (PyObject *, PyObject **); 348 NPY_NO_EXPORT int PyArray_IntpFromSequence \ 349 (PyObject *, npy_intp *, int); 350 NPY_NO_EXPORT PyObject * PyArray_Concatenate \ 351 (PyObject *, int); 352 NPY_NO_EXPORT PyObject * PyArray_InnerProduct \ 353 (PyObject *, PyObject *); 354 NPY_NO_EXPORT PyObject * PyArray_MatrixProduct \ 355 (PyObject *, PyObject *); 356 NPY_NO_EXPORT PyObject * PyArray_CopyAndTranspose \ 357 (PyObject *); 358 NPY_NO_EXPORT PyObject * PyArray_Correlate \ 359 (PyObject *, PyObject *, int); 360 NPY_NO_EXPORT int PyArray_TypestrConvert \ 361 (int, int); 362 NPY_NO_EXPORT int PyArray_DescrConverter \ 363 (PyObject *, PyArray_Descr **); 364 NPY_NO_EXPORT int PyArray_DescrConverter2 \ 365 (PyObject *, PyArray_Descr **); 366 NPY_NO_EXPORT int PyArray_IntpConverter \ 367 (PyObject *, PyArray_Dims *); 368 NPY_NO_EXPORT int PyArray_BufferConverter \ 369 (PyObject *, PyArray_Chunk *); 370 NPY_NO_EXPORT int PyArray_AxisConverter \ 371 (PyObject *, int *); 372 NPY_NO_EXPORT int PyArray_BoolConverter \ 373 (PyObject *, npy_bool *); 374 NPY_NO_EXPORT int PyArray_ByteorderConverter \ 375 (PyObject *, char *); 376 NPY_NO_EXPORT int PyArray_OrderConverter \ 377 (PyObject *, NPY_ORDER *); 378 NPY_NO_EXPORT unsigned char PyArray_EquivTypes \ 379 (PyArray_Descr *, PyArray_Descr *); 380 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(3) PyObject * PyArray_Zeros \ 381 (int, npy_intp const *, PyArray_Descr *, int); 382 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(3) PyObject * PyArray_Empty \ 383 (int, npy_intp const *, PyArray_Descr *, int); 384 NPY_NO_EXPORT PyObject * PyArray_Where \ 385 (PyObject *, PyObject *, PyObject *); 386 NPY_NO_EXPORT PyObject * PyArray_Arange \ 387 (double, double, double, int); 388 NPY_NO_EXPORT PyObject * PyArray_ArangeObj \ 389 (PyObject *, PyObject *, PyObject *, PyArray_Descr *); 390 NPY_NO_EXPORT int PyArray_SortkindConverter \ 391 (PyObject *, NPY_SORTKIND *); 392 NPY_NO_EXPORT PyObject * PyArray_LexSort \ 393 (PyObject *, int); 394 NPY_NO_EXPORT PyObject * PyArray_Round \ 395 (PyArrayObject *, int, PyArrayObject *); 396 NPY_NO_EXPORT unsigned char PyArray_EquivTypenums \ 397 (int, int); 398 NPY_NO_EXPORT int PyArray_RegisterDataType \ 399 (PyArray_Descr *); 400 NPY_NO_EXPORT int PyArray_RegisterCastFunc \ 401 (PyArray_Descr *, int, PyArray_VectorUnaryFunc *); 402 NPY_NO_EXPORT int PyArray_RegisterCanCast \ 403 (PyArray_Descr *, int, NPY_SCALARKIND); 404 NPY_NO_EXPORT void PyArray_InitArrFuncs \ 405 (PyArray_ArrFuncs *); 406 NPY_NO_EXPORT PyObject * PyArray_IntTupleFromIntp \ 407 (int, npy_intp const *); 408 NPY_NO_EXPORT int PyArray_TypeNumFromName \ 409 (char const *); 410 NPY_NO_EXPORT int PyArray_ClipmodeConverter \ 411 (PyObject *, NPY_CLIPMODE *); 412 NPY_NO_EXPORT int PyArray_OutputConverter \ 413 (PyObject *, PyArrayObject **); 414 NPY_NO_EXPORT PyObject * PyArray_BroadcastToShape \ 415 (PyObject *, npy_intp *, int); 416 NPY_NO_EXPORT void _PyArray_SigintHandler \ 417 (int); 418 NPY_NO_EXPORT void* _PyArray_GetSigintBuf \ 419 (void); 420 NPY_NO_EXPORT int PyArray_DescrAlignConverter \ 421 (PyObject *, PyArray_Descr **); 422 NPY_NO_EXPORT int PyArray_DescrAlignConverter2 \ 423 (PyObject *, PyArray_Descr **); 424 NPY_NO_EXPORT int PyArray_SearchsideConverter \ 425 (PyObject *, void *); 426 NPY_NO_EXPORT PyObject * PyArray_CheckAxis \ 427 (PyArrayObject *, int *, int); 428 NPY_NO_EXPORT npy_intp PyArray_OverflowMultiplyList \ 429 (npy_intp const *, int); 430 NPY_NO_EXPORT int PyArray_CompareString \ 431 (const char *, const char *, size_t); 432 NPY_NO_EXPORT PyObject* PyArray_MultiIterFromObjects \ 433 (PyObject **, int, int, ...); 434 NPY_NO_EXPORT int PyArray_GetEndianness \ 435 (void); 436 NPY_NO_EXPORT unsigned int PyArray_GetNDArrayCFeatureVersion \ 437 (void); 438 NPY_NO_EXPORT PyObject * PyArray_Correlate2 \ 439 (PyObject *, PyObject *, int); 440 NPY_NO_EXPORT PyObject* PyArray_NeighborhoodIterNew \ 441 (PyArrayIterObject *, const npy_intp *, int, PyArrayObject*); 442 extern NPY_NO_EXPORT PyTypeObject PyTimeIntegerArrType_Type; 443 444 extern NPY_NO_EXPORT PyTypeObject PyDatetimeArrType_Type; 445 446 extern NPY_NO_EXPORT PyTypeObject PyTimedeltaArrType_Type; 447 448 extern NPY_NO_EXPORT PyTypeObject PyHalfArrType_Type; 449 450 extern NPY_NO_EXPORT PyTypeObject NpyIter_Type; 451 452 NPY_NO_EXPORT void PyArray_SetDatetimeParseFunction \ 453 (PyObject *NPY_UNUSED(op)); 454 NPY_NO_EXPORT void PyArray_DatetimeToDatetimeStruct \ 455 (npy_datetime NPY_UNUSED(val), NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_datetimestruct *); 456 NPY_NO_EXPORT void PyArray_TimedeltaToTimedeltaStruct \ 457 (npy_timedelta NPY_UNUSED(val), NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_timedeltastruct *); 458 NPY_NO_EXPORT npy_datetime PyArray_DatetimeStructToDatetime \ 459 (NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_datetimestruct *NPY_UNUSED(d)); 460 NPY_NO_EXPORT npy_datetime PyArray_TimedeltaStructToTimedelta \ 461 (NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_timedeltastruct *NPY_UNUSED(d)); 462 NPY_NO_EXPORT NpyIter * NpyIter_New \ 463 (PyArrayObject *, npy_uint32, NPY_ORDER, NPY_CASTING, PyArray_Descr*); 464 NPY_NO_EXPORT NpyIter * NpyIter_MultiNew \ 465 (int, PyArrayObject **, npy_uint32, NPY_ORDER, NPY_CASTING, npy_uint32 *, PyArray_Descr **); 466 NPY_NO_EXPORT NpyIter * NpyIter_AdvancedNew \ 467 (int, PyArrayObject **, npy_uint32, NPY_ORDER, NPY_CASTING, npy_uint32 *, PyArray_Descr **, int, int **, npy_intp *, npy_intp); 468 NPY_NO_EXPORT NpyIter * NpyIter_Copy \ 469 (NpyIter *); 470 NPY_NO_EXPORT int NpyIter_Deallocate \ 471 (NpyIter *); 472 NPY_NO_EXPORT npy_bool NpyIter_HasDelayedBufAlloc \ 473 (NpyIter *); 474 NPY_NO_EXPORT npy_bool NpyIter_HasExternalLoop \ 475 (NpyIter *); 476 NPY_NO_EXPORT int NpyIter_EnableExternalLoop \ 477 (NpyIter *); 478 NPY_NO_EXPORT npy_intp * NpyIter_GetInnerStrideArray \ 479 (NpyIter *); 480 NPY_NO_EXPORT npy_intp * NpyIter_GetInnerLoopSizePtr \ 481 (NpyIter *); 482 NPY_NO_EXPORT int NpyIter_Reset \ 483 (NpyIter *, char **); 484 NPY_NO_EXPORT int NpyIter_ResetBasePointers \ 485 (NpyIter *, char **, char **); 486 NPY_NO_EXPORT int NpyIter_ResetToIterIndexRange \ 487 (NpyIter *, npy_intp, npy_intp, char **); 488 NPY_NO_EXPORT int NpyIter_GetNDim \ 489 (NpyIter *); 490 NPY_NO_EXPORT int NpyIter_GetNOp \ 491 (NpyIter *); 492 NPY_NO_EXPORT NpyIter_IterNextFunc * NpyIter_GetIterNext \ 493 (NpyIter *, char **); 494 NPY_NO_EXPORT npy_intp NpyIter_GetIterSize \ 495 (NpyIter *); 496 NPY_NO_EXPORT void NpyIter_GetIterIndexRange \ 497 (NpyIter *, npy_intp *, npy_intp *); 498 NPY_NO_EXPORT npy_intp NpyIter_GetIterIndex \ 499 (NpyIter *); 500 NPY_NO_EXPORT int NpyIter_GotoIterIndex \ 501 (NpyIter *, npy_intp); 502 NPY_NO_EXPORT npy_bool NpyIter_HasMultiIndex \ 503 (NpyIter *); 504 NPY_NO_EXPORT int NpyIter_GetShape \ 505 (NpyIter *, npy_intp *); 506 NPY_NO_EXPORT NpyIter_GetMultiIndexFunc * NpyIter_GetGetMultiIndex \ 507 (NpyIter *, char **); 508 NPY_NO_EXPORT int NpyIter_GotoMultiIndex \ 509 (NpyIter *, npy_intp const *); 510 NPY_NO_EXPORT int NpyIter_RemoveMultiIndex \ 511 (NpyIter *); 512 NPY_NO_EXPORT npy_bool NpyIter_HasIndex \ 513 (NpyIter *); 514 NPY_NO_EXPORT npy_bool NpyIter_IsBuffered \ 515 (NpyIter *); 516 NPY_NO_EXPORT npy_bool NpyIter_IsGrowInner \ 517 (NpyIter *); 518 NPY_NO_EXPORT npy_intp NpyIter_GetBufferSize \ 519 (NpyIter *); 520 NPY_NO_EXPORT npy_intp * NpyIter_GetIndexPtr \ 521 (NpyIter *); 522 NPY_NO_EXPORT int NpyIter_GotoIndex \ 523 (NpyIter *, npy_intp); 524 NPY_NO_EXPORT char ** NpyIter_GetDataPtrArray \ 525 (NpyIter *); 526 NPY_NO_EXPORT PyArray_Descr ** NpyIter_GetDescrArray \ 527 (NpyIter *); 528 NPY_NO_EXPORT PyArrayObject ** NpyIter_GetOperandArray \ 529 (NpyIter *); 530 NPY_NO_EXPORT PyArrayObject * NpyIter_GetIterView \ 531 (NpyIter *, npy_intp); 532 NPY_NO_EXPORT void NpyIter_GetReadFlags \ 533 (NpyIter *, char *); 534 NPY_NO_EXPORT void NpyIter_GetWriteFlags \ 535 (NpyIter *, char *); 536 NPY_NO_EXPORT void NpyIter_DebugPrint \ 537 (NpyIter *); 538 NPY_NO_EXPORT npy_bool NpyIter_IterationNeedsAPI \ 539 (NpyIter *); 540 NPY_NO_EXPORT void NpyIter_GetInnerFixedStrideArray \ 541 (NpyIter *, npy_intp *); 542 NPY_NO_EXPORT int NpyIter_RemoveAxis \ 543 (NpyIter *, int); 544 NPY_NO_EXPORT npy_intp * NpyIter_GetAxisStrideArray \ 545 (NpyIter *, int); 546 NPY_NO_EXPORT npy_bool NpyIter_RequiresBuffering \ 547 (NpyIter *); 548 NPY_NO_EXPORT char ** NpyIter_GetInitialDataPtrArray \ 549 (NpyIter *); 550 NPY_NO_EXPORT int NpyIter_CreateCompatibleStrides \ 551 (NpyIter *, npy_intp, npy_intp *); 552 NPY_NO_EXPORT int PyArray_CastingConverter \ 553 (PyObject *, NPY_CASTING *); 554 NPY_NO_EXPORT npy_intp PyArray_CountNonzero \ 555 (PyArrayObject *); 556 NPY_NO_EXPORT PyArray_Descr * PyArray_PromoteTypes \ 557 (PyArray_Descr *, PyArray_Descr *); 558 NPY_NO_EXPORT PyArray_Descr * PyArray_MinScalarType \ 559 (PyArrayObject *); 560 NPY_NO_EXPORT PyArray_Descr * PyArray_ResultType \ 561 (npy_intp, PyArrayObject *arrs[], npy_intp, PyArray_Descr *descrs[]); 562 NPY_NO_EXPORT npy_bool PyArray_CanCastArrayTo \ 563 (PyArrayObject *, PyArray_Descr *, NPY_CASTING); 564 NPY_NO_EXPORT npy_bool PyArray_CanCastTypeTo \ 565 (PyArray_Descr *, PyArray_Descr *, NPY_CASTING); 566 NPY_NO_EXPORT PyArrayObject * PyArray_EinsteinSum \ 567 (char *, npy_intp, PyArrayObject **, PyArray_Descr *, NPY_ORDER, NPY_CASTING, PyArrayObject *); 568 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(3) PyObject * PyArray_NewLikeArray \ 569 (PyArrayObject *, NPY_ORDER, PyArray_Descr *, int); 570 NPY_NO_EXPORT int PyArray_GetArrayParamsFromObject \ 571 (PyObject *NPY_UNUSED(op), PyArray_Descr *NPY_UNUSED(requested_dtype), npy_bool NPY_UNUSED(writeable), PyArray_Descr **NPY_UNUSED(out_dtype), int *NPY_UNUSED(out_ndim), npy_intp *NPY_UNUSED(out_dims), PyArrayObject **NPY_UNUSED(out_arr), PyObject *NPY_UNUSED(context)); 572 NPY_NO_EXPORT int PyArray_ConvertClipmodeSequence \ 573 (PyObject *, NPY_CLIPMODE *, int); 574 NPY_NO_EXPORT PyObject * PyArray_MatrixProduct2 \ 575 (PyObject *, PyObject *, PyArrayObject*); 576 NPY_NO_EXPORT npy_bool NpyIter_IsFirstVisit \ 577 (NpyIter *, int); 578 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) int PyArray_SetBaseObject \ 579 (PyArrayObject *, PyObject *); 580 NPY_NO_EXPORT void PyArray_CreateSortedStridePerm \ 581 (int, npy_intp const *, npy_stride_sort_item *); 582 NPY_NO_EXPORT void PyArray_RemoveAxesInPlace \ 583 (PyArrayObject *, const npy_bool *); 584 NPY_NO_EXPORT void PyArray_DebugPrint \ 585 (PyArrayObject *); 586 NPY_NO_EXPORT int PyArray_FailUnlessWriteable \ 587 (PyArrayObject *, const char *); 588 NPY_NO_EXPORT NPY_STEALS_REF_TO_ARG(2) int PyArray_SetUpdateIfCopyBase \ 589 (PyArrayObject *, PyArrayObject *); 590 NPY_NO_EXPORT void * PyDataMem_NEW \ 591 (size_t); 592 NPY_NO_EXPORT void PyDataMem_FREE \ 593 (void *); 594 NPY_NO_EXPORT void * PyDataMem_RENEW \ 595 (void *, size_t); 596 NPY_NO_EXPORT PyDataMem_EventHookFunc * PyDataMem_SetEventHook \ 597 (PyDataMem_EventHookFunc *, void *, void **); 598 extern NPY_NO_EXPORT NPY_CASTING NPY_DEFAULT_ASSIGN_CASTING; 599 600 NPY_NO_EXPORT void PyArray_MapIterSwapAxes \ 601 (PyArrayMapIterObject *, PyArrayObject **, int); 602 NPY_NO_EXPORT PyObject * PyArray_MapIterArray \ 603 (PyArrayObject *, PyObject *); 604 NPY_NO_EXPORT void PyArray_MapIterNext \ 605 (PyArrayMapIterObject *); 606 NPY_NO_EXPORT int PyArray_Partition \ 607 (PyArrayObject *, PyArrayObject *, int, NPY_SELECTKIND); 608 NPY_NO_EXPORT PyObject * PyArray_ArgPartition \ 609 (PyArrayObject *, PyArrayObject *, int, NPY_SELECTKIND); 610 NPY_NO_EXPORT int PyArray_SelectkindConverter \ 611 (PyObject *, NPY_SELECTKIND *); 612 NPY_NO_EXPORT void * PyDataMem_NEW_ZEROED \ 613 (size_t, size_t); 614 NPY_NO_EXPORT int PyArray_CheckAnyScalarExact \ 615 (PyObject *); 616 NPY_NO_EXPORT PyObject * PyArray_MapIterArrayCopyIfOverlap \ 617 (PyArrayObject *, PyObject *, int, PyArrayObject *); 618 NPY_NO_EXPORT int PyArray_ResolveWritebackIfCopy \ 619 (PyArrayObject *); 620 NPY_NO_EXPORT int PyArray_SetWritebackIfCopyBase \ 621 (PyArrayObject *, PyArrayObject *); 622 NPY_NO_EXPORT PyObject * PyDataMem_SetHandler \ 623 (PyObject *); 624 NPY_NO_EXPORT PyObject * PyDataMem_GetHandler \ 625 (void); 626 extern NPY_NO_EXPORT PyObject* PyDataMem_DefaultHandler; 627 628 629 #else 630 631 #if defined(PY_ARRAY_UNIQUE_SYMBOL) 632 #define PyArray_API PY_ARRAY_UNIQUE_SYMBOL 633 #endif 634 635 #if defined(NO_IMPORT) || defined(NO_IMPORT_ARRAY) 636 extern void **PyArray_API; 637 #else 638 #if defined(PY_ARRAY_UNIQUE_SYMBOL) 639 void **PyArray_API; 640 #else 641 static void **PyArray_API=NULL; 642 #endif 643 #endif 644 645 #define PyArray_GetNDArrayCVersion \ 646 (*(unsigned int (*)(void)) \ 647 PyArray_API[0]) 648 #define PyBigArray_Type (*(PyTypeObject *)PyArray_API[1]) 649 #define PyArray_Type (*(PyTypeObject *)PyArray_API[2]) 650 #define PyArrayDescr_Type (*(PyTypeObject *)PyArray_API[3]) 651 #define PyArrayFlags_Type (*(PyTypeObject *)PyArray_API[4]) 652 #define PyArrayIter_Type (*(PyTypeObject *)PyArray_API[5]) 653 #define PyArrayMultiIter_Type (*(PyTypeObject *)PyArray_API[6]) 654 #define NPY_NUMUSERTYPES (*(int *)PyArray_API[7]) 655 #define PyBoolArrType_Type (*(PyTypeObject *)PyArray_API[8]) 656 #define _PyArrayScalar_BoolValues ((PyBoolScalarObject *)PyArray_API[9]) 657 #define PyGenericArrType_Type (*(PyTypeObject *)PyArray_API[10]) 658 #define PyNumberArrType_Type (*(PyTypeObject *)PyArray_API[11]) 659 #define PyIntegerArrType_Type (*(PyTypeObject *)PyArray_API[12]) 660 #define PySignedIntegerArrType_Type (*(PyTypeObject *)PyArray_API[13]) 661 #define PyUnsignedIntegerArrType_Type (*(PyTypeObject *)PyArray_API[14]) 662 #define PyInexactArrType_Type (*(PyTypeObject *)PyArray_API[15]) 663 #define PyFloatingArrType_Type (*(PyTypeObject *)PyArray_API[16]) 664 #define PyComplexFloatingArrType_Type (*(PyTypeObject *)PyArray_API[17]) 665 #define PyFlexibleArrType_Type (*(PyTypeObject *)PyArray_API[18]) 666 #define PyCharacterArrType_Type (*(PyTypeObject *)PyArray_API[19]) 667 #define PyByteArrType_Type (*(PyTypeObject *)PyArray_API[20]) 668 #define PyShortArrType_Type (*(PyTypeObject *)PyArray_API[21]) 669 #define PyIntArrType_Type (*(PyTypeObject *)PyArray_API[22]) 670 #define PyLongArrType_Type (*(PyTypeObject *)PyArray_API[23]) 671 #define PyLongLongArrType_Type (*(PyTypeObject *)PyArray_API[24]) 672 #define PyUByteArrType_Type (*(PyTypeObject *)PyArray_API[25]) 673 #define PyUShortArrType_Type (*(PyTypeObject *)PyArray_API[26]) 674 #define PyUIntArrType_Type (*(PyTypeObject *)PyArray_API[27]) 675 #define PyULongArrType_Type (*(PyTypeObject *)PyArray_API[28]) 676 #define PyULongLongArrType_Type (*(PyTypeObject *)PyArray_API[29]) 677 #define PyFloatArrType_Type (*(PyTypeObject *)PyArray_API[30]) 678 #define PyDoubleArrType_Type (*(PyTypeObject *)PyArray_API[31]) 679 #define PyLongDoubleArrType_Type (*(PyTypeObject *)PyArray_API[32]) 680 #define PyCFloatArrType_Type (*(PyTypeObject *)PyArray_API[33]) 681 #define PyCDoubleArrType_Type (*(PyTypeObject *)PyArray_API[34]) 682 #define PyCLongDoubleArrType_Type (*(PyTypeObject *)PyArray_API[35]) 683 #define PyObjectArrType_Type (*(PyTypeObject *)PyArray_API[36]) 684 #define PyStringArrType_Type (*(PyTypeObject *)PyArray_API[37]) 685 #define PyUnicodeArrType_Type (*(PyTypeObject *)PyArray_API[38]) 686 #define PyVoidArrType_Type (*(PyTypeObject *)PyArray_API[39]) 687 #define PyArray_SetNumericOps \ 688 (*(int (*)(PyObject *)) \ 689 PyArray_API[40]) 690 #define PyArray_GetNumericOps \ 691 (*(PyObject * (*)(void)) \ 692 PyArray_API[41]) 693 #define PyArray_INCREF \ 694 (*(int (*)(PyArrayObject *)) \ 695 PyArray_API[42]) 696 #define PyArray_XDECREF \ 697 (*(int (*)(PyArrayObject *)) \ 698 PyArray_API[43]) 699 #define PyArray_SetStringFunction \ 700 (*(void (*)(PyObject *, int)) \ 701 PyArray_API[44]) 702 #define PyArray_DescrFromType \ 703 (*(PyArray_Descr * (*)(int)) \ 704 PyArray_API[45]) 705 #define PyArray_TypeObjectFromType \ 706 (*(PyObject * (*)(int)) \ 707 PyArray_API[46]) 708 #define PyArray_Zero \ 709 (*(char * (*)(PyArrayObject *)) \ 710 PyArray_API[47]) 711 #define PyArray_One \ 712 (*(char * (*)(PyArrayObject *)) \ 713 PyArray_API[48]) 714 #define PyArray_CastToType \ 715 (*(PyObject * (*)(PyArrayObject *, PyArray_Descr *, int)) \ 716 PyArray_API[49]) 717 #define PyArray_CastTo \ 718 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 719 PyArray_API[50]) 720 #define PyArray_CastAnyTo \ 721 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 722 PyArray_API[51]) 723 #define PyArray_CanCastSafely \ 724 (*(int (*)(int, int)) \ 725 PyArray_API[52]) 726 #define PyArray_CanCastTo \ 727 (*(npy_bool (*)(PyArray_Descr *, PyArray_Descr *)) \ 728 PyArray_API[53]) 729 #define PyArray_ObjectType \ 730 (*(int (*)(PyObject *, int)) \ 731 PyArray_API[54]) 732 #define PyArray_DescrFromObject \ 733 (*(PyArray_Descr * (*)(PyObject *, PyArray_Descr *)) \ 734 PyArray_API[55]) 735 #define PyArray_ConvertToCommonType \ 736 (*(PyArrayObject ** (*)(PyObject *, int *)) \ 737 PyArray_API[56]) 738 #define PyArray_DescrFromScalar \ 739 (*(PyArray_Descr * (*)(PyObject *)) \ 740 PyArray_API[57]) 741 #define PyArray_DescrFromTypeObject \ 742 (*(PyArray_Descr * (*)(PyObject *)) \ 743 PyArray_API[58]) 744 #define PyArray_Size \ 745 (*(npy_intp (*)(PyObject *)) \ 746 PyArray_API[59]) 747 #define PyArray_Scalar \ 748 (*(PyObject * (*)(void *, PyArray_Descr *, PyObject *)) \ 749 PyArray_API[60]) 750 #define PyArray_FromScalar \ 751 (*(PyObject * (*)(PyObject *, PyArray_Descr *)) \ 752 PyArray_API[61]) 753 #define PyArray_ScalarAsCtype \ 754 (*(void (*)(PyObject *, void *)) \ 755 PyArray_API[62]) 756 #define PyArray_CastScalarToCtype \ 757 (*(int (*)(PyObject *, void *, PyArray_Descr *)) \ 758 PyArray_API[63]) 759 #define PyArray_CastScalarDirect \ 760 (*(int (*)(PyObject *, PyArray_Descr *, void *, int)) \ 761 PyArray_API[64]) 762 #define PyArray_ScalarFromObject \ 763 (*(PyObject * (*)(PyObject *)) \ 764 PyArray_API[65]) 765 #define PyArray_GetCastFunc \ 766 (*(PyArray_VectorUnaryFunc * (*)(PyArray_Descr *, int)) \ 767 PyArray_API[66]) 768 #define PyArray_FromDims \ 769 (*(PyObject * (*)(int NPY_UNUSED(nd), int *NPY_UNUSED(d), int NPY_UNUSED(type))) \ 770 PyArray_API[67]) 771 #define PyArray_FromDimsAndDataAndDescr \ 772 (*(PyObject * (*)(int NPY_UNUSED(nd), int *NPY_UNUSED(d), PyArray_Descr *, char *NPY_UNUSED(data))) \ 773 PyArray_API[68]) 774 #define PyArray_FromAny \ 775 (*(PyObject * (*)(PyObject *, PyArray_Descr *, int, int, int, PyObject *)) \ 776 PyArray_API[69]) 777 #define PyArray_EnsureArray \ 778 (*(PyObject * (*)(PyObject *)) \ 779 PyArray_API[70]) 780 #define PyArray_EnsureAnyArray \ 781 (*(PyObject * (*)(PyObject *)) \ 782 PyArray_API[71]) 783 #define PyArray_FromFile \ 784 (*(PyObject * (*)(FILE *, PyArray_Descr *, npy_intp, char *)) \ 785 PyArray_API[72]) 786 #define PyArray_FromString \ 787 (*(PyObject * (*)(char *, npy_intp, PyArray_Descr *, npy_intp, char *)) \ 788 PyArray_API[73]) 789 #define PyArray_FromBuffer \ 790 (*(PyObject * (*)(PyObject *, PyArray_Descr *, npy_intp, npy_intp)) \ 791 PyArray_API[74]) 792 #define PyArray_FromIter \ 793 (*(PyObject * (*)(PyObject *, PyArray_Descr *, npy_intp)) \ 794 PyArray_API[75]) 795 #define PyArray_Return \ 796 (*(PyObject * (*)(PyArrayObject *)) \ 797 PyArray_API[76]) 798 #define PyArray_GetField \ 799 (*(PyObject * (*)(PyArrayObject *, PyArray_Descr *, int)) \ 800 PyArray_API[77]) 801 #define PyArray_SetField \ 802 (*(int (*)(PyArrayObject *, PyArray_Descr *, int, PyObject *)) \ 803 PyArray_API[78]) 804 #define PyArray_Byteswap \ 805 (*(PyObject * (*)(PyArrayObject *, npy_bool)) \ 806 PyArray_API[79]) 807 #define PyArray_Resize \ 808 (*(PyObject * (*)(PyArrayObject *, PyArray_Dims *, int, NPY_ORDER NPY_UNUSED(order))) \ 809 PyArray_API[80]) 810 #define PyArray_MoveInto \ 811 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 812 PyArray_API[81]) 813 #define PyArray_CopyInto \ 814 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 815 PyArray_API[82]) 816 #define PyArray_CopyAnyInto \ 817 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 818 PyArray_API[83]) 819 #define PyArray_CopyObject \ 820 (*(int (*)(PyArrayObject *, PyObject *)) \ 821 PyArray_API[84]) 822 #define PyArray_NewCopy \ 823 (*(PyObject * (*)(PyArrayObject *, NPY_ORDER)) \ 824 PyArray_API[85]) 825 #define PyArray_ToList \ 826 (*(PyObject * (*)(PyArrayObject *)) \ 827 PyArray_API[86]) 828 #define PyArray_ToString \ 829 (*(PyObject * (*)(PyArrayObject *, NPY_ORDER)) \ 830 PyArray_API[87]) 831 #define PyArray_ToFile \ 832 (*(int (*)(PyArrayObject *, FILE *, char *, char *)) \ 833 PyArray_API[88]) 834 #define PyArray_Dump \ 835 (*(int (*)(PyObject *, PyObject *, int)) \ 836 PyArray_API[89]) 837 #define PyArray_Dumps \ 838 (*(PyObject * (*)(PyObject *, int)) \ 839 PyArray_API[90]) 840 #define PyArray_ValidType \ 841 (*(int (*)(int)) \ 842 PyArray_API[91]) 843 #define PyArray_UpdateFlags \ 844 (*(void (*)(PyArrayObject *, int)) \ 845 PyArray_API[92]) 846 #define PyArray_New \ 847 (*(PyObject * (*)(PyTypeObject *, int, npy_intp const *, int, npy_intp const *, void *, int, int, PyObject *)) \ 848 PyArray_API[93]) 849 #define PyArray_NewFromDescr \ 850 (*(PyObject * (*)(PyTypeObject *, PyArray_Descr *, int, npy_intp const *, npy_intp const *, void *, int, PyObject *)) \ 851 PyArray_API[94]) 852 #define PyArray_DescrNew \ 853 (*(PyArray_Descr * (*)(PyArray_Descr *)) \ 854 PyArray_API[95]) 855 #define PyArray_DescrNewFromType \ 856 (*(PyArray_Descr * (*)(int)) \ 857 PyArray_API[96]) 858 #define PyArray_GetPriority \ 859 (*(double (*)(PyObject *, double)) \ 860 PyArray_API[97]) 861 #define PyArray_IterNew \ 862 (*(PyObject * (*)(PyObject *)) \ 863 PyArray_API[98]) 864 #define PyArray_MultiIterNew \ 865 (*(PyObject* (*)(int, ...)) \ 866 PyArray_API[99]) 867 #define PyArray_PyIntAsInt \ 868 (*(int (*)(PyObject *)) \ 869 PyArray_API[100]) 870 #define PyArray_PyIntAsIntp \ 871 (*(npy_intp (*)(PyObject *)) \ 872 PyArray_API[101]) 873 #define PyArray_Broadcast \ 874 (*(int (*)(PyArrayMultiIterObject *)) \ 875 PyArray_API[102]) 876 #define PyArray_FillObjectArray \ 877 (*(void (*)(PyArrayObject *, PyObject *)) \ 878 PyArray_API[103]) 879 #define PyArray_FillWithScalar \ 880 (*(int (*)(PyArrayObject *, PyObject *)) \ 881 PyArray_API[104]) 882 #define PyArray_CheckStrides \ 883 (*(npy_bool (*)(int, int, npy_intp, npy_intp, npy_intp const *, npy_intp const *)) \ 884 PyArray_API[105]) 885 #define PyArray_DescrNewByteorder \ 886 (*(PyArray_Descr * (*)(PyArray_Descr *, char)) \ 887 PyArray_API[106]) 888 #define PyArray_IterAllButAxis \ 889 (*(PyObject * (*)(PyObject *, int *)) \ 890 PyArray_API[107]) 891 #define PyArray_CheckFromAny \ 892 (*(PyObject * (*)(PyObject *, PyArray_Descr *, int, int, int, PyObject *)) \ 893 PyArray_API[108]) 894 #define PyArray_FromArray \ 895 (*(PyObject * (*)(PyArrayObject *, PyArray_Descr *, int)) \ 896 PyArray_API[109]) 897 #define PyArray_FromInterface \ 898 (*(PyObject * (*)(PyObject *)) \ 899 PyArray_API[110]) 900 #define PyArray_FromStructInterface \ 901 (*(PyObject * (*)(PyObject *)) \ 902 PyArray_API[111]) 903 #define PyArray_FromArrayAttr \ 904 (*(PyObject * (*)(PyObject *, PyArray_Descr *, PyObject *)) \ 905 PyArray_API[112]) 906 #define PyArray_ScalarKind \ 907 (*(NPY_SCALARKIND (*)(int, PyArrayObject **)) \ 908 PyArray_API[113]) 909 #define PyArray_CanCoerceScalar \ 910 (*(int (*)(int, int, NPY_SCALARKIND)) \ 911 PyArray_API[114]) 912 #define PyArray_NewFlagsObject \ 913 (*(PyObject * (*)(PyObject *)) \ 914 PyArray_API[115]) 915 #define PyArray_CanCastScalar \ 916 (*(npy_bool (*)(PyTypeObject *, PyTypeObject *)) \ 917 PyArray_API[116]) 918 #define PyArray_CompareUCS4 \ 919 (*(int (*)(npy_ucs4 const *, npy_ucs4 const *, size_t)) \ 920 PyArray_API[117]) 921 #define PyArray_RemoveSmallest \ 922 (*(int (*)(PyArrayMultiIterObject *)) \ 923 PyArray_API[118]) 924 #define PyArray_ElementStrides \ 925 (*(int (*)(PyObject *)) \ 926 PyArray_API[119]) 927 #define PyArray_Item_INCREF \ 928 (*(void (*)(char *, PyArray_Descr *)) \ 929 PyArray_API[120]) 930 #define PyArray_Item_XDECREF \ 931 (*(void (*)(char *, PyArray_Descr *)) \ 932 PyArray_API[121]) 933 #define PyArray_FieldNames \ 934 (*(PyObject * (*)(PyObject *)) \ 935 PyArray_API[122]) 936 #define PyArray_Transpose \ 937 (*(PyObject * (*)(PyArrayObject *, PyArray_Dims *)) \ 938 PyArray_API[123]) 939 #define PyArray_TakeFrom \ 940 (*(PyObject * (*)(PyArrayObject *, PyObject *, int, PyArrayObject *, NPY_CLIPMODE)) \ 941 PyArray_API[124]) 942 #define PyArray_PutTo \ 943 (*(PyObject * (*)(PyArrayObject *, PyObject*, PyObject *, NPY_CLIPMODE)) \ 944 PyArray_API[125]) 945 #define PyArray_PutMask \ 946 (*(PyObject * (*)(PyArrayObject *, PyObject*, PyObject*)) \ 947 PyArray_API[126]) 948 #define PyArray_Repeat \ 949 (*(PyObject * (*)(PyArrayObject *, PyObject *, int)) \ 950 PyArray_API[127]) 951 #define PyArray_Choose \ 952 (*(PyObject * (*)(PyArrayObject *, PyObject *, PyArrayObject *, NPY_CLIPMODE)) \ 953 PyArray_API[128]) 954 #define PyArray_Sort \ 955 (*(int (*)(PyArrayObject *, int, NPY_SORTKIND)) \ 956 PyArray_API[129]) 957 #define PyArray_ArgSort \ 958 (*(PyObject * (*)(PyArrayObject *, int, NPY_SORTKIND)) \ 959 PyArray_API[130]) 960 #define PyArray_SearchSorted \ 961 (*(PyObject * (*)(PyArrayObject *, PyObject *, NPY_SEARCHSIDE, PyObject *)) \ 962 PyArray_API[131]) 963 #define PyArray_ArgMax \ 964 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 965 PyArray_API[132]) 966 #define PyArray_ArgMin \ 967 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 968 PyArray_API[133]) 969 #define PyArray_Reshape \ 970 (*(PyObject * (*)(PyArrayObject *, PyObject *)) \ 971 PyArray_API[134]) 972 #define PyArray_Newshape \ 973 (*(PyObject * (*)(PyArrayObject *, PyArray_Dims *, NPY_ORDER)) \ 974 PyArray_API[135]) 975 #define PyArray_Squeeze \ 976 (*(PyObject * (*)(PyArrayObject *)) \ 977 PyArray_API[136]) 978 #define PyArray_View \ 979 (*(PyObject * (*)(PyArrayObject *, PyArray_Descr *, PyTypeObject *)) \ 980 PyArray_API[137]) 981 #define PyArray_SwapAxes \ 982 (*(PyObject * (*)(PyArrayObject *, int, int)) \ 983 PyArray_API[138]) 984 #define PyArray_Max \ 985 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 986 PyArray_API[139]) 987 #define PyArray_Min \ 988 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 989 PyArray_API[140]) 990 #define PyArray_Ptp \ 991 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 992 PyArray_API[141]) 993 #define PyArray_Mean \ 994 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *)) \ 995 PyArray_API[142]) 996 #define PyArray_Trace \ 997 (*(PyObject * (*)(PyArrayObject *, int, int, int, int, PyArrayObject *)) \ 998 PyArray_API[143]) 999 #define PyArray_Diagonal \ 1000 (*(PyObject * (*)(PyArrayObject *, int, int, int)) \ 1001 PyArray_API[144]) 1002 #define PyArray_Clip \ 1003 (*(PyObject * (*)(PyArrayObject *, PyObject *, PyObject *, PyArrayObject *)) \ 1004 PyArray_API[145]) 1005 #define PyArray_Conjugate \ 1006 (*(PyObject * (*)(PyArrayObject *, PyArrayObject *)) \ 1007 PyArray_API[146]) 1008 #define PyArray_Nonzero \ 1009 (*(PyObject * (*)(PyArrayObject *)) \ 1010 PyArray_API[147]) 1011 #define PyArray_Std \ 1012 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *, int)) \ 1013 PyArray_API[148]) 1014 #define PyArray_Sum \ 1015 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *)) \ 1016 PyArray_API[149]) 1017 #define PyArray_CumSum \ 1018 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *)) \ 1019 PyArray_API[150]) 1020 #define PyArray_Prod \ 1021 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *)) \ 1022 PyArray_API[151]) 1023 #define PyArray_CumProd \ 1024 (*(PyObject * (*)(PyArrayObject *, int, int, PyArrayObject *)) \ 1025 PyArray_API[152]) 1026 #define PyArray_All \ 1027 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 1028 PyArray_API[153]) 1029 #define PyArray_Any \ 1030 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 1031 PyArray_API[154]) 1032 #define PyArray_Compress \ 1033 (*(PyObject * (*)(PyArrayObject *, PyObject *, int, PyArrayObject *)) \ 1034 PyArray_API[155]) 1035 #define PyArray_Flatten \ 1036 (*(PyObject * (*)(PyArrayObject *, NPY_ORDER)) \ 1037 PyArray_API[156]) 1038 #define PyArray_Ravel \ 1039 (*(PyObject * (*)(PyArrayObject *, NPY_ORDER)) \ 1040 PyArray_API[157]) 1041 #define PyArray_MultiplyList \ 1042 (*(npy_intp (*)(npy_intp const *, int)) \ 1043 PyArray_API[158]) 1044 #define PyArray_MultiplyIntList \ 1045 (*(int (*)(int const *, int)) \ 1046 PyArray_API[159]) 1047 #define PyArray_GetPtr \ 1048 (*(void * (*)(PyArrayObject *, npy_intp const*)) \ 1049 PyArray_API[160]) 1050 #define PyArray_CompareLists \ 1051 (*(int (*)(npy_intp const *, npy_intp const *, int)) \ 1052 PyArray_API[161]) 1053 #define PyArray_AsCArray \ 1054 (*(int (*)(PyObject **, void *, npy_intp *, int, PyArray_Descr*)) \ 1055 PyArray_API[162]) 1056 #define PyArray_As1D \ 1057 (*(int (*)(PyObject **NPY_UNUSED(op), char **NPY_UNUSED(ptr), int *NPY_UNUSED(d1), int NPY_UNUSED(typecode))) \ 1058 PyArray_API[163]) 1059 #define PyArray_As2D \ 1060 (*(int (*)(PyObject **NPY_UNUSED(op), char ***NPY_UNUSED(ptr), int *NPY_UNUSED(d1), int *NPY_UNUSED(d2), int NPY_UNUSED(typecode))) \ 1061 PyArray_API[164]) 1062 #define PyArray_Free \ 1063 (*(int (*)(PyObject *, void *)) \ 1064 PyArray_API[165]) 1065 #define PyArray_Converter \ 1066 (*(int (*)(PyObject *, PyObject **)) \ 1067 PyArray_API[166]) 1068 #define PyArray_IntpFromSequence \ 1069 (*(int (*)(PyObject *, npy_intp *, int)) \ 1070 PyArray_API[167]) 1071 #define PyArray_Concatenate \ 1072 (*(PyObject * (*)(PyObject *, int)) \ 1073 PyArray_API[168]) 1074 #define PyArray_InnerProduct \ 1075 (*(PyObject * (*)(PyObject *, PyObject *)) \ 1076 PyArray_API[169]) 1077 #define PyArray_MatrixProduct \ 1078 (*(PyObject * (*)(PyObject *, PyObject *)) \ 1079 PyArray_API[170]) 1080 #define PyArray_CopyAndTranspose \ 1081 (*(PyObject * (*)(PyObject *)) \ 1082 PyArray_API[171]) 1083 #define PyArray_Correlate \ 1084 (*(PyObject * (*)(PyObject *, PyObject *, int)) \ 1085 PyArray_API[172]) 1086 #define PyArray_TypestrConvert \ 1087 (*(int (*)(int, int)) \ 1088 PyArray_API[173]) 1089 #define PyArray_DescrConverter \ 1090 (*(int (*)(PyObject *, PyArray_Descr **)) \ 1091 PyArray_API[174]) 1092 #define PyArray_DescrConverter2 \ 1093 (*(int (*)(PyObject *, PyArray_Descr **)) \ 1094 PyArray_API[175]) 1095 #define PyArray_IntpConverter \ 1096 (*(int (*)(PyObject *, PyArray_Dims *)) \ 1097 PyArray_API[176]) 1098 #define PyArray_BufferConverter \ 1099 (*(int (*)(PyObject *, PyArray_Chunk *)) \ 1100 PyArray_API[177]) 1101 #define PyArray_AxisConverter \ 1102 (*(int (*)(PyObject *, int *)) \ 1103 PyArray_API[178]) 1104 #define PyArray_BoolConverter \ 1105 (*(int (*)(PyObject *, npy_bool *)) \ 1106 PyArray_API[179]) 1107 #define PyArray_ByteorderConverter \ 1108 (*(int (*)(PyObject *, char *)) \ 1109 PyArray_API[180]) 1110 #define PyArray_OrderConverter \ 1111 (*(int (*)(PyObject *, NPY_ORDER *)) \ 1112 PyArray_API[181]) 1113 #define PyArray_EquivTypes \ 1114 (*(unsigned char (*)(PyArray_Descr *, PyArray_Descr *)) \ 1115 PyArray_API[182]) 1116 #define PyArray_Zeros \ 1117 (*(PyObject * (*)(int, npy_intp const *, PyArray_Descr *, int)) \ 1118 PyArray_API[183]) 1119 #define PyArray_Empty \ 1120 (*(PyObject * (*)(int, npy_intp const *, PyArray_Descr *, int)) \ 1121 PyArray_API[184]) 1122 #define PyArray_Where \ 1123 (*(PyObject * (*)(PyObject *, PyObject *, PyObject *)) \ 1124 PyArray_API[185]) 1125 #define PyArray_Arange \ 1126 (*(PyObject * (*)(double, double, double, int)) \ 1127 PyArray_API[186]) 1128 #define PyArray_ArangeObj \ 1129 (*(PyObject * (*)(PyObject *, PyObject *, PyObject *, PyArray_Descr *)) \ 1130 PyArray_API[187]) 1131 #define PyArray_SortkindConverter \ 1132 (*(int (*)(PyObject *, NPY_SORTKIND *)) \ 1133 PyArray_API[188]) 1134 #define PyArray_LexSort \ 1135 (*(PyObject * (*)(PyObject *, int)) \ 1136 PyArray_API[189]) 1137 #define PyArray_Round \ 1138 (*(PyObject * (*)(PyArrayObject *, int, PyArrayObject *)) \ 1139 PyArray_API[190]) 1140 #define PyArray_EquivTypenums \ 1141 (*(unsigned char (*)(int, int)) \ 1142 PyArray_API[191]) 1143 #define PyArray_RegisterDataType \ 1144 (*(int (*)(PyArray_Descr *)) \ 1145 PyArray_API[192]) 1146 #define PyArray_RegisterCastFunc \ 1147 (*(int (*)(PyArray_Descr *, int, PyArray_VectorUnaryFunc *)) \ 1148 PyArray_API[193]) 1149 #define PyArray_RegisterCanCast \ 1150 (*(int (*)(PyArray_Descr *, int, NPY_SCALARKIND)) \ 1151 PyArray_API[194]) 1152 #define PyArray_InitArrFuncs \ 1153 (*(void (*)(PyArray_ArrFuncs *)) \ 1154 PyArray_API[195]) 1155 #define PyArray_IntTupleFromIntp \ 1156 (*(PyObject * (*)(int, npy_intp const *)) \ 1157 PyArray_API[196]) 1158 #define PyArray_TypeNumFromName \ 1159 (*(int (*)(char const *)) \ 1160 PyArray_API[197]) 1161 #define PyArray_ClipmodeConverter \ 1162 (*(int (*)(PyObject *, NPY_CLIPMODE *)) \ 1163 PyArray_API[198]) 1164 #define PyArray_OutputConverter \ 1165 (*(int (*)(PyObject *, PyArrayObject **)) \ 1166 PyArray_API[199]) 1167 #define PyArray_BroadcastToShape \ 1168 (*(PyObject * (*)(PyObject *, npy_intp *, int)) \ 1169 PyArray_API[200]) 1170 #define _PyArray_SigintHandler \ 1171 (*(void (*)(int)) \ 1172 PyArray_API[201]) 1173 #define _PyArray_GetSigintBuf \ 1174 (*(void* (*)(void)) \ 1175 PyArray_API[202]) 1176 #define PyArray_DescrAlignConverter \ 1177 (*(int (*)(PyObject *, PyArray_Descr **)) \ 1178 PyArray_API[203]) 1179 #define PyArray_DescrAlignConverter2 \ 1180 (*(int (*)(PyObject *, PyArray_Descr **)) \ 1181 PyArray_API[204]) 1182 #define PyArray_SearchsideConverter \ 1183 (*(int (*)(PyObject *, void *)) \ 1184 PyArray_API[205]) 1185 #define PyArray_CheckAxis \ 1186 (*(PyObject * (*)(PyArrayObject *, int *, int)) \ 1187 PyArray_API[206]) 1188 #define PyArray_OverflowMultiplyList \ 1189 (*(npy_intp (*)(npy_intp const *, int)) \ 1190 PyArray_API[207]) 1191 #define PyArray_CompareString \ 1192 (*(int (*)(const char *, const char *, size_t)) \ 1193 PyArray_API[208]) 1194 #define PyArray_MultiIterFromObjects \ 1195 (*(PyObject* (*)(PyObject **, int, int, ...)) \ 1196 PyArray_API[209]) 1197 #define PyArray_GetEndianness \ 1198 (*(int (*)(void)) \ 1199 PyArray_API[210]) 1200 #define PyArray_GetNDArrayCFeatureVersion \ 1201 (*(unsigned int (*)(void)) \ 1202 PyArray_API[211]) 1203 #define PyArray_Correlate2 \ 1204 (*(PyObject * (*)(PyObject *, PyObject *, int)) \ 1205 PyArray_API[212]) 1206 #define PyArray_NeighborhoodIterNew \ 1207 (*(PyObject* (*)(PyArrayIterObject *, const npy_intp *, int, PyArrayObject*)) \ 1208 PyArray_API[213]) 1209 #define PyTimeIntegerArrType_Type (*(PyTypeObject *)PyArray_API[214]) 1210 #define PyDatetimeArrType_Type (*(PyTypeObject *)PyArray_API[215]) 1211 #define PyTimedeltaArrType_Type (*(PyTypeObject *)PyArray_API[216]) 1212 #define PyHalfArrType_Type (*(PyTypeObject *)PyArray_API[217]) 1213 #define NpyIter_Type (*(PyTypeObject *)PyArray_API[218]) 1214 #define PyArray_SetDatetimeParseFunction \ 1215 (*(void (*)(PyObject *NPY_UNUSED(op))) \ 1216 PyArray_API[219]) 1217 #define PyArray_DatetimeToDatetimeStruct \ 1218 (*(void (*)(npy_datetime NPY_UNUSED(val), NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_datetimestruct *)) \ 1219 PyArray_API[220]) 1220 #define PyArray_TimedeltaToTimedeltaStruct \ 1221 (*(void (*)(npy_timedelta NPY_UNUSED(val), NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_timedeltastruct *)) \ 1222 PyArray_API[221]) 1223 #define PyArray_DatetimeStructToDatetime \ 1224 (*(npy_datetime (*)(NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_datetimestruct *NPY_UNUSED(d))) \ 1225 PyArray_API[222]) 1226 #define PyArray_TimedeltaStructToTimedelta \ 1227 (*(npy_datetime (*)(NPY_DATETIMEUNIT NPY_UNUSED(fr), npy_timedeltastruct *NPY_UNUSED(d))) \ 1228 PyArray_API[223]) 1229 #define NpyIter_New \ 1230 (*(NpyIter * (*)(PyArrayObject *, npy_uint32, NPY_ORDER, NPY_CASTING, PyArray_Descr*)) \ 1231 PyArray_API[224]) 1232 #define NpyIter_MultiNew \ 1233 (*(NpyIter * (*)(int, PyArrayObject **, npy_uint32, NPY_ORDER, NPY_CASTING, npy_uint32 *, PyArray_Descr **)) \ 1234 PyArray_API[225]) 1235 #define NpyIter_AdvancedNew \ 1236 (*(NpyIter * (*)(int, PyArrayObject **, npy_uint32, NPY_ORDER, NPY_CASTING, npy_uint32 *, PyArray_Descr **, int, int **, npy_intp *, npy_intp)) \ 1237 PyArray_API[226]) 1238 #define NpyIter_Copy \ 1239 (*(NpyIter * (*)(NpyIter *)) \ 1240 PyArray_API[227]) 1241 #define NpyIter_Deallocate \ 1242 (*(int (*)(NpyIter *)) \ 1243 PyArray_API[228]) 1244 #define NpyIter_HasDelayedBufAlloc \ 1245 (*(npy_bool (*)(NpyIter *)) \ 1246 PyArray_API[229]) 1247 #define NpyIter_HasExternalLoop \ 1248 (*(npy_bool (*)(NpyIter *)) \ 1249 PyArray_API[230]) 1250 #define NpyIter_EnableExternalLoop \ 1251 (*(int (*)(NpyIter *)) \ 1252 PyArray_API[231]) 1253 #define NpyIter_GetInnerStrideArray \ 1254 (*(npy_intp * (*)(NpyIter *)) \ 1255 PyArray_API[232]) 1256 #define NpyIter_GetInnerLoopSizePtr \ 1257 (*(npy_intp * (*)(NpyIter *)) \ 1258 PyArray_API[233]) 1259 #define NpyIter_Reset \ 1260 (*(int (*)(NpyIter *, char **)) \ 1261 PyArray_API[234]) 1262 #define NpyIter_ResetBasePointers \ 1263 (*(int (*)(NpyIter *, char **, char **)) \ 1264 PyArray_API[235]) 1265 #define NpyIter_ResetToIterIndexRange \ 1266 (*(int (*)(NpyIter *, npy_intp, npy_intp, char **)) \ 1267 PyArray_API[236]) 1268 #define NpyIter_GetNDim \ 1269 (*(int (*)(NpyIter *)) \ 1270 PyArray_API[237]) 1271 #define NpyIter_GetNOp \ 1272 (*(int (*)(NpyIter *)) \ 1273 PyArray_API[238]) 1274 #define NpyIter_GetIterNext \ 1275 (*(NpyIter_IterNextFunc * (*)(NpyIter *, char **)) \ 1276 PyArray_API[239]) 1277 #define NpyIter_GetIterSize \ 1278 (*(npy_intp (*)(NpyIter *)) \ 1279 PyArray_API[240]) 1280 #define NpyIter_GetIterIndexRange \ 1281 (*(void (*)(NpyIter *, npy_intp *, npy_intp *)) \ 1282 PyArray_API[241]) 1283 #define NpyIter_GetIterIndex \ 1284 (*(npy_intp (*)(NpyIter *)) \ 1285 PyArray_API[242]) 1286 #define NpyIter_GotoIterIndex \ 1287 (*(int (*)(NpyIter *, npy_intp)) \ 1288 PyArray_API[243]) 1289 #define NpyIter_HasMultiIndex \ 1290 (*(npy_bool (*)(NpyIter *)) \ 1291 PyArray_API[244]) 1292 #define NpyIter_GetShape \ 1293 (*(int (*)(NpyIter *, npy_intp *)) \ 1294 PyArray_API[245]) 1295 #define NpyIter_GetGetMultiIndex \ 1296 (*(NpyIter_GetMultiIndexFunc * (*)(NpyIter *, char **)) \ 1297 PyArray_API[246]) 1298 #define NpyIter_GotoMultiIndex \ 1299 (*(int (*)(NpyIter *, npy_intp const *)) \ 1300 PyArray_API[247]) 1301 #define NpyIter_RemoveMultiIndex \ 1302 (*(int (*)(NpyIter *)) \ 1303 PyArray_API[248]) 1304 #define NpyIter_HasIndex \ 1305 (*(npy_bool (*)(NpyIter *)) \ 1306 PyArray_API[249]) 1307 #define NpyIter_IsBuffered \ 1308 (*(npy_bool (*)(NpyIter *)) \ 1309 PyArray_API[250]) 1310 #define NpyIter_IsGrowInner \ 1311 (*(npy_bool (*)(NpyIter *)) \ 1312 PyArray_API[251]) 1313 #define NpyIter_GetBufferSize \ 1314 (*(npy_intp (*)(NpyIter *)) \ 1315 PyArray_API[252]) 1316 #define NpyIter_GetIndexPtr \ 1317 (*(npy_intp * (*)(NpyIter *)) \ 1318 PyArray_API[253]) 1319 #define NpyIter_GotoIndex \ 1320 (*(int (*)(NpyIter *, npy_intp)) \ 1321 PyArray_API[254]) 1322 #define NpyIter_GetDataPtrArray \ 1323 (*(char ** (*)(NpyIter *)) \ 1324 PyArray_API[255]) 1325 #define NpyIter_GetDescrArray \ 1326 (*(PyArray_Descr ** (*)(NpyIter *)) \ 1327 PyArray_API[256]) 1328 #define NpyIter_GetOperandArray \ 1329 (*(PyArrayObject ** (*)(NpyIter *)) \ 1330 PyArray_API[257]) 1331 #define NpyIter_GetIterView \ 1332 (*(PyArrayObject * (*)(NpyIter *, npy_intp)) \ 1333 PyArray_API[258]) 1334 #define NpyIter_GetReadFlags \ 1335 (*(void (*)(NpyIter *, char *)) \ 1336 PyArray_API[259]) 1337 #define NpyIter_GetWriteFlags \ 1338 (*(void (*)(NpyIter *, char *)) \ 1339 PyArray_API[260]) 1340 #define NpyIter_DebugPrint \ 1341 (*(void (*)(NpyIter *)) \ 1342 PyArray_API[261]) 1343 #define NpyIter_IterationNeedsAPI \ 1344 (*(npy_bool (*)(NpyIter *)) \ 1345 PyArray_API[262]) 1346 #define NpyIter_GetInnerFixedStrideArray \ 1347 (*(void (*)(NpyIter *, npy_intp *)) \ 1348 PyArray_API[263]) 1349 #define NpyIter_RemoveAxis \ 1350 (*(int (*)(NpyIter *, int)) \ 1351 PyArray_API[264]) 1352 #define NpyIter_GetAxisStrideArray \ 1353 (*(npy_intp * (*)(NpyIter *, int)) \ 1354 PyArray_API[265]) 1355 #define NpyIter_RequiresBuffering \ 1356 (*(npy_bool (*)(NpyIter *)) \ 1357 PyArray_API[266]) 1358 #define NpyIter_GetInitialDataPtrArray \ 1359 (*(char ** (*)(NpyIter *)) \ 1360 PyArray_API[267]) 1361 #define NpyIter_CreateCompatibleStrides \ 1362 (*(int (*)(NpyIter *, npy_intp, npy_intp *)) \ 1363 PyArray_API[268]) 1364 #define PyArray_CastingConverter \ 1365 (*(int (*)(PyObject *, NPY_CASTING *)) \ 1366 PyArray_API[269]) 1367 #define PyArray_CountNonzero \ 1368 (*(npy_intp (*)(PyArrayObject *)) \ 1369 PyArray_API[270]) 1370 #define PyArray_PromoteTypes \ 1371 (*(PyArray_Descr * (*)(PyArray_Descr *, PyArray_Descr *)) \ 1372 PyArray_API[271]) 1373 #define PyArray_MinScalarType \ 1374 (*(PyArray_Descr * (*)(PyArrayObject *)) \ 1375 PyArray_API[272]) 1376 #define PyArray_ResultType \ 1377 (*(PyArray_Descr * (*)(npy_intp, PyArrayObject *arrs[], npy_intp, PyArray_Descr *descrs[])) \ 1378 PyArray_API[273]) 1379 #define PyArray_CanCastArrayTo \ 1380 (*(npy_bool (*)(PyArrayObject *, PyArray_Descr *, NPY_CASTING)) \ 1381 PyArray_API[274]) 1382 #define PyArray_CanCastTypeTo \ 1383 (*(npy_bool (*)(PyArray_Descr *, PyArray_Descr *, NPY_CASTING)) \ 1384 PyArray_API[275]) 1385 #define PyArray_EinsteinSum \ 1386 (*(PyArrayObject * (*)(char *, npy_intp, PyArrayObject **, PyArray_Descr *, NPY_ORDER, NPY_CASTING, PyArrayObject *)) \ 1387 PyArray_API[276]) 1388 #define PyArray_NewLikeArray \ 1389 (*(PyObject * (*)(PyArrayObject *, NPY_ORDER, PyArray_Descr *, int)) \ 1390 PyArray_API[277]) 1391 #define PyArray_GetArrayParamsFromObject \ 1392 (*(int (*)(PyObject *NPY_UNUSED(op), PyArray_Descr *NPY_UNUSED(requested_dtype), npy_bool NPY_UNUSED(writeable), PyArray_Descr **NPY_UNUSED(out_dtype), int *NPY_UNUSED(out_ndim), npy_intp *NPY_UNUSED(out_dims), PyArrayObject **NPY_UNUSED(out_arr), PyObject *NPY_UNUSED(context))) \ 1393 PyArray_API[278]) 1394 #define PyArray_ConvertClipmodeSequence \ 1395 (*(int (*)(PyObject *, NPY_CLIPMODE *, int)) \ 1396 PyArray_API[279]) 1397 #define PyArray_MatrixProduct2 \ 1398 (*(PyObject * (*)(PyObject *, PyObject *, PyArrayObject*)) \ 1399 PyArray_API[280]) 1400 #define NpyIter_IsFirstVisit \ 1401 (*(npy_bool (*)(NpyIter *, int)) \ 1402 PyArray_API[281]) 1403 #define PyArray_SetBaseObject \ 1404 (*(int (*)(PyArrayObject *, PyObject *)) \ 1405 PyArray_API[282]) 1406 #define PyArray_CreateSortedStridePerm \ 1407 (*(void (*)(int, npy_intp const *, npy_stride_sort_item *)) \ 1408 PyArray_API[283]) 1409 #define PyArray_RemoveAxesInPlace \ 1410 (*(void (*)(PyArrayObject *, const npy_bool *)) \ 1411 PyArray_API[284]) 1412 #define PyArray_DebugPrint \ 1413 (*(void (*)(PyArrayObject *)) \ 1414 PyArray_API[285]) 1415 #define PyArray_FailUnlessWriteable \ 1416 (*(int (*)(PyArrayObject *, const char *)) \ 1417 PyArray_API[286]) 1418 #define PyArray_SetUpdateIfCopyBase \ 1419 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 1420 PyArray_API[287]) 1421 #define PyDataMem_NEW \ 1422 (*(void * (*)(size_t)) \ 1423 PyArray_API[288]) 1424 #define PyDataMem_FREE \ 1425 (*(void (*)(void *)) \ 1426 PyArray_API[289]) 1427 #define PyDataMem_RENEW \ 1428 (*(void * (*)(void *, size_t)) \ 1429 PyArray_API[290]) 1430 #define PyDataMem_SetEventHook \ 1431 (*(PyDataMem_EventHookFunc * (*)(PyDataMem_EventHookFunc *, void *, void **)) \ 1432 PyArray_API[291]) 1433 #define NPY_DEFAULT_ASSIGN_CASTING (*(NPY_CASTING *)PyArray_API[292]) 1434 #define PyArray_MapIterSwapAxes \ 1435 (*(void (*)(PyArrayMapIterObject *, PyArrayObject **, int)) \ 1436 PyArray_API[293]) 1437 #define PyArray_MapIterArray \ 1438 (*(PyObject * (*)(PyArrayObject *, PyObject *)) \ 1439 PyArray_API[294]) 1440 #define PyArray_MapIterNext \ 1441 (*(void (*)(PyArrayMapIterObject *)) \ 1442 PyArray_API[295]) 1443 #define PyArray_Partition \ 1444 (*(int (*)(PyArrayObject *, PyArrayObject *, int, NPY_SELECTKIND)) \ 1445 PyArray_API[296]) 1446 #define PyArray_ArgPartition \ 1447 (*(PyObject * (*)(PyArrayObject *, PyArrayObject *, int, NPY_SELECTKIND)) \ 1448 PyArray_API[297]) 1449 #define PyArray_SelectkindConverter \ 1450 (*(int (*)(PyObject *, NPY_SELECTKIND *)) \ 1451 PyArray_API[298]) 1452 #define PyDataMem_NEW_ZEROED \ 1453 (*(void * (*)(size_t, size_t)) \ 1454 PyArray_API[299]) 1455 #define PyArray_CheckAnyScalarExact \ 1456 (*(int (*)(PyObject *)) \ 1457 PyArray_API[300]) 1458 #define PyArray_MapIterArrayCopyIfOverlap \ 1459 (*(PyObject * (*)(PyArrayObject *, PyObject *, int, PyArrayObject *)) \ 1460 PyArray_API[301]) 1461 #define PyArray_ResolveWritebackIfCopy \ 1462 (*(int (*)(PyArrayObject *)) \ 1463 PyArray_API[302]) 1464 #define PyArray_SetWritebackIfCopyBase \ 1465 (*(int (*)(PyArrayObject *, PyArrayObject *)) \ 1466 PyArray_API[303]) 1467 #define PyDataMem_SetHandler \ 1468 (*(PyObject * (*)(PyObject *)) \ 1469 PyArray_API[304]) 1470 #define PyDataMem_GetHandler \ 1471 (*(PyObject * (*)(void)) \ 1472 PyArray_API[305]) 1473 #define PyDataMem_DefaultHandler (*(PyObject* *)PyArray_API[306]) 1474 1475 #if !defined(NO_IMPORT_ARRAY) && !defined(NO_IMPORT) 1476 static int 1477 _import_array(void) 1478 { 1479 int st; 1480 PyObject *numpy = PyImport_ImportModule("numpy.core._multiarray_umath"); 1481 PyObject *c_api = NULL; 1482 1483 if (numpy == NULL) { 1484 return -1; 1485 } 1486 c_api = PyObject_GetAttrString(numpy, "_ARRAY_API"); 1487 Py_DECREF(numpy); 1488 if (c_api == NULL) { 1489 PyErr_SetString(PyExc_AttributeError, "_ARRAY_API not found"); 1490 return -1; 1491 } 1492 1493 if (!PyCapsule_CheckExact(c_api)) { 1494 PyErr_SetString(PyExc_RuntimeError, "_ARRAY_API is not PyCapsule object"); 1495 Py_DECREF(c_api); 1496 return -1; 1497 } 1498 PyArray_API = (void **)PyCapsule_GetPointer(c_api, NULL); 1499 Py_DECREF(c_api); 1500 if (PyArray_API == NULL) { 1501 PyErr_SetString(PyExc_RuntimeError, "_ARRAY_API is NULL pointer"); 1502 return -1; 1503 } 1504 1505 /* Perform runtime check of C API version */ 1506 if (NPY_VERSION != PyArray_GetNDArrayCVersion()) { 1507 PyErr_Format(PyExc_RuntimeError, "module compiled against "\ 1508 "ABI version 0x%x but this version of numpy is 0x%x", \ 1509 (int) NPY_VERSION, (int) PyArray_GetNDArrayCVersion()); 1510 return -1; 1511 } 1512 if (NPY_FEATURE_VERSION > PyArray_GetNDArrayCFeatureVersion()) { 1513 PyErr_Format(PyExc_RuntimeError, "module compiled against "\ 1514 "API version 0x%x but this version of numpy is 0x%x . "\ 1515 "Check the section C-API incompatibility at the "\ 1516 "Troubleshooting ImportError section at "\ 1517 "https://numpy.org/devdocs/user/troubleshooting-importerror.html"\ 1518 "#c-api-incompatibility "\ 1519 "for indications on how to solve this problem .", \ 1520 (int) NPY_FEATURE_VERSION, (int) PyArray_GetNDArrayCFeatureVersion()); 1521 return -1; 1522 } 1523 1524 /* 1525 * Perform runtime check of endianness and check it matches the one set by 1526 * the headers (npy_endian.h) as a safeguard 1527 */ 1528 st = PyArray_GetEndianness(); 1529 if (st == NPY_CPU_UNKNOWN_ENDIAN) { 1530 PyErr_SetString(PyExc_RuntimeError, 1531 "FATAL: module compiled as unknown endian"); 1532 return -1; 1533 } 1534 #if NPY_BYTE_ORDER == NPY_BIG_ENDIAN 1535 if (st != NPY_CPU_BIG) { 1536 PyErr_SetString(PyExc_RuntimeError, 1537 "FATAL: module compiled as big endian, but " 1538 "detected different endianness at runtime"); 1539 return -1; 1540 } 1541 #elif NPY_BYTE_ORDER == NPY_LITTLE_ENDIAN 1542 if (st != NPY_CPU_LITTLE) { 1543 PyErr_SetString(PyExc_RuntimeError, 1544 "FATAL: module compiled as little endian, but " 1545 "detected different endianness at runtime"); 1546 return -1; 1547 } 1548 #endif 1549 1550 return 0; 1551 } 1552 1553 #define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NULL; } } 1554 1555 #define import_array1(ret) {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return ret; } } 1556 1557 #define import_array2(msg, ret) {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, msg); return ret; } } 1558 1559 #endif 1560 1561 #endif