File: | /tmp/pyrefcon/scipy/scipy/signal/_spectral.cpp |
Warning: | line 386, 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/ndarray.hpp> | |||
9 | #include <pythonic/include/types/float64.hpp> | |||
10 | #include <pythonic/types/float64.hpp> | |||
11 | #include <pythonic/types/ndarray.hpp> | |||
12 | #include <pythonic/include/builtins/ValueError.hpp> | |||
13 | #include <pythonic/include/builtins/ZeroDivisionError.hpp> | |||
14 | #include <pythonic/include/builtins/getattr.hpp> | |||
15 | #include <pythonic/include/builtins/range.hpp> | |||
16 | #include <pythonic/include/numpy/arctan2.hpp> | |||
17 | #include <pythonic/include/numpy/cos.hpp> | |||
18 | #include <pythonic/include/numpy/empty_like.hpp> | |||
19 | #include <pythonic/include/numpy/sin.hpp> | |||
20 | #include <pythonic/include/numpy/square.hpp> | |||
21 | #include <pythonic/include/operator_/add.hpp> | |||
22 | #include <pythonic/include/operator_/div.hpp> | |||
23 | #include <pythonic/include/operator_/eq.hpp> | |||
24 | #include <pythonic/include/operator_/iadd.hpp> | |||
25 | #include <pythonic/include/operator_/mul.hpp> | |||
26 | #include <pythonic/include/operator_/ne.hpp> | |||
27 | #include <pythonic/include/operator_/sub.hpp> | |||
28 | #include <pythonic/include/types/slice.hpp> | |||
29 | #include <pythonic/include/types/str.hpp> | |||
30 | #include <pythonic/builtins/ValueError.hpp> | |||
31 | #include <pythonic/builtins/ZeroDivisionError.hpp> | |||
32 | #include <pythonic/builtins/getattr.hpp> | |||
33 | #include <pythonic/builtins/range.hpp> | |||
34 | #include <pythonic/numpy/arctan2.hpp> | |||
35 | #include <pythonic/numpy/cos.hpp> | |||
36 | #include <pythonic/numpy/empty_like.hpp> | |||
37 | #include <pythonic/numpy/sin.hpp> | |||
38 | #include <pythonic/numpy/square.hpp> | |||
39 | #include <pythonic/operator_/add.hpp> | |||
40 | #include <pythonic/operator_/div.hpp> | |||
41 | #include <pythonic/operator_/eq.hpp> | |||
42 | #include <pythonic/operator_/iadd.hpp> | |||
43 | #include <pythonic/operator_/mul.hpp> | |||
44 | #include <pythonic/operator_/ne.hpp> | |||
45 | #include <pythonic/operator_/sub.hpp> | |||
46 | #include <pythonic/types/slice.hpp> | |||
47 | #include <pythonic/types/str.hpp> | |||
48 | namespace __pythran__spectral | |||
49 | { | |||
50 | struct _lombscargle | |||
51 | { | |||
52 | typedef void callable; | |||
53 | typedef void pure; | |||
54 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 > | |||
55 | struct type | |||
56 | { | |||
57 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::empty_like{})>::type>::type __type0; | |||
58 | typedef typename std::remove_cv<typename std::remove_reference<argument_type2>::type>::type __type1; | |||
59 | typedef typename pythonic::assignable<decltype(std::declval<__type0>()(std::declval<__type1>()))>::type __type2; | |||
60 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::builtins::functor::range{})>::type>::type __type3; | |||
61 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type1>())) __type5; | |||
62 | typedef typename std::tuple_element<0,typename std::remove_reference<__type5>::type>::type __type6; | |||
63 | typedef decltype(std::declval<__type3>()(std::declval<__type6>())) __type7; | |||
64 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type __type8; | |||
65 | typedef indexable<__type8> __type9; | |||
66 | typedef typename __combined<__type2,__type9>::type __type10; | |||
67 | typedef double __type11; | |||
68 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::square{})>::type>::type __type12; | |||
69 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::cos{})>::type>::type __type13; | |||
70 | typedef decltype(std::declval<__type1>()[std::declval<__type8>()]) __type16; | |||
71 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::arctan2{})>::type>::type __type17; | |||
72 | typedef long __type18; | |||
73 | typedef typename pythonic::assignable<double>::type __type19; | |||
74 | typedef typename std::remove_cv<typename std::remove_reference<argument_type0>::type>::type __type20; | |||
75 | typedef typename pythonic::assignable<decltype(std::declval<__type0>()(std::declval<__type20>()))>::type __type21; | |||
76 | typedef decltype(pythonic::operator_::mul(std::declval<__type16>(), std::declval<__type20>())) __type26; | |||
77 | typedef decltype(std::declval<__type13>()(std::declval<__type26>())) __type27; | |||
78 | typedef typename __combined<__type21,__type27>::type __type28; | |||
79 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type20>())) __type30; | |||
80 | typedef typename std::tuple_element<0,typename std::remove_reference<__type30>::type>::type __type31; | |||
81 | typedef decltype(std::declval<__type3>()(std::declval<__type31>())) __type32; | |||
82 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type32>::type::iterator>::value_type>::type __type33; | |||
83 | typedef decltype(std::declval<__type28>()[std::declval<__type33>()]) __type34; | |||
84 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::sin{})>::type>::type __type37; | |||
85 | typedef decltype(std::declval<__type37>()(std::declval<__type26>())) __type43; | |||
86 | typedef typename __combined<__type21,__type43>::type __type44; | |||
87 | typedef decltype(std::declval<__type44>()[std::declval<__type33>()]) __type46; | |||
88 | typedef decltype(pythonic::operator_::mul(std::declval<__type34>(), std::declval<__type46>())) __type47; | |||
89 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type47>())) __type48; | |||
90 | typedef typename __combined<__type19,__type48>::type __type49; | |||
91 | typedef typename __combined<__type49,__type47>::type __type50; | |||
92 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type50>())) __type51; | |||
93 | typedef decltype(std::declval<__type12>()(std::declval<__type34>())) __type55; | |||
94 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type55>())) __type56; | |||
95 | typedef typename __combined<__type19,__type56>::type __type57; | |||
96 | typedef typename __combined<__type57,__type55>::type __type58; | |||
97 | typedef decltype(std::declval<__type12>()(std::declval<__type46>())) __type62; | |||
98 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type62>())) __type63; | |||
99 | typedef typename __combined<__type19,__type63>::type __type64; | |||
100 | typedef typename __combined<__type64,__type62>::type __type65; | |||
101 | typedef decltype(pythonic::operator_::sub(std::declval<__type58>(), std::declval<__type65>())) __type66; | |||
102 | typedef decltype(std::declval<__type17>()(std::declval<__type51>(), std::declval<__type66>())) __type67; | |||
103 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type16>())) __type71; | |||
104 | typedef typename pythonic::assignable<decltype(pythonic::operator_::div(std::declval<__type67>(), std::declval<__type71>()))>::type __type72; | |||
105 | typedef decltype(pythonic::operator_::mul(std::declval<__type16>(), std::declval<__type72>())) __type73; | |||
106 | typedef typename pythonic::assignable<decltype(std::declval<__type13>()(std::declval<__type73>()))>::type __type74; | |||
107 | typedef typename std::remove_cv<typename std::remove_reference<argument_type1>::type>::type __type75; | |||
108 | typedef decltype(std::declval<__type75>()[std::declval<__type33>()]) __type77; | |||
109 | typedef decltype(pythonic::operator_::mul(std::declval<__type77>(), std::declval<__type34>())) __type81; | |||
110 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type81>())) __type82; | |||
111 | typedef typename __combined<__type19,__type82>::type __type83; | |||
112 | typedef typename __combined<__type83,__type81>::type __type84; | |||
113 | typedef decltype(pythonic::operator_::mul(std::declval<__type74>(), std::declval<__type84>())) __type85; | |||
114 | typedef typename pythonic::assignable<decltype(std::declval<__type37>()(std::declval<__type73>()))>::type __type91; | |||
115 | typedef decltype(pythonic::operator_::mul(std::declval<__type77>(), std::declval<__type46>())) __type98; | |||
116 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type98>())) __type99; | |||
117 | typedef typename __combined<__type19,__type99>::type __type100; | |||
118 | typedef typename __combined<__type100,__type98>::type __type101; | |||
119 | typedef decltype(pythonic::operator_::mul(std::declval<__type91>(), std::declval<__type101>())) __type102; | |||
120 | typedef decltype(pythonic::operator_::add(std::declval<__type85>(), std::declval<__type102>())) __type103; | |||
121 | typedef decltype(std::declval<__type12>()(std::declval<__type103>())) __type104; | |||
122 | typedef typename pythonic::assignable<decltype(std::declval<__type12>()(std::declval<__type74>()))>::type __type106; | |||
123 | typedef decltype(pythonic::operator_::mul(std::declval<__type106>(), std::declval<__type58>())) __type108; | |||
124 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type74>())) __type110; | |||
125 | typedef typename pythonic::assignable<decltype(pythonic::operator_::mul(std::declval<__type110>(), std::declval<__type91>()))>::type __type112; | |||
126 | typedef decltype(pythonic::operator_::mul(std::declval<__type112>(), std::declval<__type50>())) __type114; | |||
127 | typedef decltype(pythonic::operator_::add(std::declval<__type108>(), std::declval<__type114>())) __type115; | |||
128 | typedef typename pythonic::assignable<decltype(std::declval<__type12>()(std::declval<__type91>()))>::type __type117; | |||
129 | typedef decltype(pythonic::operator_::mul(std::declval<__type117>(), std::declval<__type65>())) __type119; | |||
130 | typedef decltype(pythonic::operator_::add(std::declval<__type115>(), std::declval<__type119>())) __type120; | |||
131 | typedef decltype(pythonic::operator_::div(std::declval<__type104>(), std::declval<__type120>())) __type121; | |||
132 | typedef decltype(pythonic::operator_::mul(std::declval<__type74>(), std::declval<__type101>())) __type124; | |||
133 | typedef decltype(pythonic::operator_::mul(std::declval<__type91>(), std::declval<__type84>())) __type127; | |||
134 | typedef decltype(pythonic::operator_::sub(std::declval<__type124>(), std::declval<__type127>())) __type128; | |||
135 | typedef decltype(std::declval<__type12>()(std::declval<__type128>())) __type129; | |||
136 | typedef decltype(pythonic::operator_::mul(std::declval<__type106>(), std::declval<__type65>())) __type132; | |||
137 | typedef decltype(pythonic::operator_::sub(std::declval<__type132>(), std::declval<__type114>())) __type136; | |||
138 | typedef decltype(pythonic::operator_::mul(std::declval<__type117>(), std::declval<__type58>())) __type139; | |||
139 | typedef decltype(pythonic::operator_::add(std::declval<__type136>(), std::declval<__type139>())) __type140; | |||
140 | typedef decltype(pythonic::operator_::div(std::declval<__type129>(), std::declval<__type140>())) __type141; | |||
141 | typedef decltype(pythonic::operator_::add(std::declval<__type121>(), std::declval<__type141>())) __type142; | |||
142 | typedef decltype(pythonic::operator_::mul(std::declval<__type11>(), std::declval<__type142>())) __type143; | |||
143 | typedef container<typename std::remove_reference<__type143>::type> __type144; | |||
144 | typedef typename pythonic::returnable<typename __combined<__type10,__type144,__type9>::type>::type result_type; | |||
145 | } | |||
146 | ; | |||
147 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 > | |||
148 | typename type<argument_type0, argument_type1, argument_type2>::result_type operator()(argument_type0&& x, argument_type1&& y, argument_type2&& freqs) const | |||
149 | ; | |||
150 | } ; | |||
151 | template <typename argument_type0 , typename argument_type1 , typename argument_type2 > | |||
152 | typename _lombscargle::type<argument_type0, argument_type1, argument_type2>::result_type _lombscargle::operator()(argument_type0&& x, argument_type1&& y, argument_type2&& freqs) const | |||
153 | { | |||
154 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::empty_like{})>::type>::type __type0; | |||
155 | typedef typename std::remove_cv<typename std::remove_reference<argument_type2>::type>::type __type1; | |||
156 | typedef typename pythonic::assignable<decltype(std::declval<__type0>()(std::declval<__type1>()))>::type __type2; | |||
157 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::builtins::functor::range{})>::type>::type __type3; | |||
158 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type1>())) __type5; | |||
159 | typedef typename std::tuple_element<0,typename std::remove_reference<__type5>::type>::type __type6; | |||
160 | typedef decltype(std::declval<__type3>()(std::declval<__type6>())) __type7; | |||
161 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type __type8; | |||
162 | typedef indexable<__type8> __type9; | |||
163 | typedef typename __combined<__type2,__type9>::type __type10; | |||
164 | typedef double __type11; | |||
165 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::square{})>::type>::type __type12; | |||
166 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::cos{})>::type>::type __type13; | |||
167 | typedef decltype(std::declval<__type1>()[std::declval<__type8>()]) __type16; | |||
168 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::arctan2{})>::type>::type __type17; | |||
169 | typedef long __type18; | |||
170 | typedef typename pythonic::assignable<double>::type __type19; | |||
171 | typedef typename std::remove_cv<typename std::remove_reference<argument_type0>::type>::type __type20; | |||
172 | typedef typename pythonic::assignable<decltype(std::declval<__type0>()(std::declval<__type20>()))>::type __type21; | |||
173 | typedef decltype(pythonic::operator_::mul(std::declval<__type16>(), std::declval<__type20>())) __type26; | |||
174 | typedef decltype(std::declval<__type13>()(std::declval<__type26>())) __type27; | |||
175 | typedef typename __combined<__type21,__type27>::type __type28; | |||
176 | typedef decltype(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, std::declval<__type20>())) __type30; | |||
177 | typedef typename std::tuple_element<0,typename std::remove_reference<__type30>::type>::type __type31; | |||
178 | typedef decltype(std::declval<__type3>()(std::declval<__type31>())) __type32; | |||
179 | typedef typename std::remove_cv<typename std::iterator_traits<typename std::remove_reference<__type32>::type::iterator>::value_type>::type __type33; | |||
180 | typedef decltype(std::declval<__type28>()[std::declval<__type33>()]) __type34; | |||
181 | typedef typename std::remove_cv<typename std::remove_reference<decltype(pythonic::numpy::functor::sin{})>::type>::type __type37; | |||
182 | typedef decltype(std::declval<__type37>()(std::declval<__type26>())) __type43; | |||
183 | typedef typename __combined<__type21,__type43>::type __type44; | |||
184 | typedef decltype(std::declval<__type44>()[std::declval<__type33>()]) __type46; | |||
185 | typedef decltype(pythonic::operator_::mul(std::declval<__type34>(), std::declval<__type46>())) __type47; | |||
186 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type47>())) __type48; | |||
187 | typedef typename __combined<__type19,__type48>::type __type49; | |||
188 | typedef typename __combined<__type49,__type47>::type __type50; | |||
189 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type50>())) __type51; | |||
190 | typedef decltype(std::declval<__type12>()(std::declval<__type34>())) __type55; | |||
191 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type55>())) __type56; | |||
192 | typedef typename __combined<__type19,__type56>::type __type57; | |||
193 | typedef typename __combined<__type57,__type55>::type __type58; | |||
194 | typedef decltype(std::declval<__type12>()(std::declval<__type46>())) __type62; | |||
195 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type62>())) __type63; | |||
196 | typedef typename __combined<__type19,__type63>::type __type64; | |||
197 | typedef typename __combined<__type64,__type62>::type __type65; | |||
198 | typedef decltype(pythonic::operator_::sub(std::declval<__type58>(), std::declval<__type65>())) __type66; | |||
199 | typedef decltype(std::declval<__type17>()(std::declval<__type51>(), std::declval<__type66>())) __type67; | |||
200 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type16>())) __type71; | |||
201 | typedef typename pythonic::assignable<decltype(pythonic::operator_::div(std::declval<__type67>(), std::declval<__type71>()))>::type __type72; | |||
202 | typedef decltype(pythonic::operator_::mul(std::declval<__type16>(), std::declval<__type72>())) __type73; | |||
203 | typedef typename pythonic::assignable<decltype(std::declval<__type13>()(std::declval<__type73>()))>::type __type74; | |||
204 | typedef typename std::remove_cv<typename std::remove_reference<argument_type1>::type>::type __type75; | |||
205 | typedef decltype(std::declval<__type75>()[std::declval<__type33>()]) __type77; | |||
206 | typedef decltype(pythonic::operator_::mul(std::declval<__type77>(), std::declval<__type34>())) __type81; | |||
207 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type81>())) __type82; | |||
208 | typedef typename __combined<__type19,__type82>::type __type83; | |||
209 | typedef typename __combined<__type83,__type81>::type __type84; | |||
210 | typedef decltype(pythonic::operator_::mul(std::declval<__type74>(), std::declval<__type84>())) __type85; | |||
211 | typedef typename pythonic::assignable<decltype(std::declval<__type37>()(std::declval<__type73>()))>::type __type91; | |||
212 | typedef decltype(pythonic::operator_::mul(std::declval<__type77>(), std::declval<__type46>())) __type98; | |||
213 | typedef decltype(pythonic::operator_::add(std::declval<__type19>(), std::declval<__type98>())) __type99; | |||
214 | typedef typename __combined<__type19,__type99>::type __type100; | |||
215 | typedef typename __combined<__type100,__type98>::type __type101; | |||
216 | typedef decltype(pythonic::operator_::mul(std::declval<__type91>(), std::declval<__type101>())) __type102; | |||
217 | typedef decltype(pythonic::operator_::add(std::declval<__type85>(), std::declval<__type102>())) __type103; | |||
218 | typedef decltype(std::declval<__type12>()(std::declval<__type103>())) __type104; | |||
219 | typedef typename pythonic::assignable<decltype(std::declval<__type12>()(std::declval<__type74>()))>::type __type106; | |||
220 | typedef decltype(pythonic::operator_::mul(std::declval<__type106>(), std::declval<__type58>())) __type108; | |||
221 | typedef decltype(pythonic::operator_::mul(std::declval<__type18>(), std::declval<__type74>())) __type110; | |||
222 | typedef typename pythonic::assignable<decltype(pythonic::operator_::mul(std::declval<__type110>(), std::declval<__type91>()))>::type __type112; | |||
223 | typedef decltype(pythonic::operator_::mul(std::declval<__type112>(), std::declval<__type50>())) __type114; | |||
224 | typedef decltype(pythonic::operator_::add(std::declval<__type108>(), std::declval<__type114>())) __type115; | |||
225 | typedef typename pythonic::assignable<decltype(std::declval<__type12>()(std::declval<__type91>()))>::type __type117; | |||
226 | typedef decltype(pythonic::operator_::mul(std::declval<__type117>(), std::declval<__type65>())) __type119; | |||
227 | typedef decltype(pythonic::operator_::add(std::declval<__type115>(), std::declval<__type119>())) __type120; | |||
228 | typedef decltype(pythonic::operator_::div(std::declval<__type104>(), std::declval<__type120>())) __type121; | |||
229 | typedef decltype(pythonic::operator_::mul(std::declval<__type74>(), std::declval<__type101>())) __type124; | |||
230 | typedef decltype(pythonic::operator_::mul(std::declval<__type91>(), std::declval<__type84>())) __type127; | |||
231 | typedef decltype(pythonic::operator_::sub(std::declval<__type124>(), std::declval<__type127>())) __type128; | |||
232 | typedef decltype(std::declval<__type12>()(std::declval<__type128>())) __type129; | |||
233 | typedef decltype(pythonic::operator_::mul(std::declval<__type106>(), std::declval<__type65>())) __type132; | |||
234 | typedef decltype(pythonic::operator_::sub(std::declval<__type132>(), std::declval<__type114>())) __type136; | |||
235 | typedef decltype(pythonic::operator_::mul(std::declval<__type117>(), std::declval<__type58>())) __type139; | |||
236 | typedef decltype(pythonic::operator_::add(std::declval<__type136>(), std::declval<__type139>())) __type140; | |||
237 | typedef decltype(pythonic::operator_::div(std::declval<__type129>(), std::declval<__type140>())) __type141; | |||
238 | typedef decltype(pythonic::operator_::add(std::declval<__type121>(), std::declval<__type141>())) __type142; | |||
239 | typedef decltype(pythonic::operator_::mul(std::declval<__type11>(), std::declval<__type142>())) __type143; | |||
240 | typedef container<typename std::remove_reference<__type143>::type> __type144; | |||
241 | if (pythonic::operator_::ne(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, x), pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, y))) | |||
242 | { | |||
243 | throw pythonic::builtins::functor::ValueError{}(pythonic::types::str("Input arrays do not have the same size.")); | |||
244 | } | |||
245 | typename pythonic::assignable<typename __combined<__type10,__type144,__type9>::type>::type pgram = pythonic::numpy::functor::empty_like{}(freqs); | |||
246 | typename pythonic::assignable<typename __combined<__type21,__type27>::type>::type c = pythonic::numpy::functor::empty_like{}(x); | |||
247 | typename pythonic::assignable<typename __combined<__type21,__type43>::type>::type s = pythonic::numpy::functor::empty_like{}(x); | |||
248 | { | |||
249 | long __target139669607991184 = std::get<0>(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, freqs)); | |||
250 | for (long i=0L; i < __target139669607991184; i += 1L) | |||
251 | { | |||
252 | typename pythonic::assignable<typename __combined<__type83,__type81>::type>::type xc = 0.0; | |||
253 | typename pythonic::assignable<typename __combined<__type100,__type98>::type>::type xs = 0.0; | |||
254 | typename pythonic::assignable<typename __combined<__type57,__type55>::type>::type cc = 0.0; | |||
255 | typename pythonic::assignable<typename __combined<__type64,__type62>::type>::type ss = 0.0; | |||
256 | typename pythonic::assignable<typename __combined<__type49,__type47>::type>::type cs = 0.0; | |||
257 | c[pythonic::types::contiguous_slice(pythonic::builtins::None,pythonic::builtins::None)] = pythonic::numpy::functor::cos{}(pythonic::operator_::mul(freqs.fast(i), x)); | |||
258 | s[pythonic::types::contiguous_slice(pythonic::builtins::None,pythonic::builtins::None)] = pythonic::numpy::functor::sin{}(pythonic::operator_::mul(freqs.fast(i), x)); | |||
259 | { | |||
260 | long __target139669607995040 = std::get<0>(pythonic::builtins::getattr(pythonic::types::attr::SHAPE{}, x)); | |||
261 | for (long j=0L; j < __target139669607995040; j += 1L) | |||
262 | { | |||
263 | xc += pythonic::operator_::mul(y.fast(j), c.fast(j)); | |||
264 | xs += pythonic::operator_::mul(y.fast(j), s.fast(j)); | |||
265 | cc += pythonic::numpy::functor::square{}(c.fast(j)); | |||
266 | ss += pythonic::numpy::functor::square{}(s.fast(j)); | |||
267 | cs += pythonic::operator_::mul(c.fast(j), s.fast(j)); | |||
268 | } | |||
269 | } | |||
270 | if (pythonic::operator_::eq(freqs.fast(i), 0L)) | |||
271 | { | |||
272 | throw pythonic::builtins::functor::ZeroDivisionError{}(); | |||
273 | } | |||
274 | typename pythonic::assignable_noescape<decltype(pythonic::operator_::div(pythonic::numpy::functor::arctan2{}(pythonic::operator_::mul(2L, cs), pythonic::operator_::sub(cc, ss)), pythonic::operator_::mul(2L, freqs.fast(i))))>::type tau = pythonic::operator_::div(pythonic::numpy::functor::arctan2{}(pythonic::operator_::mul(2L, cs), pythonic::operator_::sub(cc, ss)), pythonic::operator_::mul(2L, freqs.fast(i))); | |||
275 | typename pythonic::assignable_noescape<decltype(pythonic::numpy::functor::cos{}(pythonic::operator_::mul(freqs.fast(i), tau)))>::type c_tau = pythonic::numpy::functor::cos{}(pythonic::operator_::mul(freqs.fast(i), tau)); | |||
276 | typename pythonic::assignable_noescape<decltype(pythonic::numpy::functor::sin{}(pythonic::operator_::mul(freqs.fast(i), tau)))>::type s_tau = pythonic::numpy::functor::sin{}(pythonic::operator_::mul(freqs.fast(i), tau)); | |||
277 | typename pythonic::assignable_noescape<decltype(pythonic::numpy::functor::square{}(c_tau))>::type c_tau2 = pythonic::numpy::functor::square{}(c_tau); | |||
278 | typename pythonic::assignable_noescape<decltype(pythonic::numpy::functor::square{}(s_tau))>::type s_tau2 = pythonic::numpy::functor::square{}(s_tau); | |||
279 | typename pythonic::assignable_noescape<decltype(pythonic::operator_::mul(pythonic::operator_::mul(2L, c_tau), s_tau))>::type cs_tau = pythonic::operator_::mul(pythonic::operator_::mul(2L, c_tau), s_tau); | |||
280 | pgram.fast(i) = pythonic::operator_::mul(0.5, pythonic::operator_::add(pythonic::operator_::div(pythonic::numpy::functor::square{}(pythonic::operator_::add(pythonic::operator_::mul(c_tau, xc), pythonic::operator_::mul(s_tau, xs))), pythonic::operator_::add(pythonic::operator_::add(pythonic::operator_::mul(c_tau2, cc), pythonic::operator_::mul(cs_tau, cs)), pythonic::operator_::mul(s_tau2, ss))), pythonic::operator_::div(pythonic::numpy::functor::square{}(pythonic::operator_::sub(pythonic::operator_::mul(c_tau, xs), pythonic::operator_::mul(s_tau, xc))), pythonic::operator_::add(pythonic::operator_::sub(pythonic::operator_::mul(c_tau2, ss), pythonic::operator_::mul(cs_tau, cs)), pythonic::operator_::mul(s_tau2, cc))))); | |||
281 | } | |||
282 | } | |||
283 | return pgram; | |||
284 | } | |||
285 | } | |||
286 | #include <pythonic/python/exception_handler.hpp> | |||
287 | #ifdef ENABLE_PYTHON_MODULE1 | |||
288 | typename __pythran__spectral::_lombscargle::type<pythonic::types::ndarray<double,pythonic::types::pshape<long>>, pythonic::types::ndarray<double,pythonic::types::pshape<long>>, pythonic::types::ndarray<double,pythonic::types::pshape<long>>>::result_type _lombscargle0(pythonic::types::ndarray<double,pythonic::types::pshape<long>>&& x, pythonic::types::ndarray<double,pythonic::types::pshape<long>>&& y, pythonic::types::ndarray<double,pythonic::types::pshape<long>>&& freqs) | |||
289 | { | |||
290 | ||||
291 | PyThreadState *_save = PyEval_SaveThread(); | |||
292 | try { | |||
293 | auto res = __pythran__spectral::_lombscargle()(x, y, freqs); | |||
294 | PyEval_RestoreThread(_save); | |||
295 | return res; | |||
296 | } | |||
297 | catch(...) { | |||
298 | PyEval_RestoreThread(_save); | |||
299 | throw; | |||
300 | } | |||
301 | ; | |||
302 | } | |||
303 | ||||
304 | static PyObject * | |||
305 | __pythran_wrap__lombscargle0(PyObject *self, PyObject *args, PyObject *kw) | |||
306 | { | |||
307 | PyObject* args_obj[3+1]; | |||
308 | ||||
309 | char const* keywords[] = {"x", "y", "freqs", nullptr}; | |||
310 | if(! PyArg_ParseTupleAndKeywords(args, kw, "OOO", | |||
311 | (char**)keywords , &args_obj[0], &args_obj[1], &args_obj[2])) | |||
312 | return nullptr; | |||
313 | if(is_convertible<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[0]) && is_convertible<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[1]) && is_convertible<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[2])) | |||
314 | return to_python(_lombscargle0(from_python<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[0]), from_python<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[1]), from_python<pythonic::types::ndarray<double,pythonic::types::pshape<long>>>(args_obj[2]))); | |||
315 | else { | |||
316 | return nullptr; | |||
317 | } | |||
318 | } | |||
319 | ||||
320 | static PyObject * | |||
321 | __pythran_wrapall__lombscargle(PyObject *self, PyObject *args, PyObject *kw) | |||
322 | { | |||
323 | return pythonic::handle_python_exception([self, args, kw]() | |||
324 | -> PyObject* { | |||
325 | ||||
326 | if(PyObject* obj = __pythran_wrap__lombscargle0(self, args, kw)) | |||
327 | return obj; | |||
328 | PyErr_Clear(); | |||
329 | ||||
330 | return pythonic::python::raise_invalid_argument( | |||
331 | "_lombscargle", "\n"" - _lombscargle(float64[:], float64[:], float64[:])", args, kw); | |||
332 | }); | |||
333 | } | |||
334 | ||||
335 | ||||
336 | static PyMethodDef Methods[] = { | |||
337 | { | |||
338 | "_lombscargle", | |||
339 | (PyCFunction)__pythran_wrapall__lombscargle, | |||
340 | METH_VARARGS0x0001 | METH_KEYWORDS0x0002, | |||
341 | "\n""_lombscargle(x, y, freqs)\n""\n""Supported prototypes:\n""\n""- _lombscargle(float64[:], float64[:], float64[:])\n""\n""Computes the Lomb-Scargle periodogram.\n""\n""Parameters\n""----------\n""x : array_like\n"" Sample times.\n""y : array_like\n"" Measurement values (must be registered so the mean is zero).\n""freqs : array_like\n"" Angular frequencies for output periodogram.\n""\n""Returns\n""-------\n""pgram : array_like\n"" Lomb-Scargle periodogram.\n""\n""Raises\n""------\n""ValueError\n"" If the input arrays `x` and `y` do not have the same shape.\n""\n""See also\n""--------\n""lombscargle\n""\n"""}, | |||
342 | {NULL__null, NULL__null, 0, NULL__null} | |||
343 | }; | |||
344 | ||||
345 | ||||
346 | #if PY_MAJOR_VERSION3 >= 3 | |||
347 | static struct PyModuleDef moduledef = { | |||
348 | PyModuleDef_HEAD_INIT{ { 1, __null }, __null, 0, __null, }, | |||
349 | "_spectral", /* m_name */ | |||
350 | "Tools for spectral analysis of unequally sampled signals.", /* m_doc */ | |||
351 | -1, /* m_size */ | |||
352 | Methods, /* m_methods */ | |||
353 | NULL__null, /* m_reload */ | |||
354 | NULL__null, /* m_traverse */ | |||
355 | NULL__null, /* m_clear */ | |||
356 | NULL__null, /* m_free */ | |||
357 | }; | |||
358 | #define PYTHRAN_RETURNreturn theModule return theModule | |||
359 | #define PYTHRAN_MODULE_INIT(s)PyInit_s PyInit_##s | |||
360 | #else | |||
361 | #define PYTHRAN_RETURNreturn theModule return | |||
362 | #define PYTHRAN_MODULE_INIT(s)PyInit_s init##s | |||
363 | #endif | |||
364 | PyMODINIT_FUNCextern "C" PyObject* | |||
365 | PYTHRAN_MODULE_INIT(_spectral)PyInit__spectral(void) | |||
366 | #ifndef _WIN32 | |||
367 | __attribute__ ((visibility("default"))) | |||
368 | #if defined(GNUC) && !defined(__clang__1) | |||
369 | __attribute__ ((externally_visible)) | |||
370 | #endif | |||
371 | #endif | |||
372 | ; | |||
373 | PyMODINIT_FUNCextern "C" PyObject* | |||
374 | PYTHRAN_MODULE_INIT(_spectral)PyInit__spectral(void) { | |||
375 | import_array(){if (_import_array() < 0) {PyErr_Print(); PyErr_SetString( PyExc_ImportError, "numpy.core.multiarray failed to import"); return __null; } } | |||
| ||||
376 | #if PY_MAJOR_VERSION3 >= 3 | |||
377 | PyObject* theModule = PyModule_Create(&moduledef)PyModule_Create2(&moduledef, 1013); | |||
378 | #else | |||
379 | PyObject* theModule = Py_InitModule3("_spectral", | |||
380 | Methods, | |||
381 | "Tools for spectral analysis of unequally sampled signals." | |||
382 | ); | |||
383 | #endif | |||
384 | if(! theModule) | |||
385 | PYTHRAN_RETURNreturn theModule; | |||
386 | PyObject * theDoc = Py_BuildValue("(sss)", | |||
| ||||
387 | "0.9.12", | |||
388 | "2021-07-14 11:02:33.631161", | |||
389 | "b56cff7c57981a37e4a502cd99394a47b45590ea94b06fe3923cf38ac2cdffd3"); | |||
390 | if(! theDoc) | |||
391 | PYTHRAN_RETURNreturn theModule; | |||
392 | PyModule_AddObject(theModule, | |||
393 | "__pythran__", | |||
394 | theDoc); | |||
395 | ||||
396 | ||||
397 | PYTHRAN_RETURNreturn theModule; | |||
398 | } | |||
399 | ||||
400 | #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 |