File: | /tmp/pyrefcon/scipy/scipy/signal/_max_len_seq_inner.cpp |
Warning: | line 232, column 25 PyObject ownership leak with reference count of 1 |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
1 | #include <pythonic/core.hpp> | |||
2 | #include <pythonic/python/core.hpp> | |||
3 | #include <pythonic/types/bool.hpp> | |||
4 | #include <pythonic/types/int.hpp> | |||
5 | #ifdef _OPENMP | |||
6 | #include <omp.h> | |||
7 | #endif | |||
8 | #include <pythonic/include/types/int8.hpp> | |||
9 | #include <pythonic/include/types/ndarray.hpp> | |||
10 | #include <pythonic/include/types/int64.hpp> | |||
11 | #include <pythonic/include/types/int.hpp> | |||
12 | #include <pythonic/types/ndarray.hpp> | |||
13 | #include <pythonic/types/int.hpp> | |||
14 | #include <pythonic/types/int64.hpp> | |||
15 | #include <pythonic/types/int8.hpp> | |||
16 | #include <pythonic/include/builtins/getattr.hpp> | |||
17 | #include <pythonic/include/builtins/range.hpp> | |||
18 | #include <pythonic/include/numpy/roll.hpp> | |||
19 | #include <pythonic/include/operator_/add.hpp> | |||
20 | #include <pythonic/include/operator_/ixor.hpp> | |||
21 | #include <pythonic/include/operator_/mod.hpp> | |||
22 | #include <pythonic/include/operator_/neg.hpp> | |||
23 | #include <pythonic/include/operator_/xor_.hpp> | |||
24 | #include <pythonic/include/types/str.hpp> | |||
25 | #include <pythonic/builtins/getattr.hpp> | |||
26 | #include <pythonic/builtins/range.hpp> | |||
27 | #include <pythonic/numpy/roll.hpp> | |||
28 | #include <pythonic/operator_/add.hpp> | |||
29 | #include <pythonic/operator_/ixor.hpp> | |||
30 | #include <pythonic/operator_/mod.hpp> | |||
31 | #include <pythonic/operator_/neg.hpp> | |||
32 | #include <pythonic/operator_/xor_.hpp> | |||
33 | #include <pythonic/types/str.hpp> | |||
34 | namespace __pythran__max_len_seq_inner | |||
35 | { | |||
36 | struct _max_len_seq_inner | |||
37 | { | |||
38 | typedef void callable; | |||
39 | ; | |||
40 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 , typename argument_type3 , typename argument_type4 > | |||
41 | struct type | |||
42 | { | |||
43 | typedef typename std::remove_cv<typename std::remove_reference<argument_type1>::type>::type __type0; | |||
44 | typedef typename pythonic::assignable<long>::type __type1; | |||
45 | typedef decltype(std::declval<__type0>()[std::declval<__type1>()]) __type2; | |||
46 | typedef typename pythonic::assignable<decltype(std::declval<__type0>()[std::declval<__type1>()])>::type __type3; | |||
47 | typedef container<typename std::remove_reference<__type2>::type> __type5; | |||
48 | typedef typename __combined<__type0,__type5>::type __type6; | |||
49 | typedef typename std::remove_cv<typename std::remove_reference<argument_type0>::type>::type __type7; | |||
50 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::builtins::functor::range{})>::type>::type __type8; | |||
51 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type7>())) __type10; | |||
52 | typedef typename std::tuple_element<0,typename std::remove_reference<__type10>::type>::type __type11; | |||
53 | typedef typename pythonic::lazy<__type11>::type __type12; | |||
54 | typedef decltype(std::declval<__type8>()(std::declval<__type12>())) __type13; | |||
55 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type13>::type::iterator>::value_type>::type __type14; | |||
56 | typedef decltype(std::declval<__type7>()[std::declval<__type14>()]) __type15; | |||
57 | typedef decltype(pythonic::operator_::add(std::declval<__type15>(), std::declval<__type1>())) __type17; | |||
58 | typedef typename std::remove_cv<typename std::remove_reference<argument_type2>::type>::type __type18; | |||
59 | typedef decltype(pythonic::operator_::mod(std::declval<__type17>(), std::declval<__type18>())) __type19; | |||
60 | typedef decltype(std::declval<__type6>()[std::declval<__type19>()]) __type20; | |||
61 | typedef typename __combined<__type3,__type20>::type __type21; | |||
62 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::roll{})>::type>::type __type22; | |||
63 | typedef container<typename std::remove_reference<__type20>::type> __type23; | |||
64 | typedef container<typename std::remove_reference<__type21>::type> __type25; | |||
65 | typedef indexable<__type1> __type27; | |||
66 | typedef typename __combined<__type0,__type5,__type23,__type25,__type27>::type __type28; | |||
67 | typedef long __type31; | |||
68 | typedef decltype(pythonic::operator_::add(std::declval<__type1>(), std::declval<__type31>())) __type32; | |||
69 | typedef typename pythonic::assignable<decltype(pythonic::operator_::mod(std::declval<__type32>(), std::declval<__type18>()))>::type __type34; | |||
70 | typedef typename __combined<__type1,__type34>::type __type35; | |||
71 | typedef decltype(pythonic::operator_::neg(std::declval<__type35>())) __type36; | |||
72 | typedef __type2 __ptype0; | |||
73 | typedef __type21 __ptype1; | |||
74 | typedef typename pythonic::returnable<decltype(std::declval<__type22>()(std::declval<__type28>(), std::declval<__type36>(), std::declval<__type31>()))>::type result_type; | |||
75 | } | |||
76 | ; | |||
77 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 , typename argument_type3 , typename argument_type4 > | |||
78 | typename type<argument_type0, argument_type1, argument_type2, argument_type3, argument_type4>::result_type operator()(argument_type0&& taps, argument_type1&& state, argument_type2&& nbits, argument_type3&& length, argument_type4&& seq) const | |||
79 | ; | |||
80 | } ; | |||
81 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 , typename argument_type3 , typename argument_type4 > | |||
82 | typename _max_len_seq_inner::type<argument_type0, argument_type1, argument_type2, argument_type3, argument_type4>::result_type _max_len_seq_inner::operator()(argument_type0&& taps, argument_type1&& state, argument_type2&& nbits, argument_type3&& length, argument_type4&& seq) const | |||
83 | { | |||
84 | typedef typename pythonic::assignable<long>::type __type0; | |||
85 | typedef long __type2; | |||
86 | typedef decltype(pythonic::operator_::add(std::declval<__type0>(), std::declval<__type2>())) __type3; | |||
87 | typedef typename std::remove_cv<typename std::remove_reference<argument_type2>::type>::type __type4; | |||
88 | typedef typename pythonic::assignable<decltype(pythonic::operator_::mod(std::declval<__type3>(), std::declval<__type4>()))>::type __type5; | |||
89 | typedef typename std::remove_cv<typename std::remove_reference<argument_type1>::type>::type __type6; | |||
90 | typedef typename __combined<__type0,__type5>::type __type8; | |||
91 | typedef decltype(std::declval<__type6>()[std::declval<__type8>()]) __type9; | |||
92 | typedef container<typename std::remove_reference<__type9>::type> __type10; | |||
93 | typedef typename __combined<__type6,__type10>::type __type11; | |||
94 | typedef typename std::remove_cv<typename std::remove_reference<argument_type0>::type>::type __type12; | |||
95 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::builtins::functor::range{})>::type>::type __type13; | |||
96 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type12>())) __type15; | |||
97 | typedef typename std::tuple_element<0,typename std::remove_reference<__type15>::type>::type __type16; | |||
98 | typedef typename pythonic::lazy<__type16>::type __type17; | |||
99 | typedef decltype(std::declval<__type13>()(std::declval<__type17>())) __type18; | |||
100 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type18>::type::iterator>::value_type>::type __type19; | |||
101 | typedef decltype(std::declval<__type12>()[std::declval<__type19>()]) __type20; | |||
102 | typedef decltype(pythonic::operator_::add(std::declval<__type20>(), std::declval<__type8>())) __type22; | |||
103 | typedef decltype(pythonic::operator_::mod(std::declval<__type22>(), std::declval<__type4>())) __type24; | |||
104 | typedef decltype(std::declval<__type11>()[std::declval<__type24>()]) __type25; | |||
105 | typedef container<typename std::remove_reference<__type25>::type> __type26; | |||
106 | typedef typename pythonic::assignable<decltype(std::declval<__type6>()[std::declval<__type8>()])>::type __type27; | |||
107 | typedef typename __combined<__type27,__type25>::type __type28; | |||
108 | typedef container<typename std::remove_reference<__type28>::type> __type29; | |||
109 | typedef indexable<__type8> __type31; | |||
110 | typename pythonic::lazy<decltype(std::get<0>(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, taps)))>::type n_taps = std::get<0>(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, taps)); | |||
111 | typename pythonic::assignable<typename __combined<__type0,__type5>::type>::type idx = 0L; | |||
112 | { | |||
113 | long __target139669609775744 = length; | |||
114 | for (long i=0L; i < __target139669609775744; i += 1L) | |||
115 | { | |||
116 | typename pythonic::assignable<typename __combined<__type27,__type25>::type>::type feedback = state.fast(idx); | |||
117 | seq.fast(i) = feedback; | |||
118 | { | |||
119 | long __target139669609777520 = n_taps; | |||
120 | for (long ti=0L; ti < __target139669609777520; ti += 1L) | |||
121 | { | |||
122 | feedback ^= state.fast(pythonic::operator_::mod(pythonic::operator_::add(taps.fast(ti), idx), nbits)); | |||
123 | } | |||
124 | } | |||
125 | state.fast(idx) = feedback; | |||
126 | idx = pythonic::operator_::mod(pythonic::operator_::add(idx, 1L), nbits); | |||
127 | } | |||
128 | } | |||
129 | return pythonic::numpy::functor::roll{}(state, pythonic::operator_::neg(idx), 0L); | |||
130 | } | |||
131 | } | |||
132 | #include <pythonic/python/exception_handler.hpp> | |||
133 | #ifdef ENABLE_PYTHON_MODULE1 | |||
134 | typename __pythran__max_len_seq_inner::_max_len_seq_inner::type<pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long>>, pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>, long, long, pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>>::result_type _max_len_seq_inner0(pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long>>&& taps, pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>&& state, long&& nbits, long&& length, pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>&& seq) | |||
135 | { | |||
136 | ||||
137 | PyThreadState *_save = PyEval_SaveThread(); | |||
138 | try { | |||
139 | auto res = __pythran__max_len_seq_inner::_max_len_seq_inner()(taps, state, nbits, length, seq); | |||
140 | PyEval_RestoreThread(_save); | |||
141 | return res; | |||
142 | } | |||
143 | catch(...) { | |||
144 | PyEval_RestoreThread(_save); | |||
145 | throw; | |||
146 | } | |||
147 | ; | |||
148 | } | |||
149 | ||||
150 | static PyObject * | |||
151 | __pythran_wrap__max_len_seq_inner0(PyObject *self, PyObject *args, PyObject *kw) | |||
152 | { | |||
153 | PyObject* args_obj[5+1]; | |||
154 | ||||
155 | char const* keywords[] = {"taps", "state", "nbits", "length", "seq", nullptr}; | |||
156 | if(! PyArg_ParseTupleAndKeywords(args, kw, "OOOOO", | |||
157 | (char**)keywords , &args_obj[0], &args_obj[1], &args_obj[2], &args_obj[3], &args_obj[4])) | |||
158 | return nullptr; | |||
159 | if(is_convertible<pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long>>>(args_obj[0]) && is_convertible<pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>>(args_obj[1]) && is_convertible<long>(args_obj[2]) && is_convertible<long>(args_obj[3]) && is_convertible<pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>>(args_obj[4])) | |||
160 | return to_python(_max_len_seq_inner0(from_python<pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long>>>(args_obj[0]), from_python<pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>>(args_obj[1]), from_python<long>(args_obj[2]), from_python<long>(args_obj[3]), from_python<pythonic::types::ndarray<npy_int8,pythonic::types::pshape<long>>>(args_obj[4]))); | |||
161 | else { | |||
162 | return nullptr; | |||
163 | } | |||
164 | } | |||
165 | ||||
166 | static PyObject * | |||
167 | __pythran_wrapall__max_len_seq_inner(PyObject *self, PyObject *args, PyObject *kw) | |||
168 | { | |||
169 | return pythonic::handle_python_exception([self, args, kw]() | |||
170 | -> PyObject* { | |||
171 | ||||
172 | if(PyObject* obj = __pythran_wrap__max_len_seq_inner0(self, args, kw)) | |||
173 | return obj; | |||
174 | PyErr_Clear(); | |||
175 | ||||
176 | return pythonic::python::raise_invalid_argument( | |||
177 | "_max_len_seq_inner", "\n"" - _max_len_seq_inner(int64[:], int8[:], int, int, int8[:])", args, kw); | |||
178 | }); | |||
179 | } | |||
180 | ||||
181 | ||||
182 | static PyMethodDef Methods[] = { | |||
183 | { | |||
184 | "_max_len_seq_inner", | |||
185 | (PyCFunction)__pythran_wrapall__max_len_seq_inner, | |||
186 | METH_VARARGS0x0001 | METH_KEYWORDS0x0002, | |||
187 | "Supported prototypes:\n""\n"" - _max_len_seq_inner(int64[:], int8[:], int, int, int8[:])"}, | |||
188 | {NULL__null, NULL__null, 0, NULL__null} | |||
189 | }; | |||
190 | ||||
191 | ||||
192 | #if PY_MAJOR_VERSION3 >= 3 | |||
193 | static struct PyModuleDef moduledef = { | |||
194 | PyModuleDef_HEAD_INIT{ { 1, __null }, __null, 0, __null, }, | |||
195 | "_max_len_seq_inner", /* m_name */ | |||
196 | "", /* m_doc */ | |||
197 | -1, /* m_size */ | |||
198 | Methods, /* m_methods */ | |||
199 | NULL__null, /* m_reload */ | |||
200 | NULL__null, /* m_traverse */ | |||
201 | NULL__null, /* m_clear */ | |||
202 | NULL__null, /* m_free */ | |||
203 | }; | |||
204 | #define PYTHRAN_RETURNreturn theModule return theModule | |||
205 | #define PYTHRAN_MODULE_INIT(s)PyInit_s PyInit_##s | |||
206 | #else | |||
207 | #define PYTHRAN_RETURNreturn theModule return | |||
208 | #define PYTHRAN_MODULE_INIT(s)PyInit_s init##s | |||
209 | #endif | |||
210 | PyMODINIT_FUNCextern "C" PyObject* | |||
211 | PYTHRAN_MODULE_INIT(_max_len_seq_inner)PyInit__max_len_seq_inner(void) | |||
212 | #ifndef _WIN32 | |||
213 | __attribute__ ((visibility("default"))) | |||
214 | #if defined(GNUC) && !defined(__clang__1) | |||
215 | __attribute__ ((externally_visible)) | |||
216 | #endif | |||
217 | #endif | |||
218 | ; | |||
219 | PyMODINIT_FUNCextern "C" PyObject* | |||
220 | PYTHRAN_MODULE_INIT(_max_len_seq_inner)PyInit__max_len_seq_inner(void) { | |||
221 | import_array(){if (_import_array() < 0) {PyErr_Print(); PyErr_SetString( PyExc_ImportError, "numpy.core.multiarray failed to import"); return __null; } } | |||
| ||||
222 | #if PY_MAJOR_VERSION3 >= 3 | |||
223 | PyObject* theModule = PyModule_Create(&moduledef)PyModule_Create2(&moduledef, 1013); | |||
224 | #else | |||
225 | PyObject* theModule = Py_InitModule3("_max_len_seq_inner", | |||
226 | Methods, | |||
227 | "" | |||
228 | ); | |||
229 | #endif | |||
230 | if(! theModule) | |||
231 | PYTHRAN_RETURNreturn theModule; | |||
232 | PyObject * theDoc = Py_BuildValue("(sss)", | |||
| ||||
233 | "0.9.12", | |||
234 | "2021-07-14 11:02:32.655231", | |||
235 | "ccd4c6b01dd37c8a698a8beaea85985732ea19d0ab7d0883d689f577fbda0424"); | |||
236 | if(! theDoc) | |||
237 | PYTHRAN_RETURNreturn theModule; | |||
238 | PyModule_AddObject(theModule, | |||
239 | "__pythran__", | |||
240 | theDoc); | |||
241 | ||||
242 | ||||
243 | PYTHRAN_RETURNreturn theModule; | |||
244 | } | |||
245 | ||||
246 | #endif |
1 | #ifndef Py_BuildValue |
2 | struct _object; |
3 | typedef struct _object PyObject; |
4 | PyObject* clang_analyzer_PyObject_New_Reference(); |
5 | PyObject* Py_BuildValue(const char *format, ...) { |
6 | return clang_analyzer_PyObject_New_Reference(); |
7 | } |
8 | #else |
9 | #warning "API Py_BuildValue is defined as a macro." |
10 | #endif |