__multiarray_api.h 59 KB

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