MCPcopy Create free account
hub / github.com/numpy/numpy / PyInit__simd

Function PyInit__simd

numpy/core/src/_simd/_simd.c:24–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22};
23
24PyMODINIT_FUNC PyInit__simd(void)
25{
26 static struct PyModuleDef defs = {
27 .m_base = PyModuleDef_HEAD_INIT,
28 .m_name = "numpy.core._simd",
29 .m_size = -1,
30 .m_methods = _simd_methods
31 };
32 if (npy_cpu_init() < 0) {
33 return NULL;
34 }
35 PyObject *m = PyModule_Create(&defs);
36 if (m == NULL) {
37 return NULL;
38 }
39 PyObject *targets = PyDict_New();
40 if (targets == NULL) {
41 goto err;
42 }
43 if (PyModule_AddObject(m, "targets", targets) < 0) {
44 Py_DECREF(targets);
45 goto err;
46 }
47 // add keys for non-supported optimizations with None value
48 #define ATTACH_MODULE(TESTED_FEATURES, TARGET_NAME, MAKE_MSVC_HAPPY) \
49 { \
50 PyObject *simd_mod; \
51 if (!TESTED_FEATURES) { \
52 Py_INCREF(Py_None); \
53 simd_mod = Py_None; \
54 } else { \
55 simd_mod = NPY_CAT(simd_create_module_, TARGET_NAME)(); \
56 if (simd_mod == NULL) { \
57 goto err; \
58 } \
59 } \
60 const char *target_name = NPY_TOSTRING(TARGET_NAME); \
61 if (PyDict_SetItemString(targets, target_name, simd_mod) < 0) { \
62 Py_DECREF(simd_mod); \
63 goto err; \
64 } \
65 Py_INCREF(simd_mod); \
66 if (PyModule_AddObject(m, target_name, simd_mod) < 0) { \
67 Py_DECREF(simd_mod); \
68 goto err; \
69 } \
70 }
71
72 #define ATTACH_BASELINE_MODULE(MAKE_MSVC_HAPPY) \
73 { \
74 PyObject *simd_mod = simd_create_module(); \
75 if (simd_mod == NULL) { \
76 goto err; \
77 } \
78 if (PyDict_SetItemString(targets, "baseline", simd_mod) < 0) { \
79 Py_DECREF(simd_mod); \
80 goto err; \
81 } \

Callers

nothing calls this directly

Calls 1

npy_cpu_initFunction · 0.85

Tested by

no test coverage detected