proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
cpostprocessing.c
Go to the documentation of this file.
1/* Generated by Cython 3.3.0 */
2
3/* BEGIN: Cython Metadata
4{
5 "distutils": {
6 "define_macros": [
7 [
8 "PROTEUS_LAPACK_H",
9 "\"proteus_lapack.h\""
10 ],
11 [
12 "PROTEUS_LAPACK_INTEGER",
13 "int"
14 ],
15 [
16 "PROTEUS_BLAS_H",
17 "\"proteus_blas.h\""
18 ]
19 ],
20 "depends": [
21 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayobject.h",
22 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayscalars.h",
23 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarrayobject.h",
24 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarraytypes.h",
25 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ufuncobject.h",
26 "proteus/postprocessing.h",
27 "proteus/postprocessing.pxd"
28 ],
29 "extra_compile_args": [
30 "-Wall",
31 "-DF77_POST_UNDERSCORE",
32 "-DUSE_BLAS",
33 "-DCMRVEC_BOUNDS_CHECK",
34 "-DMV_VECTOR_BOUNDS_CHECK",
35 "-DPETSC_INCLUDE_AS_C",
36 "-DPETSC_SKIP_COMPLEX"
37 ],
38 "extra_link_args": [
39 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
40 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
41 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
42 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
43 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
44 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
45 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
46 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib"
47 ],
48 "include_dirs": [
49 "proteus",
50 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include",
51 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include"
52 ],
53 "language": "c",
54 "libraries": [
55 "m",
56 "lapack",
57 "blas"
58 ],
59 "library_dirs": [
60 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib"
61 ],
62 "name": "cpostprocessing",
63 "sources": [
64 "proteus/cpostprocessing.pyx",
65 "proteus/postprocessing.c"
66 ]
67 },
68 "module_name": "cpostprocessing"
69}
70END: Cython Metadata */
71
72#ifndef PY_SSIZE_T_CLEAN
73#define PY_SSIZE_T_CLEAN
74#endif /* PY_SSIZE_T_CLEAN */
75/* InitLimitedAPI */
76#if defined(Py_LIMITED_API)
77 #if !defined(CYTHON_LIMITED_API)
78 #define CYTHON_LIMITED_API 1
79 #endif
80#elif defined(CYTHON_LIMITED_API)
81 #ifdef _MSC_VER
82 #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.")
83 #else
84 #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.
85 #endif
86#endif
87
88#include "Python.h"
89#ifndef Py_PYTHON_H
90 #error Python headers needed to compile C extensions, please install development version of Python.
91#elif PY_VERSION_HEX < 0x03090000
92 #error Cython requires Python 3.9+.
93#elif defined(Py_LIMITED_API) && (Py_LIMITED_API & 0xFFFF0000) > (PY_VERSION_HEX & 0xFFFF0000)
94 #error 'Py_LIMITED_API' can only select past Python X.Y versions, not future ones.
95#else
96#define __PYX_ABI_VERSION "3_3_0"
97#define CYTHON_HEX_VERSION 0x030300F0
98#define CYTHON_FUTURE_DIVISION 1
99/* CModulePreamble */
100#include <stddef.h>
101#ifndef offsetof
102 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
103#endif
104#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
105 #ifndef __stdcall
106 #define __stdcall
107 #endif
108 #ifndef __cdecl
109 #define __cdecl
110 #endif
111 #ifndef __fastcall
112 #define __fastcall
113 #endif
114#endif
115#ifdef __has_builtin
116 #define __Pyx_has_cbuiltin(name) __has_builtin(name)
117#else
118 #define __Pyx_has_cbuiltin(name) (0)
119#endif
120#ifndef DL_IMPORT
121 #define DL_IMPORT(t) t
122#endif
123#ifndef DL_EXPORT
124 #define DL_EXPORT(t) t
125#endif
126#define __PYX_COMMA ,
127#ifndef PY_LONG_LONG
128 #define PY_LONG_LONG LONG_LONG
129#endif
130#ifndef Py_HUGE_VAL
131 #define Py_HUGE_VAL HUGE_VAL
132#endif
133#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
134#if defined(CYTHON_LIMITED_API)
135 #ifdef Py_LIMITED_API
136 #undef __PYX_LIMITED_VERSION_HEX
137 #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
138 #if Py_LIMITED_API < 0x03090000
139 #error "Cython 3.3 requires the Python Limited API version to be 3.9 or greater."
140 #endif
141 #endif
142 #if defined(GRAALVM_PYTHON) || defined(PYPY_VERSION)
143 #ifdef _MSC_VER
144 #pragma message ("Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
145 code for PyPy and GraalPy and is unlikely to work.")
146 #else
147 #warning "Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
148 code for PyPy and GraalPy and is unlikely to work."
149 #endif
150 #endif
151 #define CYTHON_COMPILING_IN_PYPY 0
152 #define CYTHON_COMPILING_IN_CPYTHON 0
153 #define CYTHON_COMPILING_IN_LIMITED_API 1
154 #define CYTHON_COMPILING_IN_GRAAL 0
155 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
156 #undef CYTHON_USE_TYPE_SLOTS
157 #define CYTHON_USE_TYPE_SLOTS 0
158 #undef CYTHON_USE_TYPE_SPECS
159 #define CYTHON_USE_TYPE_SPECS 1
160 #undef CYTHON_USE_PYTYPE_LOOKUP
161 #define CYTHON_USE_PYTYPE_LOOKUP 0
162 #undef CYTHON_USE_PYLIST_INTERNALS
163 #define CYTHON_USE_PYLIST_INTERNALS 0
164 #undef CYTHON_USE_UNICODE_INTERNALS
165 #define CYTHON_USE_UNICODE_INTERNALS 0
166 #ifndef CYTHON_USE_UNICODE_WRITER
167 #define CYTHON_USE_UNICODE_WRITER 0
168 #endif
169 #undef CYTHON_USE_PYLONG_INTERNALS
170 #define CYTHON_USE_PYLONG_INTERNALS 0
171 #ifndef CYTHON_AVOID_BORROWED_REFS
172 #define CYTHON_AVOID_BORROWED_REFS 0
173 #endif
174 #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
175 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
176 #endif
177 #undef CYTHON_ASSUME_SAFE_MACROS
178 #define CYTHON_ASSUME_SAFE_MACROS 0
179 #undef CYTHON_ASSUME_SAFE_SIZE
180 #define CYTHON_ASSUME_SAFE_SIZE 0
181 #undef CYTHON_UNPACK_METHODS
182 #define CYTHON_UNPACK_METHODS 0
183 #undef CYTHON_FAST_THREAD_STATE
184 #define CYTHON_FAST_THREAD_STATE 0
185 #undef CYTHON_FAST_GIL
186 #define CYTHON_FAST_GIL 0
187 #undef CYTHON_VECTORCALL
188 #define CYTHON_VECTORCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
189 #ifndef CYTHON_VECTORCALL_TPNEW
190 #define CYTHON_VECTORCALL_TPNEW (CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
191 #endif
192 #ifndef CYTHON_PEP487_INIT_SUBCLASS
193 #define CYTHON_PEP487_INIT_SUBCLASS 1
194 #endif
195 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
196 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
197 #endif
198 #ifndef CYTHON_USE_MODULE_STATE
199 #define CYTHON_USE_MODULE_STATE 0
200 #endif
201 #undef CYTHON_USE_SYS_MONITORING
202 #define CYTHON_USE_SYS_MONITORING 0
203 #ifndef CYTHON_USE_TP_FINALIZE
204 #define CYTHON_USE_TP_FINALIZE (__PYX_LIMITED_VERSION_HEX >= 0x030F0000 && PY_VERSION_HEX > 0x030F00A8)
205 #endif
206 #ifndef CYTHON_USE_AM_SEND
207 #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
208 #endif
209 #undef CYTHON_USE_DICT_VERSIONS
210 #define CYTHON_USE_DICT_VERSIONS 0
211 #undef CYTHON_USE_EXC_INFO_STACK
212 #define CYTHON_USE_EXC_INFO_STACK 0
213 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
214 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
215 #endif
216 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
217 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
218 #endif
219 #ifndef CYTHON_USE_FREELISTS
220 #define CYTHON_USE_FREELISTS 1
221 #endif
222 #undef CYTHON_IMMORTAL_CONSTANTS
223 #define CYTHON_IMMORTAL_CONSTANTS 0
224 #if __PYX_LIMITED_VERSION_HEX < 0x030E0000
225 #undef CYTHON_OPAQUE_OBJECTS
226 #define CYTHON_OPAQUE_OBJECTS 0
227 #elif !defined(CYTHON_OPAQUE_OBJECTS)
228 #define CYTHON_OPAQUE_OBJECTS (__PYX_LIMITED_VERSION_HEX >= 0x030F0000)
229 #endif
230#elif defined(GRAALVM_PYTHON)
231 /* For very preliminary testing purposes. Most variables are set the same as PyPy.
232 The existence of this section does not imply that anything works or is even tested */
233 #define CYTHON_COMPILING_IN_PYPY 0
234 #define CYTHON_COMPILING_IN_CPYTHON 0
235 #define CYTHON_COMPILING_IN_LIMITED_API 0
236 #define CYTHON_COMPILING_IN_GRAAL 1
237 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
238 #ifndef CYTHON_USE_TYPE_SLOTS
239 #define CYTHON_USE_TYPE_SLOTS 0
240 #endif
241 #undef CYTHON_USE_TYPE_SPECS
242 #define CYTHON_USE_TYPE_SPECS 0
243 #undef CYTHON_USE_PYTYPE_LOOKUP
244 #define CYTHON_USE_PYTYPE_LOOKUP 0
245 #undef CYTHON_USE_PYLIST_INTERNALS
246 #define CYTHON_USE_PYLIST_INTERNALS 0
247 #undef CYTHON_USE_UNICODE_INTERNALS
248 #define CYTHON_USE_UNICODE_INTERNALS 0
249 #undef CYTHON_USE_UNICODE_WRITER
250 #define CYTHON_USE_UNICODE_WRITER 0
251 #undef CYTHON_USE_PYLONG_INTERNALS
252 #define CYTHON_USE_PYLONG_INTERNALS 0
253 #undef CYTHON_AVOID_BORROWED_REFS
254 #define CYTHON_AVOID_BORROWED_REFS 1
255 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
256 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
257 #undef CYTHON_ASSUME_SAFE_MACROS
258 #define CYTHON_ASSUME_SAFE_MACROS 0
259 #undef CYTHON_ASSUME_SAFE_SIZE
260 #define CYTHON_ASSUME_SAFE_SIZE 0
261 #undef CYTHON_UNPACK_METHODS
262 #define CYTHON_UNPACK_METHODS 0
263 #undef CYTHON_FAST_THREAD_STATE
264 #define CYTHON_FAST_THREAD_STATE 0
265 #undef CYTHON_FAST_GIL
266 #define CYTHON_FAST_GIL 0
267 #ifndef CYTHON_VECTORCALL
268 #define CYTHON_VECTORCALL 1
269 #endif
270 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
271 #undef CYTHON_VECTORCALL_TPNEW
272 #define CYTHON_VECTORCALL_TPNEW 0
273 #elif !defined(CYTHON_VECTORCALL_TPNEW)
274 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
275 #endif
276 #ifndef CYTHON_PEP487_INIT_SUBCLASS
277 #define CYTHON_PEP487_INIT_SUBCLASS 1
278 #endif
279 #undef CYTHON_PEP489_MULTI_PHASE_INIT
280 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
281 #undef CYTHON_USE_MODULE_STATE
282 #define CYTHON_USE_MODULE_STATE 0
283 #undef CYTHON_USE_SYS_MONITORING
284 #define CYTHON_USE_SYS_MONITORING 0
285 #undef CYTHON_USE_TP_FINALIZE
286 #define CYTHON_USE_TP_FINALIZE 0
287 #undef CYTHON_USE_AM_SEND
288 #define CYTHON_USE_AM_SEND 0
289 #undef CYTHON_USE_DICT_VERSIONS
290 #define CYTHON_USE_DICT_VERSIONS 0
291 #undef CYTHON_USE_EXC_INFO_STACK
292 #define CYTHON_USE_EXC_INFO_STACK 1
293 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
294 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
295 #endif
296 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
297 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
298 #endif
299 #undef CYTHON_USE_FREELISTS
300 #define CYTHON_USE_FREELISTS 0
301 #undef CYTHON_IMMORTAL_CONSTANTS
302 #define CYTHON_IMMORTAL_CONSTANTS 0
303 #undef CYTHON_OPAQUE_OBJECTS
304 #define CYTHON_OPAQUE_OBJECTS 0
305#elif defined(PYPY_VERSION)
306 #define CYTHON_COMPILING_IN_PYPY 1
307 #define CYTHON_COMPILING_IN_CPYTHON 0
308 #define CYTHON_COMPILING_IN_LIMITED_API 0
309 #define CYTHON_COMPILING_IN_GRAAL 0
310 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
311 #undef CYTHON_USE_TYPE_SLOTS
312 #define CYTHON_USE_TYPE_SLOTS 1
313 #ifndef CYTHON_USE_TYPE_SPECS
314 #define CYTHON_USE_TYPE_SPECS 0
315 #endif
316 #undef CYTHON_USE_PYTYPE_LOOKUP
317 #define CYTHON_USE_PYTYPE_LOOKUP 0
318 #undef CYTHON_USE_PYLIST_INTERNALS
319 #define CYTHON_USE_PYLIST_INTERNALS 0
320 #undef CYTHON_USE_UNICODE_INTERNALS
321 #define CYTHON_USE_UNICODE_INTERNALS 0
322 #undef CYTHON_USE_UNICODE_WRITER
323 #define CYTHON_USE_UNICODE_WRITER 0
324 #undef CYTHON_USE_PYLONG_INTERNALS
325 #define CYTHON_USE_PYLONG_INTERNALS 0
326 #undef CYTHON_AVOID_BORROWED_REFS
327 #define CYTHON_AVOID_BORROWED_REFS 1
328 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
329 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
330 #undef CYTHON_ASSUME_SAFE_MACROS
331 #define CYTHON_ASSUME_SAFE_MACROS 0
332 #ifndef CYTHON_ASSUME_SAFE_SIZE
333 #define CYTHON_ASSUME_SAFE_SIZE 1
334 #endif
335 #undef CYTHON_UNPACK_METHODS
336 #define CYTHON_UNPACK_METHODS 0
337 #undef CYTHON_FAST_THREAD_STATE
338 #define CYTHON_FAST_THREAD_STATE 0
339 #undef CYTHON_FAST_GIL
340 #define CYTHON_FAST_GIL 0
341 #ifndef CYTHON_VECTORCALL
342 #define CYTHON_VECTORCALL 1
343 #endif
344 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
345 #undef CYTHON_VECTORCALL_TPNEW
346 #define CYTHON_VECTORCALL_TPNEW 0
347 #elif !defined(CYTHON_VECTORCALL_TPNEW)
348 #define CYTHON_VECTORCALL_TPNEW (PYPY_VERSION_NUM >= 0x07030800 && CYTHON_VECTORCALL)
349 #endif
350 #ifndef CYTHON_PEP487_INIT_SUBCLASS
351 #define CYTHON_PEP487_INIT_SUBCLASS 1
352 #endif
353 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
354 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
355 #endif
356 #undef CYTHON_USE_MODULE_STATE
357 #define CYTHON_USE_MODULE_STATE 0
358 #undef CYTHON_USE_SYS_MONITORING
359 #define CYTHON_USE_SYS_MONITORING 0
360 #ifndef CYTHON_USE_TP_FINALIZE
361 #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
362 #endif
363 #undef CYTHON_USE_AM_SEND
364 #define CYTHON_USE_AM_SEND 0
365 #undef CYTHON_USE_DICT_VERSIONS
366 #define CYTHON_USE_DICT_VERSIONS 0
367 #undef CYTHON_USE_EXC_INFO_STACK
368 #define CYTHON_USE_EXC_INFO_STACK 0
369 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
370 #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
371 #endif
372 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
373 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
374 #endif
375 #undef CYTHON_USE_FREELISTS
376 #define CYTHON_USE_FREELISTS 0
377 #undef CYTHON_IMMORTAL_CONSTANTS
378 #define CYTHON_IMMORTAL_CONSTANTS 0
379 #undef CYTHON_OPAQUE_OBJECTS
380 #define CYTHON_OPAQUE_OBJECTS 0
381#else
382 #define CYTHON_COMPILING_IN_PYPY 0
383 #define CYTHON_COMPILING_IN_CPYTHON 1
384 #define CYTHON_COMPILING_IN_LIMITED_API 0
385 #define CYTHON_COMPILING_IN_GRAAL 0
386 #ifdef Py_GIL_DISABLED
387 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
388 #else
389 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
390 #endif
391 #if PY_VERSION_HEX < 0x030A0000
392 #undef CYTHON_USE_TYPE_SLOTS
393 #define CYTHON_USE_TYPE_SLOTS 1
394 #elif !defined(CYTHON_USE_TYPE_SLOTS)
395 #define CYTHON_USE_TYPE_SLOTS 1
396 #endif
397 #ifndef CYTHON_USE_TYPE_SPECS
398 #define CYTHON_USE_TYPE_SPECS 0
399 #endif
400 #ifndef CYTHON_USE_PYTYPE_LOOKUP
401 #define CYTHON_USE_PYTYPE_LOOKUP 1
402 #endif
403 #ifndef CYTHON_USE_PYLONG_INTERNALS
404 #define CYTHON_USE_PYLONG_INTERNALS 1
405 #endif
406 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
407 #undef CYTHON_USE_PYLIST_INTERNALS
408 #define CYTHON_USE_PYLIST_INTERNALS 0
409 #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
410 #define CYTHON_USE_PYLIST_INTERNALS 1
411 #endif
412 #ifndef CYTHON_USE_UNICODE_INTERNALS
413 #define CYTHON_USE_UNICODE_INTERNALS 1
414 #endif
415 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
416 #undef CYTHON_USE_UNICODE_WRITER
417 #define CYTHON_USE_UNICODE_WRITER 0
418 #elif !defined(CYTHON_USE_UNICODE_WRITER)
419 #define CYTHON_USE_UNICODE_WRITER 1
420 #endif
421 #ifndef CYTHON_AVOID_BORROWED_REFS
422 #define CYTHON_AVOID_BORROWED_REFS 0
423 #endif
424 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
425 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
426 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
427 #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
428 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
429 #endif
430 #ifndef CYTHON_ASSUME_SAFE_MACROS
431 #define CYTHON_ASSUME_SAFE_MACROS 1
432 #endif
433 #ifndef CYTHON_ASSUME_SAFE_SIZE
434 #define CYTHON_ASSUME_SAFE_SIZE 1
435 #endif
436 #ifndef CYTHON_UNPACK_METHODS
437 #define CYTHON_UNPACK_METHODS 1
438 #endif
439 #ifndef CYTHON_FAST_THREAD_STATE
440 #define CYTHON_FAST_THREAD_STATE 1
441 #endif
442 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
443 #undef CYTHON_FAST_GIL
444 #define CYTHON_FAST_GIL 0
445 #elif !defined(CYTHON_FAST_GIL)
446 #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
447 #endif
448 #ifndef CYTHON_VECTORCALL
449 #define CYTHON_VECTORCALL 1
450 #endif
451 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
452 #undef CYTHON_VECTORCALL_TPNEW
453 #define CYTHON_VECTORCALL_TPNEW 0
454 #elif !defined(CYTHON_VECTORCALL_TPNEW)
455 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
456 #endif
457 #ifndef CYTHON_PEP487_INIT_SUBCLASS
458 #define CYTHON_PEP487_INIT_SUBCLASS 1
459 #endif
460 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
461 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
462 #endif
463 #ifndef CYTHON_USE_MODULE_STATE
464 #define CYTHON_USE_MODULE_STATE 0
465 #endif
466 #ifndef CYTHON_USE_SYS_MONITORING
467 #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
468 #endif
469 #ifndef CYTHON_USE_TP_FINALIZE
470 #define CYTHON_USE_TP_FINALIZE 1
471 #endif
472 #ifndef CYTHON_USE_AM_SEND
473 #define CYTHON_USE_AM_SEND 1
474 #endif
475 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
476 #undef CYTHON_USE_DICT_VERSIONS
477 #define CYTHON_USE_DICT_VERSIONS 0
478 #elif !defined(CYTHON_USE_DICT_VERSIONS)
479 #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
480 #endif
481 #ifndef CYTHON_USE_EXC_INFO_STACK
482 #define CYTHON_USE_EXC_INFO_STACK 1
483 #endif
484 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
485 #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
486 #endif
487 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
488 #define CYTHON_USE_OWN_PREP_RERAISE_STAR (PY_VERSION_HEX < 0x030C00B2)
489 #endif
490 #ifndef CYTHON_USE_FREELISTS
491 #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
492 #endif
493 #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
494 #undef CYTHON_IMMORTAL_CONSTANTS
495 #define CYTHON_IMMORTAL_CONSTANTS 0 // definitely won't work
496 #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
497 #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
498 #endif
499 #ifndef CYTHON_OPAQUE_OBJECTS
500 #define CYTHON_OPAQUE_OBJECTS 0
501 #endif
502#endif
503#if CYTHON_USE_PYLONG_INTERNALS
504 #undef SHIFT
505 #undef BASE
506 #undef MASK
507 #ifdef SIZEOF_VOID_P
508 enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
509 #endif
510#endif
511#ifndef __has_attribute
512 #define __has_attribute(x) 0
513#endif
514#ifndef __has_cpp_attribute
515 #define __has_cpp_attribute(x) 0
516#endif
517#ifndef CYTHON_RESTRICT
518 #if defined(__GNUC__)
519 #define CYTHON_RESTRICT __restrict__
520 #elif defined(_MSC_VER) && _MSC_VER >= 1400
521 #define CYTHON_RESTRICT __restrict
522 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
523 #define CYTHON_RESTRICT restrict
524 #else
525 #define CYTHON_RESTRICT
526 #endif
527#endif
528#ifndef CYTHON_UNUSED
529 #if defined(__cplusplus)
530 /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
531 * but leads to warnings with -pedantic, since it is a C++17 feature */
532 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
533 #if __has_cpp_attribute(maybe_unused)
534 #define CYTHON_UNUSED [[maybe_unused]]
535 #endif
536 #endif
537 #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
538 #define CYTHON_UNUSED [[maybe_unused]]
539 #endif
540#endif
541#ifndef CYTHON_UNUSED
542# if defined(__GNUC__)
543# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
544# define CYTHON_UNUSED __attribute__ ((__unused__))
545# else
546# define CYTHON_UNUSED
547# endif
548# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
549# define CYTHON_UNUSED __attribute__ ((__unused__))
550# else
551# define CYTHON_UNUSED
552# endif
553#endif
554#ifndef CYTHON_UNUSED_VAR
555# if defined(__cplusplus)
556 template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
557# else
558# define CYTHON_UNUSED_VAR(x) (void)(x)
559# endif
560#endif
561#ifndef CYTHON_MAYBE_UNUSED_VAR
562 #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
563#endif
564#ifndef CYTHON_NCP_UNUSED
565# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
566# define CYTHON_NCP_UNUSED
567# else
568# define CYTHON_NCP_UNUSED CYTHON_UNUSED
569# endif
570#endif
571#ifndef CYTHON_USE_CPP_STD_MOVE
572 #if defined(__cplusplus) && (\
573 __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
574 #define CYTHON_USE_CPP_STD_MOVE 1
575 #else
576 #define CYTHON_USE_CPP_STD_MOVE 0
577 #endif
578#endif
579#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
580#include <stdint.h>
581typedef uintptr_t __pyx_uintptr_t;
582#ifndef CYTHON_FALLTHROUGH
583 #if defined(__cplusplus)
584 /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
585 * but leads to warnings with -pedantic, since it is a C++17 feature */
586 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
587 #if __has_cpp_attribute(fallthrough)
588 #define CYTHON_FALLTHROUGH [[fallthrough]]
589 #endif
590 #endif
591 #ifndef CYTHON_FALLTHROUGH
592 #if __has_cpp_attribute(clang::fallthrough)
593 #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
594 #elif __has_cpp_attribute(gnu::fallthrough)
595 #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
596 #endif
597 #endif
598 #endif
599 #ifndef CYTHON_FALLTHROUGH
600 #if __has_attribute(fallthrough)
601 #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
602 #else
603 #define CYTHON_FALLTHROUGH
604 #endif
605 #endif
606 #if defined(__clang__) && defined(__apple_build_version__)
607 #if __apple_build_version__ < 7000000
608 #undef CYTHON_FALLTHROUGH
609 #define CYTHON_FALLTHROUGH
610 #endif
611 #endif
612#endif
613#ifdef Py_UNREACHABLE
614 #define __Pyx_UNREACHABLE() Py_UNREACHABLE()
615#elif __Pyx_has_cbuiltin(__builtin_unreachable)
616 #define __Pyx_UNREACHABLE() __builtin_unreachable()
617#elif defined(__clang__) || defined(__INTEL_COMPILER) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)))
618 #define __Pyx_UNREACHABLE() __builtin_unreachable()
619#elif defined(_MSC_VER)
620 #define __Pyx_UNREACHABLE() __assume(0)
621#else
622 #define __Pyx_UNREACHABLE() Py_FatalError("Unreachable C code path reached")
623#endif
624#ifndef Py_UNREACHABLE
625 #define Py_UNREACHABLE() __Pyx_UNREACHABLE()
626#endif
627#ifdef __cplusplus
628 template <typename T>
629 struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
630 #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
631#else
632 #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
633#endif
634#if CYTHON_COMPILING_IN_PYPY == 1
635 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX < 0x030A0000)
636#else
637 #define __PYX_NEED_TP_PRINT_SLOT 0
638#endif
639#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
640#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
641#define __Pyx_PyErr_FetchException(petype, peval, petb) PyErr_Fetch(petype, peval, petb)
642#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_Restore(etype, eval, etb)
643#else
644#define __Pyx_PyErr_FetchException(petype, peval, petb) *(petype)=NULL; *(peval)=PyErr_GetRaisedException(); *(petb)=NULL
645#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_SetRaisedException(eval)
646#endif
647
648/* CInitCode */
649#ifndef CYTHON_INLINE
650 #if defined(__clang__)
651 #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
652 #elif defined(__GNUC__)
653 #define CYTHON_INLINE __inline__
654 #elif defined(_MSC_VER)
655 #define CYTHON_INLINE __inline
656 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
657 #define CYTHON_INLINE inline
658 #else
659 #define CYTHON_INLINE
660 #endif
661#endif
662
663/* PythonCompatibility */
664#define __PYX_BUILD_PY_SSIZE_T "n"
665#define CYTHON_FORMAT_SSIZE_T "z"
666#define __Pyx_BUILTIN_MODULE_NAME "builtins"
667#define __Pyx_DefaultClassType PyType_Type
668#if CYTHON_COMPILING_IN_LIMITED_API
669 #ifndef CO_OPTIMIZED
670 static int CO_OPTIMIZED;
671 #endif
672 #ifndef CO_NEWLOCALS
673 static int CO_NEWLOCALS;
674 #endif
675 #ifndef CO_VARARGS
676 static int CO_VARARGS;
677 #endif
678 #ifndef CO_VARKEYWORDS
679 static int CO_VARKEYWORDS;
680 #endif
681 #ifndef CO_ASYNC_GENERATOR
682 static int CO_ASYNC_GENERATOR;
683 #endif
684 #ifndef CO_GENERATOR
685 static int CO_GENERATOR;
686 #endif
687 #ifndef CO_COROUTINE
688 static int CO_COROUTINE;
689 #endif
690#else
691 #ifndef CO_COROUTINE
692 #define CO_COROUTINE 0x80
693 #endif
694 #ifndef CO_ASYNC_GENERATOR
695 #define CO_ASYNC_GENERATOR 0x200
696 #endif
697#endif
698static int __Pyx_init_co_variables(void);
699#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
700 #define __Pyx_Py_Is(x, y) Py_Is(x, y)
701#else
702 #define __Pyx_Py_Is(x, y) ((x) == (y))
703#endif
704#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
705 #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
706#else
707 #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
708#endif
709#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
710 #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
711#else
712 #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
713#endif
714#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
715 #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
716#else
717 #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
718#endif
719#define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj))
720#if CYTHON_COMPILING_IN_PYPY
721 #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
722#else
723 #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
724#endif
725#if CYTHON_COMPILING_IN_LIMITED_API
726static unsigned long __Pyx_Runtime_TPFLAGS_SEQUENCE;
727static unsigned long __Pyx_Runtime_TPFLAGS_MAPPING;
728#else
729#define __Pyx_Runtime_TPFLAGS_SEQUENCE Py_TPFLAGS_SEQUENCE
730#define __Pyx_Runtime_TPFLAGS_MAPPING Py_TPFLAGS_MAPPING
731#endif
732static int __Pyx_init_tpflags_variables(void);
733#ifndef Py_TPFLAGS_HAVE_FINALIZE
734 #define Py_TPFLAGS_HAVE_FINALIZE 0
735#endif
736#ifndef Py_TPFLAGS_SEQUENCE
737 #define Py_TPFLAGS_SEQUENCE (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 5)
738#endif
739#ifndef Py_TPFLAGS_MAPPING
740 #define Py_TPFLAGS_MAPPING (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 6)
741#endif
742#ifndef Py_TPFLAGS_IMMUTABLETYPE
743 #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
744#endif
745#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
746 #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
747#endif
748#ifndef METH_STACKLESS
749 #define METH_STACKLESS 0
750#endif
751#if !defined(METH_FASTCALL) || CYTHON_COMPILING_IN_PYPY
752 #ifndef METH_FASTCALL
753 #define METH_FASTCALL 0x80
754 #endif
755 typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
756 typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
757 Py_ssize_t nargs, PyObject *kwnames);
758#else
759 #if PY_VERSION_HEX >= 0x030d00A4
760 # define __Pyx_PyCFunctionFast PyCFunctionFast
761 # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
762 #else
763 # define __Pyx_PyCFunctionFast _PyCFunctionFast
764 # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
765 #endif
766#endif
767#if CYTHON_VECTORCALL
768 #define __Pyx_METH_FASTCALL METH_FASTCALL
769 #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
770 #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
771#else
772 #define __Pyx_METH_FASTCALL METH_VARARGS
773 #define __Pyx_PyCFunction_FastCall PyCFunction
774 #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
775#endif
776#if CYTHON_VECTORCALL
777 #define __pyx_vectorcallfunc vectorcallfunc
778 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET
779 #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n))
780#else
781 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0
782 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n))
783#endif
784#define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func)
785#define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func)
786#if CYTHON_COMPILING_IN_CPYTHON
787#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth)
788#elif !CYTHON_COMPILING_IN_LIMITED_API
789#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func)
790#endif
791#if CYTHON_COMPILING_IN_CPYTHON
792#define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags)
793static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
794 return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
795}
796#endif
797static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
798#if CYTHON_COMPILING_IN_LIMITED_API
799 return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
800#else
801 return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
802#endif
803}
804#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc)
805#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
806 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b))
807#else
808 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b)
809#endif
810#if CYTHON_COMPILING_IN_PYPY
811 typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
812#else
813 #define __Pyx_PyCMethod PyCMethod
814#endif
815#ifndef METH_METHOD
816 #define METH_METHOD 0x200
817#endif
818#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
819 #define PyObject_Malloc(s) PyMem_Malloc(s)
820 #define PyObject_Free(p) PyMem_Free(p)
821 #define PyObject_Realloc(p) PyMem_Realloc(p)
822#endif
823#if CYTHON_COMPILING_IN_LIMITED_API
824 #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
825#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
826 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
827 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
828#elif CYTHON_COMPILING_IN_GRAAL
829 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
830 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
831#else
832 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
833 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
834#endif
835#if CYTHON_COMPILING_IN_LIMITED_API
836 #define __Pyx_PyThreadState_Current PyThreadState_Get()
837#elif !CYTHON_FAST_THREAD_STATE
838 #define __Pyx_PyThreadState_Current PyThreadState_GET()
839#elif PY_VERSION_HEX >= 0x030d00A1
840 #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
841#else
842 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
843#endif
844#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
845 #define __PYX_SHARED_SIZEOF(T) -((int)sizeof(T))
846 #define __PYX_SHARED_RELATIVE_OFFSET Py_RELATIVE_OFFSET
847 #define CYTHON_OPAQUE_SHARED_TYPES 1
848#else
849 #define __PYX_SHARED_SIZEOF(T) sizeof(T)
850 #define __PYX_SHARED_RELATIVE_OFFSET 0
851 #define CYTHON_OPAQUE_SHARED_TYPES 0
852#endif
853#if CYTHON_USE_MODULE_STATE
854static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
855{
856 void *result;
857 result = PyModule_GetState(op);
858 if (!result)
859 Py_FatalError("Couldn't find the module state");
860 return result;
861}
862#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
863#else
864#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
865#endif
866#define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
867#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
868#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
869#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
870#if CYTHON_USE_TYPE_SLOTS
871 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name)
872 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
873 #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
874 #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
875#else
876 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name))
877 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
878 ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
879 (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
880 __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
881 #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
882 #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
883#endif
884#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
885#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
886#else
887#define __Pyx_PyDict_NewPresized(n) PyDict_New()
888#endif
889#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
890#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
891#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
892#define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
893static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
894 PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
895 if (res == NULL && PyErr_Occurred()) {
896 PyErr_WriteUnraisable(NULL);
897 }
898 return res;
899}
900#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
901#define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError
902#define __Pyx_PyDict_GetItemStr PyDict_GetItem
903#else
904static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
905#if CYTHON_COMPILING_IN_PYPY
906 return PyDict_GetItem(dict, name);
907#else
908 PyDictEntry *ep;
909 PyDictObject *mp = (PyDictObject*) dict;
910 long hash = ((PyStringObject *) name)->ob_shash;
911 assert(hash != -1);
912 ep = (mp->ma_lookup)(mp, name, hash);
913 if (ep == NULL) {
914 return NULL;
915 }
916 return ep->me_value;
917#endif
918}
919#define __Pyx_PyDict_GetItemStr PyDict_GetItem
920#endif
921#if CYTHON_USE_TYPE_SLOTS
922 #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags)
923 #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
924#else
925 #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp))
926 #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature)
927#endif
928#define __Pyx_PyObject_GetIterNextFunc(iterator) __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
929#if CYTHON_USE_TYPE_SPECS
930#define __Pyx_PyHeapTypeObject_GC_Del(obj) {\
931 PyTypeObject *type = Py_TYPE((PyObject*)obj);\
932 assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
933 PyObject_GC_Del(obj);\
934 Py_DECREF(type);\
935}
936#else
937#define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj)
938#endif
939#if CYTHON_COMPILING_IN_LIMITED_API
940 #define __Pyx_PyUnicode_READY(op) (0)
941 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
942 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U)
943 #define __Pyx_PyUnicode_KIND(u) ((void)u, (0))
944 #define __Pyx_PyUnicode_KIND_04(u) __Pyx_PyUnicode_KIND(u)
945 #define __Pyx_PyUnicode_DATA(u) ((void*)u)
946 #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
947 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u))
948#else
949 #if PY_VERSION_HEX >= 0x030C0000
950 #define __Pyx_PyUnicode_READY(op) (0)
951 #else
952 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
953 0 : _PyUnicode_Ready((PyObject *)(op)))
954 #endif
955 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
956 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
957 #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u))
958 #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
959 #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
960 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
961 #if PY_VERSION_HEX >= 0x030C0000
962 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
963 #else
964 #if CYTHON_COMPILING_IN_CPYTHON
965 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
966 #else
967 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
968 #endif
969 #endif
970 static CYTHON_INLINE int __Pyx_PyUnicode_KIND_04(PyObject *o) {
971 return __Pyx_PyUnicode_KIND(o) - (int) !!PyUnicode_IS_ASCII(o);
972 }
973#endif
974#if CYTHON_COMPILING_IN_PYPY
975 #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
976 #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
977#else
978 #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
979 #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
980 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
981#endif
982#if CYTHON_COMPILING_IN_PYPY
983 #if !defined(PyUnicode_DecodeUnicodeEscape)
984 #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors)
985 #endif
986 #if !defined(PyUnicode_Contains)
987 #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
988 #endif
989 #if !defined(PyByteArray_Check)
990 #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
991 #endif
992 #if !defined(PyObject_Format)
993 #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
994 #endif
995#endif
996#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
997#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
998 #define __Pyx_PySequence_ListKeepNew(obj)\
999 (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
1000#elif CYTHON_COMPILING_IN_CPYTHON
1001 #define __Pyx_PySequence_ListKeepNew(obj)\
1002 (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
1003#else
1004 #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj)
1005#endif
1006#ifndef PySet_CheckExact
1007 #define PySet_CheckExact(obj) Py_IS_TYPE(obj, &PySet_Type)
1008#endif
1009enum __Pyx_ReferenceSharing {
1010 __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
1011 __Pyx_ReferenceSharing_OwnStrongReference,
1012 __Pyx_ReferenceSharing_FunctionArgument,
1013 __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
1014};
1015#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
1016#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
1017 (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
1018 (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
1019 (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
1020#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
1021#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
1022#else
1023#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
1024#endif
1025#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1026 #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
1027#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1028 #if CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
1029 #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1030 #else
1031 #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
1032 #endif
1033#elif CYTHON_COMPILING_IN_LIMITED_API || !(CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE)
1034 #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
1035#else
1036 #define __Pyx_PyList_GetItemRef(o, i) (likely(__Pyx_is_valid_index(i, PyList_GET_SIZE(o))) ?\
1037 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1038#endif
1039#if CYTHON_AVOID_BORROWED_REFS || CYTHON_COMPILING_IN_LIMITED_API
1040 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1041 __Pyx_PyList_GetItemRef(o, i))
1042#elif CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1043 #if CYTHON_ASSUME_SAFE_MACROS
1044 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1045 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1046 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1047 #else
1048 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1049 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1050 __Pyx_XNewRef(PyList_GetItem(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1051 #endif
1052#elif CYTHON_ASSUME_SAFE_MACROS
1053 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1054 __Pyx_NewRef(PyList_GET_ITEM(o, i)))
1055#else
1056 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1057 __Pyx_XNewRef(PyList_GetItem(o, i)))
1058#endif
1059#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1060#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
1061#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1062static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1063 *result = PyObject_GetItem(dict, key);
1064 if (*result == NULL) {
1065 if (PyErr_ExceptionMatches(PyExc_KeyError)) {
1066 PyErr_Clear();
1067 return 0;
1068 }
1069 return -1;
1070 }
1071 return 1;
1072}
1073#else
1074static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1075 *result = PyDict_GetItemWithError(dict, key);
1076 if (*result == NULL) {
1077 return PyErr_Occurred() ? -1 : 0;
1078 }
1079 Py_INCREF(*result);
1080 return 1;
1081}
1082#endif
1083#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
1084 #define __Pyx_VISIT_CONST(obj) Py_VISIT(obj)
1085#else
1086 #define __Pyx_VISIT_CONST(obj)
1087#endif
1088#if CYTHON_ASSUME_SAFE_MACROS
1089 #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
1090 #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
1091 #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
1092 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
1093 #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
1094 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
1095#else
1096 #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
1097 #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
1098 #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
1099 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
1100 #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
1101 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
1102#endif
1103#if CYTHON_ASSUME_SAFE_SIZE
1104 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
1105 #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
1106 #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
1107 #define __Pyx_PyDict_GET_SIZE(o) PyDict_GET_SIZE(o)
1108 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
1109 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
1110 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
1111#else
1112 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
1113 #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
1114 #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
1115 #define __Pyx_PyDict_GET_SIZE(o) PyDict_Size(o)
1116 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
1117 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
1118 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
1119#endif
1120#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
1121 #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
1122#endif
1123#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
1124#define __Pyx_PyLong_AsHash_t __Pyx_PyIndex_AsSsize_t
1125#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1126 #define __Pyx_PySendResult PySendResult
1127#else
1128 typedef enum {
1129 PYGEN_RETURN = 0,
1130 PYGEN_ERROR = -1,
1131 PYGEN_NEXT = 1,
1132 } __Pyx_PySendResult;
1133#endif
1134#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
1135 typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
1136#else
1137 #define __Pyx_pyiter_sendfunc sendfunc
1138#endif
1139#if !CYTHON_USE_AM_SEND
1140#define __PYX_HAS_PY_AM_SEND 0
1141#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1142#define __PYX_HAS_PY_AM_SEND 1
1143#else
1144#define __PYX_HAS_PY_AM_SEND 2 // our own backported implementation
1145#endif
1146#if __PYX_HAS_PY_AM_SEND < 2
1147 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
1148#else
1149 typedef struct {
1150 unaryfunc am_await;
1151 unaryfunc am_aiter;
1152 unaryfunc am_anext;
1153 __Pyx_pyiter_sendfunc am_send;
1154 } __Pyx_PyAsyncMethodsStruct;
1155 #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
1156#endif
1157#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
1158 #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
1159#else
1160 #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
1161#endif
1162#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
1163#ifdef __cplusplus
1164extern "C"
1165#endif
1166PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
1167#endif
1168#if CYTHON_COMPILING_IN_LIMITED_API
1169static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
1170 int value;
1171 PyObject *py_value = PyObject_GetAttrString(inspect, name);
1172 if (!py_value) return 0;
1173 value = (int) PyLong_AsLong(py_value);
1174 Py_DECREF(py_value);
1175 *write_to = value;
1176 return value != -1 || !PyErr_Occurred();
1177}
1178static int __Pyx_init_co_variables(void) {
1179 PyObject *inspect;
1180 int result;
1181 inspect = PyImport_ImportModule("inspect");
1182 result =
1183#if !defined(CO_OPTIMIZED)
1184 __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
1185#endif
1186#if !defined(CO_NEWLOCALS)
1187 __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
1188#endif
1189#if !defined(CO_VARARGS)
1190 __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
1191#endif
1192#if !defined(CO_VARKEYWORDS)
1193 __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
1194#endif
1195#if !defined(CO_ASYNC_GENERATOR)
1196 __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
1197#endif
1198#if !defined(CO_GENERATOR)
1199 __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
1200#endif
1201#if !defined(CO_COROUTINE)
1202 __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
1203#endif
1204 1;
1205 Py_DECREF(inspect);
1206 return result ? 0 : -1;
1207}
1208static int __Pyx_init_tpflags_bitcount(unsigned long flag) {
1209 int count = 0;
1210 while (flag) {
1211 count += (int) (flag & 1);
1212 flag >>= 1;
1213 }
1214 return count;
1215}
1216static int __Pyx_init_tpflags_variables(void) {
1217 if (__Pyx_Runtime_TPFLAGS_SEQUENCE != 0 && __Pyx_Runtime_TPFLAGS_MAPPING != 0) {
1218 return 0;
1219 }
1220 PyObject *collections_abc = PyImport_ImportModule("collections.abc");
1221 if (!collections_abc) return -1;
1222 int result = 0;
1223 PyObject *sequence = NULL, *mapping = NULL;
1224#if __PYX_LIMITED_VERSION_HEX >= 0x030D0000
1225 if (PyObject_GetOptionalAttrString(collections_abc, "Sequence", &sequence) != 1) goto fail;
1226 if (PyObject_GetOptionalAttrString(collections_abc, "Mapping", &mapping) != 1) goto fail;
1227#else
1228 sequence = PyObject_GetAttrString(collections_abc, "Sequence");
1229 if (!sequence) goto fail_attr_lookup;
1230 mapping = PyObject_GetAttrString(collections_abc, "Mapping");
1231 if (!mapping) goto fail_attr_lookup;
1232#endif
1233 if (!PyType_Check(sequence) || !PyType_Check(mapping)) goto fail;
1234 {
1235 unsigned long sequence_flags = PyType_GetFlags((PyTypeObject*)sequence);
1236 unsigned long mapping_flags = PyType_GetFlags((PyTypeObject*)mapping);
1237 unsigned long mutual_flags = sequence_flags & mapping_flags;
1238 sequence_flags = sequence_flags ^ mutual_flags;
1239 mapping_flags = mapping_flags ^ mutual_flags;
1240 if (__Pyx_Runtime_TPFLAGS_SEQUENCE == 0 && __Pyx_init_tpflags_bitcount(sequence_flags) == 1) {
1241 __Pyx_Runtime_TPFLAGS_SEQUENCE = sequence_flags;
1242 }
1243 if (__Pyx_Runtime_TPFLAGS_MAPPING == 0 && __Pyx_init_tpflags_bitcount(mapping_flags) == 1) {
1244 __Pyx_Runtime_TPFLAGS_MAPPING = mapping_flags;
1245 }
1246 }
1247 cleanup:
1248 Py_XDECREF(mapping);
1249 Py_XDECREF(sequence);
1250 Py_DECREF(collections_abc);
1251 return result;
1252#if __PYX_LIMITED_VERSION_HEX < 0x030D0000
1253 fail_attr_lookup:
1254 if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
1255 PyErr_Clear();
1256 }
1257#endif
1258 fail:
1259 result = PyErr_Occurred() ? -1 : 0;
1260 goto cleanup;
1261}
1262#else
1263static int __Pyx_init_co_variables(void) {
1264 return 0; // It's a limited API-only feature
1265}
1266static int __Pyx_init_tpflags_variables(void) {
1267 return 0; // It's a limited API-only feature
1268}
1269#endif
1270
1271/* MathInitCode */
1272#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
1273 #ifndef _USE_MATH_DEFINES
1274 #define _USE_MATH_DEFINES
1275 #endif
1276#endif
1277#include <math.h>
1278#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
1279#define __Pyx_truncl trunc
1280#else
1281#define __Pyx_truncl truncl
1282#endif
1283
1284#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1285#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 1
1286#endif
1287#ifndef CYTHON_CLINE_IN_TRACEBACK
1288#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1289#endif
1290#if CYTHON_CLINE_IN_TRACEBACK
1291#define __PYX_MARK_ERR_POS(f_index, lineno) { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }
1292#else
1293#define __PYX_MARK_ERR_POS(f_index, lineno) { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }
1294#endif
1295#define __PYX_ERR(f_index, lineno, Ln_error) \
1296 { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
1297
1298#ifdef CYTHON_EXTERN_C
1299 #undef __PYX_EXTERN_C
1300 #define __PYX_EXTERN_C CYTHON_EXTERN_C
1301#elif defined(__PYX_EXTERN_C)
1302 #ifdef _MSC_VER
1303 #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
1304 #else
1305 #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
1306 #endif
1307#else
1308 #ifdef __cplusplus
1309 #define __PYX_EXTERN_C extern "C"
1310 #else
1311 #define __PYX_EXTERN_C extern
1312 #endif
1313#endif
1314
1315#define __PYX_HAVE__cpostprocessing
1316#define __PYX_HAVE_API__cpostprocessing
1317/* Early includes */
1318#include <string.h>
1319#include <stdio.h>
1320
1321 /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
1322
1323#include "numpy/arrayobject.h"
1324#include "numpy/ndarrayobject.h"
1325#include "numpy/ndarraytypes.h"
1326#include "numpy/arrayscalars.h"
1327#include "numpy/ufuncobject.h"
1328#include "postprocessing.h"
1329#ifdef _OPENMP
1330#include <omp.h>
1331#endif /* _OPENMP */
1332
1333#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
1334#define CYTHON_WITHOUT_ASSERTIONS
1335#endif
1336
1337#ifdef CYTHON_FREETHREADING_COMPATIBLE
1338#if CYTHON_FREETHREADING_COMPATIBLE
1339#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
1340#else
1341#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1342#endif
1343#else
1344#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1345#endif
1346#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
1347#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
1348#define __PYX_DEFAULT_STRING_ENCODING ""
1349#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
1350#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
1351#define __Pyx_uchar_cast(c) ((unsigned char)c)
1352#define __Pyx_long_cast(x) ((long)x)
1353#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
1354 (sizeof(type) < sizeof(Py_ssize_t)) ||\
1355 (sizeof(type) > sizeof(Py_ssize_t) &&\
1356 likely(v < (type)PY_SSIZE_T_MAX ||\
1357 v == (type)PY_SSIZE_T_MAX) &&\
1358 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
1359 v == (type)PY_SSIZE_T_MIN))) ||\
1360 (sizeof(type) == sizeof(Py_ssize_t) &&\
1361 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
1362 v == (type)PY_SSIZE_T_MAX))) )
1363static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
1364 return (size_t) i < (size_t) limit;
1365}
1366#if defined (__cplusplus) && __cplusplus >= 201103L
1367 #include <cstdlib>
1368 #define __Pyx_sst_abs(value) std::abs(value)
1369#elif SIZEOF_INT >= SIZEOF_SIZE_T
1370 #define __Pyx_sst_abs(value) abs(value)
1371#elif SIZEOF_LONG >= SIZEOF_SIZE_T
1372 #define __Pyx_sst_abs(value) labs(value)
1373#elif defined (_MSC_VER)
1374 #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
1375#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
1376 #define __Pyx_sst_abs(value) llabs(value)
1377#elif defined (__GNUC__)
1378 #define __Pyx_sst_abs(value) __builtin_llabs(value)
1379#else
1380 #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
1381#endif
1382static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
1383static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
1384static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
1385static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
1386#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
1387#define __Pyx_PyBytes_FromString PyBytes_FromString
1388#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
1389static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
1390#if CYTHON_ASSUME_SAFE_MACROS
1391 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
1392 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
1393 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
1394 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
1395 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
1396 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
1397 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
1398#else
1399 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AsString(s))
1400 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AsString(s))
1401 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AsString(s))
1402 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AsString(s))
1403 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AsString(s))
1404 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AsString(s))
1405 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
1406#endif
1407#define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1408#define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1409#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1410#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
1411#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
1412#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
1413#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
1414#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
1415#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
1416#define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o)
1417#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
1418static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
1419#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
1420 return Py_NewRef(obj);
1421#else
1422 Py_INCREF(obj);
1423 return obj;
1424#endif
1425}
1426static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
1427#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
1428 return Py_XNewRef(obj);
1429#else
1430 Py_XINCREF(obj);
1431 return obj;
1432#endif
1433}
1434static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
1435static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
1436static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
1437static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
1438static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
1439#define __Pyx_PyObject_RichCompareBool(a,b,cmp) __Pyx_PyObject_IsTrueAndDecref(PyObject_RichCompare((a),(b),(cmp)))
1440#define __Pyx_PySequence_Tuple(obj)\
1441 (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
1442static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
1443static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
1444static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
1445#if CYTHON_ASSUME_SAFE_MACROS
1446#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
1447#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
1448#define __Pyx_PyFloat_IsNonZero(x) (PyFloat_AS_DOUBLE(x) != 0.0)
1449#else
1450#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
1451#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
1452#define __Pyx_PyFloat_IsNonZero(x) PyObject_IsTrue(x)
1453#endif
1454#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
1455#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
1456#if CYTHON_USE_PYLONG_INTERNALS
1457 #if PY_VERSION_HEX >= 0x030C00A7
1458 #ifndef _PyLong_SIGN_MASK
1459 #define _PyLong_SIGN_MASK 3
1460 #endif
1461 #ifndef _PyLong_NON_SIZE_BITS
1462 #define _PyLong_NON_SIZE_BITS 3
1463 #endif
1464 #define __Pyx_PyLong_SignBits(x) ((int) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK))
1465 #define __Pyx_PyLong_Sign(x) (1 - __Pyx_PyLong_SignBits(x))
1466 #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_SignBits(x) & 2) != 0)
1467 #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x))
1468 #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_SignBits(x) & 1)
1469 #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_SignBits(x) == 0)
1470 #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0])
1471 #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
1472 #define __Pyx_PyLong_SignedDigitCount(x)\
1473 (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
1474 #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
1475 #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
1476 #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
1477 #else
1478 #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
1479 #define __Pyx_PyLong_CompactValue(x) (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
1480 #endif
1481 static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_CompareSignAndSize(PyObject *a, PyObject *b) {
1482 uintptr_t tag_a = ((PyLongObject*)a)->long_value.lv_tag;
1483 uintptr_t tag_b = ((PyLongObject*)b)->long_value.lv_tag;
1484 if (tag_a == tag_b) return 0;
1485 int sign_a = (int) (tag_a & _PyLong_SIGN_MASK);
1486 int sign_b = (int) (tag_b & _PyLong_SIGN_MASK);
1487 if (sign_a > sign_b) return -1;
1488 if (sign_a < sign_b) return 1;
1489 Py_ssize_t size_a = (Py_ssize_t) (tag_a >> _PyLong_NON_SIZE_BITS);
1490 Py_ssize_t size_b = (Py_ssize_t) (tag_b >> _PyLong_NON_SIZE_BITS);
1491 return (1 - sign_a) * (size_a - size_b);
1492 }
1493 typedef Py_ssize_t __Pyx_compact_pylong;
1494 typedef size_t __Pyx_compact_upylong;
1495 #else
1496 #define __Pyx_PyLong_Sign(x) ((int) ((Py_SIZE(x) == 0) ? 0 : (Py_SIZE(x) < 0) ? -1 : 1))
1497 #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0)
1498 #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0)
1499 #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0)
1500 #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0)
1501 #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
1502 #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x))
1503 #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x)
1504 #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
1505 #define __Pyx_PyLong_CompactValue(x)\
1506 ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
1507 #define __Pyx_PyLong_CompareSignAndSize(a, b) (Py_SIZE(a) - Py_SIZE(b))
1508 typedef sdigit __Pyx_compact_pylong;
1509 typedef digit __Pyx_compact_upylong;
1510 #endif
1511 #if PY_VERSION_HEX >= 0x030C00A5
1512 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
1513 #else
1514 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit)
1515 #endif
1516 #define __Pyx_PyLong_IsNonZero(x) (!__Pyx_PyLong_IsZero(x))
1517#else
1518 #define __Pyx_PyLong_IsNonZero(x) PyObject_IsTrue(x)
1519#endif
1520#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
1521 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
1522#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
1523 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
1524#else
1525 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
1526#endif
1527
1528
1529/* Test for GCC > 2.95 */
1530#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
1531 #define likely(x) __builtin_expect(!!(x), 1)
1532 #define unlikely(x) __builtin_expect(!!(x), 0)
1533#else /* !__GNUC__ or GCC < 2.95 */
1534 #define likely(x) (x)
1535 #define unlikely(x) (x)
1536#endif /* __GNUC__ */
1537/* PretendToInitialize */
1538#ifdef __cplusplus
1539#if __cplusplus > 201103L
1540#include <type_traits>
1541#endif
1542template <typename T>
1543static void __Pyx_pretend_to_initialize(T* ptr) {
1544#if __cplusplus > 201103L
1545 if ((std::is_trivially_default_constructible<T>::value))
1546#endif
1547 *ptr = T();
1548 (void)ptr;
1549}
1550#else
1551static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
1552#endif
1553
1554
1555#if !CYTHON_USE_MODULE_STATE
1556static PyObject *__pyx_m = NULL;
1557#endif
1558static const char * const __pyx_cfilenm = __FILE__;
1559
1560/* Header.proto */
1561#if !defined(CYTHON_CCOMPLEX)
1562 #if defined(__cplusplus)
1563 #define CYTHON_CCOMPLEX 1
1564 #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
1565 #define CYTHON_CCOMPLEX 1
1566 #else
1567 #define CYTHON_CCOMPLEX 0
1568 #endif
1569#endif
1570#if CYTHON_CCOMPLEX
1571 #ifdef __cplusplus
1572 #include <complex>
1573 #else
1574 #include <complex.h>
1575 #endif
1576#endif
1577#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
1578 #undef _Complex_I
1579 #define _Complex_I 1.0fj
1580#endif
1581
1582/* #### Code section: filename_table ### */
1583
1584static const char* const __pyx_f[] = {
1585 "proteus/cpostprocessing.pyx",
1586 "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd",
1587 "(tree fragment)",
1588 "cpython/type.pxd",
1589};
1590/* #### Code section: utility_code_proto_before_types ### */
1591/* Atomics.proto (used by UnpackUnboundCMethod) */
1592#include <pythread.h>
1593#ifndef CYTHON_ATOMICS
1594 #define CYTHON_ATOMICS 1
1595#endif
1596#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
1597#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1598#define __pyx_atomic_int_type int
1599#define __pyx_nonatomic_int_type int
1600#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1601 (__STDC_VERSION__ >= 201112L) &&\
1602 !defined(__STDC_NO_ATOMICS__))
1603 #include <stdatomic.h>
1604#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1605 (__cplusplus >= 201103L) ||\
1606 (defined(_MSC_VER) && _MSC_VER >= 1700)))
1607 #include <atomic>
1608#endif
1609#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1610 (__STDC_VERSION__ >= 201112L) &&\
1611 !defined(__STDC_NO_ATOMICS__) &&\
1612 ATOMIC_INT_LOCK_FREE == 2)
1613 #undef __pyx_atomic_int_type
1614 #define __pyx_atomic_int_type atomic_int
1615 #define __pyx_atomic_ptr_type atomic_uintptr_t
1616 #define __pyx_nonatomic_ptr_type uintptr_t
1617 #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
1618 #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
1619 #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
1620 #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
1621 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1622 #define __pyx_atomic_load(value) atomic_load(value)
1623 #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
1624 #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
1625 #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
1626 #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1627 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1628 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1629 #pragma message ("Using standard C atomics")
1630 #elif defined(__PYX_DEBUG_ATOMICS)
1631 #warning "Using standard C atomics"
1632 #endif
1633#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1634 (__cplusplus >= 201103L) ||\
1635\
1636 (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
1637 ATOMIC_INT_LOCK_FREE == 2)
1638 #undef __pyx_atomic_int_type
1639 #define __pyx_atomic_int_type std::atomic_int
1640 #define __pyx_atomic_ptr_type std::atomic_uintptr_t
1641 #define __pyx_nonatomic_ptr_type uintptr_t
1642 #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
1643 #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
1644 #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
1645 #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
1646 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1647 #define __pyx_atomic_load(value) std::atomic_load(value)
1648 #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
1649 #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
1650 #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
1651 #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1652 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1653 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1654 #pragma message ("Using standard C++ atomics")
1655 #elif defined(__PYX_DEBUG_ATOMICS)
1656 #warning "Using standard C++ atomics"
1657 #endif
1658#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
1659 (__GNUC_MINOR__ > 1 ||\
1660 (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
1661 #define __pyx_atomic_ptr_type void*
1662 #define __pyx_nonatomic_ptr_type void*
1663 #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
1664 #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
1665 #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
1666 #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
1667 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1668 __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
1669 int result = old == *expected;
1670 *expected = old;
1671 return result;
1672 }
1673 #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
1674 #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
1675 #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
1676 #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
1677 #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
1678 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1679 __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
1680 int result = old == *expected;
1681 *expected = old;
1682 return result;
1683 }
1684 #ifdef __PYX_DEBUG_ATOMICS
1685 #warning "Using GNU atomics"
1686 #endif
1687#elif CYTHON_ATOMICS && defined(_MSC_VER)
1688 #include <intrin.h>
1689 #undef __pyx_atomic_int_type
1690 #define __pyx_atomic_int_type long
1691 #define __pyx_atomic_ptr_type void*
1692 #undef __pyx_nonatomic_int_type
1693 #define __pyx_nonatomic_int_type long
1694 #define __pyx_nonatomic_ptr_type void*
1695 #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
1696 #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
1697 #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
1698 #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
1699 #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
1700 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1701 __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
1702 int result = old == *expected;
1703 *expected = old;
1704 return result;
1705 }
1706 #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
1707 #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
1708 #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
1709 #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
1710 #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
1711 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1712 __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
1713 int result = old == *expected;
1714 *expected = old;
1715 return result;
1716 }
1717 #ifdef __PYX_DEBUG_ATOMICS
1718 #pragma message ("Using MSVC atomics")
1719 #endif
1720#else
1721 #undef CYTHON_ATOMICS
1722 #define CYTHON_ATOMICS 0
1723 #ifdef __PYX_DEBUG_ATOMICS
1724 #warning "Not using atomics"
1725 #endif
1726#endif
1727
1728/* CriticalSectionsDefinition.proto (used by CriticalSections) */
1729#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1730#define __Pyx_PyCriticalSection void*
1731#define __Pyx_PyCriticalSection2 void*
1732#define __Pyx_PyCriticalSection_End(cs)
1733#define __Pyx_PyCriticalSection2_End(cs)
1734#else
1735#define __Pyx_PyCriticalSection PyCriticalSection
1736#define __Pyx_PyCriticalSection2 PyCriticalSection2
1737#define __Pyx_PyCriticalSection_End PyCriticalSection_End
1738#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
1739#endif
1740
1741/* CriticalSections.proto (used by ParseKeywordsImpl) */
1742#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1743#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
1744#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
1745#else
1746#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
1747#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
1748#endif
1749#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
1750#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
1751#define __Pyx_END_CRITICAL_SECTION() }
1752#else
1753#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
1754#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
1755#endif
1756
1757/* BufferFormatStructs.proto (used by BufferFormatCheck) */
1758struct __Pyx_StructField_;
1759#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
1760typedef struct {
1761 const char* name;
1762 const struct __Pyx_StructField_* fields;
1763 size_t size;
1764 size_t arraysize[8];
1765 int ndim;
1766 char typegroup;
1767 char is_unsigned;
1768 int flags;
1769} __Pyx_TypeInfo;
1770typedef struct __Pyx_StructField_ {
1771 const __Pyx_TypeInfo* type;
1772 const char* name;
1773 size_t offset;
1774} __Pyx_StructField;
1775typedef struct {
1776 const __Pyx_StructField* field;
1777 size_t parent_offset;
1778} __Pyx_BufFmt_StackElem;
1779typedef struct {
1780 __Pyx_StructField root;
1781 __Pyx_BufFmt_StackElem* head;
1782 size_t fmt_offset;
1783 size_t new_count, enc_count;
1784 size_t struct_alignment;
1785 int is_complex;
1786 char enc_type;
1787 char new_packmode;
1788 char enc_packmode;
1789 char is_valid_array;
1790} __Pyx_BufFmt_Context;
1791
1792/* IncludeStructmemberH.proto (used by CythonFunctionShared) */
1793#include <structmember.h>
1794
1795/* #### Code section: numeric_typedefs ### */
1796
1797/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":761
1798 * # in Cython to enable them only on the right systems.
1799 *
1800 * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
1801 * ctypedef npy_int16 int16_t
1802 * ctypedef npy_int32 int32_t
1803*/
1804typedef npy_int8 __pyx_t_5numpy_int8_t;
1805
1806/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":762
1807 *
1808 * ctypedef npy_int8 int8_t
1809 * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
1810 * ctypedef npy_int32 int32_t
1811 * ctypedef npy_int64 int64_t
1812*/
1813typedef npy_int16 __pyx_t_5numpy_int16_t;
1814
1815/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":763
1816 * ctypedef npy_int8 int8_t
1817 * ctypedef npy_int16 int16_t
1818 * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1819 * ctypedef npy_int64 int64_t
1820 *
1821*/
1822typedef npy_int32 __pyx_t_5numpy_int32_t;
1823
1824/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":764
1825 * ctypedef npy_int16 int16_t
1826 * ctypedef npy_int32 int32_t
1827 * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1828 *
1829 * ctypedef npy_uint8 uint8_t
1830*/
1831typedef npy_int64 __pyx_t_5numpy_int64_t;
1832
1833/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":766
1834 * ctypedef npy_int64 int64_t
1835 *
1836 * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1837 * ctypedef npy_uint16 uint16_t
1838 * ctypedef npy_uint32 uint32_t
1839*/
1840typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1841
1842/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":767
1843 *
1844 * ctypedef npy_uint8 uint8_t
1845 * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1846 * ctypedef npy_uint32 uint32_t
1847 * ctypedef npy_uint64 uint64_t
1848*/
1849typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1850
1851/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":768
1852 * ctypedef npy_uint8 uint8_t
1853 * ctypedef npy_uint16 uint16_t
1854 * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1855 * ctypedef npy_uint64 uint64_t
1856 *
1857*/
1858typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1859
1860/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":769
1861 * ctypedef npy_uint16 uint16_t
1862 * ctypedef npy_uint32 uint32_t
1863 * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1864 *
1865 * ctypedef npy_float32 float32_t
1866*/
1867typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1868
1869/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":771
1870 * ctypedef npy_uint64 uint64_t
1871 *
1872 * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1873 * ctypedef npy_float64 float64_t
1874 * #ctypedef npy_float80 float80_t
1875*/
1876typedef npy_float32 __pyx_t_5numpy_float32_t;
1877
1878/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":772
1879 *
1880 * ctypedef npy_float32 float32_t
1881 * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1882 * #ctypedef npy_float80 float80_t
1883 * #ctypedef npy_float128 float128_t
1884*/
1885typedef npy_float64 __pyx_t_5numpy_float64_t;
1886
1887/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":779
1888 * ctypedef double complex complex128_t
1889 *
1890 * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1891 * ctypedef npy_ulonglong ulonglong_t
1892 *
1893*/
1894typedef npy_longlong __pyx_t_5numpy_longlong_t;
1895
1896/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":780
1897 *
1898 * ctypedef npy_longlong longlong_t
1899 * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1900 *
1901 * ctypedef npy_intp intp_t
1902*/
1903typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1904
1905/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":782
1906 * ctypedef npy_ulonglong ulonglong_t
1907 *
1908 * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1909 * ctypedef npy_uintp uintp_t
1910 *
1911*/
1912typedef npy_intp __pyx_t_5numpy_intp_t;
1913
1914/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":783
1915 *
1916 * ctypedef npy_intp intp_t
1917 * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1918 *
1919 * ctypedef npy_double float_t
1920*/
1921typedef npy_uintp __pyx_t_5numpy_uintp_t;
1922
1923/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":785
1924 * ctypedef npy_uintp uintp_t
1925 *
1926 * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1927 * ctypedef npy_double double_t
1928 * ctypedef npy_longdouble longdouble_t
1929*/
1930typedef npy_double __pyx_t_5numpy_float_t;
1931
1932/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":786
1933 *
1934 * ctypedef npy_double float_t
1935 * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1936 * ctypedef npy_longdouble longdouble_t
1937 *
1938*/
1939typedef npy_double __pyx_t_5numpy_double_t;
1940
1941/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":787
1942 * ctypedef npy_double float_t
1943 * ctypedef npy_double double_t
1944 * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1945 *
1946 * ctypedef float complex cfloat_t
1947*/
1948typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1949/* #### Code section: complex_type_declarations ### */
1950/* Declarations.proto */
1951#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1952 #ifdef __cplusplus
1953 typedef ::std::complex< float > __pyx_t_float_complex;
1954 #else
1955 typedef float _Complex __pyx_t_float_complex;
1956 #endif
1957#else
1958 typedef struct { float real, imag; } __pyx_t_float_complex;
1959#endif
1960static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1961
1962/* Declarations.proto */
1963#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1964 #ifdef __cplusplus
1965 typedef ::std::complex< double > __pyx_t_double_complex;
1966 #else
1967 typedef double _Complex __pyx_t_double_complex;
1968 #endif
1969#else
1970 typedef struct { double real, imag; } __pyx_t_double_complex;
1971#endif
1972static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1973
1974/* Declarations.proto */
1975#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1976 #ifdef __cplusplus
1977 typedef ::std::complex< long double > __pyx_t_long_double_complex;
1978 #else
1979 typedef long double _Complex __pyx_t_long_double_complex;
1980 #endif
1981#else
1982 typedef struct { long double real, imag; } __pyx_t_long_double_complex;
1983#endif
1984static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);
1985
1986/* #### Code section: type_declarations ### */
1987
1988/*--- Type declarations ---*/
1989struct __pyx_obj_15cpostprocessing_NodeStarFactor;
1990
1991/* "cpostprocessing.pyx":763
1992 *
1993 * # put in data structure for node star solves now
1994 * cdef class NodeStarFactor: # <<<<<<<<<<<<<<
1995 * cdef pp.NodeStarFactorStruct nsf
1996 * def __cinit__(self,
1997*/
1998struct __pyx_obj_15cpostprocessing_NodeStarFactor {
1999 PyObject_HEAD
2000 NodeStarFactorStruct nsf;
2001};
2002
2003/* #### Code section: utility_code_proto ### */
2004
2005/* --- Runtime support code (head) --- */
2006/* Refnanny.proto */
2007#ifndef CYTHON_REFNANNY
2008 #define CYTHON_REFNANNY 0
2009#endif
2010#if CYTHON_REFNANNY
2011 typedef struct {
2012 void (*INCREF)(void*, PyObject*, Py_ssize_t);
2013 void (*DECREF)(void*, PyObject*, Py_ssize_t);
2014 void (*GOTREF)(void*, PyObject*, Py_ssize_t);
2015 void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
2016 void* (*SetupContext)(const char*, Py_ssize_t, const char*);
2017 void (*FinishContext)(void**);
2018 } __Pyx_RefNannyAPIStruct;
2019 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
2020 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
2021 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
2022 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2023 if (acquire_gil) {\
2024 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2025 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2026 PyGILState_Release(__pyx_gilstate_save);\
2027 } else {\
2028 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2029 }
2030 #define __Pyx_RefNannyFinishContextNogil() {\
2031 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2032 __Pyx_RefNannyFinishContext();\
2033 PyGILState_Release(__pyx_gilstate_save);\
2034 }
2035 #define __Pyx_RefNannyFinishContextNogil() {\
2036 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2037 __Pyx_RefNannyFinishContext();\
2038 PyGILState_Release(__pyx_gilstate_save);\
2039 }
2040 #define __Pyx_RefNannyFinishContext()\
2041 __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2042 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2043 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2044 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2045 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2046 #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
2047 #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
2048 #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
2049 #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
2050#else
2051 #define __Pyx_RefNannyDeclarations
2052 #define __Pyx_RefNannySetupContext(name, acquire_gil)
2053 #define __Pyx_RefNannyFinishContextNogil()
2054 #define __Pyx_RefNannyFinishContext()
2055 #define __Pyx_INCREF(r) Py_INCREF(r)
2056 #define __Pyx_DECREF(r) Py_DECREF(r)
2057 #define __Pyx_GOTREF(r)
2058 #define __Pyx_GIVEREF(r)
2059 #define __Pyx_XINCREF(r) Py_XINCREF(r)
2060 #define __Pyx_XDECREF(r) Py_XDECREF(r)
2061 #define __Pyx_XGOTREF(r)
2062 #define __Pyx_XGIVEREF(r)
2063#endif
2064#define __Pyx_Py_XDECREF_SET(r, v) do {\
2065 PyObject *tmp = (PyObject *) r;\
2066 r = v; Py_XDECREF(tmp);\
2067 } while (0)
2068#define __Pyx_XDECREF_SET(r, v) do {\
2069 PyObject *tmp = (PyObject *) r;\
2070 r = v; __Pyx_XDECREF(tmp);\
2071 } while (0)
2072#define __Pyx_DECREF_SET(r, v) do {\
2073 PyObject *tmp = (PyObject *) r;\
2074 r = v; __Pyx_DECREF(tmp);\
2075 } while (0)
2076#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
2077#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2078
2079/* GetTopmostException.proto (used by SaveResetException) */
2080#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
2081static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2082#endif
2083
2084/* PyThreadStateGet.proto (used by SaveResetException) */
2085#if CYTHON_FAST_THREAD_STATE
2086#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
2087#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
2088#if PY_VERSION_HEX >= 0x030C00A6
2089#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
2090#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
2091#else
2092#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
2093#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
2094#endif
2095#else
2096#define __Pyx_PyThreadState_declare
2097#define __Pyx_PyThreadState_assign
2098#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
2099#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
2100#endif
2101
2102/* SaveResetException.proto */
2103#if CYTHON_FAST_THREAD_STATE
2104#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2105static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2106#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2107static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2108#else
2109#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2110#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2111#endif
2112
2113/* FastTypeChecks.proto (used by PyException_Check) */
2114#if CYTHON_COMPILING_IN_CPYTHON
2115#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2116#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
2117static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2118static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
2119#define __Pyx_PyAnySet_Check(obj) __Pyx_TypeCheck2(obj, &PySet_Type, &PyFrozenSet_Type)
2120#else
2121#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2122#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
2123#define __Pyx_PyAnySet_Check(obj) PyAnySet_Check(obj)
2124#endif
2125
2126/* PyException_Check.proto */
2127#define __Pyx_PyExc_Exception_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2128
2129/* PyErrFetchRestore.proto (used by GivenExceptionMatches) */
2130#if CYTHON_FAST_THREAD_STATE
2131#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2132#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2133#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2134#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2135#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2136static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2137static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2138#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
2139#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2140#else
2141#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2142#endif
2143#else
2144#define __Pyx_PyErr_Clear() PyErr_Clear()
2145#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2146#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
2147#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
2148#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
2149#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
2150#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
2151#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
2152#endif
2153
2154/* GivenExceptionMatches.proto (used by PyErrExceptionMatches) */
2155#if CYTHON_COMPILING_IN_CPYTHON
2156static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2157static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2158#else
2159#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2160static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
2161 return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
2162}
2163#endif
2164#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
2165
2166/* PyErrExceptionMatches.proto */
2167#if CYTHON_FAST_THREAD_STATE
2168#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2169static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2170#else
2171#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2172#endif
2173
2174/* GetException.proto */
2175#if CYTHON_FAST_THREAD_STATE
2176#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2177static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2178#else
2179static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2180#endif
2181
2182/* PyImportError_Check.proto */
2183#define __Pyx_PyExc_ImportError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ImportError)
2184
2185/* PyObjectCall.proto (used by PyObjectFastCall) */
2186#if CYTHON_COMPILING_IN_CPYTHON
2187static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2188#else
2189#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2190#endif
2191
2192/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
2193#if CYTHON_COMPILING_IN_CPYTHON
2194static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2195#endif
2196
2197/* PyObjectFastCall.proto */
2198#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
2199static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargsf, PyObject *kwargs);
2200
2201/* RaiseException.export */
2202static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2203
2204/* CopyObjectArray.proto (used by TupleOrListFromArrayImpl) */
2205#if CYTHON_COMPILING_IN_CPYTHON
2206static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length);
2207#endif
2208
2209/* TupleOrListFromArrayImpl.proto (used by TupleFromArray) */
2210#if PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API
2211#define __Pyx_PyTuple_FromArray(src, n) PyTuple_FromArray(src, ((n)<0) ? 0 : (n))
2212#else
2213CYTHON_UNUSED static PyObject *
2214__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
2215#endif
2216
2217/* TupleFromArray.proto (used by fastcall) */
2218
2219
2220/* IncludeStringH.proto (used by PyObjectCompare) */
2221#include <string.h>
2222
2223/* PyObjectCompare.proto (used by UnicodeEquals) */
2224static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop);
2225
2226/* UnicodeEquals.proto (used by fastcall) */
2227#define __Pyx_PyUnicode_Equals(s1, s2) __Pyx_PyObject_CompareBoolEq_str_str(s1, s2, Py_EQ)
2228
2229/* fastcall.proto */
2230#if CYTHON_AVOID_BORROWED_REFS
2231 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
2232#elif CYTHON_ASSUME_SAFE_MACROS
2233 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
2234#else
2235 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
2236#endif
2237#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
2238#define __Pyx_KwValues_VARARGS(args, nargs) NULL
2239#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
2240#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
2241#if CYTHON_VECTORCALL
2242 #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
2243 #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
2244 #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
2245 static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
2246 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
2247 CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
2248 #else
2249 #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
2250 #endif
2251#else
2252 #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
2253 #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
2254 #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
2255 #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
2256 #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
2257#endif
2258#if CYTHON_VECTORCALL_TPNEW
2259 #if !CYTHON_VECTORCALL
2260 #error Enabling CYTHON_VECTORCALL_TPNEW without CYTHON_VECTORCALL is not supported
2261 #endif
2262 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_FASTCALL
2263 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_FASTCALL
2264 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_FASTCALL
2265 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_FASTCALL
2266 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_FASTCALL
2267#else
2268 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_VARARGS
2269 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_VARARGS
2270 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_VARARGS
2271 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_VARARGS
2272 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_VARARGS
2273#endif
2274#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
2275#if CYTHON_VECTORCALL
2276#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
2277#else
2278#define __Pyx_ArgsSlice_FASTCALL __Pyx_ArgsSlice_VARARGS
2279#endif
2280
2281/* py_dict_items.proto (used by OwnedDictNext) */
2282#define __Pyx_PyDict_items_TypePtr (&PyDictKeys_Type)
2283#define __Pyx_PyDict_items_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictItems_TypePtr)
2284#define __Pyx_PyDict_items_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictItems_TypePtr)
2285static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);
2286
2287/* CallCFunction.proto (used by CallUnboundCMethod0) */
2288#define __Pyx_CallCFunction(cfunc, self, args)\
2289 ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
2290#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
2291 ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
2292#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
2293 ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
2294#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
2295 ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)
2296
2297/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */
2298static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2299
2300/* UnpackUnboundCMethod_decl.proto (used by UnpackUnboundCMethod) */
2301typedef struct {
2302 PyObject *type;
2303 PyObject **method_name;
2304 PyCFunction func;
2305 PyObject *method;
2306 int flag;
2307#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
2308 __pyx_atomic_int_type initialized;
2309#endif
2310} __Pyx_CachedCFunction;
2311
2312/* IgnoreException.proto (used by UnpackUnboundCMethod_impl) */
2313static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception);
2314#define __Pyx_IgnoreException(ignorable_exception) __Pyx_IgnoreGivenException(NULL, ignorable_exception)
2315
2316/* PyObjectGetAttrStr.proto (used by UnpackUnboundCMethod_impl) */
2317#if CYTHON_USE_TYPE_SLOTS
2318static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
2319#else
2320#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
2321#endif
2322
2323/* UnpackUnboundCMethod_impl.export */
2324static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target);
2325
2326/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
2327#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2328static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
2329#if !CYTHON_ATOMICS
2330 return 1;
2331#else
2332 __pyx_nonatomic_int_type expected = 0;
2333 if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
2334 return 0;
2335 }
2336 return expected;
2337#endif
2338}
2339static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
2340#if CYTHON_ATOMICS
2341 __pyx_atomic_store(&cfunc->initialized, 2);
2342#endif
2343}
2344#else
2345#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
2346#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
2347#endif
2348
2349/* CallUnboundCMethod0.proto */
2350CYTHON_UNUSED
2351static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2352#if CYTHON_COMPILING_IN_CPYTHON
2353static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2354#else
2355#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
2356#endif
2357
2358/* py_dict_values.proto (used by OwnedDictNext) */
2359#define __Pyx_PyDict_values_TypePtr (&PyDictKeys_Type)
2360#define __Pyx_PyDict_values_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictValues_TypePtr)
2361#define __Pyx_PyDict_values_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictValues_TypePtr)
2362static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);
2363
2364/* OwnedDictNext.proto (used by ParseKeywordsImpl) */
2365#if CYTHON_AVOID_BORROWED_REFS
2366static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
2367#else
2368CYTHON_INLINE
2369static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
2370#endif
2371
2372/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
2373static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2374
2375/* ParseKeywordsImpl.export */
2376static int __Pyx_ParseKeywordsTuple(
2377 PyObject *kwds,
2378 PyObject * const *kwvalues,
2379 PyObject ** const argnames[],
2380 PyObject *kwds2,
2381 PyObject *values[],
2382 Py_ssize_t num_pos_args,
2383 Py_ssize_t num_kwargs,
2384 const char* function_name,
2385 int ignore_unknown_kwargs
2386);
2387static int __Pyx_ParseKeywordDictToDict(
2388 PyObject *kwds,
2389 PyObject ** const argnames[],
2390 PyObject *kwds2,
2391 PyObject *values[],
2392 Py_ssize_t num_pos_args,
2393 const char* function_name
2394);
2395static int __Pyx_ParseKeywordDict(
2396 PyObject *kwds,
2397 PyObject ** const argnames[],
2398 PyObject *values[],
2399 Py_ssize_t num_pos_args,
2400 Py_ssize_t num_kwargs,
2401 const char* function_name,
2402 int ignore_unknown_kwargs
2403);
2404
2405/* CallUnboundCMethod2.proto */
2406CYTHON_UNUSED
2407static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
2408#if CYTHON_COMPILING_IN_CPYTHON
2409static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
2410#else
2411#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
2412#endif
2413
2414/* ParseKeywords.proto */
2415static CYTHON_INLINE int __Pyx_ParseKeywords(
2416 PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
2417 PyObject *kwds2, PyObject *values[],
2418 Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
2419 const char* function_name,
2420 int ignore_unknown_kwargs
2421);
2422
2423/* RaiseArgTupleInvalid.export */
2424static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2425 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2426
2427/* ArgTypeTestError.export */
2428static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2429
2430/* ArgTypeTest.proto */
2431static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact);
2432
2433/* AssertionsEnabled.proto */
2434#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000
2435 static int __pyx_assertions_enabled_flag;
2436 #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
2437 #if __clang__ || __GNUC__
2438 __attribute__((no_sanitize("thread")))
2439 #endif
2440 static int __Pyx_init_assertions_enabled(void) {
2441 PyObject *builtins, *debug, *debug_str;
2442 int flag;
2443 builtins = PyEval_GetBuiltins();
2444 if (!builtins) goto bad;
2445 debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
2446 if (!debug_str) goto bad;
2447 debug = PyObject_GetItem(builtins, debug_str);
2448 Py_DECREF(debug_str);
2449 if (!debug) goto bad;
2450 flag = PyObject_IsTrue(debug);
2451 Py_DECREF(debug);
2452 if (flag == -1) goto bad;
2453 __pyx_assertions_enabled_flag = flag;
2454 return 0;
2455 bad:
2456 __pyx_assertions_enabled_flag = 1;
2457 return -1;
2458 }
2459#else
2460 #define __Pyx_init_assertions_enabled() (0)
2461 #define __pyx_assertions_enabled() (!Py_OptimizeFlag)
2462#endif
2463
2464/* PyAssertionError_Check.proto */
2465#define __Pyx_PyExc_AssertionError_Check(obj) __Pyx_TypeCheck(obj, PyExc_AssertionError)
2466
2467/* DivInt[npy_intp].proto */
2468static CYTHON_INLINE npy_intp __Pyx_div_npy_intp(npy_intp, npy_intp, int b_is_constant);
2469
2470/* UnaryNegOverflows.proto */
2471#define __Pyx_UNARY_NEG_WOULD_OVERFLOW(x)\
2472 (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
2473
2474/* RejectKeywords.export */
2475static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);
2476
2477/* PyTypeError_Check.proto */
2478#define __Pyx_PyExc_TypeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_TypeError)
2479
2480/* IsLittleEndian.proto (used by BufferFormatCheck) */
2481static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
2482
2483/* BufferFormatCheck.proto (used by BufferGetAndValidate) */
2484static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
2485static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
2486 __Pyx_BufFmt_StackElem* stack,
2487 const __Pyx_TypeInfo* type);
2488
2489/* BufferGetAndValidate.proto */
2490#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
2491 ((obj == Py_None || obj == NULL) ?\
2492 (__Pyx_ZeroBuffer(buf), 0) :\
2493 __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
2494static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
2495 const __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
2496static void __Pyx_ZeroBuffer(Py_buffer* buf);
2497static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
2498static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
2499static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
2500
2501/* PyFrozenDict.proto (used by GetItemInt) */
2502#if CYTHON_COMPILING_IN_LIMITED_API
2503#define __Pyx_PyFrozenDict_TypePtr ((PyTypeObject*) __pyx_mstate_global->__Pyx_PyFrozenDictType)
2504#define __Pyx_PyFrozenDict_New(it) __Pyx__PyFrozenDict_New(__pyx_mstate_global->__Pyx_PyFrozenDictType, it)
2505static CYTHON_INLINE PyObject* __Pyx__PyFrozenDict_New(PyObject* frozendict_type, PyObject* it);
2506#define __Pyx_PyFrozenDict_NewEmpty() __Pyx_PyFrozenDict_New(NULL)
2507#define __Pyx_PyFrozenDict_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyFrozenDict_TypePtr)
2508#define __Pyx_PyFrozenDict_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyFrozenDict_TypePtr)
2509#define __Pyx_PyAnyDict_Check(obj) __Pyx__PyAnyDict_Check(obj, __Pyx_PyFrozenDict_TypePtr)
2510static CYTHON_INLINE int __Pyx__PyAnyDict_Check(PyObject *obj, PyTypeObject* frozendict_type) {
2511 return PyObject_TypeCheck(obj, &PyDict_Type) || PyObject_TypeCheck(obj, frozendict_type);
2512}
2513#define __Pyx_PyAnyDict_CheckExact(obj) __Pyx__PyAnyDict_CheckExact(obj, __Pyx_PyFrozenDict_TypePtr)
2514static CYTHON_INLINE int __Pyx__PyAnyDict_CheckExact(PyObject *obj, PyTypeObject* frozendict_type) {
2515 return Py_IS_TYPE(obj, &PyDict_Type) || Py_IS_TYPE(obj, frozendict_type);
2516}
2517#elif PY_VERSION_HEX >= 0x030f00a6 ||\
2518 (defined(PyFrozenDict_Check) && defined(PyAnyDict_Check) && defined(PyFrozenDict_New))
2519#define __Pyx_PyFrozenDict_TypePtr (&PyFrozenDict_Type)
2520#define __Pyx_PyFrozenDict_New(it) PyFrozenDict_New(it)
2521#define __Pyx_PyFrozenDict_NewEmpty() PyFrozenDict_New(NULL)
2522#define __Pyx_PyFrozenDict_Check(obj) PyFrozenDict_Check(obj)
2523#define __Pyx_PyFrozenDict_CheckExact(obj) PyFrozenDict_CheckExact(obj)
2524#define __Pyx_PyAnyDict_Check(obj) PyAnyDict_Check(obj)
2525#define __Pyx_PyAnyDict_CheckExact(obj) PyAnyDict_CheckExact(obj)
2526#else
2527#define __Pyx_PyFrozenDict_TypePtr (&PyDict_Type)
2528static CYTHON_INLINE PyObject* __Pyx_PyFrozenDict_New(PyObject* it) {
2529 if (!it) {
2530 return PyDict_New();
2531 } else if (PyDict_Check(it)) {
2532 return PyDict_Copy(it);
2533 } else {
2534 PyObject *dict = PyDict_New();
2535 if (!dict) return NULL;
2536 PyObject *result = PyNumber_InPlaceOr(dict, it);
2537 Py_DECREF(dict);
2538 return result;
2539 }
2540}
2541#define __Pyx_PyFrozenDict_NewEmpty() PyDict_New()
2542#define __Pyx_PyFrozenDict_Check(obj) PyDict_Check(obj)
2543#define __Pyx_PyFrozenDict_CheckExact(obj) PyDict_CheckExact(obj)
2544#define __Pyx_PyAnyDict_Check(obj) PyDict_Check(obj)
2545#define __Pyx_PyAnyDict_CheckExact(obj) PyDict_CheckExact(obj)
2546#endif
2547
2548/* GetItemInt.proto */
2549#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\
2550 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2551 __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
2552 __Pyx_GetItemInt_Generic(o, to_py_func(i)))
2553#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\
2554 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2555 __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
2556 (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
2557static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
2558 int wraparound, int boundscheck, int unsafe_shared);
2559#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\
2560 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2561 __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
2562 (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
2563static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
2564 int wraparound, int boundscheck, int unsafe_shared);
2565static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
2566static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
2567 int wraparound, int boundscheck, int unsafe_shared);
2568
2569/* PyObjectGetAttrStrNoError.proto (used by ObjectGetItem) */
2570static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2571
2572/* FormatTypeName.proto (used by RaiseErrorWithObjectType) */
2573#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2574typedef PyObject *__Pyx_TypeName;
2575#define __Pyx_FMT_TYPENAME "%N"
2576#define __Pyx_PyType_GetFullyQualifiedName(tp) Py_NewRef((PyObject*)tp)
2577#define __Pyx_DECREF_TypeName(obj) Py_DECREF(obj)
2578#elif CYTHON_COMPILING_IN_LIMITED_API
2579typedef PyObject *__Pyx_TypeName;
2580#define __Pyx_FMT_TYPENAME "%U"
2581#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
2582static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
2583#else // !LIMITED_API
2584typedef const char *__Pyx_TypeName;
2585#define __Pyx_FMT_TYPENAME "%.200s"
2586#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
2587#define __Pyx_DECREF_TypeName(obj)
2588#endif
2589
2590/* RaiseErrorWithObjectType.proto (used by ObjectGetItem) */
2591#define __Pyx_RaiseTypeErrorWithObjectType(message, obj) __Pyx_RaiseErrorWithObjectType(PyExc_TypeError, message, obj)
2592#define __Pyx_RaiseErrorWithObjectType(exc_type, message, obj) __Pyx_RaiseErrorWithType(exc_type, message, Py_TYPE(obj))
2593CYTHON_UNUSED
2594static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj);
2595
2596/* ObjectGetItem.proto */
2597#if CYTHON_USE_TYPE_SLOTS
2598static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
2599#else
2600#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key)
2601#endif
2602
2603/* BufferIndexError.proto */
2604static void __Pyx_RaiseBufferIndexError(int axis);
2605
2606#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1)
2607/* RaiseErrorWithObjectTypes.proto (used by PyNumberBinop) */
2608#define __Pyx_RaiseErrorWithObjectTypes1(exc_type, message, arg, obj1, obj2) __Pyx_RaiseErrorWithTypes1(exc_type, message, arg, Py_TYPE(obj1), Py_TYPE(obj2))
2609#define __Pyx_RaiseTypeErrorWithObjectTypes(message, obj1, obj2) __Pyx_RaiseTypeErrorWithTypes(message, Py_TYPE(obj1), Py_TYPE(obj2))
2610#define __Pyx_RaiseTypeErrorWithTypes(message, type_obj1, type_obj2) __Pyx_RaiseErrorWithTypes1(PyExc_TypeError, "%.1s" message, "", type_obj1, type_obj2)
2611CYTHON_UNUSED
2612static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2);
2613
2614/* PyNumberBinop.proto */
2615#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API
2616#define __Pyx_PyNumber_Add_object_object(op1, op2) PyNumber_Add(op1, op2)
2617#define __Pyx_PyNumber_InPlaceAdd_object_object(op1, op2) PyNumber_InPlaceAdd(op1, op2)
2618#else
2619#define __Pyx_PyNumber_Add_object_object(op1, op2) __Pyx__PyNumber_Add_object_object(op1, op2, 0)
2620#define __Pyx_PyNumber_InPlaceAdd_object_object(op1, op2) __Pyx__PyNumber_Add_object_object(op1, op2, 1)
2621static CYTHON_INLINE PyObject* __Pyx__PyNumber_Add_object_object(PyObject *op1, PyObject *op2, int inplace);
2622#endif
2623
2624/* AllocateExtensionType.proto */
2625static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final);
2626
2627/* CallSlotAsVectorcall.proto */
2628#if CYTHON_VECTORCALL_TPNEW
2629typedef PyObject * (*__Pyx_tpnewvectorcallfunc)(PyTypeObject* o, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames);
2630static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k);
2631#endif
2632
2633/* CallNewInitFromVectorcall.proto */
2634#if CYTHON_VECTORCALL_TPNEW
2635static PyObject *__Pyx_CallNewInitFromVectorcall(PyTypeObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2636#endif
2637
2638/* DeallocKeepAlive.proto */
2639#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2640#define __Pyx_DeallocKeepAliveBegin(o) do {\
2641 _Py_atomic_store_uintptr_relaxed(&(o)->ob_tid, _Py_ThreadId());\
2642 _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 1);\
2643 _Py_atomic_store_ssize_relaxed(&(o)->ob_ref_shared, 0);\
2644 } while (0)
2645#define __Pyx_DeallocKeepAliveEnd(o)\
2646 _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 0)
2647#else
2648#define __Pyx_DeallocKeepAliveBegin(o) Py_SET_REFCNT(o, Py_REFCNT(o) + 1)
2649#define __Pyx_DeallocKeepAliveEnd(o) Py_SET_REFCNT(o, Py_REFCNT(o) - 1)
2650#endif
2651
2652/* PyObjectCallMethod0.proto (used by PyType_Ready) */
2653static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);
2654
2655/* GetTypeDictOffset.proto (used by ValidateBasesTuple) */
2656#if !CYTHON_USE_TYPE_SLOTS
2657CYTHON_UNUSED static Py_ssize_t __Pyx_GetTypeDictOffset(PyObject *tp, int require_cython_valid_result);
2658#endif
2659
2660/* RaiseErrorWithObjectType1.proto (used by ValidateBasesTuple) */
2661#define __Pyx_RaiseTypeErrorWithObjectType1(message, arg, obj) __Pyx_RaiseErrorWithObjectType1(PyExc_TypeError, message, arg, obj)
2662#define __Pyx_RaiseErrorWithObjectType1(exc_type, message, arg, obj) __Pyx_RaiseErrorWithType1(exc_type, message, arg, Py_TYPE(obj))
2663CYTHON_UNUSED
2664static void __Pyx_RaiseErrorWithType1(PyObject* exc_type, const char* message, const char *arg, PyTypeObject *type_obj);
2665
2666/* ValidateBasesTuple.proto (used by PyType_Ready) */
2667#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
2668static int __Pyx_validate_bases_tuple(const char *type_name, int has_dictoffset, PyObject *bases);
2669#endif
2670
2671/* PyType_Ready.export */
2672CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);
2673
2674/* LimitedApiGetTypeTypeDict.proto (used by DelItemOnTypeDict) */
2675#if CYTHON_COMPILING_IN_LIMITED_API
2676static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp);
2677#endif
2678
2679/* DelItemOnTypeDict.proto (used by SetupReduce) */
2680#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)
2681
2682/* DelItemOnTypeDict.export */
2683static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
2684
2685/* SetItemOnTypeDict.proto (used by SetupReduce) */
2686#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)
2687
2688/* SetItemOnTypeDict.export */
2689static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
2690
2691/* SetupReduce.export */
2692static int __Pyx_setup_reduce(PyObject* type_obj);
2693
2694/* TypeImport.proto */
2695#ifndef __PYX_HAVE_RT_ImportType_proto_3_3_0
2696#define __PYX_HAVE_RT_ImportType_proto_3_3_0
2697#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
2698#include <stdalign.h>
2699#endif
2700#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
2701#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) alignof(s)
2702#else
2703#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) sizeof(void*)
2704#endif
2705enum __Pyx_ImportType_CheckSize_3_3_0 {
2706 __Pyx_ImportType_CheckSize_Error_3_3_0 = 0,
2707 __Pyx_ImportType_CheckSize_Warn_3_3_0 = 1,
2708 __Pyx_ImportType_CheckSize_Ignore_3_3_0 = 2
2709};
2710static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size);
2711#endif
2712
2713/* HasAttr.proto (used by ImportImpl) */
2714#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2715#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n)
2716#else
2717static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2718#endif
2719
2720/* TupleOrListFromArrayImpl.proto (used by ListFromArray) */
2721CYTHON_UNUSED static PyObject *
2722__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
2723
2724/* ListFromArray.proto (used by ImportImpl) */
2725
2726
2727/* ImportImpl.export */
2728static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);
2729
2730/* Import.proto */
2731static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);
2732
2733/* dict_setdefault.proto (used by FetchCommonType) */
2734static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);
2735
2736/* AddModuleRef.proto (used by FetchSharedCythonModule) */
2737#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3) ||\
2738 __PYX_LIMITED_VERSION_HEX < 0x030d0000)
2739 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
2740#else
2741 #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
2742#endif
2743
2744/* FetchSharedCythonModule.proto (used by FetchCommonType) */
2745static PyObject *__Pyx_FetchSharedCythonABIModule(void);
2746
2747/* VerifyCachedType.proto (used by FetchCommonType) */
2748static int __Pyx_VerifyCachedType(PyObject *cached_type,
2749 const char *name,
2750 Py_ssize_t expected_basicsize);
2751
2752/* FetchCommonType.proto (used by CommonTypesMetaclass) */
2753static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);
2754
2755/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
2756static int __pyx_CommonTypesMetaclass_init(PyObject *module);
2757#define __Pyx_CommonTypesMetaclass_USED
2758
2759/* CythonFunctionPerModule.proto (used by CythonFunctionShared) */
2760#define __Pyx_CyFunction_USED
2761#if CYTHON_OPAQUE_SHARED_TYPES
2762#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)PyObject_GetTypeData((o), __pyx_mstate_global->__pyx_CyFunctionType))
2763#else
2764#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)o)
2765#endif
2766#define __Pyx_CYFUNCTION_STATICMETHOD 0x01
2767#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
2768#define __Pyx_CYFUNCTION_CCLASS 0x04
2769#define __Pyx_CYFUNCTION_COROUTINE 0x08
2770#define __Pyx_CyFunction_GetClosure(f)\
2771 ((__Pyx_as_CyFunctionObject(f))->func_closure)
2772#if CYTHON_COMPILING_IN_LIMITED_API
2773 #define __Pyx__CyFunction_GetClassObj(f)\
2774 ((f)->func_classobj)
2775#else
2776 #define __Pyx__CyFunction_GetClassObj(f)\
2777 ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
2778#endif
2779#define __Pyx_CyFunction_GetClassObj(f)\
2780 __Pyx__CyFunction_GetClassObj(__Pyx_as_CyFunctionObject(f))
2781#define __Pyx_CyFunction_SetClassObj(f, classobj)\
2782 __Pyx__CyFunction_SetClassObj(__Pyx_as_CyFunctionObject(f), (classobj))
2783#define __Pyx_CyFunction_Defaults(type, f)\
2784 ((type *)((__Pyx_as_CyFunctionObject(f))->defaults))
2785#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
2786 (__Pyx_as_CyFunctionObject(f))->defaults_getter = (g)
2787typedef struct {
2788#if CYTHON_COMPILING_IN_LIMITED_API
2789#if !CYTHON_OPAQUE_OBJECTS
2790 PyObject_HEAD
2791#endif
2792 PyMethodDef *func_methoddef;
2793 PyObject *func_module;
2794#else
2795 PyCMethodObject func;
2796#endif
2797#if (CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY) && CYTHON_VECTORCALL
2798 __pyx_vectorcallfunc func_vectorcall;
2799#endif
2800#if CYTHON_COMPILING_IN_LIMITED_API
2801 PyObject *func_weakreflist;
2802#endif
2803#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
2804 PyObject *func_dict;
2805#endif
2806 PyObject *func_name;
2807 PyObject *func_qualname;
2808 PyObject *func_doc;
2809 PyObject *func_globals;
2810 PyObject *func_code;
2811 PyObject *func_closure;
2812#if CYTHON_COMPILING_IN_LIMITED_API
2813 PyObject *func_classobj;
2814#endif
2815 PyObject *defaults;
2816 int flags;
2817 PyObject *defaults_tuple;
2818 PyObject *defaults_kwdict;
2819 PyObject *(*defaults_getter)(PyObject *);
2820 PyObject *func_annotations;
2821#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
2822 PyObject *func_is_coroutine;
2823#endif
2824} __pyx_CyFunctionObject;
2825#undef __Pyx_CyOrPyCFunction_Check
2826#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2827#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
2828#define __Pyx_CyFunction_CheckExact(obj) Py_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2829static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
2830#undef __Pyx_IsSameCFunction
2831#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc)
2832static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
2833static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
2834 PyTypeObject *defaults_type);
2835static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
2836 PyObject *tuple);
2837static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
2838 PyObject *dict);
2839static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
2840 PyObject *dict);
2841static int __pyx_CyFunction_init(PyObject *module);
2842#if CYTHON_VECTORCALL
2843#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
2844#define __Pyx_CyFunction_func_vectorcall(f) ((f)->func_vectorcall)
2845#else
2846#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
2847#endif
2848#endif
2849
2850/* CallTypeTraverse.proto (used by CythonFunctionShared) */
2851#if !CYTHON_USE_TYPE_SPECS
2852#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
2853#else
2854static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
2855#endif
2856
2857/* PyMethodNew.proto (used by CythonFunctionShared) */
2858static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);
2859
2860/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
2861#if CYTHON_VECTORCALL
2862static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
2863#endif
2864
2865/* CythonFunctionShared.proto (used by CythonFunction) */
2866static PyObject *__Pyx_CyFunction_Init(PyObject *op_in, PyMethodDef *ml,
2867 int flags, PyObject* qualname,
2868 PyObject *closure,
2869 PyObject *module, PyObject *globals,
2870 PyObject* code);
2871#if CYTHON_VECTORCALL
2872static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2873static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2874static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2875static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2876#endif
2877
2878/* CythonFunction.export */
2879static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
2880 int flags, PyObject* qualname,
2881 PyObject *closure,
2882 PyObject *module, PyObject *globals,
2883 PyObject* code);
2884static PyTypeObject *__Pyx_Get_CyFunction_Type(void);
2885
2886/* PyDictVersioning.proto (used by CLineInTraceback) */
2887#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2888#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
2889#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
2890#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2891 (version_var) = __PYX_GET_DICT_VERSION(dict);\
2892 (cache_var) = (value);
2893#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2894 static PY_UINT64_T __pyx_dict_version = 0;\
2895 static PyObject *__pyx_dict_cached_value = NULL;\
2896 if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2897 (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
2898 } else {\
2899 (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2900 __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2901 }\
2902}
2903static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2904static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2905static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2906#else
2907#define __PYX_GET_DICT_VERSION(dict) (0)
2908#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2909#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
2910#endif
2911
2912/* CLineInTraceback.proto (used by AddTraceback) */
2913#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
2914static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
2915#else
2916#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
2917#endif
2918
2919/* CodeObjectCache.proto (used by AddTraceback) */
2920#if CYTHON_COMPILING_IN_LIMITED_API
2921typedef PyObject __Pyx_CachedCodeObjectType;
2922#else
2923typedef PyCodeObject __Pyx_CachedCodeObjectType;
2924#endif
2925typedef struct {
2926 __Pyx_CachedCodeObjectType* code_object;
2927 int code_line;
2928} __Pyx_CodeObjectCacheEntry;
2929struct __Pyx_CodeObjectCache {
2930 int count;
2931 int max_count;
2932 __Pyx_CodeObjectCacheEntry* entries;
2933 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2934 __pyx_atomic_int_type accessor_count;
2935 #endif
2936};
2937static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
2938static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
2939static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);
2940
2941/* AddTraceback.proto */
2942static void __Pyx_AddTraceback(const char *funcname, int c_line,
2943 int py_line, const char *filename);
2944
2945/* BufferStructDeclare.proto */
2946typedef struct {
2947 Py_ssize_t shape, strides, suboffsets;
2948} __Pyx_Buf_DimInfo;
2949typedef struct {
2950 size_t refcount;
2951 Py_buffer pybuffer;
2952} __Pyx_Buffer;
2953typedef struct {
2954 __Pyx_Buffer *rcbuffer;
2955 char *data;
2956 __Pyx_Buf_DimInfo diminfo[8];
2957} __Pyx_LocalBuf_ND;
2958
2959/* GCCDiagnostics.proto */
2960#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
2961#define __Pyx_HAS_GCC_DIAGNOSTIC
2962#endif
2963
2964/* RealImag.proto */
2965#if CYTHON_CCOMPLEX
2966 #ifdef __cplusplus
2967 #define __Pyx_CREAL(z) ((z).real())
2968 #define __Pyx_CIMAG(z) ((z).imag())
2969 #else
2970 #define __Pyx_CREAL(z) (__real__(z))
2971 #define __Pyx_CIMAG(z) (__imag__(z))
2972 #endif
2973#else
2974 #define __Pyx_CREAL(z) ((z).real)
2975 #define __Pyx_CIMAG(z) ((z).imag)
2976#endif
2977#if defined(__cplusplus) && CYTHON_CCOMPLEX\
2978 && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
2979 #define __Pyx_SET_CREAL(z,x) ((z).real(x))
2980 #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
2981#else
2982 #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
2983 #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
2984#endif
2985
2986/* Arithmetic.proto */
2987#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2988 #define __Pyx_c_eq_float(a, b) ((a)==(b))
2989 #define __Pyx_c_sum_float(a, b) ((a)+(b))
2990 #define __Pyx_c_diff_float(a, b) ((a)-(b))
2991 #define __Pyx_c_prod_float(a, b) ((a)*(b))
2992 #define __Pyx_c_quot_float(a, b) ((a)/(b))
2993 #define __Pyx_c_neg_float(a) (-(a))
2994 #ifdef __cplusplus
2995 #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
2996 #define __Pyx_c_conj_float(z) (::std::conj(z))
2997 #if 1
2998 #define __Pyx_c_abs_float(z) (::std::abs(z))
2999 #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
3000 #endif
3001 #else
3002 #define __Pyx_c_is_zero_float(z) ((z)==0)
3003 #define __Pyx_c_conj_float(z) (conjf(z))
3004 #if 1
3005 #define __Pyx_c_abs_float(z) (cabsf(z))
3006 #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
3007 #endif
3008 #endif
3009#else
3010 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
3011 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
3012 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
3013 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
3014 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
3015 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
3016 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
3017 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
3018 #if 1
3019 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
3020 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
3021 #endif
3022#endif
3023
3024/* Arithmetic.proto */
3025#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3026 #define __Pyx_c_eq_double(a, b) ((a)==(b))
3027 #define __Pyx_c_sum_double(a, b) ((a)+(b))
3028 #define __Pyx_c_diff_double(a, b) ((a)-(b))
3029 #define __Pyx_c_prod_double(a, b) ((a)*(b))
3030 #define __Pyx_c_quot_double(a, b) ((a)/(b))
3031 #define __Pyx_c_neg_double(a) (-(a))
3032 #ifdef __cplusplus
3033 #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
3034 #define __Pyx_c_conj_double(z) (::std::conj(z))
3035 #if 1
3036 #define __Pyx_c_abs_double(z) (::std::abs(z))
3037 #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
3038 #endif
3039 #else
3040 #define __Pyx_c_is_zero_double(z) ((z)==0)
3041 #define __Pyx_c_conj_double(z) (conj(z))
3042 #if 1
3043 #define __Pyx_c_abs_double(z) (cabs(z))
3044 #define __Pyx_c_pow_double(a, b) (cpow(a, b))
3045 #endif
3046 #endif
3047#else
3048 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
3049 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
3050 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
3051 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
3052 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
3053 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
3054 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
3055 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
3056 #if 1
3057 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
3058 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
3059 #endif
3060#endif
3061
3062/* Arithmetic.proto */
3063#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3064 #define __Pyx_c_eq_long__double(a, b) ((a)==(b))
3065 #define __Pyx_c_sum_long__double(a, b) ((a)+(b))
3066 #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
3067 #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
3068 #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
3069 #define __Pyx_c_neg_long__double(a) (-(a))
3070 #ifdef __cplusplus
3071 #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
3072 #define __Pyx_c_conj_long__double(z) (::std::conj(z))
3073 #if 1
3074 #define __Pyx_c_abs_long__double(z) (::std::abs(z))
3075 #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b))
3076 #endif
3077 #else
3078 #define __Pyx_c_is_zero_long__double(z) ((z)==0)
3079 #define __Pyx_c_conj_long__double(z) (conjl(z))
3080 #if 1
3081 #define __Pyx_c_abs_long__double(z) (cabsl(z))
3082 #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b))
3083 #endif
3084 #endif
3085#else
3086 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3087 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3088 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3089 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3090 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3091 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
3092 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
3093 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
3094 #if 1
3095 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
3096 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3097 #endif
3098#endif
3099
3100/* CIntFromPy.proto */
3101static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);
3102
3103/* PyObjectVectorcallKwds.proto (used by PyObjectVectorcallMethodKwds) */
3104#if CYTHON_VECTORCALL
3105#define __Pyx_Object_VectorcallKwds PyObject_Vectorcall
3106CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i);
3107#else
3108#define __Pyx_Object_VectorcallKwds __Pyx_PyObject_FastCallDict
3109CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n);
3110CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i);
3111#endif
3112
3113/* PyObjectVectorcallMethodKwds.proto (used by CIntToPy) */
3114#if CYTHON_VECTORCALL
3115#define __Pyx_Object_VectorcallMethodKwds PyObject_VectorcallMethod
3116#else
3117static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
3118#endif
3119
3120/* CIntToPy.proto */
3121static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);
3122
3123/* CIntToPy.proto */
3124static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);
3125
3126/* CIntFromPy.proto */
3127static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);
3128
3129/* GetRuntimeVersion.proto */
3130#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
3131static unsigned long __Pyx_cached_runtime_version = 0;
3132static void __Pyx_init_runtime_version(void);
3133#else
3134#define __Pyx_init_runtime_version()
3135#endif
3136static unsigned long __Pyx_get_runtime_version(void);
3137
3138/* CheckBinaryVersion.proto */
3139static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
3140
3141/* DecompressString.proto */
3142static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);
3143
3144/* DecompressString_LZSS.proto */
3145static PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length);
3146
3147/* MultiPhaseInitModuleState.proto */
3148#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
3149#include <stdlib.h>
3150static PyObject *__Pyx_State_FindModule(void*);
3151static int __Pyx_State_AddModule(PyObject* module, void*);
3152static int __Pyx_State_RemoveModule(void*);
3153#elif CYTHON_USE_MODULE_STATE
3154#define __Pyx_State_FindModule PyState_FindModule
3155#define __Pyx_State_AddModule PyState_AddModule
3156#define __Pyx_State_RemoveModule PyState_RemoveModule
3157#endif
3158
3159/* #### Code section: module_declarations ### */
3160/* CythonABIVersion.proto */
3161#if CYTHON_COMPILING_IN_LIMITED_API
3162 #if CYTHON_VECTORCALL
3163 #define __PYX_VECTORCALL_ABI_SUFFIX "_vectorcall"
3164 #else
3165 #define __PYX_VECTORCALL_ABI_SUFFIX
3166 #endif
3167 #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_VECTORCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
3168#else
3169 #define __PYX_LIMITED_ABI_SUFFIX
3170#endif
3171#if __PYX_HAS_PY_AM_SEND == 1
3172 #define __PYX_AM_SEND_ABI_SUFFIX
3173#elif __PYX_HAS_PY_AM_SEND == 2
3174 #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
3175#else
3176 #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
3177#endif
3178#ifndef __PYX_MONITORING_ABI_SUFFIX
3179 #define __PYX_MONITORING_ABI_SUFFIX
3180#endif
3181#if CYTHON_USE_TP_FINALIZE
3182 #define __PYX_TP_FINALIZE_ABI_SUFFIX
3183#else
3184 #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
3185#endif
3186#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
3187 #define __PYX_FREELISTS_ABI_SUFFIX
3188#else
3189 #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
3190#endif
3191#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
3192 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX "opaque"
3193#else
3194 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX
3195#endif
3196#define CYTHON_ABI __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX __PYX_OPAQUE_OBJECTS_ABI_SUFFIX
3197#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
3198#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
3199
3200static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3201static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3202static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3203static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3204static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3205static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3206static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3207static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3208static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3209static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3210static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3211static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3212static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3213static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3214static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3215static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3216static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3217static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self); /* proto*/
3218static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self); /* proto*/
3219static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self); /* proto*/
3220static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self); /* proto*/
3221static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self); /* proto*/
3222static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self); /* proto*/
3223static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self); /* proto*/
3224static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3225static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3226static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3227static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3228static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3229static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3230static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3231static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3232static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3233static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3234static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3235
3236/* Module declarations from "libc.string" */
3237
3238/* Module declarations from "libc.stdio" */
3239
3240/* Module declarations from "__builtin__" */
3241
3242/* Module declarations from "cpython.type" */
3243
3244/* Module declarations from "cpython" */
3245
3246/* Module declarations from "cpython.object" */
3247
3248/* Module declarations from "cpython.ref" */
3249
3250/* Module declarations from "numpy" */
3251
3252/* Module declarations from "numpy" */
3253
3254/* Module declarations from "postprocessing" */
3255
3256/* Module declarations from "cpostprocessing" */
3257/* #### Code section: typeinfo ### */
3258static const __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, __PYX_IS_UNSIGNED(int) ? 'U' : 'I', __PYX_IS_UNSIGNED(int), 0 };
3259/* #### Code section: before_global_var ### */
3260#define __Pyx_MODULE_NAME "cpostprocessing"
3261extern int __pyx_module_is_main_cpostprocessing;
3262int __pyx_module_is_main_cpostprocessing = 0;
3263
3264/* Implementation of "cpostprocessing" */
3265/* #### Code section: global_var ### */
3266/* #### Code section: string_decls ### */
3267/* #### Code section: decls ### */
3268static PyObject *__pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt); /* proto */
3269static PyObject *__pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt); /* proto */
3270static PyObject *__pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
3271static PyObject *__pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
3272static PyObject *__pyx_pf_15cpostprocessing_8getElementRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
3273static PyObject *__pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary); /* proto */
3274static PyObject *__pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
3275static PyObject *__pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
3276static PyObject *__pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential); /* proto */
3277static PyObject *__pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential); /* proto */
3278static PyObject *__pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_BDMmat_element); /* proto */
3279static PyObject *__pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_degree, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_q_basis_vals, PyArrayObject *__pyx_v_w_int_test_grads, PyArrayObject *__pyx_v_w_int_div_free, PyArrayObject *__pyx_v_piola_trial_fun, PyArrayObject *__pyx_v_edgeFlags, PyArrayObject *__pyx_v_BDMmat_element); /* proto */
3280static PyObject *__pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element); /* proto */
3281static PyObject *__pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element); /* proto */
3282static PyObject *__pyx_pf_15cpostprocessing_28solveLocalBDM1projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_vdofs); /* proto */
3283static PyObject *__pyx_pf_15cpostprocessing_30solveLocalBDM2projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs); /* proto */
3284static PyObject *__pyx_pf_15cpostprocessing_32buildBDM2rhs(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_w_interior_divfree, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs, PyArrayObject *__pyx_v_edgeFlags); /* proto */
3285static PyObject *__pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_global_flux, PyArrayObject *__pyx_v_q_vdofs); /* proto */
3286static PyObject *__pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
3287static PyObject *__pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
3288static PyObject *__pyx_pf_15cpostprocessing_40getElementLDGvelocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_vdofs, PyArrayObject *__pyx_v_q_velocity); /* proto */
3289static PyObject *__pyx_pf_15cpostprocessing_42getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebqe_velocity); /* proto */
3290static PyObject *__pyx_pf_15cpostprocessing_44getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_global_velocity); /* proto */
3291static PyObject *__pyx_pf_15cpostprocessing_46getElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_velocity); /* proto */
3292static PyObject *__pyx_pf_15cpostprocessing_48projectElementBoundaryVelocityToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_v_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
3293static PyObject *__pyx_pf_15cpostprocessing_50projectElementBoundaryFluxToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_flux_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element); /* proto */
3294static PyObject *__pyx_pf_15cpostprocessing_52getElementRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
3295static PyObject *__pyx_pf_15cpostprocessing_54getElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary); /* proto */
3296static PyObject *__pyx_pf_15cpostprocessing_56getGlobalElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global); /* proto */
3297static PyObject *__pyx_pf_15cpostprocessing_58getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_ebqe, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_ebqe); /* proto */
3298static PyObject *__pyx_pf_15cpostprocessing_60getRT0velocityValuesFluxRep_arbitraryElementMembership(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_element_locations, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element); /* proto */
3299static PyObject *__pyx_pf_15cpostprocessing_62fluxCorrectionVelocityUpdate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_velocity_element); /* proto */
3300static PyObject *__pyx_pf_15cpostprocessing_64computeFluxCorrectionPWC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_pwcW, PyArrayObject *__pyx_v_pwcV, PyArrayObject *__pyx_v_fluxCorrection); /* proto */
3301static PyObject *__pyx_pf_15cpostprocessing_66sunWheelerGSsweep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_alphaFactor, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_conservationResidual); /* proto */
3302static int __pyx_pf_15cpostprocessing_14NodeStarFactor___cinit__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_nodeStarElementsArray, PyArrayObject *__pyx_v_nodeStarElementsNeighborsArray); /* proto */
3303static void __pyx_pf_15cpostprocessing_14NodeStarFactor_2__dealloc__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self); /* proto */
3304static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_4setU(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, double __pyx_v_val); /* proto */
3305static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_6copyData(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_other); /* proto */
3306static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self); /* proto */
3307static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3308static PyObject *__pyx_pf_15cpostprocessing_68calculateConservationResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
3309static PyObject *__pyx_pf_15cpostprocessing_70calculateConservationJacobianPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_dofStarElements, PyArrayObject *__pyx_v_dofStarElementNeighbors, PyArrayObject *__pyx_v_nElements_dof, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3310static PyObject *__pyx_pf_15cpostprocessing_72calculateConservationFluxPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3311static PyObject *__pyx_pf_15cpostprocessing_74calculateConservationFluxPWL_noNeumannFix(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3312static PyObject *__pyx_pf_15cpostprocessing_76calculateConservationResidualPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
3313static PyObject *__pyx_pf_15cpostprocessing_78calculateConservationResidualPWL_primative(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative); /* proto */
3314static PyObject *__pyx_pf_15cpostprocessing_80calculateConservationJacobianPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3315static PyObject *__pyx_pf_15cpostprocessing_82calculateConservationFluxPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3316static PyObject *__pyx_pf_15cpostprocessing_84calculateConservationResidualPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element); /* proto */
3317static PyObject *__pyx_pf_15cpostprocessing_86calculateConservationJacobianPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor); /* proto */
3318static PyObject *__pyx_pf_15cpostprocessing_88_subdomain_U_copy_global2local(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U); /* proto */
3319static PyObject *__pyx_pf_15cpostprocessing_90_subdomain_U_copy_local2global(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U); /* proto */
3320static PyObject *__pyx_pf_15cpostprocessing_92calculateConservationResidualGlobalBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundariesToSkip, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_conservationResidual); /* proto */
3321static PyObject *__pyx_pf_15cpostprocessing_94updateSelectedExteriorElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_residual); /* proto */
3322static PyObject *__pyx_pf_15cpostprocessing_96updateAdvectiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_advectiveVelocity, PyArrayObject *__pyx_v_velocity); /* proto */
3323static PyObject *__pyx_pf_15cpostprocessing_98updateDiffusiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
3324static PyObject *__pyx_pf_15cpostprocessing_100updateDiffusiveVelocityPointEval_sd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity); /* proto */
3325static PyObject *__pyx_pf_15cpostprocessing_102calculateElementResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_alpha, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_elementResidualPWL); /* proto */
3326static PyObject *__pyx_pf_15cpostprocessing_104copyElementBoundaryVelocityToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
3327static PyObject *__pyx_pf_15cpostprocessing_106addAverageToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocityAverage, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
3328static PyObject *__pyx_pf_15cpostprocessing_108copyParVecToElementBoundaryVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local); /* proto */
3329static PyObject *__pyx_tp_new__initialisation_15cpostprocessing_NodeStarFactor(PyObject *o,
3330#if CYTHON_VECTORCALL_TPNEW
3331 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3332#else
3333 PyObject *a, PyObject *k
3334#endif
3335); /*proto*/
3336static PyObject *__pyx_tp_new_vectorcall_15cpostprocessing_NodeStarFactor(PyTypeObject *t,
3337#if CYTHON_VECTORCALL_TPNEW
3338 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3339#else
3340 PyObject *a, PyObject *k
3341#endif
3342); /*proto*/
3343#if CYTHON_VECTORCALL_TPNEW
3344static PyObject *__pyx_tp_new_15cpostprocessing_NodeStarFactor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3345#endif
3346#if !CYTHON_VECTORCALL_TPNEW
3347#define __pyx_tp_new_15cpostprocessing_NodeStarFactor __pyx_tp_new_vectorcall_15cpostprocessing_NodeStarFactor
3348#endif
3349#if CYTHON_VECTORCALL_TPNEW
3350static PyObject *__pyx_tp_vectorcall_15cpostprocessing_NodeStarFactor(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/
3351#endif
3352/* #### Code section: late_includes ### */
3353/* #### Code section: module_state ### */
3354/* SmallCodeConfig */
3355#ifndef CYTHON_SMALL_CODE
3356#if defined(__clang__)
3357 #define CYTHON_SMALL_CODE
3358#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
3359 #define CYTHON_SMALL_CODE __attribute__((cold))
3360#else
3361 #define CYTHON_SMALL_CODE
3362#endif
3363#endif
3364
3365#ifdef __cplusplus
3366namespace {
3367 #endif
3368 typedef struct {
3369 PyObject *__pyx_d;
3370 PyObject *__pyx_b;
3371 PyObject *__pyx_cython_runtime;
3372 PyObject *__pyx_empty_tuple;
3373 PyObject *__pyx_empty_bytes;
3374 PyObject *__pyx_empty_unicode;
3375 PyTypeObject *__pyx_ptype_7cpython_4type_type;
3376 PyTypeObject *__pyx_ptype_5numpy_dtype;
3377 PyTypeObject *__pyx_ptype_5numpy_flatiter;
3378 PyTypeObject *__pyx_ptype_5numpy_broadcast;
3379 PyTypeObject *__pyx_ptype_5numpy_ndarray;
3380 PyTypeObject *__pyx_ptype_5numpy_generic;
3381 PyTypeObject *__pyx_ptype_5numpy_number;
3382 PyTypeObject *__pyx_ptype_5numpy_integer;
3383 PyTypeObject *__pyx_ptype_5numpy_signedinteger;
3384 PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
3385 PyTypeObject *__pyx_ptype_5numpy_inexact;
3386 PyTypeObject *__pyx_ptype_5numpy_floating;
3387 PyTypeObject *__pyx_ptype_5numpy_complexfloating;
3388 PyTypeObject *__pyx_ptype_5numpy_flexible;
3389 PyTypeObject *__pyx_ptype_5numpy_character;
3390 PyTypeObject *__pyx_ptype_5numpy_ufunc;
3391 PyObject *__pyx_type_15cpostprocessing_NodeStarFactor;
3392 PyTypeObject *__pyx_ptype_15cpostprocessing_NodeStarFactor;
3393 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
3394 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
3395 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
3396 PyObject *__pyx_tuple[1];
3397 PyObject *__pyx_codeobj_tab[59];
3398 PyObject *__pyx_string_tab[287];
3399/* #### Code section: module_state_contents ### */
3400/* PyFrozenDict.module_state_decls */
3401#if CYTHON_COMPILING_IN_LIMITED_API
3402PyObject *__Pyx_PyFrozenDictType;
3403#endif
3404
3405/* CommonTypesMetaclass.module_state_decls */
3406PyTypeObject *__pyx_CommonTypesMetaclassType;
3407
3408/* CachedMethodType.module_state_decls */
3409#if CYTHON_COMPILING_IN_LIMITED_API
3410PyObject *__Pyx_CachedMethodType;
3411#endif
3412
3413/* CythonFunctionPerModule.module_state_decls */
3414PyTypeObject *__pyx_CyFunctionType;
3415
3416/* CodeObjectCache.module_state_decls */
3417struct __Pyx_CodeObjectCache __pyx_code_cache;
3418
3419/* #### Code section: module_state_end ### */
3420} __pyx_mstatetype;
3421#ifdef __cplusplus
3422} /* anonymous namespace */
3423#endif
3424
3425#if CYTHON_USE_MODULE_STATE
3426#ifdef __cplusplus
3427namespace {
3428extern struct PyModuleDef __pyx_moduledef;
3429} /* anonymous namespace */
3430#else
3431static struct PyModuleDef __pyx_moduledef;
3432#endif
3433
3434#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))
3435
3436#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
3437#else
3438static __pyx_mstatetype __pyx_mstate_global_static =
3439#ifdef __cplusplus
3440 {};
3441#else
3442 {0};
3443#endif
3444static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
3445#endif
3446/* #### Code section: constant_name_defines ### */
3447#define __pyx_kp_u_tree_fragment __pyx_string_tab[0]
3448#define __pyx_kp_u_ __pyx_string_tab[1]
3449#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[2]
3450#define __pyx_kp_u_add_note __pyx_string_tab[3]
3451#define __pyx_kp_u_disable __pyx_string_tab[4]
3452#define __pyx_kp_u_enable __pyx_string_tab[5]
3453#define __pyx_kp_u_gc __pyx_string_tab[6]
3454#define __pyx_kp_u_isenabled __pyx_string_tab[7]
3455#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[8]
3456#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[9]
3457#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[10]
3458#define __pyx_kp_u_proteus_cpostprocessing_pyx __pyx_string_tab[11]
3459#define __pyx_n_u_BDMmatPivots_element __pyx_string_tab[12]
3460#define __pyx_n_u_BDMmat_element __pyx_string_tab[13]
3461#define __pyx_n_u_I __pyx_string_tab[14]
3462#define __pyx_n_u_NodeStarFactor __pyx_string_tab[15]
3463#define __pyx_n_u_NodeStarFactor___reduce_cython __pyx_string_tab[16]
3464#define __pyx_n_u_NodeStarFactor___setstate_cython __pyx_string_tab[17]
3465#define __pyx_n_u_NodeStarFactor_copyData __pyx_string_tab[18]
3466#define __pyx_n_u_NodeStarFactor_setU __pyx_string_tab[19]
3467#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[20]
3468#define __pyx_n_u_annotate __pyx_string_tab[21]
3469#define __pyx_n_u_class_getitem __pyx_string_tab[22]
3470#define __pyx_n_u_func __pyx_string_tab[23]
3471#define __pyx_n_u_getstate __pyx_string_tab[24]
3472#define __pyx_n_u_main __pyx_string_tab[25]
3473#define __pyx_n_u_module __pyx_string_tab[26]
3474#define __pyx_n_u_name __pyx_string_tab[27]
3475#define __pyx_n_u_pyx_state __pyx_string_tab[28]
3476#define __pyx_n_u_qualname __pyx_string_tab[29]
3477#define __pyx_n_u_reduce __pyx_string_tab[30]
3478#define __pyx_n_u_reduce_cython __pyx_string_tab[31]
3479#define __pyx_n_u_reduce_ex __pyx_string_tab[32]
3480#define __pyx_n_u_set_name __pyx_string_tab[33]
3481#define __pyx_n_u_setstate __pyx_string_tab[34]
3482#define __pyx_n_u_setstate_cython __pyx_string_tab[35]
3483#define __pyx_n_u_test __pyx_string_tab[36]
3484#define __pyx_n_u_is_coroutine __pyx_string_tab[37]
3485#define __pyx_n_u_subdomain_U_copy_global2local __pyx_string_tab[38]
3486#define __pyx_n_u_subdomain_U_copy_local2global __pyx_string_tab[39]
3487#define __pyx_n_u_a __pyx_string_tab[40]
3488#define __pyx_n_u_aElementQuadWeights __pyx_string_tab[41]
3489#define __pyx_n_u_abs_det_J __pyx_string_tab[42]
3490#define __pyx_n_u_addAverageToParVec __pyx_string_tab[43]
3491#define __pyx_n_u_advectiveVelocity __pyx_string_tab[44]
3492#define __pyx_n_u_alpha __pyx_string_tab[45]
3493#define __pyx_n_u_alphaFactor __pyx_string_tab[46]
3494#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[47]
3495#define __pyx_n_u_buildBDM2rhs __pyx_string_tab[48]
3496#define __pyx_n_u_buildLocalBDM1projectionMatrices __pyx_string_tab[49]
3497#define __pyx_n_u_buildLocalBDM2projectionMatrices __pyx_string_tab[50]
3498#define __pyx_n_u_calculateConservationFluxPWL __pyx_string_tab[51]
3499#define __pyx_n_u_calculateConservationFluxPWL_noN __pyx_string_tab[52]
3500#define __pyx_n_u_calculateConservationFluxPWL_opt __pyx_string_tab[53]
3501#define __pyx_n_u_calculateConservationJacobianPWL __pyx_string_tab[54]
3502#define __pyx_n_u_calculateConservationJacobianPWL_3 __pyx_string_tab[55]
3503#define __pyx_n_u_calculateConservationJacobianPWL_2 __pyx_string_tab[56]
3504#define __pyx_n_u_calculateConservationResidualGlo __pyx_string_tab[57]
3505#define __pyx_n_u_calculateConservationResidualPWL __pyx_string_tab[58]
3506#define __pyx_n_u_calculateConservationResidualPWL_4 __pyx_string_tab[59]
3507#define __pyx_n_u_calculateConservationResidualPWL_2 __pyx_string_tab[60]
3508#define __pyx_n_u_calculateConservationResidualPWL_3 __pyx_string_tab[61]
3509#define __pyx_n_u_calculateElementResidualPWL __pyx_string_tab[62]
3510#define __pyx_n_u_cline_in_traceback __pyx_string_tab[63]
3511#define __pyx_n_u_colind __pyx_string_tab[64]
3512#define __pyx_n_u_computeFluxCorrectionPWC __pyx_string_tab[65]
3513#define __pyx_n_u_conservationResidual __pyx_string_tab[66]
3514#define __pyx_n_u_copyData __pyx_string_tab[67]
3515#define __pyx_n_u_copyElementBoundaryVelocityToPar __pyx_string_tab[68]
3516#define __pyx_n_u_copyParVecToElementBoundaryVeloc __pyx_string_tab[69]
3517#define __pyx_n_u_cpostprocessing __pyx_string_tab[70]
3518#define __pyx_n_u_dS __pyx_string_tab[71]
3519#define __pyx_n_u_degree __pyx_string_tab[72]
3520#define __pyx_n_u_detJ __pyx_string_tab[73]
3521#define __pyx_n_u_diffusionTensor __pyx_string_tab[74]
3522#define __pyx_n_u_dofMapl2g __pyx_string_tab[75]
3523#define __pyx_n_u_dofStarElementNeighbors __pyx_string_tab[76]
3524#define __pyx_n_u_dofStarElements __pyx_string_tab[77]
3525#define __pyx_n_u_dx __pyx_string_tab[78]
3526#define __pyx_n_u_ebN __pyx_string_tab[79]
3527#define __pyx_n_u_ebq_global_flux __pyx_string_tab[80]
3528#define __pyx_n_u_ebq_global_velocity __pyx_string_tab[81]
3529#define __pyx_n_u_ebq_n __pyx_string_tab[82]
3530#define __pyx_n_u_ebq_v __pyx_string_tab[83]
3531#define __pyx_n_u_ebq_v_par_local __pyx_string_tab[84]
3532#define __pyx_n_u_ebq_velocity __pyx_string_tab[85]
3533#define __pyx_n_u_ebq_velocityAverage __pyx_string_tab[86]
3534#define __pyx_n_u_ebqe_v __pyx_string_tab[87]
3535#define __pyx_n_u_ebqe_velocity __pyx_string_tab[88]
3536#define __pyx_n_u_edgeFlags __pyx_string_tab[89]
3537#define __pyx_n_u_elementBarycenters __pyx_string_tab[90]
3538#define __pyx_n_u_elementBoundariesArray __pyx_string_tab[91]
3539#define __pyx_n_u_elementBoundaryElements __pyx_string_tab[92]
3540#define __pyx_n_u_elementBoundaryElementsArray __pyx_string_tab[93]
3541#define __pyx_n_u_elementBoundaryLocalElementBound __pyx_string_tab[94]
3542#define __pyx_n_u_elementBoundaryQuadratureWeights __pyx_string_tab[95]
3543#define __pyx_n_u_elementNodes __pyx_string_tab[96]
3544#define __pyx_n_u_elementNodesArray __pyx_string_tab[97]
3545#define __pyx_n_u_elementResidual __pyx_string_tab[98]
3546#define __pyx_n_u_elementResidualPWL __pyx_string_tab[99]
3547#define __pyx_n_u_element_locations __pyx_string_tab[100]
3548#define __pyx_n_u_exteriorElementBoundaries __pyx_string_tab[101]
3549#define __pyx_n_u_exteriorElementBoundariesArray __pyx_string_tab[102]
3550#define __pyx_n_u_exteriorElementBoundariesToSkip __pyx_string_tab[103]
3551#define __pyx_n_u_f __pyx_string_tab[104]
3552#define __pyx_n_u_factorLocalBDM1projectionMatrice __pyx_string_tab[105]
3553#define __pyx_n_u_factorLocalBDM2projectionMatrice __pyx_string_tab[106]
3554#define __pyx_n_u_flux __pyx_string_tab[107]
3555#define __pyx_n_u_fluxBoundaryNodes __pyx_string_tab[108]
3556#define __pyx_n_u_fluxCorrection __pyx_string_tab[109]
3557#define __pyx_n_u_fluxCorrectionVelocityUpdate __pyx_string_tab[110]
3558#define __pyx_n_u_fluxElementBoundaries __pyx_string_tab[111]
3559#define __pyx_n_u_flux_elementBoundary __pyx_string_tab[112]
3560#define __pyx_n_u_freeLocal_element __pyx_string_tab[113]
3561#define __pyx_n_u_getElementBDM1velocityValuesLagr __pyx_string_tab[114]
3562#define __pyx_n_u_getElementBDM2velocityValuesLagr __pyx_string_tab[115]
3563#define __pyx_n_u_getElementBoundaryBDM1velocityVa __pyx_string_tab[116]
3564#define __pyx_n_u_getElementBoundaryRT0velocityVal __pyx_string_tab[117]
3565#define __pyx_n_u_getElementBoundaryRT0velocityVal_2 __pyx_string_tab[118]
3566#define __pyx_n_u_getElementLDGvelocityValuesLagra __pyx_string_tab[119]
3567#define __pyx_n_u_getElementRT0velocityValues __pyx_string_tab[120]
3568#define __pyx_n_u_getElementRT0velocityValuesFluxR __pyx_string_tab[121]
3569#define __pyx_n_u_getGlobalElementBoundaryBDM1velo __pyx_string_tab[122]
3570#define __pyx_n_u_getGlobalElementBoundaryRT0veloc __pyx_string_tab[123]
3571#define __pyx_n_u_getGlobalElementBoundaryRT0veloc_2 __pyx_string_tab[124]
3572#define __pyx_n_u_getGlobalExteriorElementBoundary_2 __pyx_string_tab[125]
3573#define __pyx_n_u_getGlobalExteriorElementBoundary __pyx_string_tab[126]
3574#define __pyx_n_u_getGlobalExteriorElementBoundary_3 __pyx_string_tab[127]
3575#define __pyx_n_u_getRT0velocityValuesFluxRep_arbi __pyx_string_tab[128]
3576#define __pyx_n_u_grad_phi __pyx_string_tab[129]
3577#define __pyx_n_u_gradphi __pyx_string_tab[130]
3578#define __pyx_n_u_gradu __pyx_string_tab[131]
3579#define __pyx_n_u_i __pyx_string_tab[132]
3580#define __pyx_n_u_interiorElementBoundaries __pyx_string_tab[133]
3581#define __pyx_n_u_internalNodes __pyx_string_tab[134]
3582#define __pyx_n_u_items __pyx_string_tab[135]
3583#define __pyx_n_u_k __pyx_string_tab[136]
3584#define __pyx_n_u_max_nN_owned __pyx_string_tab[137]
3585#define __pyx_n_u_mt __pyx_string_tab[138]
3586#define __pyx_n_u_n __pyx_string_tab[139]
3587#define __pyx_n_u_nDOF_trial_element __pyx_string_tab[140]
3588#define __pyx_n_u_nElementBoundaries __pyx_string_tab[141]
3589#define __pyx_n_u_nElements_dof __pyx_string_tab[142]
3590#define __pyx_n_u_nElements_node __pyx_string_tab[143]
3591#define __pyx_n_u_nFreeDOF_element __pyx_string_tab[144]
3592#define __pyx_n_u_nNodes_owned __pyx_string_tab[145]
3593#define __pyx_n_u_nPoints __pyx_string_tab[146]
3594#define __pyx_n_u_nQuadraturePoints __pyx_string_tab[147]
3595#define __pyx_n_u_nSpace __pyx_string_tab[148]
3596#define __pyx_n_u_nVDOF_element __pyx_string_tab[149]
3597#define __pyx_n_u_nVDOFs_element __pyx_string_tab[150]
3598#define __pyx_n_u_nodeArray __pyx_string_tab[151]
3599#define __pyx_n_u_nodeStarElementNeighbors __pyx_string_tab[152]
3600#define __pyx_n_u_nodeStarElements __pyx_string_tab[153]
3601#define __pyx_n_u_nodeStarElementsArray __pyx_string_tab[154]
3602#define __pyx_n_u_nodeStarElementsNeighborsArray __pyx_string_tab[155]
3603#define __pyx_n_u_nodeStarFactor __pyx_string_tab[156]
3604#define __pyx_n_u_np __pyx_string_tab[157]
3605#define __pyx_n_u_numpy __pyx_string_tab[158]
3606#define __pyx_n_u_other __pyx_string_tab[159]
3607#define __pyx_n_u_p1_vdofs __pyx_string_tab[160]
3608#define __pyx_n_u_permutations __pyx_string_tab[161]
3609#define __pyx_n_u_phi __pyx_string_tab[162]
3610#define __pyx_n_u_piola_trial_fun __pyx_string_tab[163]
3611#define __pyx_n_u_pop __pyx_string_tab[164]
3612#define __pyx_n_u_postProcessRT0potentialFromP1nc __pyx_string_tab[165]
3613#define __pyx_n_u_postProcessRT0potentialFromP1nc_2 __pyx_string_tab[166]
3614#define __pyx_n_u_postProcessRT0velocityFromP1nc __pyx_string_tab[167]
3615#define __pyx_n_u_postProcessRT0velocityFromP1nc_s __pyx_string_tab[168]
3616#define __pyx_n_u_projectElementBoundaryFluxToRT0f __pyx_string_tab[169]
3617#define __pyx_n_u_projectElementBoundaryVelocityTo __pyx_string_tab[170]
3618#define __pyx_n_u_pwcV __pyx_string_tab[171]
3619#define __pyx_n_u_pwcW __pyx_string_tab[172]
3620#define __pyx_n_u_q_basis_vals __pyx_string_tab[173]
3621#define __pyx_n_u_q_v __pyx_string_tab[174]
3622#define __pyx_n_u_q_vdofs __pyx_string_tab[175]
3623#define __pyx_n_u_q_velocity __pyx_string_tab[176]
3624#define __pyx_n_u_quad_a __pyx_string_tab[177]
3625#define __pyx_n_u_quad_f __pyx_string_tab[178]
3626#define __pyx_n_u_r __pyx_string_tab[179]
3627#define __pyx_n_u_residual __pyx_string_tab[180]
3628#define __pyx_n_u_rowptr __pyx_string_tab[181]
3629#define __pyx_n_u_rt0potential __pyx_string_tab[182]
3630#define __pyx_n_u_rt0vdofs __pyx_string_tab[183]
3631#define __pyx_n_u_rt0vdofs_element __pyx_string_tab[184]
3632#define __pyx_n_u_self __pyx_string_tab[185]
3633#define __pyx_n_u_setU __pyx_string_tab[186]
3634#define __pyx_n_u_setdefault __pyx_string_tab[187]
3635#define __pyx_n_u_skipflag_elementBoundaries __pyx_string_tab[188]
3636#define __pyx_n_u_solveLocalBDM1projection __pyx_string_tab[189]
3637#define __pyx_n_u_solveLocalBDM1projectionFromFlux __pyx_string_tab[190]
3638#define __pyx_n_u_solveLocalBDM2projection __pyx_string_tab[191]
3639#define __pyx_n_u_sqrt_det_g __pyx_string_tab[192]
3640#define __pyx_n_u_subdomain_U __pyx_string_tab[193]
3641#define __pyx_n_u_sunWheelerGSsweep __pyx_string_tab[194]
3642#define __pyx_n_u_u __pyx_string_tab[195]
3643#define __pyx_n_u_uQuadratureWeights_element __pyx_string_tab[196]
3644#define __pyx_n_u_uQuadratureWeights_elementBounda __pyx_string_tab[197]
3645#define __pyx_n_u_u_elementBoundary __pyx_string_tab[198]
3646#define __pyx_n_u_updateAdvectiveVelocityPointEval __pyx_string_tab[199]
3647#define __pyx_n_u_updateCoef __pyx_string_tab[200]
3648#define __pyx_n_u_updateDiffusiveVelocityPointEval __pyx_string_tab[201]
3649#define __pyx_n_u_updateDiffusiveVelocityPointEval_2 __pyx_string_tab[202]
3650#define __pyx_n_u_updateRT0velocityWithAveragedPot __pyx_string_tab[203]
3651#define __pyx_n_u_updateRT0velocityWithAveragedPot_2 __pyx_string_tab[204]
3652#define __pyx_n_u_updateSelectedExteriorElementBou __pyx_string_tab[205]
3653#define __pyx_n_u_vAverage __pyx_string_tab[206]
3654#define __pyx_n_u_vConservative __pyx_string_tab[207]
3655#define __pyx_n_u_vConservative_element __pyx_string_tab[208]
3656#define __pyx_n_u_v_ebqe __pyx_string_tab[209]
3657#define __pyx_n_u_v_element __pyx_string_tab[210]
3658#define __pyx_n_u_v_elementBoundary __pyx_string_tab[211]
3659#define __pyx_n_u_v_elementBoundary_global __pyx_string_tab[212]
3660#define __pyx_n_u_val __pyx_string_tab[213]
3661#define __pyx_n_u_values __pyx_string_tab[214]
3662#define __pyx_n_u_vdofs __pyx_string_tab[215]
3663#define __pyx_n_u_velocity __pyx_string_tab[216]
3664#define __pyx_n_u_velocity_element __pyx_string_tab[217]
3665#define __pyx_n_u_w __pyx_string_tab[218]
3666#define __pyx_n_u_w_dS_f __pyx_string_tab[219]
3667#define __pyx_n_u_w_dV_m __pyx_string_tab[220]
3668#define __pyx_n_u_w_dV_r __pyx_string_tab[221]
3669#define __pyx_n_u_w_int_div_free __pyx_string_tab[222]
3670#define __pyx_n_u_w_int_test_grads __pyx_string_tab[223]
3671#define __pyx_n_u_w_interior_divfree __pyx_string_tab[224]
3672#define __pyx_n_u_w_interior_gradients __pyx_string_tab[225]
3673#define __pyx_n_u_x __pyx_string_tab[226]
3674#define __pyx_n_u_x_ebqe __pyx_string_tab[227]
3675#define __pyx_n_u_x_element __pyx_string_tab[228]
3676#define __pyx_n_u_x_elementBoundary __pyx_string_tab[229]
3677#define __pyx_n_u_x_elementBoundary_global __pyx_string_tab[230]
3678#define __pyx_kp_b_iso88591_Q __pyx_string_tab[231]
3679#define __pyx_kp_b_iso88591_vQa_7vQa_3_00DA __pyx_string_tab[232]
3680#define __pyx_kp_b_iso88591_0_vQa18_a12 __pyx_string_tab[233]
3681#define __pyx_kp_b_iso88591_z_q_3a_6_S_xvRq_c_q_az_q_9_q_9 __pyx_string_tab[234]
3682#define __pyx_kp_b_iso88591_xuBhfAXU_1_AQ_5V1HE_77H_7xq __pyx_string_tab[235]
3683#define __pyx_kp_b_iso88591_E_q_6_V2Q_S_6_AZvQa_Qj_aq_8_aq __pyx_string_tab[236]
3684#define __pyx_kp_b_iso88591_j_ar_V1Baq_xvRq_c_q_az_q_6fAQ_6 __pyx_string_tab[237]
3685#define __pyx_kp_b_iso88591_9F_1_F_1_F_1_Ya_Q_Ya __pyx_string_tab[238]
3686#define __pyx_kp_b_iso88591_2_5V1A_U__A_q __pyx_string_tab[239]
3687#define __pyx_kp_b_iso88591_F_1_F_1_F_1_F_1_55Fa_55EQ_55Fa __pyx_string_tab[240]
3688#define __pyx_kp_b_iso88591_xuBhfAXU_1_AQ_5V1HE_7_a_7xq_7xq __pyx_string_tab[241]
3689#define __pyx_kp_b_iso88591_1N_1_q_A_1 __pyx_string_tab[242]
3690#define __pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_V1A_6fAQ __pyx_string_tab[243]
3691#define __pyx_kp_b_iso88591_1_1I_qPQ1I_qPQ1I_qPQ188TTU1_SST __pyx_string_tab[244]
3692#define __pyx_kp_b_iso88591_2_6_236_236_236_2_2_AQ2_MQ2_LA __pyx_string_tab[245]
3693#define __pyx_kp_b_iso88591_l_2_q_1_xvRq_c_q_vQa_GvQa_GvQa __pyx_string_tab[246]
3694#define __pyx_kp_b_iso88591_m6_Bm6_AQ_xvRq_c_q_DA_RXXYYZERR __pyx_string_tab[247]
3695#define __pyx_kp_b_iso88591_1_q_OvUVVXXYYZ_xvRq_c_q_DAV6QRR __pyx_string_tab[248]
3696#define __pyx_kp_b_iso88591_AQ_0_aq_0_aq_L_A_nA __pyx_string_tab[249]
3697#define __pyx_kp_b_iso88591_q_6fAQ_5V1A_Q_A_q __pyx_string_tab[250]
3698#define __pyx_kp_b_iso88591_Q_NfTUUV_NfTUUV_NfTUUV_fAQ_55QQ __pyx_string_tab[251]
3699#define __pyx_kp_b_iso88591_9_9WW__9QQWWXXY9QQWWXXY9_9__9CC __pyx_string_tab[252]
3700#define __pyx_kp_b_iso88591_xuBhfAXU_1_q_08_axuAQ0107vQ07vQ __pyx_string_tab[253]
3701#define __pyx_kp_b_iso88591_vQa_fAQ_O6_uAQ_E_aq_U_1_AU_U_1E __pyx_string_tab[254]
3702#define __pyx_kp_b_iso88591_vQa_fAQ_O6_uAQ_E_aq_U_1_q_L_S_b __pyx_string_tab[255]
3703#define __pyx_kp_b_iso88591_vQa_fAQ_O6_Qa_E_aq_U_1_q_d_SSTT __pyx_string_tab[256]
3704#define __pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_fAQ_1_q_a __pyx_string_tab[257]
3705#define __pyx_kp_b_iso88591_q_7vQa_9_q_9_q_a_a_a __pyx_string_tab[258]
3706#define __pyx_kp_b_iso88591_6_6_36_36_36_4IQ_11B_4IQ_4IQ_44 __pyx_string_tab[259]
3707#define __pyx_kp_b_iso88591_2_6_fAQ_4F_7_q_7t1_7vQ_7s_7wa_7 __pyx_string_tab[260]
3708#define __pyx_kp_b_iso88591_2_2C6_2C6_2C6_2C6_2_6_2_IQ299J __pyx_string_tab[261]
3709#define __pyx_kp_b_iso88591_q_Rq_aq_Qa_Q_OvUVVW_OvUVVW_GvQa __pyx_string_tab[262]
3710#define __pyx_kp_b_iso88591_q_fAQ_fAQ_fAQ_fAQ_6fAQ_2_C1_K1 __pyx_string_tab[263]
3711#define __pyx_kp_b_iso88591_1_1J_PQQR12_12_12_188QQR188Oq18 __pyx_string_tab[264]
3712#define __pyx_kp_b_iso88591_8q8PPVVWWX8PPVVWWX8PPVVWWX8A_q __pyx_string_tab[265]
3713#define __pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_fAQ_1_q_a_2 __pyx_string_tab[266]
3714#define __pyx_kp_b_iso88591_5AQfAQ56fAQ5_F_7_qPQ5_F_5_F_5_t __pyx_string_tab[267]
3715#define __pyx_kp_b_iso88591_q_fAQ_FfAQ_FfAQ_I_qPQ_J_ST_GGXX __pyx_string_tab[268]
3716#define __pyx_kp_b_iso88591_1BfAQ_F_1_V1A_V1A_fAQ_fAQ_F_1_D __pyx_string_tab[269]
3717#define __pyx_kp_b_iso88591_1E_q_q_q_fAQ_q_aq_nA_q_9A_fA_e1 __pyx_string_tab[270]
3718#define __pyx_kp_b_iso88591_V1A_0_aq_2_2_6_6_9_9_7q_EQ_2Q_1 __pyx_string_tab[271]
3719#define __pyx_kp_b_iso88591_q_V1A_V1A_V1A_4F_1_V1A_fAQ_V1A __pyx_string_tab[272]
3720#define __pyx_kp_b_iso88591_2_F_12K6QRRS2K6QRRS24F_124F_12A __pyx_string_tab[273]
3721#define __pyx_kp_b_iso88591_5A5I_qPQ5NfTUUV5NfTUUV57vQa57vQ __pyx_string_tab[274]
3722#define __pyx_kp_b_iso88591_as_RRXXYYZ_qPQ_F_1_TTZZ_TTZZ_F __pyx_string_tab[275]
3723#define __pyx_kp_b_iso88591_q_V1A_5V1A_q_A_q_A_q_q_q_q_1_q __pyx_string_tab[276]
3724#define __pyx_kp_b_iso88591_1A_9_q_V1A_EV1A_EV1A_V1A_V1A_V1 __pyx_string_tab[277]
3725#define __pyx_kp_b_iso88591_s_d_vQa_vQa_0_aq_6_6_vQa_11A_11 __pyx_string_tab[278]
3726#define __pyx_kp_b_iso88591_aq_aq_aq_aq_aq_aq_11K1_11C1_11D __pyx_string_tab[279]
3727#define __pyx_kp_b_iso88591_s_U_gWA_AU_2_36_fAQ_fAQ_2_4F_4F __pyx_string_tab[280]
3728#define __pyx_kp_b_iso88591_as_RRXXYYZ_1F_1_TTZZ_TTZZ_F_1_F __pyx_string_tab[281]
3729#define __pyx_kp_b_iso88591_6_6_6_6_6_1_q_1_q_44Na_44Fa_44G __pyx_string_tab[282]
3730#define __pyx_kp_b_iso88591_q_q_A_q_A_q_q_q_q_1_q_q_H_H_Fa __pyx_string_tab[283]
3731#define __pyx_kp_b_iso88591_1A_V1A_EV1A_EV1A_V1A_V1A_V1A_V1 __pyx_string_tab[284]
3732#define __pyx_kp_b_iso88591_A_d_d_d_d_d_d_d_d_d_d_d_d_d_d __pyx_string_tab[285]
3733#define __pyx_kp_b_iso88591_A_E_at4q_U_4t_D_ARq_Q __pyx_string_tab[286]
3734/* #### Code section: module_state_clear ### */
3735#if CYTHON_USE_MODULE_STATE
3736static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
3737 __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
3738 if (!clear_module_state) return 0;
3739 Py_CLEAR(clear_module_state->__pyx_d);
3740 Py_CLEAR(clear_module_state->__pyx_b);
3741 Py_CLEAR(clear_module_state->__pyx_cython_runtime);
3742 Py_CLEAR(clear_module_state->__pyx_empty_tuple);
3743 Py_CLEAR(clear_module_state->__pyx_empty_bytes);
3744 Py_CLEAR(clear_module_state->__pyx_empty_unicode);
3745 #if CYTHON_PEP489_MULTI_PHASE_INIT
3746 __Pyx_State_RemoveModule(NULL);
3747 #endif
3748 Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
3749 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
3750 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
3751 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
3752 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
3753 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
3754 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
3755 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
3756 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
3757 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
3758 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
3759 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
3760 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
3761 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
3762 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
3763 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
3764 Py_CLEAR(clear_module_state->__pyx_ptype_15cpostprocessing_NodeStarFactor);
3765 Py_CLEAR(clear_module_state->__pyx_type_15cpostprocessing_NodeStarFactor);
3766 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method);
3767 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method);
3768 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method);
3769 for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
3770 for (int i=0; i<59; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
3771 for (int i=0; i<287; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
3772/* #### Code section: module_state_clear_contents ### */
3773/* CommonTypesMetaclass.module_state_clear */
3774Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);
3775
3776/* CythonFunctionPerModule.module_state_clear */
3777Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
3778
3779/* #### Code section: module_state_clear_end ### */
3780return 0;
3781}
3782#endif
3783/* #### Code section: module_state_traverse ### */
3784#if CYTHON_USE_MODULE_STATE
3785static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3786 __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
3787 if (!traverse_module_state) return 0;
3788 Py_VISIT(traverse_module_state->__pyx_d);
3789 Py_VISIT(traverse_module_state->__pyx_b);
3790 Py_VISIT(traverse_module_state->__pyx_cython_runtime);
3791 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
3792 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
3793 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
3794 Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
3795 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
3796 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
3797 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
3798 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
3799 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
3800 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
3801 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
3802 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
3803 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
3804 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
3805 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
3806 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
3807 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
3808 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
3809 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
3810 Py_VISIT(traverse_module_state->__pyx_ptype_15cpostprocessing_NodeStarFactor);
3811 Py_VISIT(traverse_module_state->__pyx_type_15cpostprocessing_NodeStarFactor);
3812 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method);
3813 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method);
3814 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method);
3815 for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
3816 for (int i=0; i<59; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
3817 for (int i=0; i<287; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
3818/* #### Code section: module_state_traverse_contents ### */
3819/* CommonTypesMetaclass.module_state_traverse */
3820Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);
3821
3822/* CythonFunctionPerModule.module_state_traverse */
3823Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
3824
3825/* #### Code section: module_state_traverse_end ### */
3826return 0;
3827}
3828#endif
3829/* #### Code section: module_code ### */
3830
3831/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
3832 *
3833 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
3834 * @property # <<<<<<<<<<<<<<
3835 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3836 * return PyDataType_TYPEOBJ(self)
3837*/
3838
3839static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self) {
3840 PyTypeObject *__pyx_r;
3841
3842 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":232
3843 * @property
3844 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3845 * return PyDataType_TYPEOBJ(self) # <<<<<<<<<<<<<<
3846 *
3847 * @property
3848*/
3849 {
3850
3851 __pyx_r = PyDataType_TYPEOBJ(__pyx_v_self);
3852 }
3853 goto __pyx_L0;
3854
3855 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
3856 *
3857 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
3858 * @property # <<<<<<<<<<<<<<
3859 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3860 * return PyDataType_TYPEOBJ(self)
3861*/
3862
3863 /* function exit code */
3864 __pyx_L0:;
3865 return __pyx_r;
3866}
3867
3868/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
3869 * return PyDataType_TYPEOBJ(self)
3870 *
3871 * @property # <<<<<<<<<<<<<<
3872 * cdef inline char kind(self) noexcept nogil:
3873 * return PyDataType_KIND(self)
3874*/
3875
3876static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self) {
3877 char __pyx_r;
3878
3879 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":236
3880 * @property
3881 * cdef inline char kind(self) noexcept nogil:
3882 * return PyDataType_KIND(self) # <<<<<<<<<<<<<<
3883 *
3884 * @property
3885*/
3886 {
3887
3888 __pyx_r = PyDataType_KIND(__pyx_v_self);
3889 }
3890 goto __pyx_L0;
3891
3892 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
3893 * return PyDataType_TYPEOBJ(self)
3894 *
3895 * @property # <<<<<<<<<<<<<<
3896 * cdef inline char kind(self) noexcept nogil:
3897 * return PyDataType_KIND(self)
3898*/
3899
3900 /* function exit code */
3901 __pyx_L0:;
3902 return __pyx_r;
3903}
3904
3905/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
3906 * return PyDataType_KIND(self)
3907 *
3908 * @property # <<<<<<<<<<<<<<
3909 * cdef inline char type(self) noexcept nogil:
3910 * return PyDataType_TYPE(self)
3911*/
3912
3913static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self) {
3914 char __pyx_r;
3915
3916 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":240
3917 * @property
3918 * cdef inline char type(self) noexcept nogil:
3919 * return PyDataType_TYPE(self) # <<<<<<<<<<<<<<
3920 *
3921 * # Numpy sometimes mutates this without warning (e.g. it'll
3922*/
3923 {
3924
3925 __pyx_r = PyDataType_TYPE(__pyx_v_self);
3926 }
3927 goto __pyx_L0;
3928
3929 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
3930 * return PyDataType_KIND(self)
3931 *
3932 * @property # <<<<<<<<<<<<<<
3933 * cdef inline char type(self) noexcept nogil:
3934 * return PyDataType_TYPE(self)
3935*/
3936
3937 /* function exit code */
3938 __pyx_L0:;
3939 return __pyx_r;
3940}
3941
3942/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
3943 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
3944 * # directly accessing this field.
3945 * @property # <<<<<<<<<<<<<<
3946 * cdef inline char byteorder(self) noexcept nogil:
3947 * return PyDataType_BYTEORDER(self)
3948*/
3949
3950static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self) {
3951 char __pyx_r;
3952
3953 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":249
3954 * @property
3955 * cdef inline char byteorder(self) noexcept nogil:
3956 * return PyDataType_BYTEORDER(self) # <<<<<<<<<<<<<<
3957 *
3958 * @property
3959*/
3960 {
3961
3962 __pyx_r = PyDataType_BYTEORDER(__pyx_v_self);
3963 }
3964 goto __pyx_L0;
3965
3966 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
3967 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
3968 * # directly accessing this field.
3969 * @property # <<<<<<<<<<<<<<
3970 * cdef inline char byteorder(self) noexcept nogil:
3971 * return PyDataType_BYTEORDER(self)
3972*/
3973
3974 /* function exit code */
3975 __pyx_L0:;
3976 return __pyx_r;
3977}
3978
3979/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
3980 * return PyDataType_BYTEORDER(self)
3981 *
3982 * @property # <<<<<<<<<<<<<<
3983 * cdef inline int type_num(self) noexcept nogil:
3984 * return PyDataType_TYPENUM(self)
3985*/
3986
3987static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self) {
3988 int __pyx_r;
3989
3990 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":253
3991 * @property
3992 * cdef inline int type_num(self) noexcept nogil:
3993 * return PyDataType_TYPENUM(self) # <<<<<<<<<<<<<<
3994 *
3995 * @property
3996*/
3997 {
3998
3999 __pyx_r = PyDataType_TYPENUM(__pyx_v_self);
4000 }
4001 goto __pyx_L0;
4002
4003 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
4004 * return PyDataType_BYTEORDER(self)
4005 *
4006 * @property # <<<<<<<<<<<<<<
4007 * cdef inline int type_num(self) noexcept nogil:
4008 * return PyDataType_TYPENUM(self)
4009*/
4010
4011 /* function exit code */
4012 __pyx_L0:;
4013 return __pyx_r;
4014}
4015
4016/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
4017 * return PyDataType_TYPENUM(self)
4018 *
4019 * @property # <<<<<<<<<<<<<<
4020 * cdef inline npy_intp itemsize(self) noexcept nogil:
4021 * return PyDataType_ELSIZE(self)
4022*/
4023
4024static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self) {
4025 npy_intp __pyx_r;
4026
4027 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":257
4028 * @property
4029 * cdef inline npy_intp itemsize(self) noexcept nogil:
4030 * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<<
4031 *
4032 * @property
4033*/
4034 {
4035
4036 __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
4037 }
4038 goto __pyx_L0;
4039
4040 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
4041 * return PyDataType_TYPENUM(self)
4042 *
4043 * @property # <<<<<<<<<<<<<<
4044 * cdef inline npy_intp itemsize(self) noexcept nogil:
4045 * return PyDataType_ELSIZE(self)
4046*/
4047
4048 /* function exit code */
4049 __pyx_L0:;
4050 return __pyx_r;
4051}
4052
4053/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
4054 * return PyDataType_ELSIZE(self)
4055 *
4056 * @property # <<<<<<<<<<<<<<
4057 * cdef inline npy_intp alignment(self) noexcept nogil:
4058 * return PyDataType_ALIGNMENT(self)
4059*/
4060
4061static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self) {
4062 npy_intp __pyx_r;
4063
4064 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":261
4065 * @property
4066 * cdef inline npy_intp alignment(self) noexcept nogil:
4067 * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<<
4068 *
4069 * # Use fields/names with care as they may be NULL. You must check
4070*/
4071 {
4072
4073 __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
4074 }
4075 goto __pyx_L0;
4076
4077 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
4078 * return PyDataType_ELSIZE(self)
4079 *
4080 * @property # <<<<<<<<<<<<<<
4081 * cdef inline npy_intp alignment(self) noexcept nogil:
4082 * return PyDataType_ALIGNMENT(self)
4083*/
4084
4085 /* function exit code */
4086 __pyx_L0:;
4087 return __pyx_r;
4088}
4089
4090/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
4091 * # Use fields/names with care as they may be NULL. You must check
4092 * # for this using PyDataType_HASFIELDS.
4093 * @property # <<<<<<<<<<<<<<
4094 * cdef inline object fields(self):
4095 * return <object>PyDataType_FIELDS(self)
4096*/
4097
4098static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self) {
4099 PyObject *__pyx_r = NULL;
4100 __Pyx_RefNannyDeclarations
4101 PyObject *__pyx_t_1;
4102 __Pyx_RefNannySetupContext("__get__", 0);
4103
4104 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":267
4105 * @property
4106 * cdef inline object fields(self):
4107 * return <object>PyDataType_FIELDS(self) # <<<<<<<<<<<<<<
4108 *
4109 * @property
4110*/
4111 __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
4112
4113 {
4114 PyObject *__pyx_temp;
4115 {
4116 __pyx_temp = __pyx_r;
4117 __Pyx_INCREF(((PyObject *)__pyx_t_1));
4118 __pyx_r = ((PyObject *)__pyx_t_1);
4119 }
4120 __Pyx_XDECREF(__pyx_temp);
4121 }
4122
4123 goto __pyx_L0;
4124
4125 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
4126 * # Use fields/names with care as they may be NULL. You must check
4127 * # for this using PyDataType_HASFIELDS.
4128 * @property # <<<<<<<<<<<<<<
4129 * cdef inline object fields(self):
4130 * return <object>PyDataType_FIELDS(self)
4131*/
4132
4133 /* function exit code */
4134 __pyx_L0:;
4135 __Pyx_XGIVEREF(__pyx_r);
4136 __Pyx_RefNannyFinishContext();
4137 return __pyx_r;
4138}
4139
4140/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
4141 * return <object>PyDataType_FIELDS(self)
4142 *
4143 * @property # <<<<<<<<<<<<<<
4144 * cdef inline tuple names(self):
4145 * return <tuple>PyDataType_NAMES(self)
4146*/
4147
4148static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self) {
4149 PyObject *__pyx_r = NULL;
4150 __Pyx_RefNannyDeclarations
4151 PyObject *__pyx_t_1;
4152 __Pyx_RefNannySetupContext("__get__", 0);
4153
4154 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":271
4155 * @property
4156 * cdef inline tuple names(self):
4157 * return <tuple>PyDataType_NAMES(self) # <<<<<<<<<<<<<<
4158 *
4159 * # Use PyDataType_HASSUBARRAY to test whether this field is
4160*/
4161 __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
4162
4163 {
4164 PyObject *__pyx_temp;
4165 {
4166 __pyx_temp = __pyx_r;
4167 __Pyx_INCREF(((PyObject*)__pyx_t_1));
4168 __pyx_r = ((PyObject*)__pyx_t_1);
4169 }
4170 __Pyx_XDECREF(__pyx_temp);
4171 }
4172
4173 goto __pyx_L0;
4174
4175 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
4176 * return <object>PyDataType_FIELDS(self)
4177 *
4178 * @property # <<<<<<<<<<<<<<
4179 * cdef inline tuple names(self):
4180 * return <tuple>PyDataType_NAMES(self)
4181*/
4182
4183 /* function exit code */
4184 __pyx_L0:;
4185 __Pyx_XGIVEREF(__pyx_r);
4186 __Pyx_RefNannyFinishContext();
4187 return __pyx_r;
4188}
4189
4190/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
4191 * # valid (the pointer can be NULL). Most users should access
4192 * # this field via the inline helper method PyDataType_SHAPE.
4193 * @property # <<<<<<<<<<<<<<
4194 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4195 * return PyDataType_SUBARRAY(self)
4196*/
4197
4198static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self) {
4199 PyArray_ArrayDescr *__pyx_r;
4200
4201 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":278
4202 * @property
4203 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4204 * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<<
4205 *
4206 * @property
4207*/
4208 {
4209
4210 __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
4211 }
4212 goto __pyx_L0;
4213
4214 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
4215 * # valid (the pointer can be NULL). Most users should access
4216 * # this field via the inline helper method PyDataType_SHAPE.
4217 * @property # <<<<<<<<<<<<<<
4218 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4219 * return PyDataType_SUBARRAY(self)
4220*/
4221
4222 /* function exit code */
4223 __pyx_L0:;
4224 return __pyx_r;
4225}
4226
4227/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
4228 * return PyDataType_SUBARRAY(self)
4229 *
4230 * @property # <<<<<<<<<<<<<<
4231 * cdef inline npy_uint64 flags(self) noexcept nogil:
4232 * """The data types flags."""
4233*/
4234
4235static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self) {
4236 npy_uint64 __pyx_r;
4237
4238 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":283
4239 * cdef inline npy_uint64 flags(self) noexcept nogil:
4240 * """The data types flags."""
4241 * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<<
4242 *
4243 *
4244*/
4245 {
4246
4247 __pyx_r = PyDataType_FLAGS(__pyx_v_self);
4248 }
4249 goto __pyx_L0;
4250
4251 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
4252 * return PyDataType_SUBARRAY(self)
4253 *
4254 * @property # <<<<<<<<<<<<<<
4255 * cdef inline npy_uint64 flags(self) noexcept nogil:
4256 * """The data types flags."""
4257*/
4258
4259 /* function exit code */
4260 __pyx_L0:;
4261 return __pyx_r;
4262}
4263
4264/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
4265 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
4266 *
4267 * @property # <<<<<<<<<<<<<<
4268 * cdef inline int numiter(self) noexcept nogil:
4269 * """The number of arrays that need to be broadcast to the same shape."""
4270*/
4271
4272static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self) {
4273 int __pyx_r;
4274
4275 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":295
4276 * cdef inline int numiter(self) noexcept nogil:
4277 * """The number of arrays that need to be broadcast to the same shape."""
4278 * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<<
4279 *
4280 * @property
4281*/
4282 {
4283
4284 __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
4285 }
4286 goto __pyx_L0;
4287
4288 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
4289 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
4290 *
4291 * @property # <<<<<<<<<<<<<<
4292 * cdef inline int numiter(self) noexcept nogil:
4293 * """The number of arrays that need to be broadcast to the same shape."""
4294*/
4295
4296 /* function exit code */
4297 __pyx_L0:;
4298 return __pyx_r;
4299}
4300
4301/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
4302 * return PyArray_MultiIter_NUMITER(self)
4303 *
4304 * @property # <<<<<<<<<<<<<<
4305 * cdef inline npy_intp size(self) noexcept nogil:
4306 * """The total broadcasted size."""
4307*/
4308
4309static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self) {
4310 npy_intp __pyx_r;
4311
4312 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":300
4313 * cdef inline npy_intp size(self) noexcept nogil:
4314 * """The total broadcasted size."""
4315 * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<<
4316 *
4317 * @property
4318*/
4319 {
4320
4321 __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
4322 }
4323 goto __pyx_L0;
4324
4325 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
4326 * return PyArray_MultiIter_NUMITER(self)
4327 *
4328 * @property # <<<<<<<<<<<<<<
4329 * cdef inline npy_intp size(self) noexcept nogil:
4330 * """The total broadcasted size."""
4331*/
4332
4333 /* function exit code */
4334 __pyx_L0:;
4335 return __pyx_r;
4336}
4337
4338/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
4339 * return PyArray_MultiIter_SIZE(self)
4340 *
4341 * @property # <<<<<<<<<<<<<<
4342 * cdef inline npy_intp index(self) noexcept nogil:
4343 * """The current (1-d) index into the broadcasted result."""
4344*/
4345
4346static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self) {
4347 npy_intp __pyx_r;
4348
4349 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":305
4350 * cdef inline npy_intp index(self) noexcept nogil:
4351 * """The current (1-d) index into the broadcasted result."""
4352 * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<<
4353 *
4354 * @property
4355*/
4356 {
4357
4358 __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
4359 }
4360 goto __pyx_L0;
4361
4362 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
4363 * return PyArray_MultiIter_SIZE(self)
4364 *
4365 * @property # <<<<<<<<<<<<<<
4366 * cdef inline npy_intp index(self) noexcept nogil:
4367 * """The current (1-d) index into the broadcasted result."""
4368*/
4369
4370 /* function exit code */
4371 __pyx_L0:;
4372 return __pyx_r;
4373}
4374
4375/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
4376 * return PyArray_MultiIter_INDEX(self)
4377 *
4378 * @property # <<<<<<<<<<<<<<
4379 * cdef inline int nd(self) noexcept nogil:
4380 * """The number of dimensions in the broadcasted result."""
4381*/
4382
4383static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self) {
4384 int __pyx_r;
4385
4386 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":310
4387 * cdef inline int nd(self) noexcept nogil:
4388 * """The number of dimensions in the broadcasted result."""
4389 * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<<
4390 *
4391 * @property
4392*/
4393 {
4394
4395 __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
4396 }
4397 goto __pyx_L0;
4398
4399 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
4400 * return PyArray_MultiIter_INDEX(self)
4401 *
4402 * @property # <<<<<<<<<<<<<<
4403 * cdef inline int nd(self) noexcept nogil:
4404 * """The number of dimensions in the broadcasted result."""
4405*/
4406
4407 /* function exit code */
4408 __pyx_L0:;
4409 return __pyx_r;
4410}
4411
4412/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
4413 * return PyArray_MultiIter_NDIM(self)
4414 *
4415 * @property # <<<<<<<<<<<<<<
4416 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4417 * """The shape of the broadcasted result."""
4418*/
4419
4420static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self) {
4421 npy_intp *__pyx_r;
4422
4423 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":315
4424 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4425 * """The shape of the broadcasted result."""
4426 * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<<
4427 *
4428 * @property
4429*/
4430 {
4431
4432 __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
4433 }
4434 goto __pyx_L0;
4435
4436 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
4437 * return PyArray_MultiIter_NDIM(self)
4438 *
4439 * @property # <<<<<<<<<<<<<<
4440 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4441 * """The shape of the broadcasted result."""
4442*/
4443
4444 /* function exit code */
4445 __pyx_L0:;
4446 return __pyx_r;
4447}
4448
4449/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
4450 * return PyArray_MultiIter_DIMS(self)
4451 *
4452 * @property # <<<<<<<<<<<<<<
4453 * cdef inline void** iters(self) noexcept nogil:
4454 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4455*/
4456
4457static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self) {
4458 void **__pyx_r;
4459
4460 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":321
4461 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4462 * On return, the iterators are adjusted for broadcasting."""
4463 * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<<
4464 *
4465 *
4466*/
4467 {
4468
4469 __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
4470 }
4471 goto __pyx_L0;
4472
4473 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
4474 * return PyArray_MultiIter_DIMS(self)
4475 *
4476 * @property # <<<<<<<<<<<<<<
4477 * cdef inline void** iters(self) noexcept nogil:
4478 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4479*/
4480
4481 /* function exit code */
4482 __pyx_L0:;
4483 return __pyx_r;
4484}
4485
4486/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
4487 * # Instead, we use properties that map to the corresponding C-API functions.
4488 *
4489 * @property # <<<<<<<<<<<<<<
4490 * cdef inline PyObject* base(self) noexcept nogil:
4491 * """Returns a borrowed reference to the object owning the data/memory.
4492*/
4493
4494static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self) {
4495 PyObject *__pyx_r;
4496
4497 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":339
4498 * """Returns a borrowed reference to the object owning the data/memory.
4499 * """
4500 * return PyArray_BASE(self) # <<<<<<<<<<<<<<
4501 *
4502 * @property
4503*/
4504 {
4505
4506 __pyx_r = PyArray_BASE(__pyx_v_self);
4507 }
4508 goto __pyx_L0;
4509
4510 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
4511 * # Instead, we use properties that map to the corresponding C-API functions.
4512 *
4513 * @property # <<<<<<<<<<<<<<
4514 * cdef inline PyObject* base(self) noexcept nogil:
4515 * """Returns a borrowed reference to the object owning the data/memory.
4516*/
4517
4518 /* function exit code */
4519 __pyx_L0:;
4520 return __pyx_r;
4521}
4522
4523/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
4524 * return PyArray_BASE(self)
4525 *
4526 * @property # <<<<<<<<<<<<<<
4527 * cdef inline dtype descr(self):
4528 * """Returns an owned reference to the dtype of the array.
4529*/
4530
4531static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self) {
4532 PyArray_Descr *__pyx_r = NULL;
4533 __Pyx_RefNannyDeclarations
4534 PyArray_Descr *__pyx_t_1;
4535 __Pyx_RefNannySetupContext("__get__", 0);
4536
4537 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":345
4538 * """Returns an owned reference to the dtype of the array.
4539 * """
4540 * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
4541 *
4542 * @property
4543*/
4544 __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
4545
4546 {
4547 PyArray_Descr *__pyx_temp;
4548 {
4549 __pyx_temp = __pyx_r;
4550 __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
4551 __pyx_r = ((PyArray_Descr *)__pyx_t_1);
4552 }
4553 __Pyx_XDECREF((PyObject *)__pyx_temp);
4554 }
4555
4556 goto __pyx_L0;
4557
4558 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
4559 * return PyArray_BASE(self)
4560 *
4561 * @property # <<<<<<<<<<<<<<
4562 * cdef inline dtype descr(self):
4563 * """Returns an owned reference to the dtype of the array.
4564*/
4565
4566 /* function exit code */
4567 __pyx_L0:;
4568 __Pyx_XGIVEREF((PyObject *)__pyx_r);
4569 __Pyx_RefNannyFinishContext();
4570 return __pyx_r;
4571}
4572
4573/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
4574 * return <dtype>PyArray_DESCR(self)
4575 *
4576 * @property # <<<<<<<<<<<<<<
4577 * cdef inline int ndim(self) noexcept nogil:
4578 * """Returns the number of dimensions in the array.
4579*/
4580
4581static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self) {
4582 int __pyx_r;
4583
4584 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":351
4585 * """Returns the number of dimensions in the array.
4586 * """
4587 * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
4588 *
4589 * @property
4590*/
4591 {
4592
4593 __pyx_r = PyArray_NDIM(__pyx_v_self);
4594 }
4595 goto __pyx_L0;
4596
4597 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
4598 * return <dtype>PyArray_DESCR(self)
4599 *
4600 * @property # <<<<<<<<<<<<<<
4601 * cdef inline int ndim(self) noexcept nogil:
4602 * """Returns the number of dimensions in the array.
4603*/
4604
4605 /* function exit code */
4606 __pyx_L0:;
4607 return __pyx_r;
4608}
4609
4610/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
4611 * return PyArray_NDIM(self)
4612 *
4613 * @property # <<<<<<<<<<<<<<
4614 * cdef inline npy_intp *shape(self) noexcept nogil:
4615 * """Returns a pointer to the dimensions/shape of the array.
4616*/
4617
4618static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self) {
4619 npy_intp *__pyx_r;
4620
4621 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":359
4622 * Can return NULL for 0-dimensional arrays.
4623 * """
4624 * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
4625 *
4626 * @property
4627*/
4628 {
4629
4630 __pyx_r = PyArray_DIMS(__pyx_v_self);
4631 }
4632 goto __pyx_L0;
4633
4634 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
4635 * return PyArray_NDIM(self)
4636 *
4637 * @property # <<<<<<<<<<<<<<
4638 * cdef inline npy_intp *shape(self) noexcept nogil:
4639 * """Returns a pointer to the dimensions/shape of the array.
4640*/
4641
4642 /* function exit code */
4643 __pyx_L0:;
4644 return __pyx_r;
4645}
4646
4647/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
4648 * return PyArray_DIMS(self)
4649 *
4650 * @property # <<<<<<<<<<<<<<
4651 * cdef inline npy_intp *strides(self) noexcept nogil:
4652 * """Returns a pointer to the strides of the array.
4653*/
4654
4655static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self) {
4656 npy_intp *__pyx_r;
4657
4658 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":366
4659 * The number of elements matches the number of dimensions of the array (ndim).
4660 * """
4661 * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
4662 *
4663 * @property
4664*/
4665 {
4666
4667 __pyx_r = PyArray_STRIDES(__pyx_v_self);
4668 }
4669 goto __pyx_L0;
4670
4671 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
4672 * return PyArray_DIMS(self)
4673 *
4674 * @property # <<<<<<<<<<<<<<
4675 * cdef inline npy_intp *strides(self) noexcept nogil:
4676 * """Returns a pointer to the strides of the array.
4677*/
4678
4679 /* function exit code */
4680 __pyx_L0:;
4681 return __pyx_r;
4682}
4683
4684/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
4685 * return PyArray_STRIDES(self)
4686 *
4687 * @property # <<<<<<<<<<<<<<
4688 * cdef inline npy_intp size(self) noexcept nogil:
4689 * """Returns the total size (in number of elements) of the array.
4690*/
4691
4692static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self) {
4693 npy_intp __pyx_r;
4694
4695 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":372
4696 * """Returns the total size (in number of elements) of the array.
4697 * """
4698 * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
4699 *
4700 * @property
4701*/
4702 {
4703
4704 __pyx_r = PyArray_SIZE(__pyx_v_self);
4705 }
4706 goto __pyx_L0;
4707
4708 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
4709 * return PyArray_STRIDES(self)
4710 *
4711 * @property # <<<<<<<<<<<<<<
4712 * cdef inline npy_intp size(self) noexcept nogil:
4713 * """Returns the total size (in number of elements) of the array.
4714*/
4715
4716 /* function exit code */
4717 __pyx_L0:;
4718 return __pyx_r;
4719}
4720
4721/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
4722 * return PyArray_SIZE(self)
4723 *
4724 * @property # <<<<<<<<<<<<<<
4725 * cdef inline char* data(self) noexcept nogil:
4726 * """The pointer to the data buffer as a char*.
4727*/
4728
4729static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self) {
4730 char *__pyx_r;
4731
4732 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":381
4733 * of `PyArray_DATA()` instead, which returns a 'void*'.
4734 * """
4735 * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
4736 *
4737 *
4738*/
4739 {
4740
4741 __pyx_r = PyArray_BYTES(__pyx_v_self);
4742 }
4743 goto __pyx_L0;
4744
4745 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
4746 * return PyArray_SIZE(self)
4747 *
4748 * @property # <<<<<<<<<<<<<<
4749 * cdef inline char* data(self) noexcept nogil:
4750 * """The pointer to the data buffer as a char*.
4751*/
4752
4753 /* function exit code */
4754 __pyx_L0:;
4755 return __pyx_r;
4756}
4757
4758/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
4759 * ctypedef long double complex clongdouble_t
4760 *
4761 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
4762 * return PyArray_MultiIterNew(1, <void*>a)
4763 *
4764*/
4765
4766static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
4767 PyObject *__pyx_r = NULL;
4768 __Pyx_RefNannyDeclarations
4769 PyObject *__pyx_t_1 = NULL;
4770 int __pyx_lineno = 0;
4771 const char *__pyx_filename = NULL;
4772 int __pyx_clineno = 0;
4773 __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
4774
4775 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":795
4776 *
4777 * cdef inline object PyArray_MultiIterNew1(a):
4778 * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
4779 *
4780 * cdef inline object PyArray_MultiIterNew2(a, b):
4781*/
4782 __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 795, __pyx_L1_error)
4783 __Pyx_GOTREF(__pyx_t_1);
4784 {
4785 PyObject *__pyx_temp;
4786 {
4787 __pyx_temp = __pyx_r;
4788 __pyx_r = __pyx_t_1;
4789 }
4790 __Pyx_XDECREF(__pyx_temp);
4791 }
4792 __pyx_t_1 = 0;
4793 goto __pyx_L0;
4794
4795 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
4796 * ctypedef long double complex clongdouble_t
4797 *
4798 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
4799 * return PyArray_MultiIterNew(1, <void*>a)
4800 *
4801*/
4802
4803 /* function exit code */
4804 __pyx_L1_error:;
4805 __Pyx_XDECREF(__pyx_t_1);
4806 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
4807 __pyx_r = 0;
4808 __pyx_L0:;
4809 __Pyx_XGIVEREF(__pyx_r);
4810 __Pyx_RefNannyFinishContext();
4811 return __pyx_r;
4812}
4813
4814/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
4815 * return PyArray_MultiIterNew(1, <void*>a)
4816 *
4817 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
4818 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4819 *
4820*/
4821
4822static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
4823 PyObject *__pyx_r = NULL;
4824 __Pyx_RefNannyDeclarations
4825 PyObject *__pyx_t_1 = NULL;
4826 int __pyx_lineno = 0;
4827 const char *__pyx_filename = NULL;
4828 int __pyx_clineno = 0;
4829 __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
4830
4831 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":798
4832 *
4833 * cdef inline object PyArray_MultiIterNew2(a, b):
4834 * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
4835 *
4836 * cdef inline object PyArray_MultiIterNew3(a, b, c):
4837*/
4838 __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 798, __pyx_L1_error)
4839 __Pyx_GOTREF(__pyx_t_1);
4840 {
4841 PyObject *__pyx_temp;
4842 {
4843 __pyx_temp = __pyx_r;
4844 __pyx_r = __pyx_t_1;
4845 }
4846 __Pyx_XDECREF(__pyx_temp);
4847 }
4848 __pyx_t_1 = 0;
4849 goto __pyx_L0;
4850
4851 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
4852 * return PyArray_MultiIterNew(1, <void*>a)
4853 *
4854 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
4855 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4856 *
4857*/
4858
4859 /* function exit code */
4860 __pyx_L1_error:;
4861 __Pyx_XDECREF(__pyx_t_1);
4862 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
4863 __pyx_r = 0;
4864 __pyx_L0:;
4865 __Pyx_XGIVEREF(__pyx_r);
4866 __Pyx_RefNannyFinishContext();
4867 return __pyx_r;
4868}
4869
4870/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
4871 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4872 *
4873 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
4874 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4875 *
4876*/
4877
4878static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
4879 PyObject *__pyx_r = NULL;
4880 __Pyx_RefNannyDeclarations
4881 PyObject *__pyx_t_1 = NULL;
4882 int __pyx_lineno = 0;
4883 const char *__pyx_filename = NULL;
4884 int __pyx_clineno = 0;
4885 __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
4886
4887 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":801
4888 *
4889 * cdef inline object PyArray_MultiIterNew3(a, b, c):
4890 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
4891 *
4892 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
4893*/
4894 __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 801, __pyx_L1_error)
4895 __Pyx_GOTREF(__pyx_t_1);
4896 {
4897 PyObject *__pyx_temp;
4898 {
4899 __pyx_temp = __pyx_r;
4900 __pyx_r = __pyx_t_1;
4901 }
4902 __Pyx_XDECREF(__pyx_temp);
4903 }
4904 __pyx_t_1 = 0;
4905 goto __pyx_L0;
4906
4907 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
4908 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4909 *
4910 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
4911 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4912 *
4913*/
4914
4915 /* function exit code */
4916 __pyx_L1_error:;
4917 __Pyx_XDECREF(__pyx_t_1);
4918 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
4919 __pyx_r = 0;
4920 __pyx_L0:;
4921 __Pyx_XGIVEREF(__pyx_r);
4922 __Pyx_RefNannyFinishContext();
4923 return __pyx_r;
4924}
4925
4926/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
4927 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4928 *
4929 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
4930 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4931 *
4932*/
4933
4934static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
4935 PyObject *__pyx_r = NULL;
4936 __Pyx_RefNannyDeclarations
4937 PyObject *__pyx_t_1 = NULL;
4938 int __pyx_lineno = 0;
4939 const char *__pyx_filename = NULL;
4940 int __pyx_clineno = 0;
4941 __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
4942
4943 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":804
4944 *
4945 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
4946 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
4947 *
4948 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
4949*/
4950 __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 804, __pyx_L1_error)
4951 __Pyx_GOTREF(__pyx_t_1);
4952 {
4953 PyObject *__pyx_temp;
4954 {
4955 __pyx_temp = __pyx_r;
4956 __pyx_r = __pyx_t_1;
4957 }
4958 __Pyx_XDECREF(__pyx_temp);
4959 }
4960 __pyx_t_1 = 0;
4961 goto __pyx_L0;
4962
4963 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
4964 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4965 *
4966 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
4967 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4968 *
4969*/
4970
4971 /* function exit code */
4972 __pyx_L1_error:;
4973 __Pyx_XDECREF(__pyx_t_1);
4974 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
4975 __pyx_r = 0;
4976 __pyx_L0:;
4977 __Pyx_XGIVEREF(__pyx_r);
4978 __Pyx_RefNannyFinishContext();
4979 return __pyx_r;
4980}
4981
4982/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
4983 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4984 *
4985 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
4986 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
4987 *
4988*/
4989
4990static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
4991 PyObject *__pyx_r = NULL;
4992 __Pyx_RefNannyDeclarations
4993 PyObject *__pyx_t_1 = NULL;
4994 int __pyx_lineno = 0;
4995 const char *__pyx_filename = NULL;
4996 int __pyx_clineno = 0;
4997 __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
4998
4999 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":807
5000 *
5001 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
5002 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
5003 *
5004 * cdef inline tuple PyDataType_SHAPE(dtype d):
5005*/
5006 __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 807, __pyx_L1_error)
5007 __Pyx_GOTREF(__pyx_t_1);
5008 {
5009 PyObject *__pyx_temp;
5010 {
5011 __pyx_temp = __pyx_r;
5012 __pyx_r = __pyx_t_1;
5013 }
5014 __Pyx_XDECREF(__pyx_temp);
5015 }
5016 __pyx_t_1 = 0;
5017 goto __pyx_L0;
5018
5019 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
5020 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
5021 *
5022 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
5023 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5024 *
5025*/
5026
5027 /* function exit code */
5028 __pyx_L1_error:;
5029 __Pyx_XDECREF(__pyx_t_1);
5030 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
5031 __pyx_r = 0;
5032 __pyx_L0:;
5033 __Pyx_XGIVEREF(__pyx_r);
5034 __Pyx_RefNannyFinishContext();
5035 return __pyx_r;
5036}
5037
5038/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
5039 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5040 *
5041 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
5042 * if PyDataType_HASSUBARRAY(d):
5043 * return <tuple>d.subarray.shape
5044*/
5045
5046static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
5047 PyObject *__pyx_r = NULL;
5048 __Pyx_RefNannyDeclarations
5049 int __pyx_t_1;
5050 PyObject *__pyx_t_2;
5051 __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
5052
5053 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
5054 *
5055 * cdef inline tuple PyDataType_SHAPE(dtype d):
5056 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
5057 * return <tuple>d.subarray.shape
5058 * else:
5059*/
5060 __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
5061
5062 if (__pyx_t_1) {
5063
5064
5065 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":811
5066 * cdef inline tuple PyDataType_SHAPE(dtype d):
5067 * if PyDataType_HASSUBARRAY(d):
5068 * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
5069 * else:
5070 * return ()
5071*/
5072 __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray___get__(__pyx_v_d)->shape;
5073
5074 {
5075 PyObject *__pyx_temp;
5076 {
5077 __pyx_temp = __pyx_r;
5078 __Pyx_INCREF(((PyObject*)__pyx_t_2));
5079 __pyx_r = ((PyObject*)__pyx_t_2);
5080 }
5081 __Pyx_XDECREF(__pyx_temp);
5082 }
5083
5084 goto __pyx_L0;
5085
5086 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
5087 *
5088 * cdef inline tuple PyDataType_SHAPE(dtype d):
5089 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
5090 * return <tuple>d.subarray.shape
5091 * else:
5092*/
5093 }
5094
5095 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":813
5096 * return <tuple>d.subarray.shape
5097 * else:
5098 * return () # <<<<<<<<<<<<<<
5099 *
5100 *
5101*/
5102 /*else*/ {
5103 {
5104 PyObject *__pyx_temp;
5105 {
5106 __pyx_temp = __pyx_r;
5107 __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
5108 __pyx_r = __pyx_mstate_global->__pyx_empty_tuple;
5109 }
5110 __Pyx_XDECREF(__pyx_temp);
5111 }
5112 goto __pyx_L0;
5113 }
5114
5115 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
5116 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5117 *
5118 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
5119 * if PyDataType_HASSUBARRAY(d):
5120 * return <tuple>d.subarray.shape
5121*/
5122
5123 /* function exit code */
5124 __pyx_L0:;
5125 __Pyx_XGIVEREF(__pyx_r);
5126 __Pyx_RefNannyFinishContext();
5127 return __pyx_r;
5128}
5129
5130/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
5131 *
5132 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
5133 * @property # <<<<<<<<<<<<<<
5134 * cdef inline int nin(self) noexcept nogil:
5135 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5136*/
5137
5138static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self) {
5139 int __pyx_r;
5140
5141 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":949
5142 * @property
5143 * cdef inline int nin(self) noexcept nogil:
5144 * return _PyUFuncObject_GET_ITEM_DATA(self).nin # <<<<<<<<<<<<<<
5145 *
5146 * @property
5147*/
5148 {
5149
5150 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nin;
5151 }
5152 goto __pyx_L0;
5153
5154 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
5155 *
5156 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
5157 * @property # <<<<<<<<<<<<<<
5158 * cdef inline int nin(self) noexcept nogil:
5159 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5160*/
5161
5162 /* function exit code */
5163 __pyx_L0:;
5164 return __pyx_r;
5165}
5166
5167/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
5168 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5169 *
5170 * @property # <<<<<<<<<<<<<<
5171 * cdef inline int nout(self) noexcept nogil:
5172 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5173*/
5174
5175static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self) {
5176 int __pyx_r;
5177
5178 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":953
5179 * @property
5180 * cdef inline int nout(self) noexcept nogil:
5181 * return _PyUFuncObject_GET_ITEM_DATA(self).nout # <<<<<<<<<<<<<<
5182 *
5183 * @property
5184*/
5185 {
5186
5187 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nout;
5188 }
5189 goto __pyx_L0;
5190
5191 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
5192 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5193 *
5194 * @property # <<<<<<<<<<<<<<
5195 * cdef inline int nout(self) noexcept nogil:
5196 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5197*/
5198
5199 /* function exit code */
5200 __pyx_L0:;
5201 return __pyx_r;
5202}
5203
5204/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
5205 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5206 *
5207 * @property # <<<<<<<<<<<<<<
5208 * cdef inline int nargs(self) noexcept nogil:
5209 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5210*/
5211
5212static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self) {
5213 int __pyx_r;
5214
5215 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":957
5216 * @property
5217 * cdef inline int nargs(self) noexcept nogil:
5218 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs # <<<<<<<<<<<<<<
5219 *
5220 * @property
5221*/
5222 {
5223
5224 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nargs;
5225 }
5226 goto __pyx_L0;
5227
5228 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
5229 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5230 *
5231 * @property # <<<<<<<<<<<<<<
5232 * cdef inline int nargs(self) noexcept nogil:
5233 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5234*/
5235
5236 /* function exit code */
5237 __pyx_L0:;
5238 return __pyx_r;
5239}
5240
5241/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
5242 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5243 *
5244 * @property # <<<<<<<<<<<<<<
5245 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5246 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5247*/
5248
5249static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self) {
5250 PyUFuncGenericFunction *__pyx_r;
5251
5252 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":961
5253 * @property
5254 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5255 * return _PyUFuncObject_GET_ITEM_DATA(self).functions # <<<<<<<<<<<<<<
5256 *
5257 * @property
5258*/
5259 {
5260
5261 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->functions;
5262 }
5263 goto __pyx_L0;
5264
5265 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
5266 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5267 *
5268 * @property # <<<<<<<<<<<<<<
5269 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5270 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5271*/
5272
5273 /* function exit code */
5274 __pyx_L0:;
5275 return __pyx_r;
5276}
5277
5278/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
5279 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5280 *
5281 * @property # <<<<<<<<<<<<<<
5282 * cdef inline void ** data(self) noexcept nogil:
5283 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5284*/
5285
5286static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self) {
5287 void **__pyx_r;
5288
5289 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":965
5290 * @property
5291 * cdef inline void ** data(self) noexcept nogil:
5292 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data # <<<<<<<<<<<<<<
5293 *
5294 * @property
5295*/
5296 {
5297
5298 __pyx_r = ((void **)_PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->data);
5299 }
5300 goto __pyx_L0;
5301
5302 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
5303 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5304 *
5305 * @property # <<<<<<<<<<<<<<
5306 * cdef inline void ** data(self) noexcept nogil:
5307 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5308*/
5309
5310 /* function exit code */
5311 __pyx_L0:;
5312 return __pyx_r;
5313}
5314
5315/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
5316 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5317 *
5318 * @property # <<<<<<<<<<<<<<
5319 * cdef inline int ntypes(self) noexcept nogil:
5320 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5321*/
5322
5323static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self) {
5324 int __pyx_r;
5325
5326 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":969
5327 * @property
5328 * cdef inline int ntypes(self) noexcept nogil:
5329 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes # <<<<<<<<<<<<<<
5330 *
5331 * @property
5332*/
5333 {
5334
5335 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ntypes;
5336 }
5337 goto __pyx_L0;
5338
5339 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
5340 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5341 *
5342 * @property # <<<<<<<<<<<<<<
5343 * cdef inline int ntypes(self) noexcept nogil:
5344 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5345*/
5346
5347 /* function exit code */
5348 __pyx_L0:;
5349 return __pyx_r;
5350}
5351
5352/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
5353 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5354 *
5355 * @property # <<<<<<<<<<<<<<
5356 * cdef inline const char* name(self) noexcept nogil:
5357 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5358*/
5359
5360static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self) {
5361 char const *__pyx_r;
5362
5363 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":973
5364 * @property
5365 * cdef inline const char* name(self) noexcept nogil:
5366 * return _PyUFuncObject_GET_ITEM_DATA(self).name # <<<<<<<<<<<<<<
5367 *
5368 * @property
5369*/
5370 {
5371
5372 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->name;
5373 }
5374 goto __pyx_L0;
5375
5376 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
5377 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5378 *
5379 * @property # <<<<<<<<<<<<<<
5380 * cdef inline const char* name(self) noexcept nogil:
5381 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5382*/
5383
5384 /* function exit code */
5385 __pyx_L0:;
5386 return __pyx_r;
5387}
5388
5389/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
5390 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5391 *
5392 * @property # <<<<<<<<<<<<<<
5393 * cdef inline const char* doc(self) noexcept nogil:
5394 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5395*/
5396
5397static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self) {
5398 char const *__pyx_r;
5399
5400 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":977
5401 * @property
5402 * cdef inline const char* doc(self) noexcept nogil:
5403 * return _PyUFuncObject_GET_ITEM_DATA(self).doc # <<<<<<<<<<<<<<
5404 *
5405 * @property
5406*/
5407 {
5408
5409 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->doc;
5410 }
5411 goto __pyx_L0;
5412
5413 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
5414 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5415 *
5416 * @property # <<<<<<<<<<<<<<
5417 * cdef inline const char* doc(self) noexcept nogil:
5418 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5419*/
5420
5421 /* function exit code */
5422 __pyx_L0:;
5423 return __pyx_r;
5424}
5425
5426/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
5427 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5428 *
5429 * @property # <<<<<<<<<<<<<<
5430 * cdef inline void* ptr(self) noexcept nogil:
5431 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5432*/
5433
5434static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self) {
5435 void *__pyx_r;
5436
5437 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":981
5438 * @property
5439 * cdef inline void* ptr(self) noexcept nogil:
5440 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr # <<<<<<<<<<<<<<
5441 *
5442 * @property
5443*/
5444 {
5445
5446 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ptr;
5447 }
5448 goto __pyx_L0;
5449
5450 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
5451 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5452 *
5453 * @property # <<<<<<<<<<<<<<
5454 * cdef inline void* ptr(self) noexcept nogil:
5455 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5456*/
5457
5458 /* function exit code */
5459 __pyx_L0:;
5460 return __pyx_r;
5461}
5462
5463/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
5464 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5465 *
5466 * @property # <<<<<<<<<<<<<<
5467 * cdef inline PyObject* obj(self) noexcept nogil:
5468 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5469*/
5470
5471static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self) {
5472 PyObject *__pyx_r;
5473
5474 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":985
5475 * @property
5476 * cdef inline PyObject* obj(self) noexcept nogil:
5477 * return _PyUFuncObject_GET_ITEM_DATA(self).obj # <<<<<<<<<<<<<<
5478 *
5479 * @property
5480*/
5481 {
5482
5483 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->obj;
5484 }
5485 goto __pyx_L0;
5486
5487 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
5488 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5489 *
5490 * @property # <<<<<<<<<<<<<<
5491 * cdef inline PyObject* obj(self) noexcept nogil:
5492 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5493*/
5494
5495 /* function exit code */
5496 __pyx_L0:;
5497 return __pyx_r;
5498}
5499
5500/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
5501 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5502 *
5503 * @property # <<<<<<<<<<<<<<
5504 * cdef inline PyObject* userloops(self) noexcept nogil:
5505 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
5506*/
5507
5508static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self) {
5509 PyObject *__pyx_r;
5510
5511 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":989
5512 * @property
5513 * cdef inline PyObject* userloops(self) noexcept nogil:
5514 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops # <<<<<<<<<<<<<<
5515 *
5516 * PyUFuncObject_fields *_PyUFuncObject_GET_ITEM_DATA(ufunc) nogil
5517*/
5518 {
5519
5520 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->userloops;
5521 }
5522 goto __pyx_L0;
5523
5524 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
5525 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5526 *
5527 * @property # <<<<<<<<<<<<<<
5528 * cdef inline PyObject* userloops(self) noexcept nogil:
5529 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
5530*/
5531
5532 /* function exit code */
5533 __pyx_L0:;
5534 return __pyx_r;
5535}
5536
5537/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
5538 * int _import_umath() except -1
5539 *
5540 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
5541 * Py_INCREF(base) # important to do this before stealing the reference below!
5542 * PyArray_SetBaseObject(arr, base)
5543*/
5544
5545static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
5546 int __pyx_t_1;
5547 int __pyx_lineno = 0;
5548 const char *__pyx_filename = NULL;
5549 int __pyx_clineno = 0;
5550
5551 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1066
5552 *
5553 * cdef inline void set_array_base(ndarray arr, object base) except *:
5554 * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
5555 * PyArray_SetBaseObject(arr, base)
5556 *
5557*/
5558 Py_INCREF(__pyx_v_base);
5559
5560 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1067
5561 * cdef inline void set_array_base(ndarray arr, object base) except *:
5562 * Py_INCREF(base) # important to do this before stealing the reference below!
5563 * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
5564 *
5565 * cdef inline object get_array_base(ndarray arr):
5566*/
5567 __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 1067, __pyx_L1_error)
5568
5569
5570 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
5571 * int _import_umath() except -1
5572 *
5573 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
5574 * Py_INCREF(base) # important to do this before stealing the reference below!
5575 * PyArray_SetBaseObject(arr, base)
5576*/
5577
5578 /* function exit code */
5579 goto __pyx_L0;
5580 __pyx_L1_error:;
5581 __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
5582 __pyx_L0:;
5583
5584}
5585
5586/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
5587 * PyArray_SetBaseObject(arr, base)
5588 *
5589 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
5590 * base = PyArray_BASE(arr)
5591 * if base is NULL:
5592*/
5593
5594static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
5595 PyObject *__pyx_v_base;
5596 PyObject *__pyx_r = NULL;
5597 __Pyx_RefNannyDeclarations
5598 int __pyx_t_1;
5599 __Pyx_RefNannySetupContext("get_array_base", 0);
5600
5601 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1070
5602 *
5603 * cdef inline object get_array_base(ndarray arr):
5604 * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
5605 * if base is NULL:
5606 * return None
5607*/
5608 __pyx_v_base = PyArray_BASE(__pyx_v_arr);
5609
5610 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
5611 * cdef inline object get_array_base(ndarray arr):
5612 * base = PyArray_BASE(arr)
5613 * if base is NULL: # <<<<<<<<<<<<<<
5614 * return None
5615 * return <object>base
5616*/
5617 __pyx_t_1 = (__pyx_v_base == NULL);
5618
5619 if (__pyx_t_1) {
5620
5621
5622 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1072
5623 * base = PyArray_BASE(arr)
5624 * if base is NULL:
5625 * return None # <<<<<<<<<<<<<<
5626 * return <object>base
5627 *
5628*/
5629 {
5630 PyObject *__pyx_temp;
5631 {
5632 __pyx_temp = __pyx_r;
5633 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5634 }
5635 __Pyx_XDECREF(__pyx_temp);
5636 }
5637 goto __pyx_L0;
5638
5639 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
5640 * cdef inline object get_array_base(ndarray arr):
5641 * base = PyArray_BASE(arr)
5642 * if base is NULL: # <<<<<<<<<<<<<<
5643 * return None
5644 * return <object>base
5645*/
5646 }
5647
5648 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1073
5649 * if base is NULL:
5650 * return None
5651 * return <object>base # <<<<<<<<<<<<<<
5652 *
5653 * # Versions of the import_* functions which are more suitable for
5654*/
5655 {
5656 PyObject *__pyx_temp;
5657 {
5658 __pyx_temp = __pyx_r;
5659 __Pyx_INCREF(((PyObject *)__pyx_v_base));
5660 __pyx_r = ((PyObject *)__pyx_v_base);
5661 }
5662 __Pyx_XDECREF(__pyx_temp);
5663 }
5664 goto __pyx_L0;
5665
5666 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
5667 * PyArray_SetBaseObject(arr, base)
5668 *
5669 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
5670 * base = PyArray_BASE(arr)
5671 * if base is NULL:
5672*/
5673
5674 /* function exit code */
5675 __pyx_L0:;
5676
5677 __Pyx_XGIVEREF(__pyx_r);
5678 __Pyx_RefNannyFinishContext();
5679 return __pyx_r;
5680}
5681
5682/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
5683 * # Versions of the import_* functions which are more suitable for
5684 * # Cython code.
5685 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
5686 * try:
5687 * __pyx_import_array()
5688*/
5689
5690static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
5691 int __pyx_r;
5692 __Pyx_RefNannyDeclarations
5693 PyObject *__pyx_t_1 = NULL;
5694 PyObject *__pyx_t_2 = NULL;
5695 PyObject *__pyx_t_3 = NULL;
5696 int __pyx_t_4;
5697 PyObject *__pyx_t_5 = NULL;
5698 PyObject *__pyx_t_6 = NULL;
5699 PyObject *__pyx_t_7 = NULL;
5700 PyObject *__pyx_t_8 = NULL;
5701 PyObject *__pyx_t_9 = NULL;
5702 size_t __pyx_t_10;
5703 int __pyx_lineno = 0;
5704 const char *__pyx_filename = NULL;
5705 int __pyx_clineno = 0;
5706 __Pyx_RefNannySetupContext("import_array", 0);
5707
5708 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5709 * # Cython code.
5710 * cdef inline int import_array() except -1:
5711 * try: # <<<<<<<<<<<<<<
5712 * __pyx_import_array()
5713 * except Exception:
5714*/
5715 {
5716 __Pyx_PyThreadState_declare
5717 __Pyx_PyThreadState_assign
5718 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5719 __Pyx_XGOTREF(__pyx_t_1);
5720 __Pyx_XGOTREF(__pyx_t_2);
5721 __Pyx_XGOTREF(__pyx_t_3);
5722 /*try:*/ {
5723
5724 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1079
5725 * cdef inline int import_array() except -1:
5726 * try:
5727 * __pyx_import_array() # <<<<<<<<<<<<<<
5728 * except Exception:
5729 * raise ImportError("numpy._core.multiarray failed to import")
5730*/
5731 __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1079, __pyx_L3_error)
5732
5733
5734 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5735 * # Cython code.
5736 * cdef inline int import_array() except -1:
5737 * try: # <<<<<<<<<<<<<<
5738 * __pyx_import_array()
5739 * except Exception:
5740*/
5741 }
5742 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5743 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5744 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5745 goto __pyx_L8_try_end;
5746 __pyx_L3_error:;
5747
5748 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1080
5749 * try:
5750 * __pyx_import_array()
5751 * except Exception: # <<<<<<<<<<<<<<
5752 * raise ImportError("numpy._core.multiarray failed to import")
5753 *
5754*/
5755 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
5756 if (__pyx_t_4) {
5757 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
5758 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1080, __pyx_L5_except_error)
5759 __Pyx_XGOTREF(__pyx_t_5);
5760 __Pyx_XGOTREF(__pyx_t_6);
5761 __Pyx_XGOTREF(__pyx_t_7);
5762
5763 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1081
5764 * __pyx_import_array()
5765 * except Exception:
5766 * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
5767 *
5768 * cdef inline int import_umath() except -1:
5769*/
5770 __pyx_t_9 = NULL;
5771 __pyx_t_10 = 1;
5772 {
5773 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to};
5774 __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
5775 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5776 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1081, __pyx_L5_except_error)
5777 __Pyx_GOTREF(__pyx_t_8);
5778 }
5779 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
5780 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5781 __PYX_ERR(1, 1081, __pyx_L5_except_error)
5782 }
5783 goto __pyx_L5_except_error;
5784
5785 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5786 * # Cython code.
5787 * cdef inline int import_array() except -1:
5788 * try: # <<<<<<<<<<<<<<
5789 * __pyx_import_array()
5790 * except Exception:
5791*/
5792 __pyx_L5_except_error:;
5793 __Pyx_XGIVEREF(__pyx_t_1);
5794 __Pyx_XGIVEREF(__pyx_t_2);
5795 __Pyx_XGIVEREF(__pyx_t_3);
5796 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5797 goto __pyx_L1_error;
5798 __pyx_L8_try_end:;
5799 }
5800
5801 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
5802 * # Versions of the import_* functions which are more suitable for
5803 * # Cython code.
5804 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
5805 * try:
5806 * __pyx_import_array()
5807*/
5808
5809 /* function exit code */
5810 __pyx_r = 0;
5811 goto __pyx_L0;
5812 __pyx_L1_error:;
5813 __Pyx_XDECREF(__pyx_t_5);
5814 __Pyx_XDECREF(__pyx_t_6);
5815 __Pyx_XDECREF(__pyx_t_7);
5816 __Pyx_XDECREF(__pyx_t_8);
5817 __Pyx_XDECREF(__pyx_t_9);
5818 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
5819 __pyx_r = -1;
5820 __pyx_L0:;
5821
5822 __Pyx_RefNannyFinishContext();
5823 return __pyx_r;
5824}
5825
5826/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
5827 * raise ImportError("numpy._core.multiarray failed to import")
5828 *
5829 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
5830 * try:
5831 * _import_umath()
5832*/
5833
5834static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
5835 int __pyx_r;
5836 __Pyx_RefNannyDeclarations
5837 PyObject *__pyx_t_1 = NULL;
5838 PyObject *__pyx_t_2 = NULL;
5839 PyObject *__pyx_t_3 = NULL;
5840 int __pyx_t_4;
5841 PyObject *__pyx_t_5 = NULL;
5842 PyObject *__pyx_t_6 = NULL;
5843 PyObject *__pyx_t_7 = NULL;
5844 PyObject *__pyx_t_8 = NULL;
5845 PyObject *__pyx_t_9 = NULL;
5846 size_t __pyx_t_10;
5847 int __pyx_lineno = 0;
5848 const char *__pyx_filename = NULL;
5849 int __pyx_clineno = 0;
5850 __Pyx_RefNannySetupContext("import_umath", 0);
5851
5852 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5853 *
5854 * cdef inline int import_umath() except -1:
5855 * try: # <<<<<<<<<<<<<<
5856 * _import_umath()
5857 * except Exception:
5858*/
5859 {
5860 __Pyx_PyThreadState_declare
5861 __Pyx_PyThreadState_assign
5862 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5863 __Pyx_XGOTREF(__pyx_t_1);
5864 __Pyx_XGOTREF(__pyx_t_2);
5865 __Pyx_XGOTREF(__pyx_t_3);
5866 /*try:*/ {
5867
5868 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1085
5869 * cdef inline int import_umath() except -1:
5870 * try:
5871 * _import_umath() # <<<<<<<<<<<<<<
5872 * except Exception:
5873 * raise ImportError("numpy._core.umath failed to import")
5874*/
5875 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1085, __pyx_L3_error)
5876
5877
5878 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5879 *
5880 * cdef inline int import_umath() except -1:
5881 * try: # <<<<<<<<<<<<<<
5882 * _import_umath()
5883 * except Exception:
5884*/
5885 }
5886 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5887 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5888 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5889 goto __pyx_L8_try_end;
5890 __pyx_L3_error:;
5891
5892 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1086
5893 * try:
5894 * _import_umath()
5895 * except Exception: # <<<<<<<<<<<<<<
5896 * raise ImportError("numpy._core.umath failed to import")
5897 *
5898*/
5899 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
5900 if (__pyx_t_4) {
5901 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
5902 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1086, __pyx_L5_except_error)
5903 __Pyx_XGOTREF(__pyx_t_5);
5904 __Pyx_XGOTREF(__pyx_t_6);
5905 __Pyx_XGOTREF(__pyx_t_7);
5906
5907 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1087
5908 * _import_umath()
5909 * except Exception:
5910 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
5911 *
5912 * cdef inline int import_ufunc() except -1:
5913*/
5914 __pyx_t_9 = NULL;
5915 __pyx_t_10 = 1;
5916 {
5917 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
5918 __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
5919 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5920 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1087, __pyx_L5_except_error)
5921 __Pyx_GOTREF(__pyx_t_8);
5922 }
5923 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
5924 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5925 __PYX_ERR(1, 1087, __pyx_L5_except_error)
5926 }
5927 goto __pyx_L5_except_error;
5928
5929 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5930 *
5931 * cdef inline int import_umath() except -1:
5932 * try: # <<<<<<<<<<<<<<
5933 * _import_umath()
5934 * except Exception:
5935*/
5936 __pyx_L5_except_error:;
5937 __Pyx_XGIVEREF(__pyx_t_1);
5938 __Pyx_XGIVEREF(__pyx_t_2);
5939 __Pyx_XGIVEREF(__pyx_t_3);
5940 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5941 goto __pyx_L1_error;
5942 __pyx_L8_try_end:;
5943 }
5944
5945 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
5946 * raise ImportError("numpy._core.multiarray failed to import")
5947 *
5948 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
5949 * try:
5950 * _import_umath()
5951*/
5952
5953 /* function exit code */
5954 __pyx_r = 0;
5955 goto __pyx_L0;
5956 __pyx_L1_error:;
5957 __Pyx_XDECREF(__pyx_t_5);
5958 __Pyx_XDECREF(__pyx_t_6);
5959 __Pyx_XDECREF(__pyx_t_7);
5960 __Pyx_XDECREF(__pyx_t_8);
5961 __Pyx_XDECREF(__pyx_t_9);
5962 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
5963 __pyx_r = -1;
5964 __pyx_L0:;
5965
5966 __Pyx_RefNannyFinishContext();
5967 return __pyx_r;
5968}
5969
5970/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
5971 * raise ImportError("numpy._core.umath failed to import")
5972 *
5973 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
5974 * try:
5975 * _import_umath()
5976*/
5977
5978static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
5979 int __pyx_r;
5980 __Pyx_RefNannyDeclarations
5981 PyObject *__pyx_t_1 = NULL;
5982 PyObject *__pyx_t_2 = NULL;
5983 PyObject *__pyx_t_3 = NULL;
5984 int __pyx_t_4;
5985 PyObject *__pyx_t_5 = NULL;
5986 PyObject *__pyx_t_6 = NULL;
5987 PyObject *__pyx_t_7 = NULL;
5988 PyObject *__pyx_t_8 = NULL;
5989 PyObject *__pyx_t_9 = NULL;
5990 size_t __pyx_t_10;
5991 int __pyx_lineno = 0;
5992 const char *__pyx_filename = NULL;
5993 int __pyx_clineno = 0;
5994 __Pyx_RefNannySetupContext("import_ufunc", 0);
5995
5996 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
5997 *
5998 * cdef inline int import_ufunc() except -1:
5999 * try: # <<<<<<<<<<<<<<
6000 * _import_umath()
6001 * except Exception:
6002*/
6003 {
6004 __Pyx_PyThreadState_declare
6005 __Pyx_PyThreadState_assign
6006 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
6007 __Pyx_XGOTREF(__pyx_t_1);
6008 __Pyx_XGOTREF(__pyx_t_2);
6009 __Pyx_XGOTREF(__pyx_t_3);
6010 /*try:*/ {
6011
6012 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1091
6013 * cdef inline int import_ufunc() except -1:
6014 * try:
6015 * _import_umath() # <<<<<<<<<<<<<<
6016 * except Exception:
6017 * raise ImportError("numpy._core.umath failed to import")
6018*/
6019 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1091, __pyx_L3_error)
6020
6021
6022 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
6023 *
6024 * cdef inline int import_ufunc() except -1:
6025 * try: # <<<<<<<<<<<<<<
6026 * _import_umath()
6027 * except Exception:
6028*/
6029 }
6030 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6031 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6032 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6033 goto __pyx_L8_try_end;
6034 __pyx_L3_error:;
6035
6036 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1092
6037 * try:
6038 * _import_umath()
6039 * except Exception: # <<<<<<<<<<<<<<
6040 * raise ImportError("numpy._core.umath failed to import")
6041 *
6042*/
6043 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
6044 if (__pyx_t_4) {
6045 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
6046 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1092, __pyx_L5_except_error)
6047 __Pyx_XGOTREF(__pyx_t_5);
6048 __Pyx_XGOTREF(__pyx_t_6);
6049 __Pyx_XGOTREF(__pyx_t_7);
6050
6051 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1093
6052 * _import_umath()
6053 * except Exception:
6054 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
6055 *
6056 *
6057*/
6058 __pyx_t_9 = NULL;
6059 __pyx_t_10 = 1;
6060 {
6061 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
6062 __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
6063 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
6064 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1093, __pyx_L5_except_error)
6065 __Pyx_GOTREF(__pyx_t_8);
6066 }
6067 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
6068 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6069 __PYX_ERR(1, 1093, __pyx_L5_except_error)
6070 }
6071 goto __pyx_L5_except_error;
6072
6073 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
6074 *
6075 * cdef inline int import_ufunc() except -1:
6076 * try: # <<<<<<<<<<<<<<
6077 * _import_umath()
6078 * except Exception:
6079*/
6080 __pyx_L5_except_error:;
6081 __Pyx_XGIVEREF(__pyx_t_1);
6082 __Pyx_XGIVEREF(__pyx_t_2);
6083 __Pyx_XGIVEREF(__pyx_t_3);
6084 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
6085 goto __pyx_L1_error;
6086 __pyx_L8_try_end:;
6087 }
6088
6089 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
6090 * raise ImportError("numpy._core.umath failed to import")
6091 *
6092 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
6093 * try:
6094 * _import_umath()
6095*/
6096
6097 /* function exit code */
6098 __pyx_r = 0;
6099 goto __pyx_L0;
6100 __pyx_L1_error:;
6101 __Pyx_XDECREF(__pyx_t_5);
6102 __Pyx_XDECREF(__pyx_t_6);
6103 __Pyx_XDECREF(__pyx_t_7);
6104 __Pyx_XDECREF(__pyx_t_8);
6105 __Pyx_XDECREF(__pyx_t_9);
6106 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
6107 __pyx_r = -1;
6108 __pyx_L0:;
6109
6110 __Pyx_RefNannyFinishContext();
6111 return __pyx_r;
6112}
6113
6114/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
6115 *
6116 *
6117 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6118 * """
6119 * Cython equivalent of `isinstance(obj, np.timedelta64)`
6120*/
6121
6122static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
6123 int __pyx_r;
6124
6125 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1108
6126 * bool
6127 * """
6128 * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
6129 *
6130 *
6131*/
6132 {
6133
6134 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
6135 }
6136 goto __pyx_L0;
6137
6138 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
6139 *
6140 *
6141 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6142 * """
6143 * Cython equivalent of `isinstance(obj, np.timedelta64)`
6144*/
6145
6146 /* function exit code */
6147 __pyx_L0:;
6148
6149 return __pyx_r;
6150}
6151
6152/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
6153 *
6154 *
6155 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6156 * """
6157 * Cython equivalent of `isinstance(obj, np.datetime64)`
6158*/
6159
6160static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
6161 int __pyx_r;
6162
6163 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1123
6164 * bool
6165 * """
6166 * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
6167 *
6168 *
6169*/
6170 {
6171
6172 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
6173 }
6174 goto __pyx_L0;
6175
6176 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
6177 *
6178 *
6179 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6180 * """
6181 * Cython equivalent of `isinstance(obj, np.datetime64)`
6182*/
6183
6184 /* function exit code */
6185 __pyx_L0:;
6186
6187 return __pyx_r;
6188}
6189
6190/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
6191 *
6192 *
6193 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6194 * """
6195 * returns the int64 value underlying scalar numpy datetime64 object
6196*/
6197
6198static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
6199 npy_datetime __pyx_r;
6200
6201 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1133
6202 * also needed. That can be found using `get_datetime64_unit`.
6203 * """
6204 * return _PyDatetimeScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
6205 *
6206 *
6207*/
6208 {
6209
6210 __pyx_r = _PyDatetimeScalarObject_GetValue(__pyx_v_obj);
6211 }
6212 goto __pyx_L0;
6213
6214 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
6215 *
6216 *
6217 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6218 * """
6219 * returns the int64 value underlying scalar numpy datetime64 object
6220*/
6221
6222 /* function exit code */
6223 __pyx_L0:;
6224 return __pyx_r;
6225}
6226
6227/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
6228 *
6229 *
6230 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6231 * """
6232 * returns the int64 value underlying scalar numpy timedelta64 object
6233*/
6234
6235static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
6236 npy_timedelta __pyx_r;
6237
6238 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1140
6239 * returns the int64 value underlying scalar numpy timedelta64 object
6240 * """
6241 * return _PyTimedeltaScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
6242 *
6243 *
6244*/
6245 {
6246
6247 __pyx_r = _PyTimedeltaScalarObject_GetValue(__pyx_v_obj);
6248 }
6249 goto __pyx_L0;
6250
6251 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
6252 *
6253 *
6254 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6255 * """
6256 * returns the int64 value underlying scalar numpy timedelta64 object
6257*/
6258
6259 /* function exit code */
6260 __pyx_L0:;
6261 return __pyx_r;
6262}
6263
6264/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
6265 *
6266 *
6267 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6268 * """
6269 * returns the unit part of the dtype for a numpy datetime64 object.
6270*/
6271
6272static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
6273 NPY_DATETIMEUNIT __pyx_r;
6274
6275 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1147
6276 * returns the unit part of the dtype for a numpy datetime64 object.
6277 * """
6278 * return _PyDatetimeScalarObject_GetMetadata(obj).base # <<<<<<<<<<<<<<
6279 *
6280 *
6281*/
6282 {
6283
6284 __pyx_r = _PyDatetimeScalarObject_GetMetadata(__pyx_v_obj).base;
6285 }
6286 goto __pyx_L0;
6287
6288 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
6289 *
6290 *
6291 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6292 * """
6293 * returns the unit part of the dtype for a numpy datetime64 object.
6294*/
6295
6296 /* function exit code */
6297 __pyx_L0:;
6298 return __pyx_r;
6299}
6300
6301/* "cpostprocessing.pyx":7
6302 * cimport postprocessing as pp
6303 *
6304 * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
6305 * np.ndarray freeLocal_element,
6306 * np.ndarray detJ,
6307*/
6308
6309/* Python wrapper */
6310static PyObject *__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc(PyObject *__pyx_self,
6311#if CYTHON_VECTORCALL
6312PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6313#else
6314PyObject *__pyx_args, PyObject *__pyx_kwds
6315#endif
6316); /*proto*/
6317static PyMethodDef __pyx_mdef_15cpostprocessing_1postProcessRT0velocityFromP1nc = {"postProcessRT0velocityFromP1nc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6318static PyObject *__pyx_pw_15cpostprocessing_1postProcessRT0velocityFromP1nc(PyObject *__pyx_self,
6319#if CYTHON_VECTORCALL
6320PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6321#else
6322PyObject *__pyx_args, PyObject *__pyx_kwds
6323#endif
6324) {
6325 PyArrayObject *__pyx_v_nFreeDOF_element = 0;
6326 PyArrayObject *__pyx_v_freeLocal_element = 0;
6327 PyArrayObject *__pyx_v_detJ = 0;
6328 PyArrayObject *__pyx_v_sqrt_det_g = 0;
6329 PyArrayObject *__pyx_v_n = 0;
6330 PyArrayObject *__pyx_v_elementBarycenters = 0;
6331 PyArrayObject *__pyx_v_quad_a = 0;
6332 PyArrayObject *__pyx_v_quad_f = 0;
6333 PyArrayObject *__pyx_v_w_dV_r = 0;
6334 PyArrayObject *__pyx_v_u = 0;
6335 PyArrayObject *__pyx_v_gradu = 0;
6336 PyArrayObject *__pyx_v_a = 0;
6337 PyArrayObject *__pyx_v_f = 0;
6338 PyArrayObject *__pyx_v_r = 0;
6339 PyArrayObject *__pyx_v_rt0vdofs = 0;
6340 PyArrayObject *__pyx_v_w_dV_m = 0;
6341 PyArrayObject *__pyx_v_mt = 0;
6342 #if !CYTHON_VECTORCALL
6343 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6344 #endif
6345 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6346 PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
6347 int __pyx_lineno = 0;
6348 const char *__pyx_filename = NULL;
6349 int __pyx_clineno = 0;
6350 PyObject *__pyx_r = 0;
6351 __Pyx_RefNannyDeclarations
6352 __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc (wrapper)", 0);
6353 #if !CYTHON_VECTORCALL
6354 #if CYTHON_ASSUME_SAFE_SIZE
6355 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6356 #else
6357 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6358 #endif
6359 #endif
6360 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6361 {
6362 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nFreeDOF_element,&__pyx_mstate_global->__pyx_n_u_freeLocal_element,&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_sqrt_det_g,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_elementBarycenters,&__pyx_mstate_global->__pyx_n_u_quad_a,&__pyx_mstate_global->__pyx_n_u_quad_f,&__pyx_mstate_global->__pyx_n_u_w_dV_r,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_gradu,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_r,&__pyx_mstate_global->__pyx_n_u_rt0vdofs,&__pyx_mstate_global->__pyx_n_u_w_dV_m,&__pyx_mstate_global->__pyx_n_u_mt,0};
6363 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6364 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 7, __pyx_L3_error)
6365 if (__pyx_kwds_len > 0) {
6366 switch (__pyx_nargs) {
6367 case 17:
6368 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
6369 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 7, __pyx_L3_error)
6370 CYTHON_FALLTHROUGH;
6371 case 16:
6372 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
6373 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 7, __pyx_L3_error)
6374 CYTHON_FALLTHROUGH;
6375 case 15:
6376 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
6377 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 7, __pyx_L3_error)
6378 CYTHON_FALLTHROUGH;
6379 case 14:
6380 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6381 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 7, __pyx_L3_error)
6382 CYTHON_FALLTHROUGH;
6383 case 13:
6384 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6385 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 7, __pyx_L3_error)
6386 CYTHON_FALLTHROUGH;
6387 case 12:
6388 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6389 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 7, __pyx_L3_error)
6390 CYTHON_FALLTHROUGH;
6391 case 11:
6392 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6393 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 7, __pyx_L3_error)
6394 CYTHON_FALLTHROUGH;
6395 case 10:
6396 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6397 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 7, __pyx_L3_error)
6398 CYTHON_FALLTHROUGH;
6399 case 9:
6400 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6401 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 7, __pyx_L3_error)
6402 CYTHON_FALLTHROUGH;
6403 case 8:
6404 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6405 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 7, __pyx_L3_error)
6406 CYTHON_FALLTHROUGH;
6407 case 7:
6408 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6409 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 7, __pyx_L3_error)
6410 CYTHON_FALLTHROUGH;
6411 case 6:
6412 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6413 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 7, __pyx_L3_error)
6414 CYTHON_FALLTHROUGH;
6415 case 5:
6416 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6417 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 7, __pyx_L3_error)
6418 CYTHON_FALLTHROUGH;
6419 case 4:
6420 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6421 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 7, __pyx_L3_error)
6422 CYTHON_FALLTHROUGH;
6423 case 3:
6424 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6425 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 7, __pyx_L3_error)
6426 CYTHON_FALLTHROUGH;
6427 case 2:
6428 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6429 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 7, __pyx_L3_error)
6430 CYTHON_FALLTHROUGH;
6431 case 1:
6432 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6433 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 7, __pyx_L3_error)
6434 CYTHON_FALLTHROUGH;
6435 case 0: break;
6436 default: goto __pyx_L5_argtuple_error;
6437 }
6438 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6439 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "postProcessRT0velocityFromP1nc", 0) < (0)) __PYX_ERR(0, 7, __pyx_L3_error)
6440
6441 /* "cpostprocessing.pyx":22
6442 * np.ndarray r,
6443 * np.ndarray rt0vdofs,
6444 * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
6445 * np.ndarray mt=None):
6446 * if mt is not None and w_dV_m is not None:
6447*/
6448 if (!values[15]) values[15] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6449
6450 /* "cpostprocessing.pyx":23
6451 * np.ndarray rt0vdofs,
6452 * np.ndarray w_dV_m=None,
6453 * np.ndarray mt=None): # <<<<<<<<<<<<<<
6454 * if mt is not None and w_dV_m is not None:
6455 * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6456*/
6457 if (!values[16]) values[16] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6458 for (Py_ssize_t i = __pyx_nargs; i < 15; i++) {
6459 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, i); __PYX_ERR(0, 7, __pyx_L3_error) }
6460 }
6461 } else {
6462 switch (__pyx_nargs) {
6463 case 17:
6464 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
6465 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 7, __pyx_L3_error)
6466 CYTHON_FALLTHROUGH;
6467 case 16:
6468 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
6469 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 7, __pyx_L3_error)
6470 CYTHON_FALLTHROUGH;
6471 case 15:
6472 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
6473 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 7, __pyx_L3_error)
6474 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6475 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 7, __pyx_L3_error)
6476 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6477 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 7, __pyx_L3_error)
6478 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6479 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 7, __pyx_L3_error)
6480 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6481 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 7, __pyx_L3_error)
6482 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6483 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 7, __pyx_L3_error)
6484 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6485 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 7, __pyx_L3_error)
6486 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6487 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 7, __pyx_L3_error)
6488 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6489 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 7, __pyx_L3_error)
6490 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6491 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 7, __pyx_L3_error)
6492 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6493 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 7, __pyx_L3_error)
6494 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6495 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 7, __pyx_L3_error)
6496 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6497 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 7, __pyx_L3_error)
6498 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6499 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 7, __pyx_L3_error)
6500 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6501 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 7, __pyx_L3_error)
6502 break;
6503 default: goto __pyx_L5_argtuple_error;
6504 }
6505
6506 /* "cpostprocessing.pyx":22
6507 * np.ndarray r,
6508 * np.ndarray rt0vdofs,
6509 * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
6510 * np.ndarray mt=None):
6511 * if mt is not None and w_dV_m is not None:
6512*/
6513 if (!values[15]) values[15] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6514
6515 /* "cpostprocessing.pyx":23
6516 * np.ndarray rt0vdofs,
6517 * np.ndarray w_dV_m=None,
6518 * np.ndarray mt=None): # <<<<<<<<<<<<<<
6519 * if mt is not None and w_dV_m is not None:
6520 * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6521*/
6522 if (!values[16]) values[16] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6523 }
6524 __pyx_v_nFreeDOF_element = ((PyArrayObject *)values[0]);
6525 __pyx_v_freeLocal_element = ((PyArrayObject *)values[1]);
6526 __pyx_v_detJ = ((PyArrayObject *)values[2]);
6527 __pyx_v_sqrt_det_g = ((PyArrayObject *)values[3]);
6528 __pyx_v_n = ((PyArrayObject *)values[4]);
6529 __pyx_v_elementBarycenters = ((PyArrayObject *)values[5]);
6530 __pyx_v_quad_a = ((PyArrayObject *)values[6]);
6531 __pyx_v_quad_f = ((PyArrayObject *)values[7]);
6532 __pyx_v_w_dV_r = ((PyArrayObject *)values[8]);
6533 __pyx_v_u = ((PyArrayObject *)values[9]);
6534 __pyx_v_gradu = ((PyArrayObject *)values[10]);
6535 __pyx_v_a = ((PyArrayObject *)values[11]);
6536 __pyx_v_f = ((PyArrayObject *)values[12]);
6537 __pyx_v_r = ((PyArrayObject *)values[13]);
6538 __pyx_v_rt0vdofs = ((PyArrayObject *)values[14]);
6539 __pyx_v_w_dV_m = ((PyArrayObject *)values[15]);
6540 __pyx_v_mt = ((PyArrayObject *)values[16]);
6541 }
6542 goto __pyx_L6_skip;
6543 __pyx_L5_argtuple_error:;
6544 __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc", 0, 15, 17, __pyx_nargs); __PYX_ERR(0, 7, __pyx_L3_error)
6545 __pyx_L6_skip:;
6546 goto __pyx_L4_argument_unpacking_done;
6547 __pyx_L3_error:;
6548 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6549 Py_XDECREF(values[__pyx_temp]);
6550 }
6551 __Pyx_AddTraceback("cpostprocessing.postProcessRT0velocityFromP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
6552 __Pyx_RefNannyFinishContext();
6553 return NULL;
6554 __pyx_L4_argument_unpacking_done:;
6555 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element", 0))) __PYX_ERR(0, 7, __pyx_L1_error)
6556 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "freeLocal_element", 0))) __PYX_ERR(0, 8, __pyx_L1_error)
6557 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 9, __pyx_L1_error)
6558 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sqrt_det_g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "sqrt_det_g", 0))) __PYX_ERR(0, 10, __pyx_L1_error)
6559 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 11, __pyx_L1_error)
6560 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 12, __pyx_L1_error)
6561 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 13, __pyx_L1_error)
6562 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_f", 0))) __PYX_ERR(0, 14, __pyx_L1_error)
6563 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dV_r", 0))) __PYX_ERR(0, 15, __pyx_L1_error)
6564 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 16, __pyx_L1_error)
6565 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 17, __pyx_L1_error)
6566 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 18, __pyx_L1_error)
6567 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 19, __pyx_L1_error)
6568 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 20, __pyx_L1_error)
6569 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 21, __pyx_L1_error)
6570 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_m), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dV_m", 0))) __PYX_ERR(0, 22, __pyx_L1_error)
6571 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "mt", 0))) __PYX_ERR(0, 23, __pyx_L1_error)
6572 __pyx_r = __pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(__pyx_self, __pyx_v_nFreeDOF_element, __pyx_v_freeLocal_element, __pyx_v_detJ, __pyx_v_sqrt_det_g, __pyx_v_n, __pyx_v_elementBarycenters, __pyx_v_quad_a, __pyx_v_quad_f, __pyx_v_w_dV_r, __pyx_v_u, __pyx_v_gradu, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_w_dV_m, __pyx_v_mt);
6573
6574 /* "cpostprocessing.pyx":7
6575 * cimport postprocessing as pp
6576 *
6577 * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
6578 * np.ndarray freeLocal_element,
6579 * np.ndarray detJ,
6580*/
6581
6582 /* function exit code */
6583 goto __pyx_L0;
6584 __pyx_L1_error:;
6585 __pyx_r = NULL;
6586 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6587 Py_XDECREF(values[__pyx_temp]);
6588 }
6589 goto __pyx_L7_cleaned_up;
6590 __pyx_L0:;
6591 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6592 Py_XDECREF(values[__pyx_temp]);
6593 }
6594 __pyx_L7_cleaned_up:;
6595 __Pyx_RefNannyFinishContext();
6596 return __pyx_r;
6597}
6598
6599static PyObject *__pyx_pf_15cpostprocessing_postProcessRT0velocityFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt) {
6600 PyObject *__pyx_r = NULL;
6601 __Pyx_RefNannyDeclarations
6602 int __pyx_t_1;
6603 int __pyx_t_2;
6604 __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc", 0);
6605
6606 /* "cpostprocessing.pyx":24
6607 * np.ndarray w_dV_m=None,
6608 * np.ndarray mt=None):
6609 * if mt is not None and w_dV_m is not None: # <<<<<<<<<<<<<<
6610 * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6611 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
6612*/
6613 __pyx_t_2 = (((PyObject *)__pyx_v_mt) != Py_None);
6614 if (__pyx_t_2) {
6615
6616 } else {
6617
6618 __pyx_t_1 = __pyx_t_2;
6619
6620 goto __pyx_L4_bool_binop_done;
6621 }
6622 __pyx_t_2 = (((PyObject *)__pyx_v_w_dV_m) != Py_None);
6623
6624 __pyx_t_1 = __pyx_t_2;
6625
6626 __pyx_L4_bool_binop_done:;
6627 if (__pyx_t_1) {
6628
6629
6630 /* "cpostprocessing.pyx":25
6631 * np.ndarray mt=None):
6632 * if mt is not None and w_dV_m is not None:
6633 * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
6634 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
6635 * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
6636*/
6637 postProcessRT0velocityFromP1nc((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dV_r)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nFreeDOF_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_freeLocal_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_sqrt_det_g)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_m)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_mt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)));
6638
6639 /* "cpostprocessing.pyx":24
6640 * np.ndarray w_dV_m=None,
6641 * np.ndarray mt=None):
6642 * if mt is not None and w_dV_m is not None: # <<<<<<<<<<<<<<
6643 * pp.postProcessRT0velocityFromP1nc(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6644 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
6645*/
6646 goto __pyx_L3;
6647 }
6648
6649 /* "cpostprocessing.pyx":49
6650 * <double*>(rt0vdofs.data))
6651 * else:
6652 * pp.postProcessRT0velocityFromP1ncNoMass(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
6653 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
6654 * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
6655*/
6656 /*else*/ {
6657
6658 /* "cpostprocessing.pyx":69
6659 * <double*>(f.data),
6660 * <double*>(r.data),
6661 * <double*>(rt0vdofs.data)) # <<<<<<<<<<<<<<
6662 *
6663 * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr,
6664*/
6665 postProcessRT0velocityFromP1ncNoMass((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dV_r)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nFreeDOF_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_freeLocal_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_sqrt_det_g)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)));
6666 }
6667 __pyx_L3:;
6668
6669 /* "cpostprocessing.pyx":7
6670 * cimport postprocessing as pp
6671 *
6672 * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
6673 * np.ndarray freeLocal_element,
6674 * np.ndarray detJ,
6675*/
6676
6677 /* function exit code */
6678 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6679 __Pyx_XGIVEREF(__pyx_r);
6680 __Pyx_RefNannyFinishContext();
6681 return __pyx_r;
6682}
6683
6684/* "cpostprocessing.pyx":71
6685 * <double*>(rt0vdofs.data))
6686 *
6687 * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
6688 * np.ndarray colind,
6689 * np.ndarray nFreeDOF_element,
6690*/
6691
6692/* Python wrapper */
6693static PyObject *__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd(PyObject *__pyx_self,
6694#if CYTHON_VECTORCALL
6695PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6696#else
6697PyObject *__pyx_args, PyObject *__pyx_kwds
6698#endif
6699); /*proto*/
6700static PyMethodDef __pyx_mdef_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd = {"postProcessRT0velocityFromP1nc_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6701static PyObject *__pyx_pw_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd(PyObject *__pyx_self,
6702#if CYTHON_VECTORCALL
6703PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6704#else
6705PyObject *__pyx_args, PyObject *__pyx_kwds
6706#endif
6707) {
6708 PyArrayObject *__pyx_v_rowptr = 0;
6709 PyArrayObject *__pyx_v_colind = 0;
6710 PyArrayObject *__pyx_v_nFreeDOF_element = 0;
6711 PyArrayObject *__pyx_v_freeLocal_element = 0;
6712 PyArrayObject *__pyx_v_detJ = 0;
6713 PyArrayObject *__pyx_v_sqrt_det_g = 0;
6714 PyArrayObject *__pyx_v_n = 0;
6715 PyArrayObject *__pyx_v_elementBarycenters = 0;
6716 PyArrayObject *__pyx_v_quad_a = 0;
6717 PyArrayObject *__pyx_v_quad_f = 0;
6718 PyArrayObject *__pyx_v_w_dV_r = 0;
6719 PyArrayObject *__pyx_v_u = 0;
6720 PyArrayObject *__pyx_v_gradu = 0;
6721 PyArrayObject *__pyx_v_a = 0;
6722 PyArrayObject *__pyx_v_f = 0;
6723 PyArrayObject *__pyx_v_r = 0;
6724 PyArrayObject *__pyx_v_rt0vdofs = 0;
6725 PyArrayObject *__pyx_v_w_dV_m = 0;
6726 PyArrayObject *__pyx_v_mt = 0;
6727 #if !CYTHON_VECTORCALL
6728 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6729 #endif
6730 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6731 PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
6732 int __pyx_lineno = 0;
6733 const char *__pyx_filename = NULL;
6734 int __pyx_clineno = 0;
6735 PyObject *__pyx_r = 0;
6736 __Pyx_RefNannyDeclarations
6737 __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc_sd (wrapper)", 0);
6738 #if !CYTHON_VECTORCALL
6739 #if CYTHON_ASSUME_SAFE_SIZE
6740 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6741 #else
6742 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6743 #endif
6744 #endif
6745 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6746 {
6747 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_nFreeDOF_element,&__pyx_mstate_global->__pyx_n_u_freeLocal_element,&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_sqrt_det_g,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_elementBarycenters,&__pyx_mstate_global->__pyx_n_u_quad_a,&__pyx_mstate_global->__pyx_n_u_quad_f,&__pyx_mstate_global->__pyx_n_u_w_dV_r,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_gradu,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_r,&__pyx_mstate_global->__pyx_n_u_rt0vdofs,&__pyx_mstate_global->__pyx_n_u_w_dV_m,&__pyx_mstate_global->__pyx_n_u_mt,0};
6748 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6749 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 71, __pyx_L3_error)
6750 if (__pyx_kwds_len > 0) {
6751 switch (__pyx_nargs) {
6752 case 19:
6753 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
6754 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 71, __pyx_L3_error)
6755 CYTHON_FALLTHROUGH;
6756 case 18:
6757 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
6758 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 71, __pyx_L3_error)
6759 CYTHON_FALLTHROUGH;
6760 case 17:
6761 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
6762 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 71, __pyx_L3_error)
6763 CYTHON_FALLTHROUGH;
6764 case 16:
6765 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
6766 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 71, __pyx_L3_error)
6767 CYTHON_FALLTHROUGH;
6768 case 15:
6769 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
6770 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 71, __pyx_L3_error)
6771 CYTHON_FALLTHROUGH;
6772 case 14:
6773 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6774 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 71, __pyx_L3_error)
6775 CYTHON_FALLTHROUGH;
6776 case 13:
6777 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6778 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 71, __pyx_L3_error)
6779 CYTHON_FALLTHROUGH;
6780 case 12:
6781 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6782 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 71, __pyx_L3_error)
6783 CYTHON_FALLTHROUGH;
6784 case 11:
6785 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6786 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 71, __pyx_L3_error)
6787 CYTHON_FALLTHROUGH;
6788 case 10:
6789 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6790 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 71, __pyx_L3_error)
6791 CYTHON_FALLTHROUGH;
6792 case 9:
6793 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6794 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 71, __pyx_L3_error)
6795 CYTHON_FALLTHROUGH;
6796 case 8:
6797 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6798 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 71, __pyx_L3_error)
6799 CYTHON_FALLTHROUGH;
6800 case 7:
6801 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6802 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 71, __pyx_L3_error)
6803 CYTHON_FALLTHROUGH;
6804 case 6:
6805 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6806 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 71, __pyx_L3_error)
6807 CYTHON_FALLTHROUGH;
6808 case 5:
6809 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6810 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 71, __pyx_L3_error)
6811 CYTHON_FALLTHROUGH;
6812 case 4:
6813 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6814 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 71, __pyx_L3_error)
6815 CYTHON_FALLTHROUGH;
6816 case 3:
6817 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6818 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 71, __pyx_L3_error)
6819 CYTHON_FALLTHROUGH;
6820 case 2:
6821 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6822 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 71, __pyx_L3_error)
6823 CYTHON_FALLTHROUGH;
6824 case 1:
6825 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6826 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 71, __pyx_L3_error)
6827 CYTHON_FALLTHROUGH;
6828 case 0: break;
6829 default: goto __pyx_L5_argtuple_error;
6830 }
6831 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6832 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "postProcessRT0velocityFromP1nc_sd", 0) < (0)) __PYX_ERR(0, 71, __pyx_L3_error)
6833
6834 /* "cpostprocessing.pyx":88
6835 * np.ndarray r,
6836 * np.ndarray rt0vdofs,
6837 * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
6838 * np.ndarray mt=None):
6839 * if mt is None and w_dV_m is not None:
6840*/
6841 if (!values[17]) values[17] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6842
6843 /* "cpostprocessing.pyx":89
6844 * np.ndarray rt0vdofs,
6845 * np.ndarray w_dV_m=None,
6846 * np.ndarray mt=None): # <<<<<<<<<<<<<<
6847 * if mt is None and w_dV_m is not None:
6848 * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6849*/
6850 if (!values[18]) values[18] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6851 for (Py_ssize_t i = __pyx_nargs; i < 17; i++) {
6852 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, i); __PYX_ERR(0, 71, __pyx_L3_error) }
6853 }
6854 } else {
6855 switch (__pyx_nargs) {
6856 case 19:
6857 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
6858 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 71, __pyx_L3_error)
6859 CYTHON_FALLTHROUGH;
6860 case 18:
6861 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
6862 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 71, __pyx_L3_error)
6863 CYTHON_FALLTHROUGH;
6864 case 17:
6865 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
6866 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 71, __pyx_L3_error)
6867 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
6868 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 71, __pyx_L3_error)
6869 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
6870 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 71, __pyx_L3_error)
6871 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6872 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 71, __pyx_L3_error)
6873 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6874 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 71, __pyx_L3_error)
6875 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6876 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 71, __pyx_L3_error)
6877 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6878 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 71, __pyx_L3_error)
6879 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6880 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 71, __pyx_L3_error)
6881 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6882 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 71, __pyx_L3_error)
6883 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6884 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 71, __pyx_L3_error)
6885 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6886 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 71, __pyx_L3_error)
6887 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6888 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 71, __pyx_L3_error)
6889 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6890 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 71, __pyx_L3_error)
6891 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6892 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 71, __pyx_L3_error)
6893 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6894 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 71, __pyx_L3_error)
6895 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6896 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 71, __pyx_L3_error)
6897 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6898 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 71, __pyx_L3_error)
6899 break;
6900 default: goto __pyx_L5_argtuple_error;
6901 }
6902
6903 /* "cpostprocessing.pyx":88
6904 * np.ndarray r,
6905 * np.ndarray rt0vdofs,
6906 * np.ndarray w_dV_m=None, # <<<<<<<<<<<<<<
6907 * np.ndarray mt=None):
6908 * if mt is None and w_dV_m is not None:
6909*/
6910 if (!values[17]) values[17] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6911
6912 /* "cpostprocessing.pyx":89
6913 * np.ndarray rt0vdofs,
6914 * np.ndarray w_dV_m=None,
6915 * np.ndarray mt=None): # <<<<<<<<<<<<<<
6916 * if mt is None and w_dV_m is not None:
6917 * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
6918*/
6919 if (!values[18]) values[18] = __Pyx_NewRef((PyObject *)((PyArrayObject *)Py_None));
6920 }
6921 __pyx_v_rowptr = ((PyArrayObject *)values[0]);
6922 __pyx_v_colind = ((PyArrayObject *)values[1]);
6923 __pyx_v_nFreeDOF_element = ((PyArrayObject *)values[2]);
6924 __pyx_v_freeLocal_element = ((PyArrayObject *)values[3]);
6925 __pyx_v_detJ = ((PyArrayObject *)values[4]);
6926 __pyx_v_sqrt_det_g = ((PyArrayObject *)values[5]);
6927 __pyx_v_n = ((PyArrayObject *)values[6]);
6928 __pyx_v_elementBarycenters = ((PyArrayObject *)values[7]);
6929 __pyx_v_quad_a = ((PyArrayObject *)values[8]);
6930 __pyx_v_quad_f = ((PyArrayObject *)values[9]);
6931 __pyx_v_w_dV_r = ((PyArrayObject *)values[10]);
6932 __pyx_v_u = ((PyArrayObject *)values[11]);
6933 __pyx_v_gradu = ((PyArrayObject *)values[12]);
6934 __pyx_v_a = ((PyArrayObject *)values[13]);
6935 __pyx_v_f = ((PyArrayObject *)values[14]);
6936 __pyx_v_r = ((PyArrayObject *)values[15]);
6937 __pyx_v_rt0vdofs = ((PyArrayObject *)values[16]);
6938 __pyx_v_w_dV_m = ((PyArrayObject *)values[17]);
6939 __pyx_v_mt = ((PyArrayObject *)values[18]);
6940 }
6941 goto __pyx_L6_skip;
6942 __pyx_L5_argtuple_error:;
6943 __Pyx_RaiseArgtupleInvalid("postProcessRT0velocityFromP1nc_sd", 0, 17, 19, __pyx_nargs); __PYX_ERR(0, 71, __pyx_L3_error)
6944 __pyx_L6_skip:;
6945 goto __pyx_L4_argument_unpacking_done;
6946 __pyx_L3_error:;
6947 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6948 Py_XDECREF(values[__pyx_temp]);
6949 }
6950 __Pyx_AddTraceback("cpostprocessing.postProcessRT0velocityFromP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
6951 __Pyx_RefNannyFinishContext();
6952 return NULL;
6953 __pyx_L4_argument_unpacking_done:;
6954 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 71, __pyx_L1_error)
6955 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 72, __pyx_L1_error)
6956 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nFreeDOF_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nFreeDOF_element", 0))) __PYX_ERR(0, 73, __pyx_L1_error)
6957 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_freeLocal_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "freeLocal_element", 0))) __PYX_ERR(0, 74, __pyx_L1_error)
6958 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 75, __pyx_L1_error)
6959 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sqrt_det_g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "sqrt_det_g", 0))) __PYX_ERR(0, 76, __pyx_L1_error)
6960 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 77, __pyx_L1_error)
6961 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 78, __pyx_L1_error)
6962 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 79, __pyx_L1_error)
6963 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_f", 0))) __PYX_ERR(0, 80, __pyx_L1_error)
6964 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dV_r", 0))) __PYX_ERR(0, 81, __pyx_L1_error)
6965 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 82, __pyx_L1_error)
6966 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 83, __pyx_L1_error)
6967 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 84, __pyx_L1_error)
6968 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 85, __pyx_L1_error)
6969 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 86, __pyx_L1_error)
6970 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 87, __pyx_L1_error)
6971 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dV_m), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dV_m", 0))) __PYX_ERR(0, 88, __pyx_L1_error)
6972 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "mt", 0))) __PYX_ERR(0, 89, __pyx_L1_error)
6973 __pyx_r = __pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_nFreeDOF_element, __pyx_v_freeLocal_element, __pyx_v_detJ, __pyx_v_sqrt_det_g, __pyx_v_n, __pyx_v_elementBarycenters, __pyx_v_quad_a, __pyx_v_quad_f, __pyx_v_w_dV_r, __pyx_v_u, __pyx_v_gradu, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_w_dV_m, __pyx_v_mt);
6974
6975 /* "cpostprocessing.pyx":71
6976 * <double*>(rt0vdofs.data))
6977 *
6978 * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
6979 * np.ndarray colind,
6980 * np.ndarray nFreeDOF_element,
6981*/
6982
6983 /* function exit code */
6984 goto __pyx_L0;
6985 __pyx_L1_error:;
6986 __pyx_r = NULL;
6987 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6988 Py_XDECREF(values[__pyx_temp]);
6989 }
6990 goto __pyx_L7_cleaned_up;
6991 __pyx_L0:;
6992 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6993 Py_XDECREF(values[__pyx_temp]);
6994 }
6995 __pyx_L7_cleaned_up:;
6996 __Pyx_RefNannyFinishContext();
6997 return __pyx_r;
6998}
6999
7000static PyObject *__pyx_pf_15cpostprocessing_2postProcessRT0velocityFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_nFreeDOF_element, PyArrayObject *__pyx_v_freeLocal_element, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_quad_f, PyArrayObject *__pyx_v_w_dV_r, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_w_dV_m, PyArrayObject *__pyx_v_mt) {
7001 PyObject *__pyx_r = NULL;
7002 __Pyx_RefNannyDeclarations
7003 int __pyx_t_1;
7004 int __pyx_t_2;
7005 __Pyx_RefNannySetupContext("postProcessRT0velocityFromP1nc_sd", 0);
7006
7007 /* "cpostprocessing.pyx":90
7008 * np.ndarray w_dV_m=None,
7009 * np.ndarray mt=None):
7010 * if mt is None and w_dV_m is not None: # <<<<<<<<<<<<<<
7011 * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
7012 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
7013*/
7014 __pyx_t_2 = (((PyObject *)__pyx_v_mt) == Py_None);
7015 if (__pyx_t_2) {
7016
7017 } else {
7018
7019 __pyx_t_1 = __pyx_t_2;
7020
7021 goto __pyx_L4_bool_binop_done;
7022 }
7023 __pyx_t_2 = (((PyObject *)__pyx_v_w_dV_m) != Py_None);
7024
7025 __pyx_t_1 = __pyx_t_2;
7026
7027 __pyx_L4_bool_binop_done:;
7028 if (__pyx_t_1) {
7029
7030
7031 /* "cpostprocessing.pyx":91
7032 * np.ndarray mt=None):
7033 * if mt is None and w_dV_m is not None:
7034 * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
7035 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
7036 * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
7037*/
7038 postProcessRT0velocityFromP1nc_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dV_r)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nFreeDOF_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_freeLocal_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_sqrt_det_g)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_m)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_mt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)));
7039
7040 /* "cpostprocessing.pyx":90
7041 * np.ndarray w_dV_m=None,
7042 * np.ndarray mt=None):
7043 * if mt is None and w_dV_m is not None: # <<<<<<<<<<<<<<
7044 * pp.postProcessRT0velocityFromP1nc_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/
7045 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
7046*/
7047 goto __pyx_L3;
7048 }
7049
7050 /* "cpostprocessing.pyx":117
7051 * <double*>(rt0vdofs.data))
7052 * else:
7053 * pp.postProcessRT0velocityFromP1ncNoMass_sd(gradu.shape[0],#/[inserted by cython to avoid comment start]*nElements_global*[inserted by cython to avoid comment closer]/ # <<<<<<<<<<<<<<
7054 * gradu.shape[1],#/[inserted by cython to avoid comment start]*nQuadraturePoints_element*[inserted by cython to avoid comment closer]/
7055 * w_dV_r.shape[2],#/[inserted by cython to avoid comment start]*nDOF_test_element*[inserted by cython to avoid comment closer]/
7056*/
7057 /*else*/ {
7058
7059 /* "cpostprocessing.pyx":139
7060 * <double*>(f.data),
7061 * <double*>(r.data),
7062 * <double*>(rt0vdofs.data)) # <<<<<<<<<<<<<<
7063 *
7064 * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ,
7065*/
7066 postProcessRT0velocityFromP1ncNoMass_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dV_r)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradu)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nFreeDOF_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_freeLocal_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_sqrt_det_g)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dV_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)));
7067 }
7068 __pyx_L3:;
7069
7070 /* "cpostprocessing.pyx":71
7071 * <double*>(rt0vdofs.data))
7072 *
7073 * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
7074 * np.ndarray colind,
7075 * np.ndarray nFreeDOF_element,
7076*/
7077
7078 /* function exit code */
7079 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7080 __Pyx_XGIVEREF(__pyx_r);
7081 __Pyx_RefNannyFinishContext();
7082 return __pyx_r;
7083}
7084
7085/* "cpostprocessing.pyx":141
7086 * <double*>(rt0vdofs.data))
7087 *
7088 * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ, # <<<<<<<<<<<<<<
7089 * np.ndarray quad_a,
7090 * np.ndarray phi,
7091*/
7092
7093/* Python wrapper */
7094static PyObject *__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc(PyObject *__pyx_self,
7095#if CYTHON_VECTORCALL
7096PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7097#else
7098PyObject *__pyx_args, PyObject *__pyx_kwds
7099#endif
7100); /*proto*/
7101static PyMethodDef __pyx_mdef_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc = {"updateRT0velocityWithAveragedPotentialP1nc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7102static PyObject *__pyx_pw_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc(PyObject *__pyx_self,
7103#if CYTHON_VECTORCALL
7104PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7105#else
7106PyObject *__pyx_args, PyObject *__pyx_kwds
7107#endif
7108) {
7109 PyArrayObject *__pyx_v_detJ = 0;
7110 PyArrayObject *__pyx_v_quad_a = 0;
7111 PyArrayObject *__pyx_v_phi = 0;
7112 PyArrayObject *__pyx_v_gradphi = 0;
7113 PyArrayObject *__pyx_v_a = 0;
7114 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7115 #if !CYTHON_VECTORCALL
7116 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7117 #endif
7118 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7119 PyObject* values[6] = {0,0,0,0,0,0};
7120 int __pyx_lineno = 0;
7121 const char *__pyx_filename = NULL;
7122 int __pyx_clineno = 0;
7123 PyObject *__pyx_r = 0;
7124 __Pyx_RefNannyDeclarations
7125 __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc (wrapper)", 0);
7126 #if !CYTHON_VECTORCALL
7127 #if CYTHON_ASSUME_SAFE_SIZE
7128 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7129 #else
7130 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7131 #endif
7132 #endif
7133 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7134 {
7135 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_quad_a,&__pyx_mstate_global->__pyx_n_u_phi,&__pyx_mstate_global->__pyx_n_u_gradphi,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,0};
7136 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7137 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 141, __pyx_L3_error)
7138 if (__pyx_kwds_len > 0) {
7139 switch (__pyx_nargs) {
7140 case 6:
7141 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7142 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 141, __pyx_L3_error)
7143 CYTHON_FALLTHROUGH;
7144 case 5:
7145 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7146 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 141, __pyx_L3_error)
7147 CYTHON_FALLTHROUGH;
7148 case 4:
7149 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7150 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 141, __pyx_L3_error)
7151 CYTHON_FALLTHROUGH;
7152 case 3:
7153 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7154 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 141, __pyx_L3_error)
7155 CYTHON_FALLTHROUGH;
7156 case 2:
7157 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7158 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 141, __pyx_L3_error)
7159 CYTHON_FALLTHROUGH;
7160 case 1:
7161 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7162 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 141, __pyx_L3_error)
7163 CYTHON_FALLTHROUGH;
7164 case 0: break;
7165 default: goto __pyx_L5_argtuple_error;
7166 }
7167 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7168 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateRT0velocityWithAveragedPotentialP1nc", 0) < (0)) __PYX_ERR(0, 141, __pyx_L3_error)
7169 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
7170 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, i); __PYX_ERR(0, 141, __pyx_L3_error) }
7171 }
7172 } else if (unlikely(__pyx_nargs != 6)) {
7173 goto __pyx_L5_argtuple_error;
7174 } else {
7175 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7176 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 141, __pyx_L3_error)
7177 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7178 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 141, __pyx_L3_error)
7179 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7180 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 141, __pyx_L3_error)
7181 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7182 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 141, __pyx_L3_error)
7183 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7184 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 141, __pyx_L3_error)
7185 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7186 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 141, __pyx_L3_error)
7187 }
7188 __pyx_v_detJ = ((PyArrayObject *)values[0]);
7189 __pyx_v_quad_a = ((PyArrayObject *)values[1]);
7190 __pyx_v_phi = ((PyArrayObject *)values[2]);
7191 __pyx_v_gradphi = ((PyArrayObject *)values[3]);
7192 __pyx_v_a = ((PyArrayObject *)values[4]);
7193 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[5]);
7194 }
7195 goto __pyx_L6_skip;
7196 __pyx_L5_argtuple_error:;
7197 __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 141, __pyx_L3_error)
7198 __pyx_L6_skip:;
7199 goto __pyx_L4_argument_unpacking_done;
7200 __pyx_L3_error:;
7201 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7202 Py_XDECREF(values[__pyx_temp]);
7203 }
7204 __Pyx_AddTraceback("cpostprocessing.updateRT0velocityWithAveragedPotentialP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
7205 __Pyx_RefNannyFinishContext();
7206 return NULL;
7207 __pyx_L4_argument_unpacking_done:;
7208 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 141, __pyx_L1_error)
7209 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 142, __pyx_L1_error)
7210 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 143, __pyx_L1_error)
7211 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradphi", 0))) __PYX_ERR(0, 144, __pyx_L1_error)
7212 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 145, __pyx_L1_error)
7213 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 146, __pyx_L1_error)
7214 __pyx_r = __pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(__pyx_self, __pyx_v_detJ, __pyx_v_quad_a, __pyx_v_phi, __pyx_v_gradphi, __pyx_v_a, __pyx_v_rt0vdofs_element);
7215
7216 /* function exit code */
7217 goto __pyx_L0;
7218 __pyx_L1_error:;
7219 __pyx_r = NULL;
7220 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7221 Py_XDECREF(values[__pyx_temp]);
7222 }
7223 goto __pyx_L7_cleaned_up;
7224 __pyx_L0:;
7225 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7226 Py_XDECREF(values[__pyx_temp]);
7227 }
7228 __pyx_L7_cleaned_up:;
7229 __Pyx_RefNannyFinishContext();
7230 return __pyx_r;
7231}
7232
7233static PyObject *__pyx_pf_15cpostprocessing_4updateRT0velocityWithAveragedPotentialP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element) {
7234 PyObject *__pyx_r = NULL;
7235 __Pyx_RefNannyDeclarations
7236 __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc", 0);
7237
7238 /* "cpostprocessing.pyx":147
7239 * np.ndarray a,
7240 * np.ndarray rt0vdofs_element):
7241 * pp.updateRT0velocityWithAveragedPotentialP1nc(a.shape[0], # <<<<<<<<<<<<<<
7242 * a.shape[1],
7243 * gradphi.shape[gradphi.ndim-1],
7244*/
7245 updateRT0velocityWithAveragedPotentialP1nc((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradphi)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_gradphi) - 1)]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)));
7246
7247 /* "cpostprocessing.pyx":141
7248 * <double*>(rt0vdofs.data))
7249 *
7250 * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ, # <<<<<<<<<<<<<<
7251 * np.ndarray quad_a,
7252 * np.ndarray phi,
7253*/
7254
7255 /* function exit code */
7256 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7257 __Pyx_XGIVEREF(__pyx_r);
7258 __Pyx_RefNannyFinishContext();
7259 return __pyx_r;
7260}
7261
7262/* "cpostprocessing.pyx":157
7263 * <double*>(rt0vdofs_element.data))
7264 *
7265 * def updateRT0velocityWithAveragedPotentialP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
7266 * np.ndarray colind,
7267 * np.ndarray detJ,
7268*/
7269
7270/* Python wrapper */
7271static PyObject *__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd(PyObject *__pyx_self,
7272#if CYTHON_VECTORCALL
7273PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7274#else
7275PyObject *__pyx_args, PyObject *__pyx_kwds
7276#endif
7277); /*proto*/
7278static PyMethodDef __pyx_mdef_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd = {"updateRT0velocityWithAveragedPotentialP1nc_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7279static PyObject *__pyx_pw_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd(PyObject *__pyx_self,
7280#if CYTHON_VECTORCALL
7281PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7282#else
7283PyObject *__pyx_args, PyObject *__pyx_kwds
7284#endif
7285) {
7286 PyArrayObject *__pyx_v_rowptr = 0;
7287 PyArrayObject *__pyx_v_colind = 0;
7288 PyArrayObject *__pyx_v_detJ = 0;
7289 PyArrayObject *__pyx_v_quad_a = 0;
7290 PyArrayObject *__pyx_v_phi = 0;
7291 PyArrayObject *__pyx_v_gradphi = 0;
7292 PyArrayObject *__pyx_v_a = 0;
7293 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7294 #if !CYTHON_VECTORCALL
7295 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7296 #endif
7297 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7298 PyObject* values[8] = {0,0,0,0,0,0,0,0};
7299 int __pyx_lineno = 0;
7300 const char *__pyx_filename = NULL;
7301 int __pyx_clineno = 0;
7302 PyObject *__pyx_r = 0;
7303 __Pyx_RefNannyDeclarations
7304 __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc_sd (wrapper)", 0);
7305 #if !CYTHON_VECTORCALL
7306 #if CYTHON_ASSUME_SAFE_SIZE
7307 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7308 #else
7309 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7310 #endif
7311 #endif
7312 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7313 {
7314 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_quad_a,&__pyx_mstate_global->__pyx_n_u_phi,&__pyx_mstate_global->__pyx_n_u_gradphi,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,0};
7315 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7316 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 157, __pyx_L3_error)
7317 if (__pyx_kwds_len > 0) {
7318 switch (__pyx_nargs) {
7319 case 8:
7320 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7321 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 157, __pyx_L3_error)
7322 CYTHON_FALLTHROUGH;
7323 case 7:
7324 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7325 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 157, __pyx_L3_error)
7326 CYTHON_FALLTHROUGH;
7327 case 6:
7328 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7329 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 157, __pyx_L3_error)
7330 CYTHON_FALLTHROUGH;
7331 case 5:
7332 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7333 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 157, __pyx_L3_error)
7334 CYTHON_FALLTHROUGH;
7335 case 4:
7336 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7337 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 157, __pyx_L3_error)
7338 CYTHON_FALLTHROUGH;
7339 case 3:
7340 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7341 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 157, __pyx_L3_error)
7342 CYTHON_FALLTHROUGH;
7343 case 2:
7344 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7345 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 157, __pyx_L3_error)
7346 CYTHON_FALLTHROUGH;
7347 case 1:
7348 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7349 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 157, __pyx_L3_error)
7350 CYTHON_FALLTHROUGH;
7351 case 0: break;
7352 default: goto __pyx_L5_argtuple_error;
7353 }
7354 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7355 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateRT0velocityWithAveragedPotentialP1nc_sd", 0) < (0)) __PYX_ERR(0, 157, __pyx_L3_error)
7356 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
7357 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, i); __PYX_ERR(0, 157, __pyx_L3_error) }
7358 }
7359 } else if (unlikely(__pyx_nargs != 8)) {
7360 goto __pyx_L5_argtuple_error;
7361 } else {
7362 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7363 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 157, __pyx_L3_error)
7364 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7365 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 157, __pyx_L3_error)
7366 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7367 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 157, __pyx_L3_error)
7368 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7369 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 157, __pyx_L3_error)
7370 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7371 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 157, __pyx_L3_error)
7372 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7373 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 157, __pyx_L3_error)
7374 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7375 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 157, __pyx_L3_error)
7376 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7377 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 157, __pyx_L3_error)
7378 }
7379 __pyx_v_rowptr = ((PyArrayObject *)values[0]);
7380 __pyx_v_colind = ((PyArrayObject *)values[1]);
7381 __pyx_v_detJ = ((PyArrayObject *)values[2]);
7382 __pyx_v_quad_a = ((PyArrayObject *)values[3]);
7383 __pyx_v_phi = ((PyArrayObject *)values[4]);
7384 __pyx_v_gradphi = ((PyArrayObject *)values[5]);
7385 __pyx_v_a = ((PyArrayObject *)values[6]);
7386 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[7]);
7387 }
7388 goto __pyx_L6_skip;
7389 __pyx_L5_argtuple_error:;
7390 __Pyx_RaiseArgtupleInvalid("updateRT0velocityWithAveragedPotentialP1nc_sd", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 157, __pyx_L3_error)
7391 __pyx_L6_skip:;
7392 goto __pyx_L4_argument_unpacking_done;
7393 __pyx_L3_error:;
7394 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7395 Py_XDECREF(values[__pyx_temp]);
7396 }
7397 __Pyx_AddTraceback("cpostprocessing.updateRT0velocityWithAveragedPotentialP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
7398 __Pyx_RefNannyFinishContext();
7399 return NULL;
7400 __pyx_L4_argument_unpacking_done:;
7401 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 157, __pyx_L1_error)
7402 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 158, __pyx_L1_error)
7403 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 159, __pyx_L1_error)
7404 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "quad_a", 0))) __PYX_ERR(0, 160, __pyx_L1_error)
7405 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "phi", 0))) __PYX_ERR(0, 161, __pyx_L1_error)
7406 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradphi", 0))) __PYX_ERR(0, 162, __pyx_L1_error)
7407 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 163, __pyx_L1_error)
7408 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 164, __pyx_L1_error)
7409 __pyx_r = __pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_detJ, __pyx_v_quad_a, __pyx_v_phi, __pyx_v_gradphi, __pyx_v_a, __pyx_v_rt0vdofs_element);
7410
7411 /* function exit code */
7412 goto __pyx_L0;
7413 __pyx_L1_error:;
7414 __pyx_r = NULL;
7415 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7416 Py_XDECREF(values[__pyx_temp]);
7417 }
7418 goto __pyx_L7_cleaned_up;
7419 __pyx_L0:;
7420 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7421 Py_XDECREF(values[__pyx_temp]);
7422 }
7423 __pyx_L7_cleaned_up:;
7424 __Pyx_RefNannyFinishContext();
7425 return __pyx_r;
7426}
7427
7428static PyObject *__pyx_pf_15cpostprocessing_6updateRT0velocityWithAveragedPotentialP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_detJ, PyArrayObject *__pyx_v_quad_a, PyArrayObject *__pyx_v_phi, PyArrayObject *__pyx_v_gradphi, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_rt0vdofs_element) {
7429 PyObject *__pyx_r = NULL;
7430 __Pyx_RefNannyDeclarations
7431 __Pyx_RefNannySetupContext("updateRT0velocityWithAveragedPotentialP1nc_sd", 0);
7432
7433 /* "cpostprocessing.pyx":165
7434 * np.ndarray a,
7435 * np.ndarray rt0vdofs_element):
7436 * pp.updateRT0velocityWithAveragedPotentialP1nc_sd(a.shape[0], # <<<<<<<<<<<<<<
7437 * a.shape[1],
7438 * gradphi.shape[gradphi.ndim-1],
7439*/
7440 updateRT0velocityWithAveragedPotentialP1nc_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_gradphi)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_gradphi) - 1)]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_quad_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)));
7441
7442 /* "cpostprocessing.pyx":157
7443 * <double*>(rt0vdofs_element.data))
7444 *
7445 * def updateRT0velocityWithAveragedPotentialP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
7446 * np.ndarray colind,
7447 * np.ndarray detJ,
7448*/
7449
7450 /* function exit code */
7451 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7452 __Pyx_XGIVEREF(__pyx_r);
7453 __Pyx_RefNannyFinishContext();
7454 return __pyx_r;
7455}
7456
7457/* "cpostprocessing.pyx":177
7458 * <double*>(rt0vdofs_element.data))
7459 *
7460 * def getElementRT0velocityValues(np.ndarray x_element, # <<<<<<<<<<<<<<
7461 * np.ndarray rt0vdofs_element,
7462 * np.ndarray v_element):
7463*/
7464
7465/* Python wrapper */
7466static PyObject *__pyx_pw_15cpostprocessing_9getElementRT0velocityValues(PyObject *__pyx_self,
7467#if CYTHON_VECTORCALL
7468PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7469#else
7470PyObject *__pyx_args, PyObject *__pyx_kwds
7471#endif
7472); /*proto*/
7473static PyMethodDef __pyx_mdef_15cpostprocessing_9getElementRT0velocityValues = {"getElementRT0velocityValues", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_9getElementRT0velocityValues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7474static PyObject *__pyx_pw_15cpostprocessing_9getElementRT0velocityValues(PyObject *__pyx_self,
7475#if CYTHON_VECTORCALL
7476PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7477#else
7478PyObject *__pyx_args, PyObject *__pyx_kwds
7479#endif
7480) {
7481 PyArrayObject *__pyx_v_x_element = 0;
7482 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7483 PyArrayObject *__pyx_v_v_element = 0;
7484 #if !CYTHON_VECTORCALL
7485 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7486 #endif
7487 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7488 PyObject* values[3] = {0,0,0};
7489 int __pyx_lineno = 0;
7490 const char *__pyx_filename = NULL;
7491 int __pyx_clineno = 0;
7492 PyObject *__pyx_r = 0;
7493 __Pyx_RefNannyDeclarations
7494 __Pyx_RefNannySetupContext("getElementRT0velocityValues (wrapper)", 0);
7495 #if !CYTHON_VECTORCALL
7496 #if CYTHON_ASSUME_SAFE_SIZE
7497 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7498 #else
7499 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7500 #endif
7501 #endif
7502 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7503 {
7504 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x_element,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_element,0};
7505 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7506 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 177, __pyx_L3_error)
7507 if (__pyx_kwds_len > 0) {
7508 switch (__pyx_nargs) {
7509 case 3:
7510 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7511 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 177, __pyx_L3_error)
7512 CYTHON_FALLTHROUGH;
7513 case 2:
7514 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7515 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 177, __pyx_L3_error)
7516 CYTHON_FALLTHROUGH;
7517 case 1:
7518 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7519 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 177, __pyx_L3_error)
7520 CYTHON_FALLTHROUGH;
7521 case 0: break;
7522 default: goto __pyx_L5_argtuple_error;
7523 }
7524 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7525 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementRT0velocityValues", 0) < (0)) __PYX_ERR(0, 177, __pyx_L3_error)
7526 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
7527 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValues", 1, 3, 3, i); __PYX_ERR(0, 177, __pyx_L3_error) }
7528 }
7529 } else if (unlikely(__pyx_nargs != 3)) {
7530 goto __pyx_L5_argtuple_error;
7531 } else {
7532 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7533 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 177, __pyx_L3_error)
7534 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7535 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 177, __pyx_L3_error)
7536 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7537 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 177, __pyx_L3_error)
7538 }
7539 __pyx_v_x_element = ((PyArrayObject *)values[0]);
7540 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[1]);
7541 __pyx_v_v_element = ((PyArrayObject *)values[2]);
7542 }
7543 goto __pyx_L6_skip;
7544 __pyx_L5_argtuple_error:;
7545 __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValues", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 177, __pyx_L3_error)
7546 __pyx_L6_skip:;
7547 goto __pyx_L4_argument_unpacking_done;
7548 __pyx_L3_error:;
7549 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7550 Py_XDECREF(values[__pyx_temp]);
7551 }
7552 __Pyx_AddTraceback("cpostprocessing.getElementRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
7553 __Pyx_RefNannyFinishContext();
7554 return NULL;
7555 __pyx_L4_argument_unpacking_done:;
7556 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_element", 0))) __PYX_ERR(0, 177, __pyx_L1_error)
7557 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 178, __pyx_L1_error)
7558 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_element", 0))) __PYX_ERR(0, 179, __pyx_L1_error)
7559 __pyx_r = __pyx_pf_15cpostprocessing_8getElementRT0velocityValues(__pyx_self, __pyx_v_x_element, __pyx_v_rt0vdofs_element, __pyx_v_v_element);
7560
7561 /* function exit code */
7562 goto __pyx_L0;
7563 __pyx_L1_error:;
7564 __pyx_r = NULL;
7565 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7566 Py_XDECREF(values[__pyx_temp]);
7567 }
7568 goto __pyx_L7_cleaned_up;
7569 __pyx_L0:;
7570 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7571 Py_XDECREF(values[__pyx_temp]);
7572 }
7573 __pyx_L7_cleaned_up:;
7574 __Pyx_RefNannyFinishContext();
7575 return __pyx_r;
7576}
7577
7578static PyObject *__pyx_pf_15cpostprocessing_8getElementRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element) {
7579 PyObject *__pyx_r = NULL;
7580 __Pyx_RefNannyDeclarations
7581 __Pyx_RefNannySetupContext("getElementRT0velocityValues", 0);
7582
7583 /* "cpostprocessing.pyx":180
7584 * np.ndarray rt0vdofs_element,
7585 * np.ndarray v_element):
7586 * pp.getElementRT0velocityValues(v_element.shape[0], # <<<<<<<<<<<<<<
7587 * v_element.shape[1],
7588 * v_element.shape[2],
7589*/
7590 getElementRT0velocityValues((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_element)));
7591
7592 /* "cpostprocessing.pyx":177
7593 * <double*>(rt0vdofs_element.data))
7594 *
7595 * def getElementRT0velocityValues(np.ndarray x_element, # <<<<<<<<<<<<<<
7596 * np.ndarray rt0vdofs_element,
7597 * np.ndarray v_element):
7598*/
7599
7600 /* function exit code */
7601 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7602 __Pyx_XGIVEREF(__pyx_r);
7603 __Pyx_RefNannyFinishContext();
7604 return __pyx_r;
7605}
7606
7607/* "cpostprocessing.pyx":187
7608 * <double*>(v_element.data))
7609 *
7610 * def getElementBoundaryRT0velocityValues(np.ndarray x_elementBoundary, # <<<<<<<<<<<<<<
7611 * np.ndarray rt0vdofs_element,
7612 * np.ndarray v_elementBoundary):
7613*/
7614
7615/* Python wrapper */
7616static PyObject *__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7617#if CYTHON_VECTORCALL
7618PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7619#else
7620PyObject *__pyx_args, PyObject *__pyx_kwds
7621#endif
7622); /*proto*/
7623static PyMethodDef __pyx_mdef_15cpostprocessing_11getElementBoundaryRT0velocityValues = {"getElementBoundaryRT0velocityValues", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7624static PyObject *__pyx_pw_15cpostprocessing_11getElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7625#if CYTHON_VECTORCALL
7626PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7627#else
7628PyObject *__pyx_args, PyObject *__pyx_kwds
7629#endif
7630) {
7631 PyArrayObject *__pyx_v_x_elementBoundary = 0;
7632 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7633 PyArrayObject *__pyx_v_v_elementBoundary = 0;
7634 #if !CYTHON_VECTORCALL
7635 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7636 #endif
7637 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7638 PyObject* values[3] = {0,0,0};
7639 int __pyx_lineno = 0;
7640 const char *__pyx_filename = NULL;
7641 int __pyx_clineno = 0;
7642 PyObject *__pyx_r = 0;
7643 __Pyx_RefNannyDeclarations
7644 __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValues (wrapper)", 0);
7645 #if !CYTHON_VECTORCALL
7646 #if CYTHON_ASSUME_SAFE_SIZE
7647 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7648 #else
7649 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7650 #endif
7651 #endif
7652 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7653 {
7654 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_x_elementBoundary,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary,0};
7655 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7656 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 187, __pyx_L3_error)
7657 if (__pyx_kwds_len > 0) {
7658 switch (__pyx_nargs) {
7659 case 3:
7660 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7661 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 187, __pyx_L3_error)
7662 CYTHON_FALLTHROUGH;
7663 case 2:
7664 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7665 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 187, __pyx_L3_error)
7666 CYTHON_FALLTHROUGH;
7667 case 1:
7668 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7669 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 187, __pyx_L3_error)
7670 CYTHON_FALLTHROUGH;
7671 case 0: break;
7672 default: goto __pyx_L5_argtuple_error;
7673 }
7674 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7675 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementBoundaryRT0velocityValues", 0) < (0)) __PYX_ERR(0, 187, __pyx_L3_error)
7676 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
7677 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValues", 1, 3, 3, i); __PYX_ERR(0, 187, __pyx_L3_error) }
7678 }
7679 } else if (unlikely(__pyx_nargs != 3)) {
7680 goto __pyx_L5_argtuple_error;
7681 } else {
7682 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7683 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 187, __pyx_L3_error)
7684 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7685 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 187, __pyx_L3_error)
7686 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7687 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 187, __pyx_L3_error)
7688 }
7689 __pyx_v_x_elementBoundary = ((PyArrayObject *)values[0]);
7690 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[1]);
7691 __pyx_v_v_elementBoundary = ((PyArrayObject *)values[2]);
7692 }
7693 goto __pyx_L6_skip;
7694 __pyx_L5_argtuple_error:;
7695 __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValues", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 187, __pyx_L3_error)
7696 __pyx_L6_skip:;
7697 goto __pyx_L4_argument_unpacking_done;
7698 __pyx_L3_error:;
7699 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7700 Py_XDECREF(values[__pyx_temp]);
7701 }
7702 __Pyx_AddTraceback("cpostprocessing.getElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
7703 __Pyx_RefNannyFinishContext();
7704 return NULL;
7705 __pyx_L4_argument_unpacking_done:;
7706 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 187, __pyx_L1_error)
7707 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 188, __pyx_L1_error)
7708 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary", 0))) __PYX_ERR(0, 189, __pyx_L1_error)
7709 __pyx_r = __pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_x_elementBoundary, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary);
7710
7711 /* function exit code */
7712 goto __pyx_L0;
7713 __pyx_L1_error:;
7714 __pyx_r = NULL;
7715 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7716 Py_XDECREF(values[__pyx_temp]);
7717 }
7718 goto __pyx_L7_cleaned_up;
7719 __pyx_L0:;
7720 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7721 Py_XDECREF(values[__pyx_temp]);
7722 }
7723 __pyx_L7_cleaned_up:;
7724 __Pyx_RefNannyFinishContext();
7725 return __pyx_r;
7726}
7727
7728static PyObject *__pyx_pf_15cpostprocessing_10getElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary) {
7729 PyObject *__pyx_r = NULL;
7730 __Pyx_RefNannyDeclarations
7731 __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValues", 0);
7732
7733 /* "cpostprocessing.pyx":190
7734 * np.ndarray rt0vdofs_element,
7735 * np.ndarray v_elementBoundary):
7736 * pp.getElementBoundaryRT0velocityValues(v_elementBoundary.shape[0], # <<<<<<<<<<<<<<
7737 * v_elementBoundary.shape[1],
7738 * v_elementBoundary.shape[2],
7739*/
7740 getElementBoundaryRT0velocityValues((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[3]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary)));
7741
7742 /* "cpostprocessing.pyx":187
7743 * <double*>(v_element.data))
7744 *
7745 * def getElementBoundaryRT0velocityValues(np.ndarray x_elementBoundary, # <<<<<<<<<<<<<<
7746 * np.ndarray rt0vdofs_element,
7747 * np.ndarray v_elementBoundary):
7748*/
7749
7750 /* function exit code */
7751 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7752 __Pyx_XGIVEREF(__pyx_r);
7753 __Pyx_RefNannyFinishContext();
7754 return __pyx_r;
7755}
7756
7757/* "cpostprocessing.pyx":198
7758 * <double*>(v_elementBoundary.data))
7759 *
7760 * def getGlobalElementBoundaryRT0velocityValues(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
7761 * np.ndarray x_elementBoundary_global,
7762 * np.ndarray rt0vdofs_element,
7763*/
7764
7765/* Python wrapper */
7766static PyObject *__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7767#if CYTHON_VECTORCALL
7768PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7769#else
7770PyObject *__pyx_args, PyObject *__pyx_kwds
7771#endif
7772); /*proto*/
7773static PyMethodDef __pyx_mdef_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues = {"getGlobalElementBoundaryRT0velocityValues", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7774static PyObject *__pyx_pw_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7775#if CYTHON_VECTORCALL
7776PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7777#else
7778PyObject *__pyx_args, PyObject *__pyx_kwds
7779#endif
7780) {
7781 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
7782 PyArrayObject *__pyx_v_x_elementBoundary_global = 0;
7783 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7784 PyArrayObject *__pyx_v_v_elementBoundary_global = 0;
7785 #if !CYTHON_VECTORCALL
7786 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7787 #endif
7788 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7789 PyObject* values[4] = {0,0,0,0};
7790 int __pyx_lineno = 0;
7791 const char *__pyx_filename = NULL;
7792 int __pyx_clineno = 0;
7793 PyObject *__pyx_r = 0;
7794 __Pyx_RefNannyDeclarations
7795 __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValues (wrapper)", 0);
7796 #if !CYTHON_VECTORCALL
7797 #if CYTHON_ASSUME_SAFE_SIZE
7798 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7799 #else
7800 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7801 #endif
7802 #endif
7803 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7804 {
7805 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary_global,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary_global,0};
7806 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7807 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 198, __pyx_L3_error)
7808 if (__pyx_kwds_len > 0) {
7809 switch (__pyx_nargs) {
7810 case 4:
7811 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7812 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 198, __pyx_L3_error)
7813 CYTHON_FALLTHROUGH;
7814 case 3:
7815 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7816 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 198, __pyx_L3_error)
7817 CYTHON_FALLTHROUGH;
7818 case 2:
7819 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7820 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 198, __pyx_L3_error)
7821 CYTHON_FALLTHROUGH;
7822 case 1:
7823 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7824 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 198, __pyx_L3_error)
7825 CYTHON_FALLTHROUGH;
7826 case 0: break;
7827 default: goto __pyx_L5_argtuple_error;
7828 }
7829 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7830 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalElementBoundaryRT0velocityValues", 0) < (0)) __PYX_ERR(0, 198, __pyx_L3_error)
7831 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
7832 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, i); __PYX_ERR(0, 198, __pyx_L3_error) }
7833 }
7834 } else if (unlikely(__pyx_nargs != 4)) {
7835 goto __pyx_L5_argtuple_error;
7836 } else {
7837 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7838 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 198, __pyx_L3_error)
7839 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7840 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 198, __pyx_L3_error)
7841 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7842 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 198, __pyx_L3_error)
7843 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7844 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 198, __pyx_L3_error)
7845 }
7846 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
7847 __pyx_v_x_elementBoundary_global = ((PyArrayObject *)values[1]);
7848 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[2]);
7849 __pyx_v_v_elementBoundary_global = ((PyArrayObject *)values[3]);
7850 }
7851 goto __pyx_L6_skip;
7852 __pyx_L5_argtuple_error:;
7853 __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValues", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 198, __pyx_L3_error)
7854 __pyx_L6_skip:;
7855 goto __pyx_L4_argument_unpacking_done;
7856 __pyx_L3_error:;
7857 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7858 Py_XDECREF(values[__pyx_temp]);
7859 }
7860 __Pyx_AddTraceback("cpostprocessing.getGlobalElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
7861 __Pyx_RefNannyFinishContext();
7862 return NULL;
7863 __pyx_L4_argument_unpacking_done:;
7864 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 198, __pyx_L1_error)
7865 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary_global", 0))) __PYX_ERR(0, 199, __pyx_L1_error)
7866 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 200, __pyx_L1_error)
7867 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary_global", 0))) __PYX_ERR(0, 201, __pyx_L1_error)
7868 __pyx_r = __pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_x_elementBoundary_global, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary_global);
7869
7870 /* function exit code */
7871 goto __pyx_L0;
7872 __pyx_L1_error:;
7873 __pyx_r = NULL;
7874 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7875 Py_XDECREF(values[__pyx_temp]);
7876 }
7877 goto __pyx_L7_cleaned_up;
7878 __pyx_L0:;
7879 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7880 Py_XDECREF(values[__pyx_temp]);
7881 }
7882 __pyx_L7_cleaned_up:;
7883 __Pyx_RefNannyFinishContext();
7884 return __pyx_r;
7885}
7886
7887static PyObject *__pyx_pf_15cpostprocessing_12getGlobalElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global) {
7888 PyObject *__pyx_r = NULL;
7889 __Pyx_RefNannyDeclarations
7890 __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValues", 0);
7891
7892 /* "cpostprocessing.pyx":202
7893 * np.ndarray rt0vdofs_element,
7894 * np.ndarray v_elementBoundary_global):
7895 * pp.getGlobalElementBoundaryRT0velocityValues(v_elementBoundary_global.shape[0], # <<<<<<<<<<<<<<
7896 * v_elementBoundary_global.shape[1],
7897 * v_elementBoundary_global.shape[2],
7898*/
7899 getGlobalElementBoundaryRT0velocityValues((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary_global)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary_global)));
7900
7901 /* "cpostprocessing.pyx":198
7902 * <double*>(v_elementBoundary.data))
7903 *
7904 * def getGlobalElementBoundaryRT0velocityValues(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
7905 * np.ndarray x_elementBoundary_global,
7906 * np.ndarray rt0vdofs_element,
7907*/
7908
7909 /* function exit code */
7910 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7911 __Pyx_XGIVEREF(__pyx_r);
7912 __Pyx_RefNannyFinishContext();
7913 return __pyx_r;
7914}
7915
7916/* "cpostprocessing.pyx":210
7917 * <double*>(v_elementBoundary_global.data))
7918 *
7919 * def getGlobalExteriorElementBoundaryRT0velocityValues(np.ndarray exteriorElementBoundariesArray, # <<<<<<<<<<<<<<
7920 * np.ndarray elementBoundaryElementsArray,
7921 * np.ndarray x_elementBoundary_global,
7922*/
7923
7924/* Python wrapper */
7925static PyObject *__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7926#if CYTHON_VECTORCALL
7927PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7928#else
7929PyObject *__pyx_args, PyObject *__pyx_kwds
7930#endif
7931); /*proto*/
7932static PyMethodDef __pyx_mdef_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues = {"getGlobalExteriorElementBoundaryRT0velocityValues", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7933static PyObject *__pyx_pw_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues(PyObject *__pyx_self,
7934#if CYTHON_VECTORCALL
7935PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7936#else
7937PyObject *__pyx_args, PyObject *__pyx_kwds
7938#endif
7939) {
7940 PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
7941 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
7942 PyArrayObject *__pyx_v_x_elementBoundary_global = 0;
7943 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
7944 PyArrayObject *__pyx_v_v_elementBoundary_global = 0;
7945 #if !CYTHON_VECTORCALL
7946 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7947 #endif
7948 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7949 PyObject* values[5] = {0,0,0,0,0};
7950 int __pyx_lineno = 0;
7951 const char *__pyx_filename = NULL;
7952 int __pyx_clineno = 0;
7953 PyObject *__pyx_r = 0;
7954 __Pyx_RefNannyDeclarations
7955 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValues (wrapper)", 0);
7956 #if !CYTHON_VECTORCALL
7957 #if CYTHON_ASSUME_SAFE_SIZE
7958 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7959 #else
7960 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7961 #endif
7962 #endif
7963 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7964 {
7965 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary_global,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary_global,0};
7966 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7967 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 210, __pyx_L3_error)
7968 if (__pyx_kwds_len > 0) {
7969 switch (__pyx_nargs) {
7970 case 5:
7971 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7972 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 210, __pyx_L3_error)
7973 CYTHON_FALLTHROUGH;
7974 case 4:
7975 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7976 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 210, __pyx_L3_error)
7977 CYTHON_FALLTHROUGH;
7978 case 3:
7979 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7980 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 210, __pyx_L3_error)
7981 CYTHON_FALLTHROUGH;
7982 case 2:
7983 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7984 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 210, __pyx_L3_error)
7985 CYTHON_FALLTHROUGH;
7986 case 1:
7987 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7988 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 210, __pyx_L3_error)
7989 CYTHON_FALLTHROUGH;
7990 case 0: break;
7991 default: goto __pyx_L5_argtuple_error;
7992 }
7993 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7994 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalExteriorElementBoundaryRT0velocityValues", 0) < (0)) __PYX_ERR(0, 210, __pyx_L3_error)
7995 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
7996 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, i); __PYX_ERR(0, 210, __pyx_L3_error) }
7997 }
7998 } else if (unlikely(__pyx_nargs != 5)) {
7999 goto __pyx_L5_argtuple_error;
8000 } else {
8001 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 210, __pyx_L3_error)
8003 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8004 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 210, __pyx_L3_error)
8005 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 210, __pyx_L3_error)
8007 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8008 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 210, __pyx_L3_error)
8009 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8010 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 210, __pyx_L3_error)
8011 }
8012 __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[0]);
8013 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[1]);
8014 __pyx_v_x_elementBoundary_global = ((PyArrayObject *)values[2]);
8015 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[3]);
8016 __pyx_v_v_elementBoundary_global = ((PyArrayObject *)values[4]);
8017 }
8018 goto __pyx_L6_skip;
8019 __pyx_L5_argtuple_error:;
8020 __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValues", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 210, __pyx_L3_error)
8021 __pyx_L6_skip:;
8022 goto __pyx_L4_argument_unpacking_done;
8023 __pyx_L3_error:;
8024 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8025 Py_XDECREF(values[__pyx_temp]);
8026 }
8027 __Pyx_AddTraceback("cpostprocessing.getGlobalExteriorElementBoundaryRT0velocityValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
8028 __Pyx_RefNannyFinishContext();
8029 return NULL;
8030 __pyx_L4_argument_unpacking_done:;
8031 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 210, __pyx_L1_error)
8032 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 211, __pyx_L1_error)
8033 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary_global", 0))) __PYX_ERR(0, 212, __pyx_L1_error)
8034 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 213, __pyx_L1_error)
8035 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary_global", 0))) __PYX_ERR(0, 214, __pyx_L1_error)
8036 __pyx_r = __pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(__pyx_self, __pyx_v_exteriorElementBoundariesArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_x_elementBoundary_global, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary_global);
8037
8038 /* function exit code */
8039 goto __pyx_L0;
8040 __pyx_L1_error:;
8041 __pyx_r = NULL;
8042 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8043 Py_XDECREF(values[__pyx_temp]);
8044 }
8045 goto __pyx_L7_cleaned_up;
8046 __pyx_L0:;
8047 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8048 Py_XDECREF(values[__pyx_temp]);
8049 }
8050 __pyx_L7_cleaned_up:;
8051 __Pyx_RefNannyFinishContext();
8052 return __pyx_r;
8053}
8054
8055static PyObject *__pyx_pf_15cpostprocessing_14getGlobalExteriorElementBoundaryRT0velocityValues(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global) {
8056 PyObject *__pyx_r = NULL;
8057 __Pyx_RefNannyDeclarations
8058 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValues", 0);
8059
8060 /* "cpostprocessing.pyx":215
8061 * np.ndarray rt0vdofs_element,
8062 * np.ndarray v_elementBoundary_global):
8063 * pp.getGlobalExteriorElementBoundaryRT0velocityValues(exteriorElementBoundariesArray.shape[0], # <<<<<<<<<<<<<<
8064 * v_elementBoundary_global.shape[1],
8065 * v_elementBoundary_global.shape[2],
8066*/
8067 getGlobalExteriorElementBoundaryRT0velocityValues((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundariesArray)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary_global)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary_global)));
8068
8069 /* "cpostprocessing.pyx":210
8070 * <double*>(v_elementBoundary_global.data))
8071 *
8072 * def getGlobalExteriorElementBoundaryRT0velocityValues(np.ndarray exteriorElementBoundariesArray, # <<<<<<<<<<<<<<
8073 * np.ndarray elementBoundaryElementsArray,
8074 * np.ndarray x_elementBoundary_global,
8075*/
8076
8077 /* function exit code */
8078 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8079 __Pyx_XGIVEREF(__pyx_r);
8080 __Pyx_RefNannyFinishContext();
8081 return __pyx_r;
8082}
8083
8084/* "cpostprocessing.pyx":224
8085 * <double*>(v_elementBoundary_global.data))
8086 *
8087 * def postProcessRT0potentialFromP1nc(np.ndarray uQuadratureWeights_element, # <<<<<<<<<<<<<<
8088 * np.ndarray elementBarycenters,
8089 * np.ndarray aElementQuadWeights,
8090*/
8091
8092/* Python wrapper */
8093static PyObject *__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc(PyObject *__pyx_self,
8094#if CYTHON_VECTORCALL
8095PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8096#else
8097PyObject *__pyx_args, PyObject *__pyx_kwds
8098#endif
8099); /*proto*/
8100static PyMethodDef __pyx_mdef_15cpostprocessing_17postProcessRT0potentialFromP1nc = {"postProcessRT0potentialFromP1nc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8101static PyObject *__pyx_pw_15cpostprocessing_17postProcessRT0potentialFromP1nc(PyObject *__pyx_self,
8102#if CYTHON_VECTORCALL
8103PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8104#else
8105PyObject *__pyx_args, PyObject *__pyx_kwds
8106#endif
8107) {
8108 PyArrayObject *__pyx_v_uQuadratureWeights_element = 0;
8109 PyArrayObject *__pyx_v_elementBarycenters = 0;
8110 PyArrayObject *__pyx_v_aElementQuadWeights = 0;
8111 PyArrayObject *__pyx_v_detJ = 0;
8112 CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary = 0;
8113 PyArrayObject *__pyx_v_x = 0;
8114 PyArrayObject *__pyx_v_u = 0;
8115 PyArrayObject *__pyx_v_gradu = 0;
8116 PyArrayObject *__pyx_v_x_elementBoundary = 0;
8117 PyArrayObject *__pyx_v_u_elementBoundary = 0;
8118 PyArrayObject *__pyx_v_n = 0;
8119 PyArrayObject *__pyx_v_a = 0;
8120 PyArrayObject *__pyx_v_f = 0;
8121 PyArrayObject *__pyx_v_r = 0;
8122 PyArrayObject *__pyx_v_rt0vdofs = 0;
8123 PyArrayObject *__pyx_v_rt0potential = 0;
8124 #if !CYTHON_VECTORCALL
8125 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8126 #endif
8127 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8128 PyObject* values[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8129 int __pyx_lineno = 0;
8130 const char *__pyx_filename = NULL;
8131 int __pyx_clineno = 0;
8132 PyObject *__pyx_r = 0;
8133 __Pyx_RefNannyDeclarations
8134 __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc (wrapper)", 0);
8135 #if !CYTHON_VECTORCALL
8136 #if CYTHON_ASSUME_SAFE_SIZE
8137 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8138 #else
8139 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8140 #endif
8141 #endif
8142 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8143 {
8144 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_uQuadratureWeights_element,&__pyx_mstate_global->__pyx_n_u_elementBarycenters,&__pyx_mstate_global->__pyx_n_u_aElementQuadWeights,&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_uQuadratureWeights_elementBounda,&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_gradu,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary,&__pyx_mstate_global->__pyx_n_u_u_elementBoundary,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_r,&__pyx_mstate_global->__pyx_n_u_rt0vdofs,&__pyx_mstate_global->__pyx_n_u_rt0potential,0};
8145 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8146 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 224, __pyx_L3_error)
8147 if (__pyx_kwds_len > 0) {
8148 switch (__pyx_nargs) {
8149 case 16:
8150 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8151 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 224, __pyx_L3_error)
8152 CYTHON_FALLTHROUGH;
8153 case 15:
8154 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8155 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 224, __pyx_L3_error)
8156 CYTHON_FALLTHROUGH;
8157 case 14:
8158 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8159 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 224, __pyx_L3_error)
8160 CYTHON_FALLTHROUGH;
8161 case 13:
8162 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8163 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 224, __pyx_L3_error)
8164 CYTHON_FALLTHROUGH;
8165 case 12:
8166 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8167 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 224, __pyx_L3_error)
8168 CYTHON_FALLTHROUGH;
8169 case 11:
8170 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8171 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 224, __pyx_L3_error)
8172 CYTHON_FALLTHROUGH;
8173 case 10:
8174 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8175 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 224, __pyx_L3_error)
8176 CYTHON_FALLTHROUGH;
8177 case 9:
8178 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8179 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 224, __pyx_L3_error)
8180 CYTHON_FALLTHROUGH;
8181 case 8:
8182 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8183 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 224, __pyx_L3_error)
8184 CYTHON_FALLTHROUGH;
8185 case 7:
8186 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8187 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 224, __pyx_L3_error)
8188 CYTHON_FALLTHROUGH;
8189 case 6:
8190 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8191 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 224, __pyx_L3_error)
8192 CYTHON_FALLTHROUGH;
8193 case 5:
8194 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8195 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 224, __pyx_L3_error)
8196 CYTHON_FALLTHROUGH;
8197 case 4:
8198 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8199 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 224, __pyx_L3_error)
8200 CYTHON_FALLTHROUGH;
8201 case 3:
8202 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8203 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 224, __pyx_L3_error)
8204 CYTHON_FALLTHROUGH;
8205 case 2:
8206 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8207 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 224, __pyx_L3_error)
8208 CYTHON_FALLTHROUGH;
8209 case 1:
8210 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8211 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 224, __pyx_L3_error)
8212 CYTHON_FALLTHROUGH;
8213 case 0: break;
8214 default: goto __pyx_L5_argtuple_error;
8215 }
8216 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8217 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "postProcessRT0potentialFromP1nc", 0) < (0)) __PYX_ERR(0, 224, __pyx_L3_error)
8218 for (Py_ssize_t i = __pyx_nargs; i < 16; i++) {
8219 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, i); __PYX_ERR(0, 224, __pyx_L3_error) }
8220 }
8221 } else if (unlikely(__pyx_nargs != 16)) {
8222 goto __pyx_L5_argtuple_error;
8223 } else {
8224 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8225 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 224, __pyx_L3_error)
8226 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8227 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 224, __pyx_L3_error)
8228 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8229 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 224, __pyx_L3_error)
8230 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8231 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 224, __pyx_L3_error)
8232 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8233 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 224, __pyx_L3_error)
8234 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8235 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 224, __pyx_L3_error)
8236 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8237 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 224, __pyx_L3_error)
8238 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8239 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 224, __pyx_L3_error)
8240 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8241 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 224, __pyx_L3_error)
8242 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8243 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 224, __pyx_L3_error)
8244 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8245 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 224, __pyx_L3_error)
8246 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8247 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 224, __pyx_L3_error)
8248 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8249 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 224, __pyx_L3_error)
8250 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8251 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 224, __pyx_L3_error)
8252 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8253 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 224, __pyx_L3_error)
8254 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8255 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 224, __pyx_L3_error)
8256 }
8257 __pyx_v_uQuadratureWeights_element = ((PyArrayObject *)values[0]);
8258 __pyx_v_elementBarycenters = ((PyArrayObject *)values[1]);
8259 __pyx_v_aElementQuadWeights = ((PyArrayObject *)values[2]);
8260 __pyx_v_detJ = ((PyArrayObject *)values[3]);
8261 __pyx_v_uQuadratureWeights_elementBoundary = ((PyArrayObject *)values[4]);
8262 __pyx_v_x = ((PyArrayObject *)values[5]);
8263 __pyx_v_u = ((PyArrayObject *)values[6]);
8264 __pyx_v_gradu = ((PyArrayObject *)values[7]);
8265 __pyx_v_x_elementBoundary = ((PyArrayObject *)values[8]);
8266 __pyx_v_u_elementBoundary = ((PyArrayObject *)values[9]);
8267 __pyx_v_n = ((PyArrayObject *)values[10]);
8268 __pyx_v_a = ((PyArrayObject *)values[11]);
8269 __pyx_v_f = ((PyArrayObject *)values[12]);
8270 __pyx_v_r = ((PyArrayObject *)values[13]);
8271 __pyx_v_rt0vdofs = ((PyArrayObject *)values[14]);
8272 __pyx_v_rt0potential = ((PyArrayObject *)values[15]);
8273 }
8274 goto __pyx_L6_skip;
8275 __pyx_L5_argtuple_error:;
8276 __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc", 1, 16, 16, __pyx_nargs); __PYX_ERR(0, 224, __pyx_L3_error)
8277 __pyx_L6_skip:;
8278 goto __pyx_L4_argument_unpacking_done;
8279 __pyx_L3_error:;
8280 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8281 Py_XDECREF(values[__pyx_temp]);
8282 }
8283 __Pyx_AddTraceback("cpostprocessing.postProcessRT0potentialFromP1nc", __pyx_clineno, __pyx_lineno, __pyx_filename);
8284 __Pyx_RefNannyFinishContext();
8285 return NULL;
8286 __pyx_L4_argument_unpacking_done:;
8287 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_element", 0))) __PYX_ERR(0, 224, __pyx_L1_error)
8288 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 225, __pyx_L1_error)
8289 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aElementQuadWeights), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "aElementQuadWeights", 0))) __PYX_ERR(0, 226, __pyx_L1_error)
8290 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 227, __pyx_L1_error)
8291 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_elementBoundary", 0))) __PYX_ERR(0, 228, __pyx_L1_error)
8292 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 229, __pyx_L1_error)
8293 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 230, __pyx_L1_error)
8294 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 231, __pyx_L1_error)
8295 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 232, __pyx_L1_error)
8296 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u_elementBoundary", 0))) __PYX_ERR(0, 233, __pyx_L1_error)
8297 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 234, __pyx_L1_error)
8298 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 235, __pyx_L1_error)
8299 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 236, __pyx_L1_error)
8300 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 237, __pyx_L1_error)
8301 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 238, __pyx_L1_error)
8302 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0potential), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0potential", 0))) __PYX_ERR(0, 239, __pyx_L1_error)
8303 __pyx_r = __pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(__pyx_self, __pyx_v_uQuadratureWeights_element, __pyx_v_elementBarycenters, __pyx_v_aElementQuadWeights, __pyx_v_detJ, __pyx_v_uQuadratureWeights_elementBoundary, __pyx_v_x, __pyx_v_u, __pyx_v_gradu, __pyx_v_x_elementBoundary, __pyx_v_u_elementBoundary, __pyx_v_n, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_rt0potential);
8304
8305 /* function exit code */
8306 goto __pyx_L0;
8307 __pyx_L1_error:;
8308 __pyx_r = NULL;
8309 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8310 Py_XDECREF(values[__pyx_temp]);
8311 }
8312 goto __pyx_L7_cleaned_up;
8313 __pyx_L0:;
8314 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8315 Py_XDECREF(values[__pyx_temp]);
8316 }
8317 __pyx_L7_cleaned_up:;
8318 __Pyx_RefNannyFinishContext();
8319 return __pyx_r;
8320}
8321
8322static PyObject *__pyx_pf_15cpostprocessing_16postProcessRT0potentialFromP1nc(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential) {
8323 PyObject *__pyx_r = NULL;
8324 __Pyx_RefNannyDeclarations
8325 __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc", 0);
8326
8327 /* "cpostprocessing.pyx":240
8328 * np.ndarray rt0vdofs,
8329 * np.ndarray rt0potential):
8330 * pp.postProcessRT0potentialFromP1nc(u.shape[0], # <<<<<<<<<<<<<<
8331 * u.shape[1],
8332 * n.shape[1],
8333*/
8334 postProcessRT0potentialFromP1nc((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_u)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_u)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[3]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_uQuadratureWeights_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_aElementQuadWeights)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_uQuadratureWeights_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0potential)));
8335
8336 /* "cpostprocessing.pyx":224
8337 * <double*>(v_elementBoundary_global.data))
8338 *
8339 * def postProcessRT0potentialFromP1nc(np.ndarray uQuadratureWeights_element, # <<<<<<<<<<<<<<
8340 * np.ndarray elementBarycenters,
8341 * np.ndarray aElementQuadWeights,
8342*/
8343
8344 /* function exit code */
8345 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8346 __Pyx_XGIVEREF(__pyx_r);
8347 __Pyx_RefNannyFinishContext();
8348 return __pyx_r;
8349}
8350
8351/* "cpostprocessing.pyx":262
8352 * <double*>(rt0potential.data))
8353 *
8354 * def postProcessRT0potentialFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8355 * np.ndarray colind,
8356 * np.ndarray uQuadratureWeights_element,
8357*/
8358
8359/* Python wrapper */
8360static PyObject *__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd(PyObject *__pyx_self,
8361#if CYTHON_VECTORCALL
8362PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8363#else
8364PyObject *__pyx_args, PyObject *__pyx_kwds
8365#endif
8366); /*proto*/
8367static PyMethodDef __pyx_mdef_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd = {"postProcessRT0potentialFromP1nc_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8368static PyObject *__pyx_pw_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd(PyObject *__pyx_self,
8369#if CYTHON_VECTORCALL
8370PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8371#else
8372PyObject *__pyx_args, PyObject *__pyx_kwds
8373#endif
8374) {
8375 PyArrayObject *__pyx_v_rowptr = 0;
8376 PyArrayObject *__pyx_v_colind = 0;
8377 PyArrayObject *__pyx_v_uQuadratureWeights_element = 0;
8378 PyArrayObject *__pyx_v_elementBarycenters = 0;
8379 PyArrayObject *__pyx_v_aElementQuadWeights = 0;
8380 PyArrayObject *__pyx_v_detJ = 0;
8381 CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary = 0;
8382 PyArrayObject *__pyx_v_x = 0;
8383 PyArrayObject *__pyx_v_u = 0;
8384 PyArrayObject *__pyx_v_gradu = 0;
8385 PyArrayObject *__pyx_v_x_elementBoundary = 0;
8386 PyArrayObject *__pyx_v_u_elementBoundary = 0;
8387 PyArrayObject *__pyx_v_n = 0;
8388 PyArrayObject *__pyx_v_a = 0;
8389 PyArrayObject *__pyx_v_f = 0;
8390 PyArrayObject *__pyx_v_r = 0;
8391 PyArrayObject *__pyx_v_rt0vdofs = 0;
8392 PyArrayObject *__pyx_v_rt0potential = 0;
8393 #if !CYTHON_VECTORCALL
8394 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8395 #endif
8396 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8397 PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8398 int __pyx_lineno = 0;
8399 const char *__pyx_filename = NULL;
8400 int __pyx_clineno = 0;
8401 PyObject *__pyx_r = 0;
8402 __Pyx_RefNannyDeclarations
8403 __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc_sd (wrapper)", 0);
8404 #if !CYTHON_VECTORCALL
8405 #if CYTHON_ASSUME_SAFE_SIZE
8406 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8407 #else
8408 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8409 #endif
8410 #endif
8411 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8412 {
8413 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_uQuadratureWeights_element,&__pyx_mstate_global->__pyx_n_u_elementBarycenters,&__pyx_mstate_global->__pyx_n_u_aElementQuadWeights,&__pyx_mstate_global->__pyx_n_u_detJ,&__pyx_mstate_global->__pyx_n_u_uQuadratureWeights_elementBounda,&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_gradu,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary,&__pyx_mstate_global->__pyx_n_u_u_elementBoundary,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_r,&__pyx_mstate_global->__pyx_n_u_rt0vdofs,&__pyx_mstate_global->__pyx_n_u_rt0potential,0};
8414 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8415 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 262, __pyx_L3_error)
8416 if (__pyx_kwds_len > 0) {
8417 switch (__pyx_nargs) {
8418 case 18:
8419 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8420 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 262, __pyx_L3_error)
8421 CYTHON_FALLTHROUGH;
8422 case 17:
8423 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8424 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 262, __pyx_L3_error)
8425 CYTHON_FALLTHROUGH;
8426 case 16:
8427 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8428 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 262, __pyx_L3_error)
8429 CYTHON_FALLTHROUGH;
8430 case 15:
8431 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8432 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 262, __pyx_L3_error)
8433 CYTHON_FALLTHROUGH;
8434 case 14:
8435 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8436 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 262, __pyx_L3_error)
8437 CYTHON_FALLTHROUGH;
8438 case 13:
8439 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8440 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 262, __pyx_L3_error)
8441 CYTHON_FALLTHROUGH;
8442 case 12:
8443 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8444 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 262, __pyx_L3_error)
8445 CYTHON_FALLTHROUGH;
8446 case 11:
8447 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8448 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 262, __pyx_L3_error)
8449 CYTHON_FALLTHROUGH;
8450 case 10:
8451 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8452 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 262, __pyx_L3_error)
8453 CYTHON_FALLTHROUGH;
8454 case 9:
8455 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8456 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 262, __pyx_L3_error)
8457 CYTHON_FALLTHROUGH;
8458 case 8:
8459 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8460 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 262, __pyx_L3_error)
8461 CYTHON_FALLTHROUGH;
8462 case 7:
8463 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8464 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 262, __pyx_L3_error)
8465 CYTHON_FALLTHROUGH;
8466 case 6:
8467 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8468 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 262, __pyx_L3_error)
8469 CYTHON_FALLTHROUGH;
8470 case 5:
8471 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8472 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 262, __pyx_L3_error)
8473 CYTHON_FALLTHROUGH;
8474 case 4:
8475 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8476 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 262, __pyx_L3_error)
8477 CYTHON_FALLTHROUGH;
8478 case 3:
8479 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8480 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 262, __pyx_L3_error)
8481 CYTHON_FALLTHROUGH;
8482 case 2:
8483 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8484 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 262, __pyx_L3_error)
8485 CYTHON_FALLTHROUGH;
8486 case 1:
8487 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8488 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 262, __pyx_L3_error)
8489 CYTHON_FALLTHROUGH;
8490 case 0: break;
8491 default: goto __pyx_L5_argtuple_error;
8492 }
8493 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8494 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "postProcessRT0potentialFromP1nc_sd", 0) < (0)) __PYX_ERR(0, 262, __pyx_L3_error)
8495 for (Py_ssize_t i = __pyx_nargs; i < 18; i++) {
8496 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, i); __PYX_ERR(0, 262, __pyx_L3_error) }
8497 }
8498 } else if (unlikely(__pyx_nargs != 18)) {
8499 goto __pyx_L5_argtuple_error;
8500 } else {
8501 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8502 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 262, __pyx_L3_error)
8503 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8504 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 262, __pyx_L3_error)
8505 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8506 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 262, __pyx_L3_error)
8507 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8508 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 262, __pyx_L3_error)
8509 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8510 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 262, __pyx_L3_error)
8511 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8512 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 262, __pyx_L3_error)
8513 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8514 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 262, __pyx_L3_error)
8515 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8516 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 262, __pyx_L3_error)
8517 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8518 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 262, __pyx_L3_error)
8519 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8520 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 262, __pyx_L3_error)
8521 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8522 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 262, __pyx_L3_error)
8523 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8524 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 262, __pyx_L3_error)
8525 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8526 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 262, __pyx_L3_error)
8527 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8528 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 262, __pyx_L3_error)
8529 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8530 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 262, __pyx_L3_error)
8531 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8532 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 262, __pyx_L3_error)
8533 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8534 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 262, __pyx_L3_error)
8535 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8536 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 262, __pyx_L3_error)
8537 }
8538 __pyx_v_rowptr = ((PyArrayObject *)values[0]);
8539 __pyx_v_colind = ((PyArrayObject *)values[1]);
8540 __pyx_v_uQuadratureWeights_element = ((PyArrayObject *)values[2]);
8541 __pyx_v_elementBarycenters = ((PyArrayObject *)values[3]);
8542 __pyx_v_aElementQuadWeights = ((PyArrayObject *)values[4]);
8543 __pyx_v_detJ = ((PyArrayObject *)values[5]);
8544 __pyx_v_uQuadratureWeights_elementBoundary = ((PyArrayObject *)values[6]);
8545 __pyx_v_x = ((PyArrayObject *)values[7]);
8546 __pyx_v_u = ((PyArrayObject *)values[8]);
8547 __pyx_v_gradu = ((PyArrayObject *)values[9]);
8548 __pyx_v_x_elementBoundary = ((PyArrayObject *)values[10]);
8549 __pyx_v_u_elementBoundary = ((PyArrayObject *)values[11]);
8550 __pyx_v_n = ((PyArrayObject *)values[12]);
8551 __pyx_v_a = ((PyArrayObject *)values[13]);
8552 __pyx_v_f = ((PyArrayObject *)values[14]);
8553 __pyx_v_r = ((PyArrayObject *)values[15]);
8554 __pyx_v_rt0vdofs = ((PyArrayObject *)values[16]);
8555 __pyx_v_rt0potential = ((PyArrayObject *)values[17]);
8556 }
8557 goto __pyx_L6_skip;
8558 __pyx_L5_argtuple_error:;
8559 __Pyx_RaiseArgtupleInvalid("postProcessRT0potentialFromP1nc_sd", 1, 18, 18, __pyx_nargs); __PYX_ERR(0, 262, __pyx_L3_error)
8560 __pyx_L6_skip:;
8561 goto __pyx_L4_argument_unpacking_done;
8562 __pyx_L3_error:;
8563 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8564 Py_XDECREF(values[__pyx_temp]);
8565 }
8566 __Pyx_AddTraceback("cpostprocessing.postProcessRT0potentialFromP1nc_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
8567 __Pyx_RefNannyFinishContext();
8568 return NULL;
8569 __pyx_L4_argument_unpacking_done:;
8570 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 262, __pyx_L1_error)
8571 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 263, __pyx_L1_error)
8572 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_element", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
8573 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBarycenters), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBarycenters", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
8574 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aElementQuadWeights), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "aElementQuadWeights", 0))) __PYX_ERR(0, 266, __pyx_L1_error)
8575 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_detJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "detJ", 0))) __PYX_ERR(0, 267, __pyx_L1_error)
8576 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uQuadratureWeights_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "uQuadratureWeights_elementBoundary", 0))) __PYX_ERR(0, 268, __pyx_L1_error)
8577 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 269, __pyx_L1_error)
8578 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 270, __pyx_L1_error)
8579 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gradu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "gradu", 0))) __PYX_ERR(0, 271, __pyx_L1_error)
8580 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 272, __pyx_L1_error)
8581 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u_elementBoundary", 0))) __PYX_ERR(0, 273, __pyx_L1_error)
8582 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 274, __pyx_L1_error)
8583 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 275, __pyx_L1_error)
8584 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 276, __pyx_L1_error)
8585 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "r", 0))) __PYX_ERR(0, 277, __pyx_L1_error)
8586 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs", 0))) __PYX_ERR(0, 278, __pyx_L1_error)
8587 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0potential), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0potential", 0))) __PYX_ERR(0, 279, __pyx_L1_error)
8588 __pyx_r = __pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_uQuadratureWeights_element, __pyx_v_elementBarycenters, __pyx_v_aElementQuadWeights, __pyx_v_detJ, __pyx_v_uQuadratureWeights_elementBoundary, __pyx_v_x, __pyx_v_u, __pyx_v_gradu, __pyx_v_x_elementBoundary, __pyx_v_u_elementBoundary, __pyx_v_n, __pyx_v_a, __pyx_v_f, __pyx_v_r, __pyx_v_rt0vdofs, __pyx_v_rt0potential);
8589
8590 /* function exit code */
8591 goto __pyx_L0;
8592 __pyx_L1_error:;
8593 __pyx_r = NULL;
8594 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8595 Py_XDECREF(values[__pyx_temp]);
8596 }
8597 goto __pyx_L7_cleaned_up;
8598 __pyx_L0:;
8599 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8600 Py_XDECREF(values[__pyx_temp]);
8601 }
8602 __pyx_L7_cleaned_up:;
8603 __Pyx_RefNannyFinishContext();
8604 return __pyx_r;
8605}
8606
8607static PyObject *__pyx_pf_15cpostprocessing_18postProcessRT0potentialFromP1nc_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_uQuadratureWeights_element, PyArrayObject *__pyx_v_elementBarycenters, PyArrayObject *__pyx_v_aElementQuadWeights, PyArrayObject *__pyx_v_detJ, CYTHON_UNUSED PyArrayObject *__pyx_v_uQuadratureWeights_elementBoundary, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_gradu, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_u_elementBoundary, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_r, PyArrayObject *__pyx_v_rt0vdofs, PyArrayObject *__pyx_v_rt0potential) {
8608 PyObject *__pyx_r = NULL;
8609 __Pyx_RefNannyDeclarations
8610 __Pyx_RefNannySetupContext("postProcessRT0potentialFromP1nc_sd", 0);
8611
8612 /* "cpostprocessing.pyx":280
8613 * np.ndarray rt0vdofs,
8614 * np.ndarray rt0potential):
8615 * pp.postProcessRT0potentialFromP1nc_sd(u.shape[0], # <<<<<<<<<<<<<<
8616 * u.shape[1],
8617 * n.shape[1],
8618*/
8619 postProcessRT0potentialFromP1nc_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_u)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_u)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[3]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_uQuadratureWeights_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBarycenters)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_aElementQuadWeights)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_detJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_uQuadratureWeights_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_gradu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_r)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0potential)));
8620
8621 /* "cpostprocessing.pyx":262
8622 * <double*>(rt0potential.data))
8623 *
8624 * def postProcessRT0potentialFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
8625 * np.ndarray colind,
8626 * np.ndarray uQuadratureWeights_element,
8627*/
8628
8629 /* function exit code */
8630 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8631 __Pyx_XGIVEREF(__pyx_r);
8632 __Pyx_RefNannyFinishContext();
8633 return __pyx_r;
8634}
8635
8636/* "cpostprocessing.pyx":304
8637 * <double*>(rt0potential.data))
8638 *
8639 * def buildLocalBDM1projectionMatrices(np.ndarray w_dS_f, # <<<<<<<<<<<<<<
8640 * np.ndarray ebq_n,
8641 * np.ndarray ebq_v,
8642*/
8643
8644/* Python wrapper */
8645static PyObject *__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices(PyObject *__pyx_self,
8646#if CYTHON_VECTORCALL
8647PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8648#else
8649PyObject *__pyx_args, PyObject *__pyx_kwds
8650#endif
8651); /*proto*/
8652static PyMethodDef __pyx_mdef_15cpostprocessing_21buildLocalBDM1projectionMatrices = {"buildLocalBDM1projectionMatrices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8653static PyObject *__pyx_pw_15cpostprocessing_21buildLocalBDM1projectionMatrices(PyObject *__pyx_self,
8654#if CYTHON_VECTORCALL
8655PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8656#else
8657PyObject *__pyx_args, PyObject *__pyx_kwds
8658#endif
8659) {
8660 PyArrayObject *__pyx_v_w_dS_f = 0;
8661 PyArrayObject *__pyx_v_ebq_n = 0;
8662 PyArrayObject *__pyx_v_ebq_v = 0;
8663 PyArrayObject *__pyx_v_BDMmat_element = 0;
8664 #if !CYTHON_VECTORCALL
8665 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8666 #endif
8667 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8668 PyObject* values[4] = {0,0,0,0};
8669 int __pyx_lineno = 0;
8670 const char *__pyx_filename = NULL;
8671 int __pyx_clineno = 0;
8672 PyObject *__pyx_r = 0;
8673 __Pyx_RefNannyDeclarations
8674 __Pyx_RefNannySetupContext("buildLocalBDM1projectionMatrices (wrapper)", 0);
8675 #if !CYTHON_VECTORCALL
8676 #if CYTHON_ASSUME_SAFE_SIZE
8677 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8678 #else
8679 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8680 #endif
8681 #endif
8682 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8683 {
8684 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_n,&__pyx_mstate_global->__pyx_n_u_ebq_v,&__pyx_mstate_global->__pyx_n_u_BDMmat_element,0};
8685 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8686 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 304, __pyx_L3_error)
8687 if (__pyx_kwds_len > 0) {
8688 switch (__pyx_nargs) {
8689 case 4:
8690 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8691 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 304, __pyx_L3_error)
8692 CYTHON_FALLTHROUGH;
8693 case 3:
8694 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8695 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 304, __pyx_L3_error)
8696 CYTHON_FALLTHROUGH;
8697 case 2:
8698 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8699 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 304, __pyx_L3_error)
8700 CYTHON_FALLTHROUGH;
8701 case 1:
8702 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8703 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 304, __pyx_L3_error)
8704 CYTHON_FALLTHROUGH;
8705 case 0: break;
8706 default: goto __pyx_L5_argtuple_error;
8707 }
8708 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8709 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "buildLocalBDM1projectionMatrices", 0) < (0)) __PYX_ERR(0, 304, __pyx_L3_error)
8710 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
8711 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, i); __PYX_ERR(0, 304, __pyx_L3_error) }
8712 }
8713 } else if (unlikely(__pyx_nargs != 4)) {
8714 goto __pyx_L5_argtuple_error;
8715 } else {
8716 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8717 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 304, __pyx_L3_error)
8718 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8719 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 304, __pyx_L3_error)
8720 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8721 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 304, __pyx_L3_error)
8722 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8723 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 304, __pyx_L3_error)
8724 }
8725 __pyx_v_w_dS_f = ((PyArrayObject *)values[0]);
8726 __pyx_v_ebq_n = ((PyArrayObject *)values[1]);
8727 __pyx_v_ebq_v = ((PyArrayObject *)values[2]);
8728 __pyx_v_BDMmat_element = ((PyArrayObject *)values[3]);
8729 }
8730 goto __pyx_L6_skip;
8731 __pyx_L5_argtuple_error:;
8732 __Pyx_RaiseArgtupleInvalid("buildLocalBDM1projectionMatrices", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 304, __pyx_L3_error)
8733 __pyx_L6_skip:;
8734 goto __pyx_L4_argument_unpacking_done;
8735 __pyx_L3_error:;
8736 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8737 Py_XDECREF(values[__pyx_temp]);
8738 }
8739 __Pyx_AddTraceback("cpostprocessing.buildLocalBDM1projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
8740 __Pyx_RefNannyFinishContext();
8741 return NULL;
8742 __pyx_L4_argument_unpacking_done:;
8743 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 304, __pyx_L1_error)
8744 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 305, __pyx_L1_error)
8745 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v", 0))) __PYX_ERR(0, 306, __pyx_L1_error)
8746 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 307, __pyx_L1_error)
8747 __pyx_r = __pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(__pyx_self, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_v, __pyx_v_BDMmat_element);
8748
8749 /* function exit code */
8750 goto __pyx_L0;
8751 __pyx_L1_error:;
8752 __pyx_r = NULL;
8753 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8754 Py_XDECREF(values[__pyx_temp]);
8755 }
8756 goto __pyx_L7_cleaned_up;
8757 __pyx_L0:;
8758 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8759 Py_XDECREF(values[__pyx_temp]);
8760 }
8761 __pyx_L7_cleaned_up:;
8762 __Pyx_RefNannyFinishContext();
8763 return __pyx_r;
8764}
8765
8766static PyObject *__pyx_pf_15cpostprocessing_20buildLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_BDMmat_element) {
8767 PyObject *__pyx_r = NULL;
8768 __Pyx_RefNannyDeclarations
8769 __Pyx_RefNannySetupContext("buildLocalBDM1projectionMatrices", 0);
8770
8771 /* "cpostprocessing.pyx":308
8772 * np.ndarray ebq_v,
8773 * np.ndarray BDMmat_element):
8774 * pp.buildLocalBDM1projectionMatrices(ebq_n.shape[0], # <<<<<<<<<<<<<<
8775 * ebq_n.shape[1],
8776 * ebq_n.shape[2],
8777*/
8778 buildLocalBDM1projectionMatrices((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)));
8779
8780 /* "cpostprocessing.pyx":304
8781 * <double*>(rt0potential.data))
8782 *
8783 * def buildLocalBDM1projectionMatrices(np.ndarray w_dS_f, # <<<<<<<<<<<<<<
8784 * np.ndarray ebq_n,
8785 * np.ndarray ebq_v,
8786*/
8787
8788 /* function exit code */
8789 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8790 __Pyx_XGIVEREF(__pyx_r);
8791 __Pyx_RefNannyFinishContext();
8792 return __pyx_r;
8793}
8794
8795/* "cpostprocessing.pyx":320
8796 * <double*>(BDMmat_element.data))
8797 *
8798 * def buildLocalBDM2projectionMatrices(int degree, # <<<<<<<<<<<<<<
8799 * np.ndarray w_dS_f,
8800 * np.ndarray ebq_n,
8801*/
8802
8803/* Python wrapper */
8804static PyObject *__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices(PyObject *__pyx_self,
8805#if CYTHON_VECTORCALL
8806PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8807#else
8808PyObject *__pyx_args, PyObject *__pyx_kwds
8809#endif
8810); /*proto*/
8811static PyMethodDef __pyx_mdef_15cpostprocessing_23buildLocalBDM2projectionMatrices = {"buildLocalBDM2projectionMatrices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8812static PyObject *__pyx_pw_15cpostprocessing_23buildLocalBDM2projectionMatrices(PyObject *__pyx_self,
8813#if CYTHON_VECTORCALL
8814PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8815#else
8816PyObject *__pyx_args, PyObject *__pyx_kwds
8817#endif
8818) {
8819 int __pyx_v_degree;
8820 PyArrayObject *__pyx_v_w_dS_f = 0;
8821 PyArrayObject *__pyx_v_ebq_n = 0;
8822 PyArrayObject *__pyx_v_ebq_v = 0;
8823 PyArrayObject *__pyx_v_q_basis_vals = 0;
8824 PyArrayObject *__pyx_v_w_int_test_grads = 0;
8825 PyArrayObject *__pyx_v_w_int_div_free = 0;
8826 PyArrayObject *__pyx_v_piola_trial_fun = 0;
8827 PyArrayObject *__pyx_v_edgeFlags = 0;
8828 PyArrayObject *__pyx_v_BDMmat_element = 0;
8829 #if !CYTHON_VECTORCALL
8830 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8831 #endif
8832 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8833 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
8834 int __pyx_lineno = 0;
8835 const char *__pyx_filename = NULL;
8836 int __pyx_clineno = 0;
8837 PyObject *__pyx_r = 0;
8838 __Pyx_RefNannyDeclarations
8839 __Pyx_RefNannySetupContext("buildLocalBDM2projectionMatrices (wrapper)", 0);
8840 #if !CYTHON_VECTORCALL
8841 #if CYTHON_ASSUME_SAFE_SIZE
8842 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8843 #else
8844 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8845 #endif
8846 #endif
8847 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8848 {
8849 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_degree,&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_n,&__pyx_mstate_global->__pyx_n_u_ebq_v,&__pyx_mstate_global->__pyx_n_u_q_basis_vals,&__pyx_mstate_global->__pyx_n_u_w_int_test_grads,&__pyx_mstate_global->__pyx_n_u_w_int_div_free,&__pyx_mstate_global->__pyx_n_u_piola_trial_fun,&__pyx_mstate_global->__pyx_n_u_edgeFlags,&__pyx_mstate_global->__pyx_n_u_BDMmat_element,0};
8850 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8851 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 320, __pyx_L3_error)
8852 if (__pyx_kwds_len > 0) {
8853 switch (__pyx_nargs) {
8854 case 10:
8855 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8856 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 320, __pyx_L3_error)
8857 CYTHON_FALLTHROUGH;
8858 case 9:
8859 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8860 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 320, __pyx_L3_error)
8861 CYTHON_FALLTHROUGH;
8862 case 8:
8863 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8864 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 320, __pyx_L3_error)
8865 CYTHON_FALLTHROUGH;
8866 case 7:
8867 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8868 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 320, __pyx_L3_error)
8869 CYTHON_FALLTHROUGH;
8870 case 6:
8871 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8872 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 320, __pyx_L3_error)
8873 CYTHON_FALLTHROUGH;
8874 case 5:
8875 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8876 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 320, __pyx_L3_error)
8877 CYTHON_FALLTHROUGH;
8878 case 4:
8879 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8880 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 320, __pyx_L3_error)
8881 CYTHON_FALLTHROUGH;
8882 case 3:
8883 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8884 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 320, __pyx_L3_error)
8885 CYTHON_FALLTHROUGH;
8886 case 2:
8887 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8888 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 320, __pyx_L3_error)
8889 CYTHON_FALLTHROUGH;
8890 case 1:
8891 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8892 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 320, __pyx_L3_error)
8893 CYTHON_FALLTHROUGH;
8894 case 0: break;
8895 default: goto __pyx_L5_argtuple_error;
8896 }
8897 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8898 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "buildLocalBDM2projectionMatrices", 0) < (0)) __PYX_ERR(0, 320, __pyx_L3_error)
8899 for (Py_ssize_t i = __pyx_nargs; i < 10; i++) {
8900 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, i); __PYX_ERR(0, 320, __pyx_L3_error) }
8901 }
8902 } else if (unlikely(__pyx_nargs != 10)) {
8903 goto __pyx_L5_argtuple_error;
8904 } else {
8905 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8906 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 320, __pyx_L3_error)
8907 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8908 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 320, __pyx_L3_error)
8909 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8910 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 320, __pyx_L3_error)
8911 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8912 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 320, __pyx_L3_error)
8913 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8914 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 320, __pyx_L3_error)
8915 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8916 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 320, __pyx_L3_error)
8917 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8918 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 320, __pyx_L3_error)
8919 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8920 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 320, __pyx_L3_error)
8921 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8922 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 320, __pyx_L3_error)
8923 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8924 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 320, __pyx_L3_error)
8925 }
8926 __pyx_v_degree = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_degree == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 320, __pyx_L3_error)
8927 __pyx_v_w_dS_f = ((PyArrayObject *)values[1]);
8928 __pyx_v_ebq_n = ((PyArrayObject *)values[2]);
8929 __pyx_v_ebq_v = ((PyArrayObject *)values[3]);
8930 __pyx_v_q_basis_vals = ((PyArrayObject *)values[4]);
8931 __pyx_v_w_int_test_grads = ((PyArrayObject *)values[5]);
8932 __pyx_v_w_int_div_free = ((PyArrayObject *)values[6]);
8933 __pyx_v_piola_trial_fun = ((PyArrayObject *)values[7]);
8934 __pyx_v_edgeFlags = ((PyArrayObject *)values[8]);
8935 __pyx_v_BDMmat_element = ((PyArrayObject *)values[9]);
8936 }
8937 goto __pyx_L6_skip;
8938 __pyx_L5_argtuple_error:;
8939 __Pyx_RaiseArgtupleInvalid("buildLocalBDM2projectionMatrices", 1, 10, 10, __pyx_nargs); __PYX_ERR(0, 320, __pyx_L3_error)
8940 __pyx_L6_skip:;
8941 goto __pyx_L4_argument_unpacking_done;
8942 __pyx_L3_error:;
8943 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8944 Py_XDECREF(values[__pyx_temp]);
8945 }
8946 __Pyx_AddTraceback("cpostprocessing.buildLocalBDM2projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
8947 __Pyx_RefNannyFinishContext();
8948 return NULL;
8949 __pyx_L4_argument_unpacking_done:;
8950 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 321, __pyx_L1_error)
8951 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 322, __pyx_L1_error)
8952 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v", 0))) __PYX_ERR(0, 323, __pyx_L1_error)
8953 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_basis_vals), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_basis_vals", 0))) __PYX_ERR(0, 324, __pyx_L1_error)
8954 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_int_test_grads), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_int_test_grads", 0))) __PYX_ERR(0, 325, __pyx_L1_error)
8955 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_int_div_free), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_int_div_free", 0))) __PYX_ERR(0, 326, __pyx_L1_error)
8956 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_piola_trial_fun), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "piola_trial_fun", 0))) __PYX_ERR(0, 327, __pyx_L1_error)
8957 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edgeFlags), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "edgeFlags", 0))) __PYX_ERR(0, 328, __pyx_L1_error)
8958 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 329, __pyx_L1_error)
8959 __pyx_r = __pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(__pyx_self, __pyx_v_degree, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_v, __pyx_v_q_basis_vals, __pyx_v_w_int_test_grads, __pyx_v_w_int_div_free, __pyx_v_piola_trial_fun, __pyx_v_edgeFlags, __pyx_v_BDMmat_element);
8960
8961 /* function exit code */
8962 goto __pyx_L0;
8963 __pyx_L1_error:;
8964 __pyx_r = NULL;
8965 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8966 Py_XDECREF(values[__pyx_temp]);
8967 }
8968 goto __pyx_L7_cleaned_up;
8969 __pyx_L0:;
8970 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8971 Py_XDECREF(values[__pyx_temp]);
8972 }
8973 __pyx_L7_cleaned_up:;
8974
8975 __Pyx_RefNannyFinishContext();
8976 return __pyx_r;
8977}
8978
8979static PyObject *__pyx_pf_15cpostprocessing_22buildLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_degree, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_q_basis_vals, PyArrayObject *__pyx_v_w_int_test_grads, PyArrayObject *__pyx_v_w_int_div_free, PyArrayObject *__pyx_v_piola_trial_fun, PyArrayObject *__pyx_v_edgeFlags, PyArrayObject *__pyx_v_BDMmat_element) {
8980 PyObject *__pyx_r = NULL;
8981 __Pyx_RefNannyDeclarations
8982 __Pyx_RefNannySetupContext("buildLocalBDM2projectionMatrices", 0);
8983
8984 /* "cpostprocessing.pyx":330
8985 * np.ndarray edgeFlags,
8986 * np.ndarray BDMmat_element):
8987 * pp.buildLocalBDM2projectionMatrices(degree, # <<<<<<<<<<<<<<
8988 * ebq_n.shape[0],
8989 * ebq_n.shape[1],
8990*/
8991 buildLocalBDM2projectionMatrices(__pyx_v_degree, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_basis_vals)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_int_test_grads)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_edgeFlags)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_basis_vals)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_int_test_grads)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_int_div_free)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_piola_trial_fun)));
8992
8993 /* "cpostprocessing.pyx":320
8994 * <double*>(BDMmat_element.data))
8995 *
8996 * def buildLocalBDM2projectionMatrices(int degree, # <<<<<<<<<<<<<<
8997 * np.ndarray w_dS_f,
8998 * np.ndarray ebq_n,
8999*/
9000
9001 /* function exit code */
9002 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9003 __Pyx_XGIVEREF(__pyx_r);
9004 __Pyx_RefNannyFinishContext();
9005 return __pyx_r;
9006}
9007
9008/* "cpostprocessing.pyx":350
9009 * <double*>(piola_trial_fun.data))
9010 *
9011 * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9012 * np.ndarray BDMmatPivots_element):
9013 * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0],
9014*/
9015
9016/* Python wrapper */
9017static PyObject *__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices(PyObject *__pyx_self,
9018#if CYTHON_VECTORCALL
9019PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9020#else
9021PyObject *__pyx_args, PyObject *__pyx_kwds
9022#endif
9023); /*proto*/
9024static PyMethodDef __pyx_mdef_15cpostprocessing_25factorLocalBDM1projectionMatrices = {"factorLocalBDM1projectionMatrices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9025static PyObject *__pyx_pw_15cpostprocessing_25factorLocalBDM1projectionMatrices(PyObject *__pyx_self,
9026#if CYTHON_VECTORCALL
9027PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9028#else
9029PyObject *__pyx_args, PyObject *__pyx_kwds
9030#endif
9031) {
9032 PyArrayObject *__pyx_v_BDMmat_element = 0;
9033 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9034 #if !CYTHON_VECTORCALL
9035 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9036 #endif
9037 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9038 PyObject* values[2] = {0,0};
9039 int __pyx_lineno = 0;
9040 const char *__pyx_filename = NULL;
9041 int __pyx_clineno = 0;
9042 PyObject *__pyx_r = 0;
9043 __Pyx_RefNannyDeclarations
9044 __Pyx_RefNannySetupContext("factorLocalBDM1projectionMatrices (wrapper)", 0);
9045 #if !CYTHON_VECTORCALL
9046 #if CYTHON_ASSUME_SAFE_SIZE
9047 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9048 #else
9049 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9050 #endif
9051 #endif
9052 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9053 {
9054 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,0};
9055 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9056 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 350, __pyx_L3_error)
9057 if (__pyx_kwds_len > 0) {
9058 switch (__pyx_nargs) {
9059 case 2:
9060 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9061 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 350, __pyx_L3_error)
9062 CYTHON_FALLTHROUGH;
9063 case 1:
9064 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9065 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 350, __pyx_L3_error)
9066 CYTHON_FALLTHROUGH;
9067 case 0: break;
9068 default: goto __pyx_L5_argtuple_error;
9069 }
9070 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9071 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "factorLocalBDM1projectionMatrices", 0) < (0)) __PYX_ERR(0, 350, __pyx_L3_error)
9072 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
9073 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("factorLocalBDM1projectionMatrices", 1, 2, 2, i); __PYX_ERR(0, 350, __pyx_L3_error) }
9074 }
9075 } else if (unlikely(__pyx_nargs != 2)) {
9076 goto __pyx_L5_argtuple_error;
9077 } else {
9078 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9079 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 350, __pyx_L3_error)
9080 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9081 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 350, __pyx_L3_error)
9082 }
9083 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9084 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9085 }
9086 goto __pyx_L6_skip;
9087 __pyx_L5_argtuple_error:;
9088 __Pyx_RaiseArgtupleInvalid("factorLocalBDM1projectionMatrices", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 350, __pyx_L3_error)
9089 __pyx_L6_skip:;
9090 goto __pyx_L4_argument_unpacking_done;
9091 __pyx_L3_error:;
9092 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9093 Py_XDECREF(values[__pyx_temp]);
9094 }
9095 __Pyx_AddTraceback("cpostprocessing.factorLocalBDM1projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
9096 __Pyx_RefNannyFinishContext();
9097 return NULL;
9098 __pyx_L4_argument_unpacking_done:;
9099 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 350, __pyx_L1_error)
9100 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 351, __pyx_L1_error)
9101 __pyx_r = __pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element);
9102
9103 /* function exit code */
9104 goto __pyx_L0;
9105 __pyx_L1_error:;
9106 __pyx_r = NULL;
9107 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9108 Py_XDECREF(values[__pyx_temp]);
9109 }
9110 goto __pyx_L7_cleaned_up;
9111 __pyx_L0:;
9112 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9113 Py_XDECREF(values[__pyx_temp]);
9114 }
9115 __pyx_L7_cleaned_up:;
9116 __Pyx_RefNannyFinishContext();
9117 return __pyx_r;
9118}
9119
9120static PyObject *__pyx_pf_15cpostprocessing_24factorLocalBDM1projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element) {
9121 PyObject *__pyx_r = NULL;
9122 __Pyx_RefNannyDeclarations
9123 __Pyx_RefNannySetupContext("factorLocalBDM1projectionMatrices", 0);
9124
9125 /* "cpostprocessing.pyx":352
9126 * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element,
9127 * np.ndarray BDMmatPivots_element):
9128 * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0], # <<<<<<<<<<<<<<
9129 * BDMmat_element.shape[1],
9130 * <double*>(BDMmat_element.data),
9131*/
9132 factorLocalBDM1projectionMatrices((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)));
9133
9134 /* "cpostprocessing.pyx":350
9135 * <double*>(piola_trial_fun.data))
9136 *
9137 * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9138 * np.ndarray BDMmatPivots_element):
9139 * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0],
9140*/
9141
9142 /* function exit code */
9143 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9144 __Pyx_XGIVEREF(__pyx_r);
9145 __Pyx_RefNannyFinishContext();
9146 return __pyx_r;
9147}
9148
9149/* "cpostprocessing.pyx":357
9150 * <int*>(BDMmatPivots_element.data))
9151 *
9152 * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9153 * np.ndarray BDMmatPivots_element):
9154 * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0],
9155*/
9156
9157/* Python wrapper */
9158static PyObject *__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices(PyObject *__pyx_self,
9159#if CYTHON_VECTORCALL
9160PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9161#else
9162PyObject *__pyx_args, PyObject *__pyx_kwds
9163#endif
9164); /*proto*/
9165static PyMethodDef __pyx_mdef_15cpostprocessing_27factorLocalBDM2projectionMatrices = {"factorLocalBDM2projectionMatrices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9166static PyObject *__pyx_pw_15cpostprocessing_27factorLocalBDM2projectionMatrices(PyObject *__pyx_self,
9167#if CYTHON_VECTORCALL
9168PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9169#else
9170PyObject *__pyx_args, PyObject *__pyx_kwds
9171#endif
9172) {
9173 PyArrayObject *__pyx_v_BDMmat_element = 0;
9174 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9175 #if !CYTHON_VECTORCALL
9176 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9177 #endif
9178 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9179 PyObject* values[2] = {0,0};
9180 int __pyx_lineno = 0;
9181 const char *__pyx_filename = NULL;
9182 int __pyx_clineno = 0;
9183 PyObject *__pyx_r = 0;
9184 __Pyx_RefNannyDeclarations
9185 __Pyx_RefNannySetupContext("factorLocalBDM2projectionMatrices (wrapper)", 0);
9186 #if !CYTHON_VECTORCALL
9187 #if CYTHON_ASSUME_SAFE_SIZE
9188 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9189 #else
9190 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9191 #endif
9192 #endif
9193 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9194 {
9195 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,0};
9196 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9197 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 357, __pyx_L3_error)
9198 if (__pyx_kwds_len > 0) {
9199 switch (__pyx_nargs) {
9200 case 2:
9201 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9202 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 357, __pyx_L3_error)
9203 CYTHON_FALLTHROUGH;
9204 case 1:
9205 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9206 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 357, __pyx_L3_error)
9207 CYTHON_FALLTHROUGH;
9208 case 0: break;
9209 default: goto __pyx_L5_argtuple_error;
9210 }
9211 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9212 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "factorLocalBDM2projectionMatrices", 0) < (0)) __PYX_ERR(0, 357, __pyx_L3_error)
9213 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
9214 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("factorLocalBDM2projectionMatrices", 1, 2, 2, i); __PYX_ERR(0, 357, __pyx_L3_error) }
9215 }
9216 } else if (unlikely(__pyx_nargs != 2)) {
9217 goto __pyx_L5_argtuple_error;
9218 } else {
9219 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9220 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 357, __pyx_L3_error)
9221 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9222 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 357, __pyx_L3_error)
9223 }
9224 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9225 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9226 }
9227 goto __pyx_L6_skip;
9228 __pyx_L5_argtuple_error:;
9229 __Pyx_RaiseArgtupleInvalid("factorLocalBDM2projectionMatrices", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 357, __pyx_L3_error)
9230 __pyx_L6_skip:;
9231 goto __pyx_L4_argument_unpacking_done;
9232 __pyx_L3_error:;
9233 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9234 Py_XDECREF(values[__pyx_temp]);
9235 }
9236 __Pyx_AddTraceback("cpostprocessing.factorLocalBDM2projectionMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename);
9237 __Pyx_RefNannyFinishContext();
9238 return NULL;
9239 __pyx_L4_argument_unpacking_done:;
9240 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 357, __pyx_L1_error)
9241 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 358, __pyx_L1_error)
9242 __pyx_r = __pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element);
9243
9244 /* function exit code */
9245 goto __pyx_L0;
9246 __pyx_L1_error:;
9247 __pyx_r = NULL;
9248 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9249 Py_XDECREF(values[__pyx_temp]);
9250 }
9251 goto __pyx_L7_cleaned_up;
9252 __pyx_L0:;
9253 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9254 Py_XDECREF(values[__pyx_temp]);
9255 }
9256 __pyx_L7_cleaned_up:;
9257 __Pyx_RefNannyFinishContext();
9258 return __pyx_r;
9259}
9260
9261static PyObject *__pyx_pf_15cpostprocessing_26factorLocalBDM2projectionMatrices(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element) {
9262 PyObject *__pyx_r = NULL;
9263 __Pyx_RefNannyDeclarations
9264 __Pyx_RefNannySetupContext("factorLocalBDM2projectionMatrices", 0);
9265
9266 /* "cpostprocessing.pyx":359
9267 * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element,
9268 * np.ndarray BDMmatPivots_element):
9269 * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0], # <<<<<<<<<<<<<<
9270 * BDMmat_element.shape[1],
9271 * <double*>(BDMmat_element.data),
9272*/
9273 factorLocalBDM2projectionMatrices((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)));
9274
9275 /* "cpostprocessing.pyx":357
9276 * <int*>(BDMmatPivots_element.data))
9277 *
9278 * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9279 * np.ndarray BDMmatPivots_element):
9280 * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0],
9281*/
9282
9283 /* function exit code */
9284 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9285 __Pyx_XGIVEREF(__pyx_r);
9286 __Pyx_RefNannyFinishContext();
9287 return __pyx_r;
9288}
9289
9290/* "cpostprocessing.pyx":364
9291 * <int*>(BDMmatPivots_element.data))
9292 *
9293 * def solveLocalBDM1projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9294 * np.ndarray BDMmatPivots_element,
9295 * np.ndarray w_dS_f,
9296*/
9297
9298/* Python wrapper */
9299static PyObject *__pyx_pw_15cpostprocessing_29solveLocalBDM1projection(PyObject *__pyx_self,
9300#if CYTHON_VECTORCALL
9301PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9302#else
9303PyObject *__pyx_args, PyObject *__pyx_kwds
9304#endif
9305); /*proto*/
9306static PyMethodDef __pyx_mdef_15cpostprocessing_29solveLocalBDM1projection = {"solveLocalBDM1projection", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_29solveLocalBDM1projection, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9307static PyObject *__pyx_pw_15cpostprocessing_29solveLocalBDM1projection(PyObject *__pyx_self,
9308#if CYTHON_VECTORCALL
9309PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9310#else
9311PyObject *__pyx_args, PyObject *__pyx_kwds
9312#endif
9313) {
9314 PyArrayObject *__pyx_v_BDMmat_element = 0;
9315 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9316 PyArrayObject *__pyx_v_w_dS_f = 0;
9317 PyArrayObject *__pyx_v_ebq_n = 0;
9318 PyArrayObject *__pyx_v_ebq_velocity = 0;
9319 PyArrayObject *__pyx_v_q_vdofs = 0;
9320 #if !CYTHON_VECTORCALL
9321 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9322 #endif
9323 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9324 PyObject* values[6] = {0,0,0,0,0,0};
9325 int __pyx_lineno = 0;
9326 const char *__pyx_filename = NULL;
9327 int __pyx_clineno = 0;
9328 PyObject *__pyx_r = 0;
9329 __Pyx_RefNannyDeclarations
9330 __Pyx_RefNannySetupContext("solveLocalBDM1projection (wrapper)", 0);
9331 #if !CYTHON_VECTORCALL
9332 #if CYTHON_ASSUME_SAFE_SIZE
9333 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9334 #else
9335 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9336 #endif
9337 #endif
9338 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9339 {
9340 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_n,&__pyx_mstate_global->__pyx_n_u_ebq_velocity,&__pyx_mstate_global->__pyx_n_u_q_vdofs,0};
9341 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9342 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 364, __pyx_L3_error)
9343 if (__pyx_kwds_len > 0) {
9344 switch (__pyx_nargs) {
9345 case 6:
9346 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9347 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 364, __pyx_L3_error)
9348 CYTHON_FALLTHROUGH;
9349 case 5:
9350 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9351 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 364, __pyx_L3_error)
9352 CYTHON_FALLTHROUGH;
9353 case 4:
9354 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9355 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 364, __pyx_L3_error)
9356 CYTHON_FALLTHROUGH;
9357 case 3:
9358 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9359 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 364, __pyx_L3_error)
9360 CYTHON_FALLTHROUGH;
9361 case 2:
9362 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9363 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 364, __pyx_L3_error)
9364 CYTHON_FALLTHROUGH;
9365 case 1:
9366 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9367 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 364, __pyx_L3_error)
9368 CYTHON_FALLTHROUGH;
9369 case 0: break;
9370 default: goto __pyx_L5_argtuple_error;
9371 }
9372 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9373 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "solveLocalBDM1projection", 0) < (0)) __PYX_ERR(0, 364, __pyx_L3_error)
9374 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
9375 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, i); __PYX_ERR(0, 364, __pyx_L3_error) }
9376 }
9377 } else if (unlikely(__pyx_nargs != 6)) {
9378 goto __pyx_L5_argtuple_error;
9379 } else {
9380 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9381 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 364, __pyx_L3_error)
9382 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9383 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 364, __pyx_L3_error)
9384 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9385 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 364, __pyx_L3_error)
9386 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9387 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 364, __pyx_L3_error)
9388 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9389 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 364, __pyx_L3_error)
9390 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9391 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 364, __pyx_L3_error)
9392 }
9393 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9394 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9395 __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
9396 __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
9397 __pyx_v_ebq_velocity = ((PyArrayObject *)values[4]);
9398 __pyx_v_q_vdofs = ((PyArrayObject *)values[5]);
9399 }
9400 goto __pyx_L6_skip;
9401 __pyx_L5_argtuple_error:;
9402 __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projection", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 364, __pyx_L3_error)
9403 __pyx_L6_skip:;
9404 goto __pyx_L4_argument_unpacking_done;
9405 __pyx_L3_error:;
9406 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9407 Py_XDECREF(values[__pyx_temp]);
9408 }
9409 __Pyx_AddTraceback("cpostprocessing.solveLocalBDM1projection", __pyx_clineno, __pyx_lineno, __pyx_filename);
9410 __Pyx_RefNannyFinishContext();
9411 return NULL;
9412 __pyx_L4_argument_unpacking_done:;
9413 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 364, __pyx_L1_error)
9414 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 365, __pyx_L1_error)
9415 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 366, __pyx_L1_error)
9416 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 367, __pyx_L1_error)
9417 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 368, __pyx_L1_error)
9418 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 369, __pyx_L1_error)
9419 __pyx_r = __pyx_pf_15cpostprocessing_28solveLocalBDM1projection(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_ebq_velocity, __pyx_v_q_vdofs);
9420
9421 /* function exit code */
9422 goto __pyx_L0;
9423 __pyx_L1_error:;
9424 __pyx_r = NULL;
9425 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9426 Py_XDECREF(values[__pyx_temp]);
9427 }
9428 goto __pyx_L7_cleaned_up;
9429 __pyx_L0:;
9430 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9431 Py_XDECREF(values[__pyx_temp]);
9432 }
9433 __pyx_L7_cleaned_up:;
9434 __Pyx_RefNannyFinishContext();
9435 return __pyx_r;
9436}
9437
9438static PyObject *__pyx_pf_15cpostprocessing_28solveLocalBDM1projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_vdofs) {
9439 PyObject *__pyx_r = NULL;
9440 __Pyx_RefNannyDeclarations
9441 __Pyx_RefNannySetupContext("solveLocalBDM1projection", 0);
9442
9443 /* "cpostprocessing.pyx":370
9444 * np.ndarray ebq_velocity,
9445 * np.ndarray q_vdofs):
9446 * pp.solveLocalBDM1projection(ebq_n.shape[0], # <<<<<<<<<<<<<<
9447 * ebq_n.shape[1],
9448 * ebq_n.shape[2],
9449*/
9450 solveLocalBDM1projection((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_vdofs)));
9451
9452 /* "cpostprocessing.pyx":364
9453 * <int*>(BDMmatPivots_element.data))
9454 *
9455 * def solveLocalBDM1projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9456 * np.ndarray BDMmatPivots_element,
9457 * np.ndarray w_dS_f,
9458*/
9459
9460 /* function exit code */
9461 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9462 __Pyx_XGIVEREF(__pyx_r);
9463 __Pyx_RefNannyFinishContext();
9464 return __pyx_r;
9465}
9466
9467/* "cpostprocessing.pyx":383
9468 * <double*>(q_vdofs.data))
9469 *
9470 * def solveLocalBDM2projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9471 * np.ndarray BDMmatPivots_element,
9472 * np.ndarray w_dS_f,
9473*/
9474
9475/* Python wrapper */
9476static PyObject *__pyx_pw_15cpostprocessing_31solveLocalBDM2projection(PyObject *__pyx_self,
9477#if CYTHON_VECTORCALL
9478PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9479#else
9480PyObject *__pyx_args, PyObject *__pyx_kwds
9481#endif
9482); /*proto*/
9483static PyMethodDef __pyx_mdef_15cpostprocessing_31solveLocalBDM2projection = {"solveLocalBDM2projection", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_31solveLocalBDM2projection, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9484static PyObject *__pyx_pw_15cpostprocessing_31solveLocalBDM2projection(PyObject *__pyx_self,
9485#if CYTHON_VECTORCALL
9486PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9487#else
9488PyObject *__pyx_args, PyObject *__pyx_kwds
9489#endif
9490) {
9491 PyArrayObject *__pyx_v_BDMmat_element = 0;
9492 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9493 PyArrayObject *__pyx_v_w_dS_f = 0;
9494 PyArrayObject *__pyx_v_ebq_n = 0;
9495 PyArrayObject *__pyx_v_w_interior_gradients = 0;
9496 PyArrayObject *__pyx_v_ebq_velocity = 0;
9497 PyArrayObject *__pyx_v_q_velocity = 0;
9498 PyArrayObject *__pyx_v_q_vdofs = 0;
9499 #if !CYTHON_VECTORCALL
9500 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9501 #endif
9502 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9503 PyObject* values[8] = {0,0,0,0,0,0,0,0};
9504 int __pyx_lineno = 0;
9505 const char *__pyx_filename = NULL;
9506 int __pyx_clineno = 0;
9507 PyObject *__pyx_r = 0;
9508 __Pyx_RefNannyDeclarations
9509 __Pyx_RefNannySetupContext("solveLocalBDM2projection (wrapper)", 0);
9510 #if !CYTHON_VECTORCALL
9511 #if CYTHON_ASSUME_SAFE_SIZE
9512 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9513 #else
9514 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9515 #endif
9516 #endif
9517 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9518 {
9519 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_n,&__pyx_mstate_global->__pyx_n_u_w_interior_gradients,&__pyx_mstate_global->__pyx_n_u_ebq_velocity,&__pyx_mstate_global->__pyx_n_u_q_velocity,&__pyx_mstate_global->__pyx_n_u_q_vdofs,0};
9520 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9521 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 383, __pyx_L3_error)
9522 if (__pyx_kwds_len > 0) {
9523 switch (__pyx_nargs) {
9524 case 8:
9525 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9526 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 383, __pyx_L3_error)
9527 CYTHON_FALLTHROUGH;
9528 case 7:
9529 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9530 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 383, __pyx_L3_error)
9531 CYTHON_FALLTHROUGH;
9532 case 6:
9533 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9534 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 383, __pyx_L3_error)
9535 CYTHON_FALLTHROUGH;
9536 case 5:
9537 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9538 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 383, __pyx_L3_error)
9539 CYTHON_FALLTHROUGH;
9540 case 4:
9541 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9542 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 383, __pyx_L3_error)
9543 CYTHON_FALLTHROUGH;
9544 case 3:
9545 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9546 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 383, __pyx_L3_error)
9547 CYTHON_FALLTHROUGH;
9548 case 2:
9549 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9550 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 383, __pyx_L3_error)
9551 CYTHON_FALLTHROUGH;
9552 case 1:
9553 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9554 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 383, __pyx_L3_error)
9555 CYTHON_FALLTHROUGH;
9556 case 0: break;
9557 default: goto __pyx_L5_argtuple_error;
9558 }
9559 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9560 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "solveLocalBDM2projection", 0) < (0)) __PYX_ERR(0, 383, __pyx_L3_error)
9561 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
9562 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, i); __PYX_ERR(0, 383, __pyx_L3_error) }
9563 }
9564 } else if (unlikely(__pyx_nargs != 8)) {
9565 goto __pyx_L5_argtuple_error;
9566 } else {
9567 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9568 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 383, __pyx_L3_error)
9569 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9570 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 383, __pyx_L3_error)
9571 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9572 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 383, __pyx_L3_error)
9573 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9574 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 383, __pyx_L3_error)
9575 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9576 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 383, __pyx_L3_error)
9577 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9578 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 383, __pyx_L3_error)
9579 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9580 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 383, __pyx_L3_error)
9581 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9582 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 383, __pyx_L3_error)
9583 }
9584 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9585 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9586 __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
9587 __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
9588 __pyx_v_w_interior_gradients = ((PyArrayObject *)values[4]);
9589 __pyx_v_ebq_velocity = ((PyArrayObject *)values[5]);
9590 __pyx_v_q_velocity = ((PyArrayObject *)values[6]);
9591 __pyx_v_q_vdofs = ((PyArrayObject *)values[7]);
9592 }
9593 goto __pyx_L6_skip;
9594 __pyx_L5_argtuple_error:;
9595 __Pyx_RaiseArgtupleInvalid("solveLocalBDM2projection", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 383, __pyx_L3_error)
9596 __pyx_L6_skip:;
9597 goto __pyx_L4_argument_unpacking_done;
9598 __pyx_L3_error:;
9599 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9600 Py_XDECREF(values[__pyx_temp]);
9601 }
9602 __Pyx_AddTraceback("cpostprocessing.solveLocalBDM2projection", __pyx_clineno, __pyx_lineno, __pyx_filename);
9603 __Pyx_RefNannyFinishContext();
9604 return NULL;
9605 __pyx_L4_argument_unpacking_done:;
9606 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 383, __pyx_L1_error)
9607 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 384, __pyx_L1_error)
9608 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 385, __pyx_L1_error)
9609 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 386, __pyx_L1_error)
9610 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_gradients), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_interior_gradients", 0))) __PYX_ERR(0, 387, __pyx_L1_error)
9611 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 388, __pyx_L1_error)
9612 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 389, __pyx_L1_error)
9613 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 390, __pyx_L1_error)
9614 __pyx_r = __pyx_pf_15cpostprocessing_30solveLocalBDM2projection(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_w_interior_gradients, __pyx_v_ebq_velocity, __pyx_v_q_velocity, __pyx_v_q_vdofs);
9615
9616 /* function exit code */
9617 goto __pyx_L0;
9618 __pyx_L1_error:;
9619 __pyx_r = NULL;
9620 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9621 Py_XDECREF(values[__pyx_temp]);
9622 }
9623 goto __pyx_L7_cleaned_up;
9624 __pyx_L0:;
9625 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9626 Py_XDECREF(values[__pyx_temp]);
9627 }
9628 __pyx_L7_cleaned_up:;
9629 __Pyx_RefNannyFinishContext();
9630 return __pyx_r;
9631}
9632
9633static PyObject *__pyx_pf_15cpostprocessing_30solveLocalBDM2projection(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs) {
9634 PyObject *__pyx_r = NULL;
9635 __Pyx_RefNannyDeclarations
9636 __Pyx_RefNannySetupContext("solveLocalBDM2projection", 0);
9637
9638 /* "cpostprocessing.pyx":391
9639 * np.ndarray q_velocity,
9640 * np.ndarray q_vdofs):
9641 * pp.solveLocalBDM2projection(ebq_n.shape[0], # <<<<<<<<<<<<<<
9642 * ebq_n.shape[1],
9643 * ebq_n.shape[2],
9644*/
9645 solveLocalBDM2projection((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_interior_gradients)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_vdofs)));
9646
9647 /* "cpostprocessing.pyx":383
9648 * <double*>(q_vdofs.data))
9649 *
9650 * def solveLocalBDM2projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9651 * np.ndarray BDMmatPivots_element,
9652 * np.ndarray w_dS_f,
9653*/
9654
9655 /* function exit code */
9656 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9657 __Pyx_XGIVEREF(__pyx_r);
9658 __Pyx_RefNannyFinishContext();
9659 return __pyx_r;
9660}
9661
9662/* "cpostprocessing.pyx":406
9663 * <double*>(q_vdofs.data))
9664 *
9665 * def buildBDM2rhs(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9666 * np.ndarray BDMmatPivots_element,
9667 * np.ndarray w_dS_f,
9668*/
9669
9670/* Python wrapper */
9671static PyObject *__pyx_pw_15cpostprocessing_33buildBDM2rhs(PyObject *__pyx_self,
9672#if CYTHON_VECTORCALL
9673PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9674#else
9675PyObject *__pyx_args, PyObject *__pyx_kwds
9676#endif
9677); /*proto*/
9678static PyMethodDef __pyx_mdef_15cpostprocessing_33buildBDM2rhs = {"buildBDM2rhs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_33buildBDM2rhs, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9679static PyObject *__pyx_pw_15cpostprocessing_33buildBDM2rhs(PyObject *__pyx_self,
9680#if CYTHON_VECTORCALL
9681PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9682#else
9683PyObject *__pyx_args, PyObject *__pyx_kwds
9684#endif
9685) {
9686 PyArrayObject *__pyx_v_BDMmat_element = 0;
9687 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9688 PyArrayObject *__pyx_v_w_dS_f = 0;
9689 PyArrayObject *__pyx_v_ebq_n = 0;
9690 PyArrayObject *__pyx_v_w_interior_gradients = 0;
9691 PyArrayObject *__pyx_v_w_interior_divfree = 0;
9692 PyArrayObject *__pyx_v_ebq_velocity = 0;
9693 PyArrayObject *__pyx_v_q_velocity = 0;
9694 PyArrayObject *__pyx_v_q_vdofs = 0;
9695 PyArrayObject *__pyx_v_edgeFlags = 0;
9696 #if !CYTHON_VECTORCALL
9697 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9698 #endif
9699 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9700 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
9701 int __pyx_lineno = 0;
9702 const char *__pyx_filename = NULL;
9703 int __pyx_clineno = 0;
9704 PyObject *__pyx_r = 0;
9705 __Pyx_RefNannyDeclarations
9706 __Pyx_RefNannySetupContext("buildBDM2rhs (wrapper)", 0);
9707 #if !CYTHON_VECTORCALL
9708 #if CYTHON_ASSUME_SAFE_SIZE
9709 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9710 #else
9711 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9712 #endif
9713 #endif
9714 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9715 {
9716 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_n,&__pyx_mstate_global->__pyx_n_u_w_interior_gradients,&__pyx_mstate_global->__pyx_n_u_w_interior_divfree,&__pyx_mstate_global->__pyx_n_u_ebq_velocity,&__pyx_mstate_global->__pyx_n_u_q_velocity,&__pyx_mstate_global->__pyx_n_u_q_vdofs,&__pyx_mstate_global->__pyx_n_u_edgeFlags,0};
9717 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9718 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 406, __pyx_L3_error)
9719 if (__pyx_kwds_len > 0) {
9720 switch (__pyx_nargs) {
9721 case 10:
9722 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9723 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 406, __pyx_L3_error)
9724 CYTHON_FALLTHROUGH;
9725 case 9:
9726 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9727 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 406, __pyx_L3_error)
9728 CYTHON_FALLTHROUGH;
9729 case 8:
9730 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9731 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 406, __pyx_L3_error)
9732 CYTHON_FALLTHROUGH;
9733 case 7:
9734 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9735 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 406, __pyx_L3_error)
9736 CYTHON_FALLTHROUGH;
9737 case 6:
9738 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9739 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 406, __pyx_L3_error)
9740 CYTHON_FALLTHROUGH;
9741 case 5:
9742 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9743 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 406, __pyx_L3_error)
9744 CYTHON_FALLTHROUGH;
9745 case 4:
9746 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9747 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 406, __pyx_L3_error)
9748 CYTHON_FALLTHROUGH;
9749 case 3:
9750 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9751 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 406, __pyx_L3_error)
9752 CYTHON_FALLTHROUGH;
9753 case 2:
9754 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9755 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 406, __pyx_L3_error)
9756 CYTHON_FALLTHROUGH;
9757 case 1:
9758 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9759 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 406, __pyx_L3_error)
9760 CYTHON_FALLTHROUGH;
9761 case 0: break;
9762 default: goto __pyx_L5_argtuple_error;
9763 }
9764 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9765 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "buildBDM2rhs", 0) < (0)) __PYX_ERR(0, 406, __pyx_L3_error)
9766 for (Py_ssize_t i = __pyx_nargs; i < 10; i++) {
9767 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, i); __PYX_ERR(0, 406, __pyx_L3_error) }
9768 }
9769 } else if (unlikely(__pyx_nargs != 10)) {
9770 goto __pyx_L5_argtuple_error;
9771 } else {
9772 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9773 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 406, __pyx_L3_error)
9774 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9775 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 406, __pyx_L3_error)
9776 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9777 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 406, __pyx_L3_error)
9778 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9779 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 406, __pyx_L3_error)
9780 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9781 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 406, __pyx_L3_error)
9782 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9783 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 406, __pyx_L3_error)
9784 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9785 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 406, __pyx_L3_error)
9786 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9787 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 406, __pyx_L3_error)
9788 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9789 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 406, __pyx_L3_error)
9790 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9791 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 406, __pyx_L3_error)
9792 }
9793 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9794 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9795 __pyx_v_w_dS_f = ((PyArrayObject *)values[2]);
9796 __pyx_v_ebq_n = ((PyArrayObject *)values[3]);
9797 __pyx_v_w_interior_gradients = ((PyArrayObject *)values[4]);
9798 __pyx_v_w_interior_divfree = ((PyArrayObject *)values[5]);
9799 __pyx_v_ebq_velocity = ((PyArrayObject *)values[6]);
9800 __pyx_v_q_velocity = ((PyArrayObject *)values[7]);
9801 __pyx_v_q_vdofs = ((PyArrayObject *)values[8]);
9802 __pyx_v_edgeFlags = ((PyArrayObject *)values[9]);
9803 }
9804 goto __pyx_L6_skip;
9805 __pyx_L5_argtuple_error:;
9806 __Pyx_RaiseArgtupleInvalid("buildBDM2rhs", 1, 10, 10, __pyx_nargs); __PYX_ERR(0, 406, __pyx_L3_error)
9807 __pyx_L6_skip:;
9808 goto __pyx_L4_argument_unpacking_done;
9809 __pyx_L3_error:;
9810 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9811 Py_XDECREF(values[__pyx_temp]);
9812 }
9813 __Pyx_AddTraceback("cpostprocessing.buildBDM2rhs", __pyx_clineno, __pyx_lineno, __pyx_filename);
9814 __Pyx_RefNannyFinishContext();
9815 return NULL;
9816 __pyx_L4_argument_unpacking_done:;
9817 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 406, __pyx_L1_error)
9818 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 407, __pyx_L1_error)
9819 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 408, __pyx_L1_error)
9820 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_n", 0))) __PYX_ERR(0, 409, __pyx_L1_error)
9821 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_gradients), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_interior_gradients", 0))) __PYX_ERR(0, 410, __pyx_L1_error)
9822 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_interior_divfree), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_interior_divfree", 0))) __PYX_ERR(0, 411, __pyx_L1_error)
9823 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 412, __pyx_L1_error)
9824 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 413, __pyx_L1_error)
9825 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 414, __pyx_L1_error)
9826 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edgeFlags), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "edgeFlags", 0))) __PYX_ERR(0, 415, __pyx_L1_error)
9827 __pyx_r = __pyx_pf_15cpostprocessing_32buildBDM2rhs(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_w_dS_f, __pyx_v_ebq_n, __pyx_v_w_interior_gradients, __pyx_v_w_interior_divfree, __pyx_v_ebq_velocity, __pyx_v_q_velocity, __pyx_v_q_vdofs, __pyx_v_edgeFlags);
9828
9829 /* function exit code */
9830 goto __pyx_L0;
9831 __pyx_L1_error:;
9832 __pyx_r = NULL;
9833 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9834 Py_XDECREF(values[__pyx_temp]);
9835 }
9836 goto __pyx_L7_cleaned_up;
9837 __pyx_L0:;
9838 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9839 Py_XDECREF(values[__pyx_temp]);
9840 }
9841 __pyx_L7_cleaned_up:;
9842 __Pyx_RefNannyFinishContext();
9843 return __pyx_r;
9844}
9845
9846static PyObject *__pyx_pf_15cpostprocessing_32buildBDM2rhs(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_n, PyArrayObject *__pyx_v_w_interior_gradients, PyArrayObject *__pyx_v_w_interior_divfree, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_q_velocity, PyArrayObject *__pyx_v_q_vdofs, PyArrayObject *__pyx_v_edgeFlags) {
9847 PyObject *__pyx_r = NULL;
9848 __Pyx_RefNannyDeclarations
9849 __Pyx_RefNannySetupContext("buildBDM2rhs", 0);
9850
9851 /* "cpostprocessing.pyx":416
9852 * np.ndarray q_vdofs,
9853 * np.ndarray edgeFlags):
9854 * pp.buildBDM2rhs(ebq_n.shape[0], # <<<<<<<<<<<<<<
9855 * ebq_n.shape[1],
9856 * ebq_n.shape[2],
9857*/
9858 buildBDM2rhs((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_n)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_interior_gradients)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_edgeFlags)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_interior_gradients)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_interior_divfree)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_vdofs)));
9859
9860 /* "cpostprocessing.pyx":406
9861 * <double*>(q_vdofs.data))
9862 *
9863 * def buildBDM2rhs(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9864 * np.ndarray BDMmatPivots_element,
9865 * np.ndarray w_dS_f,
9866*/
9867
9868 /* function exit code */
9869 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9870 __Pyx_XGIVEREF(__pyx_r);
9871 __Pyx_RefNannyFinishContext();
9872 return __pyx_r;
9873}
9874
9875/* "cpostprocessing.pyx":435
9876 * <double*>(q_vdofs.data))
9877 *
9878 * def solveLocalBDM1projectionFromFlux(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
9879 * np.ndarray BDMmatPivots_element,
9880 * np.ndarray elementBoundaryElementsArray,
9881*/
9882
9883/* Python wrapper */
9884static PyObject *__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux(PyObject *__pyx_self,
9885#if CYTHON_VECTORCALL
9886PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9887#else
9888PyObject *__pyx_args, PyObject *__pyx_kwds
9889#endif
9890); /*proto*/
9891static PyMethodDef __pyx_mdef_15cpostprocessing_35solveLocalBDM1projectionFromFlux = {"solveLocalBDM1projectionFromFlux", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9892static PyObject *__pyx_pw_15cpostprocessing_35solveLocalBDM1projectionFromFlux(PyObject *__pyx_self,
9893#if CYTHON_VECTORCALL
9894PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9895#else
9896PyObject *__pyx_args, PyObject *__pyx_kwds
9897#endif
9898) {
9899 PyArrayObject *__pyx_v_BDMmat_element = 0;
9900 PyArrayObject *__pyx_v_BDMmatPivots_element = 0;
9901 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
9902 PyArrayObject *__pyx_v_elementBoundariesArray = 0;
9903 PyArrayObject *__pyx_v_w_dS_f = 0;
9904 PyArrayObject *__pyx_v_ebq_global_flux = 0;
9905 PyArrayObject *__pyx_v_q_vdofs = 0;
9906 #if !CYTHON_VECTORCALL
9907 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9908 #endif
9909 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9910 PyObject* values[7] = {0,0,0,0,0,0,0};
9911 int __pyx_lineno = 0;
9912 const char *__pyx_filename = NULL;
9913 int __pyx_clineno = 0;
9914 PyObject *__pyx_r = 0;
9915 __Pyx_RefNannyDeclarations
9916 __Pyx_RefNannySetupContext("solveLocalBDM1projectionFromFlux (wrapper)", 0);
9917 #if !CYTHON_VECTORCALL
9918 #if CYTHON_ASSUME_SAFE_SIZE
9919 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9920 #else
9921 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9922 #endif
9923 #endif
9924 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9925 {
9926 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_BDMmat_element,&__pyx_mstate_global->__pyx_n_u_BDMmatPivots_element,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_elementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_w_dS_f,&__pyx_mstate_global->__pyx_n_u_ebq_global_flux,&__pyx_mstate_global->__pyx_n_u_q_vdofs,0};
9927 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9928 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 435, __pyx_L3_error)
9929 if (__pyx_kwds_len > 0) {
9930 switch (__pyx_nargs) {
9931 case 7:
9932 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9933 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 435, __pyx_L3_error)
9934 CYTHON_FALLTHROUGH;
9935 case 6:
9936 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9937 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 435, __pyx_L3_error)
9938 CYTHON_FALLTHROUGH;
9939 case 5:
9940 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9941 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 435, __pyx_L3_error)
9942 CYTHON_FALLTHROUGH;
9943 case 4:
9944 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9945 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 435, __pyx_L3_error)
9946 CYTHON_FALLTHROUGH;
9947 case 3:
9948 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9949 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 435, __pyx_L3_error)
9950 CYTHON_FALLTHROUGH;
9951 case 2:
9952 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9953 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 435, __pyx_L3_error)
9954 CYTHON_FALLTHROUGH;
9955 case 1:
9956 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9957 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 435, __pyx_L3_error)
9958 CYTHON_FALLTHROUGH;
9959 case 0: break;
9960 default: goto __pyx_L5_argtuple_error;
9961 }
9962 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9963 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "solveLocalBDM1projectionFromFlux", 0) < (0)) __PYX_ERR(0, 435, __pyx_L3_error)
9964 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
9965 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, i); __PYX_ERR(0, 435, __pyx_L3_error) }
9966 }
9967 } else if (unlikely(__pyx_nargs != 7)) {
9968 goto __pyx_L5_argtuple_error;
9969 } else {
9970 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9971 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 435, __pyx_L3_error)
9972 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9973 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 435, __pyx_L3_error)
9974 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9975 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 435, __pyx_L3_error)
9976 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9977 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 435, __pyx_L3_error)
9978 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9979 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 435, __pyx_L3_error)
9980 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9981 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 435, __pyx_L3_error)
9982 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9983 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 435, __pyx_L3_error)
9984 }
9985 __pyx_v_BDMmat_element = ((PyArrayObject *)values[0]);
9986 __pyx_v_BDMmatPivots_element = ((PyArrayObject *)values[1]);
9987 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[2]);
9988 __pyx_v_elementBoundariesArray = ((PyArrayObject *)values[3]);
9989 __pyx_v_w_dS_f = ((PyArrayObject *)values[4]);
9990 __pyx_v_ebq_global_flux = ((PyArrayObject *)values[5]);
9991 __pyx_v_q_vdofs = ((PyArrayObject *)values[6]);
9992 }
9993 goto __pyx_L6_skip;
9994 __pyx_L5_argtuple_error:;
9995 __Pyx_RaiseArgtupleInvalid("solveLocalBDM1projectionFromFlux", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 435, __pyx_L3_error)
9996 __pyx_L6_skip:;
9997 goto __pyx_L4_argument_unpacking_done;
9998 __pyx_L3_error:;
9999 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10000 Py_XDECREF(values[__pyx_temp]);
10001 }
10002 __Pyx_AddTraceback("cpostprocessing.solveLocalBDM1projectionFromFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
10003 __Pyx_RefNannyFinishContext();
10004 return NULL;
10005 __pyx_L4_argument_unpacking_done:;
10006 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmat_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmat_element", 0))) __PYX_ERR(0, 435, __pyx_L1_error)
10007 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_BDMmatPivots_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "BDMmatPivots_element", 0))) __PYX_ERR(0, 436, __pyx_L1_error)
10008 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 437, __pyx_L1_error)
10009 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundariesArray", 0))) __PYX_ERR(0, 438, __pyx_L1_error)
10010 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w_dS_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w_dS_f", 0))) __PYX_ERR(0, 439, __pyx_L1_error)
10011 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_global_flux), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_global_flux", 0))) __PYX_ERR(0, 440, __pyx_L1_error)
10012 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_vdofs", 0))) __PYX_ERR(0, 441, __pyx_L1_error)
10013 __pyx_r = __pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(__pyx_self, __pyx_v_BDMmat_element, __pyx_v_BDMmatPivots_element, __pyx_v_elementBoundaryElementsArray, __pyx_v_elementBoundariesArray, __pyx_v_w_dS_f, __pyx_v_ebq_global_flux, __pyx_v_q_vdofs);
10014
10015 /* function exit code */
10016 goto __pyx_L0;
10017 __pyx_L1_error:;
10018 __pyx_r = NULL;
10019 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10020 Py_XDECREF(values[__pyx_temp]);
10021 }
10022 goto __pyx_L7_cleaned_up;
10023 __pyx_L0:;
10024 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10025 Py_XDECREF(values[__pyx_temp]);
10026 }
10027 __pyx_L7_cleaned_up:;
10028 __Pyx_RefNannyFinishContext();
10029 return __pyx_r;
10030}
10031
10032static PyObject *__pyx_pf_15cpostprocessing_34solveLocalBDM1projectionFromFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_BDMmat_element, PyArrayObject *__pyx_v_BDMmatPivots_element, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_w_dS_f, PyArrayObject *__pyx_v_ebq_global_flux, PyArrayObject *__pyx_v_q_vdofs) {
10033 PyObject *__pyx_r = NULL;
10034 __Pyx_RefNannyDeclarations
10035 __Pyx_RefNannySetupContext("solveLocalBDM1projectionFromFlux", 0);
10036
10037 /* "cpostprocessing.pyx":442
10038 * np.ndarray ebq_global_flux,
10039 * np.ndarray q_vdofs):
10040 * pp.solveLocalBDM1projectionFromFlux(w_dS_f.shape[0], # <<<<<<<<<<<<<<
10041 * w_dS_f.shape[1],
10042 * w_dS_f.shape[2],
10043*/
10044 solveLocalBDM1projectionFromFlux((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w_dS_f)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_BDMmat_element)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmat_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_BDMmatPivots_element)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w_dS_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_global_flux)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_vdofs)));
10045
10046 /* "cpostprocessing.pyx":435
10047 * <double*>(q_vdofs.data))
10048 *
10049 * def solveLocalBDM1projectionFromFlux(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
10050 * np.ndarray BDMmatPivots_element,
10051 * np.ndarray elementBoundaryElementsArray,
10052*/
10053
10054 /* function exit code */
10055 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10056 __Pyx_XGIVEREF(__pyx_r);
10057 __Pyx_RefNannyFinishContext();
10058 return __pyx_r;
10059}
10060
10061/* "cpostprocessing.pyx":455
10062 * <double*>(q_vdofs.data))
10063 *
10064 * def getElementBDM1velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10065 * np.ndarray p1_vdofs,
10066 * np.ndarray q_velocity):
10067*/
10068
10069/* Python wrapper */
10070static PyObject *__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
10071#if CYTHON_VECTORCALL
10072PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10073#else
10074PyObject *__pyx_args, PyObject *__pyx_kwds
10075#endif
10076); /*proto*/
10077static PyMethodDef __pyx_mdef_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep = {"getElementBDM1velocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10078static PyObject *__pyx_pw_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
10079#if CYTHON_VECTORCALL
10080PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10081#else
10082PyObject *__pyx_args, PyObject *__pyx_kwds
10083#endif
10084) {
10085 PyArrayObject *__pyx_v_q_v = 0;
10086 PyArrayObject *__pyx_v_p1_vdofs = 0;
10087 PyArrayObject *__pyx_v_q_velocity = 0;
10088 #if !CYTHON_VECTORCALL
10089 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10090 #endif
10091 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10092 PyObject* values[3] = {0,0,0};
10093 int __pyx_lineno = 0;
10094 const char *__pyx_filename = NULL;
10095 int __pyx_clineno = 0;
10096 PyObject *__pyx_r = 0;
10097 __Pyx_RefNannyDeclarations
10098 __Pyx_RefNannySetupContext("getElementBDM1velocityValuesLagrangeRep (wrapper)", 0);
10099 #if !CYTHON_VECTORCALL
10100 #if CYTHON_ASSUME_SAFE_SIZE
10101 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10102 #else
10103 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10104 #endif
10105 #endif
10106 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10107 {
10108 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_q_v,&__pyx_mstate_global->__pyx_n_u_p1_vdofs,&__pyx_mstate_global->__pyx_n_u_q_velocity,0};
10109 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10110 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 455, __pyx_L3_error)
10111 if (__pyx_kwds_len > 0) {
10112 switch (__pyx_nargs) {
10113 case 3:
10114 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10115 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 455, __pyx_L3_error)
10116 CYTHON_FALLTHROUGH;
10117 case 2:
10118 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10119 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 455, __pyx_L3_error)
10120 CYTHON_FALLTHROUGH;
10121 case 1:
10122 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10123 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 455, __pyx_L3_error)
10124 CYTHON_FALLTHROUGH;
10125 case 0: break;
10126 default: goto __pyx_L5_argtuple_error;
10127 }
10128 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10129 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementBDM1velocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 455, __pyx_L3_error)
10130 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
10131 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementBDM1velocityValuesLagrangeRep", 1, 3, 3, i); __PYX_ERR(0, 455, __pyx_L3_error) }
10132 }
10133 } else if (unlikely(__pyx_nargs != 3)) {
10134 goto __pyx_L5_argtuple_error;
10135 } else {
10136 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10137 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 455, __pyx_L3_error)
10138 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10139 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 455, __pyx_L3_error)
10140 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10141 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 455, __pyx_L3_error)
10142 }
10143 __pyx_v_q_v = ((PyArrayObject *)values[0]);
10144 __pyx_v_p1_vdofs = ((PyArrayObject *)values[1]);
10145 __pyx_v_q_velocity = ((PyArrayObject *)values[2]);
10146 }
10147 goto __pyx_L6_skip;
10148 __pyx_L5_argtuple_error:;
10149 __Pyx_RaiseArgtupleInvalid("getElementBDM1velocityValuesLagrangeRep", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 455, __pyx_L3_error)
10150 __pyx_L6_skip:;
10151 goto __pyx_L4_argument_unpacking_done;
10152 __pyx_L3_error:;
10153 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10154 Py_XDECREF(values[__pyx_temp]);
10155 }
10156 __Pyx_AddTraceback("cpostprocessing.getElementBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10157 __Pyx_RefNannyFinishContext();
10158 return NULL;
10159 __pyx_L4_argument_unpacking_done:;
10160 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_v", 0))) __PYX_ERR(0, 455, __pyx_L1_error)
10161 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 456, __pyx_L1_error)
10162 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 457, __pyx_L1_error)
10163 __pyx_r = __pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(__pyx_self, __pyx_v_q_v, __pyx_v_p1_vdofs, __pyx_v_q_velocity);
10164
10165 /* function exit code */
10166 goto __pyx_L0;
10167 __pyx_L1_error:;
10168 __pyx_r = NULL;
10169 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10170 Py_XDECREF(values[__pyx_temp]);
10171 }
10172 goto __pyx_L7_cleaned_up;
10173 __pyx_L0:;
10174 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10175 Py_XDECREF(values[__pyx_temp]);
10176 }
10177 __pyx_L7_cleaned_up:;
10178 __Pyx_RefNannyFinishContext();
10179 return __pyx_r;
10180}
10181
10182static PyObject *__pyx_pf_15cpostprocessing_36getElementBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity) {
10183 int __pyx_v_nVDOFs_element;
10184 PyObject *__pyx_r = NULL;
10185 __Pyx_RefNannyDeclarations
10186 int __pyx_t_1;
10187 int __pyx_lineno = 0;
10188 const char *__pyx_filename = NULL;
10189 int __pyx_clineno = 0;
10190 __Pyx_RefNannySetupContext("getElementBDM1velocityValuesLagrangeRep", 0);
10191
10192 /* "cpostprocessing.pyx":458
10193 * np.ndarray p1_vdofs,
10194 * np.ndarray q_velocity):
10195 * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1) # <<<<<<<<<<<<<<
10196 *
10197 * if p1_vdofs.ndim > 1:
10198*/
10199 __pyx_v_nVDOFs_element = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]) * ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]) + 1));
10200
10201 /* "cpostprocessing.pyx":460
10202 * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1)
10203 *
10204 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10205 * assert nVDOFs_element == p1_vdofs.shape[1]
10206 * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
10207*/
10208 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_p1_vdofs) > 1);
10209
10210 if (__pyx_t_1) {
10211
10212
10213 /* "cpostprocessing.pyx":461
10214 *
10215 * if p1_vdofs.ndim > 1:
10216 * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
10217 * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
10218 * q_velocity.shape[1],
10219*/
10220 #ifndef CYTHON_WITHOUT_ASSERTIONS
10221 if (unlikely(__pyx_assertions_enabled())) {
10222 __pyx_t_1 = (__pyx_v_nVDOFs_element == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_p1_vdofs)[1]));
10223
10224 if (unlikely(!__pyx_t_1)) {
10225 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
10226 __PYX_ERR(0, 461, __pyx_L1_error)
10227 }
10228
10229 }
10230 #else
10231 if ((1)); else __PYX_ERR(0, 461, __pyx_L1_error)
10232 #endif
10233
10234 /* "cpostprocessing.pyx":460
10235 * cdef int nVDOFs_element = q_velocity.shape[2]*(q_velocity.shape[2]+1)
10236 *
10237 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10238 * assert nVDOFs_element == p1_vdofs.shape[1]
10239 * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0],
10240*/
10241 }
10242
10243 /* "cpostprocessing.pyx":462
10244 * if p1_vdofs.ndim > 1:
10245 * assert nVDOFs_element == p1_vdofs.shape[1]
10246 * pp.getElementBDM1velocityValuesLagrangeRep(q_velocity.shape[0], # <<<<<<<<<<<<<<
10247 * q_velocity.shape[1],
10248 * q_velocity.shape[2],
10249*/
10250 getElementBDM1velocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_v)[2]), __pyx_v_nVDOFs_element, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_p1_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_velocity)));
10251
10252 /* "cpostprocessing.pyx":455
10253 * <double*>(q_vdofs.data))
10254 *
10255 * def getElementBDM1velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10256 * np.ndarray p1_vdofs,
10257 * np.ndarray q_velocity):
10258*/
10259
10260 /* function exit code */
10261 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10262 goto __pyx_L0;
10263 __pyx_L1_error:;
10264 __Pyx_AddTraceback("cpostprocessing.getElementBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10265 __pyx_r = NULL;
10266 __pyx_L0:;
10267
10268 __Pyx_XGIVEREF(__pyx_r);
10269 __Pyx_RefNannyFinishContext();
10270 return __pyx_r;
10271}
10272
10273/* "cpostprocessing.pyx":471
10274 * <double*>(q_velocity.data))
10275 *
10276 * def getElementBDM2velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10277 * np.ndarray p1_vdofs,
10278 * np.ndarray q_velocity):
10279*/
10280
10281/* Python wrapper */
10282static PyObject *__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep(PyObject *__pyx_self,
10283#if CYTHON_VECTORCALL
10284PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10285#else
10286PyObject *__pyx_args, PyObject *__pyx_kwds
10287#endif
10288); /*proto*/
10289static PyMethodDef __pyx_mdef_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep = {"getElementBDM2velocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10290static PyObject *__pyx_pw_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep(PyObject *__pyx_self,
10291#if CYTHON_VECTORCALL
10292PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10293#else
10294PyObject *__pyx_args, PyObject *__pyx_kwds
10295#endif
10296) {
10297 PyArrayObject *__pyx_v_q_v = 0;
10298 PyArrayObject *__pyx_v_p1_vdofs = 0;
10299 PyArrayObject *__pyx_v_q_velocity = 0;
10300 #if !CYTHON_VECTORCALL
10301 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10302 #endif
10303 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10304 PyObject* values[3] = {0,0,0};
10305 int __pyx_lineno = 0;
10306 const char *__pyx_filename = NULL;
10307 int __pyx_clineno = 0;
10308 PyObject *__pyx_r = 0;
10309 __Pyx_RefNannyDeclarations
10310 __Pyx_RefNannySetupContext("getElementBDM2velocityValuesLagrangeRep (wrapper)", 0);
10311 #if !CYTHON_VECTORCALL
10312 #if CYTHON_ASSUME_SAFE_SIZE
10313 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10314 #else
10315 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10316 #endif
10317 #endif
10318 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10319 {
10320 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_q_v,&__pyx_mstate_global->__pyx_n_u_p1_vdofs,&__pyx_mstate_global->__pyx_n_u_q_velocity,0};
10321 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10322 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 471, __pyx_L3_error)
10323 if (__pyx_kwds_len > 0) {
10324 switch (__pyx_nargs) {
10325 case 3:
10326 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10327 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 471, __pyx_L3_error)
10328 CYTHON_FALLTHROUGH;
10329 case 2:
10330 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10331 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 471, __pyx_L3_error)
10332 CYTHON_FALLTHROUGH;
10333 case 1:
10334 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10335 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 471, __pyx_L3_error)
10336 CYTHON_FALLTHROUGH;
10337 case 0: break;
10338 default: goto __pyx_L5_argtuple_error;
10339 }
10340 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10341 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementBDM2velocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 471, __pyx_L3_error)
10342 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
10343 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementBDM2velocityValuesLagrangeRep", 1, 3, 3, i); __PYX_ERR(0, 471, __pyx_L3_error) }
10344 }
10345 } else if (unlikely(__pyx_nargs != 3)) {
10346 goto __pyx_L5_argtuple_error;
10347 } else {
10348 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10349 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 471, __pyx_L3_error)
10350 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10351 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 471, __pyx_L3_error)
10352 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10353 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 471, __pyx_L3_error)
10354 }
10355 __pyx_v_q_v = ((PyArrayObject *)values[0]);
10356 __pyx_v_p1_vdofs = ((PyArrayObject *)values[1]);
10357 __pyx_v_q_velocity = ((PyArrayObject *)values[2]);
10358 }
10359 goto __pyx_L6_skip;
10360 __pyx_L5_argtuple_error:;
10361 __Pyx_RaiseArgtupleInvalid("getElementBDM2velocityValuesLagrangeRep", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 471, __pyx_L3_error)
10362 __pyx_L6_skip:;
10363 goto __pyx_L4_argument_unpacking_done;
10364 __pyx_L3_error:;
10365 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10366 Py_XDECREF(values[__pyx_temp]);
10367 }
10368 __Pyx_AddTraceback("cpostprocessing.getElementBDM2velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10369 __Pyx_RefNannyFinishContext();
10370 return NULL;
10371 __pyx_L4_argument_unpacking_done:;
10372 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_v", 0))) __PYX_ERR(0, 471, __pyx_L1_error)
10373 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 472, __pyx_L1_error)
10374 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 473, __pyx_L1_error)
10375 __pyx_r = __pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(__pyx_self, __pyx_v_q_v, __pyx_v_p1_vdofs, __pyx_v_q_velocity);
10376
10377 /* function exit code */
10378 goto __pyx_L0;
10379 __pyx_L1_error:;
10380 __pyx_r = NULL;
10381 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10382 Py_XDECREF(values[__pyx_temp]);
10383 }
10384 goto __pyx_L7_cleaned_up;
10385 __pyx_L0:;
10386 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10387 Py_XDECREF(values[__pyx_temp]);
10388 }
10389 __pyx_L7_cleaned_up:;
10390 __Pyx_RefNannyFinishContext();
10391 return __pyx_r;
10392}
10393
10394static PyObject *__pyx_pf_15cpostprocessing_38getElementBDM2velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_q_velocity) {
10395 long __pyx_v_nVDOFs_element;
10396 PyObject *__pyx_r = NULL;
10397 __Pyx_RefNannyDeclarations
10398 int __pyx_t_1;
10399 int __pyx_lineno = 0;
10400 const char *__pyx_filename = NULL;
10401 int __pyx_clineno = 0;
10402 __Pyx_RefNannySetupContext("getElementBDM2velocityValuesLagrangeRep", 0);
10403
10404 /* "cpostprocessing.pyx":474
10405 * np.ndarray p1_vdofs,
10406 * np.ndarray q_velocity):
10407 * if q_velocity.shape[2] == 2: # <<<<<<<<<<<<<<
10408 * #dimension of bdm2 in 2d
10409 * nVDOFs_element = 12
10410*/
10411 __pyx_t_1 = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]) == 2);
10412
10413 if (__pyx_t_1) {
10414
10415
10416 /* "cpostprocessing.pyx":476
10417 * if q_velocity.shape[2] == 2:
10418 * #dimension of bdm2 in 2d
10419 * nVDOFs_element = 12 # <<<<<<<<<<<<<<
10420 * elif q_velocity.shape[2] == 3:
10421 * #dimension of bdm2 in 3d
10422*/
10423 __pyx_v_nVDOFs_element = 12;
10424
10425 /* "cpostprocessing.pyx":474
10426 * np.ndarray p1_vdofs,
10427 * np.ndarray q_velocity):
10428 * if q_velocity.shape[2] == 2: # <<<<<<<<<<<<<<
10429 * #dimension of bdm2 in 2d
10430 * nVDOFs_element = 12
10431*/
10432 goto __pyx_L3;
10433 }
10434
10435 /* "cpostprocessing.pyx":477
10436 * #dimension of bdm2 in 2d
10437 * nVDOFs_element = 12
10438 * elif q_velocity.shape[2] == 3: # <<<<<<<<<<<<<<
10439 * #dimension of bdm2 in 3d
10440 * nVDOFs_element = 30
10441*/
10442 __pyx_t_1 = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]) == 3);
10443
10444 if (__pyx_t_1) {
10445
10446
10447 /* "cpostprocessing.pyx":479
10448 * elif q_velocity.shape[2] == 3:
10449 * #dimension of bdm2 in 3d
10450 * nVDOFs_element = 30 # <<<<<<<<<<<<<<
10451 *
10452 * if p1_vdofs.ndim > 1:
10453*/
10454 __pyx_v_nVDOFs_element = 30;
10455
10456 /* "cpostprocessing.pyx":477
10457 * #dimension of bdm2 in 2d
10458 * nVDOFs_element = 12
10459 * elif q_velocity.shape[2] == 3: # <<<<<<<<<<<<<<
10460 * #dimension of bdm2 in 3d
10461 * nVDOFs_element = 30
10462*/
10463 }
10464 __pyx_L3:;
10465
10466 /* "cpostprocessing.pyx":481
10467 * nVDOFs_element = 30
10468 *
10469 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10470 * assert nVDOFs_element == p1_vdofs.shape[1]
10471 *
10472*/
10473 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_p1_vdofs) > 1);
10474
10475 if (__pyx_t_1) {
10476
10477
10478 /* "cpostprocessing.pyx":482
10479 *
10480 * if p1_vdofs.ndim > 1:
10481 * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
10482 *
10483 * pp.getElementBDM2velocityValuesLagrangeRep(q_velocity.shape[0],
10484*/
10485 #ifndef CYTHON_WITHOUT_ASSERTIONS
10486 if (unlikely(__pyx_assertions_enabled())) {
10487 __pyx_t_1 = (__pyx_v_nVDOFs_element == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_p1_vdofs)[1]));
10488
10489 if (unlikely(!__pyx_t_1)) {
10490 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
10491 __PYX_ERR(0, 482, __pyx_L1_error)
10492 }
10493
10494 }
10495 #else
10496 if ((1)); else __PYX_ERR(0, 482, __pyx_L1_error)
10497 #endif
10498
10499 /* "cpostprocessing.pyx":481
10500 * nVDOFs_element = 30
10501 *
10502 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10503 * assert nVDOFs_element == p1_vdofs.shape[1]
10504 *
10505*/
10506 }
10507
10508 /* "cpostprocessing.pyx":484
10509 * assert nVDOFs_element == p1_vdofs.shape[1]
10510 *
10511 * pp.getElementBDM2velocityValuesLagrangeRep(q_velocity.shape[0], # <<<<<<<<<<<<<<
10512 * q_velocity.shape[1],
10513 * q_velocity.shape[2],
10514*/
10515 getElementBDM2velocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_v)[2]), __pyx_v_nVDOFs_element, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_p1_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_velocity)));
10516
10517 /* "cpostprocessing.pyx":471
10518 * <double*>(q_velocity.data))
10519 *
10520 * def getElementBDM2velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10521 * np.ndarray p1_vdofs,
10522 * np.ndarray q_velocity):
10523*/
10524
10525 /* function exit code */
10526 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10527 goto __pyx_L0;
10528 __pyx_L1_error:;
10529 __Pyx_AddTraceback("cpostprocessing.getElementBDM2velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10530 __pyx_r = NULL;
10531 __pyx_L0:;
10532
10533 __Pyx_XGIVEREF(__pyx_r);
10534 __Pyx_RefNannyFinishContext();
10535 return __pyx_r;
10536}
10537
10538/* "cpostprocessing.pyx":493
10539 * <double*>(q_velocity.data))
10540 *
10541 * def getElementLDGvelocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10542 * np.ndarray vdofs,
10543 * np.ndarray q_velocity):
10544*/
10545
10546/* Python wrapper */
10547static PyObject *__pyx_pw_15cpostprocessing_41getElementLDGvelocityValuesLagrangeRep(PyObject *__pyx_self,
10548#if CYTHON_VECTORCALL
10549PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10550#else
10551PyObject *__pyx_args, PyObject *__pyx_kwds
10552#endif
10553); /*proto*/
10554static PyMethodDef __pyx_mdef_15cpostprocessing_41getElementLDGvelocityValuesLagrangeRep = {"getElementLDGvelocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_41getElementLDGvelocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10555static PyObject *__pyx_pw_15cpostprocessing_41getElementLDGvelocityValuesLagrangeRep(PyObject *__pyx_self,
10556#if CYTHON_VECTORCALL
10557PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10558#else
10559PyObject *__pyx_args, PyObject *__pyx_kwds
10560#endif
10561) {
10562 PyArrayObject *__pyx_v_q_v = 0;
10563 PyArrayObject *__pyx_v_vdofs = 0;
10564 PyArrayObject *__pyx_v_q_velocity = 0;
10565 #if !CYTHON_VECTORCALL
10566 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10567 #endif
10568 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10569 PyObject* values[3] = {0,0,0};
10570 int __pyx_lineno = 0;
10571 const char *__pyx_filename = NULL;
10572 int __pyx_clineno = 0;
10573 PyObject *__pyx_r = 0;
10574 __Pyx_RefNannyDeclarations
10575 __Pyx_RefNannySetupContext("getElementLDGvelocityValuesLagrangeRep (wrapper)", 0);
10576 #if !CYTHON_VECTORCALL
10577 #if CYTHON_ASSUME_SAFE_SIZE
10578 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10579 #else
10580 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10581 #endif
10582 #endif
10583 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10584 {
10585 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_q_v,&__pyx_mstate_global->__pyx_n_u_vdofs,&__pyx_mstate_global->__pyx_n_u_q_velocity,0};
10586 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10587 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 493, __pyx_L3_error)
10588 if (__pyx_kwds_len > 0) {
10589 switch (__pyx_nargs) {
10590 case 3:
10591 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10592 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 493, __pyx_L3_error)
10593 CYTHON_FALLTHROUGH;
10594 case 2:
10595 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10596 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 493, __pyx_L3_error)
10597 CYTHON_FALLTHROUGH;
10598 case 1:
10599 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10600 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 493, __pyx_L3_error)
10601 CYTHON_FALLTHROUGH;
10602 case 0: break;
10603 default: goto __pyx_L5_argtuple_error;
10604 }
10605 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10606 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementLDGvelocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 493, __pyx_L3_error)
10607 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
10608 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementLDGvelocityValuesLagrangeRep", 1, 3, 3, i); __PYX_ERR(0, 493, __pyx_L3_error) }
10609 }
10610 } else if (unlikely(__pyx_nargs != 3)) {
10611 goto __pyx_L5_argtuple_error;
10612 } else {
10613 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10614 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 493, __pyx_L3_error)
10615 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10616 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 493, __pyx_L3_error)
10617 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10618 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 493, __pyx_L3_error)
10619 }
10620 __pyx_v_q_v = ((PyArrayObject *)values[0]);
10621 __pyx_v_vdofs = ((PyArrayObject *)values[1]);
10622 __pyx_v_q_velocity = ((PyArrayObject *)values[2]);
10623 }
10624 goto __pyx_L6_skip;
10625 __pyx_L5_argtuple_error:;
10626 __Pyx_RaiseArgtupleInvalid("getElementLDGvelocityValuesLagrangeRep", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 493, __pyx_L3_error)
10627 __pyx_L6_skip:;
10628 goto __pyx_L4_argument_unpacking_done;
10629 __pyx_L3_error:;
10630 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10631 Py_XDECREF(values[__pyx_temp]);
10632 }
10633 __Pyx_AddTraceback("cpostprocessing.getElementLDGvelocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10634 __Pyx_RefNannyFinishContext();
10635 return NULL;
10636 __pyx_L4_argument_unpacking_done:;
10637 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_v", 0))) __PYX_ERR(0, 493, __pyx_L1_error)
10638 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vdofs", 0))) __PYX_ERR(0, 494, __pyx_L1_error)
10639 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_q_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "q_velocity", 0))) __PYX_ERR(0, 495, __pyx_L1_error)
10640 __pyx_r = __pyx_pf_15cpostprocessing_40getElementLDGvelocityValuesLagrangeRep(__pyx_self, __pyx_v_q_v, __pyx_v_vdofs, __pyx_v_q_velocity);
10641
10642 /* function exit code */
10643 goto __pyx_L0;
10644 __pyx_L1_error:;
10645 __pyx_r = NULL;
10646 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10647 Py_XDECREF(values[__pyx_temp]);
10648 }
10649 goto __pyx_L7_cleaned_up;
10650 __pyx_L0:;
10651 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10652 Py_XDECREF(values[__pyx_temp]);
10653 }
10654 __pyx_L7_cleaned_up:;
10655 __Pyx_RefNannyFinishContext();
10656 return __pyx_r;
10657}
10658
10659static PyObject *__pyx_pf_15cpostprocessing_40getElementLDGvelocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_q_v, PyArrayObject *__pyx_v_vdofs, PyArrayObject *__pyx_v_q_velocity) {
10660 int __pyx_v_nVDOF_element;
10661 int __pyx_v_nDOF_trial_element;
10662 PyObject *__pyx_r = NULL;
10663 __Pyx_RefNannyDeclarations
10664 int __pyx_t_1;
10665 int __pyx_lineno = 0;
10666 const char *__pyx_filename = NULL;
10667 int __pyx_clineno = 0;
10668 __Pyx_RefNannySetupContext("getElementLDGvelocityValuesLagrangeRep", 0);
10669
10670 /* "cpostprocessing.pyx":496
10671 * np.ndarray vdofs,
10672 * np.ndarray q_velocity):
10673 * cdef int nVDOF_element =vdofs.shape[1] # <<<<<<<<<<<<<<
10674 * cdef int nDOF_trial_element=q_v.shape[2]
10675 * if vdofs.ndim > 1:
10676*/
10677 __pyx_v_nVDOF_element = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_vdofs)[1]);
10678
10679 /* "cpostprocessing.pyx":497
10680 * np.ndarray q_velocity):
10681 * cdef int nVDOF_element =vdofs.shape[1]
10682 * cdef int nDOF_trial_element=q_v.shape[2] # <<<<<<<<<<<<<<
10683 * if vdofs.ndim > 1:
10684 * assert nVDOF_element == q_v.shape[2]*q_velocity.shape[2]
10685*/
10686 __pyx_v_nDOF_trial_element = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_v)[2]);
10687
10688 /* "cpostprocessing.pyx":498
10689 * cdef int nVDOF_element =vdofs.shape[1]
10690 * cdef int nDOF_trial_element=q_v.shape[2]
10691 * if vdofs.ndim > 1: # <<<<<<<<<<<<<<
10692 * assert nVDOF_element == q_v.shape[2]*q_velocity.shape[2]
10693 * pp.getElementLDGvelocityValuesLagrangeRep(q_velocity.shape[0],
10694*/
10695 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_vdofs) > 1);
10696
10697 if (__pyx_t_1) {
10698
10699
10700 /* "cpostprocessing.pyx":499
10701 * cdef int nDOF_trial_element=q_v.shape[2]
10702 * if vdofs.ndim > 1:
10703 * assert nVDOF_element == q_v.shape[2]*q_velocity.shape[2] # <<<<<<<<<<<<<<
10704 * pp.getElementLDGvelocityValuesLagrangeRep(q_velocity.shape[0],
10705 * q_velocity.shape[1],
10706*/
10707 #ifndef CYTHON_WITHOUT_ASSERTIONS
10708 if (unlikely(__pyx_assertions_enabled())) {
10709 __pyx_t_1 = (__pyx_v_nVDOF_element == ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_v)[2]) * (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2])));
10710
10711 if (unlikely(!__pyx_t_1)) {
10712 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
10713 __PYX_ERR(0, 499, __pyx_L1_error)
10714 }
10715
10716 }
10717 #else
10718 if ((1)); else __PYX_ERR(0, 499, __pyx_L1_error)
10719 #endif
10720
10721 /* "cpostprocessing.pyx":498
10722 * cdef int nVDOF_element =vdofs.shape[1]
10723 * cdef int nDOF_trial_element=q_v.shape[2]
10724 * if vdofs.ndim > 1: # <<<<<<<<<<<<<<
10725 * assert nVDOF_element == q_v.shape[2]*q_velocity.shape[2]
10726 * pp.getElementLDGvelocityValuesLagrangeRep(q_velocity.shape[0],
10727*/
10728 }
10729
10730 /* "cpostprocessing.pyx":500
10731 * if vdofs.ndim > 1:
10732 * assert nVDOF_element == q_v.shape[2]*q_velocity.shape[2]
10733 * pp.getElementLDGvelocityValuesLagrangeRep(q_velocity.shape[0], # <<<<<<<<<<<<<<
10734 * q_velocity.shape[1],
10735 * q_velocity.shape[2],
10736*/
10737 getElementLDGvelocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_q_velocity)[2]), __pyx_v_nDOF_trial_element, __pyx_v_nVDOF_element, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_q_velocity)));
10738
10739 /* "cpostprocessing.pyx":493
10740 * <double*>(q_velocity.data))
10741 *
10742 * def getElementLDGvelocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
10743 * np.ndarray vdofs,
10744 * np.ndarray q_velocity):
10745*/
10746
10747 /* function exit code */
10748 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10749 goto __pyx_L0;
10750 __pyx_L1_error:;
10751 __Pyx_AddTraceback("cpostprocessing.getElementLDGvelocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10752 __pyx_r = NULL;
10753 __pyx_L0:;
10754
10755
10756 __Pyx_XGIVEREF(__pyx_r);
10757 __Pyx_RefNannyFinishContext();
10758 return __pyx_r;
10759}
10760
10761/* "cpostprocessing.pyx":509
10762 * <double*>(q_velocity.data))
10763 *
10764 * def getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
10765 * np.ndarray exteriorElementBoundariesArray,
10766 * np.ndarray ebqe_v,
10767*/
10768
10769/* Python wrapper */
10770static PyObject *__pyx_pw_15cpostprocessing_43getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
10771#if CYTHON_VECTORCALL
10772PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10773#else
10774PyObject *__pyx_args, PyObject *__pyx_kwds
10775#endif
10776); /*proto*/
10777static PyMethodDef __pyx_mdef_15cpostprocessing_43getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep = {"getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_43getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10778static PyObject *__pyx_pw_15cpostprocessing_43getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
10779#if CYTHON_VECTORCALL
10780PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10781#else
10782PyObject *__pyx_args, PyObject *__pyx_kwds
10783#endif
10784) {
10785 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
10786 PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
10787 PyArrayObject *__pyx_v_ebqe_v = 0;
10788 PyArrayObject *__pyx_v_p1_vdofs = 0;
10789 PyArrayObject *__pyx_v_ebqe_velocity = 0;
10790 #if !CYTHON_VECTORCALL
10791 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10792 #endif
10793 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10794 PyObject* values[5] = {0,0,0,0,0};
10795 int __pyx_lineno = 0;
10796 const char *__pyx_filename = NULL;
10797 int __pyx_clineno = 0;
10798 PyObject *__pyx_r = 0;
10799 __Pyx_RefNannyDeclarations
10800 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep (wrapper)", 0);
10801 #if !CYTHON_VECTORCALL
10802 #if CYTHON_ASSUME_SAFE_SIZE
10803 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10804 #else
10805 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10806 #endif
10807 #endif
10808 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10809 {
10810 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_ebqe_v,&__pyx_mstate_global->__pyx_n_u_p1_vdofs,&__pyx_mstate_global->__pyx_n_u_ebqe_velocity,0};
10811 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10812 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 509, __pyx_L3_error)
10813 if (__pyx_kwds_len > 0) {
10814 switch (__pyx_nargs) {
10815 case 5:
10816 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10817 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 509, __pyx_L3_error)
10818 CYTHON_FALLTHROUGH;
10819 case 4:
10820 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10821 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 509, __pyx_L3_error)
10822 CYTHON_FALLTHROUGH;
10823 case 3:
10824 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10825 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 509, __pyx_L3_error)
10826 CYTHON_FALLTHROUGH;
10827 case 2:
10828 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10829 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 509, __pyx_L3_error)
10830 CYTHON_FALLTHROUGH;
10831 case 1:
10832 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10833 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 509, __pyx_L3_error)
10834 CYTHON_FALLTHROUGH;
10835 case 0: break;
10836 default: goto __pyx_L5_argtuple_error;
10837 }
10838 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10839 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 509, __pyx_L3_error)
10840 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
10841 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, i); __PYX_ERR(0, 509, __pyx_L3_error) }
10842 }
10843 } else if (unlikely(__pyx_nargs != 5)) {
10844 goto __pyx_L5_argtuple_error;
10845 } else {
10846 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10847 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 509, __pyx_L3_error)
10848 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10849 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 509, __pyx_L3_error)
10850 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10851 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 509, __pyx_L3_error)
10852 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10853 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 509, __pyx_L3_error)
10854 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10855 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 509, __pyx_L3_error)
10856 }
10857 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
10858 __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[1]);
10859 __pyx_v_ebqe_v = ((PyArrayObject *)values[2]);
10860 __pyx_v_p1_vdofs = ((PyArrayObject *)values[3]);
10861 __pyx_v_ebqe_velocity = ((PyArrayObject *)values[4]);
10862 }
10863 goto __pyx_L6_skip;
10864 __pyx_L5_argtuple_error:;
10865 __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
10866 __pyx_L6_skip:;
10867 goto __pyx_L4_argument_unpacking_done;
10868 __pyx_L3_error:;
10869 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10870 Py_XDECREF(values[__pyx_temp]);
10871 }
10872 __Pyx_AddTraceback("cpostprocessing.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10873 __Pyx_RefNannyFinishContext();
10874 return NULL;
10875 __pyx_L4_argument_unpacking_done:;
10876 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 509, __pyx_L1_error)
10877 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 510, __pyx_L1_error)
10878 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebqe_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebqe_v", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
10879 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 512, __pyx_L1_error)
10880 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebqe_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebqe_velocity", 0))) __PYX_ERR(0, 513, __pyx_L1_error)
10881 __pyx_r = __pyx_pf_15cpostprocessing_42getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesArray, __pyx_v_ebqe_v, __pyx_v_p1_vdofs, __pyx_v_ebqe_velocity);
10882
10883 /* function exit code */
10884 goto __pyx_L0;
10885 __pyx_L1_error:;
10886 __pyx_r = NULL;
10887 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10888 Py_XDECREF(values[__pyx_temp]);
10889 }
10890 goto __pyx_L7_cleaned_up;
10891 __pyx_L0:;
10892 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10893 Py_XDECREF(values[__pyx_temp]);
10894 }
10895 __pyx_L7_cleaned_up:;
10896 __Pyx_RefNannyFinishContext();
10897 return __pyx_r;
10898}
10899
10900static PyObject *__pyx_pf_15cpostprocessing_42getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebqe_velocity) {
10901 int __pyx_v_nVDOFs_element;
10902 PyObject *__pyx_r = NULL;
10903 __Pyx_RefNannyDeclarations
10904 int __pyx_t_1;
10905 int __pyx_lineno = 0;
10906 const char *__pyx_filename = NULL;
10907 int __pyx_clineno = 0;
10908 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", 0);
10909
10910 /* "cpostprocessing.pyx":514
10911 * np.ndarray p1_vdofs,
10912 * np.ndarray ebqe_velocity):
10913 * cdef int nVDOFs_element = ebqe_velocity.shape[2]*(ebqe_velocity.shape[2]+1) # <<<<<<<<<<<<<<
10914 * if p1_vdofs.ndim > 1:
10915 * assert nVDOFs_element == p1_vdofs.shape[1]
10916*/
10917 __pyx_v_nVDOFs_element = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_velocity)[2]) * ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_velocity)[2]) + 1));
10918
10919 /* "cpostprocessing.pyx":515
10920 * np.ndarray ebqe_velocity):
10921 * cdef int nVDOFs_element = ebqe_velocity.shape[2]*(ebqe_velocity.shape[2]+1)
10922 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10923 * assert nVDOFs_element == p1_vdofs.shape[1]
10924 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_velocity.shape[0],
10925*/
10926 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_p1_vdofs) > 1);
10927
10928 if (__pyx_t_1) {
10929
10930
10931 /* "cpostprocessing.pyx":516
10932 * cdef int nVDOFs_element = ebqe_velocity.shape[2]*(ebqe_velocity.shape[2]+1)
10933 * if p1_vdofs.ndim > 1:
10934 * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
10935 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_velocity.shape[0],
10936 * ebqe_velocity.shape[1],
10937*/
10938 #ifndef CYTHON_WITHOUT_ASSERTIONS
10939 if (unlikely(__pyx_assertions_enabled())) {
10940 __pyx_t_1 = (__pyx_v_nVDOFs_element == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_p1_vdofs)[1]));
10941
10942 if (unlikely(!__pyx_t_1)) {
10943 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
10944 __PYX_ERR(0, 516, __pyx_L1_error)
10945 }
10946
10947 }
10948 #else
10949 if ((1)); else __PYX_ERR(0, 516, __pyx_L1_error)
10950 #endif
10951
10952 /* "cpostprocessing.pyx":515
10953 * np.ndarray ebqe_velocity):
10954 * cdef int nVDOFs_element = ebqe_velocity.shape[2]*(ebqe_velocity.shape[2]+1)
10955 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
10956 * assert nVDOFs_element == p1_vdofs.shape[1]
10957 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_velocity.shape[0],
10958*/
10959 }
10960
10961 /* "cpostprocessing.pyx":517
10962 * if p1_vdofs.ndim > 1:
10963 * assert nVDOFs_element == p1_vdofs.shape[1]
10964 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_velocity.shape[0], # <<<<<<<<<<<<<<
10965 * ebqe_velocity.shape[1],
10966 * ebqe_velocity.shape[2],
10967*/
10968 getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_velocity)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_v)[2]), __pyx_v_nVDOFs_element, ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebqe_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_p1_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebqe_velocity)));
10969
10970 /* "cpostprocessing.pyx":509
10971 * <double*>(q_velocity.data))
10972 *
10973 * def getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
10974 * np.ndarray exteriorElementBoundariesArray,
10975 * np.ndarray ebqe_v,
10976*/
10977
10978 /* function exit code */
10979 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10980 goto __pyx_L0;
10981 __pyx_L1_error:;
10982 __Pyx_AddTraceback("cpostprocessing.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
10983 __pyx_r = NULL;
10984 __pyx_L0:;
10985
10986 __Pyx_XGIVEREF(__pyx_r);
10987 __Pyx_RefNannyFinishContext();
10988 return __pyx_r;
10989}
10990
10991/* "cpostprocessing.pyx":528
10992 * <double*>(ebqe_velocity.data))
10993 *
10994 * def getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
10995 * np.ndarray exteriorElementBoundariesArray,
10996 * np.ndarray ebqe_v,
10997*/
10998
10999/* Python wrapper */
11000static PyObject *__pyx_pw_15cpostprocessing_45getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
11001#if CYTHON_VECTORCALL
11002PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11003#else
11004PyObject *__pyx_args, PyObject *__pyx_kwds
11005#endif
11006); /*proto*/
11007static PyMethodDef __pyx_mdef_15cpostprocessing_45getGlobalElementBoundaryBDM1velocityValuesLagrangeRep = {"getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_45getGlobalElementBoundaryBDM1velocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11008static PyObject *__pyx_pw_15cpostprocessing_45getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
11009#if CYTHON_VECTORCALL
11010PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11011#else
11012PyObject *__pyx_args, PyObject *__pyx_kwds
11013#endif
11014) {
11015 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
11016 PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
11017 PyArrayObject *__pyx_v_ebqe_v = 0;
11018 PyArrayObject *__pyx_v_p1_vdofs = 0;
11019 PyArrayObject *__pyx_v_ebq_global_velocity = 0;
11020 #if !CYTHON_VECTORCALL
11021 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11022 #endif
11023 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11024 PyObject* values[5] = {0,0,0,0,0};
11025 int __pyx_lineno = 0;
11026 const char *__pyx_filename = NULL;
11027 int __pyx_clineno = 0;
11028 PyObject *__pyx_r = 0;
11029 __Pyx_RefNannyDeclarations
11030 __Pyx_RefNannySetupContext("getGlobalElementBoundaryBDM1velocityValuesLagrangeRep (wrapper)", 0);
11031 #if !CYTHON_VECTORCALL
11032 #if CYTHON_ASSUME_SAFE_SIZE
11033 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11034 #else
11035 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11036 #endif
11037 #endif
11038 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11039 {
11040 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_ebqe_v,&__pyx_mstate_global->__pyx_n_u_p1_vdofs,&__pyx_mstate_global->__pyx_n_u_ebq_global_velocity,0};
11041 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11042 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 528, __pyx_L3_error)
11043 if (__pyx_kwds_len > 0) {
11044 switch (__pyx_nargs) {
11045 case 5:
11046 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11047 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 528, __pyx_L3_error)
11048 CYTHON_FALLTHROUGH;
11049 case 4:
11050 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11051 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 528, __pyx_L3_error)
11052 CYTHON_FALLTHROUGH;
11053 case 3:
11054 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11055 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 528, __pyx_L3_error)
11056 CYTHON_FALLTHROUGH;
11057 case 2:
11058 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11059 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 528, __pyx_L3_error)
11060 CYTHON_FALLTHROUGH;
11061 case 1:
11062 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11063 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 528, __pyx_L3_error)
11064 CYTHON_FALLTHROUGH;
11065 case 0: break;
11066 default: goto __pyx_L5_argtuple_error;
11067 }
11068 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11069 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 528, __pyx_L3_error)
11070 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
11071 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, i); __PYX_ERR(0, 528, __pyx_L3_error) }
11072 }
11073 } else if (unlikely(__pyx_nargs != 5)) {
11074 goto __pyx_L5_argtuple_error;
11075 } else {
11076 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11077 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 528, __pyx_L3_error)
11078 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11079 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 528, __pyx_L3_error)
11080 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11081 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 528, __pyx_L3_error)
11082 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11083 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 528, __pyx_L3_error)
11084 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11085 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 528, __pyx_L3_error)
11086 }
11087 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
11088 __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[1]);
11089 __pyx_v_ebqe_v = ((PyArrayObject *)values[2]);
11090 __pyx_v_p1_vdofs = ((PyArrayObject *)values[3]);
11091 __pyx_v_ebq_global_velocity = ((PyArrayObject *)values[4]);
11092 }
11093 goto __pyx_L6_skip;
11094 __pyx_L5_argtuple_error:;
11095 __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 528, __pyx_L3_error)
11096 __pyx_L6_skip:;
11097 goto __pyx_L4_argument_unpacking_done;
11098 __pyx_L3_error:;
11099 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11100 Py_XDECREF(values[__pyx_temp]);
11101 }
11102 __Pyx_AddTraceback("cpostprocessing.getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11103 __Pyx_RefNannyFinishContext();
11104 return NULL;
11105 __pyx_L4_argument_unpacking_done:;
11106 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 528, __pyx_L1_error)
11107 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 529, __pyx_L1_error)
11108 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebqe_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebqe_v", 0))) __PYX_ERR(0, 530, __pyx_L1_error)
11109 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 531, __pyx_L1_error)
11110 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_global_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_global_velocity", 0))) __PYX_ERR(0, 532, __pyx_L1_error)
11111 __pyx_r = __pyx_pf_15cpostprocessing_44getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesArray, __pyx_v_ebqe_v, __pyx_v_p1_vdofs, __pyx_v_ebq_global_velocity);
11112
11113 /* function exit code */
11114 goto __pyx_L0;
11115 __pyx_L1_error:;
11116 __pyx_r = NULL;
11117 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11118 Py_XDECREF(values[__pyx_temp]);
11119 }
11120 goto __pyx_L7_cleaned_up;
11121 __pyx_L0:;
11122 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11123 Py_XDECREF(values[__pyx_temp]);
11124 }
11125 __pyx_L7_cleaned_up:;
11126 __Pyx_RefNannyFinishContext();
11127 return __pyx_r;
11128}
11129
11130static PyObject *__pyx_pf_15cpostprocessing_44getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebqe_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_global_velocity) {
11131 int __pyx_v_nVDOFs_element;
11132 PyObject *__pyx_r = NULL;
11133 __Pyx_RefNannyDeclarations
11134 int __pyx_t_1;
11135 int __pyx_lineno = 0;
11136 const char *__pyx_filename = NULL;
11137 int __pyx_clineno = 0;
11138 __Pyx_RefNannySetupContext("getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", 0);
11139
11140 /* "cpostprocessing.pyx":533
11141 * np.ndarray p1_vdofs,
11142 * np.ndarray ebq_global_velocity):
11143 * cdef int nVDOFs_element = ebq_global_velocity.shape[2]*(ebq_global_velocity.shape[2]+1) # <<<<<<<<<<<<<<
11144 * if p1_vdofs.ndim > 1:
11145 * assert nVDOFs_element == p1_vdofs.shape[1]
11146*/
11147 __pyx_v_nVDOFs_element = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_global_velocity)[2]) * ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_global_velocity)[2]) + 1));
11148
11149 /* "cpostprocessing.pyx":534
11150 * np.ndarray ebq_global_velocity):
11151 * cdef int nVDOFs_element = ebq_global_velocity.shape[2]*(ebq_global_velocity.shape[2]+1)
11152 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
11153 * assert nVDOFs_element == p1_vdofs.shape[1]
11154 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_v.shape[0],
11155*/
11156 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_p1_vdofs) > 1);
11157
11158 if (__pyx_t_1) {
11159
11160
11161 /* "cpostprocessing.pyx":535
11162 * cdef int nVDOFs_element = ebq_global_velocity.shape[2]*(ebq_global_velocity.shape[2]+1)
11163 * if p1_vdofs.ndim > 1:
11164 * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
11165 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_v.shape[0],
11166 * ebq_global_velocity.shape[1],
11167*/
11168 #ifndef CYTHON_WITHOUT_ASSERTIONS
11169 if (unlikely(__pyx_assertions_enabled())) {
11170 __pyx_t_1 = (__pyx_v_nVDOFs_element == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_p1_vdofs)[1]));
11171
11172 if (unlikely(!__pyx_t_1)) {
11173 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
11174 __PYX_ERR(0, 535, __pyx_L1_error)
11175 }
11176
11177 }
11178 #else
11179 if ((1)); else __PYX_ERR(0, 535, __pyx_L1_error)
11180 #endif
11181
11182 /* "cpostprocessing.pyx":534
11183 * np.ndarray ebq_global_velocity):
11184 * cdef int nVDOFs_element = ebq_global_velocity.shape[2]*(ebq_global_velocity.shape[2]+1)
11185 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
11186 * assert nVDOFs_element == p1_vdofs.shape[1]
11187 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_v.shape[0],
11188*/
11189 }
11190
11191 /* "cpostprocessing.pyx":536
11192 * if p1_vdofs.ndim > 1:
11193 * assert nVDOFs_element == p1_vdofs.shape[1]
11194 * pp.getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(ebqe_v.shape[0], # <<<<<<<<<<<<<<
11195 * ebq_global_velocity.shape[1],
11196 * ebq_global_velocity.shape[2],
11197*/
11198 getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_v)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_global_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_global_velocity)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebqe_v)[2]), __pyx_v_nVDOFs_element, ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebqe_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_p1_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_global_velocity)));
11199
11200 /* "cpostprocessing.pyx":528
11201 * <double*>(ebqe_velocity.data))
11202 *
11203 * def getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
11204 * np.ndarray exteriorElementBoundariesArray,
11205 * np.ndarray ebqe_v,
11206*/
11207
11208 /* function exit code */
11209 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11210 goto __pyx_L0;
11211 __pyx_L1_error:;
11212 __Pyx_AddTraceback("cpostprocessing.getGlobalElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11213 __pyx_r = NULL;
11214 __pyx_L0:;
11215
11216 __Pyx_XGIVEREF(__pyx_r);
11217 __Pyx_RefNannyFinishContext();
11218 return __pyx_r;
11219}
11220
11221/* "cpostprocessing.pyx":547
11222 * <double*>(ebq_global_velocity.data))
11223 *
11224 * def getElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
11225 * np.ndarray exteriorElementBoundariesArray,
11226 * np.ndarray ebq_v,
11227*/
11228
11229/* Python wrapper */
11230static PyObject *__pyx_pw_15cpostprocessing_47getElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
11231#if CYTHON_VECTORCALL
11232PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11233#else
11234PyObject *__pyx_args, PyObject *__pyx_kwds
11235#endif
11236); /*proto*/
11237static PyMethodDef __pyx_mdef_15cpostprocessing_47getElementBoundaryBDM1velocityValuesLagrangeRep = {"getElementBoundaryBDM1velocityValuesLagrangeRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_47getElementBoundaryBDM1velocityValuesLagrangeRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11238static PyObject *__pyx_pw_15cpostprocessing_47getElementBoundaryBDM1velocityValuesLagrangeRep(PyObject *__pyx_self,
11239#if CYTHON_VECTORCALL
11240PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11241#else
11242PyObject *__pyx_args, PyObject *__pyx_kwds
11243#endif
11244) {
11245 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
11246 PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
11247 PyArrayObject *__pyx_v_ebq_v = 0;
11248 PyArrayObject *__pyx_v_p1_vdofs = 0;
11249 PyArrayObject *__pyx_v_ebq_velocity = 0;
11250 #if !CYTHON_VECTORCALL
11251 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11252 #endif
11253 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11254 PyObject* values[5] = {0,0,0,0,0};
11255 int __pyx_lineno = 0;
11256 const char *__pyx_filename = NULL;
11257 int __pyx_clineno = 0;
11258 PyObject *__pyx_r = 0;
11259 __Pyx_RefNannyDeclarations
11260 __Pyx_RefNannySetupContext("getElementBoundaryBDM1velocityValuesLagrangeRep (wrapper)", 0);
11261 #if !CYTHON_VECTORCALL
11262 #if CYTHON_ASSUME_SAFE_SIZE
11263 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11264 #else
11265 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11266 #endif
11267 #endif
11268 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11269 {
11270 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_ebq_v,&__pyx_mstate_global->__pyx_n_u_p1_vdofs,&__pyx_mstate_global->__pyx_n_u_ebq_velocity,0};
11271 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11272 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 547, __pyx_L3_error)
11273 if (__pyx_kwds_len > 0) {
11274 switch (__pyx_nargs) {
11275 case 5:
11276 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11277 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 547, __pyx_L3_error)
11278 CYTHON_FALLTHROUGH;
11279 case 4:
11280 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11281 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 547, __pyx_L3_error)
11282 CYTHON_FALLTHROUGH;
11283 case 3:
11284 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11285 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 547, __pyx_L3_error)
11286 CYTHON_FALLTHROUGH;
11287 case 2:
11288 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11289 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 547, __pyx_L3_error)
11290 CYTHON_FALLTHROUGH;
11291 case 1:
11292 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11293 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 547, __pyx_L3_error)
11294 CYTHON_FALLTHROUGH;
11295 case 0: break;
11296 default: goto __pyx_L5_argtuple_error;
11297 }
11298 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11299 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementBoundaryBDM1velocityValuesLagrangeRep", 0) < (0)) __PYX_ERR(0, 547, __pyx_L3_error)
11300 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
11301 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, i); __PYX_ERR(0, 547, __pyx_L3_error) }
11302 }
11303 } else if (unlikely(__pyx_nargs != 5)) {
11304 goto __pyx_L5_argtuple_error;
11305 } else {
11306 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11307 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 547, __pyx_L3_error)
11308 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11309 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 547, __pyx_L3_error)
11310 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11311 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 547, __pyx_L3_error)
11312 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11313 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 547, __pyx_L3_error)
11314 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11315 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 547, __pyx_L3_error)
11316 }
11317 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
11318 __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[1]);
11319 __pyx_v_ebq_v = ((PyArrayObject *)values[2]);
11320 __pyx_v_p1_vdofs = ((PyArrayObject *)values[3]);
11321 __pyx_v_ebq_velocity = ((PyArrayObject *)values[4]);
11322 }
11323 goto __pyx_L6_skip;
11324 __pyx_L5_argtuple_error:;
11325 __Pyx_RaiseArgtupleInvalid("getElementBoundaryBDM1velocityValuesLagrangeRep", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 547, __pyx_L3_error)
11326 __pyx_L6_skip:;
11327 goto __pyx_L4_argument_unpacking_done;
11328 __pyx_L3_error:;
11329 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11330 Py_XDECREF(values[__pyx_temp]);
11331 }
11332 __Pyx_AddTraceback("cpostprocessing.getElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11333 __Pyx_RefNannyFinishContext();
11334 return NULL;
11335 __pyx_L4_argument_unpacking_done:;
11336 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 547, __pyx_L1_error)
11337 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 548, __pyx_L1_error)
11338 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v", 0))) __PYX_ERR(0, 549, __pyx_L1_error)
11339 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_p1_vdofs), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "p1_vdofs", 0))) __PYX_ERR(0, 550, __pyx_L1_error)
11340 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 551, __pyx_L1_error)
11341 __pyx_r = __pyx_pf_15cpostprocessing_46getElementBoundaryBDM1velocityValuesLagrangeRep(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesArray, __pyx_v_ebq_v, __pyx_v_p1_vdofs, __pyx_v_ebq_velocity);
11342
11343 /* function exit code */
11344 goto __pyx_L0;
11345 __pyx_L1_error:;
11346 __pyx_r = NULL;
11347 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11348 Py_XDECREF(values[__pyx_temp]);
11349 }
11350 goto __pyx_L7_cleaned_up;
11351 __pyx_L0:;
11352 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11353 Py_XDECREF(values[__pyx_temp]);
11354 }
11355 __pyx_L7_cleaned_up:;
11356 __Pyx_RefNannyFinishContext();
11357 return __pyx_r;
11358}
11359
11360static PyObject *__pyx_pf_15cpostprocessing_46getElementBoundaryBDM1velocityValuesLagrangeRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_ebq_v, PyArrayObject *__pyx_v_p1_vdofs, PyArrayObject *__pyx_v_ebq_velocity) {
11361 int __pyx_v_nVDOFs_element;
11362 PyObject *__pyx_r = NULL;
11363 __Pyx_RefNannyDeclarations
11364 int __pyx_t_1;
11365 int __pyx_lineno = 0;
11366 const char *__pyx_filename = NULL;
11367 int __pyx_clineno = 0;
11368 __Pyx_RefNannySetupContext("getElementBoundaryBDM1velocityValuesLagrangeRep", 0);
11369
11370 /* "cpostprocessing.pyx":552
11371 * np.ndarray p1_vdofs,
11372 * np.ndarray ebq_velocity):
11373 * cdef int nVDOFs_element = ebq_velocity.shape[3]*(ebq_velocity.shape[3]+1) # <<<<<<<<<<<<<<
11374 * if p1_vdofs.ndim > 1:
11375 * assert nVDOFs_element == p1_vdofs.shape[1]
11376*/
11377 __pyx_v_nVDOFs_element = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[3]) * ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[3]) + 1));
11378
11379 /* "cpostprocessing.pyx":553
11380 * np.ndarray ebq_velocity):
11381 * cdef int nVDOFs_element = ebq_velocity.shape[3]*(ebq_velocity.shape[3]+1)
11382 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
11383 * assert nVDOFs_element == p1_vdofs.shape[1]
11384 * pp.getElementBoundaryBDM1velocityValuesLagrangeRep(ebq_velocity.shape[0],
11385*/
11386 __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_p1_vdofs) > 1);
11387
11388 if (__pyx_t_1) {
11389
11390
11391 /* "cpostprocessing.pyx":554
11392 * cdef int nVDOFs_element = ebq_velocity.shape[3]*(ebq_velocity.shape[3]+1)
11393 * if p1_vdofs.ndim > 1:
11394 * assert nVDOFs_element == p1_vdofs.shape[1] # <<<<<<<<<<<<<<
11395 * pp.getElementBoundaryBDM1velocityValuesLagrangeRep(ebq_velocity.shape[0],
11396 * ebq_velocity.shape[1],
11397*/
11398 #ifndef CYTHON_WITHOUT_ASSERTIONS
11399 if (unlikely(__pyx_assertions_enabled())) {
11400 __pyx_t_1 = (__pyx_v_nVDOFs_element == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_p1_vdofs)[1]));
11401
11402 if (unlikely(!__pyx_t_1)) {
11403 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
11404 __PYX_ERR(0, 554, __pyx_L1_error)
11405 }
11406
11407 }
11408 #else
11409 if ((1)); else __PYX_ERR(0, 554, __pyx_L1_error)
11410 #endif
11411
11412 /* "cpostprocessing.pyx":555
11413 * if p1_vdofs.ndim > 1:
11414 * assert nVDOFs_element == p1_vdofs.shape[1]
11415 * pp.getElementBoundaryBDM1velocityValuesLagrangeRep(ebq_velocity.shape[0], # <<<<<<<<<<<<<<
11416 * ebq_velocity.shape[1],
11417 * ebq_velocity.shape[2],
11418*/
11419 getElementBoundaryBDM1velocityValuesLagrangeRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_velocity)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v)[2]), __pyx_v_nVDOFs_element, ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_p1_vdofs)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_ebq_velocity)));
11420
11421 /* "cpostprocessing.pyx":553
11422 * np.ndarray ebq_velocity):
11423 * cdef int nVDOFs_element = ebq_velocity.shape[3]*(ebq_velocity.shape[3]+1)
11424 * if p1_vdofs.ndim > 1: # <<<<<<<<<<<<<<
11425 * assert nVDOFs_element == p1_vdofs.shape[1]
11426 * pp.getElementBoundaryBDM1velocityValuesLagrangeRep(ebq_velocity.shape[0],
11427*/
11428 }
11429
11430 /* "cpostprocessing.pyx":547
11431 * <double*>(ebq_global_velocity.data))
11432 *
11433 * def getElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
11434 * np.ndarray exteriorElementBoundariesArray,
11435 * np.ndarray ebq_v,
11436*/
11437
11438 /* function exit code */
11439 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11440 goto __pyx_L0;
11441 __pyx_L1_error:;
11442 __Pyx_AddTraceback("cpostprocessing.getElementBoundaryBDM1velocityValuesLagrangeRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11443 __pyx_r = NULL;
11444 __pyx_L0:;
11445
11446 __Pyx_XGIVEREF(__pyx_r);
11447 __Pyx_RefNannyFinishContext();
11448 return __pyx_r;
11449}
11450
11451/* "cpostprocessing.pyx":567
11452 * <double*>(ebq_velocity.data))
11453 *
11454 * def projectElementBoundaryVelocityToRT0fluxRep(np.ndarray elementBoundaryQuadratureWeights, # <<<<<<<<<<<<<<
11455 * np.ndarray n,
11456 * np.ndarray v_elementBoundary,
11457*/
11458
11459/* Python wrapper */
11460static PyObject *__pyx_pw_15cpostprocessing_49projectElementBoundaryVelocityToRT0fluxRep(PyObject *__pyx_self,
11461#if CYTHON_VECTORCALL
11462PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11463#else
11464PyObject *__pyx_args, PyObject *__pyx_kwds
11465#endif
11466); /*proto*/
11467static PyMethodDef __pyx_mdef_15cpostprocessing_49projectElementBoundaryVelocityToRT0fluxRep = {"projectElementBoundaryVelocityToRT0fluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_49projectElementBoundaryVelocityToRT0fluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11468static PyObject *__pyx_pw_15cpostprocessing_49projectElementBoundaryVelocityToRT0fluxRep(PyObject *__pyx_self,
11469#if CYTHON_VECTORCALL
11470PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11471#else
11472PyObject *__pyx_args, PyObject *__pyx_kwds
11473#endif
11474) {
11475 PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights = 0;
11476 PyArrayObject *__pyx_v_n = 0;
11477 PyArrayObject *__pyx_v_v_elementBoundary = 0;
11478 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
11479 #if !CYTHON_VECTORCALL
11480 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11481 #endif
11482 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11483 PyObject* values[4] = {0,0,0,0};
11484 int __pyx_lineno = 0;
11485 const char *__pyx_filename = NULL;
11486 int __pyx_clineno = 0;
11487 PyObject *__pyx_r = 0;
11488 __Pyx_RefNannyDeclarations
11489 __Pyx_RefNannySetupContext("projectElementBoundaryVelocityToRT0fluxRep (wrapper)", 0);
11490 #if !CYTHON_VECTORCALL
11491 #if CYTHON_ASSUME_SAFE_SIZE
11492 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11493 #else
11494 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11495 #endif
11496 #endif
11497 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11498 {
11499 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryQuadratureWeights,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,0};
11500 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11501 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 567, __pyx_L3_error)
11502 if (__pyx_kwds_len > 0) {
11503 switch (__pyx_nargs) {
11504 case 4:
11505 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11506 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 567, __pyx_L3_error)
11507 CYTHON_FALLTHROUGH;
11508 case 3:
11509 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11510 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 567, __pyx_L3_error)
11511 CYTHON_FALLTHROUGH;
11512 case 2:
11513 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11514 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 567, __pyx_L3_error)
11515 CYTHON_FALLTHROUGH;
11516 case 1:
11517 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11518 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 567, __pyx_L3_error)
11519 CYTHON_FALLTHROUGH;
11520 case 0: break;
11521 default: goto __pyx_L5_argtuple_error;
11522 }
11523 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11524 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "projectElementBoundaryVelocityToRT0fluxRep", 0) < (0)) __PYX_ERR(0, 567, __pyx_L3_error)
11525 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
11526 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("projectElementBoundaryVelocityToRT0fluxRep", 1, 4, 4, i); __PYX_ERR(0, 567, __pyx_L3_error) }
11527 }
11528 } else if (unlikely(__pyx_nargs != 4)) {
11529 goto __pyx_L5_argtuple_error;
11530 } else {
11531 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11532 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 567, __pyx_L3_error)
11533 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11534 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 567, __pyx_L3_error)
11535 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11536 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 567, __pyx_L3_error)
11537 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11538 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 567, __pyx_L3_error)
11539 }
11540 __pyx_v_elementBoundaryQuadratureWeights = ((PyArrayObject *)values[0]);
11541 __pyx_v_n = ((PyArrayObject *)values[1]);
11542 __pyx_v_v_elementBoundary = ((PyArrayObject *)values[2]);
11543 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[3]);
11544 }
11545 goto __pyx_L6_skip;
11546 __pyx_L5_argtuple_error:;
11547 __Pyx_RaiseArgtupleInvalid("projectElementBoundaryVelocityToRT0fluxRep", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 567, __pyx_L3_error)
11548 __pyx_L6_skip:;
11549 goto __pyx_L4_argument_unpacking_done;
11550 __pyx_L3_error:;
11551 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11552 Py_XDECREF(values[__pyx_temp]);
11553 }
11554 __Pyx_AddTraceback("cpostprocessing.projectElementBoundaryVelocityToRT0fluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11555 __Pyx_RefNannyFinishContext();
11556 return NULL;
11557 __pyx_L4_argument_unpacking_done:;
11558 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryQuadratureWeights), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryQuadratureWeights", 0))) __PYX_ERR(0, 567, __pyx_L1_error)
11559 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 568, __pyx_L1_error)
11560 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary", 0))) __PYX_ERR(0, 569, __pyx_L1_error)
11561 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 570, __pyx_L1_error)
11562 __pyx_r = __pyx_pf_15cpostprocessing_48projectElementBoundaryVelocityToRT0fluxRep(__pyx_self, __pyx_v_elementBoundaryQuadratureWeights, __pyx_v_n, __pyx_v_v_elementBoundary, __pyx_v_rt0vdofs_element);
11563
11564 /* function exit code */
11565 goto __pyx_L0;
11566 __pyx_L1_error:;
11567 __pyx_r = NULL;
11568 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11569 Py_XDECREF(values[__pyx_temp]);
11570 }
11571 goto __pyx_L7_cleaned_up;
11572 __pyx_L0:;
11573 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11574 Py_XDECREF(values[__pyx_temp]);
11575 }
11576 __pyx_L7_cleaned_up:;
11577 __Pyx_RefNannyFinishContext();
11578 return __pyx_r;
11579}
11580
11581static PyObject *__pyx_pf_15cpostprocessing_48projectElementBoundaryVelocityToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_v_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element) {
11582 PyObject *__pyx_r = NULL;
11583 __Pyx_RefNannyDeclarations
11584 __Pyx_RefNannySetupContext("projectElementBoundaryVelocityToRT0fluxRep", 0);
11585
11586 /* "cpostprocessing.pyx":571
11587 * np.ndarray v_elementBoundary,
11588 * np.ndarray rt0vdofs_element):
11589 * pp.projectElementBoundaryVelocityToRT0fluxRep(n.shape[0], # <<<<<<<<<<<<<<
11590 * n.shape[1],
11591 * n.shape[2],
11592*/
11593 projectElementBoundaryVelocityToRT0fluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[3]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryQuadratureWeights)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)));
11594
11595 /* "cpostprocessing.pyx":567
11596 * <double*>(ebq_velocity.data))
11597 *
11598 * def projectElementBoundaryVelocityToRT0fluxRep(np.ndarray elementBoundaryQuadratureWeights, # <<<<<<<<<<<<<<
11599 * np.ndarray n,
11600 * np.ndarray v_elementBoundary,
11601*/
11602
11603 /* function exit code */
11604 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11605 __Pyx_XGIVEREF(__pyx_r);
11606 __Pyx_RefNannyFinishContext();
11607 return __pyx_r;
11608}
11609
11610/* "cpostprocessing.pyx":580
11611 * <double*>(rt0vdofs_element.data))
11612 *
11613 * def projectElementBoundaryFluxToRT0fluxRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
11614 * np.ndarray elementBoundariesArray,
11615 * np.ndarray elementBoundaryQuadratureWeights,
11616*/
11617
11618/* Python wrapper */
11619static PyObject *__pyx_pw_15cpostprocessing_51projectElementBoundaryFluxToRT0fluxRep(PyObject *__pyx_self,
11620#if CYTHON_VECTORCALL
11621PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11622#else
11623PyObject *__pyx_args, PyObject *__pyx_kwds
11624#endif
11625); /*proto*/
11626static PyMethodDef __pyx_mdef_15cpostprocessing_51projectElementBoundaryFluxToRT0fluxRep = {"projectElementBoundaryFluxToRT0fluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_51projectElementBoundaryFluxToRT0fluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11627static PyObject *__pyx_pw_15cpostprocessing_51projectElementBoundaryFluxToRT0fluxRep(PyObject *__pyx_self,
11628#if CYTHON_VECTORCALL
11629PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11630#else
11631PyObject *__pyx_args, PyObject *__pyx_kwds
11632#endif
11633) {
11634 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
11635 PyArrayObject *__pyx_v_elementBoundariesArray = 0;
11636 PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights = 0;
11637 PyArrayObject *__pyx_v_flux_elementBoundary = 0;
11638 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
11639 #if !CYTHON_VECTORCALL
11640 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11641 #endif
11642 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11643 PyObject* values[5] = {0,0,0,0,0};
11644 int __pyx_lineno = 0;
11645 const char *__pyx_filename = NULL;
11646 int __pyx_clineno = 0;
11647 PyObject *__pyx_r = 0;
11648 __Pyx_RefNannyDeclarations
11649 __Pyx_RefNannySetupContext("projectElementBoundaryFluxToRT0fluxRep (wrapper)", 0);
11650 #if !CYTHON_VECTORCALL
11651 #if CYTHON_ASSUME_SAFE_SIZE
11652 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11653 #else
11654 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11655 #endif
11656 #endif
11657 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11658 {
11659 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_elementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_elementBoundaryQuadratureWeights,&__pyx_mstate_global->__pyx_n_u_flux_elementBoundary,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,0};
11660 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11661 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 580, __pyx_L3_error)
11662 if (__pyx_kwds_len > 0) {
11663 switch (__pyx_nargs) {
11664 case 5:
11665 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11666 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 580, __pyx_L3_error)
11667 CYTHON_FALLTHROUGH;
11668 case 4:
11669 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11670 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 580, __pyx_L3_error)
11671 CYTHON_FALLTHROUGH;
11672 case 3:
11673 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11674 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 580, __pyx_L3_error)
11675 CYTHON_FALLTHROUGH;
11676 case 2:
11677 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11678 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 580, __pyx_L3_error)
11679 CYTHON_FALLTHROUGH;
11680 case 1:
11681 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11682 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 580, __pyx_L3_error)
11683 CYTHON_FALLTHROUGH;
11684 case 0: break;
11685 default: goto __pyx_L5_argtuple_error;
11686 }
11687 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11688 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "projectElementBoundaryFluxToRT0fluxRep", 0) < (0)) __PYX_ERR(0, 580, __pyx_L3_error)
11689 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
11690 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("projectElementBoundaryFluxToRT0fluxRep", 1, 5, 5, i); __PYX_ERR(0, 580, __pyx_L3_error) }
11691 }
11692 } else if (unlikely(__pyx_nargs != 5)) {
11693 goto __pyx_L5_argtuple_error;
11694 } else {
11695 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11696 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 580, __pyx_L3_error)
11697 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11698 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 580, __pyx_L3_error)
11699 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11700 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 580, __pyx_L3_error)
11701 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11702 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 580, __pyx_L3_error)
11703 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11704 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 580, __pyx_L3_error)
11705 }
11706 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[0]);
11707 __pyx_v_elementBoundariesArray = ((PyArrayObject *)values[1]);
11708 __pyx_v_elementBoundaryQuadratureWeights = ((PyArrayObject *)values[2]);
11709 __pyx_v_flux_elementBoundary = ((PyArrayObject *)values[3]);
11710 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[4]);
11711 }
11712 goto __pyx_L6_skip;
11713 __pyx_L5_argtuple_error:;
11714 __Pyx_RaiseArgtupleInvalid("projectElementBoundaryFluxToRT0fluxRep", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 580, __pyx_L3_error)
11715 __pyx_L6_skip:;
11716 goto __pyx_L4_argument_unpacking_done;
11717 __pyx_L3_error:;
11718 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11719 Py_XDECREF(values[__pyx_temp]);
11720 }
11721 __Pyx_AddTraceback("cpostprocessing.projectElementBoundaryFluxToRT0fluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11722 __Pyx_RefNannyFinishContext();
11723 return NULL;
11724 __pyx_L4_argument_unpacking_done:;
11725 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 580, __pyx_L1_error)
11726 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundariesArray", 0))) __PYX_ERR(0, 581, __pyx_L1_error)
11727 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryQuadratureWeights), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryQuadratureWeights", 0))) __PYX_ERR(0, 582, __pyx_L1_error)
11728 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "flux_elementBoundary", 0))) __PYX_ERR(0, 583, __pyx_L1_error)
11729 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 584, __pyx_L1_error)
11730 __pyx_r = __pyx_pf_15cpostprocessing_50projectElementBoundaryFluxToRT0fluxRep(__pyx_self, __pyx_v_elementBoundaryElementsArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryQuadratureWeights, __pyx_v_flux_elementBoundary, __pyx_v_rt0vdofs_element);
11731
11732 /* function exit code */
11733 goto __pyx_L0;
11734 __pyx_L1_error:;
11735 __pyx_r = NULL;
11736 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11737 Py_XDECREF(values[__pyx_temp]);
11738 }
11739 goto __pyx_L7_cleaned_up;
11740 __pyx_L0:;
11741 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11742 Py_XDECREF(values[__pyx_temp]);
11743 }
11744 __pyx_L7_cleaned_up:;
11745 __Pyx_RefNannyFinishContext();
11746 return __pyx_r;
11747}
11748
11749static PyObject *__pyx_pf_15cpostprocessing_50projectElementBoundaryFluxToRT0fluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_elementBoundariesArray, PyArrayObject *__pyx_v_elementBoundaryQuadratureWeights, PyArrayObject *__pyx_v_flux_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element) {
11750 PyObject *__pyx_r = NULL;
11751 __Pyx_RefNannyDeclarations
11752 __Pyx_RefNannySetupContext("projectElementBoundaryFluxToRT0fluxRep", 0);
11753
11754 /* "cpostprocessing.pyx":585
11755 * np.ndarray flux_elementBoundary,
11756 * np.ndarray rt0vdofs_element):
11757 * pp.projectElementBoundaryFluxToRT0fluxRep(elementBoundaryQuadratureWeights.shape[0], # <<<<<<<<<<<<<<
11758 * elementBoundaryQuadratureWeights.shape[1],
11759 * elementBoundaryQuadratureWeights.shape[2],
11760*/
11761 projectElementBoundaryFluxToRT0fluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryQuadratureWeights)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryQuadratureWeights)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryQuadratureWeights)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_rt0vdofs_element)[1]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryQuadratureWeights)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_flux_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)));
11762
11763 /* "cpostprocessing.pyx":580
11764 * <double*>(rt0vdofs_element.data))
11765 *
11766 * def projectElementBoundaryFluxToRT0fluxRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
11767 * np.ndarray elementBoundariesArray,
11768 * np.ndarray elementBoundaryQuadratureWeights,
11769*/
11770
11771 /* function exit code */
11772 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11773 __Pyx_XGIVEREF(__pyx_r);
11774 __Pyx_RefNannyFinishContext();
11775 return __pyx_r;
11776}
11777
11778/* "cpostprocessing.pyx":595
11779 * <double*>(rt0vdofs_element.data))
11780 *
11781 * def getElementRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
11782 * np.ndarray elementNodesArray,
11783 * np.ndarray abs_det_J,
11784*/
11785
11786/* Python wrapper */
11787static PyObject *__pyx_pw_15cpostprocessing_53getElementRT0velocityValuesFluxRep(PyObject *__pyx_self,
11788#if CYTHON_VECTORCALL
11789PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11790#else
11791PyObject *__pyx_args, PyObject *__pyx_kwds
11792#endif
11793); /*proto*/
11794static PyMethodDef __pyx_mdef_15cpostprocessing_53getElementRT0velocityValuesFluxRep = {"getElementRT0velocityValuesFluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_53getElementRT0velocityValuesFluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11795static PyObject *__pyx_pw_15cpostprocessing_53getElementRT0velocityValuesFluxRep(PyObject *__pyx_self,
11796#if CYTHON_VECTORCALL
11797PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11798#else
11799PyObject *__pyx_args, PyObject *__pyx_kwds
11800#endif
11801) {
11802 PyArrayObject *__pyx_v_nodeArray = 0;
11803 PyArrayObject *__pyx_v_elementNodesArray = 0;
11804 PyArrayObject *__pyx_v_abs_det_J = 0;
11805 PyArrayObject *__pyx_v_x_element = 0;
11806 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
11807 PyArrayObject *__pyx_v_v_element = 0;
11808 #if !CYTHON_VECTORCALL
11809 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11810 #endif
11811 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11812 PyObject* values[6] = {0,0,0,0,0,0};
11813 int __pyx_lineno = 0;
11814 const char *__pyx_filename = NULL;
11815 int __pyx_clineno = 0;
11816 PyObject *__pyx_r = 0;
11817 __Pyx_RefNannyDeclarations
11818 __Pyx_RefNannySetupContext("getElementRT0velocityValuesFluxRep (wrapper)", 0);
11819 #if !CYTHON_VECTORCALL
11820 #if CYTHON_ASSUME_SAFE_SIZE
11821 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11822 #else
11823 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11824 #endif
11825 #endif
11826 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11827 {
11828 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodeArray,&__pyx_mstate_global->__pyx_n_u_elementNodesArray,&__pyx_mstate_global->__pyx_n_u_abs_det_J,&__pyx_mstate_global->__pyx_n_u_x_element,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_element,0};
11829 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11830 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 595, __pyx_L3_error)
11831 if (__pyx_kwds_len > 0) {
11832 switch (__pyx_nargs) {
11833 case 6:
11834 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11835 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 595, __pyx_L3_error)
11836 CYTHON_FALLTHROUGH;
11837 case 5:
11838 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11839 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 595, __pyx_L3_error)
11840 CYTHON_FALLTHROUGH;
11841 case 4:
11842 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11843 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 595, __pyx_L3_error)
11844 CYTHON_FALLTHROUGH;
11845 case 3:
11846 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11847 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 595, __pyx_L3_error)
11848 CYTHON_FALLTHROUGH;
11849 case 2:
11850 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11851 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 595, __pyx_L3_error)
11852 CYTHON_FALLTHROUGH;
11853 case 1:
11854 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11855 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 595, __pyx_L3_error)
11856 CYTHON_FALLTHROUGH;
11857 case 0: break;
11858 default: goto __pyx_L5_argtuple_error;
11859 }
11860 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11861 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementRT0velocityValuesFluxRep", 0) < (0)) __PYX_ERR(0, 595, __pyx_L3_error)
11862 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
11863 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValuesFluxRep", 1, 6, 6, i); __PYX_ERR(0, 595, __pyx_L3_error) }
11864 }
11865 } else if (unlikely(__pyx_nargs != 6)) {
11866 goto __pyx_L5_argtuple_error;
11867 } else {
11868 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11869 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 595, __pyx_L3_error)
11870 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11871 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 595, __pyx_L3_error)
11872 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11873 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 595, __pyx_L3_error)
11874 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11875 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 595, __pyx_L3_error)
11876 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11877 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 595, __pyx_L3_error)
11878 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11879 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 595, __pyx_L3_error)
11880 }
11881 __pyx_v_nodeArray = ((PyArrayObject *)values[0]);
11882 __pyx_v_elementNodesArray = ((PyArrayObject *)values[1]);
11883 __pyx_v_abs_det_J = ((PyArrayObject *)values[2]);
11884 __pyx_v_x_element = ((PyArrayObject *)values[3]);
11885 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[4]);
11886 __pyx_v_v_element = ((PyArrayObject *)values[5]);
11887 }
11888 goto __pyx_L6_skip;
11889 __pyx_L5_argtuple_error:;
11890 __Pyx_RaiseArgtupleInvalid("getElementRT0velocityValuesFluxRep", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 595, __pyx_L3_error)
11891 __pyx_L6_skip:;
11892 goto __pyx_L4_argument_unpacking_done;
11893 __pyx_L3_error:;
11894 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11895 Py_XDECREF(values[__pyx_temp]);
11896 }
11897 __Pyx_AddTraceback("cpostprocessing.getElementRT0velocityValuesFluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
11898 __Pyx_RefNannyFinishContext();
11899 return NULL;
11900 __pyx_L4_argument_unpacking_done:;
11901 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeArray", 0))) __PYX_ERR(0, 595, __pyx_L1_error)
11902 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodesArray", 0))) __PYX_ERR(0, 596, __pyx_L1_error)
11903 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_J), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "abs_det_J", 0))) __PYX_ERR(0, 597, __pyx_L1_error)
11904 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_element", 0))) __PYX_ERR(0, 598, __pyx_L1_error)
11905 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 599, __pyx_L1_error)
11906 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_element", 0))) __PYX_ERR(0, 600, __pyx_L1_error)
11907 __pyx_r = __pyx_pf_15cpostprocessing_52getElementRT0velocityValuesFluxRep(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_abs_det_J, __pyx_v_x_element, __pyx_v_rt0vdofs_element, __pyx_v_v_element);
11908
11909 /* function exit code */
11910 goto __pyx_L0;
11911 __pyx_L1_error:;
11912 __pyx_r = NULL;
11913 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11914 Py_XDECREF(values[__pyx_temp]);
11915 }
11916 goto __pyx_L7_cleaned_up;
11917 __pyx_L0:;
11918 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11919 Py_XDECREF(values[__pyx_temp]);
11920 }
11921 __pyx_L7_cleaned_up:;
11922 __Pyx_RefNannyFinishContext();
11923 return __pyx_r;
11924}
11925
11926static PyObject *__pyx_pf_15cpostprocessing_52getElementRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_element, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element) {
11927 PyObject *__pyx_r = NULL;
11928 __Pyx_RefNannyDeclarations
11929 __Pyx_RefNannySetupContext("getElementRT0velocityValuesFluxRep", 0);
11930
11931 /* "cpostprocessing.pyx":601
11932 * np.ndarray rt0vdofs_element,
11933 * np.ndarray v_element):
11934 * pp.getElementRT0velocityValuesFluxRep(v_element.shape[0], # <<<<<<<<<<<<<<
11935 * elementNodesArray.shape[1],
11936 * v_element.shape[1],
11937*/
11938 getElementRT0velocityValuesFluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementNodesArray)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_abs_det_J)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_abs_det_J)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_element)));
11939
11940 /* "cpostprocessing.pyx":595
11941 * <double*>(rt0vdofs_element.data))
11942 *
11943 * def getElementRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
11944 * np.ndarray elementNodesArray,
11945 * np.ndarray abs_det_J,
11946*/
11947
11948 /* function exit code */
11949 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11950 __Pyx_XGIVEREF(__pyx_r);
11951 __Pyx_RefNannyFinishContext();
11952 return __pyx_r;
11953}
11954
11955/* "cpostprocessing.pyx":613
11956 * <double*>(v_element.data))
11957 *
11958 * def getElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
11959 * np.ndarray elementNodesArray,
11960 * np.ndarray abs_det_J,
11961*/
11962
11963/* Python wrapper */
11964static PyObject *__pyx_pw_15cpostprocessing_55getElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
11965#if CYTHON_VECTORCALL
11966PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11967#else
11968PyObject *__pyx_args, PyObject *__pyx_kwds
11969#endif
11970); /*proto*/
11971static PyMethodDef __pyx_mdef_15cpostprocessing_55getElementBoundaryRT0velocityValuesFluxRep = {"getElementBoundaryRT0velocityValuesFluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_55getElementBoundaryRT0velocityValuesFluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11972static PyObject *__pyx_pw_15cpostprocessing_55getElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
11973#if CYTHON_VECTORCALL
11974PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11975#else
11976PyObject *__pyx_args, PyObject *__pyx_kwds
11977#endif
11978) {
11979 PyArrayObject *__pyx_v_nodeArray = 0;
11980 PyArrayObject *__pyx_v_elementNodesArray = 0;
11981 PyArrayObject *__pyx_v_abs_det_J = 0;
11982 PyArrayObject *__pyx_v_x_elementBoundary = 0;
11983 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
11984 PyArrayObject *__pyx_v_v_elementBoundary = 0;
11985 #if !CYTHON_VECTORCALL
11986 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11987 #endif
11988 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11989 PyObject* values[6] = {0,0,0,0,0,0};
11990 int __pyx_lineno = 0;
11991 const char *__pyx_filename = NULL;
11992 int __pyx_clineno = 0;
11993 PyObject *__pyx_r = 0;
11994 __Pyx_RefNannyDeclarations
11995 __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValuesFluxRep (wrapper)", 0);
11996 #if !CYTHON_VECTORCALL
11997 #if CYTHON_ASSUME_SAFE_SIZE
11998 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11999 #else
12000 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12001 #endif
12002 #endif
12003 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12004 {
12005 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodeArray,&__pyx_mstate_global->__pyx_n_u_elementNodesArray,&__pyx_mstate_global->__pyx_n_u_abs_det_J,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary,0};
12006 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12007 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 613, __pyx_L3_error)
12008 if (__pyx_kwds_len > 0) {
12009 switch (__pyx_nargs) {
12010 case 6:
12011 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12012 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 613, __pyx_L3_error)
12013 CYTHON_FALLTHROUGH;
12014 case 5:
12015 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12016 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 613, __pyx_L3_error)
12017 CYTHON_FALLTHROUGH;
12018 case 4:
12019 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12020 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 613, __pyx_L3_error)
12021 CYTHON_FALLTHROUGH;
12022 case 3:
12023 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12024 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 613, __pyx_L3_error)
12025 CYTHON_FALLTHROUGH;
12026 case 2:
12027 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12028 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 613, __pyx_L3_error)
12029 CYTHON_FALLTHROUGH;
12030 case 1:
12031 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12032 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 613, __pyx_L3_error)
12033 CYTHON_FALLTHROUGH;
12034 case 0: break;
12035 default: goto __pyx_L5_argtuple_error;
12036 }
12037 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12038 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getElementBoundaryRT0velocityValuesFluxRep", 0) < (0)) __PYX_ERR(0, 613, __pyx_L3_error)
12039 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
12040 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValuesFluxRep", 1, 6, 6, i); __PYX_ERR(0, 613, __pyx_L3_error) }
12041 }
12042 } else if (unlikely(__pyx_nargs != 6)) {
12043 goto __pyx_L5_argtuple_error;
12044 } else {
12045 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12046 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 613, __pyx_L3_error)
12047 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12048 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 613, __pyx_L3_error)
12049 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12050 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 613, __pyx_L3_error)
12051 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12052 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 613, __pyx_L3_error)
12053 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 613, __pyx_L3_error)
12055 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12056 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 613, __pyx_L3_error)
12057 }
12058 __pyx_v_nodeArray = ((PyArrayObject *)values[0]);
12059 __pyx_v_elementNodesArray = ((PyArrayObject *)values[1]);
12060 __pyx_v_abs_det_J = ((PyArrayObject *)values[2]);
12061 __pyx_v_x_elementBoundary = ((PyArrayObject *)values[3]);
12062 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[4]);
12063 __pyx_v_v_elementBoundary = ((PyArrayObject *)values[5]);
12064 }
12065 goto __pyx_L6_skip;
12066 __pyx_L5_argtuple_error:;
12067 __Pyx_RaiseArgtupleInvalid("getElementBoundaryRT0velocityValuesFluxRep", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 613, __pyx_L3_error)
12068 __pyx_L6_skip:;
12069 goto __pyx_L4_argument_unpacking_done;
12070 __pyx_L3_error:;
12071 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12072 Py_XDECREF(values[__pyx_temp]);
12073 }
12074 __Pyx_AddTraceback("cpostprocessing.getElementBoundaryRT0velocityValuesFluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
12075 __Pyx_RefNannyFinishContext();
12076 return NULL;
12077 __pyx_L4_argument_unpacking_done:;
12078 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeArray", 0))) __PYX_ERR(0, 613, __pyx_L1_error)
12079 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodesArray", 0))) __PYX_ERR(0, 614, __pyx_L1_error)
12080 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_J), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "abs_det_J", 0))) __PYX_ERR(0, 615, __pyx_L1_error)
12081 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary", 0))) __PYX_ERR(0, 616, __pyx_L1_error)
12082 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 617, __pyx_L1_error)
12083 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary", 0))) __PYX_ERR(0, 618, __pyx_L1_error)
12084 __pyx_r = __pyx_pf_15cpostprocessing_54getElementBoundaryRT0velocityValuesFluxRep(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_abs_det_J, __pyx_v_x_elementBoundary, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary);
12085
12086 /* function exit code */
12087 goto __pyx_L0;
12088 __pyx_L1_error:;
12089 __pyx_r = NULL;
12090 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12091 Py_XDECREF(values[__pyx_temp]);
12092 }
12093 goto __pyx_L7_cleaned_up;
12094 __pyx_L0:;
12095 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12096 Py_XDECREF(values[__pyx_temp]);
12097 }
12098 __pyx_L7_cleaned_up:;
12099 __Pyx_RefNannyFinishContext();
12100 return __pyx_r;
12101}
12102
12103static PyObject *__pyx_pf_15cpostprocessing_54getElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary) {
12104 PyObject *__pyx_r = NULL;
12105 __Pyx_RefNannyDeclarations
12106 __Pyx_RefNannySetupContext("getElementBoundaryRT0velocityValuesFluxRep", 0);
12107
12108 /* "cpostprocessing.pyx":619
12109 * np.ndarray rt0vdofs_element,
12110 * np.ndarray v_elementBoundary):
12111 * pp.getElementBoundaryRT0velocityValuesFluxRep(v_elementBoundary.shape[0], # <<<<<<<<<<<<<<
12112 * v_elementBoundary.shape[1],
12113 * v_elementBoundary.shape[2],
12114*/
12115 getElementBoundaryRT0velocityValuesFluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_abs_det_J)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_abs_det_J)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary)));
12116
12117 /* "cpostprocessing.pyx":613
12118 * <double*>(v_element.data))
12119 *
12120 * def getElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12121 * np.ndarray elementNodesArray,
12122 * np.ndarray abs_det_J,
12123*/
12124
12125 /* function exit code */
12126 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12127 __Pyx_XGIVEREF(__pyx_r);
12128 __Pyx_RefNannyFinishContext();
12129 return __pyx_r;
12130}
12131
12132/* "cpostprocessing.pyx":631
12133 * <double*>(v_elementBoundary.data))
12134 *
12135 * def getGlobalElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12136 * np.ndarray elementNodesArray,
12137 * np.ndarray elementBoundaryElementsArray,
12138*/
12139
12140/* Python wrapper */
12141static PyObject *__pyx_pw_15cpostprocessing_57getGlobalElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
12142#if CYTHON_VECTORCALL
12143PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12144#else
12145PyObject *__pyx_args, PyObject *__pyx_kwds
12146#endif
12147); /*proto*/
12148static PyMethodDef __pyx_mdef_15cpostprocessing_57getGlobalElementBoundaryRT0velocityValuesFluxRep = {"getGlobalElementBoundaryRT0velocityValuesFluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_57getGlobalElementBoundaryRT0velocityValuesFluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12149static PyObject *__pyx_pw_15cpostprocessing_57getGlobalElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
12150#if CYTHON_VECTORCALL
12151PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12152#else
12153PyObject *__pyx_args, PyObject *__pyx_kwds
12154#endif
12155) {
12156 PyArrayObject *__pyx_v_nodeArray = 0;
12157 PyArrayObject *__pyx_v_elementNodesArray = 0;
12158 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
12159 PyArrayObject *__pyx_v_abs_det_J = 0;
12160 PyArrayObject *__pyx_v_x_elementBoundary_global = 0;
12161 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
12162 PyArrayObject *__pyx_v_v_elementBoundary_global = 0;
12163 #if !CYTHON_VECTORCALL
12164 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12165 #endif
12166 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12167 PyObject* values[7] = {0,0,0,0,0,0,0};
12168 int __pyx_lineno = 0;
12169 const char *__pyx_filename = NULL;
12170 int __pyx_clineno = 0;
12171 PyObject *__pyx_r = 0;
12172 __Pyx_RefNannyDeclarations
12173 __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValuesFluxRep (wrapper)", 0);
12174 #if !CYTHON_VECTORCALL
12175 #if CYTHON_ASSUME_SAFE_SIZE
12176 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12177 #else
12178 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12179 #endif
12180 #endif
12181 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12182 {
12183 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodeArray,&__pyx_mstate_global->__pyx_n_u_elementNodesArray,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_abs_det_J,&__pyx_mstate_global->__pyx_n_u_x_elementBoundary_global,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_elementBoundary_global,0};
12184 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12185 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 631, __pyx_L3_error)
12186 if (__pyx_kwds_len > 0) {
12187 switch (__pyx_nargs) {
12188 case 7:
12189 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12190 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 631, __pyx_L3_error)
12191 CYTHON_FALLTHROUGH;
12192 case 6:
12193 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12194 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 631, __pyx_L3_error)
12195 CYTHON_FALLTHROUGH;
12196 case 5:
12197 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12198 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 631, __pyx_L3_error)
12199 CYTHON_FALLTHROUGH;
12200 case 4:
12201 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12202 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 631, __pyx_L3_error)
12203 CYTHON_FALLTHROUGH;
12204 case 3:
12205 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12206 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 631, __pyx_L3_error)
12207 CYTHON_FALLTHROUGH;
12208 case 2:
12209 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12210 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 631, __pyx_L3_error)
12211 CYTHON_FALLTHROUGH;
12212 case 1:
12213 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12214 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 631, __pyx_L3_error)
12215 CYTHON_FALLTHROUGH;
12216 case 0: break;
12217 default: goto __pyx_L5_argtuple_error;
12218 }
12219 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12220 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalElementBoundaryRT0velocityValuesFluxRep", 0) < (0)) __PYX_ERR(0, 631, __pyx_L3_error)
12221 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
12222 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValuesFluxRep", 1, 7, 7, i); __PYX_ERR(0, 631, __pyx_L3_error) }
12223 }
12224 } else if (unlikely(__pyx_nargs != 7)) {
12225 goto __pyx_L5_argtuple_error;
12226 } else {
12227 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12228 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 631, __pyx_L3_error)
12229 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12230 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 631, __pyx_L3_error)
12231 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12232 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 631, __pyx_L3_error)
12233 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12234 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 631, __pyx_L3_error)
12235 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12236 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 631, __pyx_L3_error)
12237 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12238 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 631, __pyx_L3_error)
12239 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12240 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 631, __pyx_L3_error)
12241 }
12242 __pyx_v_nodeArray = ((PyArrayObject *)values[0]);
12243 __pyx_v_elementNodesArray = ((PyArrayObject *)values[1]);
12244 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[2]);
12245 __pyx_v_abs_det_J = ((PyArrayObject *)values[3]);
12246 __pyx_v_x_elementBoundary_global = ((PyArrayObject *)values[4]);
12247 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[5]);
12248 __pyx_v_v_elementBoundary_global = ((PyArrayObject *)values[6]);
12249 }
12250 goto __pyx_L6_skip;
12251 __pyx_L5_argtuple_error:;
12252 __Pyx_RaiseArgtupleInvalid("getGlobalElementBoundaryRT0velocityValuesFluxRep", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 631, __pyx_L3_error)
12253 __pyx_L6_skip:;
12254 goto __pyx_L4_argument_unpacking_done;
12255 __pyx_L3_error:;
12256 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12257 Py_XDECREF(values[__pyx_temp]);
12258 }
12259 __Pyx_AddTraceback("cpostprocessing.getGlobalElementBoundaryRT0velocityValuesFluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
12260 __Pyx_RefNannyFinishContext();
12261 return NULL;
12262 __pyx_L4_argument_unpacking_done:;
12263 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeArray", 0))) __PYX_ERR(0, 631, __pyx_L1_error)
12264 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodesArray", 0))) __PYX_ERR(0, 632, __pyx_L1_error)
12265 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 633, __pyx_L1_error)
12266 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_J), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "abs_det_J", 0))) __PYX_ERR(0, 634, __pyx_L1_error)
12267 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_elementBoundary_global", 0))) __PYX_ERR(0, 635, __pyx_L1_error)
12268 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 636, __pyx_L1_error)
12269 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_elementBoundary_global), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_elementBoundary_global", 0))) __PYX_ERR(0, 637, __pyx_L1_error)
12270 __pyx_r = __pyx_pf_15cpostprocessing_56getGlobalElementBoundaryRT0velocityValuesFluxRep(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_abs_det_J, __pyx_v_x_elementBoundary_global, __pyx_v_rt0vdofs_element, __pyx_v_v_elementBoundary_global);
12271
12272 /* function exit code */
12273 goto __pyx_L0;
12274 __pyx_L1_error:;
12275 __pyx_r = NULL;
12276 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12277 Py_XDECREF(values[__pyx_temp]);
12278 }
12279 goto __pyx_L7_cleaned_up;
12280 __pyx_L0:;
12281 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12282 Py_XDECREF(values[__pyx_temp]);
12283 }
12284 __pyx_L7_cleaned_up:;
12285 __Pyx_RefNannyFinishContext();
12286 return __pyx_r;
12287}
12288
12289static PyObject *__pyx_pf_15cpostprocessing_56getGlobalElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_elementBoundary_global, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_elementBoundary_global) {
12290 PyObject *__pyx_r = NULL;
12291 __Pyx_RefNannyDeclarations
12292 __Pyx_RefNannySetupContext("getGlobalElementBoundaryRT0velocityValuesFluxRep", 0);
12293
12294 /* "cpostprocessing.pyx":638
12295 * np.ndarray rt0vdofs_element,
12296 * np.ndarray v_elementBoundary_global):
12297 * pp.getGlobalElementBoundaryRT0velocityValuesFluxRep(v_elementBoundary_global.shape[0], # <<<<<<<<<<<<<<
12298 * v_elementBoundary_global.shape[1],
12299 * v_elementBoundary_global.shape[2],
12300*/
12301 getGlobalElementBoundaryRT0velocityValuesFluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_elementBoundary_global)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_abs_det_J)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodesArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_abs_det_J)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_elementBoundary_global)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_elementBoundary_global)));
12302
12303 /* "cpostprocessing.pyx":631
12304 * <double*>(v_elementBoundary.data))
12305 *
12306 * def getGlobalElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12307 * np.ndarray elementNodesArray,
12308 * np.ndarray elementBoundaryElementsArray,
12309*/
12310
12311 /* function exit code */
12312 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12313 __Pyx_XGIVEREF(__pyx_r);
12314 __Pyx_RefNannyFinishContext();
12315 return __pyx_r;
12316}
12317
12318/* "cpostprocessing.pyx":650
12319 * <double*>(v_elementBoundary_global.data))
12320 *
12321 * def getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12322 * np.ndarray elementNodesArray,
12323 * np.ndarray elementBoundaryElementsArray,
12324*/
12325
12326/* Python wrapper */
12327static PyObject *__pyx_pw_15cpostprocessing_59getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
12328#if CYTHON_VECTORCALL
12329PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12330#else
12331PyObject *__pyx_args, PyObject *__pyx_kwds
12332#endif
12333); /*proto*/
12334static PyMethodDef __pyx_mdef_15cpostprocessing_59getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep = {"getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_59getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12335static PyObject *__pyx_pw_15cpostprocessing_59getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(PyObject *__pyx_self,
12336#if CYTHON_VECTORCALL
12337PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12338#else
12339PyObject *__pyx_args, PyObject *__pyx_kwds
12340#endif
12341) {
12342 PyArrayObject *__pyx_v_nodeArray = 0;
12343 PyArrayObject *__pyx_v_elementNodesArray = 0;
12344 PyArrayObject *__pyx_v_elementBoundaryElementsArray = 0;
12345 PyArrayObject *__pyx_v_exteriorElementBoundariesArray = 0;
12346 PyArrayObject *__pyx_v_abs_det_J = 0;
12347 PyArrayObject *__pyx_v_x_ebqe = 0;
12348 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
12349 PyArrayObject *__pyx_v_v_ebqe = 0;
12350 #if !CYTHON_VECTORCALL
12351 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12352 #endif
12353 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12354 PyObject* values[8] = {0,0,0,0,0,0,0,0};
12355 int __pyx_lineno = 0;
12356 const char *__pyx_filename = NULL;
12357 int __pyx_clineno = 0;
12358 PyObject *__pyx_r = 0;
12359 __Pyx_RefNannyDeclarations
12360 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep (wrapper)", 0);
12361 #if !CYTHON_VECTORCALL
12362 #if CYTHON_ASSUME_SAFE_SIZE
12363 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12364 #else
12365 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12366 #endif
12367 #endif
12368 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12369 {
12370 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodeArray,&__pyx_mstate_global->__pyx_n_u_elementNodesArray,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElementsArray,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesArray,&__pyx_mstate_global->__pyx_n_u_abs_det_J,&__pyx_mstate_global->__pyx_n_u_x_ebqe,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_ebqe,0};
12371 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12372 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 650, __pyx_L3_error)
12373 if (__pyx_kwds_len > 0) {
12374 switch (__pyx_nargs) {
12375 case 8:
12376 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12377 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 650, __pyx_L3_error)
12378 CYTHON_FALLTHROUGH;
12379 case 7:
12380 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12381 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 650, __pyx_L3_error)
12382 CYTHON_FALLTHROUGH;
12383 case 6:
12384 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12385 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 650, __pyx_L3_error)
12386 CYTHON_FALLTHROUGH;
12387 case 5:
12388 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12389 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 650, __pyx_L3_error)
12390 CYTHON_FALLTHROUGH;
12391 case 4:
12392 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12393 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 650, __pyx_L3_error)
12394 CYTHON_FALLTHROUGH;
12395 case 3:
12396 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12397 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 650, __pyx_L3_error)
12398 CYTHON_FALLTHROUGH;
12399 case 2:
12400 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12401 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 650, __pyx_L3_error)
12402 CYTHON_FALLTHROUGH;
12403 case 1:
12404 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12405 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 650, __pyx_L3_error)
12406 CYTHON_FALLTHROUGH;
12407 case 0: break;
12408 default: goto __pyx_L5_argtuple_error;
12409 }
12410 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12411 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", 0) < (0)) __PYX_ERR(0, 650, __pyx_L3_error)
12412 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
12413 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", 1, 8, 8, i); __PYX_ERR(0, 650, __pyx_L3_error) }
12414 }
12415 } else if (unlikely(__pyx_nargs != 8)) {
12416 goto __pyx_L5_argtuple_error;
12417 } else {
12418 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12419 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 650, __pyx_L3_error)
12420 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12421 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 650, __pyx_L3_error)
12422 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12423 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 650, __pyx_L3_error)
12424 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12425 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 650, __pyx_L3_error)
12426 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12427 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 650, __pyx_L3_error)
12428 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12429 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 650, __pyx_L3_error)
12430 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12431 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 650, __pyx_L3_error)
12432 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12433 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 650, __pyx_L3_error)
12434 }
12435 __pyx_v_nodeArray = ((PyArrayObject *)values[0]);
12436 __pyx_v_elementNodesArray = ((PyArrayObject *)values[1]);
12437 __pyx_v_elementBoundaryElementsArray = ((PyArrayObject *)values[2]);
12438 __pyx_v_exteriorElementBoundariesArray = ((PyArrayObject *)values[3]);
12439 __pyx_v_abs_det_J = ((PyArrayObject *)values[4]);
12440 __pyx_v_x_ebqe = ((PyArrayObject *)values[5]);
12441 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[6]);
12442 __pyx_v_v_ebqe = ((PyArrayObject *)values[7]);
12443 }
12444 goto __pyx_L6_skip;
12445 __pyx_L5_argtuple_error:;
12446 __Pyx_RaiseArgtupleInvalid("getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 650, __pyx_L3_error)
12447 __pyx_L6_skip:;
12448 goto __pyx_L4_argument_unpacking_done;
12449 __pyx_L3_error:;
12450 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12451 Py_XDECREF(values[__pyx_temp]);
12452 }
12453 __Pyx_AddTraceback("cpostprocessing.getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", __pyx_clineno, __pyx_lineno, __pyx_filename);
12454 __Pyx_RefNannyFinishContext();
12455 return NULL;
12456 __pyx_L4_argument_unpacking_done:;
12457 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeArray", 0))) __PYX_ERR(0, 650, __pyx_L1_error)
12458 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodesArray", 0))) __PYX_ERR(0, 651, __pyx_L1_error)
12459 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElementsArray", 0))) __PYX_ERR(0, 652, __pyx_L1_error)
12460 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesArray", 0))) __PYX_ERR(0, 653, __pyx_L1_error)
12461 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_J), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "abs_det_J", 0))) __PYX_ERR(0, 654, __pyx_L1_error)
12462 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x_ebqe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x_ebqe", 0))) __PYX_ERR(0, 655, __pyx_L1_error)
12463 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 656, __pyx_L1_error)
12464 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_ebqe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_ebqe", 0))) __PYX_ERR(0, 657, __pyx_L1_error)
12465 __pyx_r = __pyx_pf_15cpostprocessing_58getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesArray, __pyx_v_abs_det_J, __pyx_v_x_ebqe, __pyx_v_rt0vdofs_element, __pyx_v_v_ebqe);
12466
12467 /* function exit code */
12468 goto __pyx_L0;
12469 __pyx_L1_error:;
12470 __pyx_r = NULL;
12471 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12472 Py_XDECREF(values[__pyx_temp]);
12473 }
12474 goto __pyx_L7_cleaned_up;
12475 __pyx_L0:;
12476 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12477 Py_XDECREF(values[__pyx_temp]);
12478 }
12479 __pyx_L7_cleaned_up:;
12480 __Pyx_RefNannyFinishContext();
12481 return __pyx_r;
12482}
12483
12484static PyObject *__pyx_pf_15cpostprocessing_58getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_elementBoundaryElementsArray, PyArrayObject *__pyx_v_exteriorElementBoundariesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x_ebqe, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_ebqe) {
12485 PyObject *__pyx_r = NULL;
12486 __Pyx_RefNannyDeclarations
12487 __Pyx_RefNannySetupContext("getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep", 0);
12488
12489 /* "cpostprocessing.pyx":658
12490 * np.ndarray rt0vdofs_element,
12491 * np.ndarray v_ebqe):
12492 * pp.getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(v_ebqe.shape[0], # <<<<<<<<<<<<<<
12493 * v_ebqe.shape[1],
12494 * v_ebqe.shape[2],
12495*/
12496 getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_ebqe)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_ebqe)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_ebqe)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_abs_det_J)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodesArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_abs_det_J)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x_ebqe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_ebqe)));
12497
12498 /* "cpostprocessing.pyx":650
12499 * <double*>(v_elementBoundary_global.data))
12500 *
12501 * def getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12502 * np.ndarray elementNodesArray,
12503 * np.ndarray elementBoundaryElementsArray,
12504*/
12505
12506 /* function exit code */
12507 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12508 __Pyx_XGIVEREF(__pyx_r);
12509 __Pyx_RefNannyFinishContext();
12510 return __pyx_r;
12511}
12512
12513/* "cpostprocessing.pyx":671
12514 * <double*>(v_ebqe.data))
12515 *
12516 * def getRT0velocityValuesFluxRep_arbitraryElementMembership(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12517 * np.ndarray elementNodesArray,
12518 * np.ndarray abs_det_J,
12519*/
12520
12521/* Python wrapper */
12522static PyObject *__pyx_pw_15cpostprocessing_61getRT0velocityValuesFluxRep_arbitraryElementMembership(PyObject *__pyx_self,
12523#if CYTHON_VECTORCALL
12524PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12525#else
12526PyObject *__pyx_args, PyObject *__pyx_kwds
12527#endif
12528); /*proto*/
12529static PyMethodDef __pyx_mdef_15cpostprocessing_61getRT0velocityValuesFluxRep_arbitraryElementMembership = {"getRT0velocityValuesFluxRep_arbitraryElementMembership", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_61getRT0velocityValuesFluxRep_arbitraryElementMembership, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12530static PyObject *__pyx_pw_15cpostprocessing_61getRT0velocityValuesFluxRep_arbitraryElementMembership(PyObject *__pyx_self,
12531#if CYTHON_VECTORCALL
12532PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12533#else
12534PyObject *__pyx_args, PyObject *__pyx_kwds
12535#endif
12536) {
12537 PyArrayObject *__pyx_v_nodeArray = 0;
12538 PyArrayObject *__pyx_v_elementNodesArray = 0;
12539 PyArrayObject *__pyx_v_abs_det_J = 0;
12540 PyArrayObject *__pyx_v_x = 0;
12541 PyArrayObject *__pyx_v_element_locations = 0;
12542 PyArrayObject *__pyx_v_rt0vdofs_element = 0;
12543 PyArrayObject *__pyx_v_v_element = 0;
12544 #if !CYTHON_VECTORCALL
12545 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12546 #endif
12547 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12548 PyObject* values[7] = {0,0,0,0,0,0,0};
12549 int __pyx_lineno = 0;
12550 const char *__pyx_filename = NULL;
12551 int __pyx_clineno = 0;
12552 PyObject *__pyx_r = 0;
12553 __Pyx_RefNannyDeclarations
12554 __Pyx_RefNannySetupContext("getRT0velocityValuesFluxRep_arbitraryElementMembership (wrapper)", 0);
12555 #if !CYTHON_VECTORCALL
12556 #if CYTHON_ASSUME_SAFE_SIZE
12557 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12558 #else
12559 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12560 #endif
12561 #endif
12562 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12563 {
12564 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodeArray,&__pyx_mstate_global->__pyx_n_u_elementNodesArray,&__pyx_mstate_global->__pyx_n_u_abs_det_J,&__pyx_mstate_global->__pyx_n_u_x,&__pyx_mstate_global->__pyx_n_u_element_locations,&__pyx_mstate_global->__pyx_n_u_rt0vdofs_element,&__pyx_mstate_global->__pyx_n_u_v_element,0};
12565 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12566 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 671, __pyx_L3_error)
12567 if (__pyx_kwds_len > 0) {
12568 switch (__pyx_nargs) {
12569 case 7:
12570 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12571 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 671, __pyx_L3_error)
12572 CYTHON_FALLTHROUGH;
12573 case 6:
12574 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12575 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 671, __pyx_L3_error)
12576 CYTHON_FALLTHROUGH;
12577 case 5:
12578 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 671, __pyx_L3_error)
12580 CYTHON_FALLTHROUGH;
12581 case 4:
12582 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 671, __pyx_L3_error)
12584 CYTHON_FALLTHROUGH;
12585 case 3:
12586 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12587 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 671, __pyx_L3_error)
12588 CYTHON_FALLTHROUGH;
12589 case 2:
12590 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12591 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 671, __pyx_L3_error)
12592 CYTHON_FALLTHROUGH;
12593 case 1:
12594 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12595 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 671, __pyx_L3_error)
12596 CYTHON_FALLTHROUGH;
12597 case 0: break;
12598 default: goto __pyx_L5_argtuple_error;
12599 }
12600 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12601 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getRT0velocityValuesFluxRep_arbitraryElementMembership", 0) < (0)) __PYX_ERR(0, 671, __pyx_L3_error)
12602 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
12603 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getRT0velocityValuesFluxRep_arbitraryElementMembership", 1, 7, 7, i); __PYX_ERR(0, 671, __pyx_L3_error) }
12604 }
12605 } else if (unlikely(__pyx_nargs != 7)) {
12606 goto __pyx_L5_argtuple_error;
12607 } else {
12608 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12609 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 671, __pyx_L3_error)
12610 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12611 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 671, __pyx_L3_error)
12612 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12613 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 671, __pyx_L3_error)
12614 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12615 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 671, __pyx_L3_error)
12616 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12617 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 671, __pyx_L3_error)
12618 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12619 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 671, __pyx_L3_error)
12620 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12621 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 671, __pyx_L3_error)
12622 }
12623 __pyx_v_nodeArray = ((PyArrayObject *)values[0]);
12624 __pyx_v_elementNodesArray = ((PyArrayObject *)values[1]);
12625 __pyx_v_abs_det_J = ((PyArrayObject *)values[2]);
12626 __pyx_v_x = ((PyArrayObject *)values[3]);
12627 __pyx_v_element_locations = ((PyArrayObject *)values[4]);
12628 __pyx_v_rt0vdofs_element = ((PyArrayObject *)values[5]);
12629 __pyx_v_v_element = ((PyArrayObject *)values[6]);
12630 }
12631 goto __pyx_L6_skip;
12632 __pyx_L5_argtuple_error:;
12633 __Pyx_RaiseArgtupleInvalid("getRT0velocityValuesFluxRep_arbitraryElementMembership", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 671, __pyx_L3_error)
12634 __pyx_L6_skip:;
12635 goto __pyx_L4_argument_unpacking_done;
12636 __pyx_L3_error:;
12637 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12638 Py_XDECREF(values[__pyx_temp]);
12639 }
12640 __Pyx_AddTraceback("cpostprocessing.getRT0velocityValuesFluxRep_arbitraryElementMembership", __pyx_clineno, __pyx_lineno, __pyx_filename);
12641 __Pyx_RefNannyFinishContext();
12642 return NULL;
12643 __pyx_L4_argument_unpacking_done:;
12644 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeArray", 0))) __PYX_ERR(0, 671, __pyx_L1_error)
12645 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodesArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodesArray", 0))) __PYX_ERR(0, 672, __pyx_L1_error)
12646 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_abs_det_J), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "abs_det_J", 0))) __PYX_ERR(0, 673, __pyx_L1_error)
12647 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(0, 674, __pyx_L1_error)
12648 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element_locations), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "element_locations", 0))) __PYX_ERR(0, 675, __pyx_L1_error)
12649 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rt0vdofs_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rt0vdofs_element", 0))) __PYX_ERR(0, 676, __pyx_L1_error)
12650 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v_element", 0))) __PYX_ERR(0, 677, __pyx_L1_error)
12651 __pyx_r = __pyx_pf_15cpostprocessing_60getRT0velocityValuesFluxRep_arbitraryElementMembership(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_abs_det_J, __pyx_v_x, __pyx_v_element_locations, __pyx_v_rt0vdofs_element, __pyx_v_v_element);
12652
12653 /* function exit code */
12654 goto __pyx_L0;
12655 __pyx_L1_error:;
12656 __pyx_r = NULL;
12657 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12658 Py_XDECREF(values[__pyx_temp]);
12659 }
12660 goto __pyx_L7_cleaned_up;
12661 __pyx_L0:;
12662 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12663 Py_XDECREF(values[__pyx_temp]);
12664 }
12665 __pyx_L7_cleaned_up:;
12666 __Pyx_RefNannyFinishContext();
12667 return __pyx_r;
12668}
12669
12670static PyObject *__pyx_pf_15cpostprocessing_60getRT0velocityValuesFluxRep_arbitraryElementMembership(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nodeArray, PyArrayObject *__pyx_v_elementNodesArray, PyArrayObject *__pyx_v_abs_det_J, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_element_locations, PyArrayObject *__pyx_v_rt0vdofs_element, PyArrayObject *__pyx_v_v_element) {
12671 int __pyx_v_nPoints;
12672 PyObject *__pyx_r = NULL;
12673 __Pyx_RefNannyDeclarations
12674 npy_intp __pyx_t_1;
12675 npy_intp __pyx_t_2;
12676 int __pyx_lineno = 0;
12677 const char *__pyx_filename = NULL;
12678 int __pyx_clineno = 0;
12679 __Pyx_RefNannySetupContext("getRT0velocityValuesFluxRep_arbitraryElementMembership", 0);
12680
12681 /* "cpostprocessing.pyx":678
12682 * np.ndarray rt0vdofs_element,
12683 * np.ndarray v_element):
12684 * cdef int nPoints = x.size//x.shape[x.ndim-1] # <<<<<<<<<<<<<<
12685 * pp.getRT0velocityValuesFluxRep_arbitraryElementMembership(elementNodesArray.shape[0],
12686 * elementNodesArray.shape[1],
12687*/
12688 __pyx_t_1 = __pyx_f_5numpy_7ndarray_4size___get__(__pyx_v_x);
12689
12690 __pyx_t_2 = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_x)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_x) - 1)]);
12691
12692 if (unlikely(__pyx_t_2 == 0)) {
12693 PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
12694 __PYX_ERR(0, 678, __pyx_L1_error)
12695 }
12696 else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_t_2 == (npy_intp)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_1))) {
12697 PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
12698 __PYX_ERR(0, 678, __pyx_L1_error)
12699 }
12700 __pyx_v_nPoints = __Pyx_div_npy_intp(__pyx_t_1, __pyx_t_2, 0);
12701
12702
12703
12704 /* "cpostprocessing.pyx":679
12705 * np.ndarray v_element):
12706 * cdef int nPoints = x.size//x.shape[x.ndim-1]
12707 * pp.getRT0velocityValuesFluxRep_arbitraryElementMembership(elementNodesArray.shape[0], # <<<<<<<<<<<<<<
12708 * elementNodesArray.shape[1],
12709 * nPoints,
12710*/
12711 getRT0velocityValuesFluxRep_arbitraryElementMembership((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementNodesArray)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementNodesArray)[1]), __pyx_v_nPoints, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_v_element)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_abs_det_J)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodesArray)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_abs_det_J)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_x)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_element_locations)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rt0vdofs_element)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v_element)));
12712
12713 /* "cpostprocessing.pyx":671
12714 * <double*>(v_ebqe.data))
12715 *
12716 * def getRT0velocityValuesFluxRep_arbitraryElementMembership(np.ndarray nodeArray, # <<<<<<<<<<<<<<
12717 * np.ndarray elementNodesArray,
12718 * np.ndarray abs_det_J,
12719*/
12720
12721 /* function exit code */
12722 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12723 goto __pyx_L0;
12724 __pyx_L1_error:;
12725 __Pyx_AddTraceback("cpostprocessing.getRT0velocityValuesFluxRep_arbitraryElementMembership", __pyx_clineno, __pyx_lineno, __pyx_filename);
12726 __pyx_r = NULL;
12727 __pyx_L0:;
12728
12729 __Pyx_XGIVEREF(__pyx_r);
12730 __Pyx_RefNannyFinishContext();
12731 return __pyx_r;
12732}
12733
12734/* "cpostprocessing.pyx":692
12735 * <double*>(v_element.data))
12736 *
12737 * def fluxCorrectionVelocityUpdate(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
12738 * np.ndarray exteriorElementBoundaries,
12739 * np.ndarray elementBoundaryElements,
12740*/
12741
12742/* Python wrapper */
12743static PyObject *__pyx_pw_15cpostprocessing_63fluxCorrectionVelocityUpdate(PyObject *__pyx_self,
12744#if CYTHON_VECTORCALL
12745PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12746#else
12747PyObject *__pyx_args, PyObject *__pyx_kwds
12748#endif
12749); /*proto*/
12750static PyMethodDef __pyx_mdef_15cpostprocessing_63fluxCorrectionVelocityUpdate = {"fluxCorrectionVelocityUpdate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_63fluxCorrectionVelocityUpdate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12751static PyObject *__pyx_pw_15cpostprocessing_63fluxCorrectionVelocityUpdate(PyObject *__pyx_self,
12752#if CYTHON_VECTORCALL
12753PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12754#else
12755PyObject *__pyx_args, PyObject *__pyx_kwds
12756#endif
12757) {
12758 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
12759 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
12760 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
12761 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
12762 PyArrayObject *__pyx_v_dS = 0;
12763 PyArrayObject *__pyx_v_n = 0;
12764 PyArrayObject *__pyx_v_fluxCorrection = 0;
12765 PyArrayObject *__pyx_v_velocity = 0;
12766 PyArrayObject *__pyx_v_velocity_element = 0;
12767 #if !CYTHON_VECTORCALL
12768 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12769 #endif
12770 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12771 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
12772 int __pyx_lineno = 0;
12773 const char *__pyx_filename = NULL;
12774 int __pyx_clineno = 0;
12775 PyObject *__pyx_r = 0;
12776 __Pyx_RefNannyDeclarations
12777 __Pyx_RefNannySetupContext("fluxCorrectionVelocityUpdate (wrapper)", 0);
12778 #if !CYTHON_VECTORCALL
12779 #if CYTHON_ASSUME_SAFE_SIZE
12780 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12781 #else
12782 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12783 #endif
12784 #endif
12785 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12786 {
12787 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_dS,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_fluxCorrection,&__pyx_mstate_global->__pyx_n_u_velocity,&__pyx_mstate_global->__pyx_n_u_velocity_element,0};
12788 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12789 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 692, __pyx_L3_error)
12790 if (__pyx_kwds_len > 0) {
12791 switch (__pyx_nargs) {
12792 case 9:
12793 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12794 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 692, __pyx_L3_error)
12795 CYTHON_FALLTHROUGH;
12796 case 8:
12797 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12798 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 692, __pyx_L3_error)
12799 CYTHON_FALLTHROUGH;
12800 case 7:
12801 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12802 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 692, __pyx_L3_error)
12803 CYTHON_FALLTHROUGH;
12804 case 6:
12805 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12806 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 692, __pyx_L3_error)
12807 CYTHON_FALLTHROUGH;
12808 case 5:
12809 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12810 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 692, __pyx_L3_error)
12811 CYTHON_FALLTHROUGH;
12812 case 4:
12813 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12814 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 692, __pyx_L3_error)
12815 CYTHON_FALLTHROUGH;
12816 case 3:
12817 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12818 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 692, __pyx_L3_error)
12819 CYTHON_FALLTHROUGH;
12820 case 2:
12821 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12822 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 692, __pyx_L3_error)
12823 CYTHON_FALLTHROUGH;
12824 case 1:
12825 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12826 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 692, __pyx_L3_error)
12827 CYTHON_FALLTHROUGH;
12828 case 0: break;
12829 default: goto __pyx_L5_argtuple_error;
12830 }
12831 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12832 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fluxCorrectionVelocityUpdate", 0) < (0)) __PYX_ERR(0, 692, __pyx_L3_error)
12833 for (Py_ssize_t i = __pyx_nargs; i < 9; i++) {
12834 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fluxCorrectionVelocityUpdate", 1, 9, 9, i); __PYX_ERR(0, 692, __pyx_L3_error) }
12835 }
12836 } else if (unlikely(__pyx_nargs != 9)) {
12837 goto __pyx_L5_argtuple_error;
12838 } else {
12839 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12840 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 692, __pyx_L3_error)
12841 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12842 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 692, __pyx_L3_error)
12843 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12844 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 692, __pyx_L3_error)
12845 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12846 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 692, __pyx_L3_error)
12847 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12848 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 692, __pyx_L3_error)
12849 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12850 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 692, __pyx_L3_error)
12851 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12852 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 692, __pyx_L3_error)
12853 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12854 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 692, __pyx_L3_error)
12855 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12856 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 692, __pyx_L3_error)
12857 }
12858 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
12859 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
12860 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
12861 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
12862 __pyx_v_dS = ((PyArrayObject *)values[4]);
12863 __pyx_v_n = ((PyArrayObject *)values[5]);
12864 __pyx_v_fluxCorrection = ((PyArrayObject *)values[6]);
12865 __pyx_v_velocity = ((PyArrayObject *)values[7]);
12866 __pyx_v_velocity_element = ((PyArrayObject *)values[8]);
12867 }
12868 goto __pyx_L6_skip;
12869 __pyx_L5_argtuple_error:;
12870 __Pyx_RaiseArgtupleInvalid("fluxCorrectionVelocityUpdate", 1, 9, 9, __pyx_nargs); __PYX_ERR(0, 692, __pyx_L3_error)
12871 __pyx_L6_skip:;
12872 goto __pyx_L4_argument_unpacking_done;
12873 __pyx_L3_error:;
12874 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12875 Py_XDECREF(values[__pyx_temp]);
12876 }
12877 __Pyx_AddTraceback("cpostprocessing.fluxCorrectionVelocityUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
12878 __Pyx_RefNannyFinishContext();
12879 return NULL;
12880 __pyx_L4_argument_unpacking_done:;
12881 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 692, __pyx_L1_error)
12882 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 693, __pyx_L1_error)
12883 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 694, __pyx_L1_error)
12884 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 695, __pyx_L1_error)
12885 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dS), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dS", 0))) __PYX_ERR(0, 696, __pyx_L1_error)
12886 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 697, __pyx_L1_error)
12887 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxCorrection), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxCorrection", 0))) __PYX_ERR(0, 698, __pyx_L1_error)
12888 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 699, __pyx_L1_error)
12889 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity_element", 0))) __PYX_ERR(0, 700, __pyx_L1_error)
12890 __pyx_r = __pyx_pf_15cpostprocessing_62fluxCorrectionVelocityUpdate(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_dS, __pyx_v_n, __pyx_v_fluxCorrection, __pyx_v_velocity, __pyx_v_velocity_element);
12891
12892 /* function exit code */
12893 goto __pyx_L0;
12894 __pyx_L1_error:;
12895 __pyx_r = NULL;
12896 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12897 Py_XDECREF(values[__pyx_temp]);
12898 }
12899 goto __pyx_L7_cleaned_up;
12900 __pyx_L0:;
12901 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12902 Py_XDECREF(values[__pyx_temp]);
12903 }
12904 __pyx_L7_cleaned_up:;
12905 __Pyx_RefNannyFinishContext();
12906 return __pyx_r;
12907}
12908
12909static PyObject *__pyx_pf_15cpostprocessing_62fluxCorrectionVelocityUpdate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_velocity_element) {
12910 PyObject *__pyx_r = NULL;
12911 __Pyx_RefNannyDeclarations
12912 __Pyx_RefNannySetupContext("fluxCorrectionVelocityUpdate", 0);
12913
12914 /* "cpostprocessing.pyx":701
12915 * np.ndarray velocity,
12916 * np.ndarray velocity_element):
12917 * pp.fluxCorrectionVelocityUpdate(dS.shape[0], # <<<<<<<<<<<<<<
12918 * velocity.shape[0],
12919 * interiorElementBoundaries.shape[0],
12920*/
12921 fluxCorrectionVelocityUpdate((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dS)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxCorrection)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity_element)));
12922
12923 /* "cpostprocessing.pyx":692
12924 * <double*>(v_element.data))
12925 *
12926 * def fluxCorrectionVelocityUpdate(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
12927 * np.ndarray exteriorElementBoundaries,
12928 * np.ndarray elementBoundaryElements,
12929*/
12930
12931 /* function exit code */
12932 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12933 __Pyx_XGIVEREF(__pyx_r);
12934 __Pyx_RefNannyFinishContext();
12935 return __pyx_r;
12936}
12937
12938/* "cpostprocessing.pyx":718
12939 * <double*>(velocity_element.data))
12940 *
12941 * def computeFluxCorrectionPWC(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
12942 * np.ndarray exteriorElementBoundaries,
12943 * np.ndarray elementBoundaryElements,
12944*/
12945
12946/* Python wrapper */
12947static PyObject *__pyx_pw_15cpostprocessing_65computeFluxCorrectionPWC(PyObject *__pyx_self,
12948#if CYTHON_VECTORCALL
12949PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12950#else
12951PyObject *__pyx_args, PyObject *__pyx_kwds
12952#endif
12953); /*proto*/
12954static PyMethodDef __pyx_mdef_15cpostprocessing_65computeFluxCorrectionPWC = {"computeFluxCorrectionPWC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_65computeFluxCorrectionPWC, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12955static PyObject *__pyx_pw_15cpostprocessing_65computeFluxCorrectionPWC(PyObject *__pyx_self,
12956#if CYTHON_VECTORCALL
12957PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12958#else
12959PyObject *__pyx_args, PyObject *__pyx_kwds
12960#endif
12961) {
12962 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
12963 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
12964 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
12965 PyArrayObject *__pyx_v_pwcW = 0;
12966 PyArrayObject *__pyx_v_pwcV = 0;
12967 PyArrayObject *__pyx_v_fluxCorrection = 0;
12968 #if !CYTHON_VECTORCALL
12969 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12970 #endif
12971 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12972 PyObject* values[6] = {0,0,0,0,0,0};
12973 int __pyx_lineno = 0;
12974 const char *__pyx_filename = NULL;
12975 int __pyx_clineno = 0;
12976 PyObject *__pyx_r = 0;
12977 __Pyx_RefNannyDeclarations
12978 __Pyx_RefNannySetupContext("computeFluxCorrectionPWC (wrapper)", 0);
12979 #if !CYTHON_VECTORCALL
12980 #if CYTHON_ASSUME_SAFE_SIZE
12981 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12982 #else
12983 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12984 #endif
12985 #endif
12986 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12987 {
12988 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_pwcW,&__pyx_mstate_global->__pyx_n_u_pwcV,&__pyx_mstate_global->__pyx_n_u_fluxCorrection,0};
12989 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12990 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 718, __pyx_L3_error)
12991 if (__pyx_kwds_len > 0) {
12992 switch (__pyx_nargs) {
12993 case 6:
12994 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12995 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 718, __pyx_L3_error)
12996 CYTHON_FALLTHROUGH;
12997 case 5:
12998 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12999 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 718, __pyx_L3_error)
13000 CYTHON_FALLTHROUGH;
13001 case 4:
13002 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13003 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 718, __pyx_L3_error)
13004 CYTHON_FALLTHROUGH;
13005 case 3:
13006 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13007 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 718, __pyx_L3_error)
13008 CYTHON_FALLTHROUGH;
13009 case 2:
13010 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13011 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 718, __pyx_L3_error)
13012 CYTHON_FALLTHROUGH;
13013 case 1:
13014 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13015 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 718, __pyx_L3_error)
13016 CYTHON_FALLTHROUGH;
13017 case 0: break;
13018 default: goto __pyx_L5_argtuple_error;
13019 }
13020 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13021 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "computeFluxCorrectionPWC", 0) < (0)) __PYX_ERR(0, 718, __pyx_L3_error)
13022 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
13023 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("computeFluxCorrectionPWC", 1, 6, 6, i); __PYX_ERR(0, 718, __pyx_L3_error) }
13024 }
13025 } else if (unlikely(__pyx_nargs != 6)) {
13026 goto __pyx_L5_argtuple_error;
13027 } else {
13028 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13029 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 718, __pyx_L3_error)
13030 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13031 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 718, __pyx_L3_error)
13032 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13033 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 718, __pyx_L3_error)
13034 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13035 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 718, __pyx_L3_error)
13036 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13037 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 718, __pyx_L3_error)
13038 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13039 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 718, __pyx_L3_error)
13040 }
13041 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
13042 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
13043 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
13044 __pyx_v_pwcW = ((PyArrayObject *)values[3]);
13045 __pyx_v_pwcV = ((PyArrayObject *)values[4]);
13046 __pyx_v_fluxCorrection = ((PyArrayObject *)values[5]);
13047 }
13048 goto __pyx_L6_skip;
13049 __pyx_L5_argtuple_error:;
13050 __Pyx_RaiseArgtupleInvalid("computeFluxCorrectionPWC", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 718, __pyx_L3_error)
13051 __pyx_L6_skip:;
13052 goto __pyx_L4_argument_unpacking_done;
13053 __pyx_L3_error:;
13054 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13055 Py_XDECREF(values[__pyx_temp]);
13056 }
13057 __Pyx_AddTraceback("cpostprocessing.computeFluxCorrectionPWC", __pyx_clineno, __pyx_lineno, __pyx_filename);
13058 __Pyx_RefNannyFinishContext();
13059 return NULL;
13060 __pyx_L4_argument_unpacking_done:;
13061 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 718, __pyx_L1_error)
13062 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 719, __pyx_L1_error)
13063 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 720, __pyx_L1_error)
13064 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pwcW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pwcW", 0))) __PYX_ERR(0, 721, __pyx_L1_error)
13065 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pwcV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pwcV", 0))) __PYX_ERR(0, 722, __pyx_L1_error)
13066 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxCorrection), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxCorrection", 0))) __PYX_ERR(0, 723, __pyx_L1_error)
13067 __pyx_r = __pyx_pf_15cpostprocessing_64computeFluxCorrectionPWC(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_pwcW, __pyx_v_pwcV, __pyx_v_fluxCorrection);
13068
13069 /* function exit code */
13070 goto __pyx_L0;
13071 __pyx_L1_error:;
13072 __pyx_r = NULL;
13073 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13074 Py_XDECREF(values[__pyx_temp]);
13075 }
13076 goto __pyx_L7_cleaned_up;
13077 __pyx_L0:;
13078 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13079 Py_XDECREF(values[__pyx_temp]);
13080 }
13081 __pyx_L7_cleaned_up:;
13082 __Pyx_RefNannyFinishContext();
13083 return __pyx_r;
13084}
13085
13086static PyObject *__pyx_pf_15cpostprocessing_64computeFluxCorrectionPWC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_pwcW, PyArrayObject *__pyx_v_pwcV, PyArrayObject *__pyx_v_fluxCorrection) {
13087 PyObject *__pyx_r = NULL;
13088 __Pyx_RefNannyDeclarations
13089 __Pyx_RefNannySetupContext("computeFluxCorrectionPWC", 0);
13090
13091 /* "cpostprocessing.pyx":724
13092 * np.ndarray pwcV,
13093 * np.ndarray fluxCorrection):
13094 * pp.computeFluxCorrectionPWC(elementBoundaryElements.shape[0], # <<<<<<<<<<<<<<
13095 * interiorElementBoundaries.shape[0],
13096 * exteriorElementBoundaries.shape[0],
13097*/
13098 computeFluxCorrectionPWC((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryElements)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pwcW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pwcV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxCorrection)));
13099
13100 /* "cpostprocessing.pyx":718
13101 * <double*>(velocity_element.data))
13102 *
13103 * def computeFluxCorrectionPWC(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
13104 * np.ndarray exteriorElementBoundaries,
13105 * np.ndarray elementBoundaryElements,
13106*/
13107
13108 /* function exit code */
13109 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13110 __Pyx_XGIVEREF(__pyx_r);
13111 __Pyx_RefNannyFinishContext();
13112 return __pyx_r;
13113}
13114
13115/* "cpostprocessing.pyx":734
13116 * <double*>(fluxCorrection.data))
13117 *
13118 * def sunWheelerGSsweep(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
13119 * np.ndarray exteriorElementBoundaries,
13120 * np.ndarray elementBoundaryElements,
13121*/
13122
13123/* Python wrapper */
13124static PyObject *__pyx_pw_15cpostprocessing_67sunWheelerGSsweep(PyObject *__pyx_self,
13125#if CYTHON_VECTORCALL
13126PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13127#else
13128PyObject *__pyx_args, PyObject *__pyx_kwds
13129#endif
13130); /*proto*/
13131static PyMethodDef __pyx_mdef_15cpostprocessing_67sunWheelerGSsweep = {"sunWheelerGSsweep", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_67sunWheelerGSsweep, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13132static PyObject *__pyx_pw_15cpostprocessing_67sunWheelerGSsweep(PyObject *__pyx_self,
13133#if CYTHON_VECTORCALL
13134PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13135#else
13136PyObject *__pyx_args, PyObject *__pyx_kwds
13137#endif
13138) {
13139 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
13140 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
13141 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
13142 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
13143 PyArrayObject *__pyx_v_dS = 0;
13144 PyArrayObject *__pyx_v_n = 0;
13145 PyArrayObject *__pyx_v_sqrt_det_g = 0;
13146 PyArrayObject *__pyx_v_alphaFactor = 0;
13147 PyArrayObject *__pyx_v_fluxCorrection = 0;
13148 PyArrayObject *__pyx_v_conservationResidual = 0;
13149 #if !CYTHON_VECTORCALL
13150 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13151 #endif
13152 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13153 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
13154 int __pyx_lineno = 0;
13155 const char *__pyx_filename = NULL;
13156 int __pyx_clineno = 0;
13157 PyObject *__pyx_r = 0;
13158 __Pyx_RefNannyDeclarations
13159 __Pyx_RefNannySetupContext("sunWheelerGSsweep (wrapper)", 0);
13160 #if !CYTHON_VECTORCALL
13161 #if CYTHON_ASSUME_SAFE_SIZE
13162 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13163 #else
13164 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13165 #endif
13166 #endif
13167 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13168 {
13169 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_dS,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_sqrt_det_g,&__pyx_mstate_global->__pyx_n_u_alphaFactor,&__pyx_mstate_global->__pyx_n_u_fluxCorrection,&__pyx_mstate_global->__pyx_n_u_conservationResidual,0};
13170 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13171 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 734, __pyx_L3_error)
13172 if (__pyx_kwds_len > 0) {
13173 switch (__pyx_nargs) {
13174 case 10:
13175 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13176 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 734, __pyx_L3_error)
13177 CYTHON_FALLTHROUGH;
13178 case 9:
13179 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13180 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 734, __pyx_L3_error)
13181 CYTHON_FALLTHROUGH;
13182 case 8:
13183 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13184 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 734, __pyx_L3_error)
13185 CYTHON_FALLTHROUGH;
13186 case 7:
13187 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13188 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 734, __pyx_L3_error)
13189 CYTHON_FALLTHROUGH;
13190 case 6:
13191 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13192 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 734, __pyx_L3_error)
13193 CYTHON_FALLTHROUGH;
13194 case 5:
13195 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13196 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 734, __pyx_L3_error)
13197 CYTHON_FALLTHROUGH;
13198 case 4:
13199 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13200 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 734, __pyx_L3_error)
13201 CYTHON_FALLTHROUGH;
13202 case 3:
13203 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13204 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 734, __pyx_L3_error)
13205 CYTHON_FALLTHROUGH;
13206 case 2:
13207 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13208 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 734, __pyx_L3_error)
13209 CYTHON_FALLTHROUGH;
13210 case 1:
13211 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13212 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 734, __pyx_L3_error)
13213 CYTHON_FALLTHROUGH;
13214 case 0: break;
13215 default: goto __pyx_L5_argtuple_error;
13216 }
13217 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13218 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "sunWheelerGSsweep", 0) < (0)) __PYX_ERR(0, 734, __pyx_L3_error)
13219 for (Py_ssize_t i = __pyx_nargs; i < 10; i++) {
13220 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("sunWheelerGSsweep", 1, 10, 10, i); __PYX_ERR(0, 734, __pyx_L3_error) }
13221 }
13222 } else if (unlikely(__pyx_nargs != 10)) {
13223 goto __pyx_L5_argtuple_error;
13224 } else {
13225 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13226 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 734, __pyx_L3_error)
13227 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13228 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 734, __pyx_L3_error)
13229 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13230 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 734, __pyx_L3_error)
13231 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13232 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 734, __pyx_L3_error)
13233 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13234 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 734, __pyx_L3_error)
13235 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13236 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 734, __pyx_L3_error)
13237 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13238 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 734, __pyx_L3_error)
13239 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13240 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 734, __pyx_L3_error)
13241 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13242 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 734, __pyx_L3_error)
13243 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13244 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 734, __pyx_L3_error)
13245 }
13246 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
13247 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
13248 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
13249 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
13250 __pyx_v_dS = ((PyArrayObject *)values[4]);
13251 __pyx_v_n = ((PyArrayObject *)values[5]);
13252 __pyx_v_sqrt_det_g = ((PyArrayObject *)values[6]);
13253 __pyx_v_alphaFactor = ((PyArrayObject *)values[7]);
13254 __pyx_v_fluxCorrection = ((PyArrayObject *)values[8]);
13255 __pyx_v_conservationResidual = ((PyArrayObject *)values[9]);
13256 }
13257 goto __pyx_L6_skip;
13258 __pyx_L5_argtuple_error:;
13259 __Pyx_RaiseArgtupleInvalid("sunWheelerGSsweep", 1, 10, 10, __pyx_nargs); __PYX_ERR(0, 734, __pyx_L3_error)
13260 __pyx_L6_skip:;
13261 goto __pyx_L4_argument_unpacking_done;
13262 __pyx_L3_error:;
13263 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13264 Py_XDECREF(values[__pyx_temp]);
13265 }
13266 __Pyx_AddTraceback("cpostprocessing.sunWheelerGSsweep", __pyx_clineno, __pyx_lineno, __pyx_filename);
13267 __Pyx_RefNannyFinishContext();
13268 return NULL;
13269 __pyx_L4_argument_unpacking_done:;
13270 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 734, __pyx_L1_error)
13271 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 735, __pyx_L1_error)
13272 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 736, __pyx_L1_error)
13273 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 737, __pyx_L1_error)
13274 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dS), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dS", 0))) __PYX_ERR(0, 738, __pyx_L1_error)
13275 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 739, __pyx_L1_error)
13276 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sqrt_det_g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "sqrt_det_g", 0))) __PYX_ERR(0, 740, __pyx_L1_error)
13277 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alphaFactor), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "alphaFactor", 0))) __PYX_ERR(0, 741, __pyx_L1_error)
13278 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxCorrection), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxCorrection", 0))) __PYX_ERR(0, 742, __pyx_L1_error)
13279 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 743, __pyx_L1_error)
13280 __pyx_r = __pyx_pf_15cpostprocessing_66sunWheelerGSsweep(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_dS, __pyx_v_n, __pyx_v_sqrt_det_g, __pyx_v_alphaFactor, __pyx_v_fluxCorrection, __pyx_v_conservationResidual);
13281
13282 /* function exit code */
13283 goto __pyx_L0;
13284 __pyx_L1_error:;
13285 __pyx_r = NULL;
13286 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13287 Py_XDECREF(values[__pyx_temp]);
13288 }
13289 goto __pyx_L7_cleaned_up;
13290 __pyx_L0:;
13291 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13292 Py_XDECREF(values[__pyx_temp]);
13293 }
13294 __pyx_L7_cleaned_up:;
13295 __Pyx_RefNannyFinishContext();
13296 return __pyx_r;
13297}
13298
13299static PyObject *__pyx_pf_15cpostprocessing_66sunWheelerGSsweep(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_sqrt_det_g, PyArrayObject *__pyx_v_alphaFactor, PyArrayObject *__pyx_v_fluxCorrection, PyArrayObject *__pyx_v_conservationResidual) {
13300 PyObject *__pyx_r = NULL;
13301 __Pyx_RefNannyDeclarations
13302 __Pyx_RefNannySetupContext("sunWheelerGSsweep", 0);
13303
13304 /* "cpostprocessing.pyx":744
13305 * np.ndarray fluxCorrection,
13306 * np.ndarray conservationResidual):
13307 * pp.sunWheelerGSsweep(conservationResidual.shape[0], # <<<<<<<<<<<<<<
13308 * elementBoundaryElements.shape[0],
13309 * interiorElementBoundaries.shape[0],
13310*/
13311 sunWheelerGSsweep((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_conservationResidual)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryElements)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dS)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_sqrt_det_g)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_alphaFactor)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxCorrection)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)));
13312
13313 /* "cpostprocessing.pyx":734
13314 * <double*>(fluxCorrection.data))
13315 *
13316 * def sunWheelerGSsweep(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
13317 * np.ndarray exteriorElementBoundaries,
13318 * np.ndarray elementBoundaryElements,
13319*/
13320
13321 /* function exit code */
13322 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13323 __Pyx_XGIVEREF(__pyx_r);
13324 __Pyx_RefNannyFinishContext();
13325 return __pyx_r;
13326}
13327
13328/* "cpostprocessing.pyx":765
13329 * cdef class NodeStarFactor:
13330 * cdef pp.NodeStarFactorStruct nsf
13331 * def __cinit__(self, # <<<<<<<<<<<<<<
13332 * np.ndarray nElements_node,
13333 * np.ndarray nodeStarElementsArray,
13334*/
13335
13336/* Python wrapper */
13337static int __pyx_pw_15cpostprocessing_14NodeStarFactor_1__cinit__(PyObject *__pyx_v_self,
13338#if CYTHON_VECTORCALL_TPNEW
13339PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13340#else
13341PyObject *__pyx_args, PyObject *__pyx_kwds
13342#endif
13343); /*proto*/
13344static int __pyx_pw_15cpostprocessing_14NodeStarFactor_1__cinit__(PyObject *__pyx_v_self,
13345#if CYTHON_VECTORCALL_TPNEW
13346PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13347#else
13348PyObject *__pyx_args, PyObject *__pyx_kwds
13349#endif
13350) {
13351 PyArrayObject *__pyx_v_nElements_node = 0;
13352 PyArrayObject *__pyx_v_nodeStarElementsArray = 0;
13353 PyArrayObject *__pyx_v_nodeStarElementsNeighborsArray = 0;
13354 #if !CYTHON_VECTORCALL_TPNEW
13355 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13356 #endif
13357 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13358 PyObject* values[3] = {0,0,0};
13359 int __pyx_lineno = 0;
13360 const char *__pyx_filename = NULL;
13361 int __pyx_clineno = 0;
13362 int __pyx_r;
13363 __Pyx_RefNannyDeclarations
13364 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
13365 #if !CYTHON_VECTORCALL_TPNEW
13366 #if CYTHON_ASSUME_SAFE_SIZE
13367 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13368 #else
13369 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
13370 #endif
13371 #endif
13372 __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs);
13373 {
13374 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_nodeStarElementsArray,&__pyx_mstate_global->__pyx_n_u_nodeStarElementsNeighborsArray,0};
13375 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0;
13376 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 765, __pyx_L3_error)
13377 if (__pyx_kwds_len > 0) {
13378 switch (__pyx_nargs) {
13379 case 3:
13380 values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2);
13381 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 765, __pyx_L3_error)
13382 CYTHON_FALLTHROUGH;
13383 case 2:
13384 values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1);
13385 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 765, __pyx_L3_error)
13386 CYTHON_FALLTHROUGH;
13387 case 1:
13388 values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0);
13389 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 765, __pyx_L3_error)
13390 CYTHON_FALLTHROUGH;
13391 case 0: break;
13392 default: goto __pyx_L5_argtuple_error;
13393 }
13394 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13395 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(0, 765, __pyx_L3_error)
13396 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
13397 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(0, 765, __pyx_L3_error) }
13398 }
13399 } else if (unlikely(__pyx_nargs != 3)) {
13400 goto __pyx_L5_argtuple_error;
13401 } else {
13402 values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0);
13403 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 765, __pyx_L3_error)
13404 values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1);
13405 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 765, __pyx_L3_error)
13406 values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2);
13407 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 765, __pyx_L3_error)
13408 }
13409 __pyx_v_nElements_node = ((PyArrayObject *)values[0]);
13410 __pyx_v_nodeStarElementsArray = ((PyArrayObject *)values[1]);
13411 __pyx_v_nodeStarElementsNeighborsArray = ((PyArrayObject *)values[2]);
13412 }
13413 goto __pyx_L6_skip;
13414 __pyx_L5_argtuple_error:;
13415 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 765, __pyx_L3_error)
13416 __pyx_L6_skip:;
13417 goto __pyx_L4_argument_unpacking_done;
13418 __pyx_L3_error:;
13419 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13420 Py_XDECREF(values[__pyx_temp]);
13421 }
13422 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13423 __Pyx_RefNannyFinishContext();
13424 return -1;
13425 __pyx_L4_argument_unpacking_done:;
13426 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 766, __pyx_L1_error)
13427 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementsArray", 0))) __PYX_ERR(0, 767, __pyx_L1_error)
13428 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementsNeighborsArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementsNeighborsArray", 0))) __PYX_ERR(0, 768, __pyx_L1_error)
13429 __pyx_r = __pyx_pf_15cpostprocessing_14NodeStarFactor___cinit__(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self), __pyx_v_nElements_node, __pyx_v_nodeStarElementsArray, __pyx_v_nodeStarElementsNeighborsArray);
13430
13431 /* function exit code */
13432 goto __pyx_L0;
13433 __pyx_L1_error:;
13434 __pyx_r = -1;
13435 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13436 Py_XDECREF(values[__pyx_temp]);
13437 }
13438 goto __pyx_L7_cleaned_up;
13439 __pyx_L0:;
13440 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13441 Py_XDECREF(values[__pyx_temp]);
13442 }
13443 __pyx_L7_cleaned_up:;
13444 __Pyx_RefNannyFinishContext();
13445 return __pyx_r;
13446}
13447
13448static int __pyx_pf_15cpostprocessing_14NodeStarFactor___cinit__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_nodeStarElementsArray, PyArrayObject *__pyx_v_nodeStarElementsNeighborsArray) {
13449 int __pyx_v_rval;
13450 int __pyx_r;
13451 int __pyx_t_1;
13452 int __pyx_lineno = 0;
13453 const char *__pyx_filename = NULL;
13454 int __pyx_clineno = 0;
13455
13456 /* "cpostprocessing.pyx":769
13457 * np.ndarray nodeStarElementsArray,
13458 * np.ndarray nodeStarElementsNeighborsArray):
13459 * cdef int rval=0 # <<<<<<<<<<<<<<
13460 * rval = pp.nodeStar_init(nodeStarElementsArray.shape[0],
13461 * nodeStarElementsArray.shape[1],
13462*/
13463 __pyx_v_rval = 0;
13464
13465 /* "cpostprocessing.pyx":770
13466 * np.ndarray nodeStarElementsNeighborsArray):
13467 * cdef int rval=0
13468 * rval = pp.nodeStar_init(nodeStarElementsArray.shape[0], # <<<<<<<<<<<<<<
13469 * nodeStarElementsArray.shape[1],
13470 * nElements_node.shape[0],
13471*/
13472 __pyx_v_rval = nodeStar_init((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nodeStarElementsArray)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nodeStarElementsArray)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementsArray)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementsNeighborsArray)), (&__pyx_v_self->nsf.N), (&__pyx_v_self->nsf.subdomain_dim), (&__pyx_v_self->nsf.subdomain_L), (&__pyx_v_self->nsf.subdomain_R), (&__pyx_v_self->nsf.subdomain_U), (&__pyx_v_self->nsf.subdomain_pivots), (&__pyx_v_self->nsf.subdomain_column_pivots));
13473
13474 /* "cpostprocessing.pyx":783
13475 * &self.nsf.subdomain_pivots,
13476 * &self.nsf.subdomain_column_pivots)
13477 * assert rval == 0 # <<<<<<<<<<<<<<
13478 *
13479 * def __dealloc__(self):
13480*/
13481 #ifndef CYTHON_WITHOUT_ASSERTIONS
13482 if (unlikely(__pyx_assertions_enabled())) {
13483 __pyx_t_1 = (__pyx_v_rval == 0);
13484
13485 if (unlikely(!__pyx_t_1)) {
13486 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
13487 __PYX_ERR(0, 783, __pyx_L1_error)
13488 }
13489
13490 }
13491 #else
13492 if ((1)); else __PYX_ERR(0, 783, __pyx_L1_error)
13493 #endif
13494
13495 /* "cpostprocessing.pyx":765
13496 * cdef class NodeStarFactor:
13497 * cdef pp.NodeStarFactorStruct nsf
13498 * def __cinit__(self, # <<<<<<<<<<<<<<
13499 * np.ndarray nElements_node,
13500 * np.ndarray nodeStarElementsArray,
13501*/
13502
13503 /* function exit code */
13504 __pyx_r = 0;
13505 goto __pyx_L0;
13506 __pyx_L1_error:;
13507 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13508 __pyx_r = -1;
13509 __pyx_L0:;
13510
13511
13512 return __pyx_r;
13513}
13514
13515/* "cpostprocessing.pyx":785
13516 * assert rval == 0
13517 *
13518 * def __dealloc__(self): # <<<<<<<<<<<<<<
13519 * pp.nodeStar_free(self.nsf.N,
13520 * self.nsf.subdomain_dim,
13521*/
13522
13523/* Python wrapper */
13524static void __pyx_pw_15cpostprocessing_14NodeStarFactor_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
13525static void __pyx_pw_15cpostprocessing_14NodeStarFactor_3__dealloc__(PyObject *__pyx_v_self) {
13526 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13527 __Pyx_RefNannyDeclarations
13528 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
13529 __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
13530 __pyx_pf_15cpostprocessing_14NodeStarFactor_2__dealloc__(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self));
13531
13532 /* function exit code */
13533 __Pyx_RefNannyFinishContext();
13534}
13535
13536static void __pyx_pf_15cpostprocessing_14NodeStarFactor_2__dealloc__(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self) {
13537
13538 /* "cpostprocessing.pyx":786
13539 *
13540 * def __dealloc__(self):
13541 * pp.nodeStar_free(self.nsf.N, # <<<<<<<<<<<<<<
13542 * self.nsf.subdomain_dim,
13543 * self.nsf.subdomain_L,
13544*/
13545 (void)(nodeStar_free(__pyx_v_self->nsf.N, __pyx_v_self->nsf.subdomain_dim, __pyx_v_self->nsf.subdomain_L, __pyx_v_self->nsf.subdomain_R, __pyx_v_self->nsf.subdomain_U, __pyx_v_self->nsf.subdomain_pivots, __pyx_v_self->nsf.subdomain_column_pivots));
13546
13547 /* "cpostprocessing.pyx":785
13548 * assert rval == 0
13549 *
13550 * def __dealloc__(self): # <<<<<<<<<<<<<<
13551 * pp.nodeStar_free(self.nsf.N,
13552 * self.nsf.subdomain_dim,
13553*/
13554
13555 /* function exit code */
13556
13557}
13558
13559/* "cpostprocessing.pyx":794
13560 * self.nsf.subdomain_column_pivots)
13561 *
13562 * def setU(self, # <<<<<<<<<<<<<<
13563 * double val):
13564 * cdef int I
13565*/
13566
13567/* Python wrapper */
13568static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_5setU(PyObject *__pyx_v_self,
13569#if CYTHON_VECTORCALL
13570PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13571#else
13572PyObject *__pyx_args, PyObject *__pyx_kwds
13573#endif
13574); /*proto*/
13575static PyMethodDef __pyx_mdef_15cpostprocessing_14NodeStarFactor_5setU = {"setU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_5setU, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13576static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_5setU(PyObject *__pyx_v_self,
13577#if CYTHON_VECTORCALL
13578PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13579#else
13580PyObject *__pyx_args, PyObject *__pyx_kwds
13581#endif
13582) {
13583 double __pyx_v_val;
13584 #if !CYTHON_VECTORCALL
13585 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13586 #endif
13587 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13588 PyObject* values[1] = {0};
13589 int __pyx_lineno = 0;
13590 const char *__pyx_filename = NULL;
13591 int __pyx_clineno = 0;
13592 PyObject *__pyx_r = 0;
13593 __Pyx_RefNannyDeclarations
13594 __Pyx_RefNannySetupContext("setU (wrapper)", 0);
13595 #if !CYTHON_VECTORCALL
13596 #if CYTHON_ASSUME_SAFE_SIZE
13597 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13598 #else
13599 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13600 #endif
13601 #endif
13602 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13603 {
13604 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_val,0};
13605 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13606 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 794, __pyx_L3_error)
13607 if (__pyx_kwds_len > 0) {
13608 switch (__pyx_nargs) {
13609 case 1:
13610 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13611 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 794, __pyx_L3_error)
13612 CYTHON_FALLTHROUGH;
13613 case 0: break;
13614 default: goto __pyx_L5_argtuple_error;
13615 }
13616 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13617 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "setU", 0) < (0)) __PYX_ERR(0, 794, __pyx_L3_error)
13618 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13619 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("setU", 1, 1, 1, i); __PYX_ERR(0, 794, __pyx_L3_error) }
13620 }
13621 } else if (unlikely(__pyx_nargs != 1)) {
13622 goto __pyx_L5_argtuple_error;
13623 } else {
13624 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13625 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 794, __pyx_L3_error)
13626 }
13627 __pyx_v_val = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 795, __pyx_L3_error)
13628 }
13629 goto __pyx_L6_skip;
13630 __pyx_L5_argtuple_error:;
13631 __Pyx_RaiseArgtupleInvalid("setU", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 794, __pyx_L3_error)
13632 __pyx_L6_skip:;
13633 goto __pyx_L4_argument_unpacking_done;
13634 __pyx_L3_error:;
13635 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13636 Py_XDECREF(values[__pyx_temp]);
13637 }
13638 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.setU", __pyx_clineno, __pyx_lineno, __pyx_filename);
13639 __Pyx_RefNannyFinishContext();
13640 return NULL;
13641 __pyx_L4_argument_unpacking_done:;
13642 __pyx_r = __pyx_pf_15cpostprocessing_14NodeStarFactor_4setU(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self), __pyx_v_val);
13643
13644 /* function exit code */
13645 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13646 Py_XDECREF(values[__pyx_temp]);
13647 }
13648
13649 __Pyx_RefNannyFinishContext();
13650 return __pyx_r;
13651}
13652
13653static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_4setU(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, double __pyx_v_val) {
13654 int __pyx_v_I;
13655 int __pyx_v_i;
13656 PyObject *__pyx_r = NULL;
13657 __Pyx_RefNannyDeclarations
13658 int __pyx_t_1;
13659 int __pyx_t_2;
13660 int __pyx_t_3;
13661 int __pyx_t_4;
13662 int __pyx_t_5;
13663 int __pyx_t_6;
13664 __Pyx_RefNannySetupContext("setU", 0);
13665
13666 /* "cpostprocessing.pyx":798
13667 * cdef int I
13668 * cdef int i
13669 * for I in range(self.nsf.N): # <<<<<<<<<<<<<<
13670 * for i in range(self.nsf.subdomain_dim[I]):
13671 * self.nsf.subdomain_U[I][i] = val
13672*/
13673
13674 __pyx_t_1 = __pyx_v_self->nsf.N;
13675 __pyx_t_2 = __pyx_t_1;
13676
13677 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
13678 __pyx_v_I = __pyx_t_3;
13679
13680 /* "cpostprocessing.pyx":799
13681 * cdef int i
13682 * for I in range(self.nsf.N):
13683 * for i in range(self.nsf.subdomain_dim[I]): # <<<<<<<<<<<<<<
13684 * self.nsf.subdomain_U[I][i] = val
13685 *
13686*/
13687
13688 __pyx_t_4 = (__pyx_v_self->nsf.subdomain_dim[__pyx_v_I]);
13689 __pyx_t_5 = __pyx_t_4;
13690
13691 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
13692 __pyx_v_i = __pyx_t_6;
13693
13694 /* "cpostprocessing.pyx":800
13695 * for I in range(self.nsf.N):
13696 * for i in range(self.nsf.subdomain_dim[I]):
13697 * self.nsf.subdomain_U[I][i] = val # <<<<<<<<<<<<<<
13698 *
13699 * def copyData(self,
13700*/
13701 ((__pyx_v_self->nsf.subdomain_U[__pyx_v_I])[__pyx_v_i]) = __pyx_v_val;
13702 }
13703
13704 }
13705
13706
13707 /* "cpostprocessing.pyx":794
13708 * self.nsf.subdomain_column_pivots)
13709 *
13710 * def setU(self, # <<<<<<<<<<<<<<
13711 * double val):
13712 * cdef int I
13713*/
13714
13715 /* function exit code */
13716 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13717
13718
13719 __Pyx_XGIVEREF(__pyx_r);
13720 __Pyx_RefNannyFinishContext();
13721 return __pyx_r;
13722}
13723
13724/* "cpostprocessing.pyx":802
13725 * self.nsf.subdomain_U[I][i] = val
13726 *
13727 * def copyData(self, # <<<<<<<<<<<<<<
13728 * NodeStarFactor other):
13729 * pp.nodeStar_copy(other.nsf.N,
13730*/
13731
13732/* Python wrapper */
13733static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_7copyData(PyObject *__pyx_v_self,
13734#if CYTHON_VECTORCALL
13735PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13736#else
13737PyObject *__pyx_args, PyObject *__pyx_kwds
13738#endif
13739); /*proto*/
13740static PyMethodDef __pyx_mdef_15cpostprocessing_14NodeStarFactor_7copyData = {"copyData", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_7copyData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13741static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_7copyData(PyObject *__pyx_v_self,
13742#if CYTHON_VECTORCALL
13743PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13744#else
13745PyObject *__pyx_args, PyObject *__pyx_kwds
13746#endif
13747) {
13748 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_other = 0;
13749 #if !CYTHON_VECTORCALL
13750 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13751 #endif
13752 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13753 PyObject* values[1] = {0};
13754 int __pyx_lineno = 0;
13755 const char *__pyx_filename = NULL;
13756 int __pyx_clineno = 0;
13757 PyObject *__pyx_r = 0;
13758 __Pyx_RefNannyDeclarations
13759 __Pyx_RefNannySetupContext("copyData (wrapper)", 0);
13760 #if !CYTHON_VECTORCALL
13761 #if CYTHON_ASSUME_SAFE_SIZE
13762 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13763 #else
13764 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13765 #endif
13766 #endif
13767 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13768 {
13769 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_other,0};
13770 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13771 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 802, __pyx_L3_error)
13772 if (__pyx_kwds_len > 0) {
13773 switch (__pyx_nargs) {
13774 case 1:
13775 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13776 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 802, __pyx_L3_error)
13777 CYTHON_FALLTHROUGH;
13778 case 0: break;
13779 default: goto __pyx_L5_argtuple_error;
13780 }
13781 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13782 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "copyData", 0) < (0)) __PYX_ERR(0, 802, __pyx_L3_error)
13783 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13784 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("copyData", 1, 1, 1, i); __PYX_ERR(0, 802, __pyx_L3_error) }
13785 }
13786 } else if (unlikely(__pyx_nargs != 1)) {
13787 goto __pyx_L5_argtuple_error;
13788 } else {
13789 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13790 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 802, __pyx_L3_error)
13791 }
13792 __pyx_v_other = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[0]);
13793 }
13794 goto __pyx_L6_skip;
13795 __pyx_L5_argtuple_error:;
13796 __Pyx_RaiseArgtupleInvalid("copyData", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 802, __pyx_L3_error)
13797 __pyx_L6_skip:;
13798 goto __pyx_L4_argument_unpacking_done;
13799 __pyx_L3_error:;
13800 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13801 Py_XDECREF(values[__pyx_temp]);
13802 }
13803 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.copyData", __pyx_clineno, __pyx_lineno, __pyx_filename);
13804 __Pyx_RefNannyFinishContext();
13805 return NULL;
13806 __pyx_L4_argument_unpacking_done:;
13807 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "other", 0))) __PYX_ERR(0, 803, __pyx_L1_error)
13808 __pyx_r = __pyx_pf_15cpostprocessing_14NodeStarFactor_6copyData(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self), __pyx_v_other);
13809
13810 /* function exit code */
13811 goto __pyx_L0;
13812 __pyx_L1_error:;
13813 __pyx_r = NULL;
13814 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13815 Py_XDECREF(values[__pyx_temp]);
13816 }
13817 goto __pyx_L7_cleaned_up;
13818 __pyx_L0:;
13819 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13820 Py_XDECREF(values[__pyx_temp]);
13821 }
13822 __pyx_L7_cleaned_up:;
13823 __Pyx_RefNannyFinishContext();
13824 return __pyx_r;
13825}
13826
13827static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_6copyData(struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_other) {
13828 PyObject *__pyx_r = NULL;
13829 __Pyx_RefNannyDeclarations
13830 __Pyx_RefNannySetupContext("copyData", 0);
13831
13832 /* "cpostprocessing.pyx":804
13833 * def copyData(self,
13834 * NodeStarFactor other):
13835 * pp.nodeStar_copy(other.nsf.N, # <<<<<<<<<<<<<<
13836 * other.nsf.subdomain_dim,
13837 * other.nsf.subdomain_L,
13838*/
13839 (void)(nodeStar_copy(__pyx_v_other->nsf.N, __pyx_v_other->nsf.subdomain_dim, __pyx_v_other->nsf.subdomain_L, __pyx_v_other->nsf.subdomain_R, __pyx_v_other->nsf.subdomain_U, __pyx_v_other->nsf.subdomain_pivots, __pyx_v_other->nsf.subdomain_column_pivots, (&__pyx_v_self->nsf.N), (&__pyx_v_self->nsf.subdomain_dim), (&__pyx_v_self->nsf.subdomain_L), (&__pyx_v_self->nsf.subdomain_R), (&__pyx_v_self->nsf.subdomain_U), (&__pyx_v_self->nsf.subdomain_pivots), (&__pyx_v_self->nsf.subdomain_column_pivots)));
13840
13841 /* "cpostprocessing.pyx":802
13842 * self.nsf.subdomain_U[I][i] = val
13843 *
13844 * def copyData(self, # <<<<<<<<<<<<<<
13845 * NodeStarFactor other):
13846 * pp.nodeStar_copy(other.nsf.N,
13847*/
13848
13849 /* function exit code */
13850 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13851 __Pyx_XGIVEREF(__pyx_r);
13852 __Pyx_RefNannyFinishContext();
13853 return __pyx_r;
13854}
13855
13856/* "(tree fragment)":1
13857 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
13858 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13859 * def __setstate_cython__(self, __pyx_state):
13860*/
13861
13862/* Python wrapper */
13863static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_9__reduce_cython__(PyObject *__pyx_v_self,
13864#if CYTHON_VECTORCALL
13865PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13866#else
13867PyObject *__pyx_args, PyObject *__pyx_kwds
13868#endif
13869); /*proto*/
13870static PyMethodDef __pyx_mdef_15cpostprocessing_14NodeStarFactor_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13871static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_9__reduce_cython__(PyObject *__pyx_v_self,
13872#if CYTHON_VECTORCALL
13873PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13874#else
13875PyObject *__pyx_args, PyObject *__pyx_kwds
13876#endif
13877) {
13878 #if !CYTHON_VECTORCALL
13879 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13880 #endif
13881 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13882 PyObject *__pyx_r = 0;
13883 __Pyx_RefNannyDeclarations
13884 __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
13885 #if !CYTHON_VECTORCALL
13886 #if CYTHON_ASSUME_SAFE_SIZE
13887 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13888 #else
13889 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13890 #endif
13891 #endif
13892 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13893 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
13894 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13895 if (unlikely(__pyx_kwds_len < 0)) return NULL;
13896 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
13897 __pyx_r = __pyx_pf_15cpostprocessing_14NodeStarFactor_8__reduce_cython__(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self));
13898
13899 /* function exit code */
13900 __Pyx_RefNannyFinishContext();
13901 return __pyx_r;
13902}
13903
13904static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self) {
13905 PyObject *__pyx_r = NULL;
13906 __Pyx_RefNannyDeclarations
13907 int __pyx_lineno = 0;
13908 const char *__pyx_filename = NULL;
13909 int __pyx_clineno = 0;
13910 __Pyx_RefNannySetupContext("__reduce_cython__", 0);
13911
13912 /* "(tree fragment)":2
13913 * def __reduce_cython__(self):
13914 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
13915 * def __setstate_cython__(self, __pyx_state):
13916 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13917*/
13918 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
13919 __PYX_ERR(2, 2, __pyx_L1_error)
13920
13921 /* "(tree fragment)":1
13922 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
13923 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13924 * def __setstate_cython__(self, __pyx_state):
13925*/
13926
13927 /* function exit code */
13928 __pyx_L1_error:;
13929 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13930 __pyx_r = NULL;
13931 __Pyx_XGIVEREF(__pyx_r);
13932 __Pyx_RefNannyFinishContext();
13933 return __pyx_r;
13934}
13935
13936/* "(tree fragment)":3
13937 * def __reduce_cython__(self):
13938 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13939 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
13940 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13941*/
13942
13943/* Python wrapper */
13944static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_11__setstate_cython__(PyObject *__pyx_v_self,
13945#if CYTHON_VECTORCALL
13946PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13947#else
13948PyObject *__pyx_args, PyObject *__pyx_kwds
13949#endif
13950); /*proto*/
13951static PyMethodDef __pyx_mdef_15cpostprocessing_14NodeStarFactor_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13952static PyObject *__pyx_pw_15cpostprocessing_14NodeStarFactor_11__setstate_cython__(PyObject *__pyx_v_self,
13953#if CYTHON_VECTORCALL
13954PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13955#else
13956PyObject *__pyx_args, PyObject *__pyx_kwds
13957#endif
13958) {
13959 CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
13960 #if !CYTHON_VECTORCALL
13961 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13962 #endif
13963 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13964 PyObject* values[1] = {0};
13965 int __pyx_lineno = 0;
13966 const char *__pyx_filename = NULL;
13967 int __pyx_clineno = 0;
13968 PyObject *__pyx_r = 0;
13969 __Pyx_RefNannyDeclarations
13970 __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
13971 #if !CYTHON_VECTORCALL
13972 #if CYTHON_ASSUME_SAFE_SIZE
13973 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13974 #else
13975 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13976 #endif
13977 #endif
13978 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13979 {
13980 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
13981 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13982 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 3, __pyx_L3_error)
13983 if (__pyx_kwds_len > 0) {
13984 switch (__pyx_nargs) {
13985 case 1:
13986 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13987 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error)
13988 CYTHON_FALLTHROUGH;
13989 case 0: break;
13990 default: goto __pyx_L5_argtuple_error;
13991 }
13992 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13993 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error)
13994 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13995 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) }
13996 }
13997 } else if (unlikely(__pyx_nargs != 1)) {
13998 goto __pyx_L5_argtuple_error;
13999 } else {
14000 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14001 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error)
14002 }
14003 __pyx_v___pyx_state = values[0];
14004 }
14005 goto __pyx_L6_skip;
14006 __pyx_L5_argtuple_error:;
14007 __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error)
14008 __pyx_L6_skip:;
14009 goto __pyx_L4_argument_unpacking_done;
14010 __pyx_L3_error:;
14011 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14012 Py_XDECREF(values[__pyx_temp]);
14013 }
14014 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
14015 __Pyx_RefNannyFinishContext();
14016 return NULL;
14017 __pyx_L4_argument_unpacking_done:;
14018 __pyx_r = __pyx_pf_15cpostprocessing_14NodeStarFactor_10__setstate_cython__(((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)__pyx_v_self), __pyx_v___pyx_state);
14019
14020 /* function exit code */
14021 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14022 Py_XDECREF(values[__pyx_temp]);
14023 }
14024 __Pyx_RefNannyFinishContext();
14025 return __pyx_r;
14026}
14027
14028static PyObject *__pyx_pf_15cpostprocessing_14NodeStarFactor_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
14029 PyObject *__pyx_r = NULL;
14030 __Pyx_RefNannyDeclarations
14031 int __pyx_lineno = 0;
14032 const char *__pyx_filename = NULL;
14033 int __pyx_clineno = 0;
14034 __Pyx_RefNannySetupContext("__setstate_cython__", 0);
14035
14036 /* "(tree fragment)":4
14037 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14038 * def __setstate_cython__(self, __pyx_state):
14039 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
14040*/
14041 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
14042 __PYX_ERR(2, 4, __pyx_L1_error)
14043
14044 /* "(tree fragment)":3
14045 * def __reduce_cython__(self):
14046 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14047 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
14048 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14049*/
14050
14051 /* function exit code */
14052 __pyx_L1_error:;
14053 __Pyx_AddTraceback("cpostprocessing.NodeStarFactor.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
14054 __pyx_r = NULL;
14055 __Pyx_XGIVEREF(__pyx_r);
14056 __Pyx_RefNannyFinishContext();
14057 return __pyx_r;
14058}
14059
14060/* "cpostprocessing.pyx":819
14061 * &self.nsf.subdomain_column_pivots)
14062 *
14063 * def calculateConservationResidualPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
14064 * np.ndarray exteriorElementBoundaries,
14065 * np.ndarray elementBoundaryElements,
14066*/
14067
14068/* Python wrapper */
14069static PyObject *__pyx_pw_15cpostprocessing_69calculateConservationResidualPWL(PyObject *__pyx_self,
14070#if CYTHON_VECTORCALL
14071PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14072#else
14073PyObject *__pyx_args, PyObject *__pyx_kwds
14074#endif
14075); /*proto*/
14076static PyMethodDef __pyx_mdef_15cpostprocessing_69calculateConservationResidualPWL = {"calculateConservationResidualPWL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_69calculateConservationResidualPWL, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14077static PyObject *__pyx_pw_15cpostprocessing_69calculateConservationResidualPWL(PyObject *__pyx_self,
14078#if CYTHON_VECTORCALL
14079PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14080#else
14081PyObject *__pyx_args, PyObject *__pyx_kwds
14082#endif
14083) {
14084 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
14085 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14086 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14087 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14088 PyArrayObject *__pyx_v_elementNodes = 0;
14089 PyArrayObject *__pyx_v_dofMapl2g = 0;
14090 PyArrayObject *__pyx_v_nodeStarElements = 0;
14091 PyArrayObject *__pyx_v_nodeStarElementNeighbors = 0;
14092 PyArrayObject *__pyx_v_nElements_node = 0;
14093 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
14094 PyArrayObject *__pyx_v_elementResidual = 0;
14095 PyArrayObject *__pyx_v_vAverage = 0;
14096 PyArrayObject *__pyx_v_dx = 0;
14097 PyArrayObject *__pyx_v_w = 0;
14098 PyArrayObject *__pyx_v_n = 0;
14099 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
14100 PyArrayObject *__pyx_v_conservationResidual = 0;
14101 PyArrayObject *__pyx_v_vConservative = 0;
14102 PyArrayObject *__pyx_v_vConservative_element = 0;
14103 #if !CYTHON_VECTORCALL
14104 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14105 #endif
14106 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14107 PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14108 int __pyx_lineno = 0;
14109 const char *__pyx_filename = NULL;
14110 int __pyx_clineno = 0;
14111 PyObject *__pyx_r = 0;
14112 __Pyx_RefNannyDeclarations
14113 __Pyx_RefNannySetupContext("calculateConservationResidualPWL (wrapper)", 0);
14114 #if !CYTHON_VECTORCALL
14115 #if CYTHON_ASSUME_SAFE_SIZE
14116 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14117 #else
14118 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14119 #endif
14120 #endif
14121 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14122 {
14123 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_dofMapl2g,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_vAverage,&__pyx_mstate_global->__pyx_n_u_dx,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,&__pyx_mstate_global->__pyx_n_u_conservationResidual,&__pyx_mstate_global->__pyx_n_u_vConservative,&__pyx_mstate_global->__pyx_n_u_vConservative_element,0};
14124 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14125 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 819, __pyx_L3_error)
14126 if (__pyx_kwds_len > 0) {
14127 switch (__pyx_nargs) {
14128 case 19:
14129 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
14130 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 819, __pyx_L3_error)
14131 CYTHON_FALLTHROUGH;
14132 case 18:
14133 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
14134 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 819, __pyx_L3_error)
14135 CYTHON_FALLTHROUGH;
14136 case 17:
14137 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
14138 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 819, __pyx_L3_error)
14139 CYTHON_FALLTHROUGH;
14140 case 16:
14141 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
14142 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 819, __pyx_L3_error)
14143 CYTHON_FALLTHROUGH;
14144 case 15:
14145 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14146 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 819, __pyx_L3_error)
14147 CYTHON_FALLTHROUGH;
14148 case 14:
14149 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14150 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 819, __pyx_L3_error)
14151 CYTHON_FALLTHROUGH;
14152 case 13:
14153 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14154 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 819, __pyx_L3_error)
14155 CYTHON_FALLTHROUGH;
14156 case 12:
14157 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14158 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 819, __pyx_L3_error)
14159 CYTHON_FALLTHROUGH;
14160 case 11:
14161 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14162 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 819, __pyx_L3_error)
14163 CYTHON_FALLTHROUGH;
14164 case 10:
14165 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14166 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 819, __pyx_L3_error)
14167 CYTHON_FALLTHROUGH;
14168 case 9:
14169 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14170 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 819, __pyx_L3_error)
14171 CYTHON_FALLTHROUGH;
14172 case 8:
14173 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14174 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 819, __pyx_L3_error)
14175 CYTHON_FALLTHROUGH;
14176 case 7:
14177 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14178 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 819, __pyx_L3_error)
14179 CYTHON_FALLTHROUGH;
14180 case 6:
14181 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14182 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 819, __pyx_L3_error)
14183 CYTHON_FALLTHROUGH;
14184 case 5:
14185 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14186 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 819, __pyx_L3_error)
14187 CYTHON_FALLTHROUGH;
14188 case 4:
14189 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14190 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 819, __pyx_L3_error)
14191 CYTHON_FALLTHROUGH;
14192 case 3:
14193 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14194 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 819, __pyx_L3_error)
14195 CYTHON_FALLTHROUGH;
14196 case 2:
14197 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14198 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 819, __pyx_L3_error)
14199 CYTHON_FALLTHROUGH;
14200 case 1:
14201 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14202 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 819, __pyx_L3_error)
14203 CYTHON_FALLTHROUGH;
14204 case 0: break;
14205 default: goto __pyx_L5_argtuple_error;
14206 }
14207 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14208 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationResidualPWL", 0) < (0)) __PYX_ERR(0, 819, __pyx_L3_error)
14209 for (Py_ssize_t i = __pyx_nargs; i < 19; i++) {
14210 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL", 1, 19, 19, i); __PYX_ERR(0, 819, __pyx_L3_error) }
14211 }
14212 } else if (unlikely(__pyx_nargs != 19)) {
14213 goto __pyx_L5_argtuple_error;
14214 } else {
14215 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14216 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 819, __pyx_L3_error)
14217 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14218 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 819, __pyx_L3_error)
14219 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14220 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 819, __pyx_L3_error)
14221 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14222 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 819, __pyx_L3_error)
14223 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14224 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 819, __pyx_L3_error)
14225 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14226 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 819, __pyx_L3_error)
14227 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14228 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 819, __pyx_L3_error)
14229 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14230 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 819, __pyx_L3_error)
14231 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14232 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 819, __pyx_L3_error)
14233 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14234 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 819, __pyx_L3_error)
14235 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14236 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 819, __pyx_L3_error)
14237 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14238 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 819, __pyx_L3_error)
14239 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14240 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 819, __pyx_L3_error)
14241 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14242 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 819, __pyx_L3_error)
14243 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14244 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 819, __pyx_L3_error)
14245 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
14246 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 819, __pyx_L3_error)
14247 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
14248 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 819, __pyx_L3_error)
14249 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
14250 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 819, __pyx_L3_error)
14251 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
14252 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 819, __pyx_L3_error)
14253 }
14254 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
14255 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
14256 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
14257 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
14258 __pyx_v_elementNodes = ((PyArrayObject *)values[4]);
14259 __pyx_v_dofMapl2g = ((PyArrayObject *)values[5]);
14260 __pyx_v_nodeStarElements = ((PyArrayObject *)values[6]);
14261 __pyx_v_nodeStarElementNeighbors = ((PyArrayObject *)values[7]);
14262 __pyx_v_nElements_node = ((PyArrayObject *)values[8]);
14263 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[9]);
14264 __pyx_v_elementResidual = ((PyArrayObject *)values[10]);
14265 __pyx_v_vAverage = ((PyArrayObject *)values[11]);
14266 __pyx_v_dx = ((PyArrayObject *)values[12]);
14267 __pyx_v_w = ((PyArrayObject *)values[13]);
14268 __pyx_v_n = ((PyArrayObject *)values[14]);
14269 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[15]);
14270 __pyx_v_conservationResidual = ((PyArrayObject *)values[16]);
14271 __pyx_v_vConservative = ((PyArrayObject *)values[17]);
14272 __pyx_v_vConservative_element = ((PyArrayObject *)values[18]);
14273 }
14274 goto __pyx_L6_skip;
14275 __pyx_L5_argtuple_error:;
14276 __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL", 1, 19, 19, __pyx_nargs); __PYX_ERR(0, 819, __pyx_L3_error)
14277 __pyx_L6_skip:;
14278 goto __pyx_L4_argument_unpacking_done;
14279 __pyx_L3_error:;
14280 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14281 Py_XDECREF(values[__pyx_temp]);
14282 }
14283 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualPWL", __pyx_clineno, __pyx_lineno, __pyx_filename);
14284 __Pyx_RefNannyFinishContext();
14285 return NULL;
14286 __pyx_L4_argument_unpacking_done:;
14287 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 819, __pyx_L1_error)
14288 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 820, __pyx_L1_error)
14289 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 821, __pyx_L1_error)
14290 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 822, __pyx_L1_error)
14291 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 823, __pyx_L1_error)
14292 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dofMapl2g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dofMapl2g", 0))) __PYX_ERR(0, 824, __pyx_L1_error)
14293 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 825, __pyx_L1_error)
14294 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementNeighbors", 0))) __PYX_ERR(0, 826, __pyx_L1_error)
14295 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 827, __pyx_L1_error)
14296 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 828, __pyx_L1_error)
14297 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 829, __pyx_L1_error)
14298 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vAverage), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vAverage", 0))) __PYX_ERR(0, 830, __pyx_L1_error)
14299 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dx), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dx", 0))) __PYX_ERR(0, 831, __pyx_L1_error)
14300 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 832, __pyx_L1_error)
14301 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 833, __pyx_L1_error)
14302 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 834, __pyx_L1_error)
14303 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 835, __pyx_L1_error)
14304 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative", 0))) __PYX_ERR(0, 836, __pyx_L1_error)
14305 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative_element", 0))) __PYX_ERR(0, 837, __pyx_L1_error)
14306 __pyx_r = __pyx_pf_15cpostprocessing_68calculateConservationResidualPWL(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_dofMapl2g, __pyx_v_nodeStarElements, __pyx_v_nodeStarElementNeighbors, __pyx_v_nElements_node, __pyx_v_fluxElementBoundaries, __pyx_v_elementResidual, __pyx_v_vAverage, __pyx_v_dx, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor, __pyx_v_conservationResidual, __pyx_v_vConservative, __pyx_v_vConservative_element);
14307
14308 /* function exit code */
14309 goto __pyx_L0;
14310 __pyx_L1_error:;
14311 __pyx_r = NULL;
14312 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14313 Py_XDECREF(values[__pyx_temp]);
14314 }
14315 goto __pyx_L7_cleaned_up;
14316 __pyx_L0:;
14317 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14318 Py_XDECREF(values[__pyx_temp]);
14319 }
14320 __pyx_L7_cleaned_up:;
14321 __Pyx_RefNannyFinishContext();
14322 return __pyx_r;
14323}
14324
14325static PyObject *__pyx_pf_15cpostprocessing_68calculateConservationResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element) {
14326 PyObject *__pyx_r = NULL;
14327 __Pyx_RefNannyDeclarations
14328 __Pyx_RefNannySetupContext("calculateConservationResidualPWL", 0);
14329
14330 /* "cpostprocessing.pyx":838
14331 * np.ndarray vConservative,
14332 * np.ndarray vConservative_element):
14333 * pp.calculateConservationResidualPWL(w.shape[0], # <<<<<<<<<<<<<<
14334 * #/[inserted by cython to avoid comment start]* nElements_global*[inserted by cython to avoid comment closer]/,
14335 * interiorElementBoundaries.shape[0],
14336*/
14337 calculateConservationResidualPWL((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dofMapl2g)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dofMapl2g)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vAverage)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dx)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative_element)));
14338
14339 /* "cpostprocessing.pyx":819
14340 * &self.nsf.subdomain_column_pivots)
14341 *
14342 * def calculateConservationResidualPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
14343 * np.ndarray exteriorElementBoundaries,
14344 * np.ndarray elementBoundaryElements,
14345*/
14346
14347 /* function exit code */
14348 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14349 __Pyx_XGIVEREF(__pyx_r);
14350 __Pyx_RefNannyFinishContext();
14351 return __pyx_r;
14352}
14353
14354/* "cpostprocessing.pyx":874
14355 * <double*>(vConservative_element.data))
14356 *
14357 * def calculateConservationJacobianPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
14358 * np.ndarray exteriorElementBoundaries,
14359 * np.ndarray elementBoundaryElements,
14360*/
14361
14362/* Python wrapper */
14363static PyObject *__pyx_pw_15cpostprocessing_71calculateConservationJacobianPWL(PyObject *__pyx_self,
14364#if CYTHON_VECTORCALL
14365PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14366#else
14367PyObject *__pyx_args, PyObject *__pyx_kwds
14368#endif
14369); /*proto*/
14370static PyMethodDef __pyx_mdef_15cpostprocessing_71calculateConservationJacobianPWL = {"calculateConservationJacobianPWL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_71calculateConservationJacobianPWL, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14371static PyObject *__pyx_pw_15cpostprocessing_71calculateConservationJacobianPWL(PyObject *__pyx_self,
14372#if CYTHON_VECTORCALL
14373PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14374#else
14375PyObject *__pyx_args, PyObject *__pyx_kwds
14376#endif
14377) {
14378 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
14379 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14380 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14381 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14382 PyArrayObject *__pyx_v_elementNodes = 0;
14383 PyArrayObject *__pyx_v_dofMapl2g = 0;
14384 PyArrayObject *__pyx_v_dofStarElements = 0;
14385 PyArrayObject *__pyx_v_dofStarElementNeighbors = 0;
14386 PyArrayObject *__pyx_v_nElements_dof = 0;
14387 PyArrayObject *__pyx_v_internalNodes = 0;
14388 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
14389 PyArrayObject *__pyx_v_fluxBoundaryNodes = 0;
14390 PyArrayObject *__pyx_v_w = 0;
14391 PyArrayObject *__pyx_v_n = 0;
14392 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
14393 #if !CYTHON_VECTORCALL
14394 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14395 #endif
14396 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14397 PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14398 int __pyx_lineno = 0;
14399 const char *__pyx_filename = NULL;
14400 int __pyx_clineno = 0;
14401 PyObject *__pyx_r = 0;
14402 __Pyx_RefNannyDeclarations
14403 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL (wrapper)", 0);
14404 #if !CYTHON_VECTORCALL
14405 #if CYTHON_ASSUME_SAFE_SIZE
14406 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14407 #else
14408 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14409 #endif
14410 #endif
14411 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14412 {
14413 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_dofMapl2g,&__pyx_mstate_global->__pyx_n_u_dofStarElements,&__pyx_mstate_global->__pyx_n_u_dofStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_dof,&__pyx_mstate_global->__pyx_n_u_internalNodes,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_fluxBoundaryNodes,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
14414 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14415 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 874, __pyx_L3_error)
14416 if (__pyx_kwds_len > 0) {
14417 switch (__pyx_nargs) {
14418 case 15:
14419 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14420 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 874, __pyx_L3_error)
14421 CYTHON_FALLTHROUGH;
14422 case 14:
14423 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14424 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 874, __pyx_L3_error)
14425 CYTHON_FALLTHROUGH;
14426 case 13:
14427 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14428 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 874, __pyx_L3_error)
14429 CYTHON_FALLTHROUGH;
14430 case 12:
14431 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14432 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 874, __pyx_L3_error)
14433 CYTHON_FALLTHROUGH;
14434 case 11:
14435 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14436 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 874, __pyx_L3_error)
14437 CYTHON_FALLTHROUGH;
14438 case 10:
14439 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14440 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 874, __pyx_L3_error)
14441 CYTHON_FALLTHROUGH;
14442 case 9:
14443 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14444 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 874, __pyx_L3_error)
14445 CYTHON_FALLTHROUGH;
14446 case 8:
14447 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14448 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 874, __pyx_L3_error)
14449 CYTHON_FALLTHROUGH;
14450 case 7:
14451 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14452 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 874, __pyx_L3_error)
14453 CYTHON_FALLTHROUGH;
14454 case 6:
14455 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14456 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 874, __pyx_L3_error)
14457 CYTHON_FALLTHROUGH;
14458 case 5:
14459 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14460 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 874, __pyx_L3_error)
14461 CYTHON_FALLTHROUGH;
14462 case 4:
14463 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14464 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 874, __pyx_L3_error)
14465 CYTHON_FALLTHROUGH;
14466 case 3:
14467 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14468 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 874, __pyx_L3_error)
14469 CYTHON_FALLTHROUGH;
14470 case 2:
14471 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14472 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 874, __pyx_L3_error)
14473 CYTHON_FALLTHROUGH;
14474 case 1:
14475 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14476 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 874, __pyx_L3_error)
14477 CYTHON_FALLTHROUGH;
14478 case 0: break;
14479 default: goto __pyx_L5_argtuple_error;
14480 }
14481 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14482 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationJacobianPWL", 0) < (0)) __PYX_ERR(0, 874, __pyx_L3_error)
14483 for (Py_ssize_t i = __pyx_nargs; i < 15; i++) {
14484 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL", 1, 15, 15, i); __PYX_ERR(0, 874, __pyx_L3_error) }
14485 }
14486 } else if (unlikely(__pyx_nargs != 15)) {
14487 goto __pyx_L5_argtuple_error;
14488 } else {
14489 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14490 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 874, __pyx_L3_error)
14491 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14492 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 874, __pyx_L3_error)
14493 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14494 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 874, __pyx_L3_error)
14495 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14496 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 874, __pyx_L3_error)
14497 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14498 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 874, __pyx_L3_error)
14499 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14500 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 874, __pyx_L3_error)
14501 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14502 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 874, __pyx_L3_error)
14503 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14504 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 874, __pyx_L3_error)
14505 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14506 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 874, __pyx_L3_error)
14507 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14508 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 874, __pyx_L3_error)
14509 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14510 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 874, __pyx_L3_error)
14511 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14512 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 874, __pyx_L3_error)
14513 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14514 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 874, __pyx_L3_error)
14515 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14516 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 874, __pyx_L3_error)
14517 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14518 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 874, __pyx_L3_error)
14519 }
14520 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
14521 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
14522 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
14523 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
14524 __pyx_v_elementNodes = ((PyArrayObject *)values[4]);
14525 __pyx_v_dofMapl2g = ((PyArrayObject *)values[5]);
14526 __pyx_v_dofStarElements = ((PyArrayObject *)values[6]);
14527 __pyx_v_dofStarElementNeighbors = ((PyArrayObject *)values[7]);
14528 __pyx_v_nElements_dof = ((PyArrayObject *)values[8]);
14529 __pyx_v_internalNodes = ((PyArrayObject *)values[9]);
14530 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[10]);
14531 __pyx_v_fluxBoundaryNodes = ((PyArrayObject *)values[11]);
14532 __pyx_v_w = ((PyArrayObject *)values[12]);
14533 __pyx_v_n = ((PyArrayObject *)values[13]);
14534 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[14]);
14535 }
14536 goto __pyx_L6_skip;
14537 __pyx_L5_argtuple_error:;
14538 __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL", 1, 15, 15, __pyx_nargs); __PYX_ERR(0, 874, __pyx_L3_error)
14539 __pyx_L6_skip:;
14540 goto __pyx_L4_argument_unpacking_done;
14541 __pyx_L3_error:;
14542 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14543 Py_XDECREF(values[__pyx_temp]);
14544 }
14545 __Pyx_AddTraceback("cpostprocessing.calculateConservationJacobianPWL", __pyx_clineno, __pyx_lineno, __pyx_filename);
14546 __Pyx_RefNannyFinishContext();
14547 return NULL;
14548 __pyx_L4_argument_unpacking_done:;
14549 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 874, __pyx_L1_error)
14550 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 875, __pyx_L1_error)
14551 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 876, __pyx_L1_error)
14552 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 877, __pyx_L1_error)
14553 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 878, __pyx_L1_error)
14554 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dofMapl2g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dofMapl2g", 0))) __PYX_ERR(0, 879, __pyx_L1_error)
14555 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dofStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dofStarElements", 0))) __PYX_ERR(0, 880, __pyx_L1_error)
14556 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dofStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dofStarElementNeighbors", 0))) __PYX_ERR(0, 881, __pyx_L1_error)
14557 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_dof), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_dof", 0))) __PYX_ERR(0, 882, __pyx_L1_error)
14558 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_internalNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "internalNodes", 0))) __PYX_ERR(0, 883, __pyx_L1_error)
14559 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 884, __pyx_L1_error)
14560 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryNodes", 0))) __PYX_ERR(0, 885, __pyx_L1_error)
14561 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 886, __pyx_L1_error)
14562 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 887, __pyx_L1_error)
14563 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 888, __pyx_L1_error)
14564 __pyx_r = __pyx_pf_15cpostprocessing_70calculateConservationJacobianPWL(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_dofMapl2g, __pyx_v_dofStarElements, __pyx_v_dofStarElementNeighbors, __pyx_v_nElements_dof, __pyx_v_internalNodes, __pyx_v_fluxElementBoundaries, __pyx_v_fluxBoundaryNodes, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor);
14565
14566 /* function exit code */
14567 goto __pyx_L0;
14568 __pyx_L1_error:;
14569 __pyx_r = NULL;
14570 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14571 Py_XDECREF(values[__pyx_temp]);
14572 }
14573 goto __pyx_L7_cleaned_up;
14574 __pyx_L0:;
14575 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14576 Py_XDECREF(values[__pyx_temp]);
14577 }
14578 __pyx_L7_cleaned_up:;
14579 __Pyx_RefNannyFinishContext();
14580 return __pyx_r;
14581}
14582
14583static PyObject *__pyx_pf_15cpostprocessing_70calculateConservationJacobianPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_dofMapl2g, PyArrayObject *__pyx_v_dofStarElements, PyArrayObject *__pyx_v_dofStarElementNeighbors, PyArrayObject *__pyx_v_nElements_dof, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
14584 PyObject *__pyx_r = NULL;
14585 __Pyx_RefNannyDeclarations
14586 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL", 0);
14587
14588 /* "cpostprocessing.pyx":889
14589 * np.ndarray n,
14590 * NodeStarFactor nodeStarFactor):
14591 * pp.calculateConservationJacobianPWL(nElements_dof.shape[0], # <<<<<<<<<<<<<<
14592 * internalNodes.shape[0],
14593 * w.shape[0],
14594*/
14595 calculateConservationJacobianPWL((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_dof)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_internalNodes)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dofMapl2g)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dofMapl2g)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dofStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dofStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_dof)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_internalNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxBoundaryNodes)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf));
14596
14597 /* "cpostprocessing.pyx":874
14598 * <double*>(vConservative_element.data))
14599 *
14600 * def calculateConservationJacobianPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
14601 * np.ndarray exteriorElementBoundaries,
14602 * np.ndarray elementBoundaryElements,
14603*/
14604
14605 /* function exit code */
14606 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14607 __Pyx_XGIVEREF(__pyx_r);
14608 __Pyx_RefNannyFinishContext();
14609 return __pyx_r;
14610}
14611
14612/* "cpostprocessing.pyx":915
14613 * &nodeStarFactor.nsf)
14614 *
14615 * def calculateConservationFluxPWL(np.ndarray nElements_node, # <<<<<<<<<<<<<<
14616 * np.ndarray internalNodes,
14617 * np.ndarray fluxBoundaryNodes,
14618*/
14619
14620/* Python wrapper */
14621static PyObject *__pyx_pw_15cpostprocessing_73calculateConservationFluxPWL(PyObject *__pyx_self,
14622#if CYTHON_VECTORCALL
14623PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14624#else
14625PyObject *__pyx_args, PyObject *__pyx_kwds
14626#endif
14627); /*proto*/
14628static PyMethodDef __pyx_mdef_15cpostprocessing_73calculateConservationFluxPWL = {"calculateConservationFluxPWL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_73calculateConservationFluxPWL, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14629static PyObject *__pyx_pw_15cpostprocessing_73calculateConservationFluxPWL(PyObject *__pyx_self,
14630#if CYTHON_VECTORCALL
14631PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14632#else
14633PyObject *__pyx_args, PyObject *__pyx_kwds
14634#endif
14635) {
14636 PyArrayObject *__pyx_v_nElements_node = 0;
14637 PyArrayObject *__pyx_v_internalNodes = 0;
14638 PyArrayObject *__pyx_v_fluxBoundaryNodes = 0;
14639 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
14640 #if !CYTHON_VECTORCALL
14641 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14642 #endif
14643 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14644 PyObject* values[4] = {0,0,0,0};
14645 int __pyx_lineno = 0;
14646 const char *__pyx_filename = NULL;
14647 int __pyx_clineno = 0;
14648 PyObject *__pyx_r = 0;
14649 __Pyx_RefNannyDeclarations
14650 __Pyx_RefNannySetupContext("calculateConservationFluxPWL (wrapper)", 0);
14651 #if !CYTHON_VECTORCALL
14652 #if CYTHON_ASSUME_SAFE_SIZE
14653 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14654 #else
14655 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14656 #endif
14657 #endif
14658 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14659 {
14660 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_internalNodes,&__pyx_mstate_global->__pyx_n_u_fluxBoundaryNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
14661 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14662 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 915, __pyx_L3_error)
14663 if (__pyx_kwds_len > 0) {
14664 switch (__pyx_nargs) {
14665 case 4:
14666 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14667 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 915, __pyx_L3_error)
14668 CYTHON_FALLTHROUGH;
14669 case 3:
14670 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14671 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 915, __pyx_L3_error)
14672 CYTHON_FALLTHROUGH;
14673 case 2:
14674 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14675 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 915, __pyx_L3_error)
14676 CYTHON_FALLTHROUGH;
14677 case 1:
14678 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14679 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 915, __pyx_L3_error)
14680 CYTHON_FALLTHROUGH;
14681 case 0: break;
14682 default: goto __pyx_L5_argtuple_error;
14683 }
14684 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14685 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationFluxPWL", 0) < (0)) __PYX_ERR(0, 915, __pyx_L3_error)
14686 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
14687 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL", 1, 4, 4, i); __PYX_ERR(0, 915, __pyx_L3_error) }
14688 }
14689 } else if (unlikely(__pyx_nargs != 4)) {
14690 goto __pyx_L5_argtuple_error;
14691 } else {
14692 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14693 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 915, __pyx_L3_error)
14694 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14695 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 915, __pyx_L3_error)
14696 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14697 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 915, __pyx_L3_error)
14698 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14699 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 915, __pyx_L3_error)
14700 }
14701 __pyx_v_nElements_node = ((PyArrayObject *)values[0]);
14702 __pyx_v_internalNodes = ((PyArrayObject *)values[1]);
14703 __pyx_v_fluxBoundaryNodes = ((PyArrayObject *)values[2]);
14704 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[3]);
14705 }
14706 goto __pyx_L6_skip;
14707 __pyx_L5_argtuple_error:;
14708 __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 915, __pyx_L3_error)
14709 __pyx_L6_skip:;
14710 goto __pyx_L4_argument_unpacking_done;
14711 __pyx_L3_error:;
14712 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14713 Py_XDECREF(values[__pyx_temp]);
14714 }
14715 __Pyx_AddTraceback("cpostprocessing.calculateConservationFluxPWL", __pyx_clineno, __pyx_lineno, __pyx_filename);
14716 __Pyx_RefNannyFinishContext();
14717 return NULL;
14718 __pyx_L4_argument_unpacking_done:;
14719 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 915, __pyx_L1_error)
14720 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_internalNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "internalNodes", 0))) __PYX_ERR(0, 916, __pyx_L1_error)
14721 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryNodes", 0))) __PYX_ERR(0, 917, __pyx_L1_error)
14722 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 918, __pyx_L1_error)
14723 __pyx_r = __pyx_pf_15cpostprocessing_72calculateConservationFluxPWL(__pyx_self, __pyx_v_nElements_node, __pyx_v_internalNodes, __pyx_v_fluxBoundaryNodes, __pyx_v_nodeStarFactor);
14724
14725 /* function exit code */
14726 goto __pyx_L0;
14727 __pyx_L1_error:;
14728 __pyx_r = NULL;
14729 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14730 Py_XDECREF(values[__pyx_temp]);
14731 }
14732 goto __pyx_L7_cleaned_up;
14733 __pyx_L0:;
14734 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14735 Py_XDECREF(values[__pyx_temp]);
14736 }
14737 __pyx_L7_cleaned_up:;
14738 __Pyx_RefNannyFinishContext();
14739 return __pyx_r;
14740}
14741
14742static PyObject *__pyx_pf_15cpostprocessing_72calculateConservationFluxPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
14743 PyObject *__pyx_r = NULL;
14744 __Pyx_RefNannyDeclarations
14745 __Pyx_RefNannySetupContext("calculateConservationFluxPWL", 0);
14746
14747 /* "cpostprocessing.pyx":919
14748 * np.ndarray fluxBoundaryNodes,
14749 * NodeStarFactor nodeStarFactor):
14750 * pp.calculateConservationFluxPWL(nElements_node.shape[0], # <<<<<<<<<<<<<<
14751 * internalNodes.shape[0],
14752 * <int*>(nElements_node.data),
14753*/
14754 calculateConservationFluxPWL((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_internalNodes)[0]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_internalNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxBoundaryNodes)), (&__pyx_v_nodeStarFactor->nsf));
14755
14756 /* "cpostprocessing.pyx":915
14757 * &nodeStarFactor.nsf)
14758 *
14759 * def calculateConservationFluxPWL(np.ndarray nElements_node, # <<<<<<<<<<<<<<
14760 * np.ndarray internalNodes,
14761 * np.ndarray fluxBoundaryNodes,
14762*/
14763
14764 /* function exit code */
14765 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14766 __Pyx_XGIVEREF(__pyx_r);
14767 __Pyx_RefNannyFinishContext();
14768 return __pyx_r;
14769}
14770
14771/* "cpostprocessing.pyx":926
14772 * &nodeStarFactor.nsf)
14773 *
14774 * def calculateConservationFluxPWL_noNeumannFix(np.ndarray nElements_node, # <<<<<<<<<<<<<<
14775 * NodeStarFactor nodeStarFactor):
14776 * pp.calculateConservationFluxPWL_noNeumannFix(nElements_node.shape[0],
14777*/
14778
14779/* Python wrapper */
14780static PyObject *__pyx_pw_15cpostprocessing_75calculateConservationFluxPWL_noNeumannFix(PyObject *__pyx_self,
14781#if CYTHON_VECTORCALL
14782PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14783#else
14784PyObject *__pyx_args, PyObject *__pyx_kwds
14785#endif
14786); /*proto*/
14787static PyMethodDef __pyx_mdef_15cpostprocessing_75calculateConservationFluxPWL_noNeumannFix = {"calculateConservationFluxPWL_noNeumannFix", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_75calculateConservationFluxPWL_noNeumannFix, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14788static PyObject *__pyx_pw_15cpostprocessing_75calculateConservationFluxPWL_noNeumannFix(PyObject *__pyx_self,
14789#if CYTHON_VECTORCALL
14790PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14791#else
14792PyObject *__pyx_args, PyObject *__pyx_kwds
14793#endif
14794) {
14795 PyArrayObject *__pyx_v_nElements_node = 0;
14796 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
14797 #if !CYTHON_VECTORCALL
14798 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14799 #endif
14800 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14801 PyObject* values[2] = {0,0};
14802 int __pyx_lineno = 0;
14803 const char *__pyx_filename = NULL;
14804 int __pyx_clineno = 0;
14805 PyObject *__pyx_r = 0;
14806 __Pyx_RefNannyDeclarations
14807 __Pyx_RefNannySetupContext("calculateConservationFluxPWL_noNeumannFix (wrapper)", 0);
14808 #if !CYTHON_VECTORCALL
14809 #if CYTHON_ASSUME_SAFE_SIZE
14810 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14811 #else
14812 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14813 #endif
14814 #endif
14815 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14816 {
14817 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
14818 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14819 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 926, __pyx_L3_error)
14820 if (__pyx_kwds_len > 0) {
14821 switch (__pyx_nargs) {
14822 case 2:
14823 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14824 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 926, __pyx_L3_error)
14825 CYTHON_FALLTHROUGH;
14826 case 1:
14827 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14828 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 926, __pyx_L3_error)
14829 CYTHON_FALLTHROUGH;
14830 case 0: break;
14831 default: goto __pyx_L5_argtuple_error;
14832 }
14833 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14834 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationFluxPWL_noNeumannFix", 0) < (0)) __PYX_ERR(0, 926, __pyx_L3_error)
14835 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
14836 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL_noNeumannFix", 1, 2, 2, i); __PYX_ERR(0, 926, __pyx_L3_error) }
14837 }
14838 } else if (unlikely(__pyx_nargs != 2)) {
14839 goto __pyx_L5_argtuple_error;
14840 } else {
14841 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14842 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 926, __pyx_L3_error)
14843 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14844 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 926, __pyx_L3_error)
14845 }
14846 __pyx_v_nElements_node = ((PyArrayObject *)values[0]);
14847 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[1]);
14848 }
14849 goto __pyx_L6_skip;
14850 __pyx_L5_argtuple_error:;
14851 __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL_noNeumannFix", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 926, __pyx_L3_error)
14852 __pyx_L6_skip:;
14853 goto __pyx_L4_argument_unpacking_done;
14854 __pyx_L3_error:;
14855 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14856 Py_XDECREF(values[__pyx_temp]);
14857 }
14858 __Pyx_AddTraceback("cpostprocessing.calculateConservationFluxPWL_noNeumannFix", __pyx_clineno, __pyx_lineno, __pyx_filename);
14859 __Pyx_RefNannyFinishContext();
14860 return NULL;
14861 __pyx_L4_argument_unpacking_done:;
14862 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 926, __pyx_L1_error)
14863 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 927, __pyx_L1_error)
14864 __pyx_r = __pyx_pf_15cpostprocessing_74calculateConservationFluxPWL_noNeumannFix(__pyx_self, __pyx_v_nElements_node, __pyx_v_nodeStarFactor);
14865
14866 /* function exit code */
14867 goto __pyx_L0;
14868 __pyx_L1_error:;
14869 __pyx_r = NULL;
14870 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14871 Py_XDECREF(values[__pyx_temp]);
14872 }
14873 goto __pyx_L7_cleaned_up;
14874 __pyx_L0:;
14875 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14876 Py_XDECREF(values[__pyx_temp]);
14877 }
14878 __pyx_L7_cleaned_up:;
14879 __Pyx_RefNannyFinishContext();
14880 return __pyx_r;
14881}
14882
14883static PyObject *__pyx_pf_15cpostprocessing_74calculateConservationFluxPWL_noNeumannFix(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_nElements_node, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
14884 PyObject *__pyx_r = NULL;
14885 __Pyx_RefNannyDeclarations
14886 __Pyx_RefNannySetupContext("calculateConservationFluxPWL_noNeumannFix", 0);
14887
14888 /* "cpostprocessing.pyx":928
14889 * def calculateConservationFluxPWL_noNeumannFix(np.ndarray nElements_node,
14890 * NodeStarFactor nodeStarFactor):
14891 * pp.calculateConservationFluxPWL_noNeumannFix(nElements_node.shape[0], # <<<<<<<<<<<<<<
14892 * <int*>(nElements_node.data),
14893 * &nodeStarFactor.nsf)
14894*/
14895 calculateConservationFluxPWL_noNeumannFix((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), (&__pyx_v_nodeStarFactor->nsf));
14896
14897 /* "cpostprocessing.pyx":926
14898 * &nodeStarFactor.nsf)
14899 *
14900 * def calculateConservationFluxPWL_noNeumannFix(np.ndarray nElements_node, # <<<<<<<<<<<<<<
14901 * NodeStarFactor nodeStarFactor):
14902 * pp.calculateConservationFluxPWL_noNeumannFix(nElements_node.shape[0],
14903*/
14904
14905 /* function exit code */
14906 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14907 __Pyx_XGIVEREF(__pyx_r);
14908 __Pyx_RefNannyFinishContext();
14909 return __pyx_r;
14910}
14911
14912/* "cpostprocessing.pyx":932
14913 * &nodeStarFactor.nsf)
14914 *
14915 * def calculateConservationResidualPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
14916 * np.ndarray interiorElementBoundaries,
14917 * np.ndarray exteriorElementBoundaries,
14918*/
14919
14920/* Python wrapper */
14921static PyObject *__pyx_pw_15cpostprocessing_77calculateConservationResidualPWL_opt(PyObject *__pyx_self,
14922#if CYTHON_VECTORCALL
14923PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14924#else
14925PyObject *__pyx_args, PyObject *__pyx_kwds
14926#endif
14927); /*proto*/
14928static PyMethodDef __pyx_mdef_15cpostprocessing_77calculateConservationResidualPWL_opt = {"calculateConservationResidualPWL_opt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_77calculateConservationResidualPWL_opt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14929static PyObject *__pyx_pw_15cpostprocessing_77calculateConservationResidualPWL_opt(PyObject *__pyx_self,
14930#if CYTHON_VECTORCALL
14931PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14932#else
14933PyObject *__pyx_args, PyObject *__pyx_kwds
14934#endif
14935) {
14936 int __pyx_v_nNodes_owned;
14937 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
14938 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
14939 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
14940 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
14941 PyArrayObject *__pyx_v_elementNodes = 0;
14942 PyArrayObject *__pyx_v_nodeStarElements = 0;
14943 PyArrayObject *__pyx_v_nodeStarElementNeighbors = 0;
14944 PyArrayObject *__pyx_v_nElements_node = 0;
14945 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
14946 PyArrayObject *__pyx_v_elementResidual = 0;
14947 PyArrayObject *__pyx_v_vAverage = 0;
14948 PyArrayObject *__pyx_v_dx = 0;
14949 PyArrayObject *__pyx_v_w = 0;
14950 PyArrayObject *__pyx_v_n = 0;
14951 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
14952 PyArrayObject *__pyx_v_conservationResidual = 0;
14953 PyArrayObject *__pyx_v_vConservative = 0;
14954 PyArrayObject *__pyx_v_vConservative_element = 0;
14955 #if !CYTHON_VECTORCALL
14956 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14957 #endif
14958 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14959 PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14960 int __pyx_lineno = 0;
14961 const char *__pyx_filename = NULL;
14962 int __pyx_clineno = 0;
14963 PyObject *__pyx_r = 0;
14964 __Pyx_RefNannyDeclarations
14965 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_opt (wrapper)", 0);
14966 #if !CYTHON_VECTORCALL
14967 #if CYTHON_ASSUME_SAFE_SIZE
14968 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14969 #else
14970 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14971 #endif
14972 #endif
14973 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14974 {
14975 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nNodes_owned,&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_vAverage,&__pyx_mstate_global->__pyx_n_u_dx,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,&__pyx_mstate_global->__pyx_n_u_conservationResidual,&__pyx_mstate_global->__pyx_n_u_vConservative,&__pyx_mstate_global->__pyx_n_u_vConservative_element,0};
14976 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14977 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 932, __pyx_L3_error)
14978 if (__pyx_kwds_len > 0) {
14979 switch (__pyx_nargs) {
14980 case 19:
14981 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
14982 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 932, __pyx_L3_error)
14983 CYTHON_FALLTHROUGH;
14984 case 18:
14985 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
14986 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 932, __pyx_L3_error)
14987 CYTHON_FALLTHROUGH;
14988 case 17:
14989 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
14990 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 932, __pyx_L3_error)
14991 CYTHON_FALLTHROUGH;
14992 case 16:
14993 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
14994 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 932, __pyx_L3_error)
14995 CYTHON_FALLTHROUGH;
14996 case 15:
14997 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14998 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 932, __pyx_L3_error)
14999 CYTHON_FALLTHROUGH;
15000 case 14:
15001 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 932, __pyx_L3_error)
15003 CYTHON_FALLTHROUGH;
15004 case 13:
15005 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 932, __pyx_L3_error)
15007 CYTHON_FALLTHROUGH;
15008 case 12:
15009 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15010 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 932, __pyx_L3_error)
15011 CYTHON_FALLTHROUGH;
15012 case 11:
15013 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15014 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 932, __pyx_L3_error)
15015 CYTHON_FALLTHROUGH;
15016 case 10:
15017 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15018 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 932, __pyx_L3_error)
15019 CYTHON_FALLTHROUGH;
15020 case 9:
15021 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15022 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 932, __pyx_L3_error)
15023 CYTHON_FALLTHROUGH;
15024 case 8:
15025 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15026 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 932, __pyx_L3_error)
15027 CYTHON_FALLTHROUGH;
15028 case 7:
15029 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15030 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 932, __pyx_L3_error)
15031 CYTHON_FALLTHROUGH;
15032 case 6:
15033 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15034 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 932, __pyx_L3_error)
15035 CYTHON_FALLTHROUGH;
15036 case 5:
15037 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15038 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 932, __pyx_L3_error)
15039 CYTHON_FALLTHROUGH;
15040 case 4:
15041 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15042 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 932, __pyx_L3_error)
15043 CYTHON_FALLTHROUGH;
15044 case 3:
15045 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15046 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 932, __pyx_L3_error)
15047 CYTHON_FALLTHROUGH;
15048 case 2:
15049 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15050 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 932, __pyx_L3_error)
15051 CYTHON_FALLTHROUGH;
15052 case 1:
15053 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 932, __pyx_L3_error)
15055 CYTHON_FALLTHROUGH;
15056 case 0: break;
15057 default: goto __pyx_L5_argtuple_error;
15058 }
15059 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15060 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationResidualPWL_opt", 0) < (0)) __PYX_ERR(0, 932, __pyx_L3_error)
15061 for (Py_ssize_t i = __pyx_nargs; i < 19; i++) {
15062 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_opt", 1, 19, 19, i); __PYX_ERR(0, 932, __pyx_L3_error) }
15063 }
15064 } else if (unlikely(__pyx_nargs != 19)) {
15065 goto __pyx_L5_argtuple_error;
15066 } else {
15067 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15068 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 932, __pyx_L3_error)
15069 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15070 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 932, __pyx_L3_error)
15071 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15072 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 932, __pyx_L3_error)
15073 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15074 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 932, __pyx_L3_error)
15075 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15076 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 932, __pyx_L3_error)
15077 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15078 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 932, __pyx_L3_error)
15079 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15080 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 932, __pyx_L3_error)
15081 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15082 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 932, __pyx_L3_error)
15083 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15084 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 932, __pyx_L3_error)
15085 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15086 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 932, __pyx_L3_error)
15087 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15088 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 932, __pyx_L3_error)
15089 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15090 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 932, __pyx_L3_error)
15091 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15092 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 932, __pyx_L3_error)
15093 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15094 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 932, __pyx_L3_error)
15095 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
15096 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 932, __pyx_L3_error)
15097 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
15098 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 932, __pyx_L3_error)
15099 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
15100 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 932, __pyx_L3_error)
15101 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
15102 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 932, __pyx_L3_error)
15103 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
15104 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 932, __pyx_L3_error)
15105 }
15106 __pyx_v_nNodes_owned = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_nNodes_owned == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 932, __pyx_L3_error)
15107 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
15108 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
15109 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
15110 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
15111 __pyx_v_elementNodes = ((PyArrayObject *)values[5]);
15112 __pyx_v_nodeStarElements = ((PyArrayObject *)values[6]);
15113 __pyx_v_nodeStarElementNeighbors = ((PyArrayObject *)values[7]);
15114 __pyx_v_nElements_node = ((PyArrayObject *)values[8]);
15115 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[9]);
15116 __pyx_v_elementResidual = ((PyArrayObject *)values[10]);
15117 __pyx_v_vAverage = ((PyArrayObject *)values[11]);
15118 __pyx_v_dx = ((PyArrayObject *)values[12]);
15119 __pyx_v_w = ((PyArrayObject *)values[13]);
15120 __pyx_v_n = ((PyArrayObject *)values[14]);
15121 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[15]);
15122 __pyx_v_conservationResidual = ((PyArrayObject *)values[16]);
15123 __pyx_v_vConservative = ((PyArrayObject *)values[17]);
15124 __pyx_v_vConservative_element = ((PyArrayObject *)values[18]);
15125 }
15126 goto __pyx_L6_skip;
15127 __pyx_L5_argtuple_error:;
15128 __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_opt", 1, 19, 19, __pyx_nargs); __PYX_ERR(0, 932, __pyx_L3_error)
15129 __pyx_L6_skip:;
15130 goto __pyx_L4_argument_unpacking_done;
15131 __pyx_L3_error:;
15132 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15133 Py_XDECREF(values[__pyx_temp]);
15134 }
15135 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualPWL_opt", __pyx_clineno, __pyx_lineno, __pyx_filename);
15136 __Pyx_RefNannyFinishContext();
15137 return NULL;
15138 __pyx_L4_argument_unpacking_done:;
15139 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 933, __pyx_L1_error)
15140 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 934, __pyx_L1_error)
15141 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 935, __pyx_L1_error)
15142 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 936, __pyx_L1_error)
15143 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 937, __pyx_L1_error)
15144 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 938, __pyx_L1_error)
15145 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementNeighbors", 0))) __PYX_ERR(0, 939, __pyx_L1_error)
15146 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 940, __pyx_L1_error)
15147 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 941, __pyx_L1_error)
15148 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 942, __pyx_L1_error)
15149 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vAverage), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vAverage", 0))) __PYX_ERR(0, 943, __pyx_L1_error)
15150 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dx), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dx", 0))) __PYX_ERR(0, 944, __pyx_L1_error)
15151 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 945, __pyx_L1_error)
15152 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 946, __pyx_L1_error)
15153 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 947, __pyx_L1_error)
15154 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 948, __pyx_L1_error)
15155 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative", 0))) __PYX_ERR(0, 949, __pyx_L1_error)
15156 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative_element", 0))) __PYX_ERR(0, 950, __pyx_L1_error)
15157 __pyx_r = __pyx_pf_15cpostprocessing_76calculateConservationResidualPWL_opt(__pyx_self, __pyx_v_nNodes_owned, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarElementNeighbors, __pyx_v_nElements_node, __pyx_v_fluxElementBoundaries, __pyx_v_elementResidual, __pyx_v_vAverage, __pyx_v_dx, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor, __pyx_v_conservationResidual, __pyx_v_vConservative, __pyx_v_vConservative_element);
15158
15159 /* function exit code */
15160 goto __pyx_L0;
15161 __pyx_L1_error:;
15162 __pyx_r = NULL;
15163 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15164 Py_XDECREF(values[__pyx_temp]);
15165 }
15166 goto __pyx_L7_cleaned_up;
15167 __pyx_L0:;
15168 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15169 Py_XDECREF(values[__pyx_temp]);
15170 }
15171 __pyx_L7_cleaned_up:;
15172
15173 __Pyx_RefNannyFinishContext();
15174 return __pyx_r;
15175}
15176
15177static PyObject *__pyx_pf_15cpostprocessing_76calculateConservationResidualPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element) {
15178 PyObject *__pyx_r = NULL;
15179 __Pyx_RefNannyDeclarations
15180 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_opt", 0);
15181
15182 /* "cpostprocessing.pyx":951
15183 * np.ndarray vConservative,
15184 * np.ndarray vConservative_element):
15185 * pp.calculateConservationResidualPWL_opt(nNodes_owned, # <<<<<<<<<<<<<<
15186 * w.shape[0],
15187 * interiorElementBoundaries.shape[0],
15188*/
15189 calculateConservationResidualPWL_opt(__pyx_v_nNodes_owned, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vAverage)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dx)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative_element)));
15190
15191 /* "cpostprocessing.pyx":932
15192 * &nodeStarFactor.nsf)
15193 *
15194 * def calculateConservationResidualPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
15195 * np.ndarray interiorElementBoundaries,
15196 * np.ndarray exteriorElementBoundaries,
15197*/
15198
15199 /* function exit code */
15200 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15201 __Pyx_XGIVEREF(__pyx_r);
15202 __Pyx_RefNannyFinishContext();
15203 return __pyx_r;
15204}
15205
15206/* "cpostprocessing.pyx":978
15207 * <double*>(vConservative_element.data))
15208 *
15209 * def calculateConservationResidualPWL_primative(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
15210 * np.ndarray exteriorElementBoundaries,
15211 * np.ndarray elementBoundaryElements,
15212*/
15213
15214/* Python wrapper */
15215static PyObject *__pyx_pw_15cpostprocessing_79calculateConservationResidualPWL_primative(PyObject *__pyx_self,
15216#if CYTHON_VECTORCALL
15217PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15218#else
15219PyObject *__pyx_args, PyObject *__pyx_kwds
15220#endif
15221); /*proto*/
15222static PyMethodDef __pyx_mdef_15cpostprocessing_79calculateConservationResidualPWL_primative = {"calculateConservationResidualPWL_primative", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_79calculateConservationResidualPWL_primative, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
15223static PyObject *__pyx_pw_15cpostprocessing_79calculateConservationResidualPWL_primative(PyObject *__pyx_self,
15224#if CYTHON_VECTORCALL
15225PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15226#else
15227PyObject *__pyx_args, PyObject *__pyx_kwds
15228#endif
15229) {
15230 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
15231 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
15232 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
15233 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
15234 PyArrayObject *__pyx_v_skipflag_elementBoundaries = 0;
15235 PyArrayObject *__pyx_v_elementResidual = 0;
15236 PyArrayObject *__pyx_v_dx = 0;
15237 PyArrayObject *__pyx_v_n = 0;
15238 PyArrayObject *__pyx_v_conservationResidual = 0;
15239 PyArrayObject *__pyx_v_vConservative = 0;
15240 #if !CYTHON_VECTORCALL
15241 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
15242 #endif
15243 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
15244 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
15245 int __pyx_lineno = 0;
15246 const char *__pyx_filename = NULL;
15247 int __pyx_clineno = 0;
15248 PyObject *__pyx_r = 0;
15249 __Pyx_RefNannyDeclarations
15250 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_primative (wrapper)", 0);
15251 #if !CYTHON_VECTORCALL
15252 #if CYTHON_ASSUME_SAFE_SIZE
15253 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
15254 #else
15255 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
15256 #endif
15257 #endif
15258 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
15259 {
15260 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_skipflag_elementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_dx,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_conservationResidual,&__pyx_mstate_global->__pyx_n_u_vConservative,0};
15261 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
15262 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 978, __pyx_L3_error)
15263 if (__pyx_kwds_len > 0) {
15264 switch (__pyx_nargs) {
15265 case 10:
15266 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15267 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 978, __pyx_L3_error)
15268 CYTHON_FALLTHROUGH;
15269 case 9:
15270 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15271 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 978, __pyx_L3_error)
15272 CYTHON_FALLTHROUGH;
15273 case 8:
15274 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15275 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 978, __pyx_L3_error)
15276 CYTHON_FALLTHROUGH;
15277 case 7:
15278 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15279 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 978, __pyx_L3_error)
15280 CYTHON_FALLTHROUGH;
15281 case 6:
15282 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15283 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 978, __pyx_L3_error)
15284 CYTHON_FALLTHROUGH;
15285 case 5:
15286 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15287 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 978, __pyx_L3_error)
15288 CYTHON_FALLTHROUGH;
15289 case 4:
15290 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15291 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 978, __pyx_L3_error)
15292 CYTHON_FALLTHROUGH;
15293 case 3:
15294 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15295 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 978, __pyx_L3_error)
15296 CYTHON_FALLTHROUGH;
15297 case 2:
15298 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15299 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 978, __pyx_L3_error)
15300 CYTHON_FALLTHROUGH;
15301 case 1:
15302 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15303 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 978, __pyx_L3_error)
15304 CYTHON_FALLTHROUGH;
15305 case 0: break;
15306 default: goto __pyx_L5_argtuple_error;
15307 }
15308 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15309 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationResidualPWL_primative", 0) < (0)) __PYX_ERR(0, 978, __pyx_L3_error)
15310 for (Py_ssize_t i = __pyx_nargs; i < 10; i++) {
15311 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_primative", 1, 10, 10, i); __PYX_ERR(0, 978, __pyx_L3_error) }
15312 }
15313 } else if (unlikely(__pyx_nargs != 10)) {
15314 goto __pyx_L5_argtuple_error;
15315 } else {
15316 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15317 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 978, __pyx_L3_error)
15318 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15319 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 978, __pyx_L3_error)
15320 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15321 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 978, __pyx_L3_error)
15322 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15323 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 978, __pyx_L3_error)
15324 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15325 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 978, __pyx_L3_error)
15326 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15327 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 978, __pyx_L3_error)
15328 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15329 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 978, __pyx_L3_error)
15330 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15331 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 978, __pyx_L3_error)
15332 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15333 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 978, __pyx_L3_error)
15334 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15335 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 978, __pyx_L3_error)
15336 }
15337 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
15338 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
15339 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
15340 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
15341 __pyx_v_skipflag_elementBoundaries = ((PyArrayObject *)values[4]);
15342 __pyx_v_elementResidual = ((PyArrayObject *)values[5]);
15343 __pyx_v_dx = ((PyArrayObject *)values[6]);
15344 __pyx_v_n = ((PyArrayObject *)values[7]);
15345 __pyx_v_conservationResidual = ((PyArrayObject *)values[8]);
15346 __pyx_v_vConservative = ((PyArrayObject *)values[9]);
15347 }
15348 goto __pyx_L6_skip;
15349 __pyx_L5_argtuple_error:;
15350 __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_primative", 1, 10, 10, __pyx_nargs); __PYX_ERR(0, 978, __pyx_L3_error)
15351 __pyx_L6_skip:;
15352 goto __pyx_L4_argument_unpacking_done;
15353 __pyx_L3_error:;
15354 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15355 Py_XDECREF(values[__pyx_temp]);
15356 }
15357 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualPWL_primative", __pyx_clineno, __pyx_lineno, __pyx_filename);
15358 __Pyx_RefNannyFinishContext();
15359 return NULL;
15360 __pyx_L4_argument_unpacking_done:;
15361 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 978, __pyx_L1_error)
15362 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 979, __pyx_L1_error)
15363 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 980, __pyx_L1_error)
15364 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 981, __pyx_L1_error)
15365 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_skipflag_elementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "skipflag_elementBoundaries", 0))) __PYX_ERR(0, 982, __pyx_L1_error)
15366 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 983, __pyx_L1_error)
15367 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dx), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dx", 0))) __PYX_ERR(0, 984, __pyx_L1_error)
15368 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 985, __pyx_L1_error)
15369 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 986, __pyx_L1_error)
15370 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative", 0))) __PYX_ERR(0, 987, __pyx_L1_error)
15371 __pyx_r = __pyx_pf_15cpostprocessing_78calculateConservationResidualPWL_primative(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_skipflag_elementBoundaries, __pyx_v_elementResidual, __pyx_v_dx, __pyx_v_n, __pyx_v_conservationResidual, __pyx_v_vConservative);
15372
15373 /* function exit code */
15374 goto __pyx_L0;
15375 __pyx_L1_error:;
15376 __pyx_r = NULL;
15377 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15378 Py_XDECREF(values[__pyx_temp]);
15379 }
15380 goto __pyx_L7_cleaned_up;
15381 __pyx_L0:;
15382 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15383 Py_XDECREF(values[__pyx_temp]);
15384 }
15385 __pyx_L7_cleaned_up:;
15386 __Pyx_RefNannyFinishContext();
15387 return __pyx_r;
15388}
15389
15390static PyObject *__pyx_pf_15cpostprocessing_78calculateConservationResidualPWL_primative(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative) {
15391 PyObject *__pyx_r = NULL;
15392 __Pyx_RefNannyDeclarations
15393 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_primative", 0);
15394
15395 /* "cpostprocessing.pyx":988
15396 * np.ndarray conservationResidual,
15397 * np.ndarray vConservative):
15398 * pp.calculateConservationResidualPWL_primative(dx.shape[0], # <<<<<<<<<<<<<<
15399 * interiorElementBoundaries.shape[0],
15400 * exteriorElementBoundaries.shape[0],
15401*/
15402 calculateConservationResidualPWL_primative((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dx)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dx)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dx)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementResidual)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_skipflag_elementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dx)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative)));
15403
15404 /* "cpostprocessing.pyx":978
15405 * <double*>(vConservative_element.data))
15406 *
15407 * def calculateConservationResidualPWL_primative(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
15408 * np.ndarray exteriorElementBoundaries,
15409 * np.ndarray elementBoundaryElements,
15410*/
15411
15412 /* function exit code */
15413 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15414 __Pyx_XGIVEREF(__pyx_r);
15415 __Pyx_RefNannyFinishContext();
15416 return __pyx_r;
15417}
15418
15419/* "cpostprocessing.pyx":1006
15420 * <double*>(vConservative.data))
15421 *
15422 * def calculateConservationJacobianPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
15423 * np.ndarray interiorElementBoundaries,
15424 * np.ndarray exteriorElementBoundaries,
15425*/
15426
15427/* Python wrapper */
15428static PyObject *__pyx_pw_15cpostprocessing_81calculateConservationJacobianPWL_opt(PyObject *__pyx_self,
15429#if CYTHON_VECTORCALL
15430PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15431#else
15432PyObject *__pyx_args, PyObject *__pyx_kwds
15433#endif
15434); /*proto*/
15435static PyMethodDef __pyx_mdef_15cpostprocessing_81calculateConservationJacobianPWL_opt = {"calculateConservationJacobianPWL_opt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_81calculateConservationJacobianPWL_opt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
15436static PyObject *__pyx_pw_15cpostprocessing_81calculateConservationJacobianPWL_opt(PyObject *__pyx_self,
15437#if CYTHON_VECTORCALL
15438PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15439#else
15440PyObject *__pyx_args, PyObject *__pyx_kwds
15441#endif
15442) {
15443 int __pyx_v_nNodes_owned;
15444 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
15445 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
15446 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
15447 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
15448 PyArrayObject *__pyx_v_elementNodes = 0;
15449 PyArrayObject *__pyx_v_nodeStarElements = 0;
15450 PyArrayObject *__pyx_v_nodeStarElementNeighbors = 0;
15451 PyArrayObject *__pyx_v_nElements_node = 0;
15452 PyArrayObject *__pyx_v_internalNodes = 0;
15453 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
15454 PyArrayObject *__pyx_v_fluxBoundaryNodes = 0;
15455 PyArrayObject *__pyx_v_w = 0;
15456 PyArrayObject *__pyx_v_n = 0;
15457 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
15458 #if !CYTHON_VECTORCALL
15459 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
15460 #endif
15461 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
15462 PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
15463 int __pyx_lineno = 0;
15464 const char *__pyx_filename = NULL;
15465 int __pyx_clineno = 0;
15466 PyObject *__pyx_r = 0;
15467 __Pyx_RefNannyDeclarations
15468 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL_opt (wrapper)", 0);
15469 #if !CYTHON_VECTORCALL
15470 #if CYTHON_ASSUME_SAFE_SIZE
15471 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
15472 #else
15473 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
15474 #endif
15475 #endif
15476 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
15477 {
15478 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nNodes_owned,&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_internalNodes,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_fluxBoundaryNodes,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
15479 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
15480 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1006, __pyx_L3_error)
15481 if (__pyx_kwds_len > 0) {
15482 switch (__pyx_nargs) {
15483 case 15:
15484 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
15485 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1006, __pyx_L3_error)
15486 CYTHON_FALLTHROUGH;
15487 case 14:
15488 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15489 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1006, __pyx_L3_error)
15490 CYTHON_FALLTHROUGH;
15491 case 13:
15492 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15493 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1006, __pyx_L3_error)
15494 CYTHON_FALLTHROUGH;
15495 case 12:
15496 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15497 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1006, __pyx_L3_error)
15498 CYTHON_FALLTHROUGH;
15499 case 11:
15500 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15501 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1006, __pyx_L3_error)
15502 CYTHON_FALLTHROUGH;
15503 case 10:
15504 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15505 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1006, __pyx_L3_error)
15506 CYTHON_FALLTHROUGH;
15507 case 9:
15508 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15509 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1006, __pyx_L3_error)
15510 CYTHON_FALLTHROUGH;
15511 case 8:
15512 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15513 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1006, __pyx_L3_error)
15514 CYTHON_FALLTHROUGH;
15515 case 7:
15516 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15517 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1006, __pyx_L3_error)
15518 CYTHON_FALLTHROUGH;
15519 case 6:
15520 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15521 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1006, __pyx_L3_error)
15522 CYTHON_FALLTHROUGH;
15523 case 5:
15524 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15525 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1006, __pyx_L3_error)
15526 CYTHON_FALLTHROUGH;
15527 case 4:
15528 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15529 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1006, __pyx_L3_error)
15530 CYTHON_FALLTHROUGH;
15531 case 3:
15532 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15533 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1006, __pyx_L3_error)
15534 CYTHON_FALLTHROUGH;
15535 case 2:
15536 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15537 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1006, __pyx_L3_error)
15538 CYTHON_FALLTHROUGH;
15539 case 1:
15540 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15541 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1006, __pyx_L3_error)
15542 CYTHON_FALLTHROUGH;
15543 case 0: break;
15544 default: goto __pyx_L5_argtuple_error;
15545 }
15546 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15547 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationJacobianPWL_opt", 0) < (0)) __PYX_ERR(0, 1006, __pyx_L3_error)
15548 for (Py_ssize_t i = __pyx_nargs; i < 15; i++) {
15549 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL_opt", 1, 15, 15, i); __PYX_ERR(0, 1006, __pyx_L3_error) }
15550 }
15551 } else if (unlikely(__pyx_nargs != 15)) {
15552 goto __pyx_L5_argtuple_error;
15553 } else {
15554 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15555 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1006, __pyx_L3_error)
15556 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15557 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1006, __pyx_L3_error)
15558 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15559 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1006, __pyx_L3_error)
15560 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15561 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1006, __pyx_L3_error)
15562 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15563 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1006, __pyx_L3_error)
15564 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15565 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1006, __pyx_L3_error)
15566 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15567 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1006, __pyx_L3_error)
15568 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15569 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1006, __pyx_L3_error)
15570 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15571 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1006, __pyx_L3_error)
15572 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15573 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1006, __pyx_L3_error)
15574 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15575 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1006, __pyx_L3_error)
15576 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15577 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1006, __pyx_L3_error)
15578 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1006, __pyx_L3_error)
15580 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15581 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1006, __pyx_L3_error)
15582 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
15583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1006, __pyx_L3_error)
15584 }
15585 __pyx_v_nNodes_owned = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_nNodes_owned == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1006, __pyx_L3_error)
15586 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[1]);
15587 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[2]);
15588 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[3]);
15589 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[4]);
15590 __pyx_v_elementNodes = ((PyArrayObject *)values[5]);
15591 __pyx_v_nodeStarElements = ((PyArrayObject *)values[6]);
15592 __pyx_v_nodeStarElementNeighbors = ((PyArrayObject *)values[7]);
15593 __pyx_v_nElements_node = ((PyArrayObject *)values[8]);
15594 __pyx_v_internalNodes = ((PyArrayObject *)values[9]);
15595 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[10]);
15596 __pyx_v_fluxBoundaryNodes = ((PyArrayObject *)values[11]);
15597 __pyx_v_w = ((PyArrayObject *)values[12]);
15598 __pyx_v_n = ((PyArrayObject *)values[13]);
15599 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[14]);
15600 }
15601 goto __pyx_L6_skip;
15602 __pyx_L5_argtuple_error:;
15603 __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL_opt", 1, 15, 15, __pyx_nargs); __PYX_ERR(0, 1006, __pyx_L3_error)
15604 __pyx_L6_skip:;
15605 goto __pyx_L4_argument_unpacking_done;
15606 __pyx_L3_error:;
15607 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15608 Py_XDECREF(values[__pyx_temp]);
15609 }
15610 __Pyx_AddTraceback("cpostprocessing.calculateConservationJacobianPWL_opt", __pyx_clineno, __pyx_lineno, __pyx_filename);
15611 __Pyx_RefNannyFinishContext();
15612 return NULL;
15613 __pyx_L4_argument_unpacking_done:;
15614 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 1007, __pyx_L1_error)
15615 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 1008, __pyx_L1_error)
15616 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 1009, __pyx_L1_error)
15617 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 1010, __pyx_L1_error)
15618 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 1011, __pyx_L1_error)
15619 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 1012, __pyx_L1_error)
15620 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementNeighbors", 0))) __PYX_ERR(0, 1013, __pyx_L1_error)
15621 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 1014, __pyx_L1_error)
15622 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_internalNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "internalNodes", 0))) __PYX_ERR(0, 1015, __pyx_L1_error)
15623 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 1016, __pyx_L1_error)
15624 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryNodes", 0))) __PYX_ERR(0, 1017, __pyx_L1_error)
15625 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 1018, __pyx_L1_error)
15626 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 1019, __pyx_L1_error)
15627 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1020, __pyx_L1_error)
15628 __pyx_r = __pyx_pf_15cpostprocessing_80calculateConservationJacobianPWL_opt(__pyx_self, __pyx_v_nNodes_owned, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarElementNeighbors, __pyx_v_nElements_node, __pyx_v_internalNodes, __pyx_v_fluxElementBoundaries, __pyx_v_fluxBoundaryNodes, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor);
15629
15630 /* function exit code */
15631 goto __pyx_L0;
15632 __pyx_L1_error:;
15633 __pyx_r = NULL;
15634 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15635 Py_XDECREF(values[__pyx_temp]);
15636 }
15637 goto __pyx_L7_cleaned_up;
15638 __pyx_L0:;
15639 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15640 Py_XDECREF(values[__pyx_temp]);
15641 }
15642 __pyx_L7_cleaned_up:;
15643
15644 __Pyx_RefNannyFinishContext();
15645 return __pyx_r;
15646}
15647
15648static PyObject *__pyx_pf_15cpostprocessing_80calculateConservationJacobianPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_fluxBoundaryNodes, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
15649 PyObject *__pyx_r = NULL;
15650 __Pyx_RefNannyDeclarations
15651 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL_opt", 0);
15652
15653 /* "cpostprocessing.pyx":1021
15654 * np.ndarray n,
15655 * NodeStarFactor nodeStarFactor):
15656 * pp.calculateConservationJacobianPWL_opt(nNodes_owned, # <<<<<<<<<<<<<<
15657 * nElements_node.shape[0],
15658 * internalNodes.shape[0],
15659*/
15660 calculateConservationJacobianPWL_opt(__pyx_v_nNodes_owned, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_internalNodes)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_internalNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxBoundaryNodes)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf));
15661
15662 /* "cpostprocessing.pyx":1006
15663 * <double*>(vConservative.data))
15664 *
15665 * def calculateConservationJacobianPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
15666 * np.ndarray interiorElementBoundaries,
15667 * np.ndarray exteriorElementBoundaries,
15668*/
15669
15670 /* function exit code */
15671 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15672 __Pyx_XGIVEREF(__pyx_r);
15673 __Pyx_RefNannyFinishContext();
15674 return __pyx_r;
15675}
15676
15677/* "cpostprocessing.pyx":1046
15678 * &nodeStarFactor.nsf)
15679 *
15680 * def calculateConservationFluxPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
15681 * np.ndarray nElements_node,
15682 * np.ndarray internalNodes,
15683*/
15684
15685/* Python wrapper */
15686static PyObject *__pyx_pw_15cpostprocessing_83calculateConservationFluxPWL_opt(PyObject *__pyx_self,
15687#if CYTHON_VECTORCALL
15688PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15689#else
15690PyObject *__pyx_args, PyObject *__pyx_kwds
15691#endif
15692); /*proto*/
15693static PyMethodDef __pyx_mdef_15cpostprocessing_83calculateConservationFluxPWL_opt = {"calculateConservationFluxPWL_opt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_83calculateConservationFluxPWL_opt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
15694static PyObject *__pyx_pw_15cpostprocessing_83calculateConservationFluxPWL_opt(PyObject *__pyx_self,
15695#if CYTHON_VECTORCALL
15696PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15697#else
15698PyObject *__pyx_args, PyObject *__pyx_kwds
15699#endif
15700) {
15701 int __pyx_v_nNodes_owned;
15702 PyArrayObject *__pyx_v_nElements_node = 0;
15703 PyArrayObject *__pyx_v_internalNodes = 0;
15704 PyArrayObject *__pyx_v_fluxBoundaryNodes = 0;
15705 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
15706 #if !CYTHON_VECTORCALL
15707 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
15708 #endif
15709 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
15710 PyObject* values[5] = {0,0,0,0,0};
15711 int __pyx_lineno = 0;
15712 const char *__pyx_filename = NULL;
15713 int __pyx_clineno = 0;
15714 PyObject *__pyx_r = 0;
15715 __Pyx_RefNannyDeclarations
15716 __Pyx_RefNannySetupContext("calculateConservationFluxPWL_opt (wrapper)", 0);
15717 #if !CYTHON_VECTORCALL
15718 #if CYTHON_ASSUME_SAFE_SIZE
15719 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
15720 #else
15721 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
15722 #endif
15723 #endif
15724 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
15725 {
15726 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nNodes_owned,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_internalNodes,&__pyx_mstate_global->__pyx_n_u_fluxBoundaryNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
15727 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
15728 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1046, __pyx_L3_error)
15729 if (__pyx_kwds_len > 0) {
15730 switch (__pyx_nargs) {
15731 case 5:
15732 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15733 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1046, __pyx_L3_error)
15734 CYTHON_FALLTHROUGH;
15735 case 4:
15736 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15737 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1046, __pyx_L3_error)
15738 CYTHON_FALLTHROUGH;
15739 case 3:
15740 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15741 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1046, __pyx_L3_error)
15742 CYTHON_FALLTHROUGH;
15743 case 2:
15744 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15745 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1046, __pyx_L3_error)
15746 CYTHON_FALLTHROUGH;
15747 case 1:
15748 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15749 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1046, __pyx_L3_error)
15750 CYTHON_FALLTHROUGH;
15751 case 0: break;
15752 default: goto __pyx_L5_argtuple_error;
15753 }
15754 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15755 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationFluxPWL_opt", 0) < (0)) __PYX_ERR(0, 1046, __pyx_L3_error)
15756 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
15757 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL_opt", 1, 5, 5, i); __PYX_ERR(0, 1046, __pyx_L3_error) }
15758 }
15759 } else if (unlikely(__pyx_nargs != 5)) {
15760 goto __pyx_L5_argtuple_error;
15761 } else {
15762 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15763 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1046, __pyx_L3_error)
15764 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15765 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1046, __pyx_L3_error)
15766 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15767 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1046, __pyx_L3_error)
15768 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15769 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1046, __pyx_L3_error)
15770 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15771 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1046, __pyx_L3_error)
15772 }
15773 __pyx_v_nNodes_owned = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_nNodes_owned == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1046, __pyx_L3_error)
15774 __pyx_v_nElements_node = ((PyArrayObject *)values[1]);
15775 __pyx_v_internalNodes = ((PyArrayObject *)values[2]);
15776 __pyx_v_fluxBoundaryNodes = ((PyArrayObject *)values[3]);
15777 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[4]);
15778 }
15779 goto __pyx_L6_skip;
15780 __pyx_L5_argtuple_error:;
15781 __Pyx_RaiseArgtupleInvalid("calculateConservationFluxPWL_opt", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 1046, __pyx_L3_error)
15782 __pyx_L6_skip:;
15783 goto __pyx_L4_argument_unpacking_done;
15784 __pyx_L3_error:;
15785 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15786 Py_XDECREF(values[__pyx_temp]);
15787 }
15788 __Pyx_AddTraceback("cpostprocessing.calculateConservationFluxPWL_opt", __pyx_clineno, __pyx_lineno, __pyx_filename);
15789 __Pyx_RefNannyFinishContext();
15790 return NULL;
15791 __pyx_L4_argument_unpacking_done:;
15792 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 1047, __pyx_L1_error)
15793 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_internalNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "internalNodes", 0))) __PYX_ERR(0, 1048, __pyx_L1_error)
15794 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxBoundaryNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxBoundaryNodes", 0))) __PYX_ERR(0, 1049, __pyx_L1_error)
15795 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1050, __pyx_L1_error)
15796 __pyx_r = __pyx_pf_15cpostprocessing_82calculateConservationFluxPWL_opt(__pyx_self, __pyx_v_nNodes_owned, __pyx_v_nElements_node, __pyx_v_internalNodes, __pyx_v_fluxBoundaryNodes, __pyx_v_nodeStarFactor);
15797
15798 /* function exit code */
15799 goto __pyx_L0;
15800 __pyx_L1_error:;
15801 __pyx_r = NULL;
15802 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15803 Py_XDECREF(values[__pyx_temp]);
15804 }
15805 goto __pyx_L7_cleaned_up;
15806 __pyx_L0:;
15807 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15808 Py_XDECREF(values[__pyx_temp]);
15809 }
15810 __pyx_L7_cleaned_up:;
15811
15812 __Pyx_RefNannyFinishContext();
15813 return __pyx_r;
15814}
15815
15816static PyObject *__pyx_pf_15cpostprocessing_82calculateConservationFluxPWL_opt(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nNodes_owned, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_internalNodes, PyArrayObject *__pyx_v_fluxBoundaryNodes, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
15817 PyObject *__pyx_r = NULL;
15818 __Pyx_RefNannyDeclarations
15819 __Pyx_RefNannySetupContext("calculateConservationFluxPWL_opt", 0);
15820
15821 /* "cpostprocessing.pyx":1051
15822 * np.ndarray fluxBoundaryNodes,
15823 * NodeStarFactor nodeStarFactor):
15824 * pp.calculateConservationFluxPWL_opt(nNodes_owned, # <<<<<<<<<<<<<<
15825 * nElements_node.shape[0],
15826 * internalNodes.shape[0],
15827*/
15828 calculateConservationFluxPWL_opt(__pyx_v_nNodes_owned, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_internalNodes)[0]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_internalNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxBoundaryNodes)), (&__pyx_v_nodeStarFactor->nsf));
15829
15830 /* "cpostprocessing.pyx":1046
15831 * &nodeStarFactor.nsf)
15832 *
15833 * def calculateConservationFluxPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
15834 * np.ndarray nElements_node,
15835 * np.ndarray internalNodes,
15836*/
15837
15838 /* function exit code */
15839 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15840 __Pyx_XGIVEREF(__pyx_r);
15841 __Pyx_RefNannyFinishContext();
15842 return __pyx_r;
15843}
15844
15845/* "cpostprocessing.pyx":1059
15846 * &nodeStarFactor.nsf)
15847 *
15848 * def calculateConservationResidualPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
15849 * np.ndarray exteriorElementBoundaries,
15850 * np.ndarray elementBoundaryElements,
15851*/
15852
15853/* Python wrapper */
15854static PyObject *__pyx_pw_15cpostprocessing_85calculateConservationResidualPWL_interiorBoundaries(PyObject *__pyx_self,
15855#if CYTHON_VECTORCALL
15856PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15857#else
15858PyObject *__pyx_args, PyObject *__pyx_kwds
15859#endif
15860); /*proto*/
15861static PyMethodDef __pyx_mdef_15cpostprocessing_85calculateConservationResidualPWL_interiorBoundaries = {"calculateConservationResidualPWL_interiorBoundaries", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_85calculateConservationResidualPWL_interiorBoundaries, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
15862static PyObject *__pyx_pw_15cpostprocessing_85calculateConservationResidualPWL_interiorBoundaries(PyObject *__pyx_self,
15863#if CYTHON_VECTORCALL
15864PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
15865#else
15866PyObject *__pyx_args, PyObject *__pyx_kwds
15867#endif
15868) {
15869 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
15870 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
15871 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
15872 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
15873 PyArrayObject *__pyx_v_elementNodes = 0;
15874 PyArrayObject *__pyx_v_nodeStarElements = 0;
15875 PyArrayObject *__pyx_v_nodeStarElementNeighbors = 0;
15876 PyArrayObject *__pyx_v_nElements_node = 0;
15877 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
15878 PyArrayObject *__pyx_v_elementResidual = 0;
15879 PyArrayObject *__pyx_v_vAverage = 0;
15880 PyArrayObject *__pyx_v_dx = 0;
15881 PyArrayObject *__pyx_v_w = 0;
15882 PyArrayObject *__pyx_v_n = 0;
15883 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
15884 PyArrayObject *__pyx_v_conservationResidual = 0;
15885 PyArrayObject *__pyx_v_vConservative = 0;
15886 PyArrayObject *__pyx_v_vConservative_element = 0;
15887 #if !CYTHON_VECTORCALL
15888 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
15889 #endif
15890 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
15891 PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
15892 int __pyx_lineno = 0;
15893 const char *__pyx_filename = NULL;
15894 int __pyx_clineno = 0;
15895 PyObject *__pyx_r = 0;
15896 __Pyx_RefNannyDeclarations
15897 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_interiorBoundaries (wrapper)", 0);
15898 #if !CYTHON_VECTORCALL
15899 #if CYTHON_ASSUME_SAFE_SIZE
15900 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
15901 #else
15902 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
15903 #endif
15904 #endif
15905 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
15906 {
15907 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_vAverage,&__pyx_mstate_global->__pyx_n_u_dx,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,&__pyx_mstate_global->__pyx_n_u_conservationResidual,&__pyx_mstate_global->__pyx_n_u_vConservative,&__pyx_mstate_global->__pyx_n_u_vConservative_element,0};
15908 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
15909 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1059, __pyx_L3_error)
15910 if (__pyx_kwds_len > 0) {
15911 switch (__pyx_nargs) {
15912 case 18:
15913 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
15914 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1059, __pyx_L3_error)
15915 CYTHON_FALLTHROUGH;
15916 case 17:
15917 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
15918 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1059, __pyx_L3_error)
15919 CYTHON_FALLTHROUGH;
15920 case 16:
15921 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
15922 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1059, __pyx_L3_error)
15923 CYTHON_FALLTHROUGH;
15924 case 15:
15925 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
15926 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1059, __pyx_L3_error)
15927 CYTHON_FALLTHROUGH;
15928 case 14:
15929 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15930 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1059, __pyx_L3_error)
15931 CYTHON_FALLTHROUGH;
15932 case 13:
15933 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15934 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1059, __pyx_L3_error)
15935 CYTHON_FALLTHROUGH;
15936 case 12:
15937 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15938 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1059, __pyx_L3_error)
15939 CYTHON_FALLTHROUGH;
15940 case 11:
15941 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15942 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1059, __pyx_L3_error)
15943 CYTHON_FALLTHROUGH;
15944 case 10:
15945 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15946 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1059, __pyx_L3_error)
15947 CYTHON_FALLTHROUGH;
15948 case 9:
15949 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15950 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1059, __pyx_L3_error)
15951 CYTHON_FALLTHROUGH;
15952 case 8:
15953 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15954 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1059, __pyx_L3_error)
15955 CYTHON_FALLTHROUGH;
15956 case 7:
15957 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15958 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1059, __pyx_L3_error)
15959 CYTHON_FALLTHROUGH;
15960 case 6:
15961 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15962 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1059, __pyx_L3_error)
15963 CYTHON_FALLTHROUGH;
15964 case 5:
15965 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15966 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1059, __pyx_L3_error)
15967 CYTHON_FALLTHROUGH;
15968 case 4:
15969 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15970 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1059, __pyx_L3_error)
15971 CYTHON_FALLTHROUGH;
15972 case 3:
15973 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15974 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1059, __pyx_L3_error)
15975 CYTHON_FALLTHROUGH;
15976 case 2:
15977 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15978 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1059, __pyx_L3_error)
15979 CYTHON_FALLTHROUGH;
15980 case 1:
15981 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15982 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1059, __pyx_L3_error)
15983 CYTHON_FALLTHROUGH;
15984 case 0: break;
15985 default: goto __pyx_L5_argtuple_error;
15986 }
15987 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15988 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationResidualPWL_interiorBoundaries", 0) < (0)) __PYX_ERR(0, 1059, __pyx_L3_error)
15989 for (Py_ssize_t i = __pyx_nargs; i < 18; i++) {
15990 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_interiorBoundaries", 1, 18, 18, i); __PYX_ERR(0, 1059, __pyx_L3_error) }
15991 }
15992 } else if (unlikely(__pyx_nargs != 18)) {
15993 goto __pyx_L5_argtuple_error;
15994 } else {
15995 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15996 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1059, __pyx_L3_error)
15997 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15998 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1059, __pyx_L3_error)
15999 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16000 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1059, __pyx_L3_error)
16001 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1059, __pyx_L3_error)
16003 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16004 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1059, __pyx_L3_error)
16005 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
16006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1059, __pyx_L3_error)
16007 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
16008 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1059, __pyx_L3_error)
16009 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
16010 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1059, __pyx_L3_error)
16011 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
16012 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1059, __pyx_L3_error)
16013 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
16014 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1059, __pyx_L3_error)
16015 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
16016 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1059, __pyx_L3_error)
16017 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
16018 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1059, __pyx_L3_error)
16019 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
16020 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1059, __pyx_L3_error)
16021 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
16022 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1059, __pyx_L3_error)
16023 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
16024 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1059, __pyx_L3_error)
16025 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
16026 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1059, __pyx_L3_error)
16027 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
16028 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1059, __pyx_L3_error)
16029 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
16030 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1059, __pyx_L3_error)
16031 }
16032 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
16033 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
16034 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
16035 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
16036 __pyx_v_elementNodes = ((PyArrayObject *)values[4]);
16037 __pyx_v_nodeStarElements = ((PyArrayObject *)values[5]);
16038 __pyx_v_nodeStarElementNeighbors = ((PyArrayObject *)values[6]);
16039 __pyx_v_nElements_node = ((PyArrayObject *)values[7]);
16040 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[8]);
16041 __pyx_v_elementResidual = ((PyArrayObject *)values[9]);
16042 __pyx_v_vAverage = ((PyArrayObject *)values[10]);
16043 __pyx_v_dx = ((PyArrayObject *)values[11]);
16044 __pyx_v_w = ((PyArrayObject *)values[12]);
16045 __pyx_v_n = ((PyArrayObject *)values[13]);
16046 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[14]);
16047 __pyx_v_conservationResidual = ((PyArrayObject *)values[15]);
16048 __pyx_v_vConservative = ((PyArrayObject *)values[16]);
16049 __pyx_v_vConservative_element = ((PyArrayObject *)values[17]);
16050 }
16051 goto __pyx_L6_skip;
16052 __pyx_L5_argtuple_error:;
16053 __Pyx_RaiseArgtupleInvalid("calculateConservationResidualPWL_interiorBoundaries", 1, 18, 18, __pyx_nargs); __PYX_ERR(0, 1059, __pyx_L3_error)
16054 __pyx_L6_skip:;
16055 goto __pyx_L4_argument_unpacking_done;
16056 __pyx_L3_error:;
16057 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16058 Py_XDECREF(values[__pyx_temp]);
16059 }
16060 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualPWL_interiorBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename);
16061 __Pyx_RefNannyFinishContext();
16062 return NULL;
16063 __pyx_L4_argument_unpacking_done:;
16064 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 1059, __pyx_L1_error)
16065 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 1060, __pyx_L1_error)
16066 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 1061, __pyx_L1_error)
16067 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 1062, __pyx_L1_error)
16068 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 1063, __pyx_L1_error)
16069 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 1064, __pyx_L1_error)
16070 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementNeighbors", 0))) __PYX_ERR(0, 1065, __pyx_L1_error)
16071 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 1066, __pyx_L1_error)
16072 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 1067, __pyx_L1_error)
16073 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 1068, __pyx_L1_error)
16074 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vAverage), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vAverage", 0))) __PYX_ERR(0, 1069, __pyx_L1_error)
16075 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dx), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dx", 0))) __PYX_ERR(0, 1070, __pyx_L1_error)
16076 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 1071, __pyx_L1_error)
16077 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 1072, __pyx_L1_error)
16078 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1073, __pyx_L1_error)
16079 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 1074, __pyx_L1_error)
16080 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative", 0))) __PYX_ERR(0, 1075, __pyx_L1_error)
16081 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vConservative_element), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "vConservative_element", 0))) __PYX_ERR(0, 1076, __pyx_L1_error)
16082 __pyx_r = __pyx_pf_15cpostprocessing_84calculateConservationResidualPWL_interiorBoundaries(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarElementNeighbors, __pyx_v_nElements_node, __pyx_v_fluxElementBoundaries, __pyx_v_elementResidual, __pyx_v_vAverage, __pyx_v_dx, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor, __pyx_v_conservationResidual, __pyx_v_vConservative, __pyx_v_vConservative_element);
16083
16084 /* function exit code */
16085 goto __pyx_L0;
16086 __pyx_L1_error:;
16087 __pyx_r = NULL;
16088 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16089 Py_XDECREF(values[__pyx_temp]);
16090 }
16091 goto __pyx_L7_cleaned_up;
16092 __pyx_L0:;
16093 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16094 Py_XDECREF(values[__pyx_temp]);
16095 }
16096 __pyx_L7_cleaned_up:;
16097 __Pyx_RefNannyFinishContext();
16098 return __pyx_r;
16099}
16100
16101static PyObject *__pyx_pf_15cpostprocessing_84calculateConservationResidualPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_vAverage, PyArrayObject *__pyx_v_dx, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_conservationResidual, PyArrayObject *__pyx_v_vConservative, PyArrayObject *__pyx_v_vConservative_element) {
16102 PyObject *__pyx_r = NULL;
16103 __Pyx_RefNannyDeclarations
16104 int __pyx_t_1;
16105 int __pyx_lineno = 0;
16106 const char *__pyx_filename = NULL;
16107 int __pyx_clineno = 0;
16108 __Pyx_RefNannySetupContext("calculateConservationResidualPWL_interiorBoundaries", 0);
16109
16110 /* "cpostprocessing.pyx":1077
16111 * np.ndarray vConservative,
16112 * np.ndarray vConservative_element):
16113 * assert fluxElementBoundaries.shape[0] == elementBoundaryLocalElementBoundaries.shape[0] # <<<<<<<<<<<<<<
16114 * pp.calculateConservationResidualPWL_interiorBoundaries(w.shape[0],
16115 * interiorElementBoundaries.shape[0],
16116*/
16117 #ifndef CYTHON_WITHOUT_ASSERTIONS
16118 if (unlikely(__pyx_assertions_enabled())) {
16119 __pyx_t_1 = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_fluxElementBoundaries)[0]) == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryLocalElementBoundaries)[0]));
16120
16121 if (unlikely(!__pyx_t_1)) {
16122 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
16123 __PYX_ERR(0, 1077, __pyx_L1_error)
16124 }
16125
16126 }
16127 #else
16128 if ((1)); else __PYX_ERR(0, 1077, __pyx_L1_error)
16129 #endif
16130
16131 /* "cpostprocessing.pyx":1078
16132 * np.ndarray vConservative_element):
16133 * assert fluxElementBoundaries.shape[0] == elementBoundaryLocalElementBoundaries.shape[0]
16134 * pp.calculateConservationResidualPWL_interiorBoundaries(w.shape[0], # <<<<<<<<<<<<<<
16135 * interiorElementBoundaries.shape[0],
16136 * exteriorElementBoundaries.shape[0],
16137*/
16138 calculateConservationResidualPWL_interiorBoundaries((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vAverage)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dx)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_vConservative_element)));
16139
16140 /* "cpostprocessing.pyx":1059
16141 * &nodeStarFactor.nsf)
16142 *
16143 * def calculateConservationResidualPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
16144 * np.ndarray exteriorElementBoundaries,
16145 * np.ndarray elementBoundaryElements,
16146*/
16147
16148 /* function exit code */
16149 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16150 goto __pyx_L0;
16151 __pyx_L1_error:;
16152 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualPWL_interiorBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename);
16153 __pyx_r = NULL;
16154 __pyx_L0:;
16155 __Pyx_XGIVEREF(__pyx_r);
16156 __Pyx_RefNannyFinishContext();
16157 return __pyx_r;
16158}
16159
16160/* "cpostprocessing.pyx":1104
16161 * <double*>(vConservative_element.data))
16162 *
16163 * def calculateConservationJacobianPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
16164 * np.ndarray exteriorElementBoundaries,
16165 * np.ndarray elementBoundaryElements,
16166*/
16167
16168/* Python wrapper */
16169static PyObject *__pyx_pw_15cpostprocessing_87calculateConservationJacobianPWL_interiorBoundaries(PyObject *__pyx_self,
16170#if CYTHON_VECTORCALL
16171PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16172#else
16173PyObject *__pyx_args, PyObject *__pyx_kwds
16174#endif
16175); /*proto*/
16176static PyMethodDef __pyx_mdef_15cpostprocessing_87calculateConservationJacobianPWL_interiorBoundaries = {"calculateConservationJacobianPWL_interiorBoundaries", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_87calculateConservationJacobianPWL_interiorBoundaries, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
16177static PyObject *__pyx_pw_15cpostprocessing_87calculateConservationJacobianPWL_interiorBoundaries(PyObject *__pyx_self,
16178#if CYTHON_VECTORCALL
16179PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16180#else
16181PyObject *__pyx_args, PyObject *__pyx_kwds
16182#endif
16183) {
16184 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
16185 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
16186 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
16187 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
16188 PyArrayObject *__pyx_v_elementNodes = 0;
16189 PyArrayObject *__pyx_v_nodeStarElements = 0;
16190 PyArrayObject *__pyx_v_nodeStarElementNeighbors = 0;
16191 PyArrayObject *__pyx_v_nElements_node = 0;
16192 PyArrayObject *__pyx_v_fluxElementBoundaries = 0;
16193 PyArrayObject *__pyx_v_w = 0;
16194 PyArrayObject *__pyx_v_n = 0;
16195 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
16196 #if !CYTHON_VECTORCALL
16197 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
16198 #endif
16199 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
16200 PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
16201 int __pyx_lineno = 0;
16202 const char *__pyx_filename = NULL;
16203 int __pyx_clineno = 0;
16204 PyObject *__pyx_r = 0;
16205 __Pyx_RefNannyDeclarations
16206 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL_interiorBoundaries (wrapper)", 0);
16207 #if !CYTHON_VECTORCALL
16208 #if CYTHON_ASSUME_SAFE_SIZE
16209 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
16210 #else
16211 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
16212 #endif
16213 #endif
16214 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
16215 {
16216 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarElementNeighbors,&__pyx_mstate_global->__pyx_n_u_nElements_node,&__pyx_mstate_global->__pyx_n_u_fluxElementBoundaries,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,0};
16217 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
16218 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1104, __pyx_L3_error)
16219 if (__pyx_kwds_len > 0) {
16220 switch (__pyx_nargs) {
16221 case 12:
16222 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
16223 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1104, __pyx_L3_error)
16224 CYTHON_FALLTHROUGH;
16225 case 11:
16226 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
16227 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1104, __pyx_L3_error)
16228 CYTHON_FALLTHROUGH;
16229 case 10:
16230 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
16231 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1104, __pyx_L3_error)
16232 CYTHON_FALLTHROUGH;
16233 case 9:
16234 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
16235 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1104, __pyx_L3_error)
16236 CYTHON_FALLTHROUGH;
16237 case 8:
16238 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
16239 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1104, __pyx_L3_error)
16240 CYTHON_FALLTHROUGH;
16241 case 7:
16242 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
16243 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1104, __pyx_L3_error)
16244 CYTHON_FALLTHROUGH;
16245 case 6:
16246 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
16247 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1104, __pyx_L3_error)
16248 CYTHON_FALLTHROUGH;
16249 case 5:
16250 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16251 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1104, __pyx_L3_error)
16252 CYTHON_FALLTHROUGH;
16253 case 4:
16254 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16255 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1104, __pyx_L3_error)
16256 CYTHON_FALLTHROUGH;
16257 case 3:
16258 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16259 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1104, __pyx_L3_error)
16260 CYTHON_FALLTHROUGH;
16261 case 2:
16262 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16263 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1104, __pyx_L3_error)
16264 CYTHON_FALLTHROUGH;
16265 case 1:
16266 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16267 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1104, __pyx_L3_error)
16268 CYTHON_FALLTHROUGH;
16269 case 0: break;
16270 default: goto __pyx_L5_argtuple_error;
16271 }
16272 const Py_ssize_t kwd_pos_args = __pyx_nargs;
16273 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationJacobianPWL_interiorBoundaries", 0) < (0)) __PYX_ERR(0, 1104, __pyx_L3_error)
16274 for (Py_ssize_t i = __pyx_nargs; i < 12; i++) {
16275 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL_interiorBoundaries", 1, 12, 12, i); __PYX_ERR(0, 1104, __pyx_L3_error) }
16276 }
16277 } else if (unlikely(__pyx_nargs != 12)) {
16278 goto __pyx_L5_argtuple_error;
16279 } else {
16280 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16281 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1104, __pyx_L3_error)
16282 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16283 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1104, __pyx_L3_error)
16284 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16285 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1104, __pyx_L3_error)
16286 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16287 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1104, __pyx_L3_error)
16288 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16289 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1104, __pyx_L3_error)
16290 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
16291 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1104, __pyx_L3_error)
16292 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
16293 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1104, __pyx_L3_error)
16294 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
16295 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1104, __pyx_L3_error)
16296 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
16297 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1104, __pyx_L3_error)
16298 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
16299 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1104, __pyx_L3_error)
16300 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
16301 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1104, __pyx_L3_error)
16302 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
16303 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1104, __pyx_L3_error)
16304 }
16305 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
16306 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
16307 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
16308 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
16309 __pyx_v_elementNodes = ((PyArrayObject *)values[4]);
16310 __pyx_v_nodeStarElements = ((PyArrayObject *)values[5]);
16311 __pyx_v_nodeStarElementNeighbors = ((PyArrayObject *)values[6]);
16312 __pyx_v_nElements_node = ((PyArrayObject *)values[7]);
16313 __pyx_v_fluxElementBoundaries = ((PyArrayObject *)values[8]);
16314 __pyx_v_w = ((PyArrayObject *)values[9]);
16315 __pyx_v_n = ((PyArrayObject *)values[10]);
16316 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[11]);
16317 }
16318 goto __pyx_L6_skip;
16319 __pyx_L5_argtuple_error:;
16320 __Pyx_RaiseArgtupleInvalid("calculateConservationJacobianPWL_interiorBoundaries", 1, 12, 12, __pyx_nargs); __PYX_ERR(0, 1104, __pyx_L3_error)
16321 __pyx_L6_skip:;
16322 goto __pyx_L4_argument_unpacking_done;
16323 __pyx_L3_error:;
16324 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16325 Py_XDECREF(values[__pyx_temp]);
16326 }
16327 __Pyx_AddTraceback("cpostprocessing.calculateConservationJacobianPWL_interiorBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename);
16328 __Pyx_RefNannyFinishContext();
16329 return NULL;
16330 __pyx_L4_argument_unpacking_done:;
16331 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 1104, __pyx_L1_error)
16332 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 1105, __pyx_L1_error)
16333 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 1106, __pyx_L1_error)
16334 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 1107, __pyx_L1_error)
16335 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
16336 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 1109, __pyx_L1_error)
16337 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElementNeighbors), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElementNeighbors", 0))) __PYX_ERR(0, 1110, __pyx_L1_error)
16338 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nElements_node), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nElements_node", 0))) __PYX_ERR(0, 1111, __pyx_L1_error)
16339 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fluxElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "fluxElementBoundaries", 0))) __PYX_ERR(0, 1112, __pyx_L1_error)
16340 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 1113, __pyx_L1_error)
16341 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 1114, __pyx_L1_error)
16342 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1115, __pyx_L1_error)
16343 __pyx_r = __pyx_pf_15cpostprocessing_86calculateConservationJacobianPWL_interiorBoundaries(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarElementNeighbors, __pyx_v_nElements_node, __pyx_v_fluxElementBoundaries, __pyx_v_w, __pyx_v_n, __pyx_v_nodeStarFactor);
16344
16345 /* function exit code */
16346 goto __pyx_L0;
16347 __pyx_L1_error:;
16348 __pyx_r = NULL;
16349 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16350 Py_XDECREF(values[__pyx_temp]);
16351 }
16352 goto __pyx_L7_cleaned_up;
16353 __pyx_L0:;
16354 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16355 Py_XDECREF(values[__pyx_temp]);
16356 }
16357 __pyx_L7_cleaned_up:;
16358 __Pyx_RefNannyFinishContext();
16359 return __pyx_r;
16360}
16361
16362static PyObject *__pyx_pf_15cpostprocessing_86calculateConservationJacobianPWL_interiorBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, PyArrayObject *__pyx_v_nodeStarElementNeighbors, PyArrayObject *__pyx_v_nElements_node, PyArrayObject *__pyx_v_fluxElementBoundaries, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_n, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor) {
16363 PyObject *__pyx_r = NULL;
16364 __Pyx_RefNannyDeclarations
16365 int __pyx_t_1;
16366 int __pyx_lineno = 0;
16367 const char *__pyx_filename = NULL;
16368 int __pyx_clineno = 0;
16369 __Pyx_RefNannySetupContext("calculateConservationJacobianPWL_interiorBoundaries", 0);
16370
16371 /* "cpostprocessing.pyx":1116
16372 * np.ndarray n,
16373 * NodeStarFactor nodeStarFactor):
16374 * assert fluxElementBoundaries.shape[0] == elementBoundaryLocalElementBoundaries.shape[0] # <<<<<<<<<<<<<<
16375 * pp.calculateConservationJacobianPWL_interiorBoundaries(nElements_node.shape[0],
16376 * w.shape[0],
16377*/
16378 #ifndef CYTHON_WITHOUT_ASSERTIONS
16379 if (unlikely(__pyx_assertions_enabled())) {
16380 __pyx_t_1 = ((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_fluxElementBoundaries)[0]) == (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementBoundaryLocalElementBoundaries)[0]));
16381
16382 if (unlikely(!__pyx_t_1)) {
16383 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
16384 __PYX_ERR(0, 1116, __pyx_L1_error)
16385 }
16386
16387 }
16388 #else
16389 if ((1)); else __PYX_ERR(0, 1116, __pyx_L1_error)
16390 #endif
16391
16392 /* "cpostprocessing.pyx":1117
16393 * NodeStarFactor nodeStarFactor):
16394 * assert fluxElementBoundaries.shape[0] == elementBoundaryLocalElementBoundaries.shape[0]
16395 * pp.calculateConservationJacobianPWL_interiorBoundaries(nElements_node.shape[0], # <<<<<<<<<<<<<<
16396 * w.shape[0],
16397 * interiorElementBoundaries.shape[0],
16398*/
16399 calculateConservationJacobianPWL_interiorBoundaries((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_nElements_node)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_n)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElementNeighbors)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nElements_node)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_fluxElementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), (&__pyx_v_nodeStarFactor->nsf));
16400
16401 /* "cpostprocessing.pyx":1104
16402 * <double*>(vConservative_element.data))
16403 *
16404 * def calculateConservationJacobianPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
16405 * np.ndarray exteriorElementBoundaries,
16406 * np.ndarray elementBoundaryElements,
16407*/
16408
16409 /* function exit code */
16410 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16411 goto __pyx_L0;
16412 __pyx_L1_error:;
16413 __Pyx_AddTraceback("cpostprocessing.calculateConservationJacobianPWL_interiorBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename);
16414 __pyx_r = NULL;
16415 __pyx_L0:;
16416 __Pyx_XGIVEREF(__pyx_r);
16417 __Pyx_RefNannyFinishContext();
16418 return __pyx_r;
16419}
16420
16421/* "cpostprocessing.pyx":1138
16422 * &nodeStarFactor.nsf)
16423 *
16424 * def _subdomain_U_copy_global2local(int max_nN_owned, # <<<<<<<<<<<<<<
16425 * np.ndarray elementNodes,
16426 * np.ndarray nodeStarElements,
16427*/
16428
16429/* Python wrapper */
16430static PyObject *__pyx_pw_15cpostprocessing_89_subdomain_U_copy_global2local(PyObject *__pyx_self,
16431#if CYTHON_VECTORCALL
16432PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16433#else
16434PyObject *__pyx_args, PyObject *__pyx_kwds
16435#endif
16436); /*proto*/
16437static PyMethodDef __pyx_mdef_15cpostprocessing_89_subdomain_U_copy_global2local = {"_subdomain_U_copy_global2local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_89_subdomain_U_copy_global2local, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
16438static PyObject *__pyx_pw_15cpostprocessing_89_subdomain_U_copy_global2local(PyObject *__pyx_self,
16439#if CYTHON_VECTORCALL
16440PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16441#else
16442PyObject *__pyx_args, PyObject *__pyx_kwds
16443#endif
16444) {
16445 int __pyx_v_max_nN_owned;
16446 PyArrayObject *__pyx_v_elementNodes = 0;
16447 PyArrayObject *__pyx_v_nodeStarElements = 0;
16448 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
16449 PyArrayObject *__pyx_v_subdomain_U = 0;
16450 #if !CYTHON_VECTORCALL
16451 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
16452 #endif
16453 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
16454 PyObject* values[5] = {0,0,0,0,0};
16455 int __pyx_lineno = 0;
16456 const char *__pyx_filename = NULL;
16457 int __pyx_clineno = 0;
16458 PyObject *__pyx_r = 0;
16459 __Pyx_RefNannyDeclarations
16460 __Pyx_RefNannySetupContext("_subdomain_U_copy_global2local (wrapper)", 0);
16461 #if !CYTHON_VECTORCALL
16462 #if CYTHON_ASSUME_SAFE_SIZE
16463 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
16464 #else
16465 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
16466 #endif
16467 #endif
16468 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
16469 {
16470 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_max_nN_owned,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,&__pyx_mstate_global->__pyx_n_u_subdomain_U,0};
16471 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
16472 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1138, __pyx_L3_error)
16473 if (__pyx_kwds_len > 0) {
16474 switch (__pyx_nargs) {
16475 case 5:
16476 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16477 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1138, __pyx_L3_error)
16478 CYTHON_FALLTHROUGH;
16479 case 4:
16480 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16481 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1138, __pyx_L3_error)
16482 CYTHON_FALLTHROUGH;
16483 case 3:
16484 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16485 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1138, __pyx_L3_error)
16486 CYTHON_FALLTHROUGH;
16487 case 2:
16488 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16489 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1138, __pyx_L3_error)
16490 CYTHON_FALLTHROUGH;
16491 case 1:
16492 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16493 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1138, __pyx_L3_error)
16494 CYTHON_FALLTHROUGH;
16495 case 0: break;
16496 default: goto __pyx_L5_argtuple_error;
16497 }
16498 const Py_ssize_t kwd_pos_args = __pyx_nargs;
16499 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_subdomain_U_copy_global2local", 0) < (0)) __PYX_ERR(0, 1138, __pyx_L3_error)
16500 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
16501 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_subdomain_U_copy_global2local", 1, 5, 5, i); __PYX_ERR(0, 1138, __pyx_L3_error) }
16502 }
16503 } else if (unlikely(__pyx_nargs != 5)) {
16504 goto __pyx_L5_argtuple_error;
16505 } else {
16506 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16507 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1138, __pyx_L3_error)
16508 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16509 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1138, __pyx_L3_error)
16510 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16511 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1138, __pyx_L3_error)
16512 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16513 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1138, __pyx_L3_error)
16514 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16515 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1138, __pyx_L3_error)
16516 }
16517 __pyx_v_max_nN_owned = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_max_nN_owned == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1138, __pyx_L3_error)
16518 __pyx_v_elementNodes = ((PyArrayObject *)values[1]);
16519 __pyx_v_nodeStarElements = ((PyArrayObject *)values[2]);
16520 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[3]);
16521 __pyx_v_subdomain_U = ((PyArrayObject *)values[4]);
16522 }
16523 goto __pyx_L6_skip;
16524 __pyx_L5_argtuple_error:;
16525 __Pyx_RaiseArgtupleInvalid("_subdomain_U_copy_global2local", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 1138, __pyx_L3_error)
16526 __pyx_L6_skip:;
16527 goto __pyx_L4_argument_unpacking_done;
16528 __pyx_L3_error:;
16529 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16530 Py_XDECREF(values[__pyx_temp]);
16531 }
16532 __Pyx_AddTraceback("cpostprocessing._subdomain_U_copy_global2local", __pyx_clineno, __pyx_lineno, __pyx_filename);
16533 __Pyx_RefNannyFinishContext();
16534 return NULL;
16535 __pyx_L4_argument_unpacking_done:;
16536 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 1139, __pyx_L1_error)
16537 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 1140, __pyx_L1_error)
16538 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1141, __pyx_L1_error)
16539 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subdomain_U), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subdomain_U", 0))) __PYX_ERR(0, 1142, __pyx_L1_error)
16540 __pyx_r = __pyx_pf_15cpostprocessing_88_subdomain_U_copy_global2local(__pyx_self, __pyx_v_max_nN_owned, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarFactor, __pyx_v_subdomain_U);
16541
16542 /* function exit code */
16543 goto __pyx_L0;
16544 __pyx_L1_error:;
16545 __pyx_r = NULL;
16546 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16547 Py_XDECREF(values[__pyx_temp]);
16548 }
16549 goto __pyx_L7_cleaned_up;
16550 __pyx_L0:;
16551 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16552 Py_XDECREF(values[__pyx_temp]);
16553 }
16554 __pyx_L7_cleaned_up:;
16555
16556 __Pyx_RefNannyFinishContext();
16557 return __pyx_r;
16558}
16559
16560static PyObject *__pyx_pf_15cpostprocessing_88_subdomain_U_copy_global2local(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U) {
16561 PyObject *__pyx_r = NULL;
16562 __Pyx_RefNannyDeclarations
16563 __Pyx_RefNannySetupContext("_subdomain_U_copy_global2local", 0);
16564
16565 /* "cpostprocessing.pyx":1143
16566 * NodeStarFactor nodeStarFactor,
16567 * np.ndarray subdomain_U):
16568 * pp.subdomain_U_copy_global2local(max_nN_owned, # <<<<<<<<<<<<<<
16569 * subdomain_U.shape[0],
16570 * subdomain_U.shape[1],
16571*/
16572 subdomain_U_copy_global2local(__pyx_v_max_nN_owned, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_subdomain_U)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_subdomain_U)[1]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), (&__pyx_v_nodeStarFactor->nsf), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subdomain_U)));
16573
16574 /* "cpostprocessing.pyx":1138
16575 * &nodeStarFactor.nsf)
16576 *
16577 * def _subdomain_U_copy_global2local(int max_nN_owned, # <<<<<<<<<<<<<<
16578 * np.ndarray elementNodes,
16579 * np.ndarray nodeStarElements,
16580*/
16581
16582 /* function exit code */
16583 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16584 __Pyx_XGIVEREF(__pyx_r);
16585 __Pyx_RefNannyFinishContext();
16586 return __pyx_r;
16587}
16588
16589/* "cpostprocessing.pyx":1151
16590 * <double*>(subdomain_U.data))
16591 *
16592 * def _subdomain_U_copy_local2global(int max_nN_owned, # <<<<<<<<<<<<<<
16593 * np.ndarray elementNodes,
16594 * np.ndarray nodeStarElements,
16595*/
16596
16597/* Python wrapper */
16598static PyObject *__pyx_pw_15cpostprocessing_91_subdomain_U_copy_local2global(PyObject *__pyx_self,
16599#if CYTHON_VECTORCALL
16600PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16601#else
16602PyObject *__pyx_args, PyObject *__pyx_kwds
16603#endif
16604); /*proto*/
16605static PyMethodDef __pyx_mdef_15cpostprocessing_91_subdomain_U_copy_local2global = {"_subdomain_U_copy_local2global", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_91_subdomain_U_copy_local2global, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
16606static PyObject *__pyx_pw_15cpostprocessing_91_subdomain_U_copy_local2global(PyObject *__pyx_self,
16607#if CYTHON_VECTORCALL
16608PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16609#else
16610PyObject *__pyx_args, PyObject *__pyx_kwds
16611#endif
16612) {
16613 int __pyx_v_max_nN_owned;
16614 PyArrayObject *__pyx_v_elementNodes = 0;
16615 PyArrayObject *__pyx_v_nodeStarElements = 0;
16616 struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor = 0;
16617 PyArrayObject *__pyx_v_subdomain_U = 0;
16618 #if !CYTHON_VECTORCALL
16619 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
16620 #endif
16621 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
16622 PyObject* values[5] = {0,0,0,0,0};
16623 int __pyx_lineno = 0;
16624 const char *__pyx_filename = NULL;
16625 int __pyx_clineno = 0;
16626 PyObject *__pyx_r = 0;
16627 __Pyx_RefNannyDeclarations
16628 __Pyx_RefNannySetupContext("_subdomain_U_copy_local2global (wrapper)", 0);
16629 #if !CYTHON_VECTORCALL
16630 #if CYTHON_ASSUME_SAFE_SIZE
16631 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
16632 #else
16633 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
16634 #endif
16635 #endif
16636 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
16637 {
16638 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_max_nN_owned,&__pyx_mstate_global->__pyx_n_u_elementNodes,&__pyx_mstate_global->__pyx_n_u_nodeStarElements,&__pyx_mstate_global->__pyx_n_u_nodeStarFactor,&__pyx_mstate_global->__pyx_n_u_subdomain_U,0};
16639 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
16640 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1151, __pyx_L3_error)
16641 if (__pyx_kwds_len > 0) {
16642 switch (__pyx_nargs) {
16643 case 5:
16644 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16645 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1151, __pyx_L3_error)
16646 CYTHON_FALLTHROUGH;
16647 case 4:
16648 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16649 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1151, __pyx_L3_error)
16650 CYTHON_FALLTHROUGH;
16651 case 3:
16652 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16653 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1151, __pyx_L3_error)
16654 CYTHON_FALLTHROUGH;
16655 case 2:
16656 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16657 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1151, __pyx_L3_error)
16658 CYTHON_FALLTHROUGH;
16659 case 1:
16660 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16661 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1151, __pyx_L3_error)
16662 CYTHON_FALLTHROUGH;
16663 case 0: break;
16664 default: goto __pyx_L5_argtuple_error;
16665 }
16666 const Py_ssize_t kwd_pos_args = __pyx_nargs;
16667 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_subdomain_U_copy_local2global", 0) < (0)) __PYX_ERR(0, 1151, __pyx_L3_error)
16668 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
16669 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_subdomain_U_copy_local2global", 1, 5, 5, i); __PYX_ERR(0, 1151, __pyx_L3_error) }
16670 }
16671 } else if (unlikely(__pyx_nargs != 5)) {
16672 goto __pyx_L5_argtuple_error;
16673 } else {
16674 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16675 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1151, __pyx_L3_error)
16676 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16677 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1151, __pyx_L3_error)
16678 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16679 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1151, __pyx_L3_error)
16680 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16681 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1151, __pyx_L3_error)
16682 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16683 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1151, __pyx_L3_error)
16684 }
16685 __pyx_v_max_nN_owned = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_max_nN_owned == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1151, __pyx_L3_error)
16686 __pyx_v_elementNodes = ((PyArrayObject *)values[1]);
16687 __pyx_v_nodeStarElements = ((PyArrayObject *)values[2]);
16688 __pyx_v_nodeStarFactor = ((struct __pyx_obj_15cpostprocessing_NodeStarFactor *)values[3]);
16689 __pyx_v_subdomain_U = ((PyArrayObject *)values[4]);
16690 }
16691 goto __pyx_L6_skip;
16692 __pyx_L5_argtuple_error:;
16693 __Pyx_RaiseArgtupleInvalid("_subdomain_U_copy_local2global", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 1151, __pyx_L3_error)
16694 __pyx_L6_skip:;
16695 goto __pyx_L4_argument_unpacking_done;
16696 __pyx_L3_error:;
16697 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16698 Py_XDECREF(values[__pyx_temp]);
16699 }
16700 __Pyx_AddTraceback("cpostprocessing._subdomain_U_copy_local2global", __pyx_clineno, __pyx_lineno, __pyx_filename);
16701 __Pyx_RefNannyFinishContext();
16702 return NULL;
16703 __pyx_L4_argument_unpacking_done:;
16704 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementNodes), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementNodes", 0))) __PYX_ERR(0, 1152, __pyx_L1_error)
16705 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nodeStarElements", 0))) __PYX_ERR(0, 1153, __pyx_L1_error)
16706 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodeStarFactor), __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, 1, "nodeStarFactor", 0))) __PYX_ERR(0, 1154, __pyx_L1_error)
16707 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subdomain_U), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subdomain_U", 0))) __PYX_ERR(0, 1155, __pyx_L1_error)
16708 __pyx_r = __pyx_pf_15cpostprocessing_90_subdomain_U_copy_local2global(__pyx_self, __pyx_v_max_nN_owned, __pyx_v_elementNodes, __pyx_v_nodeStarElements, __pyx_v_nodeStarFactor, __pyx_v_subdomain_U);
16709
16710 /* function exit code */
16711 goto __pyx_L0;
16712 __pyx_L1_error:;
16713 __pyx_r = NULL;
16714 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16715 Py_XDECREF(values[__pyx_temp]);
16716 }
16717 goto __pyx_L7_cleaned_up;
16718 __pyx_L0:;
16719 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16720 Py_XDECREF(values[__pyx_temp]);
16721 }
16722 __pyx_L7_cleaned_up:;
16723
16724 __Pyx_RefNannyFinishContext();
16725 return __pyx_r;
16726}
16727
16728static PyObject *__pyx_pf_15cpostprocessing_90_subdomain_U_copy_local2global(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_max_nN_owned, PyArrayObject *__pyx_v_elementNodes, PyArrayObject *__pyx_v_nodeStarElements, struct __pyx_obj_15cpostprocessing_NodeStarFactor *__pyx_v_nodeStarFactor, PyArrayObject *__pyx_v_subdomain_U) {
16729 PyObject *__pyx_r = NULL;
16730 __Pyx_RefNannyDeclarations
16731 __Pyx_RefNannySetupContext("_subdomain_U_copy_local2global", 0);
16732
16733 /* "cpostprocessing.pyx":1156
16734 * NodeStarFactor nodeStarFactor,
16735 * np.ndarray subdomain_U):
16736 * pp.subdomain_U_copy_local2global(max_nN_owned, # <<<<<<<<<<<<<<
16737 * subdomain_U.shape[0],
16738 * subdomain_U.shape[1],
16739*/
16740 subdomain_U_copy_local2global(__pyx_v_max_nN_owned, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_subdomain_U)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_subdomain_U)[1]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementNodes)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_nodeStarElements)), (&__pyx_v_nodeStarFactor->nsf), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subdomain_U)));
16741
16742 /* "cpostprocessing.pyx":1151
16743 * <double*>(subdomain_U.data))
16744 *
16745 * def _subdomain_U_copy_local2global(int max_nN_owned, # <<<<<<<<<<<<<<
16746 * np.ndarray elementNodes,
16747 * np.ndarray nodeStarElements,
16748*/
16749
16750 /* function exit code */
16751 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16752 __Pyx_XGIVEREF(__pyx_r);
16753 __Pyx_RefNannyFinishContext();
16754 return __pyx_r;
16755}
16756
16757/* "cpostprocessing.pyx":1164
16758 * <double*>(subdomain_U.data))
16759 *
16760 * def calculateConservationResidualGlobalBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
16761 * np.ndarray exteriorElementBoundaries,
16762 * np.ndarray elementBoundaryElements,
16763*/
16764
16765/* Python wrapper */
16766static PyObject *__pyx_pw_15cpostprocessing_93calculateConservationResidualGlobalBoundaries(PyObject *__pyx_self,
16767#if CYTHON_VECTORCALL
16768PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16769#else
16770PyObject *__pyx_args, PyObject *__pyx_kwds
16771#endif
16772); /*proto*/
16773static PyMethodDef __pyx_mdef_15cpostprocessing_93calculateConservationResidualGlobalBoundaries = {"calculateConservationResidualGlobalBoundaries", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_93calculateConservationResidualGlobalBoundaries, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
16774static PyObject *__pyx_pw_15cpostprocessing_93calculateConservationResidualGlobalBoundaries(PyObject *__pyx_self,
16775#if CYTHON_VECTORCALL
16776PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16777#else
16778PyObject *__pyx_args, PyObject *__pyx_kwds
16779#endif
16780) {
16781 PyArrayObject *__pyx_v_interiorElementBoundaries = 0;
16782 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
16783 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
16784 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
16785 PyArrayObject *__pyx_v_exteriorElementBoundariesToSkip = 0;
16786 PyArrayObject *__pyx_v_dS = 0;
16787 PyArrayObject *__pyx_v_n = 0;
16788 PyArrayObject *__pyx_v_elementResidual = 0;
16789 PyArrayObject *__pyx_v_velocity = 0;
16790 PyArrayObject *__pyx_v_conservationResidual = 0;
16791 #if !CYTHON_VECTORCALL
16792 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
16793 #endif
16794 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
16795 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
16796 int __pyx_lineno = 0;
16797 const char *__pyx_filename = NULL;
16798 int __pyx_clineno = 0;
16799 PyObject *__pyx_r = 0;
16800 __Pyx_RefNannyDeclarations
16801 __Pyx_RefNannySetupContext("calculateConservationResidualGlobalBoundaries (wrapper)", 0);
16802 #if !CYTHON_VECTORCALL
16803 #if CYTHON_ASSUME_SAFE_SIZE
16804 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
16805 #else
16806 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
16807 #endif
16808 #endif
16809 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
16810 {
16811 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interiorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundariesToSkip,&__pyx_mstate_global->__pyx_n_u_dS,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_velocity,&__pyx_mstate_global->__pyx_n_u_conservationResidual,0};
16812 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
16813 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1164, __pyx_L3_error)
16814 if (__pyx_kwds_len > 0) {
16815 switch (__pyx_nargs) {
16816 case 10:
16817 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
16818 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1164, __pyx_L3_error)
16819 CYTHON_FALLTHROUGH;
16820 case 9:
16821 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
16822 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1164, __pyx_L3_error)
16823 CYTHON_FALLTHROUGH;
16824 case 8:
16825 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
16826 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1164, __pyx_L3_error)
16827 CYTHON_FALLTHROUGH;
16828 case 7:
16829 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
16830 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1164, __pyx_L3_error)
16831 CYTHON_FALLTHROUGH;
16832 case 6:
16833 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
16834 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1164, __pyx_L3_error)
16835 CYTHON_FALLTHROUGH;
16836 case 5:
16837 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16838 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1164, __pyx_L3_error)
16839 CYTHON_FALLTHROUGH;
16840 case 4:
16841 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16842 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1164, __pyx_L3_error)
16843 CYTHON_FALLTHROUGH;
16844 case 3:
16845 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16846 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1164, __pyx_L3_error)
16847 CYTHON_FALLTHROUGH;
16848 case 2:
16849 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16850 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1164, __pyx_L3_error)
16851 CYTHON_FALLTHROUGH;
16852 case 1:
16853 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16854 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1164, __pyx_L3_error)
16855 CYTHON_FALLTHROUGH;
16856 case 0: break;
16857 default: goto __pyx_L5_argtuple_error;
16858 }
16859 const Py_ssize_t kwd_pos_args = __pyx_nargs;
16860 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateConservationResidualGlobalBoundaries", 0) < (0)) __PYX_ERR(0, 1164, __pyx_L3_error)
16861 for (Py_ssize_t i = __pyx_nargs; i < 10; i++) {
16862 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateConservationResidualGlobalBoundaries", 1, 10, 10, i); __PYX_ERR(0, 1164, __pyx_L3_error) }
16863 }
16864 } else if (unlikely(__pyx_nargs != 10)) {
16865 goto __pyx_L5_argtuple_error;
16866 } else {
16867 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
16868 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1164, __pyx_L3_error)
16869 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
16870 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1164, __pyx_L3_error)
16871 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
16872 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1164, __pyx_L3_error)
16873 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
16874 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1164, __pyx_L3_error)
16875 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
16876 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1164, __pyx_L3_error)
16877 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
16878 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1164, __pyx_L3_error)
16879 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
16880 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1164, __pyx_L3_error)
16881 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
16882 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1164, __pyx_L3_error)
16883 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
16884 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1164, __pyx_L3_error)
16885 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
16886 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1164, __pyx_L3_error)
16887 }
16888 __pyx_v_interiorElementBoundaries = ((PyArrayObject *)values[0]);
16889 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[1]);
16890 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[2]);
16891 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[3]);
16892 __pyx_v_exteriorElementBoundariesToSkip = ((PyArrayObject *)values[4]);
16893 __pyx_v_dS = ((PyArrayObject *)values[5]);
16894 __pyx_v_n = ((PyArrayObject *)values[6]);
16895 __pyx_v_elementResidual = ((PyArrayObject *)values[7]);
16896 __pyx_v_velocity = ((PyArrayObject *)values[8]);
16897 __pyx_v_conservationResidual = ((PyArrayObject *)values[9]);
16898 }
16899 goto __pyx_L6_skip;
16900 __pyx_L5_argtuple_error:;
16901 __Pyx_RaiseArgtupleInvalid("calculateConservationResidualGlobalBoundaries", 1, 10, 10, __pyx_nargs); __PYX_ERR(0, 1164, __pyx_L3_error)
16902 __pyx_L6_skip:;
16903 goto __pyx_L4_argument_unpacking_done;
16904 __pyx_L3_error:;
16905 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16906 Py_XDECREF(values[__pyx_temp]);
16907 }
16908 __Pyx_AddTraceback("cpostprocessing.calculateConservationResidualGlobalBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename);
16909 __Pyx_RefNannyFinishContext();
16910 return NULL;
16911 __pyx_L4_argument_unpacking_done:;
16912 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interiorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "interiorElementBoundaries", 0))) __PYX_ERR(0, 1164, __pyx_L1_error)
16913 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 1165, __pyx_L1_error)
16914 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 1166, __pyx_L1_error)
16915 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 1167, __pyx_L1_error)
16916 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundariesToSkip), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundariesToSkip", 0))) __PYX_ERR(0, 1168, __pyx_L1_error)
16917 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dS), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dS", 0))) __PYX_ERR(0, 1169, __pyx_L1_error)
16918 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "n", 0))) __PYX_ERR(0, 1170, __pyx_L1_error)
16919 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 1171, __pyx_L1_error)
16920 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 1172, __pyx_L1_error)
16921 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_conservationResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "conservationResidual", 0))) __PYX_ERR(0, 1173, __pyx_L1_error)
16922 __pyx_r = __pyx_pf_15cpostprocessing_92calculateConservationResidualGlobalBoundaries(__pyx_self, __pyx_v_interiorElementBoundaries, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_exteriorElementBoundariesToSkip, __pyx_v_dS, __pyx_v_n, __pyx_v_elementResidual, __pyx_v_velocity, __pyx_v_conservationResidual);
16923
16924 /* function exit code */
16925 goto __pyx_L0;
16926 __pyx_L1_error:;
16927 __pyx_r = NULL;
16928 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16929 Py_XDECREF(values[__pyx_temp]);
16930 }
16931 goto __pyx_L7_cleaned_up;
16932 __pyx_L0:;
16933 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
16934 Py_XDECREF(values[__pyx_temp]);
16935 }
16936 __pyx_L7_cleaned_up:;
16937 __Pyx_RefNannyFinishContext();
16938 return __pyx_r;
16939}
16940
16941static PyObject *__pyx_pf_15cpostprocessing_92calculateConservationResidualGlobalBoundaries(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_interiorElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_exteriorElementBoundariesToSkip, PyArrayObject *__pyx_v_dS, PyArrayObject *__pyx_v_n, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_velocity, PyArrayObject *__pyx_v_conservationResidual) {
16942 PyObject *__pyx_r = NULL;
16943 __Pyx_RefNannyDeclarations
16944 __Pyx_RefNannySetupContext("calculateConservationResidualGlobalBoundaries", 0);
16945
16946 /* "cpostprocessing.pyx":1174
16947 * np.ndarray velocity,
16948 * np.ndarray conservationResidual):
16949 * pp.calculateConservationResidualGlobalBoundaries(conservationResidual.shape[0], # <<<<<<<<<<<<<<
16950 * interiorElementBoundaries.shape[0],
16951 * exteriorElementBoundaries.shape[0],
16952*/
16953 calculateConservationResidualGlobalBoundaries((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_conservationResidual)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_interiorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dS)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementResidual)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_interiorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundariesToSkip)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dS)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_n)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_conservationResidual)));
16954
16955 /* "cpostprocessing.pyx":1164
16956 * <double*>(subdomain_U.data))
16957 *
16958 * def calculateConservationResidualGlobalBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
16959 * np.ndarray exteriorElementBoundaries,
16960 * np.ndarray elementBoundaryElements,
16961*/
16962
16963 /* function exit code */
16964 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16965 __Pyx_XGIVEREF(__pyx_r);
16966 __Pyx_RefNannyFinishContext();
16967 return __pyx_r;
16968}
16969
16970/* "cpostprocessing.pyx":1192
16971 * <double*>(conservationResidual.data))
16972 *
16973 * def updateSelectedExteriorElementBoundaryFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
16974 * np.ndarray elementBoundaryElements,
16975 * np.ndarray elementBoundaryLocalElementBoundaries,
16976*/
16977
16978/* Python wrapper */
16979static PyObject *__pyx_pw_15cpostprocessing_95updateSelectedExteriorElementBoundaryFlux(PyObject *__pyx_self,
16980#if CYTHON_VECTORCALL
16981PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16982#else
16983PyObject *__pyx_args, PyObject *__pyx_kwds
16984#endif
16985); /*proto*/
16986static PyMethodDef __pyx_mdef_15cpostprocessing_95updateSelectedExteriorElementBoundaryFlux = {"updateSelectedExteriorElementBoundaryFlux", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_95updateSelectedExteriorElementBoundaryFlux, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
16987static PyObject *__pyx_pw_15cpostprocessing_95updateSelectedExteriorElementBoundaryFlux(PyObject *__pyx_self,
16988#if CYTHON_VECTORCALL
16989PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
16990#else
16991PyObject *__pyx_args, PyObject *__pyx_kwds
16992#endif
16993) {
16994 PyArrayObject *__pyx_v_exteriorElementBoundaries = 0;
16995 PyArrayObject *__pyx_v_elementBoundaryElements = 0;
16996 PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries = 0;
16997 PyArrayObject *__pyx_v_skipflag_elementBoundaries = 0;
16998 PyArrayObject *__pyx_v_flux = 0;
16999 PyArrayObject *__pyx_v_w = 0;
17000 PyArrayObject *__pyx_v_residual = 0;
17001 #if !CYTHON_VECTORCALL
17002 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17003 #endif
17004 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17005 PyObject* values[7] = {0,0,0,0,0,0,0};
17006 int __pyx_lineno = 0;
17007 const char *__pyx_filename = NULL;
17008 int __pyx_clineno = 0;
17009 PyObject *__pyx_r = 0;
17010 __Pyx_RefNannyDeclarations
17011 __Pyx_RefNannySetupContext("updateSelectedExteriorElementBoundaryFlux (wrapper)", 0);
17012 #if !CYTHON_VECTORCALL
17013 #if CYTHON_ASSUME_SAFE_SIZE
17014 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17015 #else
17016 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17017 #endif
17018 #endif
17019 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17020 {
17021 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_exteriorElementBoundaries,&__pyx_mstate_global->__pyx_n_u_elementBoundaryElements,&__pyx_mstate_global->__pyx_n_u_elementBoundaryLocalElementBound,&__pyx_mstate_global->__pyx_n_u_skipflag_elementBoundaries,&__pyx_mstate_global->__pyx_n_u_flux,&__pyx_mstate_global->__pyx_n_u_w,&__pyx_mstate_global->__pyx_n_u_residual,0};
17022 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17023 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1192, __pyx_L3_error)
17024 if (__pyx_kwds_len > 0) {
17025 switch (__pyx_nargs) {
17026 case 7:
17027 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
17028 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1192, __pyx_L3_error)
17029 CYTHON_FALLTHROUGH;
17030 case 6:
17031 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
17032 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1192, __pyx_L3_error)
17033 CYTHON_FALLTHROUGH;
17034 case 5:
17035 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
17036 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1192, __pyx_L3_error)
17037 CYTHON_FALLTHROUGH;
17038 case 4:
17039 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17040 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1192, __pyx_L3_error)
17041 CYTHON_FALLTHROUGH;
17042 case 3:
17043 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17044 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1192, __pyx_L3_error)
17045 CYTHON_FALLTHROUGH;
17046 case 2:
17047 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17048 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1192, __pyx_L3_error)
17049 CYTHON_FALLTHROUGH;
17050 case 1:
17051 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17052 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1192, __pyx_L3_error)
17053 CYTHON_FALLTHROUGH;
17054 case 0: break;
17055 default: goto __pyx_L5_argtuple_error;
17056 }
17057 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17058 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateSelectedExteriorElementBoundaryFlux", 0) < (0)) __PYX_ERR(0, 1192, __pyx_L3_error)
17059 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
17060 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateSelectedExteriorElementBoundaryFlux", 1, 7, 7, i); __PYX_ERR(0, 1192, __pyx_L3_error) }
17061 }
17062 } else if (unlikely(__pyx_nargs != 7)) {
17063 goto __pyx_L5_argtuple_error;
17064 } else {
17065 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17066 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1192, __pyx_L3_error)
17067 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17068 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1192, __pyx_L3_error)
17069 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17070 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1192, __pyx_L3_error)
17071 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17072 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1192, __pyx_L3_error)
17073 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
17074 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1192, __pyx_L3_error)
17075 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
17076 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1192, __pyx_L3_error)
17077 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
17078 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1192, __pyx_L3_error)
17079 }
17080 __pyx_v_exteriorElementBoundaries = ((PyArrayObject *)values[0]);
17081 __pyx_v_elementBoundaryElements = ((PyArrayObject *)values[1]);
17082 __pyx_v_elementBoundaryLocalElementBoundaries = ((PyArrayObject *)values[2]);
17083 __pyx_v_skipflag_elementBoundaries = ((PyArrayObject *)values[3]);
17084 __pyx_v_flux = ((PyArrayObject *)values[4]);
17085 __pyx_v_w = ((PyArrayObject *)values[5]);
17086 __pyx_v_residual = ((PyArrayObject *)values[6]);
17087 }
17088 goto __pyx_L6_skip;
17089 __pyx_L5_argtuple_error:;
17090 __Pyx_RaiseArgtupleInvalid("updateSelectedExteriorElementBoundaryFlux", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 1192, __pyx_L3_error)
17091 __pyx_L6_skip:;
17092 goto __pyx_L4_argument_unpacking_done;
17093 __pyx_L3_error:;
17094 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17095 Py_XDECREF(values[__pyx_temp]);
17096 }
17097 __Pyx_AddTraceback("cpostprocessing.updateSelectedExteriorElementBoundaryFlux", __pyx_clineno, __pyx_lineno, __pyx_filename);
17098 __Pyx_RefNannyFinishContext();
17099 return NULL;
17100 __pyx_L4_argument_unpacking_done:;
17101 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_exteriorElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "exteriorElementBoundaries", 0))) __PYX_ERR(0, 1192, __pyx_L1_error)
17102 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryElements), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryElements", 0))) __PYX_ERR(0, 1193, __pyx_L1_error)
17103 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementBoundaryLocalElementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementBoundaryLocalElementBoundaries", 0))) __PYX_ERR(0, 1194, __pyx_L1_error)
17104 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_skipflag_elementBoundaries), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "skipflag_elementBoundaries", 0))) __PYX_ERR(0, 1195, __pyx_L1_error)
17105 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flux), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "flux", 0))) __PYX_ERR(0, 1196, __pyx_L1_error)
17106 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_w), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "w", 0))) __PYX_ERR(0, 1197, __pyx_L1_error)
17107 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_residual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "residual", 0))) __PYX_ERR(0, 1198, __pyx_L1_error)
17108 __pyx_r = __pyx_pf_15cpostprocessing_94updateSelectedExteriorElementBoundaryFlux(__pyx_self, __pyx_v_exteriorElementBoundaries, __pyx_v_elementBoundaryElements, __pyx_v_elementBoundaryLocalElementBoundaries, __pyx_v_skipflag_elementBoundaries, __pyx_v_flux, __pyx_v_w, __pyx_v_residual);
17109
17110 /* function exit code */
17111 goto __pyx_L0;
17112 __pyx_L1_error:;
17113 __pyx_r = NULL;
17114 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17115 Py_XDECREF(values[__pyx_temp]);
17116 }
17117 goto __pyx_L7_cleaned_up;
17118 __pyx_L0:;
17119 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17120 Py_XDECREF(values[__pyx_temp]);
17121 }
17122 __pyx_L7_cleaned_up:;
17123 __Pyx_RefNannyFinishContext();
17124 return __pyx_r;
17125}
17126
17127static PyObject *__pyx_pf_15cpostprocessing_94updateSelectedExteriorElementBoundaryFlux(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_exteriorElementBoundaries, PyArrayObject *__pyx_v_elementBoundaryElements, PyArrayObject *__pyx_v_elementBoundaryLocalElementBoundaries, PyArrayObject *__pyx_v_skipflag_elementBoundaries, PyArrayObject *__pyx_v_flux, PyArrayObject *__pyx_v_w, PyArrayObject *__pyx_v_residual) {
17128 PyObject *__pyx_r = NULL;
17129 __Pyx_RefNannyDeclarations
17130 __Pyx_RefNannySetupContext("updateSelectedExteriorElementBoundaryFlux", 0);
17131
17132 /* "cpostprocessing.pyx":1199
17133 * np.ndarray w,
17134 * np.ndarray residual):
17135 * pp.updateSelectedExteriorElementBoundaryFlux(exteriorElementBoundaries.shape[0], # <<<<<<<<<<<<<<
17136 * w.shape[1],
17137 * w.shape[2],
17138*/
17139 updateSelectedExteriorElementBoundaryFlux((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_exteriorElementBoundaries)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[2]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_w)[3]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_exteriorElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryElements)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementBoundaryLocalElementBoundaries)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_skipflag_elementBoundaries)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_flux)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_w)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_residual)));
17140
17141 /* "cpostprocessing.pyx":1192
17142 * <double*>(conservationResidual.data))
17143 *
17144 * def updateSelectedExteriorElementBoundaryFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
17145 * np.ndarray elementBoundaryElements,
17146 * np.ndarray elementBoundaryLocalElementBoundaries,
17147*/
17148
17149 /* function exit code */
17150 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17151 __Pyx_XGIVEREF(__pyx_r);
17152 __Pyx_RefNannyFinishContext();
17153 return __pyx_r;
17154}
17155
17156/* "cpostprocessing.pyx":1211
17157 * <double*>(residual.data))
17158 *
17159 * def updateAdvectiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
17160 * np.ndarray advectiveVelocity,
17161 * np.ndarray velocity):
17162*/
17163
17164/* Python wrapper */
17165static PyObject *__pyx_pw_15cpostprocessing_97updateAdvectiveVelocityPointEval(PyObject *__pyx_self,
17166#if CYTHON_VECTORCALL
17167PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17168#else
17169PyObject *__pyx_args, PyObject *__pyx_kwds
17170#endif
17171); /*proto*/
17172static PyMethodDef __pyx_mdef_15cpostprocessing_97updateAdvectiveVelocityPointEval = {"updateAdvectiveVelocityPointEval", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_97updateAdvectiveVelocityPointEval, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17173static PyObject *__pyx_pw_15cpostprocessing_97updateAdvectiveVelocityPointEval(PyObject *__pyx_self,
17174#if CYTHON_VECTORCALL
17175PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17176#else
17177PyObject *__pyx_args, PyObject *__pyx_kwds
17178#endif
17179) {
17180 double __pyx_v_updateCoef;
17181 PyArrayObject *__pyx_v_advectiveVelocity = 0;
17182 PyArrayObject *__pyx_v_velocity = 0;
17183 #if !CYTHON_VECTORCALL
17184 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17185 #endif
17186 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17187 PyObject* values[3] = {0,0,0};
17188 int __pyx_lineno = 0;
17189 const char *__pyx_filename = NULL;
17190 int __pyx_clineno = 0;
17191 PyObject *__pyx_r = 0;
17192 __Pyx_RefNannyDeclarations
17193 __Pyx_RefNannySetupContext("updateAdvectiveVelocityPointEval (wrapper)", 0);
17194 #if !CYTHON_VECTORCALL
17195 #if CYTHON_ASSUME_SAFE_SIZE
17196 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17197 #else
17198 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17199 #endif
17200 #endif
17201 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17202 {
17203 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_updateCoef,&__pyx_mstate_global->__pyx_n_u_advectiveVelocity,&__pyx_mstate_global->__pyx_n_u_velocity,0};
17204 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17205 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1211, __pyx_L3_error)
17206 if (__pyx_kwds_len > 0) {
17207 switch (__pyx_nargs) {
17208 case 3:
17209 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17210 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1211, __pyx_L3_error)
17211 CYTHON_FALLTHROUGH;
17212 case 2:
17213 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17214 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1211, __pyx_L3_error)
17215 CYTHON_FALLTHROUGH;
17216 case 1:
17217 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17218 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1211, __pyx_L3_error)
17219 CYTHON_FALLTHROUGH;
17220 case 0: break;
17221 default: goto __pyx_L5_argtuple_error;
17222 }
17223 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17224 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateAdvectiveVelocityPointEval", 0) < (0)) __PYX_ERR(0, 1211, __pyx_L3_error)
17225 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
17226 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateAdvectiveVelocityPointEval", 1, 3, 3, i); __PYX_ERR(0, 1211, __pyx_L3_error) }
17227 }
17228 } else if (unlikely(__pyx_nargs != 3)) {
17229 goto __pyx_L5_argtuple_error;
17230 } else {
17231 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17232 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1211, __pyx_L3_error)
17233 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17234 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1211, __pyx_L3_error)
17235 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17236 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1211, __pyx_L3_error)
17237 }
17238 __pyx_v_updateCoef = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_updateCoef == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1211, __pyx_L3_error)
17239 __pyx_v_advectiveVelocity = ((PyArrayObject *)values[1]);
17240 __pyx_v_velocity = ((PyArrayObject *)values[2]);
17241 }
17242 goto __pyx_L6_skip;
17243 __pyx_L5_argtuple_error:;
17244 __Pyx_RaiseArgtupleInvalid("updateAdvectiveVelocityPointEval", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1211, __pyx_L3_error)
17245 __pyx_L6_skip:;
17246 goto __pyx_L4_argument_unpacking_done;
17247 __pyx_L3_error:;
17248 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17249 Py_XDECREF(values[__pyx_temp]);
17250 }
17251 __Pyx_AddTraceback("cpostprocessing.updateAdvectiveVelocityPointEval", __pyx_clineno, __pyx_lineno, __pyx_filename);
17252 __Pyx_RefNannyFinishContext();
17253 return NULL;
17254 __pyx_L4_argument_unpacking_done:;
17255 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_advectiveVelocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "advectiveVelocity", 0))) __PYX_ERR(0, 1212, __pyx_L1_error)
17256 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 1213, __pyx_L1_error)
17257 __pyx_r = __pyx_pf_15cpostprocessing_96updateAdvectiveVelocityPointEval(__pyx_self, __pyx_v_updateCoef, __pyx_v_advectiveVelocity, __pyx_v_velocity);
17258
17259 /* function exit code */
17260 goto __pyx_L0;
17261 __pyx_L1_error:;
17262 __pyx_r = NULL;
17263 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17264 Py_XDECREF(values[__pyx_temp]);
17265 }
17266 goto __pyx_L7_cleaned_up;
17267 __pyx_L0:;
17268 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17269 Py_XDECREF(values[__pyx_temp]);
17270 }
17271 __pyx_L7_cleaned_up:;
17272
17273 __Pyx_RefNannyFinishContext();
17274 return __pyx_r;
17275}
17276
17277static PyObject *__pyx_pf_15cpostprocessing_96updateAdvectiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_advectiveVelocity, PyArrayObject *__pyx_v_velocity) {
17278 int __pyx_v_nPoints;
17279 PyObject *__pyx_r = NULL;
17280 __Pyx_RefNannyDeclarations
17281 npy_intp __pyx_t_1;
17282 npy_intp __pyx_t_2;
17283 int __pyx_lineno = 0;
17284 const char *__pyx_filename = NULL;
17285 int __pyx_clineno = 0;
17286 __Pyx_RefNannySetupContext("updateAdvectiveVelocityPointEval", 0);
17287
17288 /* "cpostprocessing.pyx":1214
17289 * np.ndarray advectiveVelocity,
17290 * np.ndarray velocity):
17291 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1] # <<<<<<<<<<<<<<
17292 * pp.postprocessAdvectiveVelocityPointEval(nPoints,
17293 * velocity.shape[velocity.ndim-1],
17294*/
17295 __pyx_t_1 = __pyx_f_5numpy_7ndarray_4size___get__(__pyx_v_velocity);
17296
17297 __pyx_t_2 = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]);
17298
17299 if (unlikely(__pyx_t_2 == 0)) {
17300 PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
17301 __PYX_ERR(0, 1214, __pyx_L1_error)
17302 }
17303 else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_t_2 == (npy_intp)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_1))) {
17304 PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
17305 __PYX_ERR(0, 1214, __pyx_L1_error)
17306 }
17307 __pyx_v_nPoints = __Pyx_div_npy_intp(__pyx_t_1, __pyx_t_2, 0);
17308
17309
17310
17311 /* "cpostprocessing.pyx":1215
17312 * np.ndarray velocity):
17313 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1]
17314 * pp.postprocessAdvectiveVelocityPointEval(nPoints, # <<<<<<<<<<<<<<
17315 * velocity.shape[velocity.ndim-1],
17316 * updateCoef,
17317*/
17318 postprocessAdvectiveVelocityPointEval(__pyx_v_nPoints, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]), __pyx_v_updateCoef, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_advectiveVelocity)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity)));
17319
17320 /* "cpostprocessing.pyx":1211
17321 * <double*>(residual.data))
17322 *
17323 * def updateAdvectiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
17324 * np.ndarray advectiveVelocity,
17325 * np.ndarray velocity):
17326*/
17327
17328 /* function exit code */
17329 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17330 goto __pyx_L0;
17331 __pyx_L1_error:;
17332 __Pyx_AddTraceback("cpostprocessing.updateAdvectiveVelocityPointEval", __pyx_clineno, __pyx_lineno, __pyx_filename);
17333 __pyx_r = NULL;
17334 __pyx_L0:;
17335
17336 __Pyx_XGIVEREF(__pyx_r);
17337 __Pyx_RefNannyFinishContext();
17338 return __pyx_r;
17339}
17340
17341/* "cpostprocessing.pyx":1221
17342 * <double*>(velocity.data))
17343 *
17344 * def updateDiffusiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
17345 * np.ndarray diffusionTensor,
17346 * np.ndarray grad_phi,
17347*/
17348
17349/* Python wrapper */
17350static PyObject *__pyx_pw_15cpostprocessing_99updateDiffusiveVelocityPointEval(PyObject *__pyx_self,
17351#if CYTHON_VECTORCALL
17352PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17353#else
17354PyObject *__pyx_args, PyObject *__pyx_kwds
17355#endif
17356); /*proto*/
17357static PyMethodDef __pyx_mdef_15cpostprocessing_99updateDiffusiveVelocityPointEval = {"updateDiffusiveVelocityPointEval", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_99updateDiffusiveVelocityPointEval, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17358static PyObject *__pyx_pw_15cpostprocessing_99updateDiffusiveVelocityPointEval(PyObject *__pyx_self,
17359#if CYTHON_VECTORCALL
17360PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17361#else
17362PyObject *__pyx_args, PyObject *__pyx_kwds
17363#endif
17364) {
17365 double __pyx_v_updateCoef;
17366 PyArrayObject *__pyx_v_diffusionTensor = 0;
17367 PyArrayObject *__pyx_v_grad_phi = 0;
17368 PyArrayObject *__pyx_v_velocity = 0;
17369 #if !CYTHON_VECTORCALL
17370 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17371 #endif
17372 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17373 PyObject* values[4] = {0,0,0,0};
17374 int __pyx_lineno = 0;
17375 const char *__pyx_filename = NULL;
17376 int __pyx_clineno = 0;
17377 PyObject *__pyx_r = 0;
17378 __Pyx_RefNannyDeclarations
17379 __Pyx_RefNannySetupContext("updateDiffusiveVelocityPointEval (wrapper)", 0);
17380 #if !CYTHON_VECTORCALL
17381 #if CYTHON_ASSUME_SAFE_SIZE
17382 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17383 #else
17384 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17385 #endif
17386 #endif
17387 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17388 {
17389 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_updateCoef,&__pyx_mstate_global->__pyx_n_u_diffusionTensor,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_velocity,0};
17390 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17391 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1221, __pyx_L3_error)
17392 if (__pyx_kwds_len > 0) {
17393 switch (__pyx_nargs) {
17394 case 4:
17395 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17396 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1221, __pyx_L3_error)
17397 CYTHON_FALLTHROUGH;
17398 case 3:
17399 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17400 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1221, __pyx_L3_error)
17401 CYTHON_FALLTHROUGH;
17402 case 2:
17403 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17404 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1221, __pyx_L3_error)
17405 CYTHON_FALLTHROUGH;
17406 case 1:
17407 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17408 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1221, __pyx_L3_error)
17409 CYTHON_FALLTHROUGH;
17410 case 0: break;
17411 default: goto __pyx_L5_argtuple_error;
17412 }
17413 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17414 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateDiffusiveVelocityPointEval", 0) < (0)) __PYX_ERR(0, 1221, __pyx_L3_error)
17415 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
17416 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateDiffusiveVelocityPointEval", 1, 4, 4, i); __PYX_ERR(0, 1221, __pyx_L3_error) }
17417 }
17418 } else if (unlikely(__pyx_nargs != 4)) {
17419 goto __pyx_L5_argtuple_error;
17420 } else {
17421 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17422 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1221, __pyx_L3_error)
17423 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17424 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1221, __pyx_L3_error)
17425 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17426 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1221, __pyx_L3_error)
17427 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17428 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1221, __pyx_L3_error)
17429 }
17430 __pyx_v_updateCoef = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_updateCoef == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1221, __pyx_L3_error)
17431 __pyx_v_diffusionTensor = ((PyArrayObject *)values[1]);
17432 __pyx_v_grad_phi = ((PyArrayObject *)values[2]);
17433 __pyx_v_velocity = ((PyArrayObject *)values[3]);
17434 }
17435 goto __pyx_L6_skip;
17436 __pyx_L5_argtuple_error:;
17437 __Pyx_RaiseArgtupleInvalid("updateDiffusiveVelocityPointEval", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1221, __pyx_L3_error)
17438 __pyx_L6_skip:;
17439 goto __pyx_L4_argument_unpacking_done;
17440 __pyx_L3_error:;
17441 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17442 Py_XDECREF(values[__pyx_temp]);
17443 }
17444 __Pyx_AddTraceback("cpostprocessing.updateDiffusiveVelocityPointEval", __pyx_clineno, __pyx_lineno, __pyx_filename);
17445 __Pyx_RefNannyFinishContext();
17446 return NULL;
17447 __pyx_L4_argument_unpacking_done:;
17448 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusionTensor), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "diffusionTensor", 0))) __PYX_ERR(0, 1222, __pyx_L1_error)
17449 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 1223, __pyx_L1_error)
17450 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 1224, __pyx_L1_error)
17451 __pyx_r = __pyx_pf_15cpostprocessing_98updateDiffusiveVelocityPointEval(__pyx_self, __pyx_v_updateCoef, __pyx_v_diffusionTensor, __pyx_v_grad_phi, __pyx_v_velocity);
17452
17453 /* function exit code */
17454 goto __pyx_L0;
17455 __pyx_L1_error:;
17456 __pyx_r = NULL;
17457 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17458 Py_XDECREF(values[__pyx_temp]);
17459 }
17460 goto __pyx_L7_cleaned_up;
17461 __pyx_L0:;
17462 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17463 Py_XDECREF(values[__pyx_temp]);
17464 }
17465 __pyx_L7_cleaned_up:;
17466
17467 __Pyx_RefNannyFinishContext();
17468 return __pyx_r;
17469}
17470
17471static PyObject *__pyx_pf_15cpostprocessing_98updateDiffusiveVelocityPointEval(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity) {
17472 int __pyx_v_nPoints;
17473 PyObject *__pyx_r = NULL;
17474 __Pyx_RefNannyDeclarations
17475 npy_intp __pyx_t_1;
17476 npy_intp __pyx_t_2;
17477 int __pyx_lineno = 0;
17478 const char *__pyx_filename = NULL;
17479 int __pyx_clineno = 0;
17480 __Pyx_RefNannySetupContext("updateDiffusiveVelocityPointEval", 0);
17481
17482 /* "cpostprocessing.pyx":1225
17483 * np.ndarray grad_phi,
17484 * np.ndarray velocity):
17485 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1] # <<<<<<<<<<<<<<
17486 * pp.postprocessDiffusiveVelocityPointEval(nPoints,
17487 * velocity.shape[velocity.ndim-1],
17488*/
17489 __pyx_t_1 = __pyx_f_5numpy_7ndarray_4size___get__(__pyx_v_velocity);
17490
17491 __pyx_t_2 = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]);
17492
17493 if (unlikely(__pyx_t_2 == 0)) {
17494 PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
17495 __PYX_ERR(0, 1225, __pyx_L1_error)
17496 }
17497 else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_t_2 == (npy_intp)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_1))) {
17498 PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
17499 __PYX_ERR(0, 1225, __pyx_L1_error)
17500 }
17501 __pyx_v_nPoints = __Pyx_div_npy_intp(__pyx_t_1, __pyx_t_2, 0);
17502
17503
17504
17505 /* "cpostprocessing.pyx":1226
17506 * np.ndarray velocity):
17507 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1]
17508 * pp.postprocessDiffusiveVelocityPointEval(nPoints, # <<<<<<<<<<<<<<
17509 * velocity.shape[velocity.ndim-1],
17510 * updateCoef,
17511*/
17512 postprocessDiffusiveVelocityPointEval(__pyx_v_nPoints, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]), __pyx_v_updateCoef, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_diffusionTensor)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity)));
17513
17514 /* "cpostprocessing.pyx":1221
17515 * <double*>(velocity.data))
17516 *
17517 * def updateDiffusiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
17518 * np.ndarray diffusionTensor,
17519 * np.ndarray grad_phi,
17520*/
17521
17522 /* function exit code */
17523 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17524 goto __pyx_L0;
17525 __pyx_L1_error:;
17526 __Pyx_AddTraceback("cpostprocessing.updateDiffusiveVelocityPointEval", __pyx_clineno, __pyx_lineno, __pyx_filename);
17527 __pyx_r = NULL;
17528 __pyx_L0:;
17529
17530 __Pyx_XGIVEREF(__pyx_r);
17531 __Pyx_RefNannyFinishContext();
17532 return __pyx_r;
17533}
17534
17535/* "cpostprocessing.pyx":1233
17536 * <double*>(velocity.data))
17537 *
17538 * def updateDiffusiveVelocityPointEval_sd(double updateCoef, # <<<<<<<<<<<<<<
17539 * np.ndarray rowptr,
17540 * np.ndarray colind,
17541*/
17542
17543/* Python wrapper */
17544static PyObject *__pyx_pw_15cpostprocessing_101updateDiffusiveVelocityPointEval_sd(PyObject *__pyx_self,
17545#if CYTHON_VECTORCALL
17546PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17547#else
17548PyObject *__pyx_args, PyObject *__pyx_kwds
17549#endif
17550); /*proto*/
17551static PyMethodDef __pyx_mdef_15cpostprocessing_101updateDiffusiveVelocityPointEval_sd = {"updateDiffusiveVelocityPointEval_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_101updateDiffusiveVelocityPointEval_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17552static PyObject *__pyx_pw_15cpostprocessing_101updateDiffusiveVelocityPointEval_sd(PyObject *__pyx_self,
17553#if CYTHON_VECTORCALL
17554PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17555#else
17556PyObject *__pyx_args, PyObject *__pyx_kwds
17557#endif
17558) {
17559 double __pyx_v_updateCoef;
17560 PyArrayObject *__pyx_v_rowptr = 0;
17561 PyArrayObject *__pyx_v_colind = 0;
17562 PyArrayObject *__pyx_v_diffusionTensor = 0;
17563 PyArrayObject *__pyx_v_grad_phi = 0;
17564 PyArrayObject *__pyx_v_velocity = 0;
17565 #if !CYTHON_VECTORCALL
17566 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17567 #endif
17568 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17569 PyObject* values[6] = {0,0,0,0,0,0};
17570 int __pyx_lineno = 0;
17571 const char *__pyx_filename = NULL;
17572 int __pyx_clineno = 0;
17573 PyObject *__pyx_r = 0;
17574 __Pyx_RefNannyDeclarations
17575 __Pyx_RefNannySetupContext("updateDiffusiveVelocityPointEval_sd (wrapper)", 0);
17576 #if !CYTHON_VECTORCALL
17577 #if CYTHON_ASSUME_SAFE_SIZE
17578 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17579 #else
17580 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17581 #endif
17582 #endif
17583 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17584 {
17585 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_updateCoef,&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_diffusionTensor,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_velocity,0};
17586 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17587 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1233, __pyx_L3_error)
17588 if (__pyx_kwds_len > 0) {
17589 switch (__pyx_nargs) {
17590 case 6:
17591 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
17592 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1233, __pyx_L3_error)
17593 CYTHON_FALLTHROUGH;
17594 case 5:
17595 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
17596 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1233, __pyx_L3_error)
17597 CYTHON_FALLTHROUGH;
17598 case 4:
17599 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17600 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1233, __pyx_L3_error)
17601 CYTHON_FALLTHROUGH;
17602 case 3:
17603 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17604 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1233, __pyx_L3_error)
17605 CYTHON_FALLTHROUGH;
17606 case 2:
17607 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17608 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1233, __pyx_L3_error)
17609 CYTHON_FALLTHROUGH;
17610 case 1:
17611 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17612 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1233, __pyx_L3_error)
17613 CYTHON_FALLTHROUGH;
17614 case 0: break;
17615 default: goto __pyx_L5_argtuple_error;
17616 }
17617 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17618 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateDiffusiveVelocityPointEval_sd", 0) < (0)) __PYX_ERR(0, 1233, __pyx_L3_error)
17619 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
17620 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateDiffusiveVelocityPointEval_sd", 1, 6, 6, i); __PYX_ERR(0, 1233, __pyx_L3_error) }
17621 }
17622 } else if (unlikely(__pyx_nargs != 6)) {
17623 goto __pyx_L5_argtuple_error;
17624 } else {
17625 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17626 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1233, __pyx_L3_error)
17627 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17628 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1233, __pyx_L3_error)
17629 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17630 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1233, __pyx_L3_error)
17631 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
17632 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1233, __pyx_L3_error)
17633 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
17634 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1233, __pyx_L3_error)
17635 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
17636 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1233, __pyx_L3_error)
17637 }
17638 __pyx_v_updateCoef = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_updateCoef == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1233, __pyx_L3_error)
17639 __pyx_v_rowptr = ((PyArrayObject *)values[1]);
17640 __pyx_v_colind = ((PyArrayObject *)values[2]);
17641 __pyx_v_diffusionTensor = ((PyArrayObject *)values[3]);
17642 __pyx_v_grad_phi = ((PyArrayObject *)values[4]);
17643 __pyx_v_velocity = ((PyArrayObject *)values[5]);
17644 }
17645 goto __pyx_L6_skip;
17646 __pyx_L5_argtuple_error:;
17647 __Pyx_RaiseArgtupleInvalid("updateDiffusiveVelocityPointEval_sd", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 1233, __pyx_L3_error)
17648 __pyx_L6_skip:;
17649 goto __pyx_L4_argument_unpacking_done;
17650 __pyx_L3_error:;
17651 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17652 Py_XDECREF(values[__pyx_temp]);
17653 }
17654 __Pyx_AddTraceback("cpostprocessing.updateDiffusiveVelocityPointEval_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
17655 __Pyx_RefNannyFinishContext();
17656 return NULL;
17657 __pyx_L4_argument_unpacking_done:;
17658 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 1234, __pyx_L1_error)
17659 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 1235, __pyx_L1_error)
17660 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diffusionTensor), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "diffusionTensor", 0))) __PYX_ERR(0, 1236, __pyx_L1_error)
17661 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 1237, __pyx_L1_error)
17662 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "velocity", 0))) __PYX_ERR(0, 1238, __pyx_L1_error)
17663 __pyx_r = __pyx_pf_15cpostprocessing_100updateDiffusiveVelocityPointEval_sd(__pyx_self, __pyx_v_updateCoef, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_diffusionTensor, __pyx_v_grad_phi, __pyx_v_velocity);
17664
17665 /* function exit code */
17666 goto __pyx_L0;
17667 __pyx_L1_error:;
17668 __pyx_r = NULL;
17669 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17670 Py_XDECREF(values[__pyx_temp]);
17671 }
17672 goto __pyx_L7_cleaned_up;
17673 __pyx_L0:;
17674 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17675 Py_XDECREF(values[__pyx_temp]);
17676 }
17677 __pyx_L7_cleaned_up:;
17678
17679 __Pyx_RefNannyFinishContext();
17680 return __pyx_r;
17681}
17682
17683static PyObject *__pyx_pf_15cpostprocessing_100updateDiffusiveVelocityPointEval_sd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_updateCoef, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_diffusionTensor, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_velocity) {
17684 int __pyx_v_nPoints;
17685 PyObject *__pyx_r = NULL;
17686 __Pyx_RefNannyDeclarations
17687 npy_intp __pyx_t_1;
17688 npy_intp __pyx_t_2;
17689 int __pyx_lineno = 0;
17690 const char *__pyx_filename = NULL;
17691 int __pyx_clineno = 0;
17692 __Pyx_RefNannySetupContext("updateDiffusiveVelocityPointEval_sd", 0);
17693
17694 /* "cpostprocessing.pyx":1239
17695 * np.ndarray grad_phi,
17696 * np.ndarray velocity):
17697 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1] # <<<<<<<<<<<<<<
17698 * pp.postprocessDiffusiveVelocityPointEval_sd(nPoints,
17699 * velocity.shape[velocity.ndim-1],
17700*/
17701 __pyx_t_1 = __pyx_f_5numpy_7ndarray_4size___get__(__pyx_v_velocity);
17702
17703 __pyx_t_2 = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]);
17704
17705 if (unlikely(__pyx_t_2 == 0)) {
17706 PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
17707 __PYX_ERR(0, 1239, __pyx_L1_error)
17708 }
17709 else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_t_2 == (npy_intp)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_1))) {
17710 PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
17711 __PYX_ERR(0, 1239, __pyx_L1_error)
17712 }
17713 __pyx_v_nPoints = __Pyx_div_npy_intp(__pyx_t_1, __pyx_t_2, 0);
17714
17715
17716
17717 /* "cpostprocessing.pyx":1240
17718 * np.ndarray velocity):
17719 * cdef int nPoints = velocity.size//velocity.shape[velocity.ndim-1]
17720 * pp.postprocessDiffusiveVelocityPointEval_sd(nPoints, # <<<<<<<<<<<<<<
17721 * velocity.shape[velocity.ndim-1],
17722 * updateCoef,
17723*/
17724 postprocessDiffusiveVelocityPointEval_sd(__pyx_v_nPoints, (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_velocity)[(__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_velocity) - 1)]), __pyx_v_updateCoef, ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_diffusionTensor)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_velocity)));
17725
17726 /* "cpostprocessing.pyx":1233
17727 * <double*>(velocity.data))
17728 *
17729 * def updateDiffusiveVelocityPointEval_sd(double updateCoef, # <<<<<<<<<<<<<<
17730 * np.ndarray rowptr,
17731 * np.ndarray colind,
17732*/
17733
17734 /* function exit code */
17735 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17736 goto __pyx_L0;
17737 __pyx_L1_error:;
17738 __Pyx_AddTraceback("cpostprocessing.updateDiffusiveVelocityPointEval_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
17739 __pyx_r = NULL;
17740 __pyx_L0:;
17741
17742 __Pyx_XGIVEREF(__pyx_r);
17743 __Pyx_RefNannyFinishContext();
17744 return __pyx_r;
17745}
17746
17747/* "cpostprocessing.pyx":1249
17748 * <double*>(velocity.data))
17749 *
17750 * def calculateElementResidualPWL(np.ndarray alpha, # <<<<<<<<<<<<<<
17751 * np.ndarray elementResidual,
17752 * np.ndarray elementResidualPWL):
17753*/
17754
17755/* Python wrapper */
17756static PyObject *__pyx_pw_15cpostprocessing_103calculateElementResidualPWL(PyObject *__pyx_self,
17757#if CYTHON_VECTORCALL
17758PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17759#else
17760PyObject *__pyx_args, PyObject *__pyx_kwds
17761#endif
17762); /*proto*/
17763static PyMethodDef __pyx_mdef_15cpostprocessing_103calculateElementResidualPWL = {"calculateElementResidualPWL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_103calculateElementResidualPWL, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17764static PyObject *__pyx_pw_15cpostprocessing_103calculateElementResidualPWL(PyObject *__pyx_self,
17765#if CYTHON_VECTORCALL
17766PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17767#else
17768PyObject *__pyx_args, PyObject *__pyx_kwds
17769#endif
17770) {
17771 PyArrayObject *__pyx_v_alpha = 0;
17772 PyArrayObject *__pyx_v_elementResidual = 0;
17773 PyArrayObject *__pyx_v_elementResidualPWL = 0;
17774 #if !CYTHON_VECTORCALL
17775 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17776 #endif
17777 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17778 PyObject* values[3] = {0,0,0};
17779 int __pyx_lineno = 0;
17780 const char *__pyx_filename = NULL;
17781 int __pyx_clineno = 0;
17782 PyObject *__pyx_r = 0;
17783 __Pyx_RefNannyDeclarations
17784 __Pyx_RefNannySetupContext("calculateElementResidualPWL (wrapper)", 0);
17785 #if !CYTHON_VECTORCALL
17786 #if CYTHON_ASSUME_SAFE_SIZE
17787 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17788 #else
17789 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17790 #endif
17791 #endif
17792 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17793 {
17794 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_alpha,&__pyx_mstate_global->__pyx_n_u_elementResidual,&__pyx_mstate_global->__pyx_n_u_elementResidualPWL,0};
17795 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17796 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1249, __pyx_L3_error)
17797 if (__pyx_kwds_len > 0) {
17798 switch (__pyx_nargs) {
17799 case 3:
17800 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17801 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1249, __pyx_L3_error)
17802 CYTHON_FALLTHROUGH;
17803 case 2:
17804 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17805 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1249, __pyx_L3_error)
17806 CYTHON_FALLTHROUGH;
17807 case 1:
17808 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17809 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1249, __pyx_L3_error)
17810 CYTHON_FALLTHROUGH;
17811 case 0: break;
17812 default: goto __pyx_L5_argtuple_error;
17813 }
17814 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17815 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateElementResidualPWL", 0) < (0)) __PYX_ERR(0, 1249, __pyx_L3_error)
17816 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
17817 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateElementResidualPWL", 1, 3, 3, i); __PYX_ERR(0, 1249, __pyx_L3_error) }
17818 }
17819 } else if (unlikely(__pyx_nargs != 3)) {
17820 goto __pyx_L5_argtuple_error;
17821 } else {
17822 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17823 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1249, __pyx_L3_error)
17824 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17825 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1249, __pyx_L3_error)
17826 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17827 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1249, __pyx_L3_error)
17828 }
17829 __pyx_v_alpha = ((PyArrayObject *)values[0]);
17830 __pyx_v_elementResidual = ((PyArrayObject *)values[1]);
17831 __pyx_v_elementResidualPWL = ((PyArrayObject *)values[2]);
17832 }
17833 goto __pyx_L6_skip;
17834 __pyx_L5_argtuple_error:;
17835 __Pyx_RaiseArgtupleInvalid("calculateElementResidualPWL", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1249, __pyx_L3_error)
17836 __pyx_L6_skip:;
17837 goto __pyx_L4_argument_unpacking_done;
17838 __pyx_L3_error:;
17839 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17840 Py_XDECREF(values[__pyx_temp]);
17841 }
17842 __Pyx_AddTraceback("cpostprocessing.calculateElementResidualPWL", __pyx_clineno, __pyx_lineno, __pyx_filename);
17843 __Pyx_RefNannyFinishContext();
17844 return NULL;
17845 __pyx_L4_argument_unpacking_done:;
17846 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alpha), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "alpha", 0))) __PYX_ERR(0, 1249, __pyx_L1_error)
17847 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidual", 0))) __PYX_ERR(0, 1250, __pyx_L1_error)
17848 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementResidualPWL), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementResidualPWL", 0))) __PYX_ERR(0, 1251, __pyx_L1_error)
17849 __pyx_r = __pyx_pf_15cpostprocessing_102calculateElementResidualPWL(__pyx_self, __pyx_v_alpha, __pyx_v_elementResidual, __pyx_v_elementResidualPWL);
17850
17851 /* function exit code */
17852 goto __pyx_L0;
17853 __pyx_L1_error:;
17854 __pyx_r = NULL;
17855 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17856 Py_XDECREF(values[__pyx_temp]);
17857 }
17858 goto __pyx_L7_cleaned_up;
17859 __pyx_L0:;
17860 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17861 Py_XDECREF(values[__pyx_temp]);
17862 }
17863 __pyx_L7_cleaned_up:;
17864 __Pyx_RefNannyFinishContext();
17865 return __pyx_r;
17866}
17867
17868static PyObject *__pyx_pf_15cpostprocessing_102calculateElementResidualPWL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_alpha, PyArrayObject *__pyx_v_elementResidual, PyArrayObject *__pyx_v_elementResidualPWL) {
17869 PyObject *__pyx_r = NULL;
17870 __Pyx_RefNannyDeclarations
17871 __Pyx_RefNannySetupContext("calculateElementResidualPWL", 0);
17872
17873 /* "cpostprocessing.pyx":1252
17874 * np.ndarray elementResidual,
17875 * np.ndarray elementResidualPWL):
17876 * pp.calculateElementResidualPWL(elementResidual.shape[0], # <<<<<<<<<<<<<<
17877 * elementResidual.shape[1],
17878 * elementResidualPWL.shape[1],
17879*/
17880 calculateElementResidualPWL((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementResidual)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementResidual)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_elementResidualPWL)[1]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_alpha)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementResidualPWL)));
17881
17882 /* "cpostprocessing.pyx":1249
17883 * <double*>(velocity.data))
17884 *
17885 * def calculateElementResidualPWL(np.ndarray alpha, # <<<<<<<<<<<<<<
17886 * np.ndarray elementResidual,
17887 * np.ndarray elementResidualPWL):
17888*/
17889
17890 /* function exit code */
17891 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17892 __Pyx_XGIVEREF(__pyx_r);
17893 __Pyx_RefNannyFinishContext();
17894 return __pyx_r;
17895}
17896
17897/* "cpostprocessing.pyx":1259
17898 * <double*>(elementResidualPWL.data))
17899 *
17900 * def copyElementBoundaryVelocityToParVec(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
17901 * np.ndarray[int, ndim=2] permutations,
17902 * np.ndarray ebq_v_par_local):
17903*/
17904
17905/* Python wrapper */
17906static PyObject *__pyx_pw_15cpostprocessing_105copyElementBoundaryVelocityToParVec(PyObject *__pyx_self,
17907#if CYTHON_VECTORCALL
17908PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17909#else
17910PyObject *__pyx_args, PyObject *__pyx_kwds
17911#endif
17912); /*proto*/
17913static PyMethodDef __pyx_mdef_15cpostprocessing_105copyElementBoundaryVelocityToParVec = {"copyElementBoundaryVelocityToParVec", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_105copyElementBoundaryVelocityToParVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17914static PyObject *__pyx_pw_15cpostprocessing_105copyElementBoundaryVelocityToParVec(PyObject *__pyx_self,
17915#if CYTHON_VECTORCALL
17916PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17917#else
17918PyObject *__pyx_args, PyObject *__pyx_kwds
17919#endif
17920) {
17921 PyArrayObject *__pyx_v_ebq_velocity = 0;
17922 PyArrayObject *__pyx_v_permutations = 0;
17923 PyArrayObject *__pyx_v_ebq_v_par_local = 0;
17924 #if !CYTHON_VECTORCALL
17925 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17926 #endif
17927 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17928 PyObject* values[3] = {0,0,0};
17929 int __pyx_lineno = 0;
17930 const char *__pyx_filename = NULL;
17931 int __pyx_clineno = 0;
17932 PyObject *__pyx_r = 0;
17933 __Pyx_RefNannyDeclarations
17934 __Pyx_RefNannySetupContext("copyElementBoundaryVelocityToParVec (wrapper)", 0);
17935 #if !CYTHON_VECTORCALL
17936 #if CYTHON_ASSUME_SAFE_SIZE
17937 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17938 #else
17939 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17940 #endif
17941 #endif
17942 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17943 {
17944 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ebq_velocity,&__pyx_mstate_global->__pyx_n_u_permutations,&__pyx_mstate_global->__pyx_n_u_ebq_v_par_local,0};
17945 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
17946 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1259, __pyx_L3_error)
17947 if (__pyx_kwds_len > 0) {
17948 switch (__pyx_nargs) {
17949 case 3:
17950 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17951 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1259, __pyx_L3_error)
17952 CYTHON_FALLTHROUGH;
17953 case 2:
17954 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17955 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1259, __pyx_L3_error)
17956 CYTHON_FALLTHROUGH;
17957 case 1:
17958 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17959 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1259, __pyx_L3_error)
17960 CYTHON_FALLTHROUGH;
17961 case 0: break;
17962 default: goto __pyx_L5_argtuple_error;
17963 }
17964 const Py_ssize_t kwd_pos_args = __pyx_nargs;
17965 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "copyElementBoundaryVelocityToParVec", 0) < (0)) __PYX_ERR(0, 1259, __pyx_L3_error)
17966 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
17967 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("copyElementBoundaryVelocityToParVec", 1, 3, 3, i); __PYX_ERR(0, 1259, __pyx_L3_error) }
17968 }
17969 } else if (unlikely(__pyx_nargs != 3)) {
17970 goto __pyx_L5_argtuple_error;
17971 } else {
17972 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
17973 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1259, __pyx_L3_error)
17974 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
17975 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1259, __pyx_L3_error)
17976 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
17977 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1259, __pyx_L3_error)
17978 }
17979 __pyx_v_ebq_velocity = ((PyArrayObject *)values[0]);
17980 __pyx_v_permutations = ((PyArrayObject *)values[1]);
17981 __pyx_v_ebq_v_par_local = ((PyArrayObject *)values[2]);
17982 }
17983 goto __pyx_L6_skip;
17984 __pyx_L5_argtuple_error:;
17985 __Pyx_RaiseArgtupleInvalid("copyElementBoundaryVelocityToParVec", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1259, __pyx_L3_error)
17986 __pyx_L6_skip:;
17987 goto __pyx_L4_argument_unpacking_done;
17988 __pyx_L3_error:;
17989 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17990 Py_XDECREF(values[__pyx_temp]);
17991 }
17992 __Pyx_AddTraceback("cpostprocessing.copyElementBoundaryVelocityToParVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
17993 __Pyx_RefNannyFinishContext();
17994 return NULL;
17995 __pyx_L4_argument_unpacking_done:;
17996 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 1259, __pyx_L1_error)
17997 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_permutations), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "permutations", 0))) __PYX_ERR(0, 1260, __pyx_L1_error)
17998 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v_par_local", 0))) __PYX_ERR(0, 1261, __pyx_L1_error)
17999 __pyx_r = __pyx_pf_15cpostprocessing_104copyElementBoundaryVelocityToParVec(__pyx_self, __pyx_v_ebq_velocity, __pyx_v_permutations, __pyx_v_ebq_v_par_local);
18000
18001 /* function exit code */
18002 goto __pyx_L0;
18003 __pyx_L1_error:;
18004 __pyx_r = NULL;
18005 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18006 Py_XDECREF(values[__pyx_temp]);
18007 }
18008 goto __pyx_L7_cleaned_up;
18009 __pyx_L0:;
18010 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18011 Py_XDECREF(values[__pyx_temp]);
18012 }
18013 __pyx_L7_cleaned_up:;
18014 __Pyx_RefNannyFinishContext();
18015 return __pyx_r;
18016}
18017
18018static PyObject *__pyx_pf_15cpostprocessing_104copyElementBoundaryVelocityToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local) {
18019 int __pyx_v_ebN;
18020 int __pyx_v_k;
18021 int __pyx_v_I;
18022 int __pyx_v_nElementBoundaries;
18023 int __pyx_v_nQuadraturePoints;
18024 int __pyx_v_nSpace;
18025 __Pyx_LocalBuf_ND __pyx_pybuffernd_permutations;
18026 __Pyx_Buffer __pyx_pybuffer_permutations;
18027 PyObject *__pyx_r = NULL;
18028 __Pyx_RefNannyDeclarations
18029 int __pyx_t_1;
18030 int __pyx_t_2;
18031 int __pyx_t_3;
18032 int __pyx_t_4;
18033 int __pyx_t_5;
18034 int __pyx_t_6;
18035 int __pyx_t_7;
18036 int __pyx_t_8;
18037 int __pyx_t_9;
18038 PyObject *__pyx_t_10 = NULL;
18039 PyObject *__pyx_t_11 = NULL;
18040 PyObject *__pyx_t_12 = NULL;
18041 PyObject *__pyx_t_13 = NULL;
18042 Py_ssize_t __pyx_t_14;
18043 Py_ssize_t __pyx_t_15;
18044 int __pyx_t_16;
18045 PyObject *__pyx_t_17 = NULL;
18046 int __pyx_lineno = 0;
18047 const char *__pyx_filename = NULL;
18048 int __pyx_clineno = 0;
18049 __Pyx_RefNannySetupContext("copyElementBoundaryVelocityToParVec", 0);
18050 __pyx_pybuffer_permutations.pybuffer.buf = NULL;
18051 __pyx_pybuffer_permutations.refcount = 0;
18052 __pyx_pybuffernd_permutations.data = NULL;
18053 __pyx_pybuffernd_permutations.rcbuffer = &__pyx_pybuffer_permutations;
18054 {
18055 __Pyx_BufFmt_StackElem __pyx_stack[1];
18056 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer, (PyObject*)__pyx_v_permutations, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1259, __pyx_L1_error)
18057 }
18058 __pyx_pybuffernd_permutations.diminfo[0].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_permutations.diminfo[0].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_permutations.diminfo[1].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_permutations.diminfo[1].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[1];
18059
18060 /* "cpostprocessing.pyx":1265
18061 * cdef int k
18062 * cdef int I
18063 * cdef int nElementBoundaries=ebq_v_par_local.shape[0] # <<<<<<<<<<<<<<
18064 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18065 * cdef int nSpace=ebq_v_par_local.shape[2]
18066*/
18067 __pyx_v_nElementBoundaries = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[0]);
18068
18069 /* "cpostprocessing.pyx":1266
18070 * cdef int I
18071 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18072 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1] # <<<<<<<<<<<<<<
18073 * cdef int nSpace=ebq_v_par_local.shape[2]
18074 * for ebN in range(nElementBoundaries):
18075*/
18076 __pyx_v_nQuadraturePoints = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[1]);
18077
18078 /* "cpostprocessing.pyx":1267
18079 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18080 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18081 * cdef int nSpace=ebq_v_par_local.shape[2] # <<<<<<<<<<<<<<
18082 * for ebN in range(nElementBoundaries):
18083 * for k in range(nQuadraturePoints):
18084*/
18085 __pyx_v_nSpace = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[2]);
18086
18087 /* "cpostprocessing.pyx":1268
18088 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18089 * cdef int nSpace=ebq_v_par_local.shape[2]
18090 * for ebN in range(nElementBoundaries): # <<<<<<<<<<<<<<
18091 * for k in range(nQuadraturePoints):
18092 * for I in range(nSpace):
18093*/
18094
18095 __pyx_t_1 = __pyx_v_nElementBoundaries;
18096 __pyx_t_2 = __pyx_t_1;
18097
18098 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
18099 __pyx_v_ebN = __pyx_t_3;
18100
18101 /* "cpostprocessing.pyx":1269
18102 * cdef int nSpace=ebq_v_par_local.shape[2]
18103 * for ebN in range(nElementBoundaries):
18104 * for k in range(nQuadraturePoints): # <<<<<<<<<<<<<<
18105 * for I in range(nSpace):
18106 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I]
18107*/
18108
18109 __pyx_t_4 = __pyx_v_nQuadraturePoints;
18110 __pyx_t_5 = __pyx_t_4;
18111
18112 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
18113 __pyx_v_k = __pyx_t_6;
18114
18115 /* "cpostprocessing.pyx":1270
18116 * for ebN in range(nElementBoundaries):
18117 * for k in range(nQuadraturePoints):
18118 * for I in range(nSpace): # <<<<<<<<<<<<<<
18119 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I]
18120 *
18121*/
18122
18123 __pyx_t_7 = __pyx_v_nSpace;
18124 __pyx_t_8 = __pyx_t_7;
18125
18126 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
18127 __pyx_v_I = __pyx_t_9;
18128
18129 /* "cpostprocessing.pyx":1271
18130 * for k in range(nQuadraturePoints):
18131 * for I in range(nSpace):
18132 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I] # <<<<<<<<<<<<<<
18133 *
18134 * def addAverageToParVec(np.ndarray ebq_velocityAverage,
18135*/
18136 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1271, __pyx_L1_error)
18137 __Pyx_GOTREF(__pyx_t_10);
18138 __pyx_t_11 = __Pyx_PyLong_From_int(__pyx_v_k); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1271, __pyx_L1_error)
18139 __Pyx_GOTREF(__pyx_t_11);
18140 __pyx_t_12 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error)
18141 __Pyx_GOTREF(__pyx_t_12);
18142 __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1271, __pyx_L1_error)
18143 __Pyx_GOTREF(__pyx_t_13);
18144 __Pyx_GIVEREF(__pyx_t_10);
18145 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_10) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18146 __Pyx_GIVEREF(__pyx_t_11);
18147 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_11) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18148 __Pyx_GIVEREF(__pyx_t_12);
18149 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_12) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18150 __pyx_t_10 = 0;
18151 __pyx_t_11 = 0;
18152 __pyx_t_12 = 0;
18153 __pyx_t_12 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ebq_velocity), __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error)
18154 __Pyx_GOTREF(__pyx_t_12);
18155 __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
18156 __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1271, __pyx_L1_error)
18157 __Pyx_GOTREF(__pyx_t_13);
18158 __pyx_t_14 = __pyx_v_ebN;
18159 __pyx_t_15 = __pyx_v_k;
18160 __pyx_t_16 = -1;
18161 if (__pyx_t_14 < 0) {
18162 __pyx_t_14 += __pyx_pybuffernd_permutations.diminfo[0].shape;
18163 if (unlikely(__pyx_t_14 < 0)) __pyx_t_16 = 0;
18164 } else if (unlikely(__pyx_t_14 >= __pyx_pybuffernd_permutations.diminfo[0].shape)) __pyx_t_16 = 0;
18165 if (__pyx_t_15 < 0) {
18166 __pyx_t_15 += __pyx_pybuffernd_permutations.diminfo[1].shape;
18167 if (unlikely(__pyx_t_15 < 0)) __pyx_t_16 = 1;
18168 } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_permutations.diminfo[1].shape)) __pyx_t_16 = 1;
18169 if (unlikely(__pyx_t_16 != -1)) {
18170 __Pyx_RaiseBufferIndexError(__pyx_t_16);
18171 __PYX_ERR(0, 1271, __pyx_L1_error)
18172 }
18173 __pyx_t_11 = __Pyx_PyLong_From_int((*__Pyx_BufPtrStrided2d(int *, __pyx_pybuffernd_permutations.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_permutations.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_permutations.diminfo[1].strides))); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1271, __pyx_L1_error)
18174 __Pyx_GOTREF(__pyx_t_11);
18175 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1271, __pyx_L1_error)
18176 __Pyx_GOTREF(__pyx_t_10);
18177 __pyx_t_17 = PyTuple_New(3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1271, __pyx_L1_error)
18178 __Pyx_GOTREF(__pyx_t_17);
18179 __Pyx_GIVEREF(__pyx_t_13);
18180 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18181 __Pyx_GIVEREF(__pyx_t_11);
18182 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_11) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18183 __Pyx_GIVEREF(__pyx_t_10);
18184 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 2, __pyx_t_10) != (0)) __PYX_ERR(0, 1271, __pyx_L1_error);
18185 __pyx_t_13 = 0;
18186 __pyx_t_11 = 0;
18187 __pyx_t_10 = 0;
18188 if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_t_17, __pyx_t_12) < 0))) __PYX_ERR(0, 1271, __pyx_L1_error)
18189 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
18190 __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
18191 }
18192
18193 }
18194
18195 }
18196
18197
18198 /* "cpostprocessing.pyx":1259
18199 * <double*>(elementResidualPWL.data))
18200 *
18201 * def copyElementBoundaryVelocityToParVec(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
18202 * np.ndarray[int, ndim=2] permutations,
18203 * np.ndarray ebq_v_par_local):
18204*/
18205
18206 /* function exit code */
18207 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18208 goto __pyx_L0;
18209 __pyx_L1_error:;
18210 __Pyx_XDECREF(__pyx_t_10);
18211 __Pyx_XDECREF(__pyx_t_11);
18212 __Pyx_XDECREF(__pyx_t_12);
18213 __Pyx_XDECREF(__pyx_t_13);
18214 __Pyx_XDECREF(__pyx_t_17);
18215 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18216 __Pyx_PyThreadState_declare
18217 __Pyx_PyThreadState_assign
18218 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18219 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18220 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18221 __Pyx_AddTraceback("cpostprocessing.copyElementBoundaryVelocityToParVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
18222 __pyx_r = NULL;
18223 goto __pyx_L2;
18224 __pyx_L0:;
18225 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18226 __pyx_L2:;
18227
18228
18229
18230
18231
18232
18233
18234
18235 __Pyx_XGIVEREF(__pyx_r);
18236 __Pyx_RefNannyFinishContext();
18237 return __pyx_r;
18238}
18239
18240/* "cpostprocessing.pyx":1273
18241 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I]
18242 *
18243 * def addAverageToParVec(np.ndarray ebq_velocityAverage, # <<<<<<<<<<<<<<
18244 * np.ndarray[int, ndim=2] permutations,
18245 * np.ndarray ebq_v_par_local):
18246*/
18247
18248/* Python wrapper */
18249static PyObject *__pyx_pw_15cpostprocessing_107addAverageToParVec(PyObject *__pyx_self,
18250#if CYTHON_VECTORCALL
18251PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
18252#else
18253PyObject *__pyx_args, PyObject *__pyx_kwds
18254#endif
18255); /*proto*/
18256static PyMethodDef __pyx_mdef_15cpostprocessing_107addAverageToParVec = {"addAverageToParVec", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_107addAverageToParVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
18257static PyObject *__pyx_pw_15cpostprocessing_107addAverageToParVec(PyObject *__pyx_self,
18258#if CYTHON_VECTORCALL
18259PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
18260#else
18261PyObject *__pyx_args, PyObject *__pyx_kwds
18262#endif
18263) {
18264 PyArrayObject *__pyx_v_ebq_velocityAverage = 0;
18265 PyArrayObject *__pyx_v_permutations = 0;
18266 PyArrayObject *__pyx_v_ebq_v_par_local = 0;
18267 #if !CYTHON_VECTORCALL
18268 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
18269 #endif
18270 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
18271 PyObject* values[3] = {0,0,0};
18272 int __pyx_lineno = 0;
18273 const char *__pyx_filename = NULL;
18274 int __pyx_clineno = 0;
18275 PyObject *__pyx_r = 0;
18276 __Pyx_RefNannyDeclarations
18277 __Pyx_RefNannySetupContext("addAverageToParVec (wrapper)", 0);
18278 #if !CYTHON_VECTORCALL
18279 #if CYTHON_ASSUME_SAFE_SIZE
18280 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
18281 #else
18282 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
18283 #endif
18284 #endif
18285 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
18286 {
18287 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ebq_velocityAverage,&__pyx_mstate_global->__pyx_n_u_permutations,&__pyx_mstate_global->__pyx_n_u_ebq_v_par_local,0};
18288 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
18289 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1273, __pyx_L3_error)
18290 if (__pyx_kwds_len > 0) {
18291 switch (__pyx_nargs) {
18292 case 3:
18293 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
18294 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1273, __pyx_L3_error)
18295 CYTHON_FALLTHROUGH;
18296 case 2:
18297 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
18298 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1273, __pyx_L3_error)
18299 CYTHON_FALLTHROUGH;
18300 case 1:
18301 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
18302 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1273, __pyx_L3_error)
18303 CYTHON_FALLTHROUGH;
18304 case 0: break;
18305 default: goto __pyx_L5_argtuple_error;
18306 }
18307 const Py_ssize_t kwd_pos_args = __pyx_nargs;
18308 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "addAverageToParVec", 0) < (0)) __PYX_ERR(0, 1273, __pyx_L3_error)
18309 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
18310 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("addAverageToParVec", 1, 3, 3, i); __PYX_ERR(0, 1273, __pyx_L3_error) }
18311 }
18312 } else if (unlikely(__pyx_nargs != 3)) {
18313 goto __pyx_L5_argtuple_error;
18314 } else {
18315 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
18316 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1273, __pyx_L3_error)
18317 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
18318 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1273, __pyx_L3_error)
18319 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
18320 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1273, __pyx_L3_error)
18321 }
18322 __pyx_v_ebq_velocityAverage = ((PyArrayObject *)values[0]);
18323 __pyx_v_permutations = ((PyArrayObject *)values[1]);
18324 __pyx_v_ebq_v_par_local = ((PyArrayObject *)values[2]);
18325 }
18326 goto __pyx_L6_skip;
18327 __pyx_L5_argtuple_error:;
18328 __Pyx_RaiseArgtupleInvalid("addAverageToParVec", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1273, __pyx_L3_error)
18329 __pyx_L6_skip:;
18330 goto __pyx_L4_argument_unpacking_done;
18331 __pyx_L3_error:;
18332 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18333 Py_XDECREF(values[__pyx_temp]);
18334 }
18335 __Pyx_AddTraceback("cpostprocessing.addAverageToParVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
18336 __Pyx_RefNannyFinishContext();
18337 return NULL;
18338 __pyx_L4_argument_unpacking_done:;
18339 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocityAverage), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocityAverage", 0))) __PYX_ERR(0, 1273, __pyx_L1_error)
18340 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_permutations), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "permutations", 0))) __PYX_ERR(0, 1274, __pyx_L1_error)
18341 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v_par_local", 0))) __PYX_ERR(0, 1275, __pyx_L1_error)
18342 __pyx_r = __pyx_pf_15cpostprocessing_106addAverageToParVec(__pyx_self, __pyx_v_ebq_velocityAverage, __pyx_v_permutations, __pyx_v_ebq_v_par_local);
18343
18344 /* function exit code */
18345 goto __pyx_L0;
18346 __pyx_L1_error:;
18347 __pyx_r = NULL;
18348 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18349 Py_XDECREF(values[__pyx_temp]);
18350 }
18351 goto __pyx_L7_cleaned_up;
18352 __pyx_L0:;
18353 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18354 Py_XDECREF(values[__pyx_temp]);
18355 }
18356 __pyx_L7_cleaned_up:;
18357 __Pyx_RefNannyFinishContext();
18358 return __pyx_r;
18359}
18360
18361static PyObject *__pyx_pf_15cpostprocessing_106addAverageToParVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocityAverage, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local) {
18362 int __pyx_v_ebN;
18363 int __pyx_v_k;
18364 int __pyx_v_I;
18365 int __pyx_v_nElementBoundaries;
18366 int __pyx_v_nQuadraturePoints;
18367 int __pyx_v_nSpace;
18368 __Pyx_LocalBuf_ND __pyx_pybuffernd_permutations;
18369 __Pyx_Buffer __pyx_pybuffer_permutations;
18370 PyObject *__pyx_r = NULL;
18371 __Pyx_RefNannyDeclarations
18372 int __pyx_t_1;
18373 int __pyx_t_2;
18374 int __pyx_t_3;
18375 int __pyx_t_4;
18376 int __pyx_t_5;
18377 int __pyx_t_6;
18378 int __pyx_t_7;
18379 int __pyx_t_8;
18380 int __pyx_t_9;
18381 PyObject *__pyx_t_10 = NULL;
18382 Py_ssize_t __pyx_t_11;
18383 Py_ssize_t __pyx_t_12;
18384 int __pyx_t_13;
18385 PyObject *__pyx_t_14 = NULL;
18386 PyObject *__pyx_t_15 = NULL;
18387 PyObject *__pyx_t_16 = NULL;
18388 PyObject *__pyx_t_17 = NULL;
18389 PyObject *__pyx_t_18 = NULL;
18390 int __pyx_lineno = 0;
18391 const char *__pyx_filename = NULL;
18392 int __pyx_clineno = 0;
18393 __Pyx_RefNannySetupContext("addAverageToParVec", 0);
18394 __pyx_pybuffer_permutations.pybuffer.buf = NULL;
18395 __pyx_pybuffer_permutations.refcount = 0;
18396 __pyx_pybuffernd_permutations.data = NULL;
18397 __pyx_pybuffernd_permutations.rcbuffer = &__pyx_pybuffer_permutations;
18398 {
18399 __Pyx_BufFmt_StackElem __pyx_stack[1];
18400 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer, (PyObject*)__pyx_v_permutations, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1273, __pyx_L1_error)
18401 }
18402 __pyx_pybuffernd_permutations.diminfo[0].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_permutations.diminfo[0].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_permutations.diminfo[1].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_permutations.diminfo[1].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[1];
18403
18404 /* "cpostprocessing.pyx":1279
18405 * cdef int k
18406 * cdef int I
18407 * cdef int nElementBoundaries=ebq_v_par_local.shape[0] # <<<<<<<<<<<<<<
18408 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18409 * cdef int nSpace=ebq_v_par_local.shape[2]
18410*/
18411 __pyx_v_nElementBoundaries = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[0]);
18412
18413 /* "cpostprocessing.pyx":1280
18414 * cdef int I
18415 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18416 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1] # <<<<<<<<<<<<<<
18417 * cdef int nSpace=ebq_v_par_local.shape[2]
18418 * for ebN in range(nElementBoundaries):
18419*/
18420 __pyx_v_nQuadraturePoints = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[1]);
18421
18422 /* "cpostprocessing.pyx":1281
18423 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18424 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18425 * cdef int nSpace=ebq_v_par_local.shape[2] # <<<<<<<<<<<<<<
18426 * for ebN in range(nElementBoundaries):
18427 * for k in range(nQuadraturePoints):
18428*/
18429 __pyx_v_nSpace = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[2]);
18430
18431 /* "cpostprocessing.pyx":1282
18432 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18433 * cdef int nSpace=ebq_v_par_local.shape[2]
18434 * for ebN in range(nElementBoundaries): # <<<<<<<<<<<<<<
18435 * for k in range(nQuadraturePoints):
18436 * for I in range(nSpace):
18437*/
18438
18439 __pyx_t_1 = __pyx_v_nElementBoundaries;
18440 __pyx_t_2 = __pyx_t_1;
18441
18442 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
18443 __pyx_v_ebN = __pyx_t_3;
18444
18445 /* "cpostprocessing.pyx":1283
18446 * cdef int nSpace=ebq_v_par_local.shape[2]
18447 * for ebN in range(nElementBoundaries):
18448 * for k in range(nQuadraturePoints): # <<<<<<<<<<<<<<
18449 * for I in range(nSpace):
18450 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I]
18451*/
18452
18453 __pyx_t_4 = __pyx_v_nQuadraturePoints;
18454 __pyx_t_5 = __pyx_t_4;
18455
18456 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
18457 __pyx_v_k = __pyx_t_6;
18458
18459 /* "cpostprocessing.pyx":1284
18460 * for ebN in range(nElementBoundaries):
18461 * for k in range(nQuadraturePoints):
18462 * for I in range(nSpace): # <<<<<<<<<<<<<<
18463 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I]
18464 *
18465*/
18466
18467 __pyx_t_7 = __pyx_v_nSpace;
18468 __pyx_t_8 = __pyx_t_7;
18469
18470 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
18471 __pyx_v_I = __pyx_t_9;
18472
18473 /* "cpostprocessing.pyx":1285
18474 * for k in range(nQuadraturePoints):
18475 * for I in range(nSpace):
18476 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I] # <<<<<<<<<<<<<<
18477 *
18478 * def copyParVecToElementBoundaryVelocity(np.ndarray ebq_velocity,
18479*/
18480 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1285, __pyx_L1_error)
18481 __Pyx_GOTREF(__pyx_t_10);
18482 __pyx_t_11 = __pyx_v_ebN;
18483 __pyx_t_12 = __pyx_v_k;
18484 __pyx_t_13 = -1;
18485 if (__pyx_t_11 < 0) {
18486 __pyx_t_11 += __pyx_pybuffernd_permutations.diminfo[0].shape;
18487 if (unlikely(__pyx_t_11 < 0)) __pyx_t_13 = 0;
18488 } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_permutations.diminfo[0].shape)) __pyx_t_13 = 0;
18489 if (__pyx_t_12 < 0) {
18490 __pyx_t_12 += __pyx_pybuffernd_permutations.diminfo[1].shape;
18491 if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 1;
18492 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_permutations.diminfo[1].shape)) __pyx_t_13 = 1;
18493 if (unlikely(__pyx_t_13 != -1)) {
18494 __Pyx_RaiseBufferIndexError(__pyx_t_13);
18495 __PYX_ERR(0, 1285, __pyx_L1_error)
18496 }
18497 __pyx_t_14 = __Pyx_PyLong_From_int((*__Pyx_BufPtrStrided2d(int *, __pyx_pybuffernd_permutations.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_permutations.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_permutations.diminfo[1].strides))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1285, __pyx_L1_error)
18498 __Pyx_GOTREF(__pyx_t_14);
18499 __pyx_t_15 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1285, __pyx_L1_error)
18500 __Pyx_GOTREF(__pyx_t_15);
18501 __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1285, __pyx_L1_error)
18502 __Pyx_GOTREF(__pyx_t_16);
18503 __Pyx_GIVEREF(__pyx_t_10);
18504 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_10) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18505 __Pyx_GIVEREF(__pyx_t_14);
18506 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_14) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18507 __Pyx_GIVEREF(__pyx_t_15);
18508 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_15) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18509 __pyx_t_10 = 0;
18510 __pyx_t_14 = 0;
18511 __pyx_t_15 = 0;
18512 __pyx_t_15 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1285, __pyx_L1_error)
18513 __Pyx_GOTREF(__pyx_t_15);
18514 __pyx_t_14 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1285, __pyx_L1_error)
18515 __Pyx_GOTREF(__pyx_t_14);
18516 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_k); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1285, __pyx_L1_error)
18517 __Pyx_GOTREF(__pyx_t_10);
18518 __pyx_t_17 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1285, __pyx_L1_error)
18519 __Pyx_GOTREF(__pyx_t_17);
18520 __pyx_t_18 = PyTuple_New(3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1285, __pyx_L1_error)
18521 __Pyx_GOTREF(__pyx_t_18);
18522 __Pyx_GIVEREF(__pyx_t_14);
18523 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_14) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18524 __Pyx_GIVEREF(__pyx_t_10);
18525 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_10) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18526 __Pyx_GIVEREF(__pyx_t_17);
18527 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_17) != (0)) __PYX_ERR(0, 1285, __pyx_L1_error);
18528 __pyx_t_14 = 0;
18529 __pyx_t_10 = 0;
18530 __pyx_t_17 = 0;
18531 __pyx_t_17 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ebq_velocityAverage), __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1285, __pyx_L1_error)
18532 __Pyx_GOTREF(__pyx_t_17);
18533 __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
18534 __pyx_t_18 = __Pyx_PyNumber_InPlaceAdd_object_object(__pyx_t_15, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1285, __pyx_L1_error)
18535 __Pyx_GOTREF(__pyx_t_18);
18536 __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
18537 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
18538 if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_t_16, __pyx_t_18) < 0))) __PYX_ERR(0, 1285, __pyx_L1_error)
18539 __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
18540 __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
18541 }
18542
18543 }
18544
18545 }
18546
18547
18548 /* "cpostprocessing.pyx":1273
18549 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I]
18550 *
18551 * def addAverageToParVec(np.ndarray ebq_velocityAverage, # <<<<<<<<<<<<<<
18552 * np.ndarray[int, ndim=2] permutations,
18553 * np.ndarray ebq_v_par_local):
18554*/
18555
18556 /* function exit code */
18557 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18558 goto __pyx_L0;
18559 __pyx_L1_error:;
18560 __Pyx_XDECREF(__pyx_t_10);
18561 __Pyx_XDECREF(__pyx_t_14);
18562 __Pyx_XDECREF(__pyx_t_15);
18563 __Pyx_XDECREF(__pyx_t_16);
18564 __Pyx_XDECREF(__pyx_t_17);
18565 __Pyx_XDECREF(__pyx_t_18);
18566 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18567 __Pyx_PyThreadState_declare
18568 __Pyx_PyThreadState_assign
18569 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18570 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18571 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18572 __Pyx_AddTraceback("cpostprocessing.addAverageToParVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
18573 __pyx_r = NULL;
18574 goto __pyx_L2;
18575 __pyx_L0:;
18576 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18577 __pyx_L2:;
18578
18579
18580
18581
18582
18583
18584
18585
18586 __Pyx_XGIVEREF(__pyx_r);
18587 __Pyx_RefNannyFinishContext();
18588 return __pyx_r;
18589}
18590
18591/* "cpostprocessing.pyx":1287
18592 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I]
18593 *
18594 * def copyParVecToElementBoundaryVelocity(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
18595 * np.ndarray[int, ndim=2] permutations,
18596 * np.ndarray ebq_v_par_local):
18597*/
18598
18599/* Python wrapper */
18600static PyObject *__pyx_pw_15cpostprocessing_109copyParVecToElementBoundaryVelocity(PyObject *__pyx_self,
18601#if CYTHON_VECTORCALL
18602PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
18603#else
18604PyObject *__pyx_args, PyObject *__pyx_kwds
18605#endif
18606); /*proto*/
18607static PyMethodDef __pyx_mdef_15cpostprocessing_109copyParVecToElementBoundaryVelocity = {"copyParVecToElementBoundaryVelocity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_109copyParVecToElementBoundaryVelocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
18608static PyObject *__pyx_pw_15cpostprocessing_109copyParVecToElementBoundaryVelocity(PyObject *__pyx_self,
18609#if CYTHON_VECTORCALL
18610PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
18611#else
18612PyObject *__pyx_args, PyObject *__pyx_kwds
18613#endif
18614) {
18615 PyArrayObject *__pyx_v_ebq_velocity = 0;
18616 PyArrayObject *__pyx_v_permutations = 0;
18617 PyArrayObject *__pyx_v_ebq_v_par_local = 0;
18618 #if !CYTHON_VECTORCALL
18619 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
18620 #endif
18621 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
18622 PyObject* values[3] = {0,0,0};
18623 int __pyx_lineno = 0;
18624 const char *__pyx_filename = NULL;
18625 int __pyx_clineno = 0;
18626 PyObject *__pyx_r = 0;
18627 __Pyx_RefNannyDeclarations
18628 __Pyx_RefNannySetupContext("copyParVecToElementBoundaryVelocity (wrapper)", 0);
18629 #if !CYTHON_VECTORCALL
18630 #if CYTHON_ASSUME_SAFE_SIZE
18631 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
18632 #else
18633 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
18634 #endif
18635 #endif
18636 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
18637 {
18638 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ebq_velocity,&__pyx_mstate_global->__pyx_n_u_permutations,&__pyx_mstate_global->__pyx_n_u_ebq_v_par_local,0};
18639 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
18640 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1287, __pyx_L3_error)
18641 if (__pyx_kwds_len > 0) {
18642 switch (__pyx_nargs) {
18643 case 3:
18644 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
18645 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1287, __pyx_L3_error)
18646 CYTHON_FALLTHROUGH;
18647 case 2:
18648 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
18649 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1287, __pyx_L3_error)
18650 CYTHON_FALLTHROUGH;
18651 case 1:
18652 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
18653 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1287, __pyx_L3_error)
18654 CYTHON_FALLTHROUGH;
18655 case 0: break;
18656 default: goto __pyx_L5_argtuple_error;
18657 }
18658 const Py_ssize_t kwd_pos_args = __pyx_nargs;
18659 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "copyParVecToElementBoundaryVelocity", 0) < (0)) __PYX_ERR(0, 1287, __pyx_L3_error)
18660 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
18661 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("copyParVecToElementBoundaryVelocity", 1, 3, 3, i); __PYX_ERR(0, 1287, __pyx_L3_error) }
18662 }
18663 } else if (unlikely(__pyx_nargs != 3)) {
18664 goto __pyx_L5_argtuple_error;
18665 } else {
18666 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
18667 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1287, __pyx_L3_error)
18668 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
18669 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1287, __pyx_L3_error)
18670 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
18671 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1287, __pyx_L3_error)
18672 }
18673 __pyx_v_ebq_velocity = ((PyArrayObject *)values[0]);
18674 __pyx_v_permutations = ((PyArrayObject *)values[1]);
18675 __pyx_v_ebq_v_par_local = ((PyArrayObject *)values[2]);
18676 }
18677 goto __pyx_L6_skip;
18678 __pyx_L5_argtuple_error:;
18679 __Pyx_RaiseArgtupleInvalid("copyParVecToElementBoundaryVelocity", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1287, __pyx_L3_error)
18680 __pyx_L6_skip:;
18681 goto __pyx_L4_argument_unpacking_done;
18682 __pyx_L3_error:;
18683 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18684 Py_XDECREF(values[__pyx_temp]);
18685 }
18686 __Pyx_AddTraceback("cpostprocessing.copyParVecToElementBoundaryVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
18687 __Pyx_RefNannyFinishContext();
18688 return NULL;
18689 __pyx_L4_argument_unpacking_done:;
18690 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_velocity), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_velocity", 0))) __PYX_ERR(0, 1287, __pyx_L1_error)
18691 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_permutations), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "permutations", 0))) __PYX_ERR(0, 1288, __pyx_L1_error)
18692 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "ebq_v_par_local", 0))) __PYX_ERR(0, 1289, __pyx_L1_error)
18693 __pyx_r = __pyx_pf_15cpostprocessing_108copyParVecToElementBoundaryVelocity(__pyx_self, __pyx_v_ebq_velocity, __pyx_v_permutations, __pyx_v_ebq_v_par_local);
18694
18695 /* function exit code */
18696 goto __pyx_L0;
18697 __pyx_L1_error:;
18698 __pyx_r = NULL;
18699 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18700 Py_XDECREF(values[__pyx_temp]);
18701 }
18702 goto __pyx_L7_cleaned_up;
18703 __pyx_L0:;
18704 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
18705 Py_XDECREF(values[__pyx_temp]);
18706 }
18707 __pyx_L7_cleaned_up:;
18708 __Pyx_RefNannyFinishContext();
18709 return __pyx_r;
18710}
18711
18712static PyObject *__pyx_pf_15cpostprocessing_108copyParVecToElementBoundaryVelocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ebq_velocity, PyArrayObject *__pyx_v_permutations, PyArrayObject *__pyx_v_ebq_v_par_local) {
18713 int __pyx_v_ebN;
18714 int __pyx_v_k;
18715 int __pyx_v_I;
18716 int __pyx_v_nElementBoundaries;
18717 int __pyx_v_nQuadraturePoints;
18718 int __pyx_v_nSpace;
18719 __Pyx_LocalBuf_ND __pyx_pybuffernd_permutations;
18720 __Pyx_Buffer __pyx_pybuffer_permutations;
18721 PyObject *__pyx_r = NULL;
18722 __Pyx_RefNannyDeclarations
18723 int __pyx_t_1;
18724 int __pyx_t_2;
18725 int __pyx_t_3;
18726 int __pyx_t_4;
18727 int __pyx_t_5;
18728 int __pyx_t_6;
18729 int __pyx_t_7;
18730 int __pyx_t_8;
18731 int __pyx_t_9;
18732 PyObject *__pyx_t_10 = NULL;
18733 Py_ssize_t __pyx_t_11;
18734 Py_ssize_t __pyx_t_12;
18735 int __pyx_t_13;
18736 PyObject *__pyx_t_14 = NULL;
18737 PyObject *__pyx_t_15 = NULL;
18738 PyObject *__pyx_t_16 = NULL;
18739 PyObject *__pyx_t_17 = NULL;
18740 int __pyx_lineno = 0;
18741 const char *__pyx_filename = NULL;
18742 int __pyx_clineno = 0;
18743 __Pyx_RefNannySetupContext("copyParVecToElementBoundaryVelocity", 0);
18744 __pyx_pybuffer_permutations.pybuffer.buf = NULL;
18745 __pyx_pybuffer_permutations.refcount = 0;
18746 __pyx_pybuffernd_permutations.data = NULL;
18747 __pyx_pybuffernd_permutations.rcbuffer = &__pyx_pybuffer_permutations;
18748 {
18749 __Pyx_BufFmt_StackElem __pyx_stack[1];
18750 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer, (PyObject*)__pyx_v_permutations, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1287, __pyx_L1_error)
18751 }
18752 __pyx_pybuffernd_permutations.diminfo[0].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_permutations.diminfo[0].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_permutations.diminfo[1].strides = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_permutations.diminfo[1].shape = __pyx_pybuffernd_permutations.rcbuffer->pybuffer.shape[1];
18753
18754 /* "cpostprocessing.pyx":1293
18755 * cdef int k
18756 * cdef int I
18757 * cdef int nElementBoundaries=ebq_v_par_local.shape[0] # <<<<<<<<<<<<<<
18758 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18759 * cdef int nSpace=ebq_v_par_local.shape[2]
18760*/
18761 __pyx_v_nElementBoundaries = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[0]);
18762
18763 /* "cpostprocessing.pyx":1294
18764 * cdef int I
18765 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18766 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1] # <<<<<<<<<<<<<<
18767 * cdef int nSpace=ebq_v_par_local.shape[2]
18768 * for ebN in range(nElementBoundaries):
18769*/
18770 __pyx_v_nQuadraturePoints = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[1]);
18771
18772 /* "cpostprocessing.pyx":1295
18773 * cdef int nElementBoundaries=ebq_v_par_local.shape[0]
18774 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18775 * cdef int nSpace=ebq_v_par_local.shape[2] # <<<<<<<<<<<<<<
18776 * for ebN in range(nElementBoundaries):
18777 * for k in range(nQuadraturePoints):
18778*/
18779 __pyx_v_nSpace = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_ebq_v_par_local)[2]);
18780
18781 /* "cpostprocessing.pyx":1296
18782 * cdef int nQuadraturePoints=ebq_v_par_local.shape[1]
18783 * cdef int nSpace=ebq_v_par_local.shape[2]
18784 * for ebN in range(nElementBoundaries): # <<<<<<<<<<<<<<
18785 * for k in range(nQuadraturePoints):
18786 * for I in range(nSpace):
18787*/
18788
18789 __pyx_t_1 = __pyx_v_nElementBoundaries;
18790 __pyx_t_2 = __pyx_t_1;
18791
18792 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
18793 __pyx_v_ebN = __pyx_t_3;
18794
18795 /* "cpostprocessing.pyx":1297
18796 * cdef int nSpace=ebq_v_par_local.shape[2]
18797 * for ebN in range(nElementBoundaries):
18798 * for k in range(nQuadraturePoints): # <<<<<<<<<<<<<<
18799 * for I in range(nSpace):
18800 * ebq_velocity[ebN, k, I] = ebq_v_par_local[ebN, permutations[ebN, k], I]
18801*/
18802
18803 __pyx_t_4 = __pyx_v_nQuadraturePoints;
18804 __pyx_t_5 = __pyx_t_4;
18805
18806 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
18807 __pyx_v_k = __pyx_t_6;
18808
18809 /* "cpostprocessing.pyx":1298
18810 * for ebN in range(nElementBoundaries):
18811 * for k in range(nQuadraturePoints):
18812 * for I in range(nSpace): # <<<<<<<<<<<<<<
18813 * ebq_velocity[ebN, k, I] = ebq_v_par_local[ebN, permutations[ebN, k], I]
18814*/
18815
18816 __pyx_t_7 = __pyx_v_nSpace;
18817 __pyx_t_8 = __pyx_t_7;
18818
18819 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
18820 __pyx_v_I = __pyx_t_9;
18821
18822 /* "cpostprocessing.pyx":1299
18823 * for k in range(nQuadraturePoints):
18824 * for I in range(nSpace):
18825 * ebq_velocity[ebN, k, I] = ebq_v_par_local[ebN, permutations[ebN, k], I] # <<<<<<<<<<<<<<
18826*/
18827 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1299, __pyx_L1_error)
18828 __Pyx_GOTREF(__pyx_t_10);
18829 __pyx_t_11 = __pyx_v_ebN;
18830 __pyx_t_12 = __pyx_v_k;
18831 __pyx_t_13 = -1;
18832 if (__pyx_t_11 < 0) {
18833 __pyx_t_11 += __pyx_pybuffernd_permutations.diminfo[0].shape;
18834 if (unlikely(__pyx_t_11 < 0)) __pyx_t_13 = 0;
18835 } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_permutations.diminfo[0].shape)) __pyx_t_13 = 0;
18836 if (__pyx_t_12 < 0) {
18837 __pyx_t_12 += __pyx_pybuffernd_permutations.diminfo[1].shape;
18838 if (unlikely(__pyx_t_12 < 0)) __pyx_t_13 = 1;
18839 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_permutations.diminfo[1].shape)) __pyx_t_13 = 1;
18840 if (unlikely(__pyx_t_13 != -1)) {
18841 __Pyx_RaiseBufferIndexError(__pyx_t_13);
18842 __PYX_ERR(0, 1299, __pyx_L1_error)
18843 }
18844 __pyx_t_14 = __Pyx_PyLong_From_int((*__Pyx_BufPtrStrided2d(int *, __pyx_pybuffernd_permutations.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_permutations.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_permutations.diminfo[1].strides))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1299, __pyx_L1_error)
18845 __Pyx_GOTREF(__pyx_t_14);
18846 __pyx_t_15 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1299, __pyx_L1_error)
18847 __Pyx_GOTREF(__pyx_t_15);
18848 __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1299, __pyx_L1_error)
18849 __Pyx_GOTREF(__pyx_t_16);
18850 __Pyx_GIVEREF(__pyx_t_10);
18851 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_10) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18852 __Pyx_GIVEREF(__pyx_t_14);
18853 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_14) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18854 __Pyx_GIVEREF(__pyx_t_15);
18855 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_15) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18856 __pyx_t_10 = 0;
18857 __pyx_t_14 = 0;
18858 __pyx_t_15 = 0;
18859 __pyx_t_15 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ebq_v_par_local), __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1299, __pyx_L1_error)
18860 __Pyx_GOTREF(__pyx_t_15);
18861 __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
18862 __pyx_t_16 = __Pyx_PyLong_From_int(__pyx_v_ebN); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1299, __pyx_L1_error)
18863 __Pyx_GOTREF(__pyx_t_16);
18864 __pyx_t_14 = __Pyx_PyLong_From_int(__pyx_v_k); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1299, __pyx_L1_error)
18865 __Pyx_GOTREF(__pyx_t_14);
18866 __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_I); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1299, __pyx_L1_error)
18867 __Pyx_GOTREF(__pyx_t_10);
18868 __pyx_t_17 = PyTuple_New(3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1299, __pyx_L1_error)
18869 __Pyx_GOTREF(__pyx_t_17);
18870 __Pyx_GIVEREF(__pyx_t_16);
18871 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18872 __Pyx_GIVEREF(__pyx_t_14);
18873 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_14) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18874 __Pyx_GIVEREF(__pyx_t_10);
18875 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 2, __pyx_t_10) != (0)) __PYX_ERR(0, 1299, __pyx_L1_error);
18876 __pyx_t_16 = 0;
18877 __pyx_t_14 = 0;
18878 __pyx_t_10 = 0;
18879 if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_ebq_velocity), __pyx_t_17, __pyx_t_15) < 0))) __PYX_ERR(0, 1299, __pyx_L1_error)
18880 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
18881 __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
18882 }
18883
18884 }
18885
18886 }
18887
18888
18889 /* "cpostprocessing.pyx":1287
18890 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I]
18891 *
18892 * def copyParVecToElementBoundaryVelocity(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
18893 * np.ndarray[int, ndim=2] permutations,
18894 * np.ndarray ebq_v_par_local):
18895*/
18896
18897 /* function exit code */
18898 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18899 goto __pyx_L0;
18900 __pyx_L1_error:;
18901 __Pyx_XDECREF(__pyx_t_10);
18902 __Pyx_XDECREF(__pyx_t_14);
18903 __Pyx_XDECREF(__pyx_t_15);
18904 __Pyx_XDECREF(__pyx_t_16);
18905 __Pyx_XDECREF(__pyx_t_17);
18906 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
18907 __Pyx_PyThreadState_declare
18908 __Pyx_PyThreadState_assign
18909 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
18910 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18911 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
18912 __Pyx_AddTraceback("cpostprocessing.copyParVecToElementBoundaryVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
18913 __pyx_r = NULL;
18914 goto __pyx_L2;
18915 __pyx_L0:;
18916 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_permutations.rcbuffer->pybuffer);
18917 __pyx_L2:;
18918
18919
18920
18921
18922
18923
18924
18925
18926 __Pyx_XGIVEREF(__pyx_r);
18927 __Pyx_RefNannyFinishContext();
18928 return __pyx_r;
18929}
18930/* #### Code section: module_exttypes ### */
18931
18932static PyObject *__pyx_tp_new__initialisation_15cpostprocessing_NodeStarFactor(PyObject *o,
18933#if CYTHON_VECTORCALL_TPNEW
18934 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
18935#else
18936 PyObject *a, PyObject *k
18937#endif
18938) {
18939 {
18940 int cinit_result = __pyx_pw_15cpostprocessing_14NodeStarFactor_1__cinit__(o,
18941#if CYTHON_VECTORCALL_TPNEW
18942 args, nargs, kwnames
18943#else
18944 a, k
18945#endif
18946);
18947 if (unlikely(cinit_result)) goto bad;
18948 }
18949 return o;
18950 bad:
18951 Py_DECREF(o); o = 0;
18952 return NULL;
18953}
18954
18955static PyObject *__pyx_tp_new_vectorcall_15cpostprocessing_NodeStarFactor(PyTypeObject *t,
18956#if CYTHON_VECTORCALL_TPNEW
18957 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
18958#else
18959 PyObject *a, PyObject *k
18960#endif
18961) {
18962 PyObject *o;
18963 o = __Pyx_AllocateExtensionType(t, 0);
18964 if (unlikely(!o)) return 0;
18965 return __pyx_tp_new__initialisation_15cpostprocessing_NodeStarFactor(o,
18966#if CYTHON_VECTORCALL_TPNEW
18967 args, nargs, kwnames
18968#else
18969 a, k
18970#endif
18971);
18972}
18973
18974#if CYTHON_VECTORCALL_TPNEW
18975static PyObject *__pyx_tp_new_15cpostprocessing_NodeStarFactor(PyTypeObject *t, PyObject *a, PyObject *k) {
18976 return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_15cpostprocessing_NodeStarFactor, t, a, k);
18977}
18978#endif
18979
18980#if CYTHON_VECTORCALL_TPNEW
18981static PyObject *__pyx_tp_vectorcall_15cpostprocessing_NodeStarFactor(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
18982 if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) {
18983 return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames);
18984 }
18985 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
18986 PyObject *o = __pyx_tp_new_vectorcall_15cpostprocessing_NodeStarFactor((PyTypeObject*)t, args, nargs, kwnames);
18987 return o;
18988}
18989#endif
18990
18991static void __pyx_tp_dealloc_15cpostprocessing_NodeStarFactor(PyObject *o) {
18992 #if CYTHON_USE_TP_FINALIZE
18993 if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
18994 if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_15cpostprocessing_NodeStarFactor) {
18995 if (PyObject_CallFinalizerFromDealloc(o)) return;
18996 }
18997 }
18998 #endif
18999 {
19000 PyObject *etype, *eval, *etb;
19001 __Pyx_PyErr_FetchException(&etype, &eval, &etb);
19002 __Pyx_DeallocKeepAliveBegin(o);
19003 __pyx_pw_15cpostprocessing_14NodeStarFactor_3__dealloc__(o);
19004 __Pyx_DeallocKeepAliveEnd(o);
19005 __Pyx_PyErr_RestoreException(etype, eval, etb);
19006 }
19007 PyTypeObject *tp = Py_TYPE(o);
19008 #if CYTHON_USE_TYPE_SLOTS
19009 (*tp->tp_free)(o);
19010 #else
19011 {
19012 freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
19013 if (tp_free) tp_free(o);
19014 }
19015 #endif
19016 #if CYTHON_USE_TYPE_SPECS
19017 Py_DECREF(tp);
19018 #endif
19019}
19020
19021static PyMethodDef __pyx_methods_15cpostprocessing_NodeStarFactor[] = {
19022 {"setU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_5setU, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
19023 {"copyData", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_7copyData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
19024 {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
19025 {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15cpostprocessing_14NodeStarFactor_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
19026 {0, 0, 0, 0}
19027};
19028#if CYTHON_USE_TYPE_SPECS
19029static PyType_Slot __pyx_type_15cpostprocessing_NodeStarFactor_slots[] = {
19030 {Py_tp_dealloc, (void *)__pyx_tp_dealloc_15cpostprocessing_NodeStarFactor},
19031 {Py_tp_methods, (void *)__pyx_methods_15cpostprocessing_NodeStarFactor},
19032 {Py_tp_new, (void *)__pyx_tp_new_15cpostprocessing_NodeStarFactor},
19033 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
19034 #if CYTHON_VECTORCALL_TPNEW
19035 {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_15cpostprocessing_NodeStarFactor},
19036 #endif
19037 #endif
19038 {0, 0},
19039};
19040static PyType_Spec __pyx_type_15cpostprocessing_NodeStarFactor_spec = {
19041 "cpostprocessing.NodeStarFactor",
19042 sizeof(struct __pyx_obj_15cpostprocessing_NodeStarFactor),
19043 0,
19044 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE,
19045 __pyx_type_15cpostprocessing_NodeStarFactor_slots,
19046};
19047#else
19048
19049static PyTypeObject __pyx_type_15cpostprocessing_NodeStarFactor = {
19050 PyVarObject_HEAD_INIT(0, 0)
19051 "cpostprocessing.""NodeStarFactor", /*tp_name*/
19052 sizeof(struct __pyx_obj_15cpostprocessing_NodeStarFactor), /*tp_basicsize*/
19053 0, /*tp_itemsize*/
19054 __pyx_tp_dealloc_15cpostprocessing_NodeStarFactor, /*tp_dealloc*/
19055 0, /*tp_vectorcall_offset*/
19056 0, /*tp_getattr*/
19057 0, /*tp_setattr*/
19058 0, /*tp_as_async*/
19059 0, /*tp_repr*/
19060 0, /*tp_as_number*/
19061 0, /*tp_as_sequence*/
19062 0, /*tp_as_mapping*/
19063 0, /*tp_hash*/
19064 0, /*tp_call*/
19065 0, /*tp_str*/
19066 0, /*tp_getattro*/
19067 0, /*tp_setattro*/
19068 0, /*tp_as_buffer*/
19069 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/
19070 0, /*tp_doc*/
19071 0, /*tp_traverse*/
19072 0, /*tp_clear*/
19073 0, /*tp_richcompare*/
19074 0, /*tp_weaklistoffset*/
19075 0, /*tp_iter*/
19076 0, /*tp_iternext*/
19077 __pyx_methods_15cpostprocessing_NodeStarFactor, /*tp_methods*/
19078 0, /*tp_members*/
19079 0, /*tp_getset*/
19080 0, /*tp_base*/
19081 0, /*tp_dict*/
19082 0, /*tp_descr_get*/
19083 0, /*tp_descr_set*/
19084 #if !CYTHON_USE_TYPE_SPECS
19085 0, /*tp_dictoffset*/
19086 #endif
19087 0, /*tp_init*/
19088 0, /*tp_alloc*/
19089 __pyx_tp_new_15cpostprocessing_NodeStarFactor, /*tp_new*/
19090 0, /*tp_free*/
19091 0, /*tp_is_gc*/
19092 0, /*tp_bases*/
19093 0, /*tp_mro*/
19094 0, /*tp_cache*/
19095 0, /*tp_subclasses*/
19096 0, /*tp_weaklist*/
19097 0, /*tp_del*/
19098 0, /*tp_version_tag*/
19099 #if CYTHON_USE_TP_FINALIZE
19100 0, /*tp_finalize*/
19101 #else
19102 NULL, /*tp_finalize*/
19103 #endif
19104 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
19105 #if CYTHON_VECTORCALL_TPNEW
19106 __pyx_tp_vectorcall_15cpostprocessing_NodeStarFactor, /*tp_vectorcall*/
19107 #else
19108 NULL, /*tp_vectorcall*/
19109 #endif
19110 #endif
19111 #if __PYX_NEED_TP_PRINT_SLOT == 1
19112 0, /*tp_print*/
19113 #endif
19114 #if PY_VERSION_HEX >= 0x030C0000
19115 0, /*tp_watched*/
19116 #endif
19117 #if PY_VERSION_HEX >= 0x030d00A4
19118 0, /*tp_versions_used*/
19119 #endif
19120 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000
19121 0, /*tp_pypy_flags*/
19122 #endif
19123};
19124#endif
19125
19126static PyMethodDef __pyx_methods[] = {
19127 {0, 0, 0, 0}
19128};
19129/* #### Code section: initfunc_declarations ### */
19130static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
19131static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
19132static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
19133static CYTHON_SMALL_CODE int __Pyx_InitAfterSharedUtility(void); /*proto*/
19134static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
19135static CYTHON_SMALL_CODE int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19136static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19137static CYTHON_SMALL_CODE int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19138static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_15cpostprocessing_NodeStarFactor(__pyx_mstatetype *__pyx_mstate); /*proto*/
19139static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19140static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19141static CYTHON_SMALL_CODE int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
19142static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
19143/* #### Code section: init_module ### */
19144
19145static int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate) {
19146 __Pyx_RefNannyDeclarations
19147 CYTHON_UNUSED_VAR(__pyx_mstate);
19148 __Pyx_RefNannySetupContext("__Pyx_modinit_Global_init_code", 0);
19149 /*--- Global init code ---*/
19150 __Pyx_RefNannyFinishContext();
19151 return 0;
19152}
19153
19154static int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate) {
19155 __Pyx_RefNannyDeclarations
19156 CYTHON_UNUSED_VAR(__pyx_mstate);
19157 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_export_code", 0);
19158 /*--- Variable export code ---*/
19159 __Pyx_RefNannyFinishContext();
19160 return 0;
19161}
19162
19163static int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate) {
19164 __Pyx_RefNannyDeclarations
19165 CYTHON_UNUSED_VAR(__pyx_mstate);
19166 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_export_code", 0);
19167 /*--- Function export code ---*/
19168 __Pyx_RefNannyFinishContext();
19169 return 0;
19170}
19171
19172static int __Pyx_modinit_Exttype___pyx_obj_15cpostprocessing_NodeStarFactor(__pyx_mstatetype *__pyx_mstate) {
19173 __Pyx_RefNannyDeclarations
19174 int __pyx_lineno = 0;
19175 const char *__pyx_filename = NULL;
19176 int __pyx_clineno = 0;
19177 CYTHON_UNUSED_VAR(__pyx_mstate);
19178 __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_15cpostprocessing_NodeStarFactor", 0);
19179 /*--- Exttype __pyx_obj_15cpostprocessing_NodeStarFactor ---*/
19180 #if CYTHON_USE_TYPE_SPECS
19181 __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_15cpostprocessing_NodeStarFactor_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor)) __PYX_ERR(0, 763, __pyx_L1_error)
19182 #else
19183 __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor = &__pyx_type_15cpostprocessing_NodeStarFactor;
19184 #endif
19185 #if !CYTHON_COMPILING_IN_LIMITED_API
19186 #endif
19187 #if !CYTHON_USE_TYPE_SPECS
19188 if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor) < (0)) __PYX_ERR(0, 763, __pyx_L1_error)
19189 #endif
19190 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19191 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor);
19192 #endif
19193 #if !CYTHON_COMPILING_IN_LIMITED_API
19194 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor->tp_dictoffset && __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor->tp_getattro == PyObject_GenericGetAttr)) {
19195 __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor->tp_getattro = PyObject_GenericGetAttr;
19196 }
19197 #endif
19198 if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NodeStarFactor, (PyObject *) __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor) < (0)) __PYX_ERR(0, 763, __pyx_L1_error)
19199 if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_15cpostprocessing_NodeStarFactor) < (0)) __PYX_ERR(0, 763, __pyx_L1_error)
19200 __Pyx_RefNannyFinishContext();
19201 return 0;
19202 __pyx_L1_error:;
19203 __Pyx_RefNannyFinishContext();
19204 return -1;
19205}
19206
19207static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) {
19208 __Pyx_RefNannyDeclarations
19209 PyObject *__pyx_t_1 = NULL;
19210 int __pyx_lineno = 0;
19211 const char *__pyx_filename = NULL;
19212 int __pyx_clineno = 0;
19213 CYTHON_UNUSED_VAR(__pyx_mstate);
19214 __Pyx_RefNannySetupContext("__Pyx_modinit_Type_import_code", 0);
19215 /*--- Type import code ---*/
19216 __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
19217 __Pyx_GOTREF(__pyx_t_1);
19218 __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_3_0(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
19219 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19220 sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyTypeObject),
19221 #elif CYTHON_COMPILING_IN_LIMITED_API
19222 0, 0,
19223 #else
19224 sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyHeapTypeObject),
19225 #endif
19226 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
19227 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19228 __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 229, __pyx_L1_error)
19229 __Pyx_GOTREF(__pyx_t_1);
19230 __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "dtype",
19231 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19232 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
19233 #elif CYTHON_COMPILING_IN_LIMITED_API
19234 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
19235 #else
19236 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
19237 #endif
19238 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 229, __pyx_L1_error)
19239 __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flatiter",
19240 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19241 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
19242 #elif CYTHON_COMPILING_IN_LIMITED_API
19243 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
19244 #else
19245 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
19246 #endif
19247 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 286, __pyx_L1_error)
19248 __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "broadcast",
19249 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19250 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
19251 #elif CYTHON_COMPILING_IN_LIMITED_API
19252 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
19253 #else
19254 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
19255 #endif
19256 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 290, __pyx_L1_error)
19257 __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ndarray",
19258 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19259 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
19260 #elif CYTHON_COMPILING_IN_LIMITED_API
19261 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
19262 #else
19263 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
19264 #endif
19265 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 329, __pyx_L1_error)
19266 __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "generic",
19267 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19268 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19269 #elif CYTHON_COMPILING_IN_LIMITED_API
19270 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19271 #else
19272 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19273 #endif
19274 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(1, 847, __pyx_L1_error)
19275 __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "number",
19276 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19277 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19278 #elif CYTHON_COMPILING_IN_LIMITED_API
19279 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19280 #else
19281 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19282 #endif
19283 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(1, 849, __pyx_L1_error)
19284 __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "integer",
19285 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19286 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19287 #elif CYTHON_COMPILING_IN_LIMITED_API
19288 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19289 #else
19290 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19291 #endif
19292 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(1, 851, __pyx_L1_error)
19293 __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "signedinteger",
19294 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19295 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19296 #elif CYTHON_COMPILING_IN_LIMITED_API
19297 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19298 #else
19299 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19300 #endif
19301 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(1, 853, __pyx_L1_error)
19302 __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "unsignedinteger",
19303 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19304 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19305 #elif CYTHON_COMPILING_IN_LIMITED_API
19306 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19307 #else
19308 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19309 #endif
19310 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(1, 855, __pyx_L1_error)
19311 __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "inexact",
19312 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19313 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19314 #elif CYTHON_COMPILING_IN_LIMITED_API
19315 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19316 #else
19317 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19318 #endif
19319 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(1, 857, __pyx_L1_error)
19320 __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "floating",
19321 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19322 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19323 #elif CYTHON_COMPILING_IN_LIMITED_API
19324 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19325 #else
19326 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19327 #endif
19328 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(1, 859, __pyx_L1_error)
19329 __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "complexfloating",
19330 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19331 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19332 #elif CYTHON_COMPILING_IN_LIMITED_API
19333 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19334 #else
19335 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19336 #endif
19337 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(1, 861, __pyx_L1_error)
19338 __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flexible",
19339 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19340 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19341 #elif CYTHON_COMPILING_IN_LIMITED_API
19342 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19343 #else
19344 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19345 #endif
19346 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(1, 863, __pyx_L1_error)
19347 __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "character",
19348 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19349 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19350 #elif CYTHON_COMPILING_IN_LIMITED_API
19351 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19352 #else
19353 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
19354 #endif
19355 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(1, 865, __pyx_L1_error)
19356 __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ufunc",
19357 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
19358 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
19359 #elif CYTHON_COMPILING_IN_LIMITED_API
19360 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
19361 #else
19362 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
19363 #endif
19364 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 946, __pyx_L1_error)
19365 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19366 __Pyx_RefNannyFinishContext();
19367 return 0;
19368 __pyx_L1_error:;
19369 __Pyx_XDECREF(__pyx_t_1);
19370 __Pyx_RefNannyFinishContext();
19371 return -1;
19372}
19373
19374static int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate) {
19375 __Pyx_RefNannyDeclarations
19376 CYTHON_UNUSED_VAR(__pyx_mstate);
19377 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_import_code", 0);
19378 /*--- Variable import code ---*/
19379 __Pyx_RefNannyFinishContext();
19380 return 0;
19381}
19382
19383static int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate) {
19384 __Pyx_RefNannyDeclarations
19385 CYTHON_UNUSED_VAR(__pyx_mstate);
19386 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_import_code", 0);
19387 /*--- Function import code ---*/
19388 __Pyx_RefNannyFinishContext();
19389 return 0;
19390}
19391
19392#if CYTHON_PEP489_MULTI_PHASE_INIT
19393static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
19394static int __pyx_pymod_exec_cpostprocessing(PyObject* module); /*proto*/
19395static PyModuleDef_Slot __pyx_moduledef_slots[] = {
19396 {Py_mod_create, (void*)__pyx_pymod_create},
19397 {Py_mod_exec, (void*)__pyx_pymod_exec_cpostprocessing},
19398 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
19399 {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
19400 #endif
19401 #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
19402 {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
19403 #endif
19404 {0, NULL}
19405};
19406#endif
19407
19408#ifdef __cplusplus
19409namespace {
19410 struct PyModuleDef __pyx_moduledef =
19411 #else
19412 static struct PyModuleDef __pyx_moduledef =
19413 #endif
19414 {
19415 PyModuleDef_HEAD_INIT,
19416 "cpostprocessing",
19417 0, /* m_doc */
19418 #if CYTHON_USE_MODULE_STATE
19419 sizeof(__pyx_mstatetype), /* m_size */
19420 #else
19421 (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
19422 #endif
19423 __pyx_methods /* m_methods */,
19424 #if CYTHON_PEP489_MULTI_PHASE_INIT
19425 __pyx_moduledef_slots, /* m_slots */
19426 #else
19427 NULL, /* m_reload */
19428 #endif
19429 #if CYTHON_USE_MODULE_STATE
19430 __pyx_m_traverse, /* m_traverse */
19431 __pyx_m_clear, /* m_clear */
19432 NULL /* m_free */
19433 #else
19434 NULL, /* m_traverse */
19435 NULL, /* m_clear */
19436 NULL /* m_free */
19437 #endif
19438 };
19439 #ifdef __cplusplus
19440} /* anonymous namespace */
19441#endif
19442
19443/* PyModInitFuncType */
19444#ifndef CYTHON_NO_PYINIT_EXPORT
19445 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
19446#else
19447 #ifdef __cplusplus
19448 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
19449 #else
19450 #define __Pyx_PyMODINIT_FUNC PyObject *
19451 #endif
19452#endif
19453
19454__Pyx_PyMODINIT_FUNC PyInit_cpostprocessing(void) CYTHON_SMALL_CODE; /*proto*/
19455__Pyx_PyMODINIT_FUNC PyInit_cpostprocessing(void)
19456#if CYTHON_PEP489_MULTI_PHASE_INIT
19457{
19458 return PyModuleDef_Init(&__pyx_moduledef);
19459}
19460/* ModuleCreationPEP489 */
19461#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
19462 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
19463static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
19464 {
19465 PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
19466 if (!module) {
19467 if (!PyErr_ExceptionMatches(PyExc_Exception)) {
19468 goto bad; // BaseException
19469 }
19470 PyErr_Clear(); // just try the 3.8-3.12 version
19471 module = PyImport_ImportModule("_xxsubinterpreters");
19472 if (!module) goto bad;
19473 }
19474 PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
19475 Py_DECREF(module);
19476 if (!current) goto bad;
19477 if (PyTuple_Check(current)) {
19478 PyObject *new_current = PySequence_GetItem(current, 0);
19479 Py_DECREF(current);
19480 current = new_current;
19481 if (!new_current) goto bad;
19482 }
19483 long long as_c_int = PyLong_AsLongLong(current);
19484 Py_DECREF(current);
19485 return as_c_int;
19486 }
19487 bad:
19488 PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
19489 return -1;
19490}
19491#endif
19492#if !CYTHON_USE_MODULE_STATE
19493static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
19494 static PY_INT64_T main_interpreter_id = -1;
19495#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
19496 PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
19497#elif CYTHON_COMPILING_IN_GRAAL
19498 PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
19499#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
19500 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
19501 PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
19502#elif CYTHON_COMPILING_IN_LIMITED_API
19503 PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
19504#else
19505 PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
19506#endif
19507 if (unlikely(current_id == -1)) {
19508 return -1;
19509 }
19510 if (main_interpreter_id == -1) {
19511 main_interpreter_id = current_id;
19512 return 0;
19513 } else if (unlikely(main_interpreter_id != current_id)) {
19514 PyErr_SetString(
19515 PyExc_ImportError,
19516 "Interpreter change detected - this module can only be loaded into one interpreter per process.");
19517 return -1;
19518 }
19519 return 0;
19520}
19521#endif
19522static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
19523{
19524 PyObject *value = PyObject_GetAttrString(spec, from_name);
19525 int result = 0;
19526 if (likely(value)) {
19527 if (allow_none || value != Py_None) {
19528 result = PyDict_SetItemString(moddict, to_name, value);
19529 }
19530 Py_DECREF(value);
19531 } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
19532 PyErr_Clear();
19533 } else {
19534 result = -1;
19535 }
19536 return result;
19537}
19538static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
19539 PyObject *module = NULL, *moddict, *modname;
19540 CYTHON_UNUSED_VAR(def);
19541 #if !CYTHON_USE_MODULE_STATE
19542 if (__Pyx_check_single_interpreter())
19543 return NULL;
19544 #endif
19545 if (__pyx_m)
19546 return __Pyx_NewRef(__pyx_m);
19547 modname = PyObject_GetAttrString(spec, "name");
19548 if (unlikely(!modname)) goto bad;
19549 module = PyModule_NewObject(modname);
19550 Py_DECREF(modname);
19551 if (unlikely(!module)) goto bad;
19552 moddict = PyModule_GetDict(module);
19553 if (unlikely(!moddict)) goto bad;
19554 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
19555 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
19556 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
19557 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
19558 return module;
19559bad:
19560 Py_XDECREF(module);
19561 return NULL;
19562}
19563
19564
19565static CYTHON_SMALL_CODE int __pyx_pymod_exec_cpostprocessing(PyObject *__pyx_pyinit_module)
19566#endif
19567{
19568 int stringtab_initialized = 0;
19569 #if CYTHON_USE_MODULE_STATE
19570 int pystate_addmodule_run = 0;
19571 #endif
19572 __pyx_mstatetype *__pyx_mstate = NULL;
19573 PyObject *__pyx_t_1 = NULL;
19574 PyObject *__pyx_t_2 = NULL;
19575 int __pyx_lineno = 0;
19576 const char *__pyx_filename = NULL;
19577 int __pyx_clineno = 0;
19578 __Pyx_RefNannyDeclarations
19579 #if CYTHON_PEP489_MULTI_PHASE_INIT
19580 if (__pyx_m) {
19581 if (__pyx_m == __pyx_pyinit_module) return 0;
19582 PyErr_SetString(PyExc_RuntimeError, "Module 'cpostprocessing' has already been imported. Re-initialisation is not supported.");
19583 return -1;
19584 }
19585 #else
19586 if (__pyx_m) return __Pyx_NewRef(__pyx_m);
19587 #endif
19588 /*--- Module creation code ---*/
19589 #if CYTHON_PEP489_MULTI_PHASE_INIT
19590 __pyx_t_1 = __pyx_pyinit_module;
19591 Py_INCREF(__pyx_t_1);
19592 #else
19593 __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
19594 #endif
19595 #if CYTHON_USE_MODULE_STATE
19596 {
19597 int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
19598 __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "cpostprocessing" pseudovariable */
19599 if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
19600 pystate_addmodule_run = 1;
19601 }
19602 #else
19603 __pyx_m = __pyx_t_1;
19604 #endif
19605 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
19606 PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
19607 #endif
19608 __pyx_mstate = __pyx_mstate_global;
19609 CYTHON_UNUSED_VAR(__pyx_t_1);
19610 __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
19611 Py_INCREF(__pyx_mstate->__pyx_d);
19612 __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
19613 __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
19614 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
19615 /* ImportRefnannyAPI */
19616 #if CYTHON_REFNANNY
19617 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
19618 if (!__Pyx_RefNanny) {
19619 if (PyErr_ExceptionMatches(PyExc_Exception)) {
19620 PyErr_Clear();
19621 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
19622 }
19623 if (!__Pyx_RefNanny)
19624 Py_FatalError("failed to import 'refnanny' module");
19625 }
19626 #endif
19627
19628__Pyx_RefNannySetupContext("PyInit_cpostprocessing", 0);
19629 __Pyx_init_runtime_version();
19630 if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19631 __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
19632 __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
19633 __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
19634 /*--- Library function declarations ---*/
19635 /*--- Initialize various global constants etc. ---*/
19636 if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19637 stringtab_initialized = 1;
19638 if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19639 if (__pyx_module_is_main_cpostprocessing) {
19640 if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19641 }
19642 {
19643 PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
19644 if (!PyDict_GetItemString(modules, "cpostprocessing")) {
19645 if (unlikely((PyDict_SetItemString(modules, "cpostprocessing", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
19646 }
19647 }
19648 /*--- Builtin init code ---*/
19649 if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19650 /*--- Constants init code ---*/
19651 if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19652 if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19653 /*--- Global type/function init code ---*/
19654 (void)__Pyx_modinit_Global_init_code(__pyx_mstate);
19655 (void)__Pyx_modinit_Variable_export_code(__pyx_mstate);
19656 (void)__Pyx_modinit_Function_export_code(__pyx_mstate);
19657 /*--- Type init code ---*/
19658 if (unlikely((__Pyx_modinit_Exttype___pyx_obj_15cpostprocessing_NodeStarFactor(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
19659 if (unlikely((__Pyx_modinit_Type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
19660 (void)__Pyx_modinit_Variable_import_code(__pyx_mstate);
19661 (void)__Pyx_modinit_Function_import_code(__pyx_mstate);
19662 if (__Pyx_InitAfterSharedUtility() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
19663 /*--- Execution code ---*/
19664
19665 /* "cpostprocessing.pyx":3
19666 * # A type of -*- python -*- file
19667 * # cython: language_level=3
19668 * import numpy as np # <<<<<<<<<<<<<<
19669 * cimport numpy as np
19670 * cimport postprocessing as pp
19671*/
19672 __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error)
19673 __pyx_t_2 = __pyx_t_1;
19674 __Pyx_GOTREF(__pyx_t_2);
19675 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_np, __pyx_t_2) < (0)) __PYX_ERR(0, 3, __pyx_L1_error)
19676 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19677
19678 /* "cpostprocessing.pyx":7
19679 * cimport postprocessing as pp
19680 *
19681 * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
19682 * np.ndarray freeLocal_element,
19683 * np.ndarray detJ,
19684*/
19685 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_1postProcessRT0velocityFromP1nc, 0, __pyx_mstate_global->__pyx_n_u_postProcessRT0velocityFromP1nc, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error)
19686 __Pyx_GOTREF(__pyx_t_2);
19687 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19688 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19689 #endif
19690 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0]);
19691 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_postProcessRT0velocityFromP1nc, __pyx_t_2) < (0)) __PYX_ERR(0, 7, __pyx_L1_error)
19692 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19693
19694 /* "cpostprocessing.pyx":71
19695 * <double*>(rt0vdofs.data))
19696 *
19697 * def postProcessRT0velocityFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
19698 * np.ndarray colind,
19699 * np.ndarray nFreeDOF_element,
19700*/
19701 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_3postProcessRT0velocityFromP1nc_sd, 0, __pyx_mstate_global->__pyx_n_u_postProcessRT0velocityFromP1nc_s, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error)
19702 __Pyx_GOTREF(__pyx_t_2);
19703 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19704 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19705 #endif
19706 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0]);
19707 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_postProcessRT0velocityFromP1nc_s, __pyx_t_2) < (0)) __PYX_ERR(0, 71, __pyx_L1_error)
19708 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19709
19710 /* "cpostprocessing.pyx":141
19711 * <double*>(rt0vdofs.data))
19712 *
19713 * def updateRT0velocityWithAveragedPotentialP1nc(np.ndarray detJ, # <<<<<<<<<<<<<<
19714 * np.ndarray quad_a,
19715 * np.ndarray phi,
19716*/
19717 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_5updateRT0velocityWithAveragedPotentialP1nc, 0, __pyx_mstate_global->__pyx_n_u_updateRT0velocityWithAveragedPot, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
19718 __Pyx_GOTREF(__pyx_t_2);
19719 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19720 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19721 #endif
19722 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateRT0velocityWithAveragedPot, __pyx_t_2) < (0)) __PYX_ERR(0, 141, __pyx_L1_error)
19723 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19724
19725 /* "cpostprocessing.pyx":157
19726 * <double*>(rt0vdofs_element.data))
19727 *
19728 * def updateRT0velocityWithAveragedPotentialP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
19729 * np.ndarray colind,
19730 * np.ndarray detJ,
19731*/
19732 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_7updateRT0velocityWithAveragedPotentialP1nc_sd, 0, __pyx_mstate_global->__pyx_n_u_updateRT0velocityWithAveragedPot_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
19733 __Pyx_GOTREF(__pyx_t_2);
19734 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19735 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19736 #endif
19737 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateRT0velocityWithAveragedPot_2, __pyx_t_2) < (0)) __PYX_ERR(0, 157, __pyx_L1_error)
19738 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19739
19740 /* "cpostprocessing.pyx":177
19741 * <double*>(rt0vdofs_element.data))
19742 *
19743 * def getElementRT0velocityValues(np.ndarray x_element, # <<<<<<<<<<<<<<
19744 * np.ndarray rt0vdofs_element,
19745 * np.ndarray v_element):
19746*/
19747 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_9getElementRT0velocityValues, 0, __pyx_mstate_global->__pyx_n_u_getElementRT0velocityValues, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 177, __pyx_L1_error)
19748 __Pyx_GOTREF(__pyx_t_2);
19749 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19750 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19751 #endif
19752 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementRT0velocityValues, __pyx_t_2) < (0)) __PYX_ERR(0, 177, __pyx_L1_error)
19753 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19754
19755 /* "cpostprocessing.pyx":187
19756 * <double*>(v_element.data))
19757 *
19758 * def getElementBoundaryRT0velocityValues(np.ndarray x_elementBoundary, # <<<<<<<<<<<<<<
19759 * np.ndarray rt0vdofs_element,
19760 * np.ndarray v_elementBoundary):
19761*/
19762 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_11getElementBoundaryRT0velocityValues, 0, __pyx_mstate_global->__pyx_n_u_getElementBoundaryRT0velocityVal, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error)
19763 __Pyx_GOTREF(__pyx_t_2);
19764 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19765 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19766 #endif
19767 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementBoundaryRT0velocityVal, __pyx_t_2) < (0)) __PYX_ERR(0, 187, __pyx_L1_error)
19768 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19769
19770 /* "cpostprocessing.pyx":198
19771 * <double*>(v_elementBoundary.data))
19772 *
19773 * def getGlobalElementBoundaryRT0velocityValues(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
19774 * np.ndarray x_elementBoundary_global,
19775 * np.ndarray rt0vdofs_element,
19776*/
19777 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_13getGlobalElementBoundaryRT0velocityValues, 0, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryRT0veloc, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error)
19778 __Pyx_GOTREF(__pyx_t_2);
19779 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19780 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19781 #endif
19782 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryRT0veloc, __pyx_t_2) < (0)) __PYX_ERR(0, 198, __pyx_L1_error)
19783 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19784
19785 /* "cpostprocessing.pyx":210
19786 * <double*>(v_elementBoundary_global.data))
19787 *
19788 * def getGlobalExteriorElementBoundaryRT0velocityValues(np.ndarray exteriorElementBoundariesArray, # <<<<<<<<<<<<<<
19789 * np.ndarray elementBoundaryElementsArray,
19790 * np.ndarray x_elementBoundary_global,
19791*/
19792 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_15getGlobalExteriorElementBoundaryRT0velocityValues, 0, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error)
19793 __Pyx_GOTREF(__pyx_t_2);
19794 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19795 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19796 #endif
19797 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary, __pyx_t_2) < (0)) __PYX_ERR(0, 210, __pyx_L1_error)
19798 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19799
19800 /* "cpostprocessing.pyx":224
19801 * <double*>(v_elementBoundary_global.data))
19802 *
19803 * def postProcessRT0potentialFromP1nc(np.ndarray uQuadratureWeights_element, # <<<<<<<<<<<<<<
19804 * np.ndarray elementBarycenters,
19805 * np.ndarray aElementQuadWeights,
19806*/
19807 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_17postProcessRT0potentialFromP1nc, 0, __pyx_mstate_global->__pyx_n_u_postProcessRT0potentialFromP1nc, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
19808 __Pyx_GOTREF(__pyx_t_2);
19809 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19810 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19811 #endif
19812 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_postProcessRT0potentialFromP1nc, __pyx_t_2) < (0)) __PYX_ERR(0, 224, __pyx_L1_error)
19813 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19814
19815 /* "cpostprocessing.pyx":262
19816 * <double*>(rt0potential.data))
19817 *
19818 * def postProcessRT0potentialFromP1nc_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
19819 * np.ndarray colind,
19820 * np.ndarray uQuadratureWeights_element,
19821*/
19822 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_19postProcessRT0potentialFromP1nc_sd, 0, __pyx_mstate_global->__pyx_n_u_postProcessRT0potentialFromP1nc_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 262, __pyx_L1_error)
19823 __Pyx_GOTREF(__pyx_t_2);
19824 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19825 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19826 #endif
19827 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_postProcessRT0potentialFromP1nc_2, __pyx_t_2) < (0)) __PYX_ERR(0, 262, __pyx_L1_error)
19828 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19829
19830 /* "cpostprocessing.pyx":304
19831 * <double*>(rt0potential.data))
19832 *
19833 * def buildLocalBDM1projectionMatrices(np.ndarray w_dS_f, # <<<<<<<<<<<<<<
19834 * np.ndarray ebq_n,
19835 * np.ndarray ebq_v,
19836*/
19837 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_21buildLocalBDM1projectionMatrices, 0, __pyx_mstate_global->__pyx_n_u_buildLocalBDM1projectionMatrices, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error)
19838 __Pyx_GOTREF(__pyx_t_2);
19839 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19840 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19841 #endif
19842 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_buildLocalBDM1projectionMatrices, __pyx_t_2) < (0)) __PYX_ERR(0, 304, __pyx_L1_error)
19843 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19844
19845 /* "cpostprocessing.pyx":320
19846 * <double*>(BDMmat_element.data))
19847 *
19848 * def buildLocalBDM2projectionMatrices(int degree, # <<<<<<<<<<<<<<
19849 * np.ndarray w_dS_f,
19850 * np.ndarray ebq_n,
19851*/
19852 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_23buildLocalBDM2projectionMatrices, 0, __pyx_mstate_global->__pyx_n_u_buildLocalBDM2projectionMatrices, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L1_error)
19853 __Pyx_GOTREF(__pyx_t_2);
19854 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19855 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19856 #endif
19857 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_buildLocalBDM2projectionMatrices, __pyx_t_2) < (0)) __PYX_ERR(0, 320, __pyx_L1_error)
19858 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19859
19860 /* "cpostprocessing.pyx":350
19861 * <double*>(piola_trial_fun.data))
19862 *
19863 * def factorLocalBDM1projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19864 * np.ndarray BDMmatPivots_element):
19865 * pp.factorLocalBDM1projectionMatrices(BDMmat_element.shape[0],
19866*/
19867 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_25factorLocalBDM1projectionMatrices, 0, __pyx_mstate_global->__pyx_n_u_factorLocalBDM1projectionMatrice, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 350, __pyx_L1_error)
19868 __Pyx_GOTREF(__pyx_t_2);
19869 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19870 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19871 #endif
19872 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_factorLocalBDM1projectionMatrice, __pyx_t_2) < (0)) __PYX_ERR(0, 350, __pyx_L1_error)
19873 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19874
19875 /* "cpostprocessing.pyx":357
19876 * <int*>(BDMmatPivots_element.data))
19877 *
19878 * def factorLocalBDM2projectionMatrices(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19879 * np.ndarray BDMmatPivots_element):
19880 * pp.factorLocalBDM2projectionMatrices(BDMmat_element.shape[0],
19881*/
19882 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_27factorLocalBDM2projectionMatrices, 0, __pyx_mstate_global->__pyx_n_u_factorLocalBDM2projectionMatrice, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error)
19883 __Pyx_GOTREF(__pyx_t_2);
19884 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19885 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19886 #endif
19887 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_factorLocalBDM2projectionMatrice, __pyx_t_2) < (0)) __PYX_ERR(0, 357, __pyx_L1_error)
19888 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19889
19890 /* "cpostprocessing.pyx":364
19891 * <int*>(BDMmatPivots_element.data))
19892 *
19893 * def solveLocalBDM1projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19894 * np.ndarray BDMmatPivots_element,
19895 * np.ndarray w_dS_f,
19896*/
19897 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_29solveLocalBDM1projection, 0, __pyx_mstate_global->__pyx_n_u_solveLocalBDM1projection, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error)
19898 __Pyx_GOTREF(__pyx_t_2);
19899 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19900 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19901 #endif
19902 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_solveLocalBDM1projection, __pyx_t_2) < (0)) __PYX_ERR(0, 364, __pyx_L1_error)
19903 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19904
19905 /* "cpostprocessing.pyx":383
19906 * <double*>(q_vdofs.data))
19907 *
19908 * def solveLocalBDM2projection(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19909 * np.ndarray BDMmatPivots_element,
19910 * np.ndarray w_dS_f,
19911*/
19912 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_31solveLocalBDM2projection, 0, __pyx_mstate_global->__pyx_n_u_solveLocalBDM2projection, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error)
19913 __Pyx_GOTREF(__pyx_t_2);
19914 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19915 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19916 #endif
19917 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_solveLocalBDM2projection, __pyx_t_2) < (0)) __PYX_ERR(0, 383, __pyx_L1_error)
19918 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19919
19920 /* "cpostprocessing.pyx":406
19921 * <double*>(q_vdofs.data))
19922 *
19923 * def buildBDM2rhs(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19924 * np.ndarray BDMmatPivots_element,
19925 * np.ndarray w_dS_f,
19926*/
19927 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_33buildBDM2rhs, 0, __pyx_mstate_global->__pyx_n_u_buildBDM2rhs, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 406, __pyx_L1_error)
19928 __Pyx_GOTREF(__pyx_t_2);
19929 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19930 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19931 #endif
19932 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_buildBDM2rhs, __pyx_t_2) < (0)) __PYX_ERR(0, 406, __pyx_L1_error)
19933 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19934
19935 /* "cpostprocessing.pyx":435
19936 * <double*>(q_vdofs.data))
19937 *
19938 * def solveLocalBDM1projectionFromFlux(np.ndarray BDMmat_element, # <<<<<<<<<<<<<<
19939 * np.ndarray BDMmatPivots_element,
19940 * np.ndarray elementBoundaryElementsArray,
19941*/
19942 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_35solveLocalBDM1projectionFromFlux, 0, __pyx_mstate_global->__pyx_n_u_solveLocalBDM1projectionFromFlux, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error)
19943 __Pyx_GOTREF(__pyx_t_2);
19944 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19945 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19946 #endif
19947 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_solveLocalBDM1projectionFromFlux, __pyx_t_2) < (0)) __PYX_ERR(0, 435, __pyx_L1_error)
19948 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19949
19950 /* "cpostprocessing.pyx":455
19951 * <double*>(q_vdofs.data))
19952 *
19953 * def getElementBDM1velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
19954 * np.ndarray p1_vdofs,
19955 * np.ndarray q_velocity):
19956*/
19957 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_37getElementBDM1velocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getElementBDM1velocityValuesLagr, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 455, __pyx_L1_error)
19958 __Pyx_GOTREF(__pyx_t_2);
19959 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19960 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19961 #endif
19962 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementBDM1velocityValuesLagr, __pyx_t_2) < (0)) __PYX_ERR(0, 455, __pyx_L1_error)
19963 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19964
19965 /* "cpostprocessing.pyx":471
19966 * <double*>(q_velocity.data))
19967 *
19968 * def getElementBDM2velocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
19969 * np.ndarray p1_vdofs,
19970 * np.ndarray q_velocity):
19971*/
19972 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_39getElementBDM2velocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getElementBDM2velocityValuesLagr, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 471, __pyx_L1_error)
19973 __Pyx_GOTREF(__pyx_t_2);
19974 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19975 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19976 #endif
19977 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementBDM2velocityValuesLagr, __pyx_t_2) < (0)) __PYX_ERR(0, 471, __pyx_L1_error)
19978 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19979
19980 /* "cpostprocessing.pyx":493
19981 * <double*>(q_velocity.data))
19982 *
19983 * def getElementLDGvelocityValuesLagrangeRep(np.ndarray q_v, # <<<<<<<<<<<<<<
19984 * np.ndarray vdofs,
19985 * np.ndarray q_velocity):
19986*/
19987 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_41getElementLDGvelocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getElementLDGvelocityValuesLagra, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 493, __pyx_L1_error)
19988 __Pyx_GOTREF(__pyx_t_2);
19989 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
19990 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
19991 #endif
19992 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementLDGvelocityValuesLagra, __pyx_t_2) < (0)) __PYX_ERR(0, 493, __pyx_L1_error)
19993 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19994
19995 /* "cpostprocessing.pyx":509
19996 * <double*>(q_velocity.data))
19997 *
19998 * def getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
19999 * np.ndarray exteriorElementBoundariesArray,
20000 * np.ndarray ebqe_v,
20001*/
20002 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_43getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 509, __pyx_L1_error)
20003 __Pyx_GOTREF(__pyx_t_2);
20004 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20005 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20006 #endif
20007 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary_2, __pyx_t_2) < (0)) __PYX_ERR(0, 509, __pyx_L1_error)
20008 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20009
20010 /* "cpostprocessing.pyx":528
20011 * <double*>(ebqe_velocity.data))
20012 *
20013 * def getGlobalElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
20014 * np.ndarray exteriorElementBoundariesArray,
20015 * np.ndarray ebqe_v,
20016*/
20017 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_45getGlobalElementBoundaryBDM1velocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryBDM1velo, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 528, __pyx_L1_error)
20018 __Pyx_GOTREF(__pyx_t_2);
20019 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20020 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20021 #endif
20022 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryBDM1velo, __pyx_t_2) < (0)) __PYX_ERR(0, 528, __pyx_L1_error)
20023 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20024
20025 /* "cpostprocessing.pyx":547
20026 * <double*>(ebq_global_velocity.data))
20027 *
20028 * def getElementBoundaryBDM1velocityValuesLagrangeRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
20029 * np.ndarray exteriorElementBoundariesArray,
20030 * np.ndarray ebq_v,
20031*/
20032 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_47getElementBoundaryBDM1velocityValuesLagrangeRep, 0, __pyx_mstate_global->__pyx_n_u_getElementBoundaryBDM1velocityVa, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 547, __pyx_L1_error)
20033 __Pyx_GOTREF(__pyx_t_2);
20034 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20035 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20036 #endif
20037 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementBoundaryBDM1velocityVa, __pyx_t_2) < (0)) __PYX_ERR(0, 547, __pyx_L1_error)
20038 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20039
20040 /* "cpostprocessing.pyx":567
20041 * <double*>(ebq_velocity.data))
20042 *
20043 * def projectElementBoundaryVelocityToRT0fluxRep(np.ndarray elementBoundaryQuadratureWeights, # <<<<<<<<<<<<<<
20044 * np.ndarray n,
20045 * np.ndarray v_elementBoundary,
20046*/
20047 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_49projectElementBoundaryVelocityToRT0fluxRep, 0, __pyx_mstate_global->__pyx_n_u_projectElementBoundaryVelocityTo, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error)
20048 __Pyx_GOTREF(__pyx_t_2);
20049 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20050 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20051 #endif
20052 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_projectElementBoundaryVelocityTo, __pyx_t_2) < (0)) __PYX_ERR(0, 567, __pyx_L1_error)
20053 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20054
20055 /* "cpostprocessing.pyx":580
20056 * <double*>(rt0vdofs_element.data))
20057 *
20058 * def projectElementBoundaryFluxToRT0fluxRep(np.ndarray elementBoundaryElementsArray, # <<<<<<<<<<<<<<
20059 * np.ndarray elementBoundariesArray,
20060 * np.ndarray elementBoundaryQuadratureWeights,
20061*/
20062 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_51projectElementBoundaryFluxToRT0fluxRep, 0, __pyx_mstate_global->__pyx_n_u_projectElementBoundaryFluxToRT0f, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
20063 __Pyx_GOTREF(__pyx_t_2);
20064 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20065 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20066 #endif
20067 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_projectElementBoundaryFluxToRT0f, __pyx_t_2) < (0)) __PYX_ERR(0, 580, __pyx_L1_error)
20068 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20069
20070 /* "cpostprocessing.pyx":595
20071 * <double*>(rt0vdofs_element.data))
20072 *
20073 * def getElementRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
20074 * np.ndarray elementNodesArray,
20075 * np.ndarray abs_det_J,
20076*/
20077 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_53getElementRT0velocityValuesFluxRep, 0, __pyx_mstate_global->__pyx_n_u_getElementRT0velocityValuesFluxR, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 595, __pyx_L1_error)
20078 __Pyx_GOTREF(__pyx_t_2);
20079 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20080 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20081 #endif
20082 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementRT0velocityValuesFluxR, __pyx_t_2) < (0)) __PYX_ERR(0, 595, __pyx_L1_error)
20083 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20084
20085 /* "cpostprocessing.pyx":613
20086 * <double*>(v_element.data))
20087 *
20088 * def getElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
20089 * np.ndarray elementNodesArray,
20090 * np.ndarray abs_det_J,
20091*/
20092 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_55getElementBoundaryRT0velocityValuesFluxRep, 0, __pyx_mstate_global->__pyx_n_u_getElementBoundaryRT0velocityVal_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error)
20093 __Pyx_GOTREF(__pyx_t_2);
20094 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20095 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20096 #endif
20097 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getElementBoundaryRT0velocityVal_2, __pyx_t_2) < (0)) __PYX_ERR(0, 613, __pyx_L1_error)
20098 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20099
20100 /* "cpostprocessing.pyx":631
20101 * <double*>(v_elementBoundary.data))
20102 *
20103 * def getGlobalElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
20104 * np.ndarray elementNodesArray,
20105 * np.ndarray elementBoundaryElementsArray,
20106*/
20107 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_57getGlobalElementBoundaryRT0velocityValuesFluxRep, 0, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryRT0veloc_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 631, __pyx_L1_error)
20108 __Pyx_GOTREF(__pyx_t_2);
20109 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20110 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20111 #endif
20112 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalElementBoundaryRT0veloc_2, __pyx_t_2) < (0)) __PYX_ERR(0, 631, __pyx_L1_error)
20113 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20114
20115 /* "cpostprocessing.pyx":650
20116 * <double*>(v_elementBoundary_global.data))
20117 *
20118 * def getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(np.ndarray nodeArray, # <<<<<<<<<<<<<<
20119 * np.ndarray elementNodesArray,
20120 * np.ndarray elementBoundaryElementsArray,
20121*/
20122 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_59getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep, 0, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary_3, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 650, __pyx_L1_error)
20123 __Pyx_GOTREF(__pyx_t_2);
20124 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20125 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20126 #endif
20127 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getGlobalExteriorElementBoundary_3, __pyx_t_2) < (0)) __PYX_ERR(0, 650, __pyx_L1_error)
20128 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20129
20130 /* "cpostprocessing.pyx":671
20131 * <double*>(v_ebqe.data))
20132 *
20133 * def getRT0velocityValuesFluxRep_arbitraryElementMembership(np.ndarray nodeArray, # <<<<<<<<<<<<<<
20134 * np.ndarray elementNodesArray,
20135 * np.ndarray abs_det_J,
20136*/
20137 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_61getRT0velocityValuesFluxRep_arbitraryElementMembership, 0, __pyx_mstate_global->__pyx_n_u_getRT0velocityValuesFluxRep_arbi, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 671, __pyx_L1_error)
20138 __Pyx_GOTREF(__pyx_t_2);
20139 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20140 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20141 #endif
20142 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getRT0velocityValuesFluxRep_arbi, __pyx_t_2) < (0)) __PYX_ERR(0, 671, __pyx_L1_error)
20143 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20144
20145 /* "cpostprocessing.pyx":692
20146 * <double*>(v_element.data))
20147 *
20148 * def fluxCorrectionVelocityUpdate(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20149 * np.ndarray exteriorElementBoundaries,
20150 * np.ndarray elementBoundaryElements,
20151*/
20152 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_63fluxCorrectionVelocityUpdate, 0, __pyx_mstate_global->__pyx_n_u_fluxCorrectionVelocityUpdate, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 692, __pyx_L1_error)
20153 __Pyx_GOTREF(__pyx_t_2);
20154 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20155 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20156 #endif
20157 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fluxCorrectionVelocityUpdate, __pyx_t_2) < (0)) __PYX_ERR(0, 692, __pyx_L1_error)
20158 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20159
20160 /* "cpostprocessing.pyx":718
20161 * <double*>(velocity_element.data))
20162 *
20163 * def computeFluxCorrectionPWC(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20164 * np.ndarray exteriorElementBoundaries,
20165 * np.ndarray elementBoundaryElements,
20166*/
20167 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_65computeFluxCorrectionPWC, 0, __pyx_mstate_global->__pyx_n_u_computeFluxCorrectionPWC, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error)
20168 __Pyx_GOTREF(__pyx_t_2);
20169 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20170 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20171 #endif
20172 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_computeFluxCorrectionPWC, __pyx_t_2) < (0)) __PYX_ERR(0, 718, __pyx_L1_error)
20173 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20174
20175 /* "cpostprocessing.pyx":734
20176 * <double*>(fluxCorrection.data))
20177 *
20178 * def sunWheelerGSsweep(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20179 * np.ndarray exteriorElementBoundaries,
20180 * np.ndarray elementBoundaryElements,
20181*/
20182 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_67sunWheelerGSsweep, 0, __pyx_mstate_global->__pyx_n_u_sunWheelerGSsweep, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L1_error)
20183 __Pyx_GOTREF(__pyx_t_2);
20184 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20185 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20186 #endif
20187 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sunWheelerGSsweep, __pyx_t_2) < (0)) __PYX_ERR(0, 734, __pyx_L1_error)
20188 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20189
20190 /* "cpostprocessing.pyx":794
20191 * self.nsf.subdomain_column_pivots)
20192 *
20193 * def setU(self, # <<<<<<<<<<<<<<
20194 * double val):
20195 * cdef int I
20196*/
20197 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_14NodeStarFactor_5setU, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeStarFactor_setU, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
20198 __Pyx_GOTREF(__pyx_t_2);
20199 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20200 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20201 #endif
20202 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, __pyx_mstate_global->__pyx_n_u_setU, __pyx_t_2) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)
20203 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20204
20205 /* "cpostprocessing.pyx":802
20206 * self.nsf.subdomain_U[I][i] = val
20207 *
20208 * def copyData(self, # <<<<<<<<<<<<<<
20209 * NodeStarFactor other):
20210 * pp.nodeStar_copy(other.nsf.N,
20211*/
20212 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_14NodeStarFactor_7copyData, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeStarFactor_copyData, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 802, __pyx_L1_error)
20213 __Pyx_GOTREF(__pyx_t_2);
20214 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20215 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20216 #endif
20217 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_15cpostprocessing_NodeStarFactor, __pyx_mstate_global->__pyx_n_u_copyData, __pyx_t_2) < (0)) __PYX_ERR(0, 802, __pyx_L1_error)
20218 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20219
20220 /* "(tree fragment)":1
20221 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
20222 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
20223 * def __setstate_cython__(self, __pyx_state):
20224*/
20225 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_14NodeStarFactor_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeStarFactor___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1, __pyx_L1_error)
20226 __Pyx_GOTREF(__pyx_t_2);
20227 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20228 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20229 #endif
20230 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
20231 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20232
20233 /* "(tree fragment)":3
20234 * def __reduce_cython__(self):
20235 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
20236 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
20237 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
20238*/
20239 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_14NodeStarFactor_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeStarFactor___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 3, __pyx_L1_error)
20240 __Pyx_GOTREF(__pyx_t_2);
20241 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20242 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20243 #endif
20244 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(2, 3, __pyx_L1_error)
20245 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20246
20247 /* "cpostprocessing.pyx":819
20248 * &self.nsf.subdomain_column_pivots)
20249 *
20250 * def calculateConservationResidualPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20251 * np.ndarray exteriorElementBoundaries,
20252 * np.ndarray elementBoundaryElements,
20253*/
20254 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_69calculateConservationResidualPWL, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 819, __pyx_L1_error)
20255 __Pyx_GOTREF(__pyx_t_2);
20256 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20257 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20258 #endif
20259 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL, __pyx_t_2) < (0)) __PYX_ERR(0, 819, __pyx_L1_error)
20260 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20261
20262 /* "cpostprocessing.pyx":874
20263 * <double*>(vConservative_element.data))
20264 *
20265 * def calculateConservationJacobianPWL(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20266 * np.ndarray exteriorElementBoundaries,
20267 * np.ndarray elementBoundaryElements,
20268*/
20269 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_71calculateConservationJacobianPWL, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error)
20270 __Pyx_GOTREF(__pyx_t_2);
20271 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20272 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20273 #endif
20274 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL, __pyx_t_2) < (0)) __PYX_ERR(0, 874, __pyx_L1_error)
20275 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20276
20277 /* "cpostprocessing.pyx":915
20278 * &nodeStarFactor.nsf)
20279 *
20280 * def calculateConservationFluxPWL(np.ndarray nElements_node, # <<<<<<<<<<<<<<
20281 * np.ndarray internalNodes,
20282 * np.ndarray fluxBoundaryNodes,
20283*/
20284 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_73calculateConservationFluxPWL, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 915, __pyx_L1_error)
20285 __Pyx_GOTREF(__pyx_t_2);
20286 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20287 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20288 #endif
20289 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL, __pyx_t_2) < (0)) __PYX_ERR(0, 915, __pyx_L1_error)
20290 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20291
20292 /* "cpostprocessing.pyx":926
20293 * &nodeStarFactor.nsf)
20294 *
20295 * def calculateConservationFluxPWL_noNeumannFix(np.ndarray nElements_node, # <<<<<<<<<<<<<<
20296 * NodeStarFactor nodeStarFactor):
20297 * pp.calculateConservationFluxPWL_noNeumannFix(nElements_node.shape[0],
20298*/
20299 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_75calculateConservationFluxPWL_noNeumannFix, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL_noN, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 926, __pyx_L1_error)
20300 __Pyx_GOTREF(__pyx_t_2);
20301 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20302 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20303 #endif
20304 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL_noN, __pyx_t_2) < (0)) __PYX_ERR(0, 926, __pyx_L1_error)
20305 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20306
20307 /* "cpostprocessing.pyx":932
20308 * &nodeStarFactor.nsf)
20309 *
20310 * def calculateConservationResidualPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
20311 * np.ndarray interiorElementBoundaries,
20312 * np.ndarray exteriorElementBoundaries,
20313*/
20314 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_77calculateConservationResidualPWL_opt, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 932, __pyx_L1_error)
20315 __Pyx_GOTREF(__pyx_t_2);
20316 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20317 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20318 #endif
20319 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_2, __pyx_t_2) < (0)) __PYX_ERR(0, 932, __pyx_L1_error)
20320 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20321
20322 /* "cpostprocessing.pyx":978
20323 * <double*>(vConservative_element.data))
20324 *
20325 * def calculateConservationResidualPWL_primative(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20326 * np.ndarray exteriorElementBoundaries,
20327 * np.ndarray elementBoundaryElements,
20328*/
20329 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_79calculateConservationResidualPWL_primative, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_3, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
20330 __Pyx_GOTREF(__pyx_t_2);
20331 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20332 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20333 #endif
20334 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_3, __pyx_t_2) < (0)) __PYX_ERR(0, 978, __pyx_L1_error)
20335 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20336
20337 /* "cpostprocessing.pyx":1006
20338 * <double*>(vConservative.data))
20339 *
20340 * def calculateConservationJacobianPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
20341 * np.ndarray interiorElementBoundaries,
20342 * np.ndarray exteriorElementBoundaries,
20343*/
20344 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_81calculateConservationJacobianPWL_opt, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1006, __pyx_L1_error)
20345 __Pyx_GOTREF(__pyx_t_2);
20346 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20347 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20348 #endif
20349 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1006, __pyx_L1_error)
20350 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20351
20352 /* "cpostprocessing.pyx":1046
20353 * &nodeStarFactor.nsf)
20354 *
20355 * def calculateConservationFluxPWL_opt(int nNodes_owned, # <<<<<<<<<<<<<<
20356 * np.ndarray nElements_node,
20357 * np.ndarray internalNodes,
20358*/
20359 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_83calculateConservationFluxPWL_opt, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL_opt, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
20360 __Pyx_GOTREF(__pyx_t_2);
20361 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20362 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20363 #endif
20364 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationFluxPWL_opt, __pyx_t_2) < (0)) __PYX_ERR(0, 1046, __pyx_L1_error)
20365 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20366
20367 /* "cpostprocessing.pyx":1059
20368 * &nodeStarFactor.nsf)
20369 *
20370 * def calculateConservationResidualPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20371 * np.ndarray exteriorElementBoundaries,
20372 * np.ndarray elementBoundaryElements,
20373*/
20374 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_85calculateConservationResidualPWL_interiorBoundaries, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_4, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1059, __pyx_L1_error)
20375 __Pyx_GOTREF(__pyx_t_2);
20376 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20377 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20378 #endif
20379 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualPWL_4, __pyx_t_2) < (0)) __PYX_ERR(0, 1059, __pyx_L1_error)
20380 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20381
20382 /* "cpostprocessing.pyx":1104
20383 * <double*>(vConservative_element.data))
20384 *
20385 * def calculateConservationJacobianPWL_interiorBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20386 * np.ndarray exteriorElementBoundaries,
20387 * np.ndarray elementBoundaryElements,
20388*/
20389 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_87calculateConservationJacobianPWL_interiorBoundaries, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL_3, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1104, __pyx_L1_error)
20390 __Pyx_GOTREF(__pyx_t_2);
20391 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20392 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20393 #endif
20394 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationJacobianPWL_3, __pyx_t_2) < (0)) __PYX_ERR(0, 1104, __pyx_L1_error)
20395 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20396
20397 /* "cpostprocessing.pyx":1138
20398 * &nodeStarFactor.nsf)
20399 *
20400 * def _subdomain_U_copy_global2local(int max_nN_owned, # <<<<<<<<<<<<<<
20401 * np.ndarray elementNodes,
20402 * np.ndarray nodeStarElements,
20403*/
20404 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_89_subdomain_U_copy_global2local, 0, __pyx_mstate_global->__pyx_n_u_subdomain_U_copy_global2local, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1138, __pyx_L1_error)
20405 __Pyx_GOTREF(__pyx_t_2);
20406 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20407 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20408 #endif
20409 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_subdomain_U_copy_global2local, __pyx_t_2) < (0)) __PYX_ERR(0, 1138, __pyx_L1_error)
20410 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20411
20412 /* "cpostprocessing.pyx":1151
20413 * <double*>(subdomain_U.data))
20414 *
20415 * def _subdomain_U_copy_local2global(int max_nN_owned, # <<<<<<<<<<<<<<
20416 * np.ndarray elementNodes,
20417 * np.ndarray nodeStarElements,
20418*/
20419 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_91_subdomain_U_copy_local2global, 0, __pyx_mstate_global->__pyx_n_u_subdomain_U_copy_local2global, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1151, __pyx_L1_error)
20420 __Pyx_GOTREF(__pyx_t_2);
20421 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20422 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20423 #endif
20424 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_subdomain_U_copy_local2global, __pyx_t_2) < (0)) __PYX_ERR(0, 1151, __pyx_L1_error)
20425 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20426
20427 /* "cpostprocessing.pyx":1164
20428 * <double*>(subdomain_U.data))
20429 *
20430 * def calculateConservationResidualGlobalBoundaries(np.ndarray interiorElementBoundaries, # <<<<<<<<<<<<<<
20431 * np.ndarray exteriorElementBoundaries,
20432 * np.ndarray elementBoundaryElements,
20433*/
20434 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_93calculateConservationResidualGlobalBoundaries, 0, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualGlo, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error)
20435 __Pyx_GOTREF(__pyx_t_2);
20436 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20437 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20438 #endif
20439 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateConservationResidualGlo, __pyx_t_2) < (0)) __PYX_ERR(0, 1164, __pyx_L1_error)
20440 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20441
20442 /* "cpostprocessing.pyx":1192
20443 * <double*>(conservationResidual.data))
20444 *
20445 * def updateSelectedExteriorElementBoundaryFlux(np.ndarray exteriorElementBoundaries, # <<<<<<<<<<<<<<
20446 * np.ndarray elementBoundaryElements,
20447 * np.ndarray elementBoundaryLocalElementBoundaries,
20448*/
20449 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_95updateSelectedExteriorElementBoundaryFlux, 0, __pyx_mstate_global->__pyx_n_u_updateSelectedExteriorElementBou, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1192, __pyx_L1_error)
20450 __Pyx_GOTREF(__pyx_t_2);
20451 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20452 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20453 #endif
20454 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateSelectedExteriorElementBou, __pyx_t_2) < (0)) __PYX_ERR(0, 1192, __pyx_L1_error)
20455 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20456
20457 /* "cpostprocessing.pyx":1211
20458 * <double*>(residual.data))
20459 *
20460 * def updateAdvectiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
20461 * np.ndarray advectiveVelocity,
20462 * np.ndarray velocity):
20463*/
20464 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_97updateAdvectiveVelocityPointEval, 0, __pyx_mstate_global->__pyx_n_u_updateAdvectiveVelocityPointEval, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error)
20465 __Pyx_GOTREF(__pyx_t_2);
20466 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20467 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20468 #endif
20469 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateAdvectiveVelocityPointEval, __pyx_t_2) < (0)) __PYX_ERR(0, 1211, __pyx_L1_error)
20470 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20471
20472 /* "cpostprocessing.pyx":1221
20473 * <double*>(velocity.data))
20474 *
20475 * def updateDiffusiveVelocityPointEval(double updateCoef, # <<<<<<<<<<<<<<
20476 * np.ndarray diffusionTensor,
20477 * np.ndarray grad_phi,
20478*/
20479 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_99updateDiffusiveVelocityPointEval, 0, __pyx_mstate_global->__pyx_n_u_updateDiffusiveVelocityPointEval, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1221, __pyx_L1_error)
20480 __Pyx_GOTREF(__pyx_t_2);
20481 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20482 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20483 #endif
20484 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateDiffusiveVelocityPointEval, __pyx_t_2) < (0)) __PYX_ERR(0, 1221, __pyx_L1_error)
20485 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20486
20487 /* "cpostprocessing.pyx":1233
20488 * <double*>(velocity.data))
20489 *
20490 * def updateDiffusiveVelocityPointEval_sd(double updateCoef, # <<<<<<<<<<<<<<
20491 * np.ndarray rowptr,
20492 * np.ndarray colind,
20493*/
20494 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_101updateDiffusiveVelocityPointEval_sd, 0, __pyx_mstate_global->__pyx_n_u_updateDiffusiveVelocityPointEval_2, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __pyx_L1_error)
20495 __Pyx_GOTREF(__pyx_t_2);
20496 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20497 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20498 #endif
20499 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_updateDiffusiveVelocityPointEval_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1233, __pyx_L1_error)
20500 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20501
20502 /* "cpostprocessing.pyx":1249
20503 * <double*>(velocity.data))
20504 *
20505 * def calculateElementResidualPWL(np.ndarray alpha, # <<<<<<<<<<<<<<
20506 * np.ndarray elementResidual,
20507 * np.ndarray elementResidualPWL):
20508*/
20509 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_103calculateElementResidualPWL, 0, __pyx_mstate_global->__pyx_n_u_calculateElementResidualPWL, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1249, __pyx_L1_error)
20510 __Pyx_GOTREF(__pyx_t_2);
20511 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20512 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20513 #endif
20514 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateElementResidualPWL, __pyx_t_2) < (0)) __PYX_ERR(0, 1249, __pyx_L1_error)
20515 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20516
20517 /* "cpostprocessing.pyx":1259
20518 * <double*>(elementResidualPWL.data))
20519 *
20520 * def copyElementBoundaryVelocityToParVec(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
20521 * np.ndarray[int, ndim=2] permutations,
20522 * np.ndarray ebq_v_par_local):
20523*/
20524 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_105copyElementBoundaryVelocityToParVec, 0, __pyx_mstate_global->__pyx_n_u_copyElementBoundaryVelocityToPar, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1259, __pyx_L1_error)
20525 __Pyx_GOTREF(__pyx_t_2);
20526 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20527 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20528 #endif
20529 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_copyElementBoundaryVelocityToPar, __pyx_t_2) < (0)) __PYX_ERR(0, 1259, __pyx_L1_error)
20530 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20531
20532 /* "cpostprocessing.pyx":1273
20533 * ebq_v_par_local[ebN,permutations[ebN,k],I] = ebq_velocity[ebN,k,I]
20534 *
20535 * def addAverageToParVec(np.ndarray ebq_velocityAverage, # <<<<<<<<<<<<<<
20536 * np.ndarray[int, ndim=2] permutations,
20537 * np.ndarray ebq_v_par_local):
20538*/
20539 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_107addAverageToParVec, 0, __pyx_mstate_global->__pyx_n_u_addAverageToParVec, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1273, __pyx_L1_error)
20540 __Pyx_GOTREF(__pyx_t_2);
20541 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20542 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20543 #endif
20544 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_addAverageToParVec, __pyx_t_2) < (0)) __PYX_ERR(0, 1273, __pyx_L1_error)
20545 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20546
20547 /* "cpostprocessing.pyx":1287
20548 * ebq_v_par_local[ebN, permutations[ebN,k], I] += ebq_velocityAverage[ebN, k, I]
20549 *
20550 * def copyParVecToElementBoundaryVelocity(np.ndarray ebq_velocity, # <<<<<<<<<<<<<<
20551 * np.ndarray[int, ndim=2] permutations,
20552 * np.ndarray ebq_v_par_local):
20553*/
20554 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_15cpostprocessing_109copyParVecToElementBoundaryVelocity, 0, __pyx_mstate_global->__pyx_n_u_copyParVecToElementBoundaryVeloc, NULL, __pyx_mstate_global->__pyx_n_u_cpostprocessing, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1287, __pyx_L1_error)
20555 __Pyx_GOTREF(__pyx_t_2);
20556 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
20557 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
20558 #endif
20559 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_copyParVecToElementBoundaryVeloc, __pyx_t_2) < (0)) __PYX_ERR(0, 1287, __pyx_L1_error)
20560 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20561
20562 /* "cpostprocessing.pyx":1
20563 * # A type of -*- python -*- file # <<<<<<<<<<<<<<
20564 * # cython: language_level=3
20565 * import numpy as np
20566*/
20567 __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
20568 __Pyx_GOTREF(__pyx_t_2);
20569 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_2) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
20570 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
20571
20572 /*--- Wrapped vars code ---*/
20573
20574 goto __pyx_L0;
20575 __pyx_L1_error:;
20576 __Pyx_XDECREF(__pyx_t_2);
20577 if (__pyx_m) {
20578 if (__pyx_mstate->__pyx_d && stringtab_initialized) {
20579 __Pyx_AddTraceback("init cpostprocessing", __pyx_clineno, __pyx_lineno, __pyx_filename);
20580 }
20581 #if !CYTHON_USE_MODULE_STATE
20582 Py_CLEAR(__pyx_m);
20583 #else
20584 Py_DECREF(__pyx_m);
20585 if (pystate_addmodule_run) {
20586 PyObject *tp, *value, *tb;
20587 __Pyx_PyErr_FetchException(&tp, &value, &tb);
20588 __Pyx_State_RemoveModule(&__pyx_moduledef);
20589 __Pyx_PyErr_RestoreException(tp, value, tb);
20590 }
20591 #endif
20592 } else if (!PyErr_Occurred()) {
20593 PyErr_SetString(PyExc_ImportError, "init cpostprocessing");
20594 }
20595 __pyx_L0:;
20596 __Pyx_RefNannyFinishContext();
20597 #if CYTHON_PEP489_MULTI_PHASE_INIT
20598 return (__pyx_m != NULL) ? 0 : -1;
20599 #else
20600 return __pyx_m;
20601 #endif
20602}
20603/* #### Code section: pystring_table ### */
20604/* #### Code section: cached_builtins ### */
20605
20606static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
20607 CYTHON_UNUSED_VAR(__pyx_mstate);
20608
20609 /* Cached unbound methods */
20610 __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
20611 __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
20612 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
20613 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
20614 __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
20615 __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
20616 return 0;
20617}
20618/* #### Code section: cached_constants ### */
20619
20620static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
20621 __Pyx_RefNannyDeclarations
20622 int __pyx_lineno = 0;
20623 const char *__pyx_filename = NULL;
20624 int __pyx_clineno = 0;
20625 CYTHON_UNUSED_VAR(__pyx_mstate);
20626 __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
20627
20628 /* "cpostprocessing.pyx":7
20629 * cimport postprocessing as pp
20630 *
20631 * def postProcessRT0velocityFromP1nc(np.ndarray nFreeDOF_element, # <<<<<<<<<<<<<<
20632 * np.ndarray freeLocal_element,
20633 * np.ndarray detJ,
20634*/
20635 {
20636 PyObject* __pyx_temp[2] = {Py_None, Py_None};
20637 __pyx_mstate_global->__pyx_tuple[0] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 7, __pyx_L1_error)
20638 __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
20639 }
20640 __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);
20641 #if CYTHON_IMMORTAL_CONSTANTS
20642 {
20643 PyObject **table = __pyx_mstate->__pyx_tuple;
20644 for (Py_ssize_t i=0; i<1; ++i) {
20645 #if PY_VERSION_HEX >= 0x030F0000
20646 PyUnstable_SetImmortal(table[i]);
20647 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20648 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
20649 #if PY_VERSION_HEX < 0x030E0000
20650 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
20651 #else
20652 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
20653 #endif
20654 {
20655 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
20656 }
20657 #else
20658 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
20659 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
20660 #endif
20661 }
20662 }
20663 #endif
20664 __Pyx_RefNannyFinishContext();
20665 return 0;
20666 __pyx_L1_error:;
20667 __Pyx_RefNannyFinishContext();
20668 return -1;
20669}
20670/* #### Code section: init_constants ### */
20671
20672static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
20673 int __pyx_lineno = 0;
20674 const char *__pyx_filename = NULL;
20675 int __pyx_clineno = 0;
20676 CYTHON_UNUSED_VAR(__pyx_mstate);
20677 {
20678 const struct { const unsigned int length: 8; } str_length_index[] = {{15},{1},{179},{8},{7},{6},{2},{9},{50},{39},{34},{27},{20},{14},{1},{14},{32},{34},{23},{19},{20},{12},{17},{8},{12},{8},{10},{8},{11},{12},{10},{17},{13},{12},{12},{19},{8},{13},{30},{30},{1},{19},{9},{18},{17},{5},{11},{18},{12},{32},{32},{28},{41},{32},{32},{51},{36},{45},{32},{51},{36},{42},{27},{18},{6},{24},{20},{8},{35},{35},{15},{2},{6},{4},{15},{9},{23},{15},{2},{3},{15},{19},{5},{5},{15},{12},{19},{6},{13},{9},{18},{22},{23},{28},{37},{32},{12},{17},{15},{18},{17},{25},{30},{31},{1},{33},{33},{4},{17},{14},{28},{21},{20},{17},{39},{39},{47},{35},{42},{38},{27},{34},{53},{41},{48},{61},{49},{56},{54},{8},{7},{5},{1},{25},{13},{5},{1},{12},{2},{1},{18},{18},{13},{14},{16},{12},{7},{17},{6},{13},{14},{9},{24},{16},{21},{30},{14},{2},{5},{5},{8},{12},{3},{15},{3},{31},{34},{30},{33},{38},{42},{4},{4},{12},{3},{7},{10},{6},{6},{1},{8},{6},{12},{8},{16},{4},{4},{10},{26},{24},{32},{24},{10},{11},{17},{1},{26},{34},{17},{32},{10},{32},{35},{42},{45},{41},{8},{13},{21},{6},{9},{17},{24},{3},{6},{5},{8},{16},{1},{6},{6},{6},{14},{16},{18},{20},{1},{6},{9},{17},{24}};
20679 const struct { const unsigned int length: 9; } bytes_length_index[] = {{9},{39},{29},{132},{67},{120},{119},{57},{57},{69},{73},{55},{99},{74},{76},{147},{151},{157},{58},{58},{93},{90},{87},{99},{98},{102},{105},{81},{97},{84},{100},{133},{105},{103},{113},{120},{99},{114},{140},{153},{147},{156},{157},{159},{212},{211},{199},{373},{171},{401},{250},{185},{223},{210},{118},{55}};
20680 #ifndef CYTHON_COMPRESS_STRINGS
20681 #define CYTHON_COMPRESS_STRINGS 90
20682 #endif
20683 #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (4244 bytes) */
20684static const char cstring[] = "(\265/\375`\245+U\204\000*\222\024\037G\360\356\346\001\314\300r\202\244\014r\214\262\360A>a4\n\246\030aki\241\n\310\315\356\rW\210\311\205\3326\264\213\367\251\002\376`\207h\232!=((~\354\314\322\217e\017z\254\263\034P\340\247\314\255\002\035\337C\212\301\001\333\001\356\001\352\331\322As\207\361\024\325s\233\372g\263\343H\2128Z\253.-\372\210\347\017QH\243\252\047\215^Y\024v\206\342\031\232\010sK\207Y]\313\014#U\364F$\267\356\331\232T\263h\262\347\214z\222&\t\232\231l\235a\306Y\321SF\332\300X\255\223\023\304#cK\233\034S\3656O\232\222\rS:w\350r^jJ\334\250\223\014M\242\235\363\013-3\321JjVL\314\241f\251\231\347\374\321:\346\211b\306\001W-\202\273\225\367\372r\221:H\314\354\267\3129U\346\360,Sen\235\245\013\004\201N\021\324&\271\262\347&\327\255W\231.3\233\242\260l\226\254x\232d\206\355\320dG\230^\311U\273@\020\034u\317*\323:`\215\214\210\007\004\201\362\232k\210\3203\\\363\272A0D\251\347\032f\0335\257>Z<u6\350R\203{=c$O\207\232\031\031\021\212\332[\207\373D\303\223\315\252\350k\3150vUO\024F\226d\0369\242\254\252\231\204\241\264z\206 \212\010\205\261&\010\256\244I\206e&c\047\3634Y\221\003A\035\262\242VA\220[K6\217\247)n2t\231Z\227\255\274IQ\203\242\230Qz\227\331F\307H\225\024\271\021\227I\202\346I\256y=M3\217p\253\336\234\251wF\271s\345D\255M\216=\211\270q\003\207\332\032%Z9\223\\K\222mq\343\311m\275w.\303\026\273\271\275\206\272\204V9\321\314\234\n\213\312\211g\305\303\231\252^CR]7GT\3525\253\272E\226Z\3446\311\231\347k%\242\341\326\374Z9\275\236:1%\253\251a\256\254\216\234\326\352J\022%\332\n$\257\361u\214\256\0138aA\305i\317}\324K\274\337{\032\201\370X\361\315R3V\021F\021\201\0011\351\335^\225+\300\345\336\324\345pW-\205\264\313\270\006k\270\360/\234b\324)&\301\033\274\362\032z\327Y|\345\024\177\257\367\232Fq\347I\036\250{\340\036\037\337\227;\343\262\255l\006\241\363\0216\017\301\353\rPN\342\255k]\204\247ZNb\315\247\235\243\237x\363\213\342\351\313\361Bp\303\226E\221\002\002q:\353\231\305\212d-2\006\270\320\\\237\026\244\335Z\325\254A\201xk;\010\270\310mJ+\240Mg""\034\263\023-\010`\000\030\275\320Zh\036\305S\t:K\027g\377\371X\367\340\032G\361|\r\312G)\2117\017\303S.\224\304\271\177=\306=^\355%\031\271\320Z|3\013E\032\003b\255\205L&\223\221\033\214\221\"8\244\302@\326\010\372\210\340\320P,\006\306b\261\230\250K\355\303#\276V2\250f\324\047\315\312cY\026\325zh\373\334\250\372\025d\262\333\265\252\351\326\261\362\334\340\036WU]\321\241SU\3251\203i\272\313\034\0037\271s\013L\203X\341\320x\376\210\033\014\315\216\007v\2526\353\211\362\240\047\232\313\223DW\026\246jt\307\300\016U\365k=QsoVF}L\362\3441\265VmL\023\334&\251\256\240\315N\215i\2560Q\233C\047\250c\202\262\0143\261\313l\232$\311\222/\024\024Q\362\265U\335\202\351\016\352J\266\324\014\336\324\344\240\374\364\244P\335\243]fV]9gk\266\314,\255\325\021\324k\026Q\240q\034Q\322\204\317\371#\323[k\225]\263\272\332\236\016\267+\273D\255\325\214\202136\202iK\353\264\264L\334;\335\357L6p\025\277yUw1)1yK\035F\206\343\376\306G27\245oH\327]F\376\010\207zM8ntEB\270\330{\273\227\305e|\370\037~\276\314\027\351\"/\t\271\030y\366=(*\320\202KB>|#\307\035\340\246m\205\357\257\340\016N\321CN^ \027\304\005j\275v\302\202\270kI-\320\014c\266\340@\2369\230\255\212\016x3\266(cg\2661\200E[a\200\002\227D\362$\033|\3221\240\304\035\n\353e(\047\007\204B\374\0204\237F\346\313\264\210\370\"\202~P\313\327z\013\352\033;\314\010\353\240\376\367\242\322\022/s\362U\254xOH4RG\361\236p\323\025\t1}\255\347\274\246\224g>\342(!\361\347znHF\330\372\255\235O\002\374,\326\177\371\037=\200\307W\341!\350\313X@?\006\357\254b\023%~\t\362\365_9?g\025\333\254b\237\357\253`\016=\253\030\304\207\377\301\303\367\320\363Ex\017\376Py\030\237\341\037\252\027\326\363}\241\017\366@\202\201\374\212\304\047\001\216\370#f\376\214K\374\342\022\217\274\314\215K\234\341\017\216\371\227N\352\0304Hp\0008\365\034^\210\2474.\362\226\032\036\234\003w\020!\364\205^\376KJ*&\365\255\2536\236\352`\016?>\337\307\345\273t1\320\317\377a\371,\361\307\363S\230\003\336\320}\215w)\017\371P\047\222\330\343\035g\275\030$\035\037\341\206\2242\300\274\026J""\261\326S\316\301\273\222\216\333\271\245\214\354Yp\002\237_eo\263\362Wl\372\213\205Oz-\244=\006$q /\005\022\223\341\3643\377\360\236L q\307I\334\346mqI.HF\211\334_[\017O\2468\363\217\307\336\223\257{}\344*S\234\372\354g|\347Y\035\003g\300\325\321\033\337\213\361\246n\317\201\266f\266\261\000\306][\225vEP\300kQ\362\020[\007\255\326Bh\341a\252\257\365\326\347O\256\352\047\217\177\220:\211HN\206uH\"V?\365=`W\362\036\340\235\014?\365 6\377\3233\244\244\260\244\254h\270\330\272\352uv\2037l\376DJ\352\004\244\021\324\272f\245\031P\021\310\210HL2\002\340c\302\326!d\356\340\343\033\234dd$\003\000\227\3029\030\276\347Mr/\241\254\240`h\270\360\272\206\314g\266\276\312\035G\3535\233\367H\026LNLBJ\336\007\356H+\216\024\355\022H\034R\352\372\010\225I\363\031\322\376\302\341\234\224\237\302\362+\223\311\244y\221\216\301dJ\345\316\242\353)`\r$%+\010<`\235\354?\224\311\277\\\337\345\342\0023:}\220ws\006\376\001\014\000\020R/\3130\213\276y\265\225\177^Y\261\3615++\037\356\220\373L\007\357\244>R?w\223\326\211:\220\277q\230\374\272\274\030:7\345\202t|\256\203\344n\256\252\225\320\321\321\361\265\266\343s]$\236\362\370\235\253=\267\245\225\360%l\230\243\227\344\325^\021\367c#\336\\\315\025i#\214\255G\307F\254q\264\253Y7\333\310\000\260\3613\177y\335L\337\254\361\326\213*y\031J\245\031\0068\177\324_\213\341\017o\376\215L\t\214c#3\372\221&\023\363\263\037\332\235_{L\010|A\265\262\342q\023\223\277 \004\210\017\342\213\3711,%~\206\205\303{<\237\207\345\247\234\245\363,iW\351)\274\323\211\3008[\037\331\374\211_u\236\0065\322\3607X[\375\025L\001X\003L\034\023\007\301\374\321\227\335QO\213\321\246\t`\234\226\337\3427\250<M\352\247\376&\367\241\335\3655\365!\376\202\rW9\235T\276\237\t\204L\250#H\202\272\006\021S2\"\243I\222J\007Sq\030\230d4\225I\245\225\374C\203\263\2014!\0021E\230!\220\020b\004$3\"\025\244\244 \005)\244\003\005-H\255\202,sX\271j\263JW\2209\205}f\246/\204\222\341\370\335\322\222\371\211\267\262K\264\311+\360h\300\346\307\320\341\235\336q\346\373N\033^\212k\223Y\313\337YS\336""\023\021\355\265,Tm\\Nw\032\230\351\301\227\353\3520\326/\200\235:\276[W-*\3716\327I\311\341k\255QDUu\246\"9S\301\300\230\266\250\005\201PJ\241\027xR2\374M\213\362\207~G\\-\366\276\304\211\347\203\000\333\202~\304#n\331\240\033\250\303\330\006]\214\245\242\221 \346`D0l\227E,\225r\033\215CR\376\336\3435\273\217% v\366c=S\025{x\0149:\247\241\254=\373k\216cT25M\276\210\026\005\270\330\352\177,\342\264\2335\372\220{\245\3263q#A\241\047\033\252\007c\033\363b^\220\205\223\235\016\243V\020:\342ro\002\246\227\257\031\352L\031\321\215}?\211\255u`\354\002c\211\302\272>6G\3211k{\247\370\305H\364|(\0228\256\254\312\302\237$:\254\031m\213^\242\321\234\353\252\3277\222 K\224$Q9eJ\230\343\214N\242\026<\303\001\267c\274M\031\004\321\227\021w\224}\210\006\204\335t\213\021\342\177L\364WU\351\023\204j+\322\301I;#\371\217\351\276\253\374f\356\023\023\3535\333JD2\373\317\365\244\3143\030\326\245r\004\363\3422\213[\212,\300\301q\216J\2423z\007<\027\004\31021?\006b\0038\202\213\331\247\353w\363\202\216\331\360Z\035l\314\316\215\214\231=+v\026\333\332\224\303\361\022U\306\3008\3042\017%\245\251\360\355\026X\353U\375\340#\276\245\346\262\2603p0\217\223\252\277\006\253~w\373\310\223L\264C\321W\007\361\024F\003\024\027\322\301xh24\034\334\246\010\351\330p\225\302\252 \026\027&\024$\265\302\207\"\302\353\325\351\226\235H\027\256g\255\310n\0025\217\207\014\222\356P3s\212\234\200\322\310\374\354\047\357\373n\236\002\263\205\250I\031r\000\303U$P\0359R\0309\027\233\362\201\206\315R\235\344\310\004*g\232\304\303\211\265\322\003$}\337\243%\305=\252\222?Wx\341n\313AD\010\326\361\025\264\2109E\243M\006\226ED|\226\203$g&\352\225cyAUHd\n\020\016\007\0257\242\006a$s2\002k)\002\266$\324\006\217\3676r-\224z\224\267\362\273\234P\231sV\335\233Ie\304\301+\205\206\313\2050=\315\t\234\272\230.\352\024\"M\321\2054\327\357\337\216\362}\003\261\3556s\036\350\241\014\251\365H\301\325e\010\371O\270,N\211\355\343\337\204\314\311\3301%\214\227\252\022\375\315$\341\305\252\276\241?\002\225p|\213\003\315\021NsXLiT\252FS""\346\220\266\311\032\230\211\006o\"\204\320\0142\216\243U!f|\261\272v\354\037IS\261\035\300\024/\207\325\3704\021\263|VK0xB2\313#dx\004f\031\204\336\035ou@im\211\2163\237\216V6 \267\314\006\256`\265C?\204\275\010\204x\356\016h\375\265\217\047\330/\251f!\275\000e\372\336\214\257a\3605{\233\036\307Y[\177\203\310\311\244\t\325\260\023\330y\371\331\2511X\375\013\343\204\304\266\3370\206\276yg>\262\022\351.\316\324\021B\242\250\000\366u\375\361\251a\242l\002j\252oQt\2700\227(\321\240\226\217\271\247\303\307m\200\365\346$\316L!\245U\004\340\316\230N\335\025\006\027\350\026\177Y\030R\241w\355\244\034.\025\271*\"\252p\014z\027\302\372\275\336a\223\214\273\366A,\252R\322\230c\223,\350\n\022\026\022\213?\001\033\225\036.Ym5\360\317t\226\223\320\371\241M\202@+\366\247!\203\002_\362D\236\212v#\257\\\003\352\357Q:\347:4\251\331PH*\234\251\006D\243iT\032\001\010\020\330l\266ni~k,S\014+\301\024\017\277\321\013^b\000;iV\205\371G\333\3268d)\263\353E\242\235l\007)\361\246\300\346r7(;\310\362\047\265\250\361m@\366C\367\352%\372\213\216\257c\340q\032d\203\023W\232\224\316-(z\274\377\0327\325\220\013\371\334\217\216\014\330\340\002\307\333j\305\330}\273\014{m\020\265\310N\267\376\340Rv\327\217\310.\347B\335\336~\302>d\276\000\0257?\271=\221\303V\345\317\333\033\220\376<i\274\225i\312t\rl\242-\023\334N\013ANW\343\376VcJz>F-\272\357\275\231\024\226\212\311H0\020\005\004\272\336\232@bE\373\234\032OT)T\301\364,;\3509J\026\305\252\314}\242\375\032\337\225\250\004\202\216^\375\3462\225\032~\264\274\t;$jr\315b\304\234\221\025%\254`\272\221\014\316\206EF\2520p\\\360\016\223\254\351\272~\016\002\373&\"u\346`@C\301\346y\342\334?\254\307H\2517\"fT\223\366\313D\362HYb\215\324n-\2457\327T]\360\003\216 >\271\317\226\254\361\205\201|\357x\010\272H\r3{MNi\"\3450;k\232|\323\351.\211\211\014\273\331\246\241\203\270\025\371\261hi!\377\237\010\246S\331\013\372\320\n4w\325\323\266\230\356_+W\332\027\345]\274_\033LY\272\231\216\n\036\341n\360\342}\201p\207\271\271B\306\324\001\003IX\370\227<Q\247\371\361""\227\210\216TV\326\341KU\004C\301\377\312\265UE\312\007\207\330Y\364xD-\2357\035\221\310<C\021y\220\237\241\233\t/\020\031\302mF\332${\nm$\234\t<\274e\373\027\307\350\207\350\332\025\327m\365\270\024\345\266C\177\030\314\236\311?\247!K\2501H\260\013!\315\215\277\022\362)f\367\361\356s\261\300b\211q\020\026\001\037\333\303\227\2158\371\200S6\323\261L2\242\247\023\005\335X\t\312\270\371]\036B\3434\375L\232\343\023\250u\333H\n\344t\301\364\021\224\r\r\022\331\000\213\312~\276B\037\300\246\034\263L\356\344+\201\013\030n\231\265\231\222Hq\334u\241\300\213s\272,\301\341`(\000c\347\332\333\225*\n\254\212Aq\017\006\022\366Qs^u\231\034\375\0139\313r(j\r\201\214\031\3121\023\340\305h\254\"\227D`0~D\236\361\221\263\302\371S\305\t\337\320\304\341\212\243\361\020\346\236\376T\362Tf\241\343\201\214K\206&\212Q\021Y\231Z\226i\341\224\217\3766\353_\231\331\302U\313\331V\004\212\035\270<F\013\306\013!\t2\341i\372\314\271\301jl\004P\257\303{^\203\374\365\n\270\214l\300\024\200\022\341\217\230\354E\360\347\034\032t\207A\206}\366&\263%D\366\263\026\364\305\346\323B\230u@F\260\370\376i\241\r\205\024\367\232\333G\300\361\030cP~\014\233d,\004h\234b\224\r\302J@s\263\021\302\232\205\302@\355%W\tvV\277^\047\340#\324\302\r;\265\310\301\251\314\033\266\355\314\023~@ca&\324sy\204b\305\035\360&\343\372\n (\363\252\364\316\323%\2733*\332\335@s\333\177\370\301\314J\263u\235WeC`\013k\247\246\233,%3\314\367\t\207\367\003R\232\372\377\332(\021\231W\222\373-\006\177p\212\201`3o\304\346NX\256\366\270N$\214F\316\360fJ\026,\260Q\371F\235 \234u8\305\020\200\246\363\300\r\226\301\004\322\313M}\300\360\203\014\202P\354\370\217\252\2311cb\210\304nYL\"\035\345&H\363\341\r\266\320D\212\004*\224\323*\340\047Y{\220E,|\232\310\320\035\236\210\2168\022\310\231\300T\020\017\3510e\225\021\321\334\177]T\315;f/d\017/!\000\316\010\245A\243\251\334\242\261\302\277\344eW\320\302z\211\330\324\234\326a\362T#\225\034\300\335\007\354H\323)\324#\250|*9\310\200e\365\000;\037\320T\342\337Y\210\340\005Y\257(+\017\273l\004I\351""\373\246\004,\272\307\234}<\320\277\252\237hHW\014Y\2110`k\345\006>\014\215C\002\346H\303\316\206\0244\332\225\350\300I7";
20685 PyObject *data = __Pyx_DecompressString(cstring, 4244, 3);
20686 #define __Pyx_DecompressString_LZSS_UNUSED
20687 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
20688 const char* const bytes = __Pyx_PyBytes_AsString(data);
20689 #if !CYTHON_ASSUME_SAFE_MACROS
20690 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
20691 #endif
20692 #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (4321 bytes) */
20693static const char cstring[] = "x\332\3159K[\033G\266\326\304`\307\3273\0232\304c\0473\2160\342i$\2200\030\033?\020F\3701\030#\236\216\343\244\323\250[\320\216\350\226\272[\0022\017{\311RK-\265\354e/{\251\245\226\265\354\245\177B~\302\234S\325\325\335B\022&\363\315\375\356\315gtNU\235\252:u\336\2473j\352\262\034\315\353\342\336\201\254\232c\217W5S\216\232\373\242\031}rl\356kjT1\242\222\\Pve]4\345\302q\3240u%g\312:\022\251\321\265\314Z\374\316\334\235\250\250JQ]~\047\347L#j\224ws\005\3210d#\252\345\243\273e\245`*j\324<.\312F\"\372<\037=\326\312QU\226\245\250\251E\213@\027\336`\356\313j\324\220MD\242#\242\252j\246h*\232*\300vE\335\033\211J\212\016\227(\025\031w/\213\005CN\210\222$\000\235,)\206\270[\220e\025\177\367r\212\3010I\325\340\005y\261\\0\243\202\240\313R9\047\013BT*\323#TM\215\303\213*\212X\200\325\234\242*\246 \250\345\203\342qB\310i\272\2348\200}\212\250\353\342q4/*\005\306\266rP\324t3LV>\020\315\3756\212\242\016|\225\215\311\\Q3p\220\223\r\003\236\221(\036\037-.\275\204-kJE3\rA.\310(~6\307G\317W5I\3360E}Y\314\231\232\336:J\370O\311Q=\tB\333:\210\321\000\351u\245\310i\305\343%\321\024OM\303\266-AX;>\202\277%P\265\260*\037\231\353r^\020<u\200\364@R\2500aO6\025S>\300\211|Y\315!\334\343\267\302\177\007\242\242R\250I\345\002\235Q\305\003\nA\000\202GV*\213\005>\315\265\323\3668\177B>\302\001\360\350\037e\204.l{\262 \230\262\001\032\025\024\003\365\244\225\301\024e\001\014N\322(s[\002JA\330+h\273b!U\320rb\241}\225N\247\030\215(f\230v\262eQ\332\221\225\275}\023\254\316\020$\340\350\005Xb\272\002\216\262\047ojk\242\276-\347D\251\302\314u[\206S\024\363X,\024\367E\372\303\304-\032\307jN\321\022>s\006:\214\004\226\220\322\367\031\276\202\327\303D\022\014\010=\014\334\341\245\210^(\267\256\247\332\327a!W.\200@\236h\252!\353\025\352K\313\205\362\321\332\316\312Yk\340O\2532\230\264\252.+Gg\022jE\263\343\372\0131\247\355*\242\332\355\242\320\272\240\250\020O\024M_\324\312\252$\352J\027\276\303[\272]\273.\033\212\004\006\365\224*\353\023\007r\342n<\206\326\317\313cx\313\247xD\232\242\256\200\307\203}""\370\224\236y\205y+\240\315\2029\232\272\230\223w\305\334\3179\r\246\244\234vP,\2332j\342\211\246\353L\363k;Or\035\356\342\276\216\320\273\301{\3111\267Ln\262H\302\260M\255\013\351\251p&mH\362\036\244\021\360\201\027\222\222\317\227\r\270ySV\rM\227\264\374K\261\010\316\003\010\306\030\357\300Ut\234]M7Z\247\r\351H\336]\225wK\236C\nyx[hX\361\356\307)\025\177*\364G(\212:sR6\027\020q\334\363J\230\222\351\0369\240\222\366@\202\342\236\301C0<3\047\243\262\375\031_\343i\314\002\255\263\\\230F\227\351N[\250\277fN\037~\212\010\303\013d\334\262.{A\306[\307`\335\202\207o\340\332\226\333l\310\233\241RB\2730 \246S{n\347\243\333\002\273\250\333\352\246\266\361\263R\314\347iP;#b\265\022t\010Y\250r\374\343\202\240\217\314\267\330x\353\210\033\345VQ\002\367\301\2656\346pR8%\340<\030,e\203/@\342\312\370i8\311\355c[,\224ecE\334\323EuO^\227\213-d\251\363\220y\027\236\367T\217|}s\252\225\372\034$\030\nZ\016[Yzz\216+\317\270\352\214+X\210\375\215\217\354\270\251\323\375\347#l\343\246\243y\236\227\253\316\233\317\340\356\234\033\002.\273-\t\242\276\253@x\367\003\307K\371\000*nc_)\002\237\222P\334W\020z\240\254\360l\324f\351tA\025\013\324k\26043~>\020\217\004uU\320\016UY:0Uu\351\3252d\022%0|\265\355\024>\003e\215\226\017\006*\034\252.\203\337\340\021|3\275\211\235\256\256ip\277\241\006\261\313\233\330(B\342R\267\303\333p\340\327\275x0\r/\252W\212\236N\023\247\346\333\306\2356\033\376\356\226UVv\251EZ\274k\320f\350\305\244P\201w\032EY?(\263v\303\000I\027\025\255 z\222\202\342\266\250\0251\353\255\261\254\007\212,Bi\257BkPX\326\265\203\265\244\232\373\304\262`H\255\024\334\022:\357?\275\212\333Y\260<enhB\233\032\354\3103[\352L\025d\371\020\345an\033\376vJ\302\256h@\201\\\201v\nrf\211\211#\310\236P\241K\202H\177\363\020uYR\321\265\303\242\251\353f\360P\300\351F\016\271v!]\345\261\251\200?\257\01730U@\322\025\332R\254\241\025*r\207\364\321m\036\245\203\002hY\017e\025\243\244\233\2646\337\013U\365FY\335\331\227\341n\375\351\206q(\313\305r\271-\335r\326\272\257p\311\226\333&h\"J\237\256\374\251/""d@\306l\375\211&\347\031\266\304J\246\256\224\335\327\301&\030I\310^v\024s\337+w\2445\256\0324\240\363S\372\307n\300\313\240\327\227\272\004:\024|\305;\241\022T\270\225\326\001\027OE\300\302\253\022\032\266\236\3266\341U}\025\372\017b%5*\316<\207|\323\341\241 m\010y\370\335\026\016\350\257~\210E\273 )\025\001s=\033\321n\020c\250q\350\227\364H\342S\260\031\244P\320t\217\216(\327~\365\320VF\034u\341\372C\304\275x\345\344v5\373!\362\261w\324\212X7\355\212\223uDw\354.G\246\355G\215>wl\212L-5\322H6eG\354\233N\245\221m\210nr\316\371\003\202\224\235hD>D~\355\275\320s\371\303/\325k\325R\355\263\332tM\374x\371F\255\317\375\374O\325\331Z_m\260\266Q\217\320\231\217\027/}8:\251T\327\253%\367\362\037O\336\327r\365\353\3265\253d\303\361\tK\264~q\2569\245F\304\235\274\327\206\244\354a\047\342\364\271\223S8\371\047\047\215\340:p\010\340\353F\222\361p\275zT+\327\027\353\373V\336N\333\257\235\255\306@#\351\366NXi+\353\306g\354m\047\351<kd\232}\315\0017\236p\343w\311\335g\315\010@\373\310)\261#\376Z\313\324\257\325K\026\010(Z\377\254>k\365Y\003\356\305\313\047=\047\333\325T5\213l\377\013\336\303Vn\301\301o<\201\365\306\255\254\365\316\351uD\247\344&\346\332\220I\372o\316\371\314I\"\350q\262\010\2564\006\330\275\337\326\336Y\275 \002\335\376\322\276\357l7\222\215\305\206\330(u\227\230\333\"\261\211Y;\357\244\341\314\000\231\264*v\326\026\335\2118N\346@v\000\366\201S\000\357<\255]\032\254\017\324\357Y\313\366\200\235t\007\047\332\220\270\365\035\2340\030\047\361\207p$\033\006\033\037{:\031\344\312\031d\"N#\345\226=\200@\240#\022\177\354\t\370\322mk\200\334~\340,S\325\234\205\314\220\231e\2601\204\231F\226\217\341\220\313\377\201\242\355\367p\024\323s\240\356\313\027.\305\352\311\372\252\307},i_\263KN\304\215\335\266\036\341\370\266\365\220\216\220\337\264\033\033\252\377h\047\331\266Q\260\220\036k\333N\332iw4\336\035IP\376\262\241\031\256\236Q*3\004Cv)\004\230?\301\025I;B\222\317\233\327\232%\262\226u;bsdn\223ln\271\311y2\277A66)\362\267f\322\237`\047\245\354>\320\346\254\323\347\014""\270\251\351\356\310\003\362\340-y\373\003 \224C\034\277l2\270\322\204\020\360\353\0254\323\2025\014\201\340K;e\277m\\k\224\232\277k\016\300\215\335\315\364\312}g\300y\320\2504\263M\321\235\177\332\035Yh\364\242\305\273\363\017\334\371E\262\370#\371Q\240\310O\344\047X\3154\266@\227\000^\003K\000\336\222\354:g\351\300\232\205\047\336\262\027\355\203\306,\350\374V3\rDgx\016D\264\306\017d\3755y\375\035\371\356\215\233Y\357\202\377\2559\013\327\220\365\r7\263\354fV\310\312>\331W(\362\216\274\373\331\315\274jV\310\3266\302#\262\363\032\341?A\200\036[\344&\263\247\3379\267\310\003FI\266\371\321\237`n;\270\030v\240(\210\360S+\376\233y#\257v\311n\2162wi\250\236\256g\335\241)\273\327\026\301\356\002d\302Z\001\253\034\232 \023h\362C\303u\025\214vh\322\372\2733\300v\216\322\330\030\2301\367\370\321I\353_8\236\264\376IGdr\001\302\322\350\030d\226\022\333\231\260\262$\261\332\314\203\305\"c]\320GN\036\336\017\261\021\334=\013\017\244\010\332t\002\254\035\245G\021\260G\n!z\263\303\3579\021ro\207\354\374@~\240\206s\017\366\302\220nh\301\027\310\0025rD\030\345\023\362\344{\362\375[\212P/\3423p\362\325\256\241f\222*k\212\205\367\243F\231\232\334T\322\235\242\t\324\007\367\235\311f\037\202\321\306\200\007\330\261\003\365?z\361\371\342\267\265\367^\230\270\330_}\025\244\234K\047\345j\032S\316\325\223L\365\253\252\010\266r\365\213jOu\2536PK\272_\374\245\226\256m\325\007\353[\326$\370\357\220\363\217f\262\231!Y\024\343\177\353\212ok\245\372\305\372\n\370{\277\275\001)\353-8W\254\271\013\301\347\2347|~\362g8-[\025\317\272\241\247\376\026\3347fK\3160Y@\r\220M\360\221\267\314\223\256^\270\024\2454\333V\322J\273\321\241\356\310p=O\343\177\224G\335\350\270\225\000k\216\216\220\221y\310\2720\204\320\205`\310*!\230\000\306\001\214\330}\376E$\312\013\240(/=\002\004\316Y8\005\0379\364\210\230\025\006p);p\034\2440\346\205\327\361yg\266\321\007V0\316\003n\007\344\216\375\034\254f<I\222\213\215`\310\001\271\003\261\301\033\262\013\302\241=\316\237\035\277c/C\314\275\333\030\202\360L\253\033\023^""\037g\026\t\300@\342\273\366\241C3\"&<,\204\2366J\376\231$\365\204\006RH\ng \374A\220/\236\203\307\246\356\221{/\232\301\2605}\3601\334\361\007t\252R\255\247\266\016\212\355\255\2134\227fAt\275Pd\220G<T\356\270a\364\261\373\210g\212\000y\326\374\034C\304\243\014\3110*>\001q\001\334.4O\236Q\367\367\010(\0234\224\365\362\004\235\350\216\204Rv\002c\032\304\266\047\020\002\020b`B\210\005J\220\321\047\241,\0050\342\364\261\213h*\177\321\034\006\277A\356\222\274\\\352\200@Lc4\200\274j\226(\304\230F\021\032\355\223\363\316\035(b\000`\330\0050G\253_\270f\316.\221\2715\262\206O\306\220\337\025O\323\304\035q\347\026\033c\360\200\271\307\344\361\032\026\024\210\320P\310\027 \373\276!o\276\247\010\275\234\317\300\205_\374\3579&\031\367\334j\034\222\317i?\205{g\360\020O)3\\;3\254p\274\333\034b\325\021\033\373\340\261c\202\316\000@\003\203\300`\223\207P\026\002@\367\236\201\327\203\310\331\025\013\021\230\353m\344iX_XnC\374\"l\341Es\014\223\306\302S\362\224\232\030\"9\222\223(\"\0239\037\2200\023\000H^P\261z\023p\343\227\254\022]\364\004\025\343\005x\354!m\005\322!\204\0133@|b(T1@\204!\206\021\204T\277\261\204\265\013r\216a\343PB\240bY\233\260\366A\276\261\004\201\334\213\345u\377\205K\375\325d5S\273\006\352\215\270\3757\332\220\233\265<\255\037\202\231\257k\303\365H\275\317\355\277U\037\206n\022\220Q\332\315\224\220X\005\033\350\377\206|3\211\303oj\367\352i\357\010\004r=\t\200\334LA\273\200\020\272L\234.X8\204\236\210\216\366\352Y\306\330\215Z\204\334\340\265\364\r^\265\334\340\356\023 \337\324f\353}\365\201\020\302Y\274\021%\020\321[\341]<\004 \272\361\215\301z\252NA\0228\004p\337\242\243y\010P\000\036\331\260e\220\014\336\245eM\277_\020\235\321\004\260p\234<\263-\340mb\020l&\255c\026M\272\265\t\010&\300OFS$\205j\016f!\3760\336R\264,f\267\247\202\2021\214r\346\002\204G\207\2401\200\300\316\210\303\010\265(Dh\025\205\010-\236 \372\277\202\320\001`\021x\013\265\022\214\376\201\363\262\3511\007^Lf|?\232\tj\3000\312\263q\200,5\226i\3071\303=b\006\016g\304a\2042\203\210H\304]\212""\320\310\006\276\256Ct\366]\336y\337\244\001\340\010\032\017\014\000^\327t\375B\317U\362?Q\232\235\014k\220\304C]A/64\2178\337\363\274_\235\207\262\005\275\032oi\301}\2023\020\010\253\2148\214\320\333\020\331#{\373\2004&\260M\342\241x\236\007gXHPN`\202\306w\350\216\360\033\r\007\017\234\325&\026\2357\231\255\376\236\027\354~\345>\346u\036\243\\\363\001\342/\265#\274Y\016f \017\342\327\2240\304\006\036!mS\301\244\377\201n\340Y\366\244\365\336\021CT^\343\340\367\017\030\302\374>\"E#\034\007\274\253\200\047M\320\0243q\337\031nD@\261\023\274X\233\340\2565\221\201n*\331\014#\376\322\031\3104\231\306\252%\014\261\270AH\303\374\304\264\375\000\374\025\307X\014 \304b`\202}6\003\360\020\231\200Y\024\005B|\316\304,\215W\034\304\255\037\235$}Fl\310\035\214aSh\234\214@\225,\325F\352\177\206\250re\014\n\310!\257\304\036\347\037t\306y\334\033\277M\033\337\201\020\342\323@\t\231\006FB\245\344\022\010\035\300\013\020:\000\014?XQ\242\354\307\251\357w\005\214\324\316@\260\014F\255`\321\246\247<s\322\037\257`g\324\343\331\326\0247\262)\036\327\246\270\335\004\210O\303\252P\nQj\320.\305\200Y\000\343 \273\251\3734<M\335\047\367Q!ST\343\355\200\321@;T\n\215Z\001\353\301\242\027.\215\320\332\223\345\251\221\321s LT2BT:BT\353H\022\372\243lh\231\352\"\000_\201tF<E\004\360\024Q+\270\016\302\006\360\027Z\350\337\27202\352\016\2170\373\030<\331\252\306\252{\265\035\310NW\360\203\327\226\227\363\342<\371\305\247\333:\002\037\361i\230v}\300Z\013\204\230\003\203\226\341\027\260\241P\223\360\274\331\027j$:\002Fj\227A\241\301\250\025\350N\237\367\021\356\343\025\364\350\031/\371M\363,8\315\275x\232g\245\000\361i\230\312}@\356\243\177\"D\035L?t6\201u\000o\300\242\000`\356\230~H\036bQ=MSG;`4\330\341\207F\255\340u\003\025\022\373TzH\376\177L\n\002\006\341\340\013\332:~k\353\220*`D2\354\232\014~%\333\240\023^\325\037cM\355@[\3409\003\241\216\356\0030\261\325\246\030\212=\344\016:\275\037\240\370\362\251\010\303\242\0173\317\000v\216F\036\200h\204`\205~Q\035\366*5\357\1777\360\024\027B\306\370R;\342""\205\252\320\314o\315ud\3621Vw\000\361\261\376\3072/\313\371-\343\250C\353\270[v\272c\312\243\265\036\275\047e\307\0356d}\373\260\237\t\377\217\363\236\227\360fm\255\221\r\375\017\207]\047\3221\373\301\210\314\322\013f\355\203\006\033\302y\037 \217\\\257Ej_\325$\254\335o\236\033|]\213\375\347\310\207\364\257\227/|\376{\357C\225Y\273S\013}\254\272S3\261\370\007\203\376\242\277\272T\273\n\035\320:\373r\361o\326Z\322u";
20694 PyObject *data = __Pyx_DecompressString(cstring, 4321, 1);
20695 #define __Pyx_DecompressString_LZSS_UNUSED
20696 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
20697 const char* const bytes = __Pyx_PyBytes_AsString(data);
20698 #if !CYTHON_ASSUME_SAFE_MACROS
20699 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
20700 #endif
20701 #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (5961 bytes) */
20702static const char cstring[] = "\377(tree fr\377agment)?\377Note tha\377t Cython\377 is deli\377berately\377 stricte\375r!\001n PEP-\377484 and \377rejects \377subclass\377es of bu\377iltin ty\377pes. If \377you need\237 to p%\000%\tt\177hen set\200\000\377e \047annot\277ation_<\000i\177ng\047 dirb\000\373iv\242\000o Fal\177se.add_%\000\377edisable{en\002\001gcis\004\003\367dno\277\000faul\377t __redu\177ce__ du>\002\357non-\317\000via\375l\033\000cinit_\377_numpy._\277core.m5\000i\377array fa\373il\261\003impor}t\033\tumath\021\016\373pr\314 us/cp\367ost\n\000cess\376\304\000.pyxBDM\3760\000Pivots_\307ele\373!\016\003\006\005IN\377odeStarF_actor\000\013.\302\006Mc\243B__\017\016\304 s\273 \373e_\013\024copyD\347ataJ\014\373 U__\327Pyx\001\000D\350@_N\377extRef__\354\210D\273 __\335B_ge\377titem___\037_func\004\001\020\000p\003\336\022\000main\030\001mowdul2\002nam:\002z\376\000_ \004qual\017\005\230\226E\314\016\260Fexi\001\237`_\360C\005\336\006\203\000\342\016__te\335s\317@_is\313Aou\377tine_sub\353do\230\002U\342@py_\377global2lOocal\014\017\022\0022\036\003\367aaE\246CQuad\277Weight\363`s\377_det_Jad\377dAverage\377ToParVec\267adv\251\204\003VeZ\000i\177tyalpha\000\002\376\320Casyncio\251.\351`\227\003s\255\205\001d\233`2Krh\006\003L\222\001\254`1\313`\276\336\205\001ionMa\202\206\001e\362\022\0132\016\017\314\000cula\377teConser\375v\307\205\002FluxPW\375L\000\031_noNeu\177mannFix\014\032\367optP\022Jaco\317bianQ\025\025\010_i\377nteriorB\377oundarie\365s3\035__\025Resi\005d\316`G\314B2\034%\005\365\025\025\010\360|%\047\t\204\035\201@_priomati\242`al\244C\364\330d\220\tl\260\204\001in_t\377raceback\373co\020\000dcompwute\313ACor\222\211\002\ro\355 Cc\341H\210%\344\206\005\360\206\001\204\272\204\004\347$y\222\204\005\253\204\005\223\207\001\267\204\003T\371o\024\024\300\210\014dSdeg\377reedetJd\377iffusion\377Tensordo\177fMapl2g\006\000\364\307\210\001\266\205\004N\265\205\001bors\376\t\013sdxebNe\373bq\212\206\004_fluxR\004\010v\276\205\004\036\001n#\001v\000\002\037_par_\267\206\002\016""\003\344\205\003\030\000\t\217\206\004W\000e_0\001\002\001\037\004\273dg\277 ags\373\211\005a\217ryce\215\204\001\t\006\215\204\006A(\202\213\001\243\212\005\246\204\003y\207\207\004s\000\024\037\021\314\313\206\002\367+ie1\r\333\207\001ra\217ture\336\207\004\234\213\004\220\213\001s\000\000\t\211\t\366\204\005\310\213\004\325\204\010\332\213\004\241\"\314\215\001\007sex\356\205\003v\017\001\025\370\003\037\025\377ToSkipff\000\246\214\002\227\210\030\023\013\240\210\020\357A\363A\227\204\005\354\002\360\204a\332\204\007\000\013\322\211\005Upda\243te\256a\313.\303a_\252Lf\347ree\325\211\002\365\215\005get\356\222\205\005DM1\343eVal\377uesLagra\277ngeRep\032\n2\344\003!\243dB/$\322dRT0\340v\013\225\010\013\025\326\212\001\226\nLDG\000\246\200 P\030u\016Y\007\335\211\003\276\207\014\305\035 \022\020\327\021\003#}\016\301\204\022yo$\047\023\203\030\370\n$\215G\2675_arbi\357trar\310\207\005Mem\177bership\366`\237d_phi\004\001\000\004uqi\252\215\005\265\207\016\306\215\002nal\242\207\002\376\227\222\001skmax_n\377N_ownedm\377tnnDOF_t/rial\356\223\005n\373\207\016\n\005\337s_dof\003\007no\177denFree?\001\362\254\224\004n\214\210\002X\003nPoi\317ntsn\262\210\007\n\004Sp\037acenV+\t\t\001\357\224\006DU\001\330\211\002n\353\224\004\227\213\r\t\014s\000\rb)\021s\334\213\006N\n\307\225\003np\337\226\002\377otherp1_\377vdofsper\353mu\351\227\003s\356 pio\373la\243$funpo\335p\301\226\001Pro\301\226\001RT\3770potenti\377alFromP1;nc\000\034_sd3\013\306\214\005\030*\023\016\r;\001ro\336\231\001\261\216\014\313\222\001\337ToRT0\251\215\001Re\343pp\021\022\334\216\007\037\010wcV\377pwcWq_ba\377sis_vals\217q_vq\211#\007\000\255\224\004q\337uad_a\001\002fr\375r\333\221\004rowptr\203rt\376\007\t\000\303\"\000\005\316\230\005s\367elf\321\227\001setdue\203\232\002s\247\213\001lag\205\212\014\377iessolve\300\336\224\020\000\025\370!\314\224\001+\n\376\224\010sq\353rt\227\226\002g\351\226\010sun\377WheelerG\377SsweepuuP\336\215\016\213\232\005\000\027\270\221\005u\312\213\ru\204\214\002\311A""\352\226\r\230\205\002E\341 \032\003Cokef$\003D\255\221\003ve\234\227\005\340\033\014\006\027\320`g\003\242\213\010Wit\rh\376\227\004dP\233\204\005\233\204\001\000\047N\006\377Selected\251E\301\211\023\305\227\001v\352\230\004v\330\227\007vYe\000\n\325\234\005v_\373\221\001v\004\010\344\356\234\004\303\221\004v\222\216\r\217\232\004val\206\261!es\240\206\002\373\222\005\203\223\005\263\235\005w\277w_dS_f\003\000V\333_m\001\002rw\325\227\001_d\207iv_\350\216\001\010\003\211\233\002\317\211\001s\241w\356\227\006\037\001\031\006\204\230\002_\361\211\001i\277entsxx\261\002x\352\232\236\005x\267\217\rx\237\024\200\001\330\377\004\n\210+\220Q\200\001\377\340\006(\250\001\250\036\260\377v\270Q\270a\330)7\376\001\0053\260>\300\021\330)\2770\3200D\300A#\0010\377\260\001\260\036\270v\300Q\177\300a\33018\270\016\003\001\3772\260.\300\001\200\001\360\377\006\000\005\010\200z\220\026\377\220q\230\003\2303\230a\377\340\010\031\230\021\330\t\023\377\2206\230\021\230#\230S\373\240\001\r\002\340\004\007\200x\377\210v\220R\220q\330\010\377\017\210\177\230c\240\030\250\357\026\250q\260\203\000.\250a\377\250z\270\026\270q\300\001\347\330/9\000\006\n\0052\260&\177\270\001\270\021\330/0\032\001\227\023\270A!\001\030\237\000)\000\032\373\3001~\003\030\220x\230u\377\240B\240h\250f\260A\377\260X\270U\300!\3001\377\330\006,\250A\250Q\330\377-5\260V\2701\270H\377\300E\310\021\310!\330-\377.\330-7\3207H\310\275\001\005\000\260x\270q\301\003\035\177\230E\240\026\240q\250\236 \377 \240\003\2406\250\021\250\377!\330\004\010\210\005\210V/\2202\220Q\263\001~\315\000\024\003\365\"V\000Z\263$\006-\250Q\377\250j\270\006\270a\270q\347\330.8\000\006\n\005/\330.\276\000\0008\270\003\2701\033\001\005\273\270Q\"\001\n\300!\271#\037\357\230j\250\006\200 r\260\022\377\260:\270V\3001\300Bo\300a\300q\2307\330\006\246)?,6\260f\270AQ\000\000\006\377,/\250v\260Q\260a/\330,-\330\033\000c\271 \"\000\351h\341@)\000j\257D\007#\240\377!\2409\250F\260!\260\3171\330#,\000\006\n\005-\250}Y?\000#-\320-=\255\000Q#\n\002""\352B4\002?\215D#\225E\355#\335#A\330\047\000U\260!\322\003\001_\247@<\001?\332$\007+\177\250!\320+<\270F\226B|\000\006\000\017+5\3205F\350`\236\004\001E\300Q\330\t\004\352`\010{\000\005\270\202.\260\177\300a\341D\376\345G\010\000\007$\2401\240\375N\324d$1\260\026\260q\177\270\001\330$+\250>\350`\362\004\000=\t\002\254\001A\330$%\247\240^\260\345a4\000(\237`\005\377\250V\2601\260A\330()-\000\006\001\016.\204\204\002Q\031\010\240Eu(\314\204\002\330\004\000%\260q\000\004\370\n\001\312\205\003\227\0001\260\001\3201\377I\310\026\310q\320PQ\371\330\000\007\t\0108\3208T\320\377TU\3301;\320;Sw\320ST\004\002K\3101\010\006\336\250\"\0072\260\021\335@6\270\177\021\270!\33023\260\000\006\376\002\r<\320<\\\320\\]\327\3302<\305b2\r\000M\310\375Q\014\000\320<L\310A\200\377\001\360\n\000\005\037\230l\377\250&\260\001\260\022\2602\377\260\\\300\026\300q\310\002\363\310!o\000\300\206\026\330\n:\270\377!\270<\300v\310Q\310\317a\330;G\000\006\001\016@\300\375\006\356\204\001\330;<\330;B\277\320B^\320^_\004\002`\373\320`6\000E\300U\310!\237\330;E\300X\220\000\004\000\\w\320QR\213\005m\2506\340\000\377\"\260B\260m\3006\310\237\021\310\"\310A\265\000y\027\006\377D\300A\300]\320RX\377\320XY\320YZ\330E\271R\000\t\r\010K\3106d\000\320\377RS\330EF\330EL\277\320Lh\320hi\004\002j\377\320jk\330EO\310v\367\320UV\004\001x\320WX\262\014\001}\276 \243$\320\036\312c\002o\270\"\320<$\003\320Vk\005\342~\034Vo\007\242\000\207!\320_`\363\330E\000\tk.\320Ob\320\373bc\302B\007%\240A\240\377Q\330%0\260\006\260a\374\374`\000\006%,\250L\270\001\337\330%,\320,\202`\330%\377&\240n\260A\330%/\317\250{\270!4\003\366\204\001\001\330\371(\276\204\006\352\206\005(/\250~\270\273Q\330\004\000}\270A\004\000\320\367/@\300%\000)\250\036\260\375qn\003.\250Q\320.N\037\310f\320TU\261!\000\010\n\t\367>\270f\232@Q\330.5\307\3205Q\341@\004\002\320\204\001.8\353\3208\255A\330\005\001L\310A\356\003\002H\310\001\313\0039\270\001\377\3209W\320W]\320]\302\264b99\000\014\000,\002\000\t9@\343\320@\340\204\002\005\001$\003C\320C?[""\320[\\\3309\006\000\301\205\002\2759\013\004\200\001\360\014\322\207\026/v\262\214\001\3300\342\212\003x\300u\356b\31701\3300\274\215\002\000\004\3300\337:\270/\310\021\003\001(\300\271!\000\004Q\003!\240\017\231\212\004\004\367\037\230\177\240\207\004\004\024\220O\276\351\213\007\007\210u\220A\357\213\001\014\377\210E\220\025\220a\220q\377\330\014\020\220\005\220U\230\377!\2301\330\020\034\230A\377\230U\240#\240U\250/\377\270\021\270%\270|\3101\317\310E\320Q\331!\033E\037\230\377q\240\004\240L\260\001\260\377\024\260S\270\005\270\\\310\377\021\310$\310b\320PQ\356\236\200$\t\210\027\256\000Q\220a\363\330\010\257\023^\001\005\240\\\260\377\021\260$\260d\270&\320\375@\304\210\001\320TY\320Y\\\336\304\205\003\014\000\007 \203\000\005\240\377V\2501\250A\330 %\\\000\006\001\016&\240f\344\216\002 \356\211\005\377 *\250.\270\001\330 \177\047\320\047;\2701\330\014\000\373&\260\014\000*\250%\250q\356\n\001,\260a\021\001\047\260\021,\346Be\001\320 \371\220\005 \374\217\005\000\006\260D\001\321\204\001\000\005T\001>\270>\002$\341\250\000\004L\002r\000K\003*\250\021\373\250)\352\211\004*;\2706\300\305\021\203`*\373\211\005\000\006\010\0074\260\377I\270Q\330*1\3201\361B&\001\010\004\017\0044\3204D\217\300A\330* \002\254\003\317\212\t-\376\345\213\005-4\260F\270!\270\3377\300%\300q\330\220\003t\270\3351\341\220\001v\270Q\350\220\001s\270\215!\357\220\001w\270\215\215\002\355\214\001\205\221\001G\273\300qK\006\3202C\304\211\002!\351\330\000\006\000\0172\311\0052<\270\377I\300Q\33029\3209OJ\310!\330\007\005\261\213\013\330\310\213\004\357\200\001\360\016\274\216\001q\230\005\273\230R\334`\006\240a\307\215\002Q~\277 \006=\270Q\320>\243\211\005{W\330\000\010>?\330>\264\213\005\336\000\006>H\310\t\237\207\001>E\237\320EV\320V.\000\t\005H\337\310\001\310\021\330\r\010\320H(\267\207\002+\004\200\002\007\301\216\001\006\231\216\005\241\216\006\351.\001\016\250\216\010.\320\210\001/\320/\047C\3001\337\210\002\351\215\001(\r\000\235\220\001\356\310\216\007/\300\021\325\216\001\047\270""\021|c\003\306\216\002J\310&\320P\315\210\002q1\304\224\005\000\006\010\0078\3208\036\003\3778\3208O\310q\3301\2478\3208\320\210\001\004\002R\206\214\0011\357;\2704\270\026\000;\2701\327\270A\330\013\0008\371\224\002\016\000\377\0078\260q\3208P\320\241P\207!\213\214\001\000\t\013\nA\264\216\002\001\377\3308B\300)\3101\330/8?\320?4\000Q\004\002\206\211\002\376\021\005B\320BZ\320Z[\326&\000\320Bx\0028\013\004\200\001\333\360\020\277\205W\320*\320\205\004*\260\371A\227\206\016u\0005\260A\260Q\352\351\224\0045\361\224\0055\316\223\0037\310%\364\254\221\003\n\003\330\000\0045?\270tw\3001\330\004\000v\300Q\003\001ws\300!\n\001w\300a\021\001\342\361\227\0015\204 \360 \325\003@\001\270\337q\300\006\300f\305\217\002@Fx\000\006\n\005\220\222\006@J\310)\367\221\001\317@G\320G\232\214\002\005\001c\320\367cd\330\016\001e\320ef\261\330\032\006\375C\r\000\320J\322\"@^\216c\200\001\360\022\204\224\003B\273\210\004m$\202\226\005$=\206\227\002A\330\000\006q$\336\210\005\000\006#\007+\320+\235\207\001\301$\000\005\r\000\303\207\001\014\001\333B$.\337\250b\260\001\330\004\000a\250\335q\003\001n\270A\n\001h\260\375a\022\000\320.>\270a\200\377\001\360\024\000\007\024\2201\377\220E\230\026\230q\240\001\347\330\024\031\000\006\n\005\036\230f\374\273\217\002\021\007\032\230&\240\001\240\377\021\330\024\"\240&\250\001\365\250\006\000(\311\230\002q\330\024\036\377\230n\250A\330\024\033\320\367\033/\250\014\000\033\2309\240\270\014\000>\002\031\001e\2401!\000\320o\0362\260!\003\0020\260p\000\357\036\230l\250\013\001\230j\250\356\t\002g\240Q\223\003\031\230\001+\320\031\350\225\005\031\267\220\005\031\225\233\005\000\006\377\031\033\2306\240\021\240!\365\330\000\006\031\233\005\031 \320 \3179\270\021\330\000\005\014\0017\260\371q\013\002\344\227\001\031#\2402\240\313Q\330\004\0001\246\000\013\000:\250n\t\002;\250a\021\001>\2608\000\017#\320#7\322\220\002\251 \212\221\004\352\226\030\302\211\212\0031\236\227\010\205\227\017\250\233\005\317\221\007/\250\317y\270\001\330\214\227\030\270\227\001,""\270\277a\330(2\3202\252\213\001(\234\210\236\002\316\227\001/\300\021\302C\366\226\001\"N\210\213\0021\3302\303\224\007\000\0102\225\005r\000\0062\226\207\005\241\227\0079\3209\366\207\002\0352\000\0069\3209\255\207\002\360\212\001\244\226\002|\371\212\001\376\227\0022<\270O\310k\000\237<\270B\270a\277\227\t*\003<\367\270M\310\226\0045\260A\320%5\330\230\0065\220\223\007\000\0105\207\240\005\000\006\2575D\300F\355\227\0025\223\205\0055\007<\320<\315\223\002\000\006\016\001\213\231\002\027\001\237a\320ab\330 \001\340\222\0025\337?\270r\300\021\351\206\007\270\177=\310\374\206\002x\300q\330\375\206\001\303\231\001\377\200\001\360\030\000\005\014\320\367\013 \240\232\214\001s\250#\320U-\227\227\010\006\315\230\001>\221\232\005;\303\234\005\017;T\320T\251\211\001\307\223\001\000\t\027\007\270!\006*\0063\006B\320B\377\223\002;\316\000\006B\320B\227\230\002\207\231\001g\320\177gh\330;B\300,\276\231\001%B\204\212\004;\225\212\005\026\000.\237\233\001\261\231\001\230\357\224\001\241\231\001\240\242\001;E\246\242\002\236\000N\255\310\341\237\001\036\000\355\214\002\r\201\241\002Ak\330(\261\226\006)\375\241\003\330(\220\213\005\202\000\006(\022\006\033\006$\006\245\235\005\032\007/\353\320/\312\241\001(\000\005/\320/\370\275\236\001\234\215\001\242\234\002(/\250|\270\234\264\215\001\324\204\003/\250\177\272\204\001\035\006\250\214\263\227\003\000\004\320/\350\220\001\330\215\001\303\227\0022\242\235\240\002(\000\004\316\227\005\320\000,\222\223\002,\377:\270&\300\001\300\021\330\365,\262\243\005,\216\236\005,E\300V\037\3101\310A\330\000\006\021\007\033\006\\$\006-\0063\3203\341\227\001,\000\005\360\r\000\331\220\001\014\001\201\230\002,3\260<\207\270q\330\034\001\211\217\001$\001\366\235\001,\034\261\245\003\033\000=\300\001\031\002\335\243\001B\001\306\267\222\001,6\352\231\002\000\004\240\000^\270\376\266\244\001\036\000$%\330#$\377\330\004\007\200s\210\047\220\377\025\220d\230\047\240\027\250\377\001\330\n)\250\021\250%j\301\242\004*\311\242\005*\257\232\005*+\364\234""\002\363!\330\000\006\032\0071\3201A\273\300\021\277\223\tD\270\001\270\223\001J\373\270a\277\223\001A\260Q\330*W4\3204\337\241\001*\254\223\002\330\000\004\356\000\013*4\260%\003\260E\270\261\021/\007\r\005\025\004B\260P\002H\257\270A\340\n\226\231\001\005\336d0\212\211\243\0050\230\244\0050\335\241\005\000\006\032\0077\177\3207G\300q\3300\220\246\004\2770:\270$\270a\300\231\001*\373\300A\307\231\001!\2701\3300W:\320:\372\232\0010\355B\330\000\004\274\004\007\036\003\270%\270q(\007\270\364\016\004\025\004(\357\245\002 \000\007\047\034\367\223\002\362\245\001q\330\047\251\214\005\000\006\000\017\017\0471\3201\333\241\001\004\001\376\222\001\014\001\036\216\226\001\0471\260\024\314 \025\007\355\241\001\335\330\023\000\021\260!\003\001\025\260\ta\013\000\316\226\003\047\325\226\004\024\007\036\004%\004n,\004\030\270\021=\001\034\270\346\231\001\177\"\000\047(\330&\047\232c\377#\210U\220$\220g\230_W\240A\330\n\326\250\001U\223\251\004\005-\233\251\005-\334\242\005\210\227\007\222\227\006\033\006\355C\306\245\227\003\330-\324\227\004\004\001\350\245\001-7\235\260\254\227\004z\300\021\233\251\001\235\227\005I\203\310\021\276\227\010\311\227\004\320\227\004\327\227\004\312\227\003\260\227u\270A/\007\260\016\004\025\004r[\270\021\355\251\004\340\n\325\206\0015\257\251\004\0253\256\251\0053\370\252\0053\264\215\005\000\006\032\007\"\373C3\000\004\224`\371\227\0013\234`\376\244\001\1773=\270T\300\021\330\004\000\347Z\300q\003\001\331\254\0013=\320\025=\321\225\0013\321\221\002\330\000\004\004\007\036\003d\262\253\001(\007\270\016\004\025\004X\300\367\234\001%$\377\212\0351\331\250\004\210\212\212_\250\247\001\270\245\007\367R\300q\226\213\022\330;E\320\225E\366\213\003E\242\245\001S\014\002\204\227\001\200_\001\360$\000\007\321\234\001!\350\207\016\330\371\207\017\224\210\006\322\251\002\330*\000\0044\320o4N\310a\361\207\010\3204\361\206\001\207*4\260\233\210\003\027\005\323\207\014\370\207\003\320\2014\207\253\001\264\210\001\002\003\370\207\014\243\210\004\252\210\004HU""\270\250\235\002L\235\260\002&\370\214\003\001\350\257\004\022\344\214\005\340\000\006\344\214\005\340\000\006\010\007\222\253\004|\020\010\274\214-\320/?\270q\222\245\002\330\336\210\001\244\245\006\337\214\0042\260\254\233\004(\270\205!\217\253\001\"\323\253\001\340\214\020\347\222\002\317\215\0022;\260-L\0012\3202\262\236\003\334\000\354\203\215\004\371\213|\3203\354\214\0026\260o\367\300Q\330\347\257\007b\270\001\330\276\352\214\021\330,6\3206\324\215\0026\357\260m\3001\n\002K\3101\377\200A\340\n\030\230\001\230\027\025\230d\301\226\001\036\000\004\000\013\010\021\207\032\230$-\003\000\006\000\017\013\026\200\277A\360\010\000\t\r\347\245\004t\367\2304\230\347\245\0104\230t\240\375>\324\212\002\020\024\220D\230\014\017\240A\240R\264\240\003";
20703 PyObject *data = __Pyx_DecompressString_LZSS(cstring, 5961, 11429);
20704 #define __Pyx_DecompressString_UNUSED
20705 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
20706 const char* const bytes = __Pyx_PyBytes_AsString(data);
20707 #if !CYTHON_ASSUME_SAFE_MACROS
20708 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
20709 #endif
20710 #else /* compression: none (11429 bytes) */
20711static const char bytes[] = "(tree fragment)?Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.add_notedisableenablegcisenabledno default __reduce__ due to non-trivial __cinit__numpy._core.multiarray failed to importnumpy._core.umath failed to importproteus/cpostprocessing.pyxBDMmatPivots_elementBDMmat_elementINodeStarFactorNodeStarFactor.__reduce_cython__NodeStarFactor.__setstate_cython__NodeStarFactor.copyDataNodeStarFactor.setU__Pyx_PyDict_NextRef__annotate____class_getitem____func____getstate____main____module____name____pyx_state__qualname____reduce____reduce_cython____reduce_ex____set_name____setstate____setstate_cython____test___is_coroutine_subdomain_U_copy_global2local_subdomain_U_copy_local2globalaaElementQuadWeightsabs_det_JaddAverageToParVecadvectiveVelocityalphaalphaFactorasyncio.coroutinesbuildBDM2rhsbuildLocalBDM1projectionMatricesbuildLocalBDM2projectionMatricescalculateConservationFluxPWLcalculateConservationFluxPWL_noNeumannFixcalculateConservationFluxPWL_optcalculateConservationJacobianPWLcalculateConservationJacobianPWL_interiorBoundariescalculateConservationJacobianPWL_optcalculateConservationResidualGlobalBoundariescalculateConservationResidualPWLcalculateConservationResidualPWL_interiorBoundariescalculateConservationResidualPWL_optcalculateConservationResidualPWL_primativecalculateElementResidualPWLcline_in_tracebackcolindcomputeFluxCorrectionPWCconservationResidualcopyDatacopyElementBoundaryVelocityToParVeccopyParVecToElementBoundaryVelocitycpostprocessingdSdegreedetJdiffusionTensordofMapl2gdofStarElementNeighborsdofStarElementsdxebNebq_global_fluxebq_global_velocityebq_nebq_vebq_v_par_localebq_velocityebq_velocityAverageebqe_vebqe_velocityedgeFlagselementBarycenterselementBoundariesArrayelementBoundaryElementselementBoundaryElementsArrayelementBoundaryLocalElementBoundarieselementBoundaryQuadratureWeightselementNodeselementNodesArrayelem""entResidualelementResidualPWLelement_locationsexteriorElementBoundariesexteriorElementBoundariesArrayexteriorElementBoundariesToSkipffactorLocalBDM1projectionMatricesfactorLocalBDM2projectionMatricesfluxfluxBoundaryNodesfluxCorrectionfluxCorrectionVelocityUpdatefluxElementBoundariesflux_elementBoundaryfreeLocal_elementgetElementBDM1velocityValuesLagrangeRepgetElementBDM2velocityValuesLagrangeRepgetElementBoundaryBDM1velocityValuesLagrangeRepgetElementBoundaryRT0velocityValuesgetElementBoundaryRT0velocityValuesFluxRepgetElementLDGvelocityValuesLagrangeRepgetElementRT0velocityValuesgetElementRT0velocityValuesFluxRepgetGlobalElementBoundaryBDM1velocityValuesLagrangeRepgetGlobalElementBoundaryRT0velocityValuesgetGlobalElementBoundaryRT0velocityValuesFluxRepgetGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRepgetGlobalExteriorElementBoundaryRT0velocityValuesgetGlobalExteriorElementBoundaryRT0velocityValuesFluxRepgetRT0velocityValuesFluxRep_arbitraryElementMembershipgrad_phigradphigraduiinteriorElementBoundariesinternalNodesitemskmax_nN_ownedmtnnDOF_trial_elementnElementBoundariesnElements_dofnElements_nodenFreeDOF_elementnNodes_ownednPointsnQuadraturePointsnSpacenVDOF_elementnVDOFs_elementnodeArraynodeStarElementNeighborsnodeStarElementsnodeStarElementsArraynodeStarElementsNeighborsArraynodeStarFactornpnumpyotherp1_vdofspermutationsphipiola_trial_funpoppostProcessRT0potentialFromP1ncpostProcessRT0potentialFromP1nc_sdpostProcessRT0velocityFromP1ncpostProcessRT0velocityFromP1nc_sdprojectElementBoundaryFluxToRT0fluxRepprojectElementBoundaryVelocityToRT0fluxReppwcVpwcWq_basis_valsq_vq_vdofsq_velocityquad_aquad_frresidualrowptrrt0potentialrt0vdofsrt0vdofs_elementselfsetUsetdefaultskipflag_elementBoundariessolveLocalBDM1projectionsolveLocalBDM1projectionFromFluxsolveLocalBDM2projectionsqrt_det_gsubdomain_UsunWheelerGSsweepuuQuadratureWeights_elementuQuadratureWeights_elementBoundaryu_elementBoundaryupdateAdvectiveVelocityPointEvalupdateCoefupdateDiffusiveVelocityPointE""valupdateDiffusiveVelocityPointEval_sdupdateRT0velocityWithAveragedPotentialP1ncupdateRT0velocityWithAveragedPotentialP1nc_sdupdateSelectedExteriorElementBoundaryFluxvAveragevConservativevConservative_elementv_ebqev_elementv_elementBoundaryv_elementBoundary_globalvalvaluesvdofsvelocityvelocity_elementww_dS_fw_dV_mw_dV_rw_int_div_freew_int_test_gradsw_interior_divfreew_interior_gradientsxx_ebqex_elementx_elementBoundaryx_elementBoundary_global\200\001\330\004\n\210+\220Q\200\001\340\006(\250\001\250\036\260v\270Q\270a\330)7\260v\270Q\270a\330)3\260>\300\021\330)0\3200D\300A\200\001\340\0060\260\001\260\036\270v\300Q\300a\33018\270\016\300a\33012\260.\300\001\200\001\360\006\000\005\010\200z\220\026\220q\230\003\2303\230a\340\010\031\230\021\330\t\023\2206\230\021\230#\230S\240\001\340\010\031\230\021\340\004\007\200x\210v\220R\220q\330\010\017\210\177\230c\240\030\250\026\250q\260\001\340\006.\250a\250z\270\026\270q\300\001\330/9\270\026\270q\300\001\330/9\270\026\270q\300\001\330/2\260&\270\001\270\021\330/0\330/9\270\023\270A\330/9\270\030\300\021\330/9\270\032\3001\200\001\360\006\000\005\030\220x\230u\240B\240h\250f\260A\260X\270U\300!\3001\330\006,\250A\250Q\330-5\260V\2701\270H\300E\310\021\310!\330-.\330-7\3207H\310\001\330-7\260x\270q\200\001\360\006\000\005\035\230E\240\026\240q\250\001\330\004 \240\003\2406\250\021\250!\330\004\010\210\005\210V\2202\220Q\330\010\017\210~\230S\240\003\2406\250\021\250\"\250A\250Z\260v\270Q\270a\330\006-\250Q\250j\270\006\270a\270q\330.8\270\006\270a\270q\330.8\270\006\270a\270q\330./\330./\330.8\270\003\2701\330.8\270\005\270Q\330.8\270\n\300!\200\001\360\006\000\005\037\230j\250\006\250a\250r\260\022\260:\270V\3001\300B\300a\300q\340\004\007\200x\210v\220R\220q\330\010\017\210\177\230c\240\030\250\026\250q\260\001\330\006.\250a\250z\270\026\270q\300\001\330,6\260f\270A\270Q\330,6\260f\270A\270Q\330,/\250v\260Q\260a\330,-\330,6\260c\270\021\330,6\260h\270a\330,6\260j\300\001\200\001\360\006\000\007#\240!\2409\250F\260!\2601""\330#,\250F\260!\2601\330#,\250F\260!\2601\330#-\250Y\260a\330#-\320-=\270Q\330#-\250Y\260a\200\001\360\006\000\007#\240!\240?\260&\270\001\270\021\330#2\260&\270\001\270\021\330#5\260V\2701\270A\330#-\250U\260!\330#-\250_\270A\330#-\320-?\270q\200\001\360\006\000\007+\250!\320+<\270F\300!\3001\330+<\270F\300!\3001\330+<\270F\300!\3001\330+<\270F\300!\3001\330+5\3205F\300a\330+5\3205E\300Q\330+5\3205F\300a\200\001\360\010\000\005\030\220x\230u\240B\240h\250f\260A\260X\270U\300!\3001\330\006,\250A\250Q\330-5\260V\2701\270H\300E\310\021\310!\330-.\330-7\260\177\300a\330-7\260x\270q\330-7\260x\270q\200\001\360\010\000\007$\2401\240N\260&\270\001\270\021\330$1\260\026\260q\270\001\330$+\250>\270\021\330$+\250=\270\001\330$+\320+<\270A\330$%\240^\2601\200\001\360\010\000\007(\240q\250\005\250V\2601\260A\330(-\250V\2601\260A\330(-\250V\2601\260A\330(-\250V\2601\260A\330(.\250f\260A\260Q\330(-\250V\2601\260A\330(6\260f\270A\270Q\330(2\260&\270\001\330(2\260%\260q\330(2\260%\260q\330(2\260.\300\001\200\001\360\010\000\0071\260\001\3201I\310\026\310q\320PQ\3301I\310\026\310q\320PQ\3301I\310\026\310q\320PQ\33018\3208T\320TU\3301;\320;S\320ST\3301;\320;K\3101\3301;\320;S\320ST\200\001\360\010\000\0072\260\021\260!\2606\270\021\270!\33023\2606\270\021\270!\33023\2606\270\021\270!\33023\2606\270\021\270!\3302<\320<\\\320\\]\3302<\270A\270Q\3302<\320<M\310Q\3302<\320<L\310A\200\001\360\n\000\005\037\230l\250&\260\001\260\022\2602\260\\\300\026\300q\310\002\310!\3101\330\004\007\200x\210v\220R\220q\330\010\017\210\177\230c\240\030\250\026\250q\260\001\330\n:\270!\270<\300v\310Q\310a\330;G\300v\310Q\310a\330;G\300v\310Q\310a\330;G\300v\310Q\310a\330;@\300\006\300a\300q\330;<\330;B\320B^\320^_\330;B\320B`\320`a\330;E\300U\310!\330;E\300X\310Q\330;E\300\\\320QR\200\001\360\n\000\005\037\230m\2506\260\021\260\"\260B\260m\3006\310\021\310\"\310A\310Q\330\004\007\200x\210v\220R\220q\330\010\017\210\177\230c\240\030\250\026\250q\260\001\330\006D\300A\300]\320RX\320XY\320YZ\330ER\320RX""\320XY\320YZ\330ER\320RX\320XY\320YZ\330EK\3106\320QR\320RS\330EF\330EL\320Lh\320hi\330EL\320Lj\320jk\330EO\310v\320UV\330EO\310x\320WX\330EO\310}\320\\]\200\001\360\n\000\005\037\320\0361\260\026\260q\270\002\270\"\320<O\310v\320UV\320VX\320XY\320YZ\330\004\007\200x\210v\220R\220q\330\010\017\210\177\230c\240\030\250\026\250q\260\001\330\006D\300A\300V\3106\320QR\320RS\330EX\320X^\320^_\320_`\330EX\320X^\320^_\320_`\330EK\3106\320QR\320RS\330EF\330EL\320Lh\320hi\330EL\320Lj\320jk\330EO\310v\320UV\330EO\310x\320WX\330EO\320Ob\320bc\200\001\360\n\000\007%\240A\240Q\330%0\260\006\260a\260q\330%0\260\006\260a\260q\330%,\250L\270\001\330%,\320,<\270A\330%&\240n\260A\330%/\250{\270!\200\001\360\n\000\007(\240q\250\001\330(6\260f\270A\270Q\330(5\260V\2701\270A\330(/\250~\270Q\330(/\250}\270A\330(/\320/@\300\001\330()\250\036\260q\200\001\360\n\000\007.\250Q\320.N\310f\320TU\320UV\330.N\310f\320TU\320UV\330.N\310f\320TU\320UV\330.>\270f\300A\300Q\330.5\3205Q\320QR\330.5\3205K\3101\330.8\3208X\320XY\330.8\3208L\310A\330.8\3208H\310\001\200\001\360\n\000\0079\270\001\3209W\320W]\320]^\320^_\3309Q\320QW\320WX\320XY\3309Q\320QW\320WX\320XY\3309@\320@\\\320\\]\3309@\320@^\320^_\3309C\320C[\320[\\\3309C\320CS\320ST\3309C\320C[\320[\\\200\001\360\014\000\005\030\220x\230u\240B\240h\250f\260A\260X\270U\300!\3001\330\006/\250q\260\001\33008\270\006\270a\270x\300u\310A\310Q\33001\33007\260v\270Q\33007\260v\270Q\3300:\270/\310\021\3300:\270(\300!\3300:\270(\300!\200\001\360\014\000\005!\240\017\250v\260Q\260a\330\004\037\230\177\250f\260A\260Q\330\004\024\220O\2406\250\021\250!\330\004\010\210\007\210u\220A\220Q\330\010\014\210E\220\025\220a\220q\330\014\020\220\005\220U\230!\2301\330\020\034\230A\230U\240#\240U\250/\270\021\270%\270|\3101\310E\320QU\320UV\200\001\360\014\000\005!\240\017\250v\260Q\260a\330\004\037\230\177\250f\260A\260Q\330\004\024\220O\2406\250\021\250!\330\004\010\210\007\210u\220A\220Q\330\010\014\210E\220\025\220a\220q\330\014\020\220\005\220U\230!\2301\330\020""\037\230q\240\004\240L\260\001\260\024\260S\270\005\270\\\310\021\310$\310b\320PQ\200\001\360\014\000\005!\240\017\250v\260Q\260a\330\004\037\230\177\250f\260A\260Q\330\004\024\220O\2406\250\021\250!\330\004\t\210\027\220\005\220Q\220a\330\010\014\210E\220\025\220a\220q\330\014\020\220\005\220U\230!\2301\330\020\037\230q\240\005\240\\\260\021\260$\260d\270&\320@S\320ST\320TY\320Y\\\320\\]\200\001\360\014\000\007 \230q\240\005\240V\2501\250A\330 %\240V\2501\250A\330 %\240V\2501\250A\330 %\240V\2501\250A\330 &\240f\250A\250Q\330 .\250f\260A\260Q\330 *\250.\270\001\330 \047\320\047;\2701\330 *\250&\260\001\330 *\250%\250q\330 *\250,\260a\330 *\250\047\260\021\200\001\360\014\000\007 \230q\320 7\260v\270Q\270a\330 9\270\026\270q\300\001\330 9\270\026\270q\300\001\330 \047\320\047@\300\001\330 \047\320\047@\300\001\330 \047\320\047>\270a\330 *\250$\250a\330 *\250$\250a\330 *\250.\270\001\200\001\360\014\000\007*\250\021\250)\2606\270\021\270!\330*;\2706\300\021\300!\330*3\2606\270\021\270!\330*3\2606\270\021\270!\330*3\2606\270\021\270!\330*4\260I\270Q\330*1\3201B\300!\330*4\260I\270Q\330*4\260I\270Q\330*4\3204D\300A\330*4\260I\270Q\200\001\360\014\000\0072\260\021\260!\2606\270\021\270!\330-.\250f\260A\260Q\330-4\260F\270!\2707\300%\300q\310\001\330-7\260t\2701\330-7\260v\270Q\330-7\260s\270!\330-7\260w\270a\330-7\260q\270\001\330-7\3207G\300q\200\001\360\014\000\0072\260\021\3202C\3006\310\021\310!\3302C\3006\310\021\310!\3302C\3006\310\021\310!\3302C\3006\310\021\310!\3302;\2706\300\021\300!\3302<\270I\300Q\33029\3209J\310!\3302<\270I\300Q\3302<\320<M\310Q\3302<\320<L\310A\3302<\320<M\310Q\200\001\360\016\000\005\030\220q\230\005\230R\230q\240\006\240a\240q\250\005\250Q\250a\330\006=\270Q\320>O\310v\320UV\320VW\330>O\310v\320UV\320VW\330>?\330>G\300v\310Q\310a\330>G\300v\310Q\310a\330>H\310\t\320QR\330>E\320EV\320VW\330>H\310\t\320QR\330>H\310\001\310\021\330>E\320EV\320VW\330>H\320HX\320XY\330>H\310\t\320QR\200\001\360\016\000\007(\240q\250\006\250f\260A\260Q\330(.""\250f\260A\260Q\330(.\250f\260A\260Q\330(.\250f\260A\260Q\330(6\260f\270A\270Q\330(2\260.\300\001\330(/\320/C\3001\330(/\320/K\3101\330(/\320/E\300Q\330(2\260&\270\001\330(2\260/\300\021\330(2\260\047\270\021\200\001\360\016\000\0071\260\001\3201J\310&\320PQ\320QR\33012\260&\270\001\270\021\33012\260&\270\001\270\021\33012\260&\270\001\270\021\33018\3208Q\320QR\33018\3208O\310q\33018\3208]\320]^\33018\3208R\320RS\3301;\2704\270q\3301;\2701\270A\3301;\2708\3001\200\001\360\016\000\0078\260q\3208P\320PV\320VW\320WX\3308P\320PV\320VW\320WX\3308P\320PV\320VW\320WX\3308A\300\026\300q\310\001\3308B\300)\3101\3308?\320?P\320PQ\3308?\320?[\320[\\\3308B\300)\3101\3308B\320BZ\320Z[\3308B\320BR\320RS\3308B\320BZ\320Z[\200\001\360\020\000\007 \230q\240\005\240V\2501\250A\330 %\240V\2501\250A\330 %\240V\2501\250A\330 %\240V\2501\250A\330 &\240f\250A\250Q\330 .\250f\260A\260Q\330 *\250.\270\001\330 \047\320\047;\2701\330 *\250&\260\001\330 *\250%\250q\330 *\320*>\270a\330 *\250*\260A\330 *\250,\260a\330 *\250\047\260\021\200\001\360\020\000\0075\260A\260Q\260f\270A\270Q\33056\260f\270A\270Q\3305<\270F\300!\3007\310%\310q\320PQ\3305<\270F\300!\3305<\270F\300!\3305?\270t\3001\3305?\270v\300Q\3305?\270s\300!\3305?\270w\300a\3305?\270q\300\001\3305?\320?O\310q\200\001\360\020\000\007@\001\270q\300\006\300f\310A\310Q\330@F\300f\310A\310Q\330@F\300f\310A\310Q\330@I\310\026\310q\320PQ\330@J\310)\320ST\330@G\320GX\320XY\330@G\320Gc\320cd\330@G\320Ge\320ef\330@J\310)\320ST\330@J\310&\320PQ\330@J\320JZ\320Z[\330@J\310&\320PQ\200\001\360\022\000\007$\2401\240B\240f\250A\250Q\330$,\250F\260!\2601\330$=\270V\3001\300A\330$=\270V\3001\300A\330$&\240f\250A\250Q\330$&\240f\250A\250Q\330$,\250F\260!\2601\330$+\320+D\300A\330$+\320+D\300A\330$+\320+B\300!\330$+\320+P\320PQ\330$.\250b\260\001\330$.\250a\250q\330$.\250n\270A\330$.\250h\260a\330$.\320.>\270a\200\001\360\024\000\007\024\2201\220E\230\026\230q\240\001\330\024\031\230\026\230q\240\001\330\024\031\230\026\230q\240\001\330\024\036\230f""\240A\240Q\330\024\031\230\026\230q\240\001\330\024\032\230&\240\001\240\021\330\024\"\240&\250\001\250\021\330\024(\250\006\250a\250q\330\024\036\230n\250A\330\024\033\320\033/\250q\330\024\033\2309\240A\330\024\036\230f\240A\330\024\036\230e\2401\330\024\036\320\0362\260!\330\024\036\320\0360\260\001\330\024\036\230l\250!\330\024\036\230j\250\001\330\024\036\230g\240Q\200\001\360\024\000\007\031\230\001\320\031-\250V\2601\260A\330\0310\260\006\260a\260q\330\0312\260&\270\001\270\021\330\0312\260&\270\001\270\021\330\031\033\2306\240\021\240!\330\031\033\2306\240\021\240!\330\031\032\230&\240\001\240\021\330\031 \320 9\270\021\330\031 \320 9\270\021\330\031 \320 7\260q\330\031 \320 E\300Q\330\031#\2402\240Q\330\031#\2401\240A\330\031#\240:\250Q\330\031#\240;\250a\330\031#\240>\260\021\330\031#\320#7\260q\200\001\360\024\000\007(\240q\250\001\330(-\250V\2601\260A\330(-\250V\2601\260A\330(-\250V\2601\260A\330(4\260F\270!\2701\330(-\250V\2601\260A\330(.\250f\260A\260Q\330(-\250V\2601\260A\330(8\270\006\270a\270q\330(6\260f\270A\270Q\330(/\250y\270\001\330(2\260&\270\001\330(2\260%\260q\330(2\260%\260q\330(2\260.\300\001\330(2\260,\270a\330(2\3202B\300!\330(2\260.\300\001\330(2\260/\300\021\200\001\360\024\000\0072\260\021\260\"\260F\270!\2701\3302K\3106\320QR\320RS\3302K\3106\320QR\320RS\33024\260F\270!\2701\33024\260F\270!\2701\3302A\300\026\300q\310\001\33023\2606\270\021\270!\33029\3209R\320RS\33029\3209R\320RS\33029\3209P\320PQ\33029\3209^\320^_\33029\3209S\320ST\3302<\270O\3101\3302<\270B\270a\3302<\270A\270Q\3302<\320<P\320PQ\3302<\270M\310\021\200\001\360\024\000\0075\260A\3205I\310\026\310q\320PQ\3305N\310f\320TU\320UV\3305N\310f\320TU\320UV\33057\260v\270Q\270a\33057\260v\270Q\270a\3305D\300F\310!\3101\3305=\270V\3001\300A\3305<\320<U\320UV\3305<\320<U\320UV\3305<\320<S\320ST\3305<\320<a\320ab\3305<\320<[\320[\\\3305?\270r\300\021\3305?\270q\300\001\3305?\270\177\310a\3305?\270x\300q\3305?\320?S\320ST\200\001\360\030\000\005\014\320\013 \240\006\240a\240s""\250#\320-R\320RX\320XY\320YZ\330\006:\270!\270>\310\026\310q\320PQ\330;<\270F\300!\3001\330;T\320TZ\320Z[\320[\\\330;T\320TZ\320Z[\320[\\\330;<\270F\300!\3001\330;<\270F\300!\3001\330;<\270F\300!\3001\330;<\270F\300!\3001\330;B\320B[\320[\\\330;B\320B[\320[\\\330;B\320BY\320YZ\330;B\320Bg\320gh\330;B\300,\310a\330;B\320BR\320RS\330;B\320BZ\320Z[\330;B\300.\320PQ\330;B\320BW\320WX\330;E\300Q\300a\330;E\300Q\300a\330;<\270N\310!\200\001\360\036\000\007(\240q\250\r\260V\2701\270A\330(5\260V\2701\270A\330()\250\026\250q\260\001\330(A\300\026\300q\310\001\330(A\300\026\300q\310\001\330()\250\026\250q\260\001\330()\250\026\250q\260\001\330()\250\026\250q\260\001\330(1\260\026\260q\270\001\330()\250\026\250q\260\001\330(/\320/H\310\001\330(/\320/H\310\001\330(/\320/F\300a\330(/\320/T\320TU\330(/\250|\2701\330(/\250y\270\001\330(/\250\177\270a\330(/\320/F\300a\330(/\250}\270A\330(/\250}\270A\330(/\320/D\300A\330(/\320/@\300\001\330(2\260!\2601\330(2\260!\2601\330()\250\036\260q\200\001\360\036\000\007,\2501\250A\330,:\270&\300\001\300\021\330,9\270\026\270q\300\001\330,-\250V\2601\260A\330,E\300V\3101\310A\330,E\300V\3101\310A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,3\3203L\310A\330,3\3203L\310A\330,3\3203J\310!\330,3\3203X\320XY\330,3\260<\270q\330,3\3203C\3001\330,3\3203K\3101\330,3\260>\300\021\330,3\260=\300\001\330,3\3203H\310\001\330,3\3203D\300A\330,6\260a\260q\330,6\260a\260q\330,-\250^\2701\200\001\360\036\000$%\330#$\330\004\007\200s\210\047\220\025\220d\230\047\240\027\250\001\330\n)\250\021\250%\250v\260Q\260a\330*/\250v\260Q\260a\330*0\260\006\260a\260q\330*+\2506\260\021\260!\330*+\2506\260\021\260!\330*/\250v\260Q\260a\330*1\3201A\300\021\330*1\3201B\300!\330*4\260D\270\001\330*4\260J\270a\330*4\260A\260Q\330*4\3204F\300a\330*4\260F\270!\330*4\260F\270!\330*4\260F\270!\330*4\260F\270!\330*4\260A\260Q\330*4\260E\270\021\330*4\260A\260Q\330*4\260A\260Q\330*4\260A\260Q\330*4\260B\260a\330*4\260H\270A\340\n/\250q""\260\005\260V\2701\270A\33005\260V\2701\270A\33006\260f\270A\270Q\33001\260\026\260q\270\001\33001\260\026\260q\270\001\33005\260V\2701\270A\33007\3207G\300q\33007\3207H\310\001\3300:\270$\270a\3300:\270*\300A\3300:\270!\2701\3300:\320:L\310A\3300:\270&\300\001\3300:\270&\300\001\3300:\270&\300\001\3300:\270!\2701\3300:\270%\270q\3300:\270!\2701\3300:\270!\2701\3300:\270!\2701\3300:\270(\300!\200\001\360 \000\007\047\240a\240q\250\006\250a\250q\330\047(\250\006\250a\250q\330\047(\250\006\250a\250q\330\047(\250\006\250a\250q\330\047(\250\006\250a\250q\330\0471\3201K\3101\330\0471\3201C\3001\330\0471\3201D\300A\330\0471\260\024\260Q\330\0471\3201K\3101\330\0471\260\021\260!\330\0471\260\021\260!\330\0471\260\025\260a\330\0471\3201B\300!\330\0471\3201B\300!\330\0471\260\021\260!\330\0471\260\021\260!\330\0471\260\021\260!\330\0471\260\021\260!\330\0471\260\030\270\021\330\0471\260\034\270Q\200\001\360\"\000\047(\330&\047\330\004\007\200s\210#\210U\220$\220g\230W\240A\330\n,\250A\250U\260&\270\001\270\021\330-2\260&\270\001\270\021\330-3\2606\270\021\270!\330-.\250f\260A\260Q\330-.\250f\260A\260Q\330-2\260&\270\001\270\021\330-4\260F\270!\330-4\260F\270!\330-4\3204D\300A\330-4\3204E\300Q\330-7\260t\2701\330-7\260z\300\021\330-7\260q\270\001\330-7\3207I\310\021\330-7\260v\270Q\330-7\260v\270Q\330-7\260v\270Q\330-7\260v\270Q\330-7\260q\270\001\330-7\260u\270A\330-7\260q\270\001\330-7\260q\270\001\330-7\260q\270\001\330-7\260r\270\021\330-7\260x\270q\340\n2\260!\2605\270\006\270a\270q\33038\270\006\270a\270q\33039\270\026\270q\300\001\33034\260F\270!\2701\33034\260F\270!\2701\33038\270\006\270a\270q\3303:\270&\300\001\3303:\270&\300\001\3303:\320:J\310!\3303:\320:K\3101\3303=\270T\300\021\3303=\270Z\300q\3303=\270Q\270a\3303=\320=O\310q\3303=\270V\3001\3303=\270V\3001\3303=\270V\3001\3303=\270Q\270a\3303=\270U\300!\3303=\270Q\270a\3303=\270Q\270a\3303=\270Q\270a\3303=\270X\300Q\200\001\360$\000\005\014\320\013 \240\006\240a\240s\250#\320-R\320RX\320XY\320YZ\330\006:\270!""\2701\270F\300!\3001\330;T\320TZ\320Z[\320[\\\330;T\320TZ\320Z[\320[\\\330;<\270F\300!\3001\330;<\270F\300!\3001\330;<\270F\300!\3001\330;<\270F\300!\3001\330;B\320B[\320[\\\330;B\320B[\320[\\\330;B\320BY\320YZ\330;B\320Bg\320gh\330;B\300,\310a\330;B\320BR\320RS\330;B\320BZ\320Z[\330;B\300.\320PQ\330;B\320BW\320WX\330;E\300_\320TU\330;E\300X\310Q\330;E\300R\300q\330;E\300Q\300a\330;E\300Q\300a\330;<\270N\310!\330;E\320EY\320YZ\330;E\300]\320RS\330;E\320EZ\320Z[\200\001\360$\000\007*\250\021\250!\2506\260\021\260!\330*+\2506\260\021\260!\330*+\2506\260\021\260!\330*+\2506\260\021\260!\330*+\2506\260\021\260!\330*1\260\026\260q\330*1\260\026\260q\330*4\3204N\310a\330*4\3204F\300a\330*4\3204G\300q\330*4\260D\270\001\330*4\3204N\310a\330*4\260A\260Q\330*4\260A\260Q\330*4\260E\270\021\330*4\3204E\300Q\330*4\3204E\300Q\330*4\260A\260Q\330*4\260A\260Q\330*4\260A\260Q\330*4\260A\260Q\330*4\260H\270A\330*4\260L\300\001\200\001\360&\000\007(\240q\250\001\250\026\250q\260\001\340(A\300\026\300q\310\001\340(A\300\026\300q\310\001\340()\250\026\250q\260\001\340()\250\026\250q\260\001\340()\250\026\250q\260\001\340(1\260\026\260q\270\001\340()\250\026\250q\260\001\340(/\320/H\310\001\330(/\320/H\310\001\330(/\320/F\300a\330(/\320/T\320TU\330(/\250|\2701\330(/\250y\270\001\330(/\320/?\270q\330(/\320/G\300q\330(/\250~\270Q\330(/\320/D\300A\330(2\260/\300\021\330(2\260(\270!\330(2\260\"\260A\330(2\260!\2601\330(2\260!\2601\330()\250\036\260q\330(2\3202F\300a\330(2\260-\270q\330(2\3202G\300q\200\001\360&\000\007,\2501\250A\330,-\250V\2601\260A\330,E\300V\3101\310A\330,E\300V\3101\310A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,-\250V\2601\260A\330,3\3203L\310A\330,3\3203L\310A\330,3\3203J\310!\330,3\3203X\320XY\330,3\260<\270q\330,3\3203C\3001\330,3\3203K\3101\330,3\260>\300\021\330,3\3203H\310\001\330,6\260o\300Q\330,6\260h\270a\330,6\260b\270\001\330,6\260a\260q\330,6\260a\260q\330,-\250^\2701\330,6\3206J\310!\330,6\260m\3001\330,6\3206K\3101\200A\340\n\030""\230\001\230\025\230d\240!\330\031\036\230d\240!\330\031\036\230d\240!\330\031\036\230d\240!\330\031\036\230d\240!\330\031\036\230d\240!\330\031\036\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\330\031\032\230$\230d\240!\200A\360\010\000\t\r\210E\220\025\220a\220t\2304\230q\330\014\020\220\005\220U\230!\2304\230t\240>\260\021\260!\330\020\024\220D\230\014\240A\240R\240q\250\005\250Q";
20712 PyObject *data = NULL;
20713 #define __Pyx_DecompressString_UNUSED
20714 #define __Pyx_DecompressString_LZSS_UNUSED
20715 #endif
20716 PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
20717 Py_ssize_t pos = 0;
20718 for (int i = 0; i < 231; i++) {
20719 Py_ssize_t bytes_length = str_length_index[i].length;
20720 PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
20721 if (likely(string) && i >= 12) PyUnicode_InternInPlace(&string);
20722 if (unlikely(!string)) {
20723 Py_XDECREF(data);
20724 __PYX_ERR(0, 1, __pyx_L1_error)
20725 }
20726 stringtab[i] = string;
20727 pos += bytes_length;
20728 }
20729 for (int i = 231; i < 287; i++) {
20730 Py_ssize_t bytes_length = bytes_length_index[i-231].length;
20731 PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
20732 stringtab[i] = string;
20733 pos += bytes_length;
20734 if (unlikely(!string)) {
20735 Py_XDECREF(data);
20736 __PYX_ERR(0, 1, __pyx_L1_error)
20737 }
20738 }
20739 Py_XDECREF(data);
20740 for (Py_ssize_t i = 0; i < 287; i++) {
20741 if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
20742 __PYX_ERR(0, 1, __pyx_L1_error)
20743 }
20744 }
20745 #if CYTHON_IMMORTAL_CONSTANTS
20746 {
20747 PyObject **table = stringtab + 231;
20748 for (Py_ssize_t i=0; i<56; ++i) {
20749 #if PY_VERSION_HEX >= 0x030F0000
20750 PyUnstable_SetImmortal(table[i]);
20751 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20752 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
20753 #if PY_VERSION_HEX < 0x030E0000
20754 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
20755 #else
20756 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
20757 #endif
20758 {
20759 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
20760 }
20761 #else
20762 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
20763 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
20764 #endif
20765 }
20766 }
20767 #endif
20768 }
20769 return 0;
20770 __pyx_L1_error:;
20771 return -1;
20772}
20773/* #### Code section: init_codeobjects ### */
20774#ifdef __cplusplus
20775namespace {
20776#endif
20777typedef struct {
20778 unsigned int argcount : 5;
20779 unsigned int num_posonly_args : 1;
20780 unsigned int num_kwonly_args : 1;
20781 unsigned int nlocals : 5;
20782 unsigned int flags : 10;
20783 unsigned int first_line : 11;
20784} __Pyx_PyCode_New_function_description;
20785#ifdef __cplusplus
20786} /* anonymous namespace */
20787#endif
20788/* NewCodeObj.proto */
20789static PyObject* __Pyx_PyCode_New(
20790 const __Pyx_PyCode_New_function_description descr,
20791 PyObject * const *varnames,
20792 PyObject *filename,
20793 PyObject *funcname,
20794 PyObject *line_table,
20795 PyObject *tuple_dedup_map
20796);
20797
20798
20799static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
20800 PyObject* tuple_dedup_map = PyDict_New();
20801 if (unlikely(!tuple_dedup_map)) return -1;
20802 {
20803 const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7};
20804 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nFreeDOF_element, __pyx_mstate->__pyx_n_u_freeLocal_element, __pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_sqrt_det_g, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_elementBarycenters, __pyx_mstate->__pyx_n_u_quad_a, __pyx_mstate->__pyx_n_u_quad_f, __pyx_mstate->__pyx_n_u_w_dV_r, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_gradu, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_rt0vdofs, __pyx_mstate->__pyx_n_u_w_dV_m, __pyx_mstate->__pyx_n_u_mt};
20805 __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_postProcessRT0velocityFromP1nc, __pyx_mstate->__pyx_kp_b_iso88591_s_d_vQa_vQa_0_aq_6_6_vQa_11A_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
20806 }
20807 {
20808 const __Pyx_PyCode_New_function_description descr = {19, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 71};
20809 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_nFreeDOF_element, __pyx_mstate->__pyx_n_u_freeLocal_element, __pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_sqrt_det_g, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_elementBarycenters, __pyx_mstate->__pyx_n_u_quad_a, __pyx_mstate->__pyx_n_u_quad_f, __pyx_mstate->__pyx_n_u_w_dV_r, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_gradu, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_rt0vdofs, __pyx_mstate->__pyx_n_u_w_dV_m, __pyx_mstate->__pyx_n_u_mt};
20810 __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_postProcessRT0velocityFromP1nc_s, __pyx_mstate->__pyx_kp_b_iso88591_s_U_gWA_AU_2_36_fAQ_fAQ_2_4F_4F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
20811 }
20812 {
20813 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 141};
20814 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_quad_a, __pyx_mstate->__pyx_n_u_phi, __pyx_mstate->__pyx_n_u_gradphi, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_rt0vdofs_element};
20815 __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateRT0velocityWithAveragedPot, __pyx_mstate->__pyx_kp_b_iso88591_2_6_fAQ_4F_7_q_7t1_7vQ_7s_7wa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
20816 }
20817 {
20818 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 157};
20819 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_quad_a, __pyx_mstate->__pyx_n_u_phi, __pyx_mstate->__pyx_n_u_gradphi, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_rt0vdofs_element};
20820 __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateRT0velocityWithAveragedPot_2, __pyx_mstate->__pyx_kp_b_iso88591_5AQfAQ56fAQ5_F_7_qPQ5_F_5_F_5_t, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
20821 }
20822 {
20823 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 177};
20824 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x_element, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_element};
20825 __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementRT0velocityValues, __pyx_mstate->__pyx_kp_b_iso88591_9F_1_F_1_F_1_Ya_Q_Ya, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
20826 }
20827 {
20828 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 187};
20829 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_x_elementBoundary, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_elementBoundary};
20830 __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementBoundaryRT0velocityVal, __pyx_mstate->__pyx_kp_b_iso88591_F_1_F_1_F_1_F_1_55Fa_55EQ_55Fa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
20831 }
20832 {
20833 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 198};
20834 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_x_elementBoundary_global, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_elementBoundary_global};
20835 __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalElementBoundaryRT0veloc, __pyx_mstate->__pyx_kp_b_iso88591_1_1I_qPQ1I_qPQ1I_qPQ188TTU1_SST, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
20836 }
20837 {
20838 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210};
20839 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_exteriorElementBoundariesArray, __pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_x_elementBoundary_global, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_elementBoundary_global};
20840 __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalExteriorElementBoundary, __pyx_mstate->__pyx_kp_b_iso88591_9_9WW__9QQWWXXY9QQWWXXY9_9__9CC, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
20841 }
20842 {
20843 const __Pyx_PyCode_New_function_description descr = {16, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 224};
20844 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_uQuadratureWeights_element, __pyx_mstate->__pyx_n_u_elementBarycenters, __pyx_mstate->__pyx_n_u_aElementQuadWeights, __pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_uQuadratureWeights_elementBounda, __pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_gradu, __pyx_mstate->__pyx_n_u_x_elementBoundary, __pyx_mstate->__pyx_n_u_u_elementBoundary, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_rt0vdofs, __pyx_mstate->__pyx_n_u_rt0potential};
20845 __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_postProcessRT0potentialFromP1nc, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_aq_aq_aq_aq_11K1_11C1_11D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
20846 }
20847 {
20848 const __Pyx_PyCode_New_function_description descr = {18, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 262};
20849 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_uQuadratureWeights_element, __pyx_mstate->__pyx_n_u_elementBarycenters, __pyx_mstate->__pyx_n_u_aElementQuadWeights, __pyx_mstate->__pyx_n_u_detJ, __pyx_mstate->__pyx_n_u_uQuadratureWeights_elementBounda, __pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_gradu, __pyx_mstate->__pyx_n_u_x_elementBoundary, __pyx_mstate->__pyx_n_u_u_elementBoundary, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_r, __pyx_mstate->__pyx_n_u_rt0vdofs, __pyx_mstate->__pyx_n_u_rt0potential};
20850 __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_postProcessRT0potentialFromP1nc_2, __pyx_mstate->__pyx_kp_b_iso88591_6_6_6_6_6_1_q_1_q_44Na_44Fa_44G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
20851 }
20852 {
20853 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 304};
20854 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_n, __pyx_mstate->__pyx_n_u_ebq_v, __pyx_mstate->__pyx_n_u_BDMmat_element};
20855 __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_buildLocalBDM1projectionMatrices, __pyx_mstate->__pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_V1A_6fAQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
20856 }
20857 {
20858 const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 320};
20859 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_degree, __pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_n, __pyx_mstate->__pyx_n_u_ebq_v, __pyx_mstate->__pyx_n_u_q_basis_vals, __pyx_mstate->__pyx_n_u_w_int_test_grads, __pyx_mstate->__pyx_n_u_w_int_div_free, __pyx_mstate->__pyx_n_u_piola_trial_fun, __pyx_mstate->__pyx_n_u_edgeFlags, __pyx_mstate->__pyx_n_u_BDMmat_element};
20860 __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_buildLocalBDM2projectionMatrices, __pyx_mstate->__pyx_kp_b_iso88591_q_V1A_V1A_V1A_4F_1_V1A_fAQ_V1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
20861 }
20862 {
20863 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 350};
20864 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element};
20865 __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_factorLocalBDM1projectionMatrice, __pyx_mstate->__pyx_kp_b_iso88591_vQa_7vQa_3_00DA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
20866 }
20867 {
20868 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 357};
20869 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element};
20870 __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_factorLocalBDM2projectionMatrice, __pyx_mstate->__pyx_kp_b_iso88591_vQa_7vQa_3_00DA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
20871 }
20872 {
20873 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 364};
20874 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element, __pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_n, __pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_q_vdofs};
20875 __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_solveLocalBDM1projection, __pyx_mstate->__pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_fAQ_1_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
20876 }
20877 {
20878 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 383};
20879 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element, __pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_n, __pyx_mstate->__pyx_n_u_w_interior_gradients, __pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_q_velocity, __pyx_mstate->__pyx_n_u_q_vdofs};
20880 __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_solveLocalBDM2projection, __pyx_mstate->__pyx_kp_b_iso88591_q_V1A_V1A_V1A_V1A_fAQ_fAQ_1_q_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
20881 }
20882 {
20883 const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 406};
20884 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element, __pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_n, __pyx_mstate->__pyx_n_u_w_interior_gradients, __pyx_mstate->__pyx_n_u_w_interior_divfree, __pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_q_velocity, __pyx_mstate->__pyx_n_u_q_vdofs, __pyx_mstate->__pyx_n_u_edgeFlags};
20885 __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_buildBDM2rhs, __pyx_mstate->__pyx_kp_b_iso88591_1E_q_q_q_fAQ_q_aq_nA_q_9A_fA_e1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
20886 }
20887 {
20888 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 435};
20889 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_BDMmat_element, __pyx_mstate->__pyx_n_u_BDMmatPivots_element, __pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_elementBoundariesArray, __pyx_mstate->__pyx_n_u_w_dS_f, __pyx_mstate->__pyx_n_u_ebq_global_flux, __pyx_mstate->__pyx_n_u_q_vdofs};
20890 __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_solveLocalBDM1projectionFromFlux, __pyx_mstate->__pyx_kp_b_iso88591_q_fAQ_fAQ_fAQ_fAQ_6fAQ_2_C1_K1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
20891 }
20892 {
20893 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 455};
20894 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_q_v, __pyx_mstate->__pyx_n_u_p1_vdofs, __pyx_mstate->__pyx_n_u_q_velocity, __pyx_mstate->__pyx_n_u_nVDOFs_element};
20895 __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementBDM1velocityValuesLagr, __pyx_mstate->__pyx_kp_b_iso88591_j_ar_V1Baq_xvRq_c_q_az_q_6fAQ_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
20896 }
20897 {
20898 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 471};
20899 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_q_v, __pyx_mstate->__pyx_n_u_p1_vdofs, __pyx_mstate->__pyx_n_u_q_velocity, __pyx_mstate->__pyx_n_u_nVDOFs_element};
20900 __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementBDM2velocityValuesLagr, __pyx_mstate->__pyx_kp_b_iso88591_z_q_3a_6_S_xvRq_c_q_az_q_9_q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
20901 }
20902 {
20903 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 493};
20904 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_q_v, __pyx_mstate->__pyx_n_u_vdofs, __pyx_mstate->__pyx_n_u_q_velocity, __pyx_mstate->__pyx_n_u_nVDOF_element, __pyx_mstate->__pyx_n_u_nDOF_trial_element};
20905 __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementLDGvelocityValuesLagra, __pyx_mstate->__pyx_kp_b_iso88591_E_q_6_V2Q_S_6_AZvQa_Qj_aq_8_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
20906 }
20907 {
20908 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 509};
20909 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_exteriorElementBoundariesArray, __pyx_mstate->__pyx_n_u_ebqe_v, __pyx_mstate->__pyx_n_u_p1_vdofs, __pyx_mstate->__pyx_n_u_ebqe_velocity, __pyx_mstate->__pyx_n_u_nVDOFs_element};
20910 __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalExteriorElementBoundary_2, __pyx_mstate->__pyx_kp_b_iso88591_m6_Bm6_AQ_xvRq_c_q_DA_RXXYYZERR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
20911 }
20912 {
20913 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 528};
20914 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_exteriorElementBoundariesArray, __pyx_mstate->__pyx_n_u_ebqe_v, __pyx_mstate->__pyx_n_u_p1_vdofs, __pyx_mstate->__pyx_n_u_ebq_global_velocity, __pyx_mstate->__pyx_n_u_nVDOFs_element};
20915 __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalElementBoundaryBDM1velo, __pyx_mstate->__pyx_kp_b_iso88591_1_q_OvUVVXXYYZ_xvRq_c_q_DAV6QRR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
20916 }
20917 {
20918 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 547};
20919 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_exteriorElementBoundariesArray, __pyx_mstate->__pyx_n_u_ebq_v, __pyx_mstate->__pyx_n_u_p1_vdofs, __pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_nVDOFs_element};
20920 __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementBoundaryBDM1velocityVa, __pyx_mstate->__pyx_kp_b_iso88591_l_2_q_1_xvRq_c_q_vQa_GvQa_GvQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
20921 }
20922 {
20923 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 567};
20924 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryQuadratureWeights, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_v_elementBoundary, __pyx_mstate->__pyx_n_u_rt0vdofs_element};
20925 __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_projectElementBoundaryVelocityTo, __pyx_mstate->__pyx_kp_b_iso88591_2_6_236_236_236_2_2_AQ2_MQ2_LA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
20926 }
20927 {
20928 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 580};
20929 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_elementBoundariesArray, __pyx_mstate->__pyx_n_u_elementBoundaryQuadratureWeights, __pyx_mstate->__pyx_n_u_flux_elementBoundary, __pyx_mstate->__pyx_n_u_rt0vdofs_element};
20930 __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_projectElementBoundaryFluxToRT0f, __pyx_mstate->__pyx_kp_b_iso88591_Q_NfTUUV_NfTUUV_NfTUUV_fAQ_55QQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
20931 }
20932 {
20933 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 595};
20934 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodeArray, __pyx_mstate->__pyx_n_u_elementNodesArray, __pyx_mstate->__pyx_n_u_abs_det_J, __pyx_mstate->__pyx_n_u_x_element, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_element};
20935 __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementRT0velocityValuesFluxR, __pyx_mstate->__pyx_kp_b_iso88591_6_6_36_36_36_4IQ_11B_4IQ_4IQ_44, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
20936 }
20937 {
20938 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 613};
20939 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodeArray, __pyx_mstate->__pyx_n_u_elementNodesArray, __pyx_mstate->__pyx_n_u_abs_det_J, __pyx_mstate->__pyx_n_u_x_elementBoundary, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_elementBoundary};
20940 __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getElementBoundaryRT0velocityVal_2, __pyx_mstate->__pyx_kp_b_iso88591_2_2C6_2C6_2C6_2C6_2_6_2_IQ299J, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
20941 }
20942 {
20943 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 631};
20944 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodeArray, __pyx_mstate->__pyx_n_u_elementNodesArray, __pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_abs_det_J, __pyx_mstate->__pyx_n_u_x_elementBoundary_global, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_elementBoundary_global};
20945 __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalElementBoundaryRT0veloc_2, __pyx_mstate->__pyx_kp_b_iso88591_8q8PPVVWWX8PPVVWWX8PPVVWWX8A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
20946 }
20947 {
20948 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 650};
20949 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodeArray, __pyx_mstate->__pyx_n_u_elementNodesArray, __pyx_mstate->__pyx_n_u_elementBoundaryElementsArray, __pyx_mstate->__pyx_n_u_exteriorElementBoundariesArray, __pyx_mstate->__pyx_n_u_abs_det_J, __pyx_mstate->__pyx_n_u_x_ebqe, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_ebqe};
20950 __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getGlobalExteriorElementBoundary_3, __pyx_mstate->__pyx_kp_b_iso88591_q_fAQ_FfAQ_FfAQ_I_qPQ_J_ST_GGXX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
20951 }
20952 {
20953 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 671};
20954 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodeArray, __pyx_mstate->__pyx_n_u_elementNodesArray, __pyx_mstate->__pyx_n_u_abs_det_J, __pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_element_locations, __pyx_mstate->__pyx_n_u_rt0vdofs_element, __pyx_mstate->__pyx_n_u_v_element, __pyx_mstate->__pyx_n_u_nPoints};
20955 __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_getRT0velocityValuesFluxRep_arbi, __pyx_mstate->__pyx_kp_b_iso88591_q_Rq_aq_Qa_Q_OvUVVW_OvUVVW_GvQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
20956 }
20957 {
20958 const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 692};
20959 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_dS, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_fluxCorrection, __pyx_mstate->__pyx_n_u_velocity, __pyx_mstate->__pyx_n_u_velocity_element};
20960 __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_fluxCorrectionVelocityUpdate, __pyx_mstate->__pyx_kp_b_iso88591_1BfAQ_F_1_V1A_V1A_fAQ_fAQ_F_1_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
20961 }
20962 {
20963 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 718};
20964 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_pwcW, __pyx_mstate->__pyx_n_u_pwcV, __pyx_mstate->__pyx_n_u_fluxCorrection};
20965 __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_computeFluxCorrectionPWC, __pyx_mstate->__pyx_kp_b_iso88591_q_7vQa_9_q_9_q_a_a_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
20966 }
20967 {
20968 const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 734};
20969 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_dS, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_sqrt_det_g, __pyx_mstate->__pyx_n_u_alphaFactor, __pyx_mstate->__pyx_n_u_fluxCorrection, __pyx_mstate->__pyx_n_u_conservationResidual};
20970 __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_sunWheelerGSsweep, __pyx_mstate->__pyx_kp_b_iso88591_V1A_0_aq_2_2_6_6_9_9_7q_EQ_2Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
20971 }
20972 {
20973 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 794};
20974 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_val, __pyx_mstate->__pyx_n_u_I, __pyx_mstate->__pyx_n_u_i};
20975 __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_setU, __pyx_mstate->__pyx_kp_b_iso88591_A_E_at4q_U_4t_D_ARq_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
20976 }
20977 {
20978 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 802};
20979 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
20980 __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_copyData, __pyx_mstate->__pyx_kp_b_iso88591_A_d_d_d_d_d_d_d_d_d_d_d_d_d_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
20981 }
20982 {
20983 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
20984 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
20985 __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
20986 }
20987 {
20988 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
20989 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
20990 __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;
20991 }
20992 {
20993 const __Pyx_PyCode_New_function_description descr = {19, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 819};
20994 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_dofMapl2g, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_vAverage, __pyx_mstate->__pyx_n_u_dx, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor, __pyx_mstate->__pyx_n_u_conservationResidual, __pyx_mstate->__pyx_n_u_vConservative, __pyx_mstate->__pyx_n_u_vConservative_element};
20995 __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationResidualPWL, __pyx_mstate->__pyx_kp_b_iso88591_q_q_A_q_A_q_q_q_q_1_q_q_H_H_Fa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;
20996 }
20997 {
20998 const __Pyx_PyCode_New_function_description descr = {15, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 874};
20999 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_dofMapl2g, __pyx_mstate->__pyx_n_u_dofStarElements, __pyx_mstate->__pyx_n_u_dofStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_dof, __pyx_mstate->__pyx_n_u_internalNodes, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_fluxBoundaryNodes, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21000 __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationJacobianPWL, __pyx_mstate->__pyx_kp_b_iso88591_q_V1A_5V1A_q_A_q_A_q_q_q_q_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;
21001 }
21002 {
21003 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 915};
21004 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_internalNodes, __pyx_mstate->__pyx_n_u_fluxBoundaryNodes, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21005 __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationFluxPWL, __pyx_mstate->__pyx_kp_b_iso88591_1N_1_q_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;
21006 }
21007 {
21008 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 926};
21009 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21010 __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationFluxPWL_noN, __pyx_mstate->__pyx_kp_b_iso88591_0_vQa18_a12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;
21011 }
21012 {
21013 const __Pyx_PyCode_New_function_description descr = {19, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 932};
21014 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nNodes_owned, __pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_vAverage, __pyx_mstate->__pyx_n_u_dx, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor, __pyx_mstate->__pyx_n_u_conservationResidual, __pyx_mstate->__pyx_n_u_vConservative, __pyx_mstate->__pyx_n_u_vConservative_element};
21015 __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationResidualPWL_2, __pyx_mstate->__pyx_kp_b_iso88591_1A_V1A_EV1A_EV1A_V1A_V1A_V1A_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;
21016 }
21017 {
21018 const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 978};
21019 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_skipflag_elementBoundaries, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_dx, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_conservationResidual, __pyx_mstate->__pyx_n_u_vConservative};
21020 __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationResidualPWL_3, __pyx_mstate->__pyx_kp_b_iso88591_2_F_12K6QRRS2K6QRRS24F_124F_12A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;
21021 }
21022 {
21023 const __Pyx_PyCode_New_function_description descr = {15, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1006};
21024 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nNodes_owned, __pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_internalNodes, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_fluxBoundaryNodes, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21025 __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationJacobianPWL_2, __pyx_mstate->__pyx_kp_b_iso88591_1A_9_q_V1A_EV1A_EV1A_V1A_V1A_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;
21026 }
21027 {
21028 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1046};
21029 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nNodes_owned, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_internalNodes, __pyx_mstate->__pyx_n_u_fluxBoundaryNodes, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21030 __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationFluxPWL_opt, __pyx_mstate->__pyx_kp_b_iso88591_q_6fAQ_5V1A_Q_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;
21031 }
21032 {
21033 const __Pyx_PyCode_New_function_description descr = {18, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1059};
21034 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_vAverage, __pyx_mstate->__pyx_n_u_dx, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor, __pyx_mstate->__pyx_n_u_conservationResidual, __pyx_mstate->__pyx_n_u_vConservative, __pyx_mstate->__pyx_n_u_vConservative_element};
21035 __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationResidualPWL_4, __pyx_mstate->__pyx_kp_b_iso88591_as_RRXXYYZ_1F_1_TTZZ_TTZZ_F_1_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;
21036 }
21037 {
21038 const __Pyx_PyCode_New_function_description descr = {12, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1104};
21039 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarElementNeighbors, __pyx_mstate->__pyx_n_u_nElements_node, __pyx_mstate->__pyx_n_u_fluxElementBoundaries, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_nodeStarFactor};
21040 __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationJacobianPWL_3, __pyx_mstate->__pyx_kp_b_iso88591_as_RRXXYYZ_qPQ_F_1_TTZZ_TTZZ_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;
21041 }
21042 {
21043 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1138};
21044 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_max_nN_owned, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarFactor, __pyx_mstate->__pyx_n_u_subdomain_U};
21045 __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_subdomain_U_copy_global2local, __pyx_mstate->__pyx_kp_b_iso88591_AQ_0_aq_0_aq_L_A_nA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;
21046 }
21047 {
21048 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1151};
21049 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_max_nN_owned, __pyx_mstate->__pyx_n_u_elementNodes, __pyx_mstate->__pyx_n_u_nodeStarElements, __pyx_mstate->__pyx_n_u_nodeStarFactor, __pyx_mstate->__pyx_n_u_subdomain_U};
21050 __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_subdomain_U_copy_local2global, __pyx_mstate->__pyx_kp_b_iso88591_AQ_0_aq_0_aq_L_A_nA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;
21051 }
21052 {
21053 const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1164};
21054 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interiorElementBoundaries, __pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_exteriorElementBoundariesToSkip, __pyx_mstate->__pyx_n_u_dS, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_velocity, __pyx_mstate->__pyx_n_u_conservationResidual};
21055 __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateConservationResidualGlo, __pyx_mstate->__pyx_kp_b_iso88591_5A5I_qPQ5NfTUUV5NfTUUV57vQa57vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;
21056 }
21057 {
21058 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1192};
21059 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_exteriorElementBoundaries, __pyx_mstate->__pyx_n_u_elementBoundaryElements, __pyx_mstate->__pyx_n_u_elementBoundaryLocalElementBound, __pyx_mstate->__pyx_n_u_skipflag_elementBoundaries, __pyx_mstate->__pyx_n_u_flux, __pyx_mstate->__pyx_n_u_w, __pyx_mstate->__pyx_n_u_residual};
21060 __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateSelectedExteriorElementBou, __pyx_mstate->__pyx_kp_b_iso88591_1_1J_PQQR12_12_12_188QQR188Oq18, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;
21061 }
21062 {
21063 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1211};
21064 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_updateCoef, __pyx_mstate->__pyx_n_u_advectiveVelocity, __pyx_mstate->__pyx_n_u_velocity, __pyx_mstate->__pyx_n_u_nPoints};
21065 __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateAdvectiveVelocityPointEval, __pyx_mstate->__pyx_kp_b_iso88591_xuBhfAXU_1_AQ_5V1HE_77H_7xq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;
21066 }
21067 {
21068 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1221};
21069 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_updateCoef, __pyx_mstate->__pyx_n_u_diffusionTensor, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_velocity, __pyx_mstate->__pyx_n_u_nPoints};
21070 __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateDiffusiveVelocityPointEval, __pyx_mstate->__pyx_kp_b_iso88591_xuBhfAXU_1_AQ_5V1HE_7_a_7xq_7xq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;
21071 }
21072 {
21073 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1233};
21074 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_updateCoef, __pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_diffusionTensor, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_velocity, __pyx_mstate->__pyx_n_u_nPoints};
21075 __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_updateDiffusiveVelocityPointEval_2, __pyx_mstate->__pyx_kp_b_iso88591_xuBhfAXU_1_q_08_axuAQ0107vQ07vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;
21076 }
21077 {
21078 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1249};
21079 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_alpha, __pyx_mstate->__pyx_n_u_elementResidual, __pyx_mstate->__pyx_n_u_elementResidualPWL};
21080 __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_calculateElementResidualPWL, __pyx_mstate->__pyx_kp_b_iso88591_2_5V1A_U__A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;
21081 }
21082 {
21083 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1259};
21084 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_permutations, __pyx_mstate->__pyx_n_u_ebq_v_par_local, __pyx_mstate->__pyx_n_u_ebN, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_I, __pyx_mstate->__pyx_n_u_nElementBoundaries, __pyx_mstate->__pyx_n_u_nQuadraturePoints, __pyx_mstate->__pyx_n_u_nSpace};
21085 __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_copyElementBoundaryVelocityToPar, __pyx_mstate->__pyx_kp_b_iso88591_vQa_fAQ_O6_uAQ_E_aq_U_1_q_L_S_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;
21086 }
21087 {
21088 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1273};
21089 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ebq_velocityAverage, __pyx_mstate->__pyx_n_u_permutations, __pyx_mstate->__pyx_n_u_ebq_v_par_local, __pyx_mstate->__pyx_n_u_ebN, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_I, __pyx_mstate->__pyx_n_u_nElementBoundaries, __pyx_mstate->__pyx_n_u_nQuadraturePoints, __pyx_mstate->__pyx_n_u_nSpace};
21090 __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_addAverageToParVec, __pyx_mstate->__pyx_kp_b_iso88591_vQa_fAQ_O6_Qa_E_aq_U_1_q_d_SSTT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;
21091 }
21092 {
21093 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1287};
21094 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ebq_velocity, __pyx_mstate->__pyx_n_u_permutations, __pyx_mstate->__pyx_n_u_ebq_v_par_local, __pyx_mstate->__pyx_n_u_ebN, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_I, __pyx_mstate->__pyx_n_u_nElementBoundaries, __pyx_mstate->__pyx_n_u_nQuadraturePoints, __pyx_mstate->__pyx_n_u_nSpace};
21095 __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_cpostprocessing_pyx, __pyx_mstate->__pyx_n_u_copyParVecToElementBoundaryVeloc, __pyx_mstate->__pyx_kp_b_iso88591_vQa_fAQ_O6_uAQ_E_aq_U_1_AU_U_1E, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;
21096 }
21097 Py_DECREF(tuple_dedup_map);
21098 return 0;
21099 bad:
21100 Py_DECREF(tuple_dedup_map);
21101 return -1;
21102}
21103/* #### Code section: init_globals ### */
21104
21105static int __Pyx_InitGlobals(void) {
21106 int __pyx_lineno = 0;
21107 const char *__pyx_filename = NULL;
21108 int __pyx_clineno = 0;
21109 /* PythonCompatibility.init */
21110 if (likely(__Pyx_init_co_variables() == 0 && __Pyx_init_tpflags_variables() == 0)); else
21111
21112 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21113
21114 /* AssertionsEnabled.init */
21115 if (likely(__Pyx_init_assertions_enabled() == 0)); else
21116
21117 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21118
21119 /* PyFrozenDict.init */
21120 #if CYTHON_COMPILING_IN_LIMITED_API
21121 {
21122 PyObject *builtins = PyEval_GetBuiltins(); // borrowed
21123 if (likely(builtins)) {
21124 PyObject *type_name = PyUnicode_FromStringAndSize("frozendict", sizeof("frozendict")-1);
21125 if (likely(type_name)) {
21126 PyObject *frozendict_type = PyObject_GetItem(builtins, type_name);
21127 Py_DECREF(type_name);
21128 if (!frozendict_type && PyErr_ExceptionMatches(PyExc_KeyError)) {
21129 PyErr_Clear();
21130 frozendict_type = (PyObject*) &PyDict_Type;
21131 Py_INCREF(frozendict_type);
21132 }
21133 __pyx_mstate_global->__Pyx_PyFrozenDictType = frozendict_type;
21134 }
21135 }
21136 } // error handling follows
21137 #endif
21138
21139 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21140
21141 /* NumpyImportArray.init */
21142 /*
21143 * Cython has automatically inserted a call to _import_array since
21144 * you didn't include one when you cimported numpy. To disable this
21145 * add the line
21146 * <void>numpy._import_array
21147 */
21148 #ifdef NPY_FEATURE_VERSION
21149 #ifndef NO_IMPORT_ARRAY
21150 if (unlikely(_import_array() == -1)) {
21151 PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import "
21152 "(auto-generated because you didn't call 'numpy.import_array()' after cimporting numpy; "
21153 "use '<void>numpy._import_array' to disable if you are certain you don't need it).");
21154 }
21155 #endif
21156 #endif
21157
21158 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21159
21160 /* CommonTypesMetaclass.init */
21161 if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
21162
21163 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21164
21165 /* CachedMethodType.init */
21166 #if CYTHON_COMPILING_IN_LIMITED_API
21167 {
21168 PyObject *typesModule=NULL;
21169 typesModule = PyImport_ImportModule("types");
21170 if (typesModule) {
21171 __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
21172 Py_DECREF(typesModule);
21173 }
21174 } // error handling follows
21175 #endif
21176
21177 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21178
21179 return 0;
21180 __pyx_L1_error:;
21181 return -1;
21182}
21183/* #### Code section: init_after_shared_utility ### */
21184
21185static int __Pyx_InitAfterSharedUtility(void) {
21186 int __pyx_lineno = 0;
21187 const char *__pyx_filename = NULL;
21188 int __pyx_clineno = 0;
21189 /* CythonFunctionPerModule.init */
21190 if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
21191
21192 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
21193
21194 return 0;
21195 __pyx_L1_error:;
21196 return -1;
21197}
21198/* #### Code section: cleanup_globals ### */
21199/* #### Code section: cleanup_module ### */
21200/* #### Code section: main_method ### */
21201/* #### Code section: utility_code_pragmas ### */
21202#ifdef _MSC_VER
21203#pragma warning( push )
21204/* Warning 4127: conditional expression is constant
21205 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
21206 * compile-time, so this warning is not useful
21207 */
21208#pragma warning( disable : 4127 )
21209#endif
21210
21211
21212
21213/* #### Code section: utility_code_def ### */
21214
21215/* --- Runtime support code --- */
21216/* Refnanny */
21217#if CYTHON_REFNANNY
21218static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
21219 PyObject *m = NULL, *p = NULL;
21220 void *r = NULL;
21221 m = PyImport_ImportModule(modname);
21222 if (!m) goto end;
21223 p = PyObject_GetAttrString(m, "RefNannyAPI");
21224 if (!p) goto end;
21225 r = PyLong_AsVoidPtr(p);
21226end:
21227 Py_XDECREF(p);
21228 Py_XDECREF(m);
21229 return (__Pyx_RefNannyAPIStruct *)r;
21230}
21231#endif
21232
21233/* GetTopmostException (used by SaveResetException) */
21234#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
21235static _PyErr_StackItem *
21236__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
21237{
21238 _PyErr_StackItem *exc_info = tstate->exc_info;
21239 while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
21240 exc_info->previous_item != NULL)
21241 {
21242 exc_info = exc_info->previous_item;
21243 }
21244 return exc_info;
21245}
21246#endif
21247
21248/* SaveResetException */
21249#if CYTHON_FAST_THREAD_STATE
21250static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
21251 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
21252 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
21253 PyObject *exc_value = exc_info->exc_value;
21254 if (exc_value == NULL || exc_value == Py_None) {
21255 *value = NULL;
21256 *type = NULL;
21257 *tb = NULL;
21258 } else {
21259 *value = exc_value;
21260 Py_INCREF(*value);
21261 *type = (PyObject*) Py_TYPE(exc_value);
21262 Py_INCREF(*type);
21263 *tb = PyException_GetTraceback(exc_value);
21264 }
21265 #elif CYTHON_USE_EXC_INFO_STACK
21266 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
21267 *type = exc_info->exc_type;
21268 *value = exc_info->exc_value;
21269 *tb = exc_info->exc_traceback;
21270 Py_XINCREF(*type);
21271 Py_XINCREF(*value);
21272 Py_XINCREF(*tb);
21273 #else
21274 *type = tstate->exc_type;
21275 *value = tstate->exc_value;
21276 *tb = tstate->exc_traceback;
21277 Py_XINCREF(*type);
21278 Py_XINCREF(*value);
21279 Py_XINCREF(*tb);
21280 #endif
21281}
21282static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
21283 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
21284 _PyErr_StackItem *exc_info = tstate->exc_info;
21285 PyObject *tmp_value = exc_info->exc_value;
21286 exc_info->exc_value = value;
21287 Py_XDECREF(tmp_value);
21288 Py_XDECREF(type);
21289 Py_XDECREF(tb);
21290 #else
21291 PyObject *tmp_type, *tmp_value, *tmp_tb;
21292 #if CYTHON_USE_EXC_INFO_STACK
21293 _PyErr_StackItem *exc_info = tstate->exc_info;
21294 tmp_type = exc_info->exc_type;
21295 tmp_value = exc_info->exc_value;
21296 tmp_tb = exc_info->exc_traceback;
21297 exc_info->exc_type = type;
21298 exc_info->exc_value = value;
21299 exc_info->exc_traceback = tb;
21300 #else
21301 tmp_type = tstate->exc_type;
21302 tmp_value = tstate->exc_value;
21303 tmp_tb = tstate->exc_traceback;
21304 tstate->exc_type = type;
21305 tstate->exc_value = value;
21306 tstate->exc_traceback = tb;
21307 #endif
21308 Py_XDECREF(tmp_type);
21309 Py_XDECREF(tmp_value);
21310 Py_XDECREF(tmp_tb);
21311 #endif
21312}
21313#endif
21314
21315/* FastTypeChecks (used by PyException_Check) */
21316#if CYTHON_COMPILING_IN_CPYTHON
21317static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
21318 while (a) {
21319 a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
21320 if (a == b)
21321 return 1;
21322 }
21323 return b == &PyBaseObject_Type;
21324}
21325static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
21326 PyObject *mro;
21327 if (a == b) return 1;
21328 mro = a->tp_mro;
21329 if (likely(mro)) {
21330 Py_ssize_t i, n;
21331 n = PyTuple_GET_SIZE(mro);
21332 for (i = 0; i < n; i++) {
21333 if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
21334 return 1;
21335 }
21336 return 0;
21337 }
21338 return __Pyx_InBases(a, b);
21339}
21340static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
21341 PyObject *mro;
21342 if (cls == a || cls == b) return 1;
21343 mro = cls->tp_mro;
21344 if (likely(mro)) {
21345 Py_ssize_t i, n;
21346 n = PyTuple_GET_SIZE(mro);
21347 for (i = 0; i < n; i++) {
21348 PyObject *base = PyTuple_GET_ITEM(mro, i);
21349 if (base == (PyObject *)a || base == (PyObject *)b)
21350 return 1;
21351 }
21352 return 0;
21353 }
21354 return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
21355}
21356#endif
21357
21358/* PyErrFetchRestore (used by GivenExceptionMatches) */
21359#if CYTHON_FAST_THREAD_STATE
21360static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
21361#if PY_VERSION_HEX >= 0x030C00A6
21362 PyObject *tmp_value;
21363 assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
21364 if (value) {
21365 #if CYTHON_COMPILING_IN_CPYTHON
21366 if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
21367 #endif
21368 PyException_SetTraceback(value, tb);
21369 }
21370 tmp_value = tstate->current_exception;
21371 tstate->current_exception = value;
21372 Py_XDECREF(tmp_value);
21373 Py_XDECREF(type);
21374 Py_XDECREF(tb);
21375#else
21376 PyObject *tmp_type, *tmp_value, *tmp_tb;
21377 tmp_type = tstate->curexc_type;
21378 tmp_value = tstate->curexc_value;
21379 tmp_tb = tstate->curexc_traceback;
21380 tstate->curexc_type = type;
21381 tstate->curexc_value = value;
21382 tstate->curexc_traceback = tb;
21383 Py_XDECREF(tmp_type);
21384 Py_XDECREF(tmp_value);
21385 Py_XDECREF(tmp_tb);
21386#endif
21387}
21388static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
21389#if PY_VERSION_HEX >= 0x030C00A6
21390 PyObject* exc_value;
21391 exc_value = tstate->current_exception;
21392 tstate->current_exception = 0;
21393 *value = exc_value;
21394 *type = NULL;
21395 *tb = NULL;
21396 if (exc_value) {
21397 *type = (PyObject*) Py_TYPE(exc_value);
21398 Py_INCREF(*type);
21399 #if CYTHON_COMPILING_IN_CPYTHON
21400 *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
21401 Py_XINCREF(*tb);
21402 #else
21403 *tb = PyException_GetTraceback(exc_value);
21404 #endif
21405 }
21406#else
21407 *type = tstate->curexc_type;
21408 *value = tstate->curexc_value;
21409 *tb = tstate->curexc_traceback;
21410 tstate->curexc_type = 0;
21411 tstate->curexc_value = 0;
21412 tstate->curexc_traceback = 0;
21413#endif
21414}
21415#endif
21416
21417/* GivenExceptionMatches (used by PyErrExceptionMatches) */
21418#if CYTHON_COMPILING_IN_CPYTHON
21419static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
21420 if (exc_type1) {
21421 return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
21422 } else {
21423 return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
21424 }
21425}
21426static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
21427 Py_ssize_t i, n;
21428 assert(PyExceptionClass_Check(exc_type));
21429 n = PyTuple_GET_SIZE(tuple);
21430 for (i=0; i<n; i++) {
21431 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
21432 }
21433 for (i=0; i<n; i++) {
21434 PyObject *t = PyTuple_GET_ITEM(tuple, i);
21435 if (likely(PyExceptionClass_Check(t))) {
21436 if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
21437 } else {
21438 }
21439 }
21440 return 0;
21441}
21442static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
21443 if (likely(err == exc_type)) return 1;
21444 if (likely(PyExceptionClass_Check(err))) {
21445 if (likely(PyExceptionClass_Check(exc_type))) {
21446 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
21447 } else if (likely(PyTuple_Check(exc_type))) {
21448 return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
21449 } else {
21450 }
21451 }
21452 return PyErr_GivenExceptionMatches(err, exc_type);
21453}
21454static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
21455 assert(PyExceptionClass_Check(exc_type1));
21456 assert(PyExceptionClass_Check(exc_type2));
21457 if (likely(err == exc_type1 || err == exc_type2)) return 1;
21458 if (likely(PyExceptionClass_Check(err))) {
21459 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
21460 }
21461 return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
21462}
21463#endif
21464
21465/* PyErrExceptionMatches */
21466#if CYTHON_FAST_THREAD_STATE
21467static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
21468 Py_ssize_t i, n;
21469 n = PyTuple_GET_SIZE(tuple);
21470 for (i=0; i<n; i++) {
21471 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
21472 }
21473 for (i=0; i<n; i++) {
21474 if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
21475 }
21476 return 0;
21477}
21478static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
21479 int result;
21480 PyObject *exc_type;
21481#if PY_VERSION_HEX >= 0x030C00A6
21482 PyObject *current_exception = tstate->current_exception;
21483 if (unlikely(!current_exception)) return 0;
21484 exc_type = (PyObject*) Py_TYPE(current_exception);
21485 if (exc_type == err) return 1;
21486#else
21487 exc_type = tstate->curexc_type;
21488 if (exc_type == err) return 1;
21489 if (unlikely(!exc_type)) return 0;
21490#endif
21491 #if CYTHON_AVOID_BORROWED_REFS
21492 Py_INCREF(exc_type);
21493 #endif
21494 if (unlikely(PyTuple_Check(err))) {
21495 result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
21496 } else {
21497 result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
21498 }
21499 #if CYTHON_AVOID_BORROWED_REFS
21500 Py_DECREF(exc_type);
21501 #endif
21502 return result;
21503}
21504#endif
21505
21506/* GetException */
21507#if CYTHON_FAST_THREAD_STATE
21508static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
21509#else
21510static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
21511#endif
21512{
21513 PyObject *local_type = NULL, *local_value, *local_tb = NULL;
21514#if CYTHON_FAST_THREAD_STATE
21515 PyObject *tmp_type, *tmp_value, *tmp_tb;
21516 #if PY_VERSION_HEX >= 0x030C0000
21517 local_value = tstate->current_exception;
21518 tstate->current_exception = 0;
21519 #else
21520 local_type = tstate->curexc_type;
21521 local_value = tstate->curexc_value;
21522 local_tb = tstate->curexc_traceback;
21523 tstate->curexc_type = 0;
21524 tstate->curexc_value = 0;
21525 tstate->curexc_traceback = 0;
21526 #endif
21527#elif __PYX_LIMITED_VERSION_HEX >= 0x030C0000
21528 local_value = PyErr_GetRaisedException();
21529#else
21530 PyErr_Fetch(&local_type, &local_value, &local_tb);
21531#endif
21532#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
21533 if (likely(local_value)) {
21534 local_type = (PyObject*) Py_TYPE(local_value);
21535 Py_INCREF(local_type);
21536 local_tb = PyException_GetTraceback(local_value);
21537 }
21538#else
21539 PyErr_NormalizeException(&local_type, &local_value, &local_tb);
21540#if CYTHON_FAST_THREAD_STATE
21541 if (unlikely(tstate->curexc_type))
21542#else
21543 if (unlikely(PyErr_Occurred()))
21544#endif
21545 goto bad;
21546 if (local_tb) {
21547 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
21548 goto bad;
21549 }
21550#endif // __PYX_LIMITED_VERSION_HEX >= 0x030C0000
21551 Py_XINCREF(local_tb);
21552 Py_XINCREF(local_type);
21553 Py_XINCREF(local_value);
21554 *type = local_type;
21555 *value = local_value;
21556 *tb = local_tb;
21557#if CYTHON_FAST_THREAD_STATE
21558 #if CYTHON_USE_EXC_INFO_STACK
21559 {
21560 _PyErr_StackItem *exc_info = tstate->exc_info;
21561 #if PY_VERSION_HEX >= 0x030B00a4
21562 tmp_value = exc_info->exc_value;
21563 exc_info->exc_value = local_value;
21564 tmp_type = NULL;
21565 tmp_tb = NULL;
21566 Py_XDECREF(local_type);
21567 Py_XDECREF(local_tb);
21568 #else
21569 tmp_type = exc_info->exc_type;
21570 tmp_value = exc_info->exc_value;
21571 tmp_tb = exc_info->exc_traceback;
21572 exc_info->exc_type = local_type;
21573 exc_info->exc_value = local_value;
21574 exc_info->exc_traceback = local_tb;
21575 #endif
21576 }
21577 #else
21578 tmp_type = tstate->exc_type;
21579 tmp_value = tstate->exc_value;
21580 tmp_tb = tstate->exc_traceback;
21581 tstate->exc_type = local_type;
21582 tstate->exc_value = local_value;
21583 tstate->exc_traceback = local_tb;
21584 #endif
21585 Py_XDECREF(tmp_type);
21586 Py_XDECREF(tmp_value);
21587 Py_XDECREF(tmp_tb);
21588#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
21589 PyErr_SetHandledException(local_value);
21590 Py_XDECREF(local_value);
21591 Py_XDECREF(local_type);
21592 Py_XDECREF(local_tb);
21593#else
21594 PyErr_SetExcInfo(local_type, local_value, local_tb);
21595#endif
21596 return 0;
21597#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
21598bad:
21599 *type = 0;
21600 *value = 0;
21601 *tb = 0;
21602 Py_XDECREF(local_type);
21603 Py_XDECREF(local_value);
21604 Py_XDECREF(local_tb);
21605 return -1;
21606#endif
21607}
21608
21609/* PyObjectCall (used by PyObjectFastCall) */
21610#if CYTHON_COMPILING_IN_CPYTHON
21611static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
21612 PyObject *result;
21613 ternaryfunc call = Py_TYPE(func)->tp_call;
21614 if (unlikely(!call))
21615 return PyObject_Call(func, arg, kw);
21616 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
21617 return NULL;
21618 result = (*call)(func, arg, kw);
21619 Py_LeaveRecursiveCall();
21620 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
21621 PyErr_SetString(
21622 PyExc_SystemError,
21623 "NULL result without error in PyObject_Call");
21624 }
21625 return result;
21626}
21627#endif
21628
21629/* PyObjectCallMethO (used by PyObjectFastCall) */
21630#if CYTHON_COMPILING_IN_CPYTHON
21631static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
21632 PyObject *self, *result;
21633 PyCFunction cfunc;
21634 cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
21635 self = __Pyx_CyOrPyCFunction_GET_SELF(func);
21636 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
21637 return NULL;
21638 result = cfunc(self, arg);
21639 Py_LeaveRecursiveCall();
21640 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
21641 PyErr_SetString(
21642 PyExc_SystemError,
21643 "NULL result without error in PyObject_Call");
21644 }
21645 return result;
21646}
21647#endif
21648
21649/* PyObjectFastCall */
21650#if CYTHON_COMPILING_IN_LIMITED_API
21651static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
21652 PyObject *argstuple;
21653 PyObject *result = 0;
21654 size_t i;
21655 argstuple = PyTuple_New((Py_ssize_t)nargs);
21656 if (unlikely(!argstuple)) return NULL;
21657 for (i = 0; i < nargs; i++) {
21658 Py_INCREF(args[i]);
21659 if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
21660 }
21661 result = __Pyx_PyObject_Call(func, argstuple, kwargs);
21662 bad:
21663 Py_DECREF(argstuple);
21664 return result;
21665}
21666#endif
21667#if CYTHON_VECTORCALL && !(CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY)
21668 #if CYTHON_COMPILING_IN_CPYTHON
21669static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
21670 PyTypeObject *tp = Py_TYPE(callable);
21671 #if defined(__Pyx_CyFunction_USED)
21672 if (__Pyx_CyFunction_CheckExact(callable)) {
21673 return __Pyx_CyFunction_func_vectorcall(callable);
21674 }
21675 #endif
21676 if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
21677 return NULL;
21678 }
21679 assert(PyCallable_Check(callable));
21680 Py_ssize_t offset = tp->tp_vectorcall_offset;
21681 assert(offset > 0);
21682 vectorcallfunc ptr;
21683 memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
21684 return ptr;
21685}
21686 #else
21687 #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
21688 #endif
21689#endif
21690static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwargs) {
21691 Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(nargsf);
21692#if CYTHON_COMPILING_IN_CPYTHON
21693 if (nargs == 0 && kwargs == NULL) {
21694 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
21695 return __Pyx_PyObject_CallMethO(func, NULL);
21696 }
21697 else if (nargs == 1 && kwargs == NULL) {
21698 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
21699 return __Pyx_PyObject_CallMethO(func, args[0]);
21700 }
21701#endif
21702 if (kwargs == NULL) {
21703 #if CYTHON_VECTORCALL
21704 #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
21705 return PyObject_Vectorcall(func, args, nargsf, NULL);
21706 #else
21707 vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
21708 if (f) {
21709 return f(func, args, nargsf, NULL);
21710 }
21711 #endif
21712 #endif
21713 }
21714 if (nargs == 0) {
21715 return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
21716 }
21717 #if CYTHON_COMPILING_IN_LIMITED_API
21718 return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
21719 #elif CYTHON_COMPILING_IN_PYPY
21720 return PyObject_VectorcallDict(func, args, (size_t) nargs, kwargs);
21721 #else
21722 return PyObject_VectorcallDict(func, args, nargsf, kwargs);
21723 #endif
21724}
21725
21726/* RaiseException */
21727static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
21728 PyObject* owned_instance = NULL;
21729 if (tb == Py_None) {
21730 tb = 0;
21731 } else if (tb && !PyTraceBack_Check(tb)) {
21732 PyErr_SetString(PyExc_TypeError,
21733 "raise: arg 3 must be a traceback or None");
21734 goto bad;
21735 }
21736 if (value == Py_None)
21737 value = 0;
21738 if (PyExceptionInstance_Check(type)) {
21739 if (value) {
21740 PyErr_SetString(PyExc_TypeError,
21741 "instance exception may not have a separate value");
21742 goto bad;
21743 }
21744 value = type;
21745 type = (PyObject*) Py_TYPE(value);
21746 } else if (PyExceptionClass_Check(type)) {
21747 PyObject *instance_class = NULL;
21748 if (value && PyExceptionInstance_Check(value)) {
21749 instance_class = (PyObject*) Py_TYPE(value);
21750 if (instance_class != type) {
21751 int is_subclass = PyObject_IsSubclass(instance_class, type);
21752 if (!is_subclass) {
21753 instance_class = NULL;
21754 } else if (unlikely(is_subclass == -1)) {
21755 goto bad;
21756 } else {
21757 type = instance_class;
21758 }
21759 }
21760 }
21761 if (!instance_class) {
21762 PyObject *args;
21763 if (!value)
21764 args = PyTuple_New(0);
21765 else if (PyTuple_Check(value)) {
21766 Py_INCREF(value);
21767 args = value;
21768 } else
21769 args = PyTuple_Pack(1, value);
21770 if (!args)
21771 goto bad;
21772 owned_instance = PyObject_Call(type, args, NULL);
21773 Py_DECREF(args);
21774 if (!owned_instance)
21775 goto bad;
21776 value = owned_instance;
21777 if (!PyExceptionInstance_Check(value)) {
21778 PyErr_Format(PyExc_TypeError,
21779 "calling %R should have returned an instance of "
21780 "BaseException, not %R",
21781 type, Py_TYPE(value));
21782 goto bad;
21783 }
21784 }
21785 } else {
21786 PyErr_SetString(PyExc_TypeError,
21787 "raise: exception class must be a subclass of BaseException");
21788 goto bad;
21789 }
21790 if (cause) {
21791 PyObject *fixed_cause;
21792 if (cause == Py_None) {
21793 fixed_cause = NULL;
21794 } else if (PyExceptionClass_Check(cause)) {
21795 fixed_cause = PyObject_CallObject(cause, NULL);
21796 if (fixed_cause == NULL)
21797 goto bad;
21798 } else if (PyExceptionInstance_Check(cause)) {
21799 fixed_cause = cause;
21800 Py_INCREF(fixed_cause);
21801 } else {
21802 PyErr_SetString(PyExc_TypeError,
21803 "exception causes must derive from "
21804 "BaseException");
21805 goto bad;
21806 }
21807 PyException_SetCause(value, fixed_cause);
21808 }
21809 PyErr_SetObject(type, value);
21810 if (tb) {
21811#if PY_VERSION_HEX >= 0x030C00A6
21812 PyException_SetTraceback(value, tb);
21813#elif CYTHON_FAST_THREAD_STATE
21814 PyThreadState *tstate = __Pyx_PyThreadState_Current;
21815 PyObject* tmp_tb = tstate->curexc_traceback;
21816 if (tb != tmp_tb) {
21817 Py_INCREF(tb);
21818 tstate->curexc_traceback = tb;
21819 Py_XDECREF(tmp_tb);
21820 }
21821#else
21822 PyObject *tmp_type, *tmp_value, *tmp_tb;
21823 PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
21824 Py_INCREF(tb);
21825 PyErr_Restore(tmp_type, tmp_value, tb);
21826 Py_XDECREF(tmp_tb);
21827#endif
21828 }
21829bad:
21830 Py_XDECREF(owned_instance);
21831 return;
21832}
21833
21834/* CopyObjectArray (used by TupleOrListFromArrayImpl) */
21835#if CYTHON_COMPILING_IN_CPYTHON
21836static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
21837 PyObject *v;
21838 Py_ssize_t i;
21839 for (i = 0; i < length; i++) {
21840 v = dest[i] = src[i];
21841 Py_INCREF(v);
21842 }
21843}
21844#endif
21845
21846/* TupleOrListFromArrayImpl (used by TupleFromArray) */
21847#if !(PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API)
21848CYTHON_UNUSED static PyObject *
21849__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) {
21850 if (n <= 0) {
21851 return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
21852 }
21853 PyObject *res = PyTuple_New(n);
21854 if (unlikely(res == NULL)) return NULL;
21855 #if CYTHON_COMPILING_IN_CPYTHON
21856 __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
21857 #else
21858 Py_ssize_t i;
21859 for (i = 0; i < n; i++) {
21860 Py_INCREF(src[i]);
21861 if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
21862 Py_DECREF(res);
21863 return NULL;
21864 }
21865 }
21866 #endif
21867 return res;
21868}
21869#endif
21870
21871/* PyObjectCompare (used by UnicodeEquals) */
21872#ifndef __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
21873#define __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
21874static CYTHON_INLINE int __Pyx_PyObject_CompareStrStrBoolEq(PyObject* s1, PyObject* s2) {
21875 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
21876 int result = PyUnicode_Equal(s1, s2);
21877 #if !CYTHON_COMPILING_IN_CPYTHON
21878 if (unlikely(result == -1)) return -1;
21879 #endif
21880 if (result == 0) goto __pyx_return_false; else goto __pyx_return_true;
21881 #else
21882 int result = PyUnicode_Compare(s1, s2);
21883 if (unlikely((result == -1) && PyErr_Occurred())) return -1;
21884 if (result == 0) goto __pyx_return_true; else goto __pyx_return_false;
21885 #endif
21886__pyx_return_true:
21887 return 1;
21888__pyx_return_false:
21889 return 0;
21890}
21891#endif
21892static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop) {
21893 CYTHON_UNUSED_VAR(pyop);
21894 if (unlikely(op1 == Py_None)) {
21895 if (op2 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
21896 }
21897 if (unlikely(op2 == Py_None)) {
21898 if (op1 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
21899 }
21900
21901 if (likely(op1 != Py_None)) {
21902 if (op1 == op2) goto __pyx_return_true;
21903 if (likely(op2 != Py_None)) {
21904 return __Pyx_PyObject_CompareStrStrBoolEq(op1, op2);
21905 }
21906 goto __pyx_richcmp;
21907 }
21908
21909 if ((0)) goto __pyx_richcmp;
21910 if ((0)) goto __pyx_return_true;
21911 if ((0)) goto __pyx_return_false;
21912__pyx_richcmp:
21913 return __Pyx_PyObject_RichCompareBool(op1, op2, Py_EQ);
21914__pyx_return_true:
21915 return 1;
21916__pyx_return_false:
21917 return 0;
21918}
21919
21920/* fastcall */
21921#if CYTHON_VECTORCALL
21922static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
21923{
21924 Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
21925 #if !CYTHON_ASSUME_SAFE_SIZE
21926 if (unlikely(n == -1)) return NULL;
21927 #endif
21928 for (i = 0; i < n; i++)
21929 {
21930 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
21931 #if !CYTHON_ASSUME_SAFE_MACROS
21932 if (unlikely(!namei)) return NULL;
21933 #endif
21934 if (s == namei) return kwvalues[i];
21935 }
21936 for (i = 0; i < n; i++)
21937 {
21938 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
21939 #if !CYTHON_ASSUME_SAFE_MACROS
21940 if (unlikely(!namei)) return NULL;
21941 #endif
21942 int eq = __Pyx_PyUnicode_Equals(s, namei);
21943 if (unlikely(eq != 0)) {
21944 if (unlikely(eq < 0)) return NULL;
21945 return kwvalues[i];
21946 }
21947 }
21948 return NULL;
21949}
21950#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
21951CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
21952 Py_ssize_t i, nkwargs;
21953 PyObject *dict;
21954#if !CYTHON_ASSUME_SAFE_SIZE
21955 nkwargs = PyTuple_Size(kwnames);
21956 if (unlikely(nkwargs < 0)) return NULL;
21957#else
21958 nkwargs = PyTuple_GET_SIZE(kwnames);
21959#endif
21960 dict = PyDict_New();
21961 if (unlikely(!dict))
21962 return NULL;
21963 for (i=0; i<nkwargs; i++) {
21964#if !CYTHON_ASSUME_SAFE_MACROS
21965 PyObject *key = PyTuple_GetItem(kwnames, i);
21966 if (!key) goto bad;
21967#else
21968 PyObject *key = PyTuple_GET_ITEM(kwnames, i);
21969#endif
21970 if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
21971 goto bad;
21972 }
21973 return dict;
21974bad:
21975 Py_DECREF(dict);
21976 return NULL;
21977}
21978#endif
21979#endif
21980
21981/* PyObjectCallOneArg (used by CallUnboundCMethod0) */
21982static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
21983 PyObject *args[2] = {NULL, arg};
21984 return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
21985}
21986
21987/* IgnoreException (used by UnpackUnboundCMethod_impl) */
21988static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception) {
21989 if (PyErr_GivenExceptionMatches(given_exception ? given_exception : PyErr_Occurred(), ignorable_exception)) {
21990 PyErr_Clear();
21991 return 1;
21992 }
21993 return 0;
21994}
21995
21996/* PyObjectGetAttrStr (used by UnpackUnboundCMethod_impl) */
21997#if CYTHON_USE_TYPE_SLOTS
21998static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
21999 PyTypeObject* tp = Py_TYPE(obj);
22000 if (likely(tp->tp_getattro))
22001 return tp->tp_getattro(obj, attr_name);
22002 return PyObject_GetAttr(obj, attr_name);
22003}
22004#endif
22005
22006/* UnpackUnboundCMethod_impl (used by UnpackUnboundCMethod) */
22007#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
22008static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
22009 PyObject *result;
22010 PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
22011 if (unlikely(!selfless_args)) return NULL;
22012 result = PyObject_Call(method, selfless_args, kwargs);
22013 Py_DECREF(selfless_args);
22014 return result;
22015}
22016#else
22017static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
22018 return PyObject_Vectorcall(method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
22019}
22020#endif
22021static PyMethodDef __Pyx_UnboundCMethod_Def = {
22022 "CythonUnboundCMethod",
22023 __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
22024#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
22025 METH_VARARGS | METH_KEYWORDS,
22026#else
22027 METH_FASTCALL | METH_KEYWORDS,
22028#endif
22029 NULL
22030};
22031static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
22032 PyObject *method, *result=NULL;
22033 method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
22034 if (unlikely(!method))
22035 return -1;
22036 result = method;
22037#if CYTHON_COMPILING_IN_CPYTHON
22038 if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
22039 {
22040 PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
22041 target->func = descr->d_method->ml_meth;
22042 target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
22043 } else
22044#endif
22045#if CYTHON_COMPILING_IN_PYPY
22046#else
22047 if (PyCFunction_Check(method))
22048#endif
22049 {
22050 PyObject *self;
22051 int self_found;
22052#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
22053 self = PyObject_GetAttrString(method, "__self__");
22054 if (!self && !__Pyx_IgnoreException(PyExc_AttributeError)) {
22055 return -1;
22056 }
22057#else
22058 self = PyCFunction_GET_SELF(method);
22059#endif
22060 self_found = (self && self != Py_None);
22061#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
22062 Py_XDECREF(self);
22063#endif
22064 if (self_found) {
22065 PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
22066 if (unlikely(!unbound_method)) return -1;
22067 Py_DECREF(method);
22068 result = unbound_method;
22069 }
22070 }
22071#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
22072 if (unlikely(target->method)) {
22073 Py_DECREF(result);
22074 } else
22075#endif
22076 target->method = result;
22077 return 0;
22078}
22079
22080/* CallUnboundCMethod0 */
22081#if CYTHON_COMPILING_IN_CPYTHON
22082static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
22083 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
22084 if (likely(was_initialized == 2 && cfunc->func)) {
22085 if (likely(cfunc->flag == METH_NOARGS))
22086 return __Pyx_CallCFunction(cfunc, self, NULL);
22087 if (likely(cfunc->flag == METH_FASTCALL))
22088 return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
22089 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
22090 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
22091 if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
22092 return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
22093 if (cfunc->flag == METH_VARARGS)
22094 return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
22095 return __Pyx__CallUnboundCMethod0(cfunc, self);
22096 }
22097#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
22098 else if (unlikely(was_initialized == 1)) {
22099 __Pyx_CachedCFunction tmp_cfunc = {
22100#ifndef __cplusplus
22101 0
22102#endif
22103 };
22104 tmp_cfunc.type = cfunc->type;
22105 tmp_cfunc.method_name = cfunc->method_name;
22106 return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
22107 }
22108#endif
22109 PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
22110 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
22111 return result;
22112}
22113#endif
22114static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
22115 PyObject *result;
22116 if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
22117 result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
22118 return result;
22119}
22120
22121/* py_dict_items (used by OwnedDictNext) */
22122static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
22123 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
22124}
22125
22126/* py_dict_values (used by OwnedDictNext) */
22127static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
22128 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
22129}
22130
22131/* OwnedDictNext (used by ParseKeywordsImpl) */
22132#if CYTHON_AVOID_BORROWED_REFS
22133static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
22134 PyObject *next = NULL;
22135 if (!*ppos) {
22136 if (pvalue) {
22137 PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
22138 if (unlikely(!dictview)) goto bad;
22139 *ppos = PyObject_GetIter(dictview);
22140 Py_DECREF(dictview);
22141 } else {
22142 *ppos = PyObject_GetIter(p);
22143 }
22144 if (unlikely(!*ppos)) goto bad;
22145 }
22146 next = PyIter_Next(*ppos);
22147 if (!next) {
22148 if (PyErr_Occurred()) goto bad;
22149 return 0;
22150 }
22151 if (pkey && pvalue) {
22152 *pkey = __Pyx_PySequence_ITEM(next, 0);
22153 if (unlikely(*pkey)) goto bad;
22154 *pvalue = __Pyx_PySequence_ITEM(next, 1);
22155 if (unlikely(*pvalue)) goto bad;
22156 Py_DECREF(next);
22157 } else if (pkey) {
22158 *pkey = next;
22159 } else {
22160 assert(pvalue);
22161 *pvalue = next;
22162 }
22163 return 1;
22164 bad:
22165 Py_XDECREF(next);
22166#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
22167 PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
22168#else
22169 PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
22170#endif
22171 if (pkey) *pkey = NULL;
22172 if (pvalue) *pvalue = NULL;
22173 return 0;
22174}
22175#else // !CYTHON_AVOID_BORROWED_REFS
22176static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
22177 int result = PyDict_Next(p, ppos, pkey, pvalue);
22178 if (likely(result == 1)) {
22179 if (pkey) Py_INCREF(*pkey);
22180 if (pvalue) Py_INCREF(*pvalue);
22181 }
22182 return result;
22183}
22184#endif
22185
22186/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
22187static void __Pyx_RaiseDoubleKeywordsError(
22188 const char* func_name,
22189 PyObject* kw_name)
22190{
22191 PyErr_Format(PyExc_TypeError,
22192 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
22193}
22194
22195/* CallUnboundCMethod2 */
22196#if CYTHON_COMPILING_IN_CPYTHON
22197static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
22198 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
22199 if (likely(was_initialized == 2 && cfunc->func)) {
22200 PyObject *args[2] = {arg1, arg2};
22201 if (cfunc->flag == METH_FASTCALL) {
22202 return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
22203 }
22204 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
22205 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
22206 }
22207#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
22208 else if (unlikely(was_initialized == 1)) {
22209 __Pyx_CachedCFunction tmp_cfunc = {
22210#ifndef __cplusplus
22211 0
22212#endif
22213 };
22214 tmp_cfunc.type = cfunc->type;
22215 tmp_cfunc.method_name = cfunc->method_name;
22216 return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
22217 }
22218#endif
22219 PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
22220 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
22221 return result;
22222}
22223#endif
22224static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
22225 if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
22226#if CYTHON_COMPILING_IN_CPYTHON
22227 if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
22228 PyObject *result = NULL;
22229 PyObject *args = PyTuple_New(2);
22230 if (unlikely(!args)) return NULL;
22231 Py_INCREF(arg1);
22232 PyTuple_SET_ITEM(args, 0, arg1);
22233 Py_INCREF(arg2);
22234 PyTuple_SET_ITEM(args, 1, arg2);
22235 if (cfunc->flag & METH_KEYWORDS)
22236 result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
22237 else
22238 result = __Pyx_CallCFunction(cfunc, self, args);
22239 Py_DECREF(args);
22240 return result;
22241 }
22242#endif
22243 {
22244 PyObject *args[4] = {NULL, self, arg1, arg2};
22245 return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
22246 }
22247}
22248
22249/* ParseKeywordsImpl (used by ParseKeywords) */
22250static int __Pyx_ValidateDuplicatePosArgs(
22251 PyObject *kwds,
22252 PyObject ** const argnames[],
22253 PyObject ** const *first_kw_arg,
22254 const char* function_name)
22255{
22256 PyObject ** const *name = argnames;
22257 while (name != first_kw_arg) {
22258 PyObject *key = **name;
22259 int found = PyDict_Contains(kwds, key);
22260 if (unlikely(found)) {
22261 if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
22262 goto bad;
22263 }
22264 name++;
22265 }
22266 return 0;
22267bad:
22268 return -1;
22269}
22270#if CYTHON_USE_UNICODE_INTERNALS
22271static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
22272 int kind;
22273 Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
22274 if (len != PyUnicode_GET_LENGTH(s2)) return 0;
22275 kind = PyUnicode_KIND(s1);
22276 if (kind != PyUnicode_KIND(s2)) return 0;
22277 const void *data1 = PyUnicode_DATA(s1);
22278 const void *data2 = PyUnicode_DATA(s2);
22279 return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
22280}
22281#endif
22282static int __Pyx_MatchKeywordArg_str(
22283 PyObject *key,
22284 PyObject ** const argnames[],
22285 PyObject ** const *first_kw_arg,
22286 size_t *index_found,
22287 const char *function_name)
22288{
22289 PyObject ** const *name;
22290 #if CYTHON_USE_UNICODE_INTERNALS
22291 Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
22292 if (unlikely(key_hash == -1)) {
22293 key_hash = PyObject_Hash(key);
22294 if (unlikely(key_hash == -1))
22295 goto bad;
22296 }
22297 #endif
22298 name = first_kw_arg;
22299 while (*name) {
22300 PyObject *name_str = **name;
22301 #if CYTHON_USE_UNICODE_INTERNALS
22302 if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
22303 *index_found = (size_t) (name - argnames);
22304 return 1;
22305 }
22306 #else
22307 #if CYTHON_ASSUME_SAFE_SIZE
22308 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
22309 #endif
22310 {
22311 int cmp = PyUnicode_Compare(name_str, key);
22312 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
22313 if (cmp == 0) {
22314 *index_found = (size_t) (name - argnames);
22315 return 1;
22316 }
22317 }
22318 #endif
22319 name++;
22320 }
22321 name = argnames;
22322 while (name != first_kw_arg) {
22323 PyObject *name_str = **name;
22324 #if CYTHON_USE_UNICODE_INTERNALS
22325 if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
22326 if (__Pyx_UnicodeKeywordsEqual(name_str, key))
22327 goto arg_passed_twice;
22328 }
22329 #else
22330 #if CYTHON_ASSUME_SAFE_SIZE
22331 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
22332 #endif
22333 {
22334 if (unlikely(name_str == key)) goto arg_passed_twice;
22335 int cmp = PyUnicode_Compare(name_str, key);
22336 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
22337 if (cmp == 0) goto arg_passed_twice;
22338 }
22339 #endif
22340 name++;
22341 }
22342 return 0;
22343arg_passed_twice:
22344 __Pyx_RaiseDoubleKeywordsError(function_name, key);
22345 goto bad;
22346bad:
22347 return -1;
22348}
22349static int __Pyx_MatchKeywordArg_nostr(
22350 PyObject *key,
22351 PyObject ** const argnames[],
22352 PyObject ** const *first_kw_arg,
22353 size_t *index_found,
22354 const char *function_name)
22355{
22356 PyObject ** const *name;
22357 if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
22358 name = first_kw_arg;
22359 while (*name) {
22360 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
22361 if (cmp == 1) {
22362 *index_found = (size_t) (name - argnames);
22363 return 1;
22364 }
22365 if (unlikely(cmp == -1)) goto bad;
22366 name++;
22367 }
22368 name = argnames;
22369 while (name != first_kw_arg) {
22370 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
22371 if (unlikely(cmp != 0)) {
22372 if (cmp == 1) goto arg_passed_twice;
22373 else goto bad;
22374 }
22375 name++;
22376 }
22377 return 0;
22378arg_passed_twice:
22379 __Pyx_RaiseDoubleKeywordsError(function_name, key);
22380 goto bad;
22381invalid_keyword_type:
22382 PyErr_Format(PyExc_TypeError,
22383 "%.200s() keywords must be strings", function_name);
22384 goto bad;
22385bad:
22386 return -1;
22387}
22388static CYTHON_INLINE int __Pyx_MatchKeywordArg(
22389 PyObject *key,
22390 PyObject ** const argnames[],
22391 PyObject ** const *first_kw_arg,
22392 size_t *index_found,
22393 const char *function_name)
22394{
22395 return likely(PyUnicode_CheckExact(key)) ?
22396 __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
22397 __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
22398}
22399static void __Pyx_RejectUnknownKeyword(
22400 PyObject *kwds,
22401 PyObject ** const argnames[],
22402 PyObject ** const *first_kw_arg,
22403 const char *function_name)
22404{
22405 #if CYTHON_AVOID_BORROWED_REFS
22406 PyObject *pos = NULL;
22407 #else
22408 Py_ssize_t pos = 0;
22409 #endif
22410 PyObject *key = NULL;
22411 __Pyx_BEGIN_CRITICAL_SECTION(kwds);
22412 #if CYTHON_AVOID_BORROWED_REFS
22413 while (__Pyx_PyDict_NextRef(kwds, &pos, &key, NULL))
22414 #else
22415 (void) __Pyx_PyDict_NextRef;
22416 while (PyDict_Next(kwds, &pos, &key, NULL))
22417 #endif
22418 {
22419 PyObject** const *name = first_kw_arg;
22420 while (*name && (**name != key)) name++;
22421 if (!*name) {
22422 size_t index_found = 0;
22423 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
22424 if (cmp != 1) {
22425 if (cmp == 0) {
22426 PyErr_Format(PyExc_TypeError,
22427 "%s() got an unexpected keyword argument '%U'",
22428 function_name, key);
22429 }
22430 #if CYTHON_AVOID_BORROWED_REFS
22431 Py_DECREF(key);
22432 #endif
22433 break;
22434 }
22435 }
22436 #if CYTHON_AVOID_BORROWED_REFS
22437 Py_DECREF(key);
22438 #endif
22439 }
22440 __Pyx_END_CRITICAL_SECTION();
22441 #if CYTHON_AVOID_BORROWED_REFS
22442 Py_XDECREF(pos);
22443 #endif
22444 assert(PyErr_Occurred());
22445}
22446static int __Pyx_ParseKeywordDict(
22447 PyObject *kwds,
22448 PyObject ** const argnames[],
22449 PyObject *values[],
22450 Py_ssize_t num_pos_args,
22451 Py_ssize_t num_kwargs,
22452 const char* function_name,
22453 int ignore_unknown_kwargs)
22454{
22455 PyObject** const *name;
22456 PyObject** const *first_kw_arg = argnames + num_pos_args;
22457 Py_ssize_t extracted = 0;
22458#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
22459 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
22460#endif
22461 name = first_kw_arg;
22462 while (*name && num_kwargs > extracted) {
22463 PyObject * key = **name;
22464 PyObject *value;
22465 int found = 0;
22466 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
22467 found = PyDict_GetItemRef(kwds, key, &value);
22468 #else
22469 value = PyDict_GetItemWithError(kwds, key);
22470 if (value) {
22471 Py_INCREF(value);
22472 found = 1;
22473 } else {
22474 if (unlikely(PyErr_Occurred())) goto bad;
22475 }
22476 #endif
22477 if (found) {
22478 if (unlikely(found < 0)) goto bad;
22479 values[name-argnames] = value;
22480 extracted++;
22481 }
22482 name++;
22483 }
22484 if (num_kwargs > extracted) {
22485 if (ignore_unknown_kwargs) {
22486 if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
22487 goto bad;
22488 } else {
22489 __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
22490 goto bad;
22491 }
22492 }
22493 return 0;
22494bad:
22495 return -1;
22496}
22497static int __Pyx_ParseKeywordDictToDict(
22498 PyObject *kwds,
22499 PyObject ** const argnames[],
22500 PyObject *kwds2,
22501 PyObject *values[],
22502 Py_ssize_t num_pos_args,
22503 const char* function_name)
22504{
22505 PyObject** const *name;
22506 PyObject** const *first_kw_arg = argnames + num_pos_args;
22507 Py_ssize_t len;
22508#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
22509 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
22510#endif
22511 if (PyDict_Update(kwds2, kwds) < 0) goto bad;
22512 name = first_kw_arg;
22513 while (*name) {
22514 PyObject *key = **name;
22515 PyObject *value;
22516#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
22517 int found = PyDict_Pop(kwds2, key, &value);
22518 if (found) {
22519 if (unlikely(found < 0)) goto bad;
22520 values[name-argnames] = value;
22521 }
22522#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
22523 int found = PyDict_GetItemRef(kwds2, key, &value);
22524 if (found) {
22525 if (unlikely(found < 0)) goto bad;
22526 values[name-argnames] = value;
22527 if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
22528 }
22529#else
22530 #if CYTHON_COMPILING_IN_CPYTHON
22531 value = _PyDict_Pop(kwds2, key, kwds2);
22532 #else
22533 value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
22534 #endif
22535 if (value == kwds2) {
22536 Py_DECREF(value);
22537 } else {
22538 if (unlikely(!value)) goto bad;
22539 values[name-argnames] = value;
22540 }
22541#endif
22542 name++;
22543 }
22544 len = PyDict_Size(kwds2);
22545 if (len > 0) {
22546 return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
22547 } else if (unlikely(len == -1)) {
22548 goto bad;
22549 }
22550 return 0;
22551bad:
22552 return -1;
22553}
22554static int __Pyx_ParseKeywordsTuple(
22555 PyObject *kwds,
22556 PyObject * const *kwvalues,
22557 PyObject ** const argnames[],
22558 PyObject *kwds2,
22559 PyObject *values[],
22560 Py_ssize_t num_pos_args,
22561 Py_ssize_t num_kwargs,
22562 const char* function_name,
22563 int ignore_unknown_kwargs)
22564{
22565 PyObject *key = NULL;
22566 PyObject** const * name;
22567 PyObject** const *first_kw_arg = argnames + num_pos_args;
22568 for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
22569#if CYTHON_AVOID_BORROWED_REFS
22570 key = __Pyx_PySequence_ITEM(kwds, pos);
22571#else
22572 key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
22573#endif
22574#if !CYTHON_ASSUME_SAFE_MACROS
22575 if (unlikely(!key)) goto bad;
22576#endif
22577 name = first_kw_arg;
22578 while (*name && (**name != key)) name++;
22579 if (*name) {
22580 PyObject *value = kwvalues[pos];
22581 values[name-argnames] = __Pyx_NewRef(value);
22582 } else {
22583 size_t index_found = 0;
22584 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
22585 if (cmp == 1) {
22586 PyObject *value = kwvalues[pos];
22587 values[index_found] = __Pyx_NewRef(value);
22588 } else {
22589 if (unlikely(cmp == -1)) goto bad;
22590 if (kwds2) {
22591 PyObject *value = kwvalues[pos];
22592 if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
22593 } else if (!ignore_unknown_kwargs) {
22594 goto invalid_keyword;
22595 }
22596 }
22597 }
22598 #if CYTHON_AVOID_BORROWED_REFS
22599 Py_DECREF(key);
22600 key = NULL;
22601 #endif
22602 }
22603 return 0;
22604invalid_keyword:
22605 PyErr_Format(PyExc_TypeError,
22606 "%s() got an unexpected keyword argument '%U'",
22607 function_name, key);
22608 goto bad;
22609bad:
22610 #if CYTHON_AVOID_BORROWED_REFS
22611 Py_XDECREF(key);
22612 #endif
22613 return -1;
22614}
22615
22616/* ParseKeywords */
22617static int __Pyx_ParseKeywords(
22618 PyObject *kwds,
22619 PyObject * const *kwvalues,
22620 PyObject ** const argnames[],
22621 PyObject *kwds2,
22622 PyObject *values[],
22623 Py_ssize_t num_pos_args,
22624 Py_ssize_t num_kwargs,
22625 const char* function_name,
22626 int ignore_unknown_kwargs)
22627{
22628 if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds)))
22629 return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
22630 else if (kwds2)
22631 return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
22632 else
22633 return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
22634}
22635
22636/* RaiseArgTupleInvalid */
22637static void __Pyx_RaiseArgtupleInvalid(
22638 const char* func_name,
22639 int exact,
22640 Py_ssize_t num_min,
22641 Py_ssize_t num_max,
22642 Py_ssize_t num_found)
22643{
22644 Py_ssize_t num_expected;
22645 const char *more_or_less;
22646 if (num_found < num_min) {
22647 num_expected = num_min;
22648 more_or_less = "at least";
22649 } else {
22650 num_expected = num_max;
22651 more_or_less = "at most";
22652 }
22653 if (exact) {
22654 more_or_less = "exactly";
22655 }
22656 PyErr_Format(PyExc_TypeError,
22657 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
22658 func_name, more_or_less, num_expected,
22659 (num_expected == 1) ? "" : "s", num_found);
22660}
22661
22662/* ArgTypeTestError (used by ArgTypeTest) */
22663static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact)
22664{
22665 __Pyx_TypeName type_name;
22666 __Pyx_TypeName obj_type_name;
22667 PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
22668 int from_annotation_subclass = 0;
22669 if (unlikely(!type)) {
22670 PyErr_SetString(PyExc_SystemError, "Missing type object");
22671 return;
22672 } else if (exact == 2) {
22673 if (__Pyx_TypeCheck(obj, type)) {
22674 from_annotation_subclass = 1;
22675 extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
22676 }
22677 }
22678 type_name = __Pyx_PyType_GetFullyQualifiedName(type);
22679 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
22680 if (unlikely(!type_name)) return;
22681 #endif
22682 obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
22683 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
22684 if (unlikely(!obj_type_name)) goto obj_type_name_failed;
22685 #endif
22686 PyErr_Format(PyExc_TypeError,
22687 "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME ", got " __Pyx_FMT_TYPENAME ")"
22688#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
22689 "%s%U"
22690#endif
22691 , name, type_name, obj_type_name
22692#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
22693 , (from_annotation_subclass ? ". " : ""), extra_info
22694#endif
22695 );
22696#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
22697 if (exact == 2 && from_annotation_subclass) {
22698 PyObject *res;
22699 PyObject *vargs[2];
22700 vargs[0] = PyErr_GetRaisedException();
22701 vargs[1] = extra_info;
22702 res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
22703 Py_XDECREF(res);
22704 PyErr_SetRaisedException(vargs[0]);
22705 }
22706#endif
22707 __Pyx_DECREF_TypeName(obj_type_name);
22708#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
22709obj_type_name_failed:
22710#endif
22711 __Pyx_DECREF_TypeName(type_name);
22712 return;
22713}
22714
22715/* ArgTypeTest */
22716static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) {
22717 if (likely(Py_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None))))
22718 return 1;
22719 if (!exact && likely(type) && likely(__Pyx_TypeCheck(obj, type)))
22720 return 1;
22721 __Pyx_ArgTypeError(obj, type, name, exact);
22722 return 0;
22723}
22724
22725/* DivInt[npy_intp] */
22726static CYTHON_INLINE npy_intp __Pyx_div_npy_intp(npy_intp a, npy_intp b, int b_is_constant) {
22727 npy_intp q = a / b;
22728 npy_intp r = a - q*b;
22729 npy_intp adapt_python = (b_is_constant ?
22730 ((r != 0) & ((r < 0) ^ (b < 0))) :
22731 ((r != 0) & ((r ^ b) < 0))
22732 );
22733 return q - adapt_python;
22734}
22735
22736/* RejectKeywords */
22737static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
22738 PyObject *key = NULL;
22739 if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds))) {
22740 key = __Pyx_PySequence_ITEM(kwds, 0);
22741 } else {
22742#if CYTHON_AVOID_BORROWED_REFS
22743 PyObject *pos = NULL;
22744#else
22745 Py_ssize_t pos = 0;
22746#endif
22747#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
22748 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
22749#endif
22750 __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL);
22751#if CYTHON_AVOID_BORROWED_REFS
22752 Py_XDECREF(pos);
22753#endif
22754 }
22755 if (likely(key)) {
22756 PyErr_Format(PyExc_TypeError,
22757 "%s() got an unexpected keyword argument '%U'",
22758 function_name, key);
22759 Py_DECREF(key);
22760 }
22761}
22762
22763/* IsLittleEndian (used by BufferFormatCheck) */
22764static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
22765{
22766 union {
22767 uint32_t u32;
22768 uint8_t u8[4];
22769 } S;
22770 S.u32 = 0x01020304;
22771 return S.u8[0] == 4;
22772}
22773
22774/* BufferFormatCheck (used by BufferGetAndValidate) */
22775static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
22776 __Pyx_BufFmt_StackElem* stack,
22777 const __Pyx_TypeInfo* type) {
22778 stack[0].field = &ctx->root;
22779 stack[0].parent_offset = 0;
22780 ctx->root.type = type;
22781 ctx->root.name = "buffer dtype";
22782 ctx->root.offset = 0;
22783 ctx->head = stack;
22784 ctx->head->field = &ctx->root;
22785 ctx->fmt_offset = 0;
22786 ctx->head->parent_offset = 0;
22787 ctx->new_packmode = '@';
22788 ctx->enc_packmode = '@';
22789 ctx->new_count = 1;
22790 ctx->enc_count = 0;
22791 ctx->enc_type = 0;
22792 ctx->is_complex = 0;
22793 ctx->is_valid_array = 0;
22794 ctx->struct_alignment = 0;
22795 while (type->typegroup == 'S') {
22796 ++ctx->head;
22797 ctx->head->field = type->fields;
22798 ctx->head->parent_offset = 0;
22799 type = type->fields->type;
22800 }
22801}
22802static int __Pyx_BufFmt_ParseNumber(const char** ts) {
22803 int count;
22804 const char* t = *ts;
22805 if (*t < '0' || *t > '9') {
22806 return -1;
22807 } else {
22808 count = *t++ - '0';
22809 while (*t >= '0' && *t <= '9') {
22810 count *= 10;
22811 count += *t++ - '0';
22812 }
22813 }
22814 *ts = t;
22815 return count;
22816}
22817static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
22818 int number = __Pyx_BufFmt_ParseNumber(ts);
22819 if (number == -1)
22820 PyErr_Format(PyExc_ValueError,\
22821 "Does not understand character buffer dtype format string ('%c')", **ts);
22822 return number;
22823}
22824static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
22825 PyErr_Format(PyExc_ValueError,
22826 "Unexpected format string character: '%c'", ch);
22827}
22828static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
22829 switch (ch) {
22830 case '?': return "'bool'";
22831 case 'c': return "'char'";
22832 case 'b': return "'signed char'";
22833 case 'B': return "'unsigned char'";
22834 case 'h': return "'short'";
22835 case 'H': return "'unsigned short'";
22836 case 'i': return "'int'";
22837 case 'I': return "'unsigned int'";
22838 case 'l': return "'long'";
22839 case 'L': return "'unsigned long'";
22840 case 'q': return "'long long'";
22841 case 'Q': return "'unsigned long long'";
22842 case 'f': return (is_complex ? "'complex float'" : "'float'");
22843 case 'd': return (is_complex ? "'complex double'" : "'double'");
22844 case 'g': return (is_complex ? "'complex long double'" : "'long double'");
22845 case 'T': return "a struct";
22846 case 'O': return "Python object";
22847 case 'P': return "a pointer";
22848 case 's': case 'p': return "a string";
22849 case 0: return "end";
22850 default: return "unparsable format string";
22851 }
22852}
22853static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
22854 switch (ch) {
22855 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
22856 case 'h': case 'H': return 2;
22857 case 'i': case 'I': case 'l': case 'L': return 4;
22858 case 'q': case 'Q': return 8;
22859 case 'f': return (is_complex ? 8 : 4);
22860 case 'd': return (is_complex ? 16 : 8);
22861 case 'g': {
22862 PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
22863 return 0;
22864 }
22865 case 'O': case 'P': return sizeof(void*);
22866 default:
22867 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
22868 return 0;
22869 }
22870}
22871static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
22872 switch (ch) {
22873 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
22874 case 'h': case 'H': return sizeof(short);
22875 case 'i': case 'I': return sizeof(int);
22876 case 'l': case 'L': return sizeof(long);
22877 case 'q': case 'Q': return sizeof(PY_LONG_LONG);
22878 case 'f': return sizeof(float) * (is_complex ? 2 : 1);
22879 case 'd': return sizeof(double) * (is_complex ? 2 : 1);
22880 case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
22881 case 'O': case 'P': return sizeof(void*);
22882 default: {
22883 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
22884 return 0;
22885 }
22886 }
22887}
22888typedef struct { char c; short x; } __Pyx_st_short;
22889typedef struct { char c; int x; } __Pyx_st_int;
22890typedef struct { char c; long x; } __Pyx_st_long;
22891typedef struct { char c; float x; } __Pyx_st_float;
22892typedef struct { char c; double x; } __Pyx_st_double;
22893typedef struct { char c; long double x; } __Pyx_st_longdouble;
22894typedef struct { char c; void *x; } __Pyx_st_void_p;
22895typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
22896static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
22897 CYTHON_UNUSED_VAR(is_complex);
22898 switch (ch) {
22899 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
22900 case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
22901 case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
22902 case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
22903 case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
22904 case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
22905 case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
22906 case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
22907 case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
22908 default:
22909 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
22910 return 0;
22911 }
22912}
22913/* These are for computing the padding at the end of the struct to align
22914 on the first member of the struct. This will probably the same as above,
22915 but we don't have any guarantees.
22916 */
22917typedef struct { short x; char c; } __Pyx_pad_short;
22918typedef struct { int x; char c; } __Pyx_pad_int;
22919typedef struct { long x; char c; } __Pyx_pad_long;
22920typedef struct { float x; char c; } __Pyx_pad_float;
22921typedef struct { double x; char c; } __Pyx_pad_double;
22922typedef struct { long double x; char c; } __Pyx_pad_longdouble;
22923typedef struct { void *x; char c; } __Pyx_pad_void_p;
22924typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
22925static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
22926 CYTHON_UNUSED_VAR(is_complex);
22927 switch (ch) {
22928 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
22929 case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
22930 case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
22931 case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
22932 case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
22933 case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
22934 case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
22935 case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
22936 case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
22937 default:
22938 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
22939 return 0;
22940 }
22941}
22942static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
22943 switch (ch) {
22944 case 'c':
22945 return 'H';
22946 case 'b': case 'h': case 'i':
22947 case 'l': case 'q': case 's': case 'p':
22948 return 'I';
22949 case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
22950 return 'U';
22951 case 'f': case 'd': case 'g':
22952 return (is_complex ? 'C' : 'R');
22953 case 'O':
22954 return 'O';
22955 case 'P':
22956 return 'P';
22957 default: {
22958 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
22959 return 0;
22960 }
22961 }
22962}
22963static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
22964 if (ctx->head == NULL || ctx->head->field == &ctx->root) {
22965 const char* expected;
22966 const char* quote;
22967 if (ctx->head == NULL) {
22968 expected = "end";
22969 quote = "";
22970 } else {
22971 expected = ctx->head->field->type->name;
22972 quote = "'";
22973 }
22974 PyErr_Format(PyExc_ValueError,
22975 "Buffer dtype mismatch, expected %s%s%s but got %s",
22976 quote, expected, quote,
22977 __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
22978 } else {
22979 const __Pyx_StructField* field = ctx->head->field;
22980 const __Pyx_StructField* parent = (ctx->head - 1)->field;
22981 PyErr_Format(PyExc_ValueError,
22982 "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
22983 field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
22984 parent->type->name, field->name);
22985 }
22986}
22987static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
22988 char group;
22989 size_t size, offset, arraysize = 1;
22990 if (ctx->enc_type == 0) return 0;
22991 if (ctx->head->field->type->arraysize[0]) {
22992 int i, ndim = 0;
22993 if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
22994 ctx->is_valid_array = ctx->head->field->type->ndim == 1;
22995 ndim = 1;
22996 if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
22997 PyErr_Format(PyExc_ValueError,
22998 "Expected a dimension of size %zu, got %zu",
22999 ctx->head->field->type->arraysize[0], ctx->enc_count);
23000 return -1;
23001 }
23002 }
23003 if (!ctx->is_valid_array) {
23004 PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
23005 ctx->head->field->type->ndim, ndim);
23006 return -1;
23007 }
23008 for (i = 0; i < ctx->head->field->type->ndim; i++) {
23009 arraysize *= ctx->head->field->type->arraysize[i];
23010 }
23011 ctx->is_valid_array = 0;
23012 ctx->enc_count = 1;
23013 }
23014 group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
23015 do {
23016 const __Pyx_StructField* field = ctx->head->field;
23017 const __Pyx_TypeInfo* type = field->type;
23018 if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
23019 size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
23020 } else {
23021 size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
23022 }
23023 if (ctx->enc_packmode == '@') {
23024 size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
23025 size_t align_mod_offset;
23026 if (align_at == 0) return -1;
23027 align_mod_offset = ctx->fmt_offset % align_at;
23028 if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
23029 if (ctx->struct_alignment == 0)
23030 ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
23031 ctx->is_complex);
23032 }
23033 if (type->size != size || type->typegroup != group) {
23034 if (type->typegroup == 'C' && type->fields != NULL) {
23035 size_t parent_offset = ctx->head->parent_offset + field->offset;
23036 ++ctx->head;
23037 ctx->head->field = type->fields;
23038 ctx->head->parent_offset = parent_offset;
23039 continue;
23040 }
23041 if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
23042 } else {
23043 __Pyx_BufFmt_RaiseExpected(ctx);
23044 return -1;
23045 }
23046 }
23047 offset = ctx->head->parent_offset + field->offset;
23048 if (ctx->fmt_offset != offset) {
23049 PyErr_Format(PyExc_ValueError,
23050 "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
23051 (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
23052 return -1;
23053 }
23054 ctx->fmt_offset += size;
23055 if (arraysize)
23056 ctx->fmt_offset += (arraysize - 1) * size;
23057 --ctx->enc_count;
23058 while (1) {
23059 if (field == &ctx->root) {
23060 ctx->head = NULL;
23061 if (ctx->enc_count != 0) {
23062 __Pyx_BufFmt_RaiseExpected(ctx);
23063 return -1;
23064 }
23065 break;
23066 }
23067 ctx->head->field = ++field;
23068 if (field->type == NULL) {
23069 --ctx->head;
23070 field = ctx->head->field;
23071 continue;
23072 } else if (field->type->typegroup == 'S') {
23073 size_t parent_offset = ctx->head->parent_offset + field->offset;
23074 if (field->type->fields->type == NULL) continue;
23075 field = field->type->fields;
23076 ++ctx->head;
23077 ctx->head->field = field;
23078 ctx->head->parent_offset = parent_offset;
23079 break;
23080 } else {
23081 break;
23082 }
23083 }
23084 } while (ctx->enc_count);
23085 ctx->enc_type = 0;
23086 ctx->is_complex = 0;
23087 return 0;
23088}
23089static int
23090__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
23091{
23092 const char *ts = *tsp;
23093 int i = 0, number, ndim;
23094 ++ts;
23095 if (ctx->new_count != 1) {
23096 PyErr_SetString(PyExc_ValueError,
23097 "Cannot handle repeated arrays in format string");
23098 return -1;
23099 }
23100 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return -1;
23101 ndim = ctx->head->field->type->ndim;
23102 while (*ts && *ts != ')') {
23103 switch (*ts) {
23104 case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue;
23105 default: break;
23106 }
23107 number = __Pyx_BufFmt_ExpectNumber(&ts);
23108 if (number == -1) return -1;
23109 if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) {
23110 PyErr_Format(PyExc_ValueError,
23111 "Expected a dimension of size %zu, got %d",
23112 ctx->head->field->type->arraysize[i], number);
23113 return -1;
23114 }
23115 if (*ts != ',' && *ts != ')') {
23116 PyErr_Format(PyExc_ValueError,
23117 "Expected a comma in format string, got '%c'", *ts);
23118 return -1;
23119 }
23120 if (*ts == ',') ts++;
23121 i++;
23122 }
23123 if (i != ndim) {
23124 PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
23125 ctx->head->field->type->ndim, i);
23126 return -1;
23127 }
23128 if (!*ts) {
23129 PyErr_SetString(PyExc_ValueError,
23130 "Unexpected end of format string, expected ')'");
23131 return -1;
23132 }
23133 ctx->is_valid_array = 1;
23134 ctx->new_count = 1;
23135 *tsp = ++ts;
23136 return 0;
23137}
23138static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
23139 int got_Z = 0;
23140 while (1) {
23141 switch(*ts) {
23142 case 0:
23143 if (ctx->enc_type != 0 && ctx->head == NULL) {
23144 __Pyx_BufFmt_RaiseExpected(ctx);
23145 return NULL;
23146 }
23147 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
23148 if (ctx->head != NULL) {
23149 __Pyx_BufFmt_RaiseExpected(ctx);
23150 return NULL;
23151 }
23152 return ts;
23153 case ' ':
23154 case '\r':
23155 case '\n':
23156 ++ts;
23157 break;
23158 case '<':
23159 if (!__Pyx_Is_Little_Endian()) {
23160 PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
23161 return NULL;
23162 }
23163 ctx->new_packmode = '=';
23164 ++ts;
23165 break;
23166 case '>':
23167 case '!':
23168 if (__Pyx_Is_Little_Endian()) {
23169 PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
23170 return NULL;
23171 }
23172 ctx->new_packmode = '=';
23173 ++ts;
23174 break;
23175 case '=':
23176 case '@':
23177 case '^':
23178 ctx->new_packmode = *ts++;
23179 break;
23180 case 'T':
23181 {
23182 const char* ts_after_sub;
23183 size_t i, struct_count = ctx->new_count;
23184 size_t struct_alignment = ctx->struct_alignment;
23185 ctx->new_count = 1;
23186 ++ts;
23187 if (*ts != '\x7B') {
23188 PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '\x7B' after 'T'");
23189 return NULL;
23190 }
23191 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
23192 ctx->enc_type = 0;
23193 ctx->enc_count = 0;
23194 ctx->struct_alignment = 0;
23195 ++ts;
23196 ts_after_sub = ts;
23197 for (i = 0; i != struct_count; ++i) {
23198 ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
23199 if (!ts_after_sub) return NULL;
23200 }
23201 ts = ts_after_sub;
23202 if (struct_alignment) ctx->struct_alignment = struct_alignment;
23203 }
23204 break;
23205 case '\x7D':
23206 {
23207 size_t alignment = ctx->struct_alignment;
23208 ++ts;
23209 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
23210 ctx->enc_type = 0;
23211 if (alignment && ctx->fmt_offset % alignment) {
23212 ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
23213 }
23214 }
23215 return ts;
23216 case 'x':
23217 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
23218 ctx->fmt_offset += ctx->new_count;
23219 ctx->new_count = 1;
23220 ctx->enc_count = 0;
23221 ctx->enc_type = 0;
23222 ctx->enc_packmode = ctx->new_packmode;
23223 ++ts;
23224 break;
23225 case 'Z':
23226 got_Z = 1;
23227 ++ts;
23228 if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
23229 __Pyx_BufFmt_RaiseUnexpectedChar('Z');
23230 return NULL;
23231 }
23232 CYTHON_FALLTHROUGH;
23233 case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
23234 case 'l': case 'L': case 'q': case 'Q':
23235 case 'f': case 'd': case 'g':
23236 case 'O': case 'p':
23237 if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
23238 (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
23239 ctx->enc_count += ctx->new_count;
23240 ctx->new_count = 1;
23241 got_Z = 0;
23242 ++ts;
23243 break;
23244 }
23245 CYTHON_FALLTHROUGH;
23246 case 's':
23247 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
23248 ctx->enc_count = ctx->new_count;
23249 ctx->enc_packmode = ctx->new_packmode;
23250 ctx->enc_type = *ts;
23251 ctx->is_complex = got_Z;
23252 ++ts;
23253 ctx->new_count = 1;
23254 got_Z = 0;
23255 break;
23256 case ':':
23257 ++ts;
23258 while(*ts != ':') ++ts;
23259 ++ts;
23260 break;
23261 case '(':
23262 if (__pyx_buffmt_parse_array(ctx, &ts) < 0) return NULL;
23263 break;
23264 default:
23265 {
23266 int number = __Pyx_BufFmt_ExpectNumber(&ts);
23267 if (number == -1) return NULL;
23268 ctx->new_count = (size_t)number;
23269 }
23270 }
23271 }
23272}
23273
23274/* BufferGetAndValidate */
23275static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
23276 if (unlikely(info->buf == NULL)) return;
23277 if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
23278 PyBuffer_Release(info);
23279}
23280static void __Pyx_ZeroBuffer(Py_buffer* buf) {
23281 buf->buf = NULL;
23282 buf->obj = NULL;
23283 buf->strides = __Pyx_zeros;
23284 buf->shape = __Pyx_zeros;
23285 buf->suboffsets = __Pyx_minusones;
23286}
23287static int __Pyx__GetBufferAndValidate(
23288 Py_buffer* buf, PyObject* obj, const __Pyx_TypeInfo* dtype, int flags,
23289 int nd, int cast, __Pyx_BufFmt_StackElem* stack)
23290{
23291 buf->buf = NULL;
23292 if (unlikely(PyObject_GetBuffer(obj, buf, flags) == -1)) {
23293 __Pyx_ZeroBuffer(buf);
23294 return -1;
23295 }
23296 if (unlikely(buf->ndim != nd)) {
23297 PyErr_Format(PyExc_ValueError,
23298 "Buffer has wrong number of dimensions (expected %d, got %d)",
23299 nd, buf->ndim);
23300 goto fail;
23301 }
23302 if (!cast) {
23303 __Pyx_BufFmt_Context ctx;
23304 __Pyx_BufFmt_Init(&ctx, stack, dtype);
23305 if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
23306 }
23307 if (unlikely((size_t)buf->itemsize != dtype->size)) {
23308 PyErr_Format(PyExc_ValueError,
23309 "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
23310 buf->itemsize, (buf->itemsize > 1) ? "s" : "",
23311 dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
23312 goto fail;
23313 }
23314 if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
23315 return 0;
23316fail:;
23317 __Pyx_SafeReleaseBuffer(buf);
23318 return -1;
23319}
23320
23321/* PyFrozenDict (used by GetItemInt) */
23322#if CYTHON_COMPILING_IN_LIMITED_API
23323static CYTHON_INLINE PyObject* __Pyx__PyFrozenDict_New(PyObject* frozendict_type, PyObject* it) {
23324 return PyObject_CallFunctionObjArgs(frozendict_type, it, NULL);
23325}
23326#endif
23327
23328/* GettItemInt_wraparound (used by GetItemInt) */
23329#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
23330static int __Pyx_GetItemInt_wraparound(PyObject *o, PySequenceMethods *sm, Py_ssize_t *i) {
23331 assert(*i < 0);
23332 if (likely(sm->sq_length)) {
23333 Py_ssize_t l = sm->sq_length(o);
23334 if (likely(l >= 0)) {
23335 *i += l;
23336 } else {
23337 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
23338 return -1;
23339 PyErr_Clear();
23340 }
23341 }
23342 return 0;
23343}
23344#endif
23345
23346/* GetItemInt */
23347static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
23348 PyObject *r;
23349 if (unlikely(!j)) return NULL;
23350 r = PyObject_GetItem(o, j);
23351 Py_DECREF(j);
23352 return r;
23353}
23354static PyObject *__Pyx_GetItemInt_Generic_size(PyObject *o, Py_ssize_t i) {
23355 return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
23356}
23357static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
23358 int wraparound, int boundscheck, int unsafe_shared) {
23359 CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
23360#if CYTHON_AVOID_BORROWED_REFS
23361 CYTHON_UNUSED_VAR(boundscheck);
23362 Py_ssize_t wrapped_i = i;
23363 if (wraparound & unlikely(i < 0)) {
23364 Py_ssize_t size = __Pyx_PyList_GET_SIZE(o);
23365 #if !CYTHON_ASSUME_SAFE_SIZE
23366 if (unlikely(size < 0)) return NULL;
23367 #endif
23368 wrapped_i += size;
23369 }
23370 return __Pyx_PyList_GetItemRef(o, wrapped_i);
23371#elif CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS
23372 Py_ssize_t wrapped_i = i;
23373 Py_ssize_t size = (wraparound | boundscheck) ? PyList_GET_SIZE(o) : -1;
23374 if (wraparound & unlikely(i < 0)) {
23375 wrapped_i += size;
23376 }
23377 if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, size))) {
23378 return __Pyx_PyList_GET_ITEM_REF(o, wrapped_i, unsafe_shared);
23379 }
23380 return __Pyx_GetItemInt_Generic_size(o, i);
23381#else
23382 (void)wraparound;
23383 (void)boundscheck;
23384 return PySequence_GetItem(o, i);
23385#endif
23386}
23387static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
23388 int wraparound, int boundscheck, int unsafe_shared) {
23389 CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
23390#if CYTHON_AVOID_BORROWED_REFS
23391 CYTHON_UNUSED_VAR(boundscheck);
23392 Py_ssize_t wrapped_i = i;
23393 if (wraparound & unlikely(i < 0)) {
23394 Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(o);
23395 #if !CYTHON_ASSUME_SAFE_SIZE
23396 if (unlikely(size < 0)) return NULL;
23397 #endif
23398 wrapped_i += size;
23399 }
23400 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_COMPILING_IN_LIMITED_API
23401 return PySequence_ITEM(o, wrapped_i);
23402 #else
23403 if (unlikely(wrapped_i < 0)) {
23404 PyErr_SetString(PyExc_IndexError, "tuple index out of range");
23405 return NULL;
23406 }
23407 return PySequence_GetItem(o, wrapped_i);
23408 #endif
23409#elif CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS
23410 Py_ssize_t wrapped_i = i;
23411 Py_ssize_t size = (wraparound | boundscheck) ? PyTuple_GET_SIZE(o) : -1;
23412 if (wraparound & unlikely(i < 0)) {
23413 wrapped_i += size;
23414 }
23415 if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, size))) {
23416 return __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(o, wrapped_i));
23417 }
23418 return __Pyx_GetItemInt_Generic_size(o, i);
23419#else
23420 (void)wraparound;
23421 (void)boundscheck;
23422 return PySequence_GetItem(o, i);
23423#endif
23424}
23425#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
23426static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast_mapping(PyObject *o, binaryfunc getitem, Py_ssize_t i) {
23427 PyObject *r, *key = PyLong_FromSsize_t(i);
23428 if (unlikely(!key)) return NULL;
23429 r = getitem(o, key);
23430 Py_DECREF(key);
23431 return r;
23432}
23433#endif
23434static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
23435 int wraparound, int boundscheck, int unsafe_shared) {
23436 CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
23437#if CYTHON_ASSUME_SAFE_SIZE
23438 if (PyList_CheckExact(o)) {
23439 return __Pyx_GetItemInt_List_Fast(o, i, wraparound, boundscheck, unsafe_shared);
23440 } else
23441 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23442 if (PyTuple_CheckExact(o)) {
23443 return __Pyx_GetItemInt_Tuple_Fast(o, i, wraparound, boundscheck, unsafe_shared);
23444 } else
23445 #endif
23446#else
23447 if ((!wraparound || i >= 0) & PyList_CheckExact(o)) {
23448 return boundscheck ? __Pyx_PyList_GetItemRef(o, i) : __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared);
23449 } else
23450#endif
23451#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
23452 if (PyDict_CheckExact(o)) {
23453 return __Pyx_GetItemInt_Fast_mapping(o, PyDict_Type.tp_as_mapping->mp_subscript, i);
23454 #if defined(PyFrozenDict_CheckExact)
23455 } else if (PyFrozenDict_CheckExact(o)) {
23456 return __Pyx_GetItemInt_Fast_mapping(o, PyFrozenDict_Type.tp_as_mapping->mp_subscript, i);
23457 #endif
23458 } else
23459 {
23460 PyTypeObject *obj_type = Py_TYPE(o);
23461 int seq_or_mapping = __Pyx_PyType_GetFlags(obj_type) & (Py_TPFLAGS_SEQUENCE|Py_TPFLAGS_MAPPING);
23462 if (seq_or_mapping != Py_TPFLAGS_SEQUENCE) {
23463 PyMappingMethods *mm = obj_type->tp_as_mapping;
23464 if (mm && mm->mp_subscript)
23465 return __Pyx_GetItemInt_Fast_mapping(o, mm->mp_subscript, i);
23466 }
23467 PySequenceMethods *sm = obj_type->tp_as_sequence;
23468 if (likely(sm && sm->sq_item)) {
23469 if (wraparound && (i < 0) && unlikely(__Pyx_GetItemInt_wraparound(o, sm, &i) == -1))
23470 return NULL;
23471 return sm->sq_item(o, i);
23472 }
23473 if (seq_or_mapping == Py_TPFLAGS_SEQUENCE) {
23474 PyMappingMethods *mm = obj_type->tp_as_mapping;
23475 if (likely(mm && mm->mp_subscript))
23476 return __Pyx_GetItemInt_Fast_mapping(o, mm->mp_subscript, i);
23477 }
23478 }
23479#else
23480 if (!PyMapping_Check(o)) {
23481 return PySequence_GetItem(o, i);
23482 }
23483#endif
23484 (void)wraparound;
23485 (void)boundscheck;
23486 return __Pyx_GetItemInt_Generic_size(o, i);
23487}
23488
23489/* PyObjectGetAttrStrNoError (used by ObjectGetItem) */
23490#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
23491static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
23492 __Pyx_PyThreadState_declare
23493 __Pyx_PyThreadState_assign
23494 if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
23495 __Pyx_PyErr_Clear();
23496}
23497#endif
23498static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
23499 PyObject *result;
23500#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
23501 (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
23502 return result;
23503#else
23504#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
23505 PyTypeObject* tp = Py_TYPE(obj);
23506 if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
23507 return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
23508 }
23509#endif
23510 result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
23511 if (unlikely(!result)) {
23512 __Pyx_PyObject_GetAttrStr_ClearAttributeError();
23513 }
23514 return result;
23515#endif
23516}
23517
23518/* FormatTypeName (used by RaiseErrorWithObjectType) */
23519#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
23520static __Pyx_TypeName
23521__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
23522{
23523 PyObject *module = NULL, *name = NULL, *result = NULL;
23524 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
23525 name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
23526 __pyx_mstate_global->__pyx_n_u_qualname);
23527 #else
23528 name = PyType_GetQualName(tp);
23529 #endif
23530 if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
23531 module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
23532 __pyx_mstate_global->__pyx_n_u_module);
23533 if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
23534 if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
23535 result = name;
23536 name = NULL;
23537 goto done;
23538 }
23539 result = PyUnicode_FromFormat("%U.%U", module, name);
23540 if (unlikely(result == NULL)) goto bad;
23541 done:
23542 Py_XDECREF(name);
23543 Py_XDECREF(module);
23544 return result;
23545 bad:
23546 PyErr_Clear();
23547 if (name) {
23548 result = name;
23549 name = NULL;
23550 } else {
23551 result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u_);
23552 }
23553 goto done;
23554}
23555#endif
23556
23557/* RaiseErrorWithObjectType (used by ObjectGetItem) */
23558static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj) {
23559 __Pyx_TypeName type_name = __Pyx_PyType_GetFullyQualifiedName(type_obj);
23560 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
23561 if (unlikely(!type_name)) return;
23562 #endif
23563 PyErr_Format(exc_type, message, type_name);
23564 __Pyx_DECREF_TypeName(type_name);
23565}
23566
23567/* ObjectGetItem */
23568#if CYTHON_USE_TYPE_SLOTS
23569static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
23570 PyObject *runerr = NULL;
23571 Py_ssize_t key_value;
23572 key_value = __Pyx_PyIndex_AsSsize_t(index);
23573 if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
23574 return __Pyx_GetItemInt_Fast(obj, key_value, 1, 1, 1);
23575 }
23576 if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
23577 PyErr_Clear();
23578 __Pyx_RaiseErrorWithObjectType(
23579 PyExc_IndexError,
23580 "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer",
23581 index);
23582 }
23583 return NULL;
23584}
23585static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
23586 if (likely(PyType_Check(obj))) {
23587 if ((PyTypeObject*)obj == &PyType_Type) {
23588 return Py_GenericAlias(obj, key);
23589 }
23590 PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);
23591 if (!meth) {
23592 if (PyErr_Occurred()) {
23593 return NULL;
23594 }
23595 } else {
23596 PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
23597 Py_DECREF(meth);
23598 return result;
23599 }
23600 }
23601 __Pyx_RaiseTypeErrorWithObjectType(
23602 "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj);
23603 return NULL;
23604}
23605static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
23606 PyTypeObject *tp = Py_TYPE(obj);
23607 PyMappingMethods *mm = tp->tp_as_mapping;
23608 PySequenceMethods *sm = tp->tp_as_sequence;
23609 if (likely(mm && mm->mp_subscript)) {
23610 return mm->mp_subscript(obj, key);
23611 }
23612 if (likely(sm && sm->sq_item)) {
23613 return __Pyx_PyObject_GetIndex(obj, key);
23614 }
23615 return __Pyx_PyObject_GetItem_Slow(obj, key);
23616}
23617#endif
23618
23619/* BufferIndexError */
23620static void __Pyx_RaiseBufferIndexError(int axis) {
23621 PyErr_Format(PyExc_IndexError,
23622 "Out of bounds on buffer access (axis %d)", axis);
23623}
23624
23625/* RaiseErrorWithObjectTypes (used by PyNumberBinop) */
23626static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2) {
23627 __Pyx_TypeName type_name1 = __Pyx_PyType_GetFullyQualifiedName(type_obj1);
23628 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
23629 if (unlikely(!type_name1)) return;
23630 #endif
23631 __Pyx_TypeName type_name2 = __Pyx_PyType_GetFullyQualifiedName(type_obj2);
23632 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
23633 if (unlikely(!type_name2)) goto type2_failed;
23634 #endif
23635 PyErr_Format(exc_type, message, arg, type_name1, type_name2);
23636 __Pyx_DECREF_TypeName(type_name2);
23637#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
23638type2_failed:
23639#endif
23640 __Pyx_DECREF_TypeName(type_name1);
23641}
23642
23643/* PyNumberBinop */
23644#if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API)
23645#if CYTHON_USE_TYPE_SLOTS || __PYX_LIMITED_VERSION_HEX >= 0x030A0000
23646#ifndef __Pyx_DEFINED_BinopTypeError
23647#define __Pyx_DEFINED_BinopTypeError
23648static void __Pyx_BinopTypeError(PyObject *op1, PyObject *op2, const char* op, int inplace) {
23649 char opname[4] = {op[0], op[1], 0, 0};
23650 if (inplace) {
23651 opname[op[1] ? 2 : 1] = '=';
23652 }
23653 __Pyx_RaiseErrorWithObjectTypes1(
23654 PyExc_TypeError,
23655 "unsupported operand type(s) for %.3s: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'",
23656 opname, op1, op2);
23657}
23658#endif
23659#endif
23660#ifndef __Pyx_DEFINED_PyNumber_Add_xfloat_object
23661#define __Pyx_DEFINED_PyNumber_Add_xfloat_object
23662static PyObject* __Pyx_PyNumber_Add_xfloat_object(PyObject *op1, PyObject *op2, int inplace) {
23663 if (PyLong_CheckExact(op2)) {
23664 double int_op2;
23665 #if CYTHON_USE_PYLONG_INTERNALS
23666 if (__Pyx_PyLong_IsCompact(op2)) {
23667 Py_ssize_t compact_op2 = __Pyx_PyLong_CompactValue(op2);
23668 if (compact_op2 == 0) return __Pyx_NewRef(op1);
23669 int_op2 = (double) compact_op2;
23670 } else
23671 #endif
23672 {
23673 int_op2 = PyLong_AsDouble(op2);
23674 if (unlikely((int_op2 == -1.) && PyErr_Occurred())) return NULL;
23675 #if !CYTHON_USE_PYLONG_INTERNALS
23676 if (int_op2 == 0.) return __Pyx_NewRef(op1);
23677 #endif
23678 }
23679 double float_op1 = __Pyx_PyFloat_AS_DOUBLE(op1);
23680 #if !CYTHON_ASSUME_SAFE_MACROS
23681 if (unlikely((float_op1 == -1.) && PyErr_Occurred())) return NULL;
23682 #endif
23683 return PyFloat_FromDouble(float_op1 + int_op2);
23684 }
23685 if (PyLong_Check(op2)) {
23686 binaryfunc slot_func = __Pyx_PyType_GetSubSlot(&PyFloat_Type, tp_as_number, nb_add, binaryfunc);
23687 if (likely(slot_func)) {
23688 return slot_func(op1, op2);
23689 }
23690 }
23691 #if CYTHON_USE_TYPE_SLOTS || __PYX_LIMITED_VERSION_HEX >= 0x030A0000
23692 {
23693 PyTypeObject *type_op2 = Py_TYPE(op2);
23694 binaryfunc slot_func = __Pyx_PyType_GetSubSlot(type_op2, tp_as_number, nb_add, binaryfunc);
23695 if (likely(slot_func)) {
23696 PyObject *result = slot_func(op1, op2);
23697 if (likely(result != Py_NotImplemented)) {
23698 return result;
23699 }
23700 Py_DECREF(result);
23701 }
23702 __Pyx_BinopTypeError(op1, op2, "+", inplace);
23703 return NULL;
23704 }
23705 #else
23706 return (inplace) ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2);
23707 #endif
23708}
23709#endif
23710#ifndef __Pyx_DEFINED_PyNumber_Add_xint_object
23711#define __Pyx_DEFINED_PyNumber_Add_xint_object
23712static PyObject* __Pyx_PyNumber_Add_xint_object(PyObject *op1, PyObject *op2, int inplace) {
23713 if (PyFloat_CheckExact(op2)) {
23714 double int_op1;
23715 #if CYTHON_USE_PYLONG_INTERNALS
23716 if (__Pyx_PyLong_IsCompact(op1)) {
23717 Py_ssize_t compact_op1 = __Pyx_PyLong_CompactValue(op1);
23718 if (compact_op1 == 0) return __Pyx_NewRef(op2);
23719 int_op1 = (double) compact_op1;
23720 } else
23721 #endif
23722 {
23723 int_op1 = PyLong_AsDouble(op1);
23724 if (unlikely((int_op1 == -1.) && PyErr_Occurred())) return NULL;
23725 #if !CYTHON_USE_PYLONG_INTERNALS
23726 if (int_op1 == 0.) return __Pyx_NewRef(op2);
23727 #endif
23728 }
23729 double float_op2 = __Pyx_PyFloat_AS_DOUBLE(op2);
23730 #if !CYTHON_ASSUME_SAFE_MACROS
23731 if (unlikely((float_op2 == -1.) && PyErr_Occurred())) return NULL;
23732 #endif
23733 return PyFloat_FromDouble(int_op1 + float_op2);
23734 }
23735 #if CYTHON_USE_TYPE_SLOTS || __PYX_LIMITED_VERSION_HEX >= 0x030A0000
23736 {
23737 PyTypeObject *type_op2 = Py_TYPE(op2);
23738 binaryfunc slot_func = __Pyx_PyType_GetSubSlot(type_op2, tp_as_number, nb_add, binaryfunc);
23739 if (likely(slot_func)) {
23740 PyObject *result = slot_func(op1, op2);
23741 if (likely(result != Py_NotImplemented)) {
23742 return result;
23743 }
23744 Py_DECREF(result);
23745 }
23746 __Pyx_BinopTypeError(op1, op2, "+", inplace);
23747 return NULL;
23748 }
23749 #else
23750 return (inplace) ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2);
23751 #endif
23752}
23753#endif
23754static CYTHON_INLINE PyObject* __Pyx__PyNumber_Add_object_object(PyObject *op1, PyObject *op2, int inplace) {
23755 if (PyFloat_CheckExact(op1)) {
23756 if (PyFloat_CheckExact(op2)) {
23757 double float_op2 = __Pyx_PyFloat_AS_DOUBLE(op2);
23758 #if !CYTHON_ASSUME_SAFE_MACROS
23759 if (unlikely((float_op2 == -1.) && PyErr_Occurred())) return NULL;
23760 #endif
23761 double float_op1 = __Pyx_PyFloat_AS_DOUBLE(op1);
23762 #if !CYTHON_ASSUME_SAFE_MACROS
23763 if (unlikely((float_op1 == -1.) && PyErr_Occurred())) return NULL;
23764 #endif
23765 return PyFloat_FromDouble(float_op1 + float_op2);
23766 }
23767 return __Pyx_PyNumber_Add_xfloat_object(op1, op2, inplace);
23768 }
23769 if (PyLong_CheckExact(op1)) {
23770 if (PyLong_CheckExact(op2)) {
23771 #if CYTHON_USE_PYLONG_INTERNALS
23772 if (__Pyx_PyLong_IsCompact(op1)) {
23773 Py_ssize_t int_op1 = __Pyx_PyLong_CompactValue(op1);
23774 if (int_op1 == 0) return __Pyx_NewRef(op2);
23775 if (__Pyx_PyLong_IsCompact(op2)) {
23776 Py_ssize_t int_op2 = __Pyx_PyLong_CompactValue(op2);
23777 if (int_op2 == 0) return __Pyx_NewRef(op1);
23778 return PyLong_FromSsize_t(int_op1 + int_op2);
23779 }
23780 }
23781 else if (__Pyx_PyLong_IsZero(op2)) return __Pyx_NewRef(op1);
23782 #endif
23783 binaryfunc slot_func = __Pyx_PyType_GetSubSlot(&PyLong_Type, tp_as_number, nb_add, binaryfunc);
23784 if (likely(slot_func)) {
23785 return slot_func(op1, op2);
23786 }
23787 }
23788 return __Pyx_PyNumber_Add_xint_object(op1, op2, inplace);
23789 }
23790 return (inplace) ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2);
23791}
23792#endif
23793
23794/* AllocateExtensionType */
23795static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) {
23796 if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
23797 allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc);
23798 return alloc_func(t, 0);
23799 } else {
23800 newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc);
23801 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
23802 if (!tp_new) {
23803 PyObject *new_str = PyUnicode_FromString("__new__");
23804 if (likely(new_str)) {
23805 PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL);
23806 Py_DECREF(new_str);
23807 return o;
23808 } else
23809 return NULL;
23810 } else
23811 #endif
23812 return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
23813 }
23814}
23815
23816/* CallSlotAsVectorcallUnpackDict (used by CallSlotAsVectorcall) */
23817static CYTHON_INLINE int __Pyx_CallSlotAsVectorcallUnpackDict(Py_ssize_t args_size, PyObject *keys_dict, PyObject **args, PyObject *kwnames) {
23818 Py_ssize_t pos = 0, i = 0;
23819 PyObject *key, *value;
23820 while (PyDict_Next(keys_dict, &pos, &key, &value)) {
23821 Py_INCREF(value);
23822 args[args_size+i] = value;
23823 Py_INCREF(key);
23824 if (unlikely(__Pyx_PyTuple_SET_ITEM(kwnames, i, key) == -1)) {
23825 return -1;
23826 }
23827 ++i;
23828 }
23829 return 0;
23830}
23831
23832/* CallSlotAsVectorcall */
23833#if CYTHON_VECTORCALL_TPNEW
23834static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k) {
23835 Py_ssize_t k_size = k ? __Pyx_PyDict_GET_SIZE(k) : 0;
23836#if !CYTHON_ASSUME_SAFE_SIZE
23837 if (unlikely(k_size < 0)) return NULL;
23838#endif
23839 Py_ssize_t a_size = __Pyx_PyTuple_GET_SIZE(a);
23840#if !CYTHON_ASSUME_SAFE_SIZE
23841 if (unlikely(a_size < 0)) return NULL;
23842#endif
23843#if CYTHON_ASSUME_SAFE_MACROS
23844 if (k_size == 0) {
23845 return f(o, &PyTuple_GET_ITEM(a, 0), a_size, NULL);
23846 }
23847#else
23848 if (k_size == 0 && a_size == 0) {
23849 return f(o, NULL, 0, NULL);
23850 }
23851#endif
23852 PyObject *stack_args[5];
23853 PyObject **args = stack_args;
23854 Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(PyObject*) - 1;
23855 if (a_size > maxnargs - k_size) {
23856 PyErr_NoMemory();
23857 return NULL;
23858 }
23859 Py_ssize_t total_size = a_size + k_size;
23860 if (total_size > 5) {
23861 args = (PyObject**)PyMem_Malloc(((size_t)total_size)*sizeof(PyObject*));
23862 if (unlikely(!args)) {
23863 PyErr_NoMemory();
23864 return NULL;
23865 }
23866 }
23867 PyObject * result = NULL;
23868 PyObject *kwnames = NULL;
23869 int unpack_dict_result;
23870 Py_ssize_t i = 0;
23871 for (; i < a_size; ++i) {
23872 args[i] = __Pyx_PyTuple_GET_ITEM(a, i);
23873#if !CYTHON_ASSUME_SAFE_MACROS
23874 if (unlikely(!args[i])) goto cleanup;
23875#endif
23876 }
23877#if !CYTHON_ASSUME_SAFE_MACROS
23878 if (k) // There's a specific shortcut earlier for ASSUME_SAFE_MACROS with no keywords
23879#endif
23880 {
23881 kwnames = PyTuple_New(k_size);
23882 if (unlikely(!kwnames)) goto cleanup;
23883 __Pyx_BEGIN_CRITICAL_SECTION(k);
23884 unpack_dict_result = __Pyx_CallSlotAsVectorcallUnpackDict(a_size, k, args, kwnames);
23885 __Pyx_END_CRITICAL_SECTION();
23886 if (unlikely(unpack_dict_result == -1)) goto cleanup;
23887 }
23888 result = f(o, args, a_size, kwnames);
23889 cleanup:
23890 Py_XDECREF(kwnames);
23891 for (i=a_size; i<total_size; ++i) {
23892 Py_XDECREF(args[i]);
23893 }
23894 if (args != stack_args) {
23895 PyMem_Free(args);
23896 }
23897 return result;
23898}
23899#endif
23900
23901/* CallNewInitFromVectorcall */
23902#if CYTHON_VECTORCALL_TPNEW
23903static PyObject *__Pyx_CallNewInitFromVectorcall(PyTypeObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
23904 newfunc tp_new = __Pyx_PyType_GetSlot(t, tp_new, newfunc);
23905 if (unlikely(!tp_new)) {
23906 __Pyx_RaiseErrorWithType(PyExc_TypeError, "cannot create " __Pyx_FMT_TYPENAME " instances", t);
23907 return NULL;
23908 }
23909 Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(nargsf);
23910 PyObject *result = NULL, *args_tuple = NULL, *kwds_dict = NULL;
23911 Py_ssize_t kw_size = kwnames ? __Pyx_PyTuple_GET_SIZE(kwnames) : 0;
23912#if !CYTHON_ASSUME_SAFE_SIZE
23913 if (unlikely(kw_size == -1)) {
23914 return NULL;
23915 }
23916#endif
23917 if (kw_size) {
23918 kwds_dict = __Pyx_PyDict_NewPresized(kw_size);
23919 if (unlikely(!kwds_dict)) {
23920 return NULL;
23921 }
23922 for (Py_ssize_t i=0; i<kw_size; ++i) {
23923 PyObject *v = args[nargs + i];
23924 PyObject *k = __Pyx_PyTuple_GET_ITEM(kwnames, i);
23925#if !CYTHON_ASSUME_SAFE_MACROS
23926 if (unlikely(!k)) {
23927 goto end;
23928 }
23929#endif
23930 if (unlikely(PyDict_SetItem(kwds_dict, k, v) < 0)) {
23931 goto end;
23932 }
23933 }
23934 }
23935 if (nargs) {
23936 args_tuple = __Pyx_PyTuple_FromArray(args, nargs);
23937 if (unlikely(!args_tuple)) {
23938 goto end;
23939 }
23940 } else {
23941 args_tuple = __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
23942 }
23943 result = tp_new(t, args_tuple, kwds_dict);
23944 if (unlikely(!result)) {
23945 goto end;
23946 }
23947 if (PyObject_TypeCheck(result, t)) {
23948 initproc tp_init = __Pyx_PyObject_GetSlot(result, tp_init, initproc);
23949 if (tp_init && unlikely(tp_init(result, args_tuple, kwds_dict) < 0)) {
23950 Py_CLEAR(result);
23951 }
23952 }
23953 end:
23954 Py_XDECREF(args_tuple);
23955 Py_XDECREF(kwds_dict);
23956 return result;
23957}
23958#endif
23959
23960/* PyObjectCallMethod0 (used by PyType_Ready) */
23961static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
23962#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || !CYTHON_COMPILING_IN_LIMITED_API)
23963 return PyObject_VectorcallMethod(method_name, &obj, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
23964#elif CYTHON_COMPILING_IN_LIMITED_API
23965 return PyObject_CallMethodObjArgs(obj, method_name, NULL);
23966#else
23967 return PyObject_CallMethodNoArgs(obj, method_name);
23968#endif
23969}
23970
23971/* GetTypeDictOffset (used by ValidateBasesTuple) */
23972#if !CYTHON_USE_TYPE_SLOTS
23973CYTHON_UNUSED static Py_ssize_t __Pyx_GetTypeDictOffset(PyObject *tp, int require_cython_valid_result) {
23974 PyObject *tp_dictoffset_o;
23975 Py_ssize_t tp_dictoffset;
23976 tp_dictoffset_o = PyObject_GetAttrString(tp, "__dictoffset__");
23977 if (unlikely(!tp_dictoffset_o)) return -1;
23978 tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
23979 Py_DECREF(tp_dictoffset_o);
23980 if (unlikely(require_cython_valid_result && tp_dictoffset == 0)) {
23981 PyErr_SetString(
23982 PyExc_TypeError,
23983 "'type' doesn't have a dictoffset");
23984 return -1;
23985 } else if (unlikely(require_cython_valid_result && tp_dictoffset < 0)) {
23986 PyErr_SetString(
23987 PyExc_TypeError,
23988 "'type' has an unexpected negative dictoffset. "
23989 "Please report this as Cython bug");
23990 return -1;
23991 }
23992 return tp_dictoffset;
23993}
23994#endif
23995
23996/* RaiseErrorWithObjectType1 (used by ValidateBasesTuple) */
23997static void __Pyx_RaiseErrorWithType1(PyObject* exc_type, const char* message, const char *arg, PyTypeObject *type_obj) {
23998 __Pyx_TypeName type_name = __Pyx_PyType_GetFullyQualifiedName(type_obj);
23999 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
24000 if (unlikely(!type_name)) return;
24001 #endif
24002 PyErr_Format(exc_type, message, arg, type_name);
24003 __Pyx_DECREF_TypeName(type_name);
24004}
24005
24006/* ValidateBasesTuple (used by PyType_Ready) */
24007#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
24008static int __Pyx_validate_bases_tuple(const char *type_name, int has_dictoffset, PyObject *bases) {
24009 Py_ssize_t i, n;
24010#if CYTHON_ASSUME_SAFE_SIZE
24011 n = PyTuple_GET_SIZE(bases);
24012#else
24013 n = PyTuple_Size(bases);
24014 if (unlikely(n < 0)) return -1;
24015#endif
24016 if (!has_dictoffset) {
24017 PyObject *b;
24018#if CYTHON_AVOID_BORROWED_REFS
24019 b = PySequence_GetItem(bases, 0);
24020 if (!b) return -1;
24021#elif CYTHON_ASSUME_SAFE_MACROS
24022 b = PyTuple_GET_ITEM(bases, 0);
24023#else
24024 b = PyTuple_GetItem(bases, 0);
24025 if (!b) return -1;
24026#endif
24027#if CYTHON_USE_TYPE_SLOTS
24028 has_dictoffset = ((PyTypeObject*)b)->tp_dictoffset != 0;
24029#else
24030 Py_ssize_t dictoffset = __Pyx_GetTypeDictOffset(b, 0);
24031 has_dictoffset = dictoffset != 0;
24032#endif
24033#if CYTHON_AVOID_BORROWED_REFS
24034 Py_DECREF(b);
24035#endif
24036#if !CYTHON_USE_TYPE_SLOTS
24037 if (dictoffset == -1 && PyErr_Occurred()) return -1;
24038#endif
24039 }
24040 for (i = 1; i < n; i++)
24041 {
24042 PyTypeObject *b;
24043#if CYTHON_AVOID_BORROWED_REFS
24044 PyObject *b0 = PySequence_GetItem(bases, i);
24045 if (!b0) return -1;
24046#elif CYTHON_ASSUME_SAFE_MACROS
24047 PyObject *b0 = PyTuple_GET_ITEM(bases, i);
24048#else
24049 PyObject *b0 = PyTuple_GetItem(bases, i);
24050 if (!b0) return -1;
24051#endif
24052 b = (PyTypeObject*) b0;
24053 if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
24054 {
24055 __Pyx_RaiseErrorWithType(
24056 PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b);
24057#if CYTHON_AVOID_BORROWED_REFS
24058 Py_DECREF(b0);
24059#endif
24060 return -1;
24061 }
24062 if (!has_dictoffset)
24063 {
24064 Py_ssize_t b_dictoffset = 0;
24065#if CYTHON_USE_TYPE_SLOTS
24066 b_dictoffset = b->tp_dictoffset;
24067#else
24068 b_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)b, 0);
24069 if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
24070#endif
24071 if (b_dictoffset) {
24072 __Pyx_RaiseErrorWithType1(
24073 PyExc_TypeError,
24074 "extension type '%.200s' has no __dict__ slot, "
24075 "but base type '" __Pyx_FMT_TYPENAME "' has: "
24076 "either add 'cdef dict __dict__' to the extension type "
24077 "or add '__slots__ = [...]' to the base type",
24078 type_name, b);
24079#if !CYTHON_USE_TYPE_SLOTS
24080 dictoffset_return:
24081#endif
24082#if CYTHON_AVOID_BORROWED_REFS
24083 Py_DECREF(b0);
24084#endif
24085 return -1;
24086 }
24087 }
24088#if CYTHON_AVOID_BORROWED_REFS
24089 Py_DECREF(b0);
24090#endif
24091 }
24092 return 0;
24093}
24094#endif
24095
24096/* PyType_Ready */
24097CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
24098 while (t) {
24099 PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
24100 if (bases) {
24101 return 1;
24102 }
24103 t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
24104 }
24105 return 0;
24106}
24107static int __Pyx_PyType_Ready(PyTypeObject *t) {
24108#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON
24109 (void)__Pyx_PyObject_CallMethod0;
24110#if CYTHON_USE_TYPE_SPECS
24111 (void)__Pyx_validate_bases_tuple;
24112#endif
24113 return PyType_Ready(t);
24114#else
24115 int r;
24116 if (!__Pyx_PyType_HasMultipleInheritance(t)) {
24117 return PyType_Ready(t);
24118 }
24119 PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
24120 if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset != 0, bases) == -1))
24121 return -1;
24122 {
24123 int gc_was_enabled;
24124 #if PY_VERSION_HEX >= 0x030A00b1
24125 gc_was_enabled = PyGC_Disable();
24126 (void)__Pyx_PyObject_CallMethod0;
24127 #else
24128 PyObject *ret, *py_status;
24129 PyObject *gc = NULL;
24130 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
24131 !CYTHON_COMPILING_IN_GRAAL
24132 gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
24133 #endif
24134 if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
24135 if (unlikely(!gc)) return -1;
24136 py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
24137 if (unlikely(!py_status)) {
24138 Py_DECREF(gc);
24139 return -1;
24140 }
24141 gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
24142 Py_DECREF(py_status);
24143 if (gc_was_enabled > 0) {
24144 ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
24145 if (unlikely(!ret)) {
24146 Py_DECREF(gc);
24147 return -1;
24148 }
24149 Py_DECREF(ret);
24150 } else if (unlikely(gc_was_enabled == -1)) {
24151 Py_DECREF(gc);
24152 return -1;
24153 }
24154 #endif
24155 t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
24156#if PY_VERSION_HEX >= 0x030A0000
24157 t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
24158#endif
24159 r = PyType_Ready(t);
24160 t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
24161 #if PY_VERSION_HEX >= 0x030A00b1
24162 if (gc_was_enabled)
24163 PyGC_Enable();
24164 #else
24165 if (gc_was_enabled) {
24166 PyObject *tp, *v, *tb;
24167 PyErr_Fetch(&tp, &v, &tb);
24168 ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
24169 if (likely(ret || r == -1)) {
24170 Py_XDECREF(ret);
24171 PyErr_Restore(tp, v, tb);
24172 } else {
24173 Py_XDECREF(tp);
24174 Py_XDECREF(v);
24175 Py_XDECREF(tb);
24176 r = -1;
24177 }
24178 }
24179 Py_DECREF(gc);
24180 #endif
24181 }
24182 return r;
24183#endif
24184}
24185
24186/* LimitedApiGetTypeTypeDict (used by DelItemOnTypeDict) */
24187#if CYTHON_COMPILING_IN_LIMITED_API
24188static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp) {
24189 static Py_ssize_t tp_dictoffset = 0;
24190 if (unlikely(tp_dictoffset == 0)) {
24191 tp_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)(&PyType_Type), 1);
24192 if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
24193 tp_dictoffset = 0; // try again next time?
24194 return NULL;
24195 }
24196 }
24197 return *(PyObject**)((char*)tp + tp_dictoffset);
24198}
24199#endif
24200
24201/* DelItemOnTypeDict (used by SetupReduce) */
24202static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
24203 int result;
24204 PyObject *tp_dict;
24205#if CYTHON_COMPILING_IN_LIMITED_API
24206 tp_dict = __Pyx_GetTypeTypeDict(tp);
24207 if (unlikely(!tp_dict)) return -1;
24208#else
24209 tp_dict = tp->tp_dict;
24210#endif
24211 result = PyDict_DelItem(tp_dict, k);
24212 if (likely(!result)) PyType_Modified(tp);
24213 return result;
24214}
24215
24216/* SetItemOnTypeDict (used by SetupReduce) */
24217static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
24218 int result;
24219 PyObject *tp_dict;
24220#if CYTHON_COMPILING_IN_LIMITED_API
24221 tp_dict = __Pyx_GetTypeTypeDict(tp);
24222 if (unlikely(!tp_dict)) return -1;
24223#else
24224 tp_dict = tp->tp_dict;
24225#endif
24226 result = PyDict_SetItem(tp_dict, k, v);
24227 if (likely(!result)) {
24228 PyType_Modified(tp);
24229 if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
24230 PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name, (PyObject *) tp, k, NULL);
24231 if (!setNameResult) return -1;
24232 Py_DECREF(setNameResult);
24233 }
24234 }
24235 return result;
24236}
24237
24238/* SetupReduce */
24239static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
24240 int ret;
24241 PyObject *name_attr;
24242 name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name);
24243 if (likely(name_attr)) {
24244 ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
24245 } else {
24246 ret = -1;
24247 }
24248 if (unlikely(ret < 0) && __Pyx_IgnoreException(PyExc_Exception)) {
24249 ret = 0; // But BaseException is still propagated.
24250 }
24251 Py_XDECREF(name_attr);
24252 return ret;
24253}
24254static PyObject *__Pyx_setup_reduce_get_reduce_attribute(PyObject *type_obj, PyObject *name, int allow_not_present) {
24255#if CYTHON_USE_PYTYPE_LOOKUP
24256 CYTHON_UNUSED_VAR(allow_not_present);
24257 return _PyType_Lookup((PyTypeObject*)type_obj, name);
24258#else
24259 if (allow_not_present) {
24260 return __Pyx_PyObject_GetAttrStrNoError(type_obj, name);
24261 } else {
24262 return __Pyx_PyObject_GetAttrStr(type_obj, name);
24263 }
24264#endif
24265}
24266static int __Pyx_setup_reduce(PyObject* type_obj) {
24267 int ret = 0;
24268 PyObject *object_reduce = NULL;
24269 PyObject *object_getstate = NULL;
24270 PyObject *object_reduce_ex = NULL;
24271 PyObject *reduce = NULL;
24272 PyObject *reduce_ex = NULL;
24273 PyObject *reduce_cython = NULL;
24274 PyObject *setstate = NULL;
24275 PyObject *setstate_cython = NULL;
24276 PyObject *getstate = NULL;
24277 getstate = __Pyx_setup_reduce_get_reduce_attribute(type_obj, __pyx_mstate_global->__pyx_n_u_getstate, 1);
24278 if (!getstate && PyErr_Occurred()) {
24279 goto __PYX_BAD;
24280 }
24281 if (getstate) {
24282 object_getstate = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate, 1);
24283 if (!object_getstate && PyErr_Occurred()) {
24284 goto __PYX_BAD;
24285 }
24286 if (object_getstate != getstate) {
24287 goto __PYX_GOOD;
24288 }
24289 }
24290 object_reduce_ex = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex, 0);
24291 if (unlikely(!object_reduce_ex)) goto __PYX_BAD;
24292 reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
24293 if (reduce_ex == object_reduce_ex) {
24294 object_reduce = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce, 0);
24295 if (!object_reduce) goto __PYX_BAD;
24296 reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
24297 int try_to_replace_reduce = (reduce == object_reduce);
24298 if (!try_to_replace_reduce) {
24299 try_to_replace_reduce = __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython);
24300 if (unlikely(try_to_replace_reduce < 0)) {
24301 goto __PYX_BAD;
24302 }
24303 }
24304 if (try_to_replace_reduce) {
24305 reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
24306 if (likely(reduce_cython)) {
24307 ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
24308 ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
24309 } else if (reduce == object_reduce || PyErr_Occurred()) {
24310 goto __PYX_BAD;
24311 }
24312 setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
24313 int try_to_replace_setstate;
24314 if (!setstate) {
24315 PyObject *exc = PyErr_Occurred();
24316 if (exc && !__Pyx_IgnoreGivenException(exc, PyExc_Exception)) {
24317 goto __PYX_BAD;
24318 }
24319 try_to_replace_setstate = 1;
24320 } else {
24321 try_to_replace_setstate = __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython);
24322 if (unlikely(try_to_replace_setstate < 0)) {
24323 goto __PYX_BAD;
24324 }
24325 }
24326 if (try_to_replace_setstate) {
24327 setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
24328 if (likely(setstate_cython)) {
24329 ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
24330 ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
24331 } else if (!setstate || PyErr_Occurred()) {
24332 goto __PYX_BAD;
24333 }
24334 }
24335 PyType_Modified((PyTypeObject*)type_obj);
24336 }
24337 }
24338 goto __PYX_GOOD;
24339__PYX_BAD:
24340 if (!PyErr_Occurred()) {
24341 __Pyx_RaiseErrorWithType(
24342 PyExc_RuntimeError,
24343 "Unable to initialize pickling for " __Pyx_FMT_TYPENAME,
24344 (PyTypeObject*)type_obj);
24345 }
24346 ret = -1;
24347__PYX_GOOD:
24348#if !CYTHON_USE_PYTYPE_LOOKUP
24349 Py_XDECREF(object_reduce);
24350 Py_XDECREF(object_reduce_ex);
24351 Py_XDECREF(object_getstate);
24352 Py_XDECREF(getstate);
24353#endif
24354 Py_XDECREF(reduce);
24355 Py_XDECREF(reduce_ex);
24356 Py_XDECREF(reduce_cython);
24357 Py_XDECREF(setstate);
24358 Py_XDECREF(setstate_cython);
24359 return ret;
24360}
24361
24362/* TypeImport */
24363#ifndef __PYX_HAVE_RT_ImportType_3_3_0
24364#define __PYX_HAVE_RT_ImportType_3_3_0
24365static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject *module, const char *module_name, const char *class_name,
24366 size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size)
24367{
24368 PyObject *result = 0;
24369 Py_ssize_t basicsize;
24370 Py_ssize_t itemsize;
24371#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
24372 PyObject *py_basicsize;
24373 PyObject *py_itemsize;
24374#endif
24375 result = PyObject_GetAttrString(module, class_name);
24376 if (!result)
24377 goto bad;
24378 if (!PyType_Check(result)) {
24379 PyErr_Format(PyExc_TypeError,
24380 "%.200s.%.200s is not a type object",
24381 module_name, class_name);
24382 goto bad;
24383 }
24384#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
24385 basicsize = ((PyTypeObject *)result)->tp_basicsize;
24386 itemsize = ((PyTypeObject *)result)->tp_itemsize;
24387#else
24388 if (size == 0) {
24389 return (PyTypeObject *)result;
24390 }
24391 py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
24392 if (!py_basicsize)
24393 goto bad;
24394 basicsize = PyLong_AsSsize_t(py_basicsize);
24395 Py_DECREF(py_basicsize);
24396 py_basicsize = 0;
24397 if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
24398 goto bad;
24399 py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
24400 if (!py_itemsize)
24401 goto bad;
24402 itemsize = PyLong_AsSsize_t(py_itemsize);
24403 Py_DECREF(py_itemsize);
24404 py_itemsize = 0;
24405 if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
24406 goto bad;
24407#endif
24408 if (itemsize) {
24409 if (size % alignment) {
24410 alignment = size % alignment;
24411 }
24412 if (itemsize < (Py_ssize_t)alignment)
24413 itemsize = (Py_ssize_t)alignment;
24414 }
24415 if ((size_t)(basicsize + itemsize) < size) {
24416 PyErr_Format(PyExc_ValueError,
24417 "%.200s.%.200s size changed, may indicate binary incompatibility. "
24418 "Expected %zd from C header, got %zd from PyObject",
24419 module_name, class_name, size, basicsize+itemsize);
24420 goto bad;
24421 }
24422 if (check_size == __Pyx_ImportType_CheckSize_Error_3_3_0 &&
24423 ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
24424 PyErr_Format(PyExc_ValueError,
24425 "%.200s.%.200s size changed, may indicate binary incompatibility. "
24426 "Expected %zd from C header, got %zd-%zd from PyObject",
24427 module_name, class_name, size, basicsize, basicsize+itemsize);
24428 goto bad;
24429 }
24430 else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_3_0 && (size_t)basicsize > size) {
24431 if (PyErr_WarnFormat(NULL, 0,
24432 "%.200s.%.200s size changed, may indicate binary incompatibility. "
24433 "Expected %zd from C header, got %zd from PyObject",
24434 module_name, class_name, size, basicsize) < 0) {
24435 goto bad;
24436 }
24437 }
24438 return (PyTypeObject *)result;
24439bad:
24440 Py_XDECREF(result);
24441 return NULL;
24442}
24443#endif
24444
24445/* HasAttr (used by ImportImpl) */
24446#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
24447static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
24448 PyObject *r;
24449 if (unlikely(!PyUnicode_Check(n))) {
24450 PyErr_SetString(PyExc_TypeError,
24451 "hasattr(): attribute name must be string");
24452 return -1;
24453 }
24454 r = __Pyx_PyObject_GetAttrStrNoError(o, n);
24455 if (!r) {
24456 return (unlikely(PyErr_Occurred())) ? -1 : 0;
24457 } else {
24458 Py_DECREF(r);
24459 return 1;
24460 }
24461}
24462#endif
24463
24464/* TupleOrListFromArrayImpl (used by ListFromArray) */
24465CYTHON_UNUSED static PyObject *
24466__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) {
24467 PyObject *res = PyList_New(n);
24468 if (unlikely(res == NULL)) return NULL;
24469 #if CYTHON_COMPILING_IN_CPYTHON
24470 __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
24471 #else
24472 Py_ssize_t i;
24473 for (i = 0; i < n; i++) {
24474 Py_INCREF(src[i]);
24475 if (unlikely(__Pyx_PyList_SET_ITEM(res, i, src[i]) < (0))) {
24476 Py_DECREF(res);
24477 return NULL;
24478 }
24479 }
24480 #endif
24481 return res;
24482}
24483
24484/* ImportImpl (used by Import) */
24485static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
24486 PyObject *imported_module = PyImport_GetModule(qualname);
24487 if (unlikely(!imported_module)) {
24488 *module = NULL;
24489 if (PyErr_Occurred()) {
24490 return -1;
24491 }
24492 return 0;
24493 }
24494 *module = imported_module;
24495 return 1;
24496}
24497static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
24498 PyObject *imported_module;
24499 PyObject *top_level_package_name;
24500 Py_ssize_t i;
24501 int status, module_found;
24502 Py_ssize_t dot_index;
24503 module_found = __Pyx__Import_GetModule(qualname, &imported_module);
24504 if (unlikely(!module_found || module_found == -1)) {
24505 *module = NULL;
24506 return module_found;
24507 }
24508 if (imported_names) {
24509 for (i = 0; i < len_imported_names; i++) {
24510 PyObject *imported_name = imported_names[i];
24511#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
24512 int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
24513#else
24514 int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
24515 if (unlikely(has_imported_attribute == -1)) goto error;
24516#endif
24517 if (!has_imported_attribute) {
24518 goto not_found;
24519 }
24520 }
24521 *module = imported_module;
24522 return 1;
24523 }
24524 dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
24525 if (dot_index == -1) {
24526 *module = imported_module;
24527 return 1;
24528 }
24529 if (unlikely(dot_index == -2)) goto error;
24530 top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
24531 if (unlikely(!top_level_package_name)) goto error;
24532 Py_DECREF(imported_module);
24533 status = __Pyx__Import_GetModule(top_level_package_name, module);
24534 Py_DECREF(top_level_package_name);
24535 return status;
24536error:
24537 Py_DECREF(imported_module);
24538 *module = NULL;
24539 return -1;
24540not_found:
24541 Py_DECREF(imported_module);
24542 *module = NULL;
24543 return 0;
24544}
24545static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
24546 PyObject *module = 0;
24547 PyObject *empty_dict = 0;
24548 PyObject *from_list = 0;
24549 int module_found;
24550 if (!qualname) {
24551 qualname = name;
24552 }
24553 module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
24554 if (likely(module_found == 1)) {
24555 return module;
24556 } else if (unlikely(module_found == -1)) {
24557 return NULL;
24558 }
24559 #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030f00a6
24560 empty_dict = PyFrozenDict_New(NULL);
24561 #else
24562 empty_dict = PyDict_New();
24563 #endif
24564 if (unlikely(!empty_dict))
24565 goto bad;
24566 if (imported_names) {
24567 from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
24568 if (unlikely(!from_list))
24569 goto bad;
24570 }
24571 if (level == -1) {
24572 const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
24573 if (package_sep != (0)) {
24574 module = PyImport_ImportModuleLevelObject(
24575 name, moddict, empty_dict, from_list, 1);
24576 if (unlikely(!module)) {
24577 if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
24578 goto bad;
24579 PyErr_Clear();
24580 }
24581 }
24582 level = 0;
24583 }
24584 if (!module) {
24585 module = PyImport_ImportModuleLevelObject(
24586 name, moddict, empty_dict, from_list, level);
24587 }
24588bad:
24589 Py_XDECREF(from_list);
24590 Py_XDECREF(empty_dict);
24591 return module;
24592}
24593
24594/* Import */
24595static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
24596 return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
24597}
24598
24599/* dict_setdefault (used by FetchCommonType) */
24600static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
24601 PyObject* value;
24602#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
24603 PyDict_SetDefaultRef(d, key, default_value, &value);
24604#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
24605 PyObject *args[] = {d, key, default_value};
24606 value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
24607#elif CYTHON_COMPILING_IN_LIMITED_API
24608 value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
24609#else
24610 value = PyDict_SetDefault(d, key, default_value);
24611 if (unlikely(!value)) return NULL;
24612 Py_INCREF(value);
24613#endif
24614 return value;
24615}
24616
24617/* AddModuleRef (used by FetchSharedCythonModule) */
24618#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3
24619 static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
24620 PyObject *module_dict = PyImport_GetModuleDict();
24621 PyObject *m;
24622 if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
24623 return NULL;
24624 }
24625 if (m != NULL && PyModule_Check(m)) {
24626 return m;
24627 }
24628 Py_XDECREF(m);
24629 m = PyModule_NewObject(name);
24630 if (m == NULL)
24631 return NULL;
24632 if (PyDict_CheckExact(module_dict)) {
24633 PyObject *new_m;
24634 (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
24635 Py_DECREF(m);
24636 return new_m;
24637 } else {
24638 if (PyObject_SetItem(module_dict, name, m) != 0) {
24639 Py_DECREF(m);
24640 return NULL;
24641 }
24642 return m;
24643 }
24644 }
24645 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
24646 if ((PY_VERSION_HEX >= 0x030E0000) && Py_Version >= 0x030E0100) {
24647 return PyImport_AddModuleRef(name);
24648 }
24649 PyObject *py_name = PyUnicode_FromString(name);
24650 if (!py_name) return NULL;
24651 PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
24652 Py_DECREF(py_name);
24653 return module;
24654 }
24655#elif __PYX_LIMITED_VERSION_HEX < 0x030d0000
24656 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
24657 PyObject *module = PyImport_AddModule(name);
24658 Py_XINCREF(module);
24659 return module;
24660 }
24661#endif
24662
24663/* FetchSharedCythonModule (used by FetchCommonType) */
24664static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
24665 return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
24666}
24667
24668/* VerifyCachedType (used by FetchCommonType) */
24669static int __Pyx_VerifyCachedType(PyObject *cached_type,
24670 const char *name,
24671 Py_ssize_t expected_basicsize) {
24672 Py_ssize_t basicsize;
24673 if (!PyType_Check(cached_type)) {
24674 PyErr_Format(PyExc_TypeError,
24675 "Shared Cython type %.200s is not a type object", name);
24676 return -1;
24677 }
24678 if (expected_basicsize == 0) {
24679 return 0; // size is inherited, nothing useful to check
24680 }
24681#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_OPAQUE_OBJECTS
24682 if (expected_basicsize < 0) {
24683 basicsize = PyType_GetTypeDataSize((PyTypeObject*)cached_type);
24684 } else
24685#endif
24686 {
24687 #if CYTHON_COMPILING_IN_LIMITED_API
24688 PyObject *py_basicsize;
24689 py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
24690 if (unlikely(!py_basicsize)) return -1;
24691 basicsize = PyLong_AsSsize_t(py_basicsize);
24692 Py_DECREF(py_basicsize);
24693 py_basicsize = NULL;
24694 if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
24695 #else
24696 basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
24697 #endif
24698 }
24699 if ((expected_basicsize >= 0) ?
24700 (basicsize != expected_basicsize) :
24701 (basicsize < -expected_basicsize)) {
24702 PyErr_Format(PyExc_TypeError,
24703 "Shared Cython type %.200s has the wrong size, try recompiling",
24704 name);
24705 return -1;
24706 }
24707 return 0;
24708}
24709
24710/* FetchCommonType (used by CommonTypesMetaclass) */
24711#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
24712static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
24713 PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
24714 if (result && metaclass) {
24715 PyObject *old_tp = (PyObject*)Py_TYPE(result);
24716 Py_INCREF((PyObject*)metaclass);
24717 Py_SET_TYPE(result, metaclass);
24718 Py_DECREF(old_tp);
24719 PyType_Modified((PyTypeObject*)result);
24720 }
24721 return result;
24722}
24723#else
24724#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
24725#endif
24726static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
24727 PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
24728 int get_item_ref_result;
24729 const char* object_name = strrchr(spec->name, '.');
24730 object_name = object_name ? object_name+1 : spec->name;
24731 py_object_name = PyUnicode_FromString(object_name);
24732 if (!py_object_name) return NULL;
24733 abi_module = __Pyx_FetchSharedCythonABIModule();
24734 if (!abi_module) goto done;
24735 abi_module_dict = PyModule_GetDict(abi_module);
24736 if (!abi_module_dict) goto done;
24737 get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
24738 if (get_item_ref_result == 1) {
24739 if (__Pyx_VerifyCachedType(
24740 cached_type,
24741 object_name,
24742 spec->basicsize) < 0) {
24743 goto bad;
24744 }
24745 goto done;
24746 } else if (unlikely(get_item_ref_result == -1)) {
24747 goto bad;
24748 }
24749 cached_type = __Pyx_PyType_FromMetaclass(
24750 metaclass,
24751 CYTHON_USE_MODULE_STATE ? module : abi_module,
24752 spec, bases);
24753 if (unlikely(!cached_type)) goto bad;
24754 new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
24755 if (unlikely(new_cached_type != cached_type)) {
24756 if (unlikely(!new_cached_type)) goto bad;
24757 Py_DECREF(cached_type);
24758 cached_type = new_cached_type;
24759 if (__Pyx_VerifyCachedType(
24760 cached_type,
24761 object_name,
24762 spec->basicsize) < 0) {
24763 goto bad;
24764 }
24765 goto done;
24766 } else {
24767 Py_DECREF(new_cached_type);
24768 }
24769done:
24770 Py_XDECREF(abi_module);
24771 Py_DECREF(py_object_name);
24772 assert(cached_type == NULL || PyType_Check(cached_type));
24773 return (PyTypeObject *) cached_type;
24774bad:
24775 Py_XDECREF(cached_type);
24776 cached_type = NULL;
24777 goto done;
24778}
24779
24780/* CommonTypesMetaclass (used by CythonFunctionShared) */
24781static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
24782 return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
24783}
24784#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
24785static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
24786 PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
24787 return NULL;
24788}
24789static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
24790 PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
24791 return -1;
24792}
24793#endif
24794static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
24795 {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
24796 {0, 0, 0, 0, 0}
24797};
24798static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
24799 {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
24800 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
24801 {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
24802 {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
24803 {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
24804 #endif
24805 {0, 0}
24806};
24807static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
24808 __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
24809 0,
24810 0,
24811 Py_TPFLAGS_IMMUTABLETYPE |
24812 Py_TPFLAGS_DISALLOW_INSTANTIATION |
24813 Py_TPFLAGS_DEFAULT,
24814 __pyx_CommonTypesMetaclass_slots
24815};
24816static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
24817 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
24818 PyObject *bases = PyTuple_Pack(1, &PyType_Type);
24819 if (unlikely(!bases)) {
24820 return -1;
24821 }
24822 mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
24823 Py_DECREF(bases);
24824 if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
24825 return -1;
24826 }
24827 return 0;
24828}
24829
24830/* CythonFunctionPerModule (used by CythonFunctionShared) */
24831#if CYTHON_COMPILING_IN_LIMITED_API
24832static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
24833 if (__Pyx_CyFunction_Check(func)) {
24834 return __Pyx_as_CyFunctionObject(func)->func_methoddef->ml_meth == (PyCFunction) cfunc;
24835 } else if (PyCFunction_Check(func)) {
24836 return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
24837 }
24838 return 0;
24839}
24840static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
24841 if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
24842 int result;
24843 PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);
24844 if (unlikely(!newFunc)) {
24845 PyErr_Clear(); // It's only an optimization, so don't throw an error
24846 return 0;
24847 }
24848 result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
24849 Py_DECREF(newFunc);
24850 return result;
24851 }
24852 return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
24853}
24854#else
24855static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
24856 if (PyMethod_Check(func)) {
24857 func = PyMethod_GET_FUNCTION(func);
24858 }
24859 return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
24860}
24861#endif
24862static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
24863#if CYTHON_COMPILING_IN_LIMITED_API
24864 __Pyx_Py_XDECREF_SET(
24865 __Pyx__CyFunction_GetClassObj(f),
24866 ((classobj) ? __Pyx_NewRef(classobj) : NULL));
24867#else
24868 __Pyx_Py_XDECREF_SET(
24869 ((PyCMethodObject *) (f))->mm_class,
24870 (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
24871#endif
24872}
24873static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
24874 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
24875 m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
24876 if (unlikely(!m->defaults))
24877 return NULL;
24878 return m->defaults;
24879}
24880static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
24881 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
24882 m->defaults_tuple = tuple;
24883 Py_INCREF(tuple);
24884}
24885static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
24886 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
24887 m->defaults_kwdict = dict;
24888 Py_INCREF(dict);
24889}
24890static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
24891 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
24892 m->func_annotations = dict;
24893 Py_INCREF(dict);
24894}
24895
24896/* CallTypeTraverse (used by CythonFunctionShared) */
24897#if !CYTHON_USE_TYPE_SPECS
24898#else
24899static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
24900 if (!always_call) {
24901 PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
24902 unsigned long flags = PyType_GetFlags(base);
24903 if (flags & Py_TPFLAGS_HEAPTYPE) {
24904 return 0;
24905 }
24906 }
24907 Py_VISIT((PyObject*)Py_TYPE(o));
24908 return 0;
24909}
24910#endif
24911
24912/* PyMethodNew (used by CythonFunctionShared) */
24913#if CYTHON_COMPILING_IN_LIMITED_API
24914static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
24915 PyObject *result;
24916 CYTHON_UNUSED_VAR(typ);
24917 if (!self)
24918 return __Pyx_NewRef(func);
24919 #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
24920 {
24921 PyObject *args[] = {func, self};
24922 result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
24923 }
24924 #else
24925 result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
24926 #endif
24927 return result;
24928}
24929#else
24930static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
24931 CYTHON_UNUSED_VAR(typ);
24932 if (!self)
24933 return __Pyx_NewRef(func);
24934 return PyMethod_New(func, self);
24935}
24936#endif
24937
24938/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
24939#if CYTHON_VECTORCALL
24940static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
24941{
24942 PyObject *res = NULL;
24943 PyObject *kwnames;
24944 PyObject **newargs;
24945 PyObject **kwvalues;
24946 Py_ssize_t i;
24947 #if CYTHON_AVOID_BORROWED_REFS
24948 PyObject *pos;
24949 #else
24950 Py_ssize_t pos;
24951 #endif
24952 size_t j;
24953 PyObject *key, *value;
24954 unsigned long keys_are_strings;
24955 #if !CYTHON_ASSUME_SAFE_SIZE
24956 Py_ssize_t nkw = PyDict_Size(kw);
24957 if (unlikely(nkw == -1)) return NULL;
24958 #else
24959 Py_ssize_t nkw = PyDict_GET_SIZE(kw);
24960 #endif
24961 newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
24962 if (unlikely(newargs == NULL)) {
24963 PyErr_NoMemory();
24964 return NULL;
24965 }
24966 for (j = 0; j < nargs; j++) newargs[j] = args[j];
24967 kwnames = PyTuple_New(nkw);
24968 if (unlikely(kwnames == NULL)) {
24969 PyMem_Free(newargs);
24970 return NULL;
24971 }
24972 kwvalues = newargs + nargs;
24973 pos = 0;
24974 i = 0;
24975 keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
24976 while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
24977 keys_are_strings &=
24978 #if CYTHON_COMPILING_IN_LIMITED_API
24979 PyType_GetFlags(Py_TYPE(key));
24980 #else
24981 Py_TYPE(key)->tp_flags;
24982 #endif
24983 #if !CYTHON_ASSUME_SAFE_MACROS
24984 if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
24985 #else
24986 PyTuple_SET_ITEM(kwnames, i, key);
24987 #endif
24988 kwvalues[i] = value;
24989 i++;
24990 }
24991 if (unlikely(!keys_are_strings)) {
24992 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
24993 goto cleanup;
24994 }
24995 res = vc(func, newargs, nargs, kwnames);
24996cleanup:
24997 #if CYTHON_AVOID_BORROWED_REFS
24998 Py_DECREF(pos);
24999 #endif
25000 Py_DECREF(kwnames);
25001 for (i = 0; i < nkw; i++)
25002 Py_DECREF(kwvalues[i]);
25003 PyMem_Free(newargs);
25004 return res;
25005}
25006static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
25007{
25008 Py_ssize_t kw_size =
25009 likely(kw == NULL) ?
25010 0 :
25011#if !CYTHON_ASSUME_SAFE_SIZE
25012 PyDict_Size(kw);
25013#else
25014 PyDict_GET_SIZE(kw);
25015#endif
25016 if (kw_size == 0) {
25017 return vc(func, args, nargs, NULL);
25018 }
25019#if !CYTHON_ASSUME_SAFE_SIZE
25020 else if (unlikely(kw_size == -1)) {
25021 return NULL;
25022 }
25023#endif
25024 return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
25025}
25026#endif
25027
25028/* CythonFunctionShared (used by CythonFunction) */
25029static PyObject *
25030__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
25031{
25032 if (unlikely(op->func_doc == NULL)) {
25033#if CYTHON_COMPILING_IN_LIMITED_API
25034 const char *doc = op->func_methoddef->ml_doc;
25035#else
25036 const char *doc = ((PyCFunctionObject*)op)->m_ml->ml_doc;
25037#endif
25038 if (doc) {
25039 op->func_doc = PyUnicode_FromString(doc);
25040 if (unlikely(op->func_doc == NULL))
25041 return NULL;
25042 } else {
25043 Py_INCREF(Py_None);
25044 return Py_None;
25045 }
25046 }
25047 Py_INCREF(op->func_doc);
25048 return op->func_doc;
25049}
25050static PyObject *
25051__Pyx_CyFunction_get_doc(PyObject *op_in, void *closure) {
25052 PyObject *result;
25053 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25054 CYTHON_UNUSED_VAR(closure);
25055 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25056 result = __Pyx_CyFunction_get_doc_locked(op);
25057 __Pyx_END_CRITICAL_SECTION();
25058 return result;
25059}
25060static int
25061__Pyx_CyFunction_set_doc(PyObject *op_in, PyObject *value, void *context)
25062{
25063 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25064 CYTHON_UNUSED_VAR(context);
25065 if (value == NULL) {
25066 value = Py_None;
25067 }
25068 Py_INCREF(value);
25069 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25070 __Pyx_Py_XDECREF_SET(op->func_doc, value);
25071 __Pyx_END_CRITICAL_SECTION();
25072 return 0;
25073}
25074static PyObject *
25075__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
25076{
25077 if (unlikely(op->func_name == NULL)) {
25078#if CYTHON_COMPILING_IN_LIMITED_API
25079 const char *name = op->func_methoddef->ml_name;
25080#else
25081 const char *name = ((PyCFunctionObject*)op)->m_ml->ml_name;
25082#endif
25083 op->func_name = PyUnicode_InternFromString(name);
25084 if (unlikely(op->func_name == NULL))
25085 return NULL;
25086 }
25087 Py_INCREF(op->func_name);
25088 return op->func_name;
25089}
25090static PyObject *
25091__Pyx_CyFunction_get_name(PyObject *op, void *context)
25092{
25093 PyObject *result = NULL;
25094 CYTHON_UNUSED_VAR(context);
25095 __Pyx_BEGIN_CRITICAL_SECTION(op);
25096 result = __Pyx_CyFunction_get_name_locked(__Pyx_as_CyFunctionObject(op));
25097 __Pyx_END_CRITICAL_SECTION();
25098 return result;
25099}
25100static int
25101__Pyx_CyFunction_set_name(PyObject *op_in, PyObject *value, void *context)
25102{
25103 CYTHON_UNUSED_VAR(context);
25104 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
25105 PyErr_SetString(PyExc_TypeError,
25106 "__name__ must be set to a string object");
25107 return -1;
25108 }
25109 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25110 Py_INCREF(value);
25111 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25112 __Pyx_Py_XDECREF_SET(op->func_name, value);
25113 __Pyx_END_CRITICAL_SECTION();
25114 return 0;
25115}
25116static PyObject *
25117__Pyx_CyFunction_get_qualname(PyObject *op_in, void *context)
25118{
25119 CYTHON_UNUSED_VAR(context);
25120 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25121 PyObject *result;
25122 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25123 Py_INCREF(op->func_qualname);
25124 result = op->func_qualname;
25125 __Pyx_END_CRITICAL_SECTION();
25126 return result;
25127}
25128static int
25129__Pyx_CyFunction_set_qualname(PyObject *op_in, PyObject *value, void *context)
25130{
25131 CYTHON_UNUSED_VAR(context);
25132 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
25133 PyErr_SetString(PyExc_TypeError,
25134 "__qualname__ must be set to a string object");
25135 return -1;
25136 }
25137 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25138 Py_INCREF(value);
25139 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25140 __Pyx_Py_XDECREF_SET(op->func_qualname, value);
25141 __Pyx_END_CRITICAL_SECTION();
25142 return 0;
25143}
25144#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
25145static PyObject *
25146__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
25147{
25148 CYTHON_UNUSED_VAR(context);
25149 if (unlikely(op->func_dict == NULL)) {
25150 op->func_dict = PyDict_New();
25151 if (unlikely(op->func_dict == NULL))
25152 return NULL;
25153 }
25154 Py_INCREF(op->func_dict);
25155 return op->func_dict;
25156}
25157#endif
25158static PyObject *
25159__Pyx_CyFunction_get_globals(PyObject *op_in, void *context)
25160{
25161 CYTHON_UNUSED_VAR(context);
25162 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25163 Py_INCREF(op->func_globals);
25164 return op->func_globals;
25165}
25166static PyObject *
25167__Pyx_CyFunction_get_closure(PyObject *op, void *context)
25168{
25169 CYTHON_UNUSED_VAR(op);
25170 CYTHON_UNUSED_VAR(context);
25171 Py_INCREF(Py_None);
25172 return Py_None;
25173}
25174static PyObject *
25175__Pyx_CyFunction_get_code(PyObject *op_in, void *context)
25176{
25177 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25178 PyObject* result = (op->func_code) ? op->func_code : Py_None;
25179 CYTHON_UNUSED_VAR(context);
25180 Py_INCREF(result);
25181 return result;
25182}
25183static int
25184__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op, PyObject *op_obj) {
25185 int result = 0;
25186 PyObject *res = op->defaults_getter(op_obj);
25187 if (unlikely(!res))
25188 return -1;
25189 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
25190 op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
25191 Py_INCREF(op->defaults_tuple);
25192 op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
25193 Py_INCREF(op->defaults_kwdict);
25194 #else
25195 op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
25196 if (unlikely(!op->defaults_tuple)) result = -1;
25197 else {
25198 op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
25199 if (unlikely(!op->defaults_kwdict)) result = -1;
25200 }
25201 #endif
25202 Py_DECREF(res);
25203 return result;
25204}
25205static int
25206__Pyx_CyFunction_set_defaults(PyObject *op_in, PyObject* value, void *context) {
25207 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25208 CYTHON_UNUSED_VAR(context);
25209 if (!value) {
25210 value = Py_None;
25211 } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
25212 PyErr_SetString(PyExc_TypeError,
25213 "__defaults__ must be set to a tuple object");
25214 return -1;
25215 }
25216 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
25217 "currently affect the values used in function calls", 1);
25218 Py_INCREF(value);
25219 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25220 __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
25221 __Pyx_END_CRITICAL_SECTION();
25222 return 0;
25223}
25224static PyObject *
25225__Pyx_CyFunction_get_defaults_locked(PyObject *op_in) {
25226 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25227 PyObject* result = op->defaults_tuple;
25228 if (unlikely(!result)) {
25229 if (op->defaults_getter) {
25230 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
25231 result = op->defaults_tuple;
25232 } else {
25233 result = Py_None;
25234 }
25235 }
25236 Py_INCREF(result);
25237 return result;
25238}
25239static PyObject *
25240__Pyx_CyFunction_get_defaults(PyObject *op, void *context) {
25241 PyObject* result = NULL;
25242 CYTHON_UNUSED_VAR(context);
25243 __Pyx_BEGIN_CRITICAL_SECTION(op);
25244 result = __Pyx_CyFunction_get_defaults_locked(op);
25245 __Pyx_END_CRITICAL_SECTION();
25246 return result;
25247}
25248static int
25249__Pyx_CyFunction_set_kwdefaults(PyObject *op_in, PyObject* value, void *context) {
25250 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25251 CYTHON_UNUSED_VAR(context);
25252 if (!value) {
25253 value = Py_None;
25254 } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
25255 PyErr_SetString(PyExc_TypeError,
25256 "__kwdefaults__ must be set to a dict object");
25257 return -1;
25258 }
25259 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
25260 "currently affect the values used in function calls", 1);
25261 Py_INCREF(value);
25262 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25263 __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
25264 __Pyx_END_CRITICAL_SECTION();
25265 return 0;
25266}
25267static PyObject *
25268__Pyx_CyFunction_get_kwdefaults_locked(PyObject *op_in) {
25269 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25270 PyObject* result = op->defaults_kwdict;
25271 if (unlikely(!result)) {
25272 if (op->defaults_getter) {
25273 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
25274 result = op->defaults_kwdict;
25275 } else {
25276 result = Py_None;
25277 }
25278 }
25279 Py_INCREF(result);
25280 return result;
25281}
25282static PyObject *
25283__Pyx_CyFunction_get_kwdefaults(PyObject *op, void *context) {
25284 PyObject* result;
25285 CYTHON_UNUSED_VAR(context);
25286 __Pyx_BEGIN_CRITICAL_SECTION(op);
25287 result = __Pyx_CyFunction_get_kwdefaults_locked(op);
25288 __Pyx_END_CRITICAL_SECTION();
25289 return result;
25290}
25291static int __Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value);
25292static int
25293__Pyx_CyFunction_set_annotations(PyObject *op_in, PyObject* value, void *context) {
25294 CYTHON_UNUSED_VAR(context);
25295 if (!value || value == Py_None) {
25296 value = NULL;
25297 } else if (unlikely(!PyDict_Check(value))) {
25298 PyErr_SetString(PyExc_TypeError,
25299 "__annotations__ must be set to a dict object");
25300 return -1;
25301 }
25302 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25303 Py_XINCREF(value);
25304 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25305 __Pyx_Py_XDECREF_SET(op->func_annotations, value);
25306 __Pyx_END_CRITICAL_SECTION();
25307 if (unlikely(__Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, Py_None) < 0)) return -1;
25308 return 0;
25309}
25310static int
25311__Pyx_CyFunction_get_dict_if_exists(PyObject *op_in, PyObject **dict) {
25312 /* Return 1 if the function dict exists, 0 otherwise. This cannot fail:
25313 * _PyObject_GetDictPtr() may clear errors internally, but never reports them. */
25314#if CYTHON_COMPILING_IN_PYPY
25315 *dict = PyObject_GenericGetDict(op_in, NULL);
25316#elif CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030C0000
25317 *dict = __Pyx_as_CyFunctionObject(op_in)->func_dict;
25318#else
25319 PyObject **dictptr = _PyObject_GetDictPtr(op_in);
25320 *dict = likely(dictptr) ? *dictptr : NULL;
25321#endif
25322 return *dict ? 1 : 0;
25323}
25324static int
25325__Pyx_CyFunction_get_annotate_from_dict_if_exists(PyObject *op_in, PyObject **annotate) {
25326 PyObject *dict;
25327 int dict_found;
25328 *annotate = NULL;
25329 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
25330 if (!dict_found) return 0;
25331 return __Pyx_PyDict_GetItemRef(dict, __pyx_mstate_global->__pyx_n_u_annotate, annotate);
25332}
25333static int
25334__Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value) {
25335 PyObject *dict;
25336 int dict_found;
25337 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
25338 if (!dict_found) return 0;
25339 if (value) {
25340 return PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
25341 } else {
25342#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
25343 return PyDict_Pop(dict, __pyx_mstate_global->__pyx_n_u_annotate, NULL);
25344#else
25345 int result = PyDict_Contains(dict, __pyx_mstate_global->__pyx_n_u_annotate);
25346 if (result == 1) {
25347 result = PyDict_DelItem(dict, __pyx_mstate_global->__pyx_n_u_annotate);
25348 }
25349 return result;
25350#endif
25351 }
25352}
25353static int
25354__Pyx_CyFunction_set_annotate_in_dict(PyObject *op_in, PyObject *value) {
25355 PyObject *dict;
25356 int result;
25357#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
25358 dict = __Pyx_CyFunction_get_dict(__Pyx_as_CyFunctionObject(op_in), NULL);
25359#else
25360 dict = PyObject_GenericGetDict(op_in, NULL);
25361#endif
25362 if (unlikely(!dict)) return -1;
25363 result = PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
25364 Py_DECREF(dict);
25365 return result;
25366}
25367static PyObject *
25368__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
25369 PyObject* result = op->func_annotations;
25370 if (unlikely(!result)) {
25371 result = PyDict_New();
25372 if (unlikely(!result)) return NULL;
25373 op->func_annotations = result;
25374 }
25375 Py_INCREF(result);
25376 return result;
25377}
25378static PyObject *
25379__Pyx_CyFunction_get_annotations(PyObject *op_in, void *context) {
25380 PyObject *annotate = NULL;
25381 PyObject *result = NULL;
25382 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25383 CYTHON_UNUSED_VAR(context);
25384 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25385 result = __Pyx_XNewRef(op->func_annotations);
25386 __Pyx_END_CRITICAL_SECTION();
25387 if (result) return result;
25388 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
25389 if (!annotate || annotate == Py_None) {
25390 Py_XDECREF(annotate);
25391 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25392 result = __Pyx_CyFunction_get_annotations_locked(op);
25393 __Pyx_END_CRITICAL_SECTION();
25394 return result;
25395 }
25396 PyObject *format = PyLong_FromLong(1L); // annotationlib.Format.VALUE
25397 if (likely(format)) {
25398 if (!Py_EnterRecursiveCall(" cyfunction __annotations__.__get__")) {
25399 result = __Pyx_PyObject_CallOneArg(annotate, format);
25400 Py_LeaveRecursiveCall();
25401 Py_DECREF(format);
25402 }
25403 }
25404 Py_DECREF(annotate);
25405 if (unlikely(!result)) return NULL;
25406 if (unlikely(!PyDict_Check(result))) {
25407 PyErr_SetString(PyExc_TypeError, "__annotate__ must return a dict");
25408 Py_DECREF(result);
25409 return NULL;
25410 }
25411 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25412 __Pyx_Py_XDECREF_SET(op->func_annotations, __Pyx_NewRef(result));
25413 __Pyx_END_CRITICAL_SECTION();
25414 return result;
25415}
25416static PyObject *__Pyx_CyFunction_annotate_impl(PyObject *self, PyObject *arg) {
25417 CYTHON_UNUSED_VAR(arg);
25418 if (unlikely(!self)) {
25419 PyErr_SetString(PyExc_SystemError, "cython __annotate__ called without 'self' argument");
25420 return NULL;
25421 }
25422 PyObject *result;
25423 if (Py_EnterRecursiveCall(" in cyfunction annotate")) {
25424 return NULL;
25425 }
25426 result = __Pyx_CyFunction_get_annotations(self, NULL);
25427 Py_LeaveRecursiveCall();
25428 return result;
25429}
25430static PyObject *
25431__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context);
25432static int
25433__Pyx_CyFunction_set_annotate(PyObject *op_in, PyObject* value, void *context) {
25434 CYTHON_UNUSED_VAR(context);
25435 if (value == NULL) {
25436 PyErr_SetString(PyExc_TypeError, "__annotate__ cannot be deleted");
25437 return -1;
25438 }
25439 if (unlikely(value != Py_None && !PyCallable_Check(value))) {
25440 PyErr_SetString(PyExc_TypeError, "__annotate__ must be callable or None");
25441 return -1;
25442 }
25443 if (unlikely(__Pyx_TypeCheck(value, &PyCFunction_Type))) {
25444#if !CYTHON_ASSUME_SAFE_MACROS && !CYTHON_COMPILING_IN_PYPY
25445 PyCFunction cfunction = PyCFunction_GetFunction(value);
25446 if (unlikely(!cfunction)) return -1;
25447 PyObject *value_self = PyCFunction_GetSelf(value);
25448 if (unlikely(!value_self && PyErr_Occurred())) return -1;
25449#else
25450 PyCFunction cfunction = PyCFunction_GET_FUNCTION(value);
25451 PyObject *value_self = PyCFunction_GET_SELF(value);
25452#endif
25453 if (cfunction == __Pyx_CyFunction_annotate_impl && value_self == op_in) {
25454 return __Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, NULL);
25455 }
25456 }
25457 if (value != Py_None) {
25458 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25459 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25460 Py_CLEAR(op->func_annotations);
25461 __Pyx_END_CRITICAL_SECTION();
25462 }
25463 return __Pyx_CyFunction_set_annotate_in_dict(op_in, value);
25464}
25465#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
25466static PyObject *
25467__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
25468 int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
25469 if (is_coroutine) {
25470 PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
25471 fromlist = PyList_New(1);
25472 if (unlikely(!fromlist)) return NULL;
25473 Py_INCREF(marker);
25474#if CYTHON_ASSUME_SAFE_MACROS
25475 PyList_SET_ITEM(fromlist, 0, marker);
25476#else
25477 if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
25478 Py_DECREF(fromlist);
25479 return NULL;
25480 }
25481#endif
25482 module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
25483 Py_DECREF(fromlist);
25484 if (unlikely(!module)) {
25485 goto ignore_or_error;
25486 }
25487 is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
25488 Py_DECREF(module);
25489 if (likely(is_coroutine_value)) {
25490 return is_coroutine_value;
25491 }
25492ignore_or_error:
25493 if (!__Pyx_IgnoreException(PyExc_Exception)) {
25494 return NULL;
25495 }
25496 }
25497 return __Pyx_PyBool_FromLong(is_coroutine);
25498}
25499static PyObject *
25500__Pyx_CyFunction_get_is_coroutine(PyObject *op_in, void *context) {
25501 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25502 PyObject *result;
25503 CYTHON_UNUSED_VAR(context);
25504 if (op->func_is_coroutine) {
25505 return __Pyx_NewRef(op->func_is_coroutine);
25506 }
25507 result = __Pyx_CyFunction_get_is_coroutine_value(op);
25508 if (unlikely(!result))
25509 return NULL;
25510 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25511 if (op->func_is_coroutine) {
25512 Py_DECREF(result);
25513 result = __Pyx_NewRef(op->func_is_coroutine);
25514 } else {
25515 op->func_is_coroutine = __Pyx_NewRef(result);
25516 }
25517 __Pyx_END_CRITICAL_SECTION();
25518 return result;
25519}
25520#endif
25521static void __Pyx_CyFunction_raise_argument_count_error(PyObject *func, const char* message, Py_ssize_t size) {
25522#if CYTHON_COMPILING_IN_LIMITED_API
25523 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
25524 if (!py_name) return;
25525 PyErr_Format(PyExc_TypeError,
25526 "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
25527 py_name, message, size);
25528 Py_DECREF(py_name);
25529#else
25530 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
25531 PyErr_Format(PyExc_TypeError,
25532 "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
25533 name, message, size);
25534#endif
25535}
25536static void __Pyx_CyFunction_raise_type_error(PyObject *func, const char* message) {
25537#if CYTHON_COMPILING_IN_LIMITED_API
25538 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
25539 if (!py_name) return;
25540 PyErr_Format(PyExc_TypeError,
25541 "%.200S() %s",
25542 py_name, message);
25543 Py_DECREF(py_name);
25544#else
25545 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
25546 PyErr_Format(PyExc_TypeError,
25547 "%.200s() %s",
25548 name, message);
25549#endif
25550}
25551#if CYTHON_COMPILING_IN_LIMITED_API
25552static PyObject *
25553__Pyx_CyFunction_get_module(PyObject *op_in, void *context) {
25554 CYTHON_UNUSED_VAR(context);
25555 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25556 Py_INCREF(op->func_module);
25557 return op->func_module;
25558}
25559static int
25560__Pyx_CyFunction_set_module(PyObject *op_in, PyObject* value, void *context) {
25561 CYTHON_UNUSED_VAR(context);
25562 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25563 if (value == NULL) {
25564 value = Py_None;
25565 }
25566 Py_INCREF(value);
25567 PyObject *old = op->func_module;
25568 op->func_module = value;
25569 Py_DECREF(old);
25570 return 0;
25571}
25572#endif
25573static PyGetSetDef __pyx_CyFunction_getsets[] = {
25574 {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
25575 {"__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
25576 {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
25577 {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
25578 {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
25579#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
25580 {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
25581 {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
25582#else
25583 {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
25584 {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
25585#endif
25586 {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
25587 {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
25588 {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
25589 {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
25590 {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
25591 {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
25592 {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
25593 {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
25594 {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
25595 {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
25596 {"__annotate__", (getter)__Pyx_CyFunction_get_annotate, (setter)__Pyx_CyFunction_set_annotate, 0, 0},
25597#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
25598 {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
25599#endif
25600#if CYTHON_COMPILING_IN_LIMITED_API
25601 {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
25602#endif
25603 {0, 0, 0, 0, 0}
25604};
25605static PyMemberDef __pyx_CyFunction_members[] = {
25606#if !CYTHON_COMPILING_IN_LIMITED_API
25607 {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
25608#endif
25609#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
25610 {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict),
25611 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
25612#endif
25613#if CYTHON_VECTORCALL
25614#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
25615 {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall),
25616 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
25617#else
25618 {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
25619#endif
25620#if CYTHON_COMPILING_IN_LIMITED_API
25621 {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist),
25622 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
25623#else
25624 {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
25625#endif
25626#endif
25627 {0, 0, 0, 0, 0}
25628};
25629static PyObject *
25630__Pyx_CyFunction_reduce(PyObject *m_in, PyObject *args)
25631{
25632 PyObject *result = NULL;
25633 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
25634 CYTHON_UNUSED_VAR(args);
25635 __Pyx_BEGIN_CRITICAL_SECTION(m_in);
25636 Py_INCREF(m->func_qualname);
25637 result = m->func_qualname;
25638 __Pyx_END_CRITICAL_SECTION();
25639 return result;
25640}
25641static PyMethodDef __pyx_CyFunction_methods[] = {
25642 {"__annotate_cython__", __Pyx_CyFunction_annotate_impl, METH_O,
25643 "Placeholder __annotate__ function to allow 'functools.wraps' to work "
25644 "on Cython functions."},
25645 {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_NOARGS, 0},
25646 {0, 0, 0, 0}
25647};
25648static PyObject *
25649__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context) {
25650 PyObject *annotate = NULL;
25651 CYTHON_UNUSED_VAR(context);
25652 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
25653 if (annotate) return annotate;
25654 PyObject *method = PyCFunction_New(
25655 &__pyx_CyFunction_methods[0],
25656 op_in);
25657 return method;
25658}
25659#if CYTHON_COMPILING_IN_LIMITED_API
25660#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
25661#else
25662#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
25663#endif
25664static PyObject *__Pyx_CyFunction_Init(PyObject *op_in,
25665 PyMethodDef *ml, int flags, PyObject* qualname,
25666 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
25667 __pyx_CyFunctionObject* op = __Pyx_as_CyFunctionObject(op_in);
25668#if !CYTHON_COMPILING_IN_LIMITED_API
25669 PyCFunctionObject *cf = (PyCFunctionObject*) op;
25670#endif
25671 if (unlikely(op == NULL))
25672 return NULL;
25673#if CYTHON_COMPILING_IN_LIMITED_API
25674 op->func_methoddef = ml;
25675 Py_INCREF(module);
25676 op->func_module = module;
25677#endif
25678 op->flags = flags;
25679 __Pyx_CyFunction_weakreflist(op) = NULL;
25680#if !CYTHON_COMPILING_IN_LIMITED_API
25681 cf->m_ml = ml;
25682 cf->m_self = (PyObject *) op;
25683#endif
25684 Py_XINCREF(closure);
25685 op->func_closure = closure;
25686#if !CYTHON_COMPILING_IN_LIMITED_API
25687 Py_XINCREF(module);
25688 cf->m_module = module;
25689#endif
25690#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
25691 op->func_dict = NULL;
25692#endif
25693 op->func_name = NULL;
25694 Py_INCREF(qualname);
25695 op->func_qualname = qualname;
25696 op->func_doc = NULL;
25697#if CYTHON_COMPILING_IN_LIMITED_API
25698 op->func_classobj = NULL;
25699#else
25700 ((PyCMethodObject*)op)->mm_class = NULL;
25701#endif
25702 op->func_globals = globals;
25703 Py_INCREF(op->func_globals);
25704 Py_XINCREF(code);
25705 op->func_code = code;
25706 op->defaults = NULL;
25707 op->defaults_tuple = NULL;
25708 op->defaults_kwdict = NULL;
25709 op->defaults_getter = NULL;
25710 op->func_annotations = NULL;
25711#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
25712 op->func_is_coroutine = NULL;
25713#endif
25714#if CYTHON_VECTORCALL
25715 switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
25716 case METH_NOARGS:
25717 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
25718 break;
25719 case METH_O:
25720 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
25721 break;
25722 case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
25723 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
25724 break;
25725 case METH_FASTCALL | METH_KEYWORDS:
25726 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
25727 break;
25728 case METH_VARARGS | METH_KEYWORDS:
25729 __Pyx_CyFunction_func_vectorcall(op) = NULL;
25730 break;
25731 default:
25732 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
25733 Py_DECREF(op_in);
25734 return NULL;
25735 }
25736#endif
25737 return op_in;
25738}
25739static int __Pyx__CyFunction_clear(__pyx_CyFunctionObject *m)
25740{
25741 Py_CLEAR(m->func_closure);
25742#if CYTHON_COMPILING_IN_LIMITED_API
25743 Py_CLEAR(m->func_module);
25744#else
25745 Py_CLEAR(((PyCFunctionObject*)m)->m_module);
25746#endif
25747#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
25748 Py_CLEAR(m->func_dict);
25749#elif PY_VERSION_HEX < 0x030d0000
25750 _PyObject_ClearManagedDict((PyObject*)m);
25751#else
25752 PyObject_ClearManagedDict((PyObject*)m);
25753#endif
25754 Py_CLEAR(m->func_name);
25755 Py_CLEAR(m->func_qualname);
25756 Py_CLEAR(m->func_doc);
25757 Py_CLEAR(m->func_globals);
25758 Py_CLEAR(m->func_code);
25759#if CYTHON_COMPILING_IN_LIMITED_API
25760 Py_CLEAR(m->func_classobj);
25761#else
25762 {
25763 PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
25764 ((PyCMethodObject *) (m))->mm_class = NULL;
25765 Py_XDECREF(cls);
25766 }
25767#endif
25768 Py_CLEAR(m->defaults_tuple);
25769 Py_CLEAR(m->defaults_kwdict);
25770 Py_CLEAR(m->func_annotations);
25771#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
25772 Py_CLEAR(m->func_is_coroutine);
25773#endif
25774 Py_CLEAR(m->defaults);
25775 return 0;
25776}
25777static int
25778__Pyx_CyFunction_clear(PyObject *m)
25779{
25780 return __Pyx__CyFunction_clear(__Pyx_as_CyFunctionObject(m));
25781}
25782static void __Pyx__CyFunction_dealloc(PyObject *m)
25783{
25784 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(m);
25785 if (__Pyx_CyFunction_weakreflist(cyfunc) != NULL)
25786 PyObject_ClearWeakRefs(m);
25787 __Pyx__CyFunction_clear(cyfunc);
25788 __Pyx_PyHeapTypeObject_GC_Del(m);
25789}
25790static void __Pyx_CyFunction_dealloc(PyObject *m)
25791{
25792 PyObject_GC_UnTrack(m);
25793 __Pyx__CyFunction_dealloc(m);
25794}
25795static int __Pyx_CyFunction_traverse(PyObject *m_in, visitproc visit, void *arg)
25796{
25797 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
25798 {
25799 int e = __Pyx_call_type_traverse(m_in, 1, visit, arg);
25800 if (e) return e;
25801 }
25802 Py_VISIT(m->func_closure);
25803#if CYTHON_COMPILING_IN_LIMITED_API
25804 Py_VISIT(m->func_module);
25805#else
25806 Py_VISIT(((PyCFunctionObject*)m)->m_module);
25807#endif
25808#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
25809 Py_VISIT(m->func_dict);
25810#else
25811 {
25812 int e =
25813#if PY_VERSION_HEX < 0x030d0000
25814 _PyObject_VisitManagedDict
25815#else
25816 PyObject_VisitManagedDict
25817#endif
25818 ((PyObject*)m, visit, arg);
25819 if (e != 0) return e;
25820 }
25821#endif
25822 __Pyx_VISIT_CONST(m->func_name);
25823 __Pyx_VISIT_CONST(m->func_qualname);
25824 Py_VISIT(m->func_doc);
25825 Py_VISIT(m->func_globals);
25826 __Pyx_VISIT_CONST(m->func_code);
25827 Py_VISIT(__Pyx__CyFunction_GetClassObj(m));
25828 Py_VISIT(m->defaults_tuple);
25829 Py_VISIT(m->defaults_kwdict);
25830 Py_VISIT(m->func_annotations);
25831#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
25832 Py_VISIT(m->func_is_coroutine);
25833#endif
25834 Py_VISIT(m->defaults);
25835 return 0;
25836}
25837static PyObject*
25838__Pyx_CyFunction_repr(PyObject *op_in)
25839{
25840 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
25841 PyObject *repr;
25842 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
25843 repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
25844 op->func_qualname, (void *)op);
25845 __Pyx_END_CRITICAL_SECTION();
25846 return repr;
25847}
25848static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
25849#if CYTHON_COMPILING_IN_LIMITED_API
25850 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
25851 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
25852 int flags = cyfunc->func_methoddef->ml_flags;
25853#else
25854 PyCFunctionObject* f = (PyCFunctionObject*)func;
25855 PyCFunction meth = f->m_ml->ml_meth;
25856 int flags = f->m_ml->ml_flags;
25857#endif
25858 Py_ssize_t size;
25859 switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
25860 case METH_VARARGS:
25861 if (likely(kw == NULL || PyDict_Size(kw) == 0))
25862 return (*meth)(self, arg);
25863 break;
25864 case METH_VARARGS | METH_KEYWORDS:
25865 return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
25866 case METH_NOARGS:
25867 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
25868#if CYTHON_ASSUME_SAFE_SIZE
25869 size = PyTuple_GET_SIZE(arg);
25870#else
25871 size = PyTuple_Size(arg);
25872 if (unlikely(size < 0)) return NULL;
25873#endif
25874 if (likely(size == 0))
25875 return (*meth)(self, NULL);
25876 __Pyx_CyFunction_raise_argument_count_error(
25877 func,
25878 "takes no arguments", size);
25879 return NULL;
25880 }
25881 break;
25882 case METH_O:
25883 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
25884#if CYTHON_ASSUME_SAFE_SIZE
25885 size = PyTuple_GET_SIZE(arg);
25886#else
25887 size = PyTuple_Size(arg);
25888 if (unlikely(size < 0)) return NULL;
25889#endif
25890 if (likely(size == 1)) {
25891 PyObject *result, *arg0;
25892 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
25893 arg0 = PyTuple_GET_ITEM(arg, 0);
25894 #else
25895 arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
25896 #endif
25897 result = (*meth)(self, arg0);
25898 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
25899 Py_DECREF(arg0);
25900 #endif
25901 return result;
25902 }
25903 __Pyx_CyFunction_raise_argument_count_error(
25904 func,
25905 "takes exactly one argument", size);
25906 return NULL;
25907 }
25908 break;
25909 default:
25910 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
25911 return NULL;
25912 }
25913 __Pyx_CyFunction_raise_type_error(
25914 func, "takes no keyword arguments");
25915 return NULL;
25916}
25917static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
25918 PyObject *result;
25919 result = __Pyx_CyFunction_CallMethod(func, func, arg, kw);
25920 return result;
25921}
25922static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
25923 PyObject *result;
25924 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
25925#if CYTHON_VECTORCALL
25926 __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
25927 if (vc) {
25928#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
25929 return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
25930#else
25931 (void) &__Pyx_PyVectorcall_FastCallDict;
25932 return PyVectorcall_Call(func, args, kw);
25933#endif
25934 }
25935#endif
25936 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
25937 Py_ssize_t argc;
25938 PyObject *new_args;
25939 PyObject *self;
25940#if CYTHON_ASSUME_SAFE_SIZE
25941 argc = PyTuple_GET_SIZE(args);
25942#else
25943 argc = PyTuple_Size(args);
25944 if (unlikely(argc < 0)) return NULL;
25945#endif
25946 new_args = PyTuple_GetSlice(args, 1, argc);
25947 if (unlikely(!new_args))
25948 return NULL;
25949 self = PyTuple_GetItem(args, 0);
25950 if (unlikely(!self)) {
25951 Py_DECREF(new_args);
25952 PyErr_Format(PyExc_TypeError,
25953 "unbound method %.200S() needs an argument",
25954 cyfunc->func_qualname);
25955 return NULL;
25956 }
25957 result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
25958 Py_DECREF(new_args);
25959 } else {
25960 result = __Pyx_CyFunction_Call(func, args, kw);
25961 }
25962 return result;
25963}
25964#if CYTHON_VECTORCALL
25965static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(PyObject *func, __pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
25966{
25967 int ret = 0;
25968 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
25969 if (unlikely(nargs < 1)) {
25970 __Pyx_CyFunction_raise_type_error(
25971 func, "needs an argument");
25972 return -1;
25973 }
25974 ret = 1;
25975 }
25976 if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
25977 __Pyx_CyFunction_raise_type_error(
25978 func, "takes no keyword arguments");
25979 return -1;
25980 }
25981 return ret;
25982}
25983static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
25984{
25985 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
25986 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
25987 PyObject *self;
25988#if CYTHON_COMPILING_IN_LIMITED_API
25989 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
25990 if (unlikely(!meth)) return NULL;
25991#else
25992 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
25993#endif
25994 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
25995 case 1:
25996 self = args[0];
25997 args += 1;
25998 nargs -= 1;
25999 break;
26000 case 0:
26001 self = func;
26002 break;
26003 default:
26004 return NULL;
26005 }
26006 if (unlikely(nargs != 0)) {
26007 __Pyx_CyFunction_raise_argument_count_error(
26008 func, "takes no arguments", nargs);
26009 return NULL;
26010 }
26011 return meth(self, NULL);
26012}
26013static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
26014{
26015 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
26016 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
26017 PyObject *self;
26018#if CYTHON_COMPILING_IN_LIMITED_API
26019 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
26020 if (unlikely(!meth)) return NULL;
26021#else
26022 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
26023#endif
26024 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
26025 case 1:
26026 self = args[0];
26027 args += 1;
26028 nargs -= 1;
26029 break;
26030 case 0:
26031 self = func;
26032 break;
26033 default:
26034 return NULL;
26035 }
26036 if (unlikely(nargs != 1)) {
26037 __Pyx_CyFunction_raise_argument_count_error(
26038 func, "takes exactly one argument", nargs);
26039 return NULL;
26040 }
26041 return meth(self, args[0]);
26042}
26043static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
26044{
26045 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
26046 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
26047 PyObject *self;
26048#if CYTHON_COMPILING_IN_LIMITED_API
26049 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
26050 if (unlikely(!meth)) return NULL;
26051#else
26052 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
26053#endif
26054 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
26055 case 1:
26056 self = args[0];
26057 args += 1;
26058 nargs -= 1;
26059 break;
26060 case 0:
26061 self = func;
26062 break;
26063 default:
26064 return NULL;
26065 }
26066 return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
26067}
26068static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
26069{
26070 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
26071 PyTypeObject *cls = (PyTypeObject *) __Pyx__CyFunction_GetClassObj(cyfunc);
26072 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
26073 PyObject *self;
26074#if CYTHON_COMPILING_IN_LIMITED_API
26075 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
26076 if (unlikely(!meth)) return NULL;
26077#else
26078 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
26079#endif
26080 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
26081 case 1:
26082 self = args[0];
26083 args += 1;
26084 nargs -= 1;
26085 break;
26086 case 0:
26087 self = func;
26088 break;
26089 default:
26090 return NULL;
26091 }
26092 #if PY_VERSION_HEX < 0x030e00A6
26093 size_t nargs_value = (size_t) nargs;
26094 #else
26095 Py_ssize_t nargs_value = nargs;
26096 #endif
26097 return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
26098}
26099#endif
26100static PyType_Slot __pyx_CyFunctionType_slots[] = {
26101 {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
26102 {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
26103 {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
26104 {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
26105 {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
26106 {Py_tp_methods, (void *)__pyx_CyFunction_methods},
26107 {Py_tp_members, (void *)__pyx_CyFunction_members},
26108 {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
26109 {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
26110 {0, 0},
26111};
26112static PyType_Spec __pyx_CyFunctionType_spec = {
26113 __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
26114 __PYX_SHARED_SIZEOF(__pyx_CyFunctionObject),
26115 0,
26116#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
26117 Py_TPFLAGS_METHOD_DESCRIPTOR |
26118#endif
26119#if CYTHON_VECTORCALL
26120#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
26121 Py_TPFLAGS_HAVE_VECTORCALL |
26122#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
26123 _Py_TPFLAGS_HAVE_VECTORCALL |
26124#endif
26125#endif // CYTHON_VECTORCALL
26126#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
26127 Py_TPFLAGS_MANAGED_DICT |
26128#endif
26129 Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
26130 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
26131 __pyx_CyFunctionType_slots
26132};
26133static int __pyx_CyFunction_init(PyObject *module) {
26134 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
26135 mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
26136 mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
26137 if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
26138 return -1;
26139 }
26140 return 0;
26141}
26142
26143/* CythonFunction */
26144static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
26145 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
26146 (void)&__Pyx_Get_CyFunction_Type;
26147 PyObject *op = __Pyx_CyFunction_Init(
26148 PyObject_GC_New(PyObject, __pyx_mstate_global->__pyx_CyFunctionType),
26149 ml, flags, qualname, closure, module, globals, code
26150 );
26151 if (likely(op)) {
26152 PyObject_GC_Track(op);
26153 }
26154 return op;
26155}
26156static PyTypeObject *__Pyx_Get_CyFunction_Type(void) {
26157 PyTypeObject *tp = __pyx_mstate_global->__pyx_CyFunctionType;
26158 Py_INCREF((PyObject*)tp);
26159 return tp;
26160}
26161
26162/* PyDictVersioning (used by CLineInTraceback) */
26163#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
26164static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
26165 PyObject *dict = Py_TYPE(obj)->tp_dict;
26166 return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
26167}
26168static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
26169 PyObject **dictptr = NULL;
26170 Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
26171 if (offset) {
26172#if CYTHON_COMPILING_IN_CPYTHON
26173 dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
26174#else
26175 dictptr = _PyObject_GetDictPtr(obj);
26176#endif
26177 }
26178 return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
26179}
26180static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
26181 PyObject *dict = Py_TYPE(obj)->tp_dict;
26182 if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
26183 return 0;
26184 return obj_dict_version == __Pyx_get_object_dict_version(obj);
26185}
26186#endif
26187
26188/* CLineInTraceback (used by AddTraceback) */
26189#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
26190#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
26191#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
26192#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
26193#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
26194#else
26195PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
26196 PyObject **dict_ptr = _PyObject_GetDictPtr(o);
26197 return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
26198}
26199#endif
26200static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
26201 PyObject *use_cline = NULL;
26202 PyObject *ptype, *pvalue, *ptraceback;
26203 PyObject *cython_runtime_dict;
26204 CYTHON_MAYBE_UNUSED_VAR(tstate);
26205 if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
26206 return c_line;
26207 }
26208 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
26209 cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
26210 if (likely(cython_runtime_dict)) {
26211 __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
26212 use_cline, cython_runtime_dict,
26213 __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
26214 }
26215 if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
26216 c_line = 0;
26217 }
26218 Py_XDECREF(use_cline);
26219 Py_XDECREF(cython_runtime_dict);
26220 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
26221 return c_line;
26222}
26223#endif
26224
26225/* CodeObjectCache (used by AddTraceback) */
26226static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
26227 int start = 0, mid = 0, end = count - 1;
26228 if (end >= 0 && code_line > entries[end].code_line) {
26229 return count;
26230 }
26231 while (start < end) {
26232 mid = start + (end - start) / 2;
26233 if (code_line < entries[mid].code_line) {
26234 end = mid;
26235 } else if (code_line > entries[mid].code_line) {
26236 start = mid + 1;
26237 } else {
26238 return mid;
26239 }
26240 }
26241 if (code_line <= entries[mid].code_line) {
26242 return mid;
26243 } else {
26244 return mid + 1;
26245 }
26246}
26247static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
26248 __Pyx_CachedCodeObjectType* code_object;
26249 int pos;
26250 if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
26251 return NULL;
26252 }
26253 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
26254 if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
26255 return NULL;
26256 }
26257 code_object = code_cache->entries[pos].code_object;
26258 Py_INCREF(code_object);
26259 return code_object;
26260}
26261static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
26262#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
26263 (void)__pyx__find_code_object;
26264 return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
26265#else
26266 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
26267#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
26268 __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
26269 if (old_count < 0) {
26270 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
26271 return NULL;
26272 }
26273#endif
26274 __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
26275#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
26276 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
26277#endif
26278 return result;
26279#endif
26280}
26281static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
26282{
26283 int pos, i;
26284 __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
26285 if (unlikely(!code_line)) {
26286 return;
26287 }
26288 if (unlikely(!entries)) {
26289 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
26290 if (likely(entries)) {
26291 code_cache->entries = entries;
26292 code_cache->max_count = 64;
26293 code_cache->count = 1;
26294 entries[0].code_line = code_line;
26295 entries[0].code_object = code_object;
26296 Py_INCREF(code_object);
26297 }
26298 return;
26299 }
26300 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
26301 if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
26302 __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
26303 entries[pos].code_object = code_object;
26304 Py_INCREF(code_object);
26305 Py_DECREF(tmp);
26306 return;
26307 }
26308 if (code_cache->count == code_cache->max_count) {
26309 int new_max = code_cache->max_count + 64;
26310 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
26311 code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
26312 if (unlikely(!entries)) {
26313 return;
26314 }
26315 code_cache->entries = entries;
26316 code_cache->max_count = new_max;
26317 }
26318 for (i=code_cache->count; i>pos; i--) {
26319 entries[i] = entries[i-1];
26320 }
26321 entries[pos].code_line = code_line;
26322 entries[pos].code_object = code_object;
26323 code_cache->count++;
26324 Py_INCREF(code_object);
26325}
26326static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
26327#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
26328 (void)__pyx__insert_code_object;
26329 return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
26330#else
26331 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
26332#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
26333 __pyx_nonatomic_int_type expected = 0;
26334 if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
26335 return;
26336 }
26337#endif
26338 __pyx__insert_code_object(code_cache, code_line, code_object);
26339#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
26340 __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
26341#endif
26342#endif
26343}
26344
26345/* AddTraceback */
26346#include "compile.h"
26347#include "frameobject.h"
26348#include "traceback.h"
26349#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
26350 #ifndef Py_BUILD_CORE
26351 #define Py_BUILD_CORE 1
26352 #endif
26353 #include "internal/pycore_frame.h"
26354#endif
26355#if CYTHON_COMPILING_IN_LIMITED_API
26356static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
26357 PyObject *firstlineno, PyObject *name) {
26358 PyObject *replace = NULL;
26359 if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
26360 if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
26361 replace = PyObject_GetAttrString(code, "replace");
26362 if (likely(replace)) {
26363 PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
26364 Py_DECREF(replace);
26365 return result;
26366 }
26367 return NULL;
26368}
26369static void __Pyx_AddTraceback(const char *funcname, int c_line,
26370 int py_line, const char *filename) {
26371 PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
26372 PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
26373 PyObject *exc_type, *exc_value, *exc_traceback;
26374 int success = 0;
26375 if (c_line) {
26376 c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
26377 }
26378 __Pyx_PyErr_FetchException(&exc_type, &exc_value, &exc_traceback);
26379 code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
26380 if (!code_object) {
26381 code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
26382 if (unlikely(!code_object)) goto bad;
26383 py_py_line = PyLong_FromLong(py_line);
26384 if (unlikely(!py_py_line)) goto bad;
26385 if (c_line) {
26386 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
26387 } else {
26388 py_funcname = PyUnicode_FromString(funcname);
26389 }
26390 if (unlikely(!py_funcname)) goto bad;
26391 dict = PyDict_New();
26392 if (unlikely(!dict)) goto bad;
26393 {
26394 PyObject *old_code_object = code_object;
26395 code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
26396 Py_DECREF(old_code_object);
26397 }
26398 if (unlikely(!code_object)) goto bad;
26399 __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
26400 } else {
26401 dict = PyDict_New();
26402 }
26403 getframe = PySys_GetObject("_getframe");
26404 if (unlikely(!getframe)) goto bad;
26405 if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
26406 frame = PyEval_EvalCode(code_object, dict, dict);
26407 if (unlikely(!frame) || frame == Py_None) goto bad;
26408 success = 1;
26409 bad:
26410 __Pyx_PyErr_RestoreException(exc_type, exc_value, exc_traceback);
26411 Py_XDECREF(code_object);
26412 Py_XDECREF(py_py_line);
26413 Py_XDECREF(py_funcname);
26414 Py_XDECREF(dict);
26415 Py_XDECREF(replace);
26416 if (success) {
26417 PyTraceBack_Here(
26418 (struct _frame*)frame);
26419 }
26420 Py_XDECREF(frame);
26421}
26422#else
26423static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
26424 const char *funcname, int c_line,
26425 int py_line, const char *filename) {
26426 PyCodeObject *py_code = NULL;
26427 PyObject *py_funcname = NULL;
26428 if (c_line) {
26429 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
26430 if (!py_funcname) goto bad;
26431 funcname = PyUnicode_AsUTF8(py_funcname);
26432 if (!funcname) goto bad;
26433 }
26434 py_code = PyCode_NewEmpty(filename, funcname, py_line);
26435 Py_XDECREF(py_funcname);
26436 return py_code;
26437bad:
26438 Py_XDECREF(py_funcname);
26439 return NULL;
26440}
26441static void __Pyx_AddTraceback(const char *funcname, int c_line,
26442 int py_line, const char *filename) {
26443 PyCodeObject *py_code = 0;
26444 PyFrameObject *py_frame = 0;
26445 PyThreadState *tstate = __Pyx_PyThreadState_Current;
26446 PyObject *ptype, *pvalue, *ptraceback;
26447 if (c_line) {
26448 c_line = __Pyx_CLineForTraceback(tstate, c_line);
26449 }
26450 py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
26451 if (!py_code) {
26452 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
26453 py_code = __Pyx_CreateCodeObjectForTraceback(
26454 funcname, c_line, py_line, filename);
26455 if (!py_code) {
26456 /* If the code object creation fails, then we should clear the
26457 fetched exception references and propagate the new exception */
26458 Py_XDECREF(ptype);
26459 Py_XDECREF(pvalue);
26460 Py_XDECREF(ptraceback);
26461 goto bad;
26462 }
26463 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
26464 __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
26465 }
26466 py_frame = PyFrame_New(
26467 tstate, /*PyThreadState *tstate,*/
26468 py_code, /*PyCodeObject *code,*/
26469 __pyx_mstate_global->__pyx_d, /*PyObject *globals,*/
26470 0 /*PyObject *locals*/
26471 );
26472 if (!py_frame) goto bad;
26473 __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
26474 PyTraceBack_Here(py_frame);
26475bad:
26476 Py_XDECREF(py_code);
26477 Py_XDECREF(py_frame);
26478}
26479#endif
26480
26481/* CIntFromPyVerify */
26482#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
26483 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
26484#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
26485 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
26486#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
26487 {\
26488 func_type value = func_value;\
26489 if (sizeof(target_type) < sizeof(func_type)) {\
26490 if (unlikely(value != (func_type) (target_type) value)) {\
26491 func_type zero = 0;\
26492 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
26493 return (target_type) -1;\
26494 if (is_unsigned && unlikely(value < zero))\
26495 goto raise_neg_overflow;\
26496 else\
26497 goto raise_overflow;\
26498 }\
26499 }\
26500 return (target_type) value;\
26501 }
26502
26503/* Declarations */
26504#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26505 #ifdef __cplusplus
26506 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
26507 return ::std::complex< float >(x, y);
26508 }
26509 #else
26510 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
26511 return x + y*(__pyx_t_float_complex)_Complex_I;
26512 }
26513 #endif
26514#else
26515 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
26516 __pyx_t_float_complex z;
26517 z.real = x;
26518 z.imag = y;
26519 return z;
26520 }
26521#endif
26522
26523/* Arithmetic */
26524#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26525#else
26526 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26527 return (a.real == b.real) && (a.imag == b.imag);
26528 }
26529 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26530 __pyx_t_float_complex z;
26531 z.real = a.real + b.real;
26532 z.imag = a.imag + b.imag;
26533 return z;
26534 }
26535 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26536 __pyx_t_float_complex z;
26537 z.real = a.real - b.real;
26538 z.imag = a.imag - b.imag;
26539 return z;
26540 }
26541 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26542 __pyx_t_float_complex z;
26543 z.real = a.real * b.real - a.imag * b.imag;
26544 z.imag = a.real * b.imag + a.imag * b.real;
26545 return z;
26546 }
26547 #if 1
26548 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26549 if (b.imag == 0) {
26550 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
26551 } else if (fabsf(b.real) >= fabsf(b.imag)) {
26552 if (b.real == 0 && b.imag == 0) {
26553 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
26554 } else {
26555 float r = b.imag / b.real;
26556 float s = (float)(1.0) / (b.real + b.imag * r);
26557 return __pyx_t_float_complex_from_parts(
26558 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
26559 }
26560 } else {
26561 float r = b.real / b.imag;
26562 float s = (float)(1.0) / (b.imag + b.real * r);
26563 return __pyx_t_float_complex_from_parts(
26564 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
26565 }
26566 }
26567 #else
26568 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26569 if (b.imag == 0) {
26570 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
26571 } else {
26572 float denom = b.real * b.real + b.imag * b.imag;
26573 return __pyx_t_float_complex_from_parts(
26574 (a.real * b.real + a.imag * b.imag) / denom,
26575 (a.imag * b.real - a.real * b.imag) / denom);
26576 }
26577 }
26578 #endif
26579 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
26580 __pyx_t_float_complex z;
26581 z.real = -a.real;
26582 z.imag = -a.imag;
26583 return z;
26584 }
26585 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
26586 return (a.real == 0) && (a.imag == 0);
26587 }
26588 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
26589 __pyx_t_float_complex z;
26590 z.real = a.real;
26591 z.imag = -a.imag;
26592 return z;
26593 }
26594 #if 1
26595 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
26596 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
26597 return sqrtf(z.real*z.real + z.imag*z.imag);
26598 #else
26599 return hypotf(z.real, z.imag);
26600 #endif
26601 }
26602 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
26603 __pyx_t_float_complex z;
26604 float r, lnr, theta, z_r, z_theta;
26605 if (b.imag == 0 && b.real == (int)b.real) {
26606 if (b.real < 0) {
26607 float denom = a.real * a.real + a.imag * a.imag;
26608 a.real = a.real / denom;
26609 a.imag = -a.imag / denom;
26610 b.real = -b.real;
26611 }
26612 switch ((int)b.real) {
26613 case 0:
26614 z.real = 1;
26615 z.imag = 0;
26616 return z;
26617 case 1:
26618 return a;
26619 case 2:
26620 return __Pyx_c_prod_float(a, a);
26621 case 3:
26622 z = __Pyx_c_prod_float(a, a);
26623 return __Pyx_c_prod_float(z, a);
26624 case 4:
26625 z = __Pyx_c_prod_float(a, a);
26626 return __Pyx_c_prod_float(z, z);
26627 }
26628 }
26629 if (a.imag == 0) {
26630 if (a.real == 0) {
26631 return a;
26632 } else if ((b.imag == 0) && (a.real >= 0)) {
26633 z.real = powf(a.real, b.real);
26634 z.imag = 0;
26635 return z;
26636 } else if (a.real > 0) {
26637 r = a.real;
26638 theta = 0;
26639 } else {
26640 r = -a.real;
26641 theta = atan2f(0.0, -1.0);
26642 }
26643 } else {
26644 r = __Pyx_c_abs_float(a);
26645 theta = atan2f(a.imag, a.real);
26646 }
26647 lnr = logf(r);
26648 z_r = expf(lnr * b.real - theta * b.imag);
26649 z_theta = theta * b.real + lnr * b.imag;
26650 z.real = z_r * cosf(z_theta);
26651 z.imag = z_r * sinf(z_theta);
26652 return z;
26653 }
26654 #endif
26655#endif
26656
26657/* Declarations */
26658#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26659 #ifdef __cplusplus
26660 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
26661 return ::std::complex< double >(x, y);
26662 }
26663 #else
26664 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
26665 return x + y*(__pyx_t_double_complex)_Complex_I;
26666 }
26667 #endif
26668#else
26669 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
26670 __pyx_t_double_complex z;
26671 z.real = x;
26672 z.imag = y;
26673 return z;
26674 }
26675#endif
26676
26677/* Arithmetic */
26678#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26679#else
26680 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26681 return (a.real == b.real) && (a.imag == b.imag);
26682 }
26683 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26684 __pyx_t_double_complex z;
26685 z.real = a.real + b.real;
26686 z.imag = a.imag + b.imag;
26687 return z;
26688 }
26689 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26690 __pyx_t_double_complex z;
26691 z.real = a.real - b.real;
26692 z.imag = a.imag - b.imag;
26693 return z;
26694 }
26695 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26696 __pyx_t_double_complex z;
26697 z.real = a.real * b.real - a.imag * b.imag;
26698 z.imag = a.real * b.imag + a.imag * b.real;
26699 return z;
26700 }
26701 #if 1
26702 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26703 if (b.imag == 0) {
26704 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
26705 } else if (fabs(b.real) >= fabs(b.imag)) {
26706 if (b.real == 0 && b.imag == 0) {
26707 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
26708 } else {
26709 double r = b.imag / b.real;
26710 double s = (double)(1.0) / (b.real + b.imag * r);
26711 return __pyx_t_double_complex_from_parts(
26712 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
26713 }
26714 } else {
26715 double r = b.real / b.imag;
26716 double s = (double)(1.0) / (b.imag + b.real * r);
26717 return __pyx_t_double_complex_from_parts(
26718 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
26719 }
26720 }
26721 #else
26722 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26723 if (b.imag == 0) {
26724 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
26725 } else {
26726 double denom = b.real * b.real + b.imag * b.imag;
26727 return __pyx_t_double_complex_from_parts(
26728 (a.real * b.real + a.imag * b.imag) / denom,
26729 (a.imag * b.real - a.real * b.imag) / denom);
26730 }
26731 }
26732 #endif
26733 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
26734 __pyx_t_double_complex z;
26735 z.real = -a.real;
26736 z.imag = -a.imag;
26737 return z;
26738 }
26739 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
26740 return (a.real == 0) && (a.imag == 0);
26741 }
26742 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
26743 __pyx_t_double_complex z;
26744 z.real = a.real;
26745 z.imag = -a.imag;
26746 return z;
26747 }
26748 #if 1
26749 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
26750 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
26751 return sqrt(z.real*z.real + z.imag*z.imag);
26752 #else
26753 return hypot(z.real, z.imag);
26754 #endif
26755 }
26756 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
26757 __pyx_t_double_complex z;
26758 double r, lnr, theta, z_r, z_theta;
26759 if (b.imag == 0 && b.real == (int)b.real) {
26760 if (b.real < 0) {
26761 double denom = a.real * a.real + a.imag * a.imag;
26762 a.real = a.real / denom;
26763 a.imag = -a.imag / denom;
26764 b.real = -b.real;
26765 }
26766 switch ((int)b.real) {
26767 case 0:
26768 z.real = 1;
26769 z.imag = 0;
26770 return z;
26771 case 1:
26772 return a;
26773 case 2:
26774 return __Pyx_c_prod_double(a, a);
26775 case 3:
26776 z = __Pyx_c_prod_double(a, a);
26777 return __Pyx_c_prod_double(z, a);
26778 case 4:
26779 z = __Pyx_c_prod_double(a, a);
26780 return __Pyx_c_prod_double(z, z);
26781 }
26782 }
26783 if (a.imag == 0) {
26784 if (a.real == 0) {
26785 return a;
26786 } else if ((b.imag == 0) && (a.real >= 0)) {
26787 z.real = pow(a.real, b.real);
26788 z.imag = 0;
26789 return z;
26790 } else if (a.real > 0) {
26791 r = a.real;
26792 theta = 0;
26793 } else {
26794 r = -a.real;
26795 theta = atan2(0.0, -1.0);
26796 }
26797 } else {
26798 r = __Pyx_c_abs_double(a);
26799 theta = atan2(a.imag, a.real);
26800 }
26801 lnr = log(r);
26802 z_r = exp(lnr * b.real - theta * b.imag);
26803 z_theta = theta * b.real + lnr * b.imag;
26804 z.real = z_r * cos(z_theta);
26805 z.imag = z_r * sin(z_theta);
26806 return z;
26807 }
26808 #endif
26809#endif
26810
26811/* Declarations */
26812#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26813 #ifdef __cplusplus
26814 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
26815 return ::std::complex< long double >(x, y);
26816 }
26817 #else
26818 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
26819 return x + y*(__pyx_t_long_double_complex)_Complex_I;
26820 }
26821 #endif
26822#else
26823 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
26824 __pyx_t_long_double_complex z;
26825 z.real = x;
26826 z.imag = y;
26827 return z;
26828 }
26829#endif
26830
26831/* Arithmetic */
26832#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
26833#else
26834 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26835 return (a.real == b.real) && (a.imag == b.imag);
26836 }
26837 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26838 __pyx_t_long_double_complex z;
26839 z.real = a.real + b.real;
26840 z.imag = a.imag + b.imag;
26841 return z;
26842 }
26843 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26844 __pyx_t_long_double_complex z;
26845 z.real = a.real - b.real;
26846 z.imag = a.imag - b.imag;
26847 return z;
26848 }
26849 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26850 __pyx_t_long_double_complex z;
26851 z.real = a.real * b.real - a.imag * b.imag;
26852 z.imag = a.real * b.imag + a.imag * b.real;
26853 return z;
26854 }
26855 #if 1
26856 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26857 if (b.imag == 0) {
26858 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
26859 } else if (fabsl(b.real) >= fabsl(b.imag)) {
26860 if (b.real == 0 && b.imag == 0) {
26861 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
26862 } else {
26863 long double r = b.imag / b.real;
26864 long double s = (long double)(1.0) / (b.real + b.imag * r);
26865 return __pyx_t_long_double_complex_from_parts(
26866 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
26867 }
26868 } else {
26869 long double r = b.real / b.imag;
26870 long double s = (long double)(1.0) / (b.imag + b.real * r);
26871 return __pyx_t_long_double_complex_from_parts(
26872 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
26873 }
26874 }
26875 #else
26876 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26877 if (b.imag == 0) {
26878 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
26879 } else {
26880 long double denom = b.real * b.real + b.imag * b.imag;
26881 return __pyx_t_long_double_complex_from_parts(
26882 (a.real * b.real + a.imag * b.imag) / denom,
26883 (a.imag * b.real - a.real * b.imag) / denom);
26884 }
26885 }
26886 #endif
26887 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
26888 __pyx_t_long_double_complex z;
26889 z.real = -a.real;
26890 z.imag = -a.imag;
26891 return z;
26892 }
26893 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
26894 return (a.real == 0) && (a.imag == 0);
26895 }
26896 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
26897 __pyx_t_long_double_complex z;
26898 z.real = a.real;
26899 z.imag = -a.imag;
26900 return z;
26901 }
26902 #if 1
26903 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
26904 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
26905 return sqrtl(z.real*z.real + z.imag*z.imag);
26906 #else
26907 return hypotl(z.real, z.imag);
26908 #endif
26909 }
26910 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
26911 __pyx_t_long_double_complex z;
26912 long double r, lnr, theta, z_r, z_theta;
26913 if (b.imag == 0 && b.real == (int)b.real) {
26914 if (b.real < 0) {
26915 long double denom = a.real * a.real + a.imag * a.imag;
26916 a.real = a.real / denom;
26917 a.imag = -a.imag / denom;
26918 b.real = -b.real;
26919 }
26920 switch ((int)b.real) {
26921 case 0:
26922 z.real = 1;
26923 z.imag = 0;
26924 return z;
26925 case 1:
26926 return a;
26927 case 2:
26928 return __Pyx_c_prod_long__double(a, a);
26929 case 3:
26930 z = __Pyx_c_prod_long__double(a, a);
26931 return __Pyx_c_prod_long__double(z, a);
26932 case 4:
26933 z = __Pyx_c_prod_long__double(a, a);
26934 return __Pyx_c_prod_long__double(z, z);
26935 }
26936 }
26937 if (a.imag == 0) {
26938 if (a.real == 0) {
26939 return a;
26940 } else if ((b.imag == 0) && (a.real >= 0)) {
26941 z.real = powl(a.real, b.real);
26942 z.imag = 0;
26943 return z;
26944 } else if (a.real > 0) {
26945 r = a.real;
26946 theta = 0;
26947 } else {
26948 r = -a.real;
26949 theta = atan2l(0.0, -1.0);
26950 }
26951 } else {
26952 r = __Pyx_c_abs_long__double(a);
26953 theta = atan2l(a.imag, a.real);
26954 }
26955 lnr = logl(r);
26956 z_r = expl(lnr * b.real - theta * b.imag);
26957 z_theta = theta * b.real + lnr * b.imag;
26958 z.real = z_r * cosl(z_theta);
26959 z.imag = z_r * sinl(z_theta);
26960 return z;
26961 }
26962 #endif
26963#endif
26964
26965/* CIntFromPy */
26966static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x);
26967static int __Pyx_raise_neg_overflow___Pyx_PyLong_As_int(void) {
26968 const char* type_name = "int";
26969 PyErr_Format(PyExc_OverflowError,
26970 "can't convert negative value to %.200s", type_name);
26971 return (int) -1;
26972}
26973static int __Pyx_raise_overflow___Pyx_PyLong_As_int(void) {
26974 const char* type_name = "int";
26975 PyErr_Format(PyExc_OverflowError,
26976 "value too large to convert to %.200s", type_name);
26977 return (int) -1;
26978}
26979static CYTHON_INLINE int __Pyx_PyULong___Pyx_PyLong_As_int(PyObject *x) {
26980 const int is_unsigned = 1;
26981#if CYTHON_USE_PYLONG_INTERNALS
26982 {
26983 const digit* digits = __Pyx_PyLong_Digits(x);
26984 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
26985 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
26986 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
26987 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26988 } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
26989 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
26990 }
26991 } else
26992 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
26993 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
26994 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26995 } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
26996 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
26997 }
26998 } else
26999 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
27000 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
27001 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27002 } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
27003 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
27004 }
27005 } else
27006 {}
27007 }
27008#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
27009 if (unlikely(Py_SIZE(x) < 0)) {
27010 goto raise_neg_overflow;
27011 }
27012#else
27013 {
27014 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
27015 if (unlikely(result < 0))
27016 return (int) -1;
27017 if (unlikely(result == 1))
27018 goto raise_neg_overflow;
27019 }
27020#endif
27021 if ((sizeof(int) <= sizeof(unsigned long))) {
27022 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
27023 } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
27024 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
27025 }
27026 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
27027raise_neg_overflow:
27028 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
27029raise_overflow:
27030 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
27031}
27032static CYTHON_INLINE int __Pyx_PySLong___Pyx_PyLong_As_int(PyObject *x) {
27033 const int is_unsigned = 0;
27034#if CYTHON_USE_PYLONG_INTERNALS
27035 if (__Pyx_PyLong_IsNeg(x)) {
27036 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
27037 const digit* digits = __Pyx_PyLong_Digits(x);
27038 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
27039 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27040 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27041 __PYX_VERIFY_RETURN_INT(int, long, ival)
27042 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
27043 return (int) (((int) -1) * (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
27044 }
27045 } else
27046 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
27047 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27048 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27049 __PYX_VERIFY_RETURN_INT(int, long, ival)
27050 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
27051 return (int) (((int) -1) * (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
27052 }
27053 } else
27054 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
27055 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
27056 long ival = - (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27057 __PYX_VERIFY_RETURN_INT(int, long, ival)
27058 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
27059 return (int) (((int) -1) * (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
27060 }
27061 } else
27062 {}
27063 } else {
27064 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
27065 const digit* digits = __Pyx_PyLong_Digits(x);
27066 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
27067 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27068 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27069 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
27070 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
27071 }
27072 } else
27073 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
27074 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27075 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27076 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
27077 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
27078 }
27079 } else
27080 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
27081 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
27082 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27083 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
27084 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
27085 }
27086 } else
27087 {}
27088 }
27089#endif
27090 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
27091 if ((sizeof(int) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
27092 __PYX_VERIFY_RETURN_INT_EXC(int, int, PyLong_AsInt(x))
27093 } else
27094 #endif
27095 if ((sizeof(int) <= sizeof(long))) {
27096 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
27097 } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
27098 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
27099 }
27100 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
27101raise_neg_overflow:
27102 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
27103raise_overflow:
27104 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
27105}
27106static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x) {
27107#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27108#pragma GCC diagnostic push
27109#pragma GCC diagnostic ignored "-Wconversion"
27110#endif
27111 const int neg_one = (int) -1, const_zero = (int) 0;
27112#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27113#pragma GCC diagnostic pop
27114#endif
27115 const int is_unsigned = neg_one > const_zero;
27116 int val;
27117 int ret = -1;
27118#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
27119 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
27120 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
27121 if (unlikely(bytes_copied == -1)) {
27122 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
27123 goto raise_overflow;
27124 } else {
27125 ret = 0;
27126 }
27127#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
27128 int one = 1; int is_little = (int)*(unsigned char *)&one;
27129 unsigned char *bytes = (unsigned char *)&val;
27130 ret = _PyLong_AsByteArray((PyLongObject *)x,
27131 bytes, sizeof(val),
27132 is_little, !is_unsigned);
27133 if ((0)) goto raise_overflow;
27134#else
27135 PyObject *v;
27136 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
27137 int bits, remaining_bits, is_negative = 0;
27138 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
27139 if (likely(PyLong_CheckExact(x))) {
27140 v = __Pyx_NewRef(x);
27141 } else {
27142 v = PyNumber_Long(x);
27143 if (unlikely(!v)) return (int) -1;
27144 assert(PyLong_CheckExact(v));
27145 }
27146 {
27147 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
27148 if (unlikely(result < 0)) {
27149 Py_DECREF(v);
27150 return (int) -1;
27151 }
27152 is_negative = result == 1;
27153 }
27154 if (is_unsigned && unlikely(is_negative)) {
27155 Py_DECREF(v);
27156 PyErr_SetString(PyExc_OverflowError,
27157 "can't convert negative value to int");
27158 return (int) -1;
27159 } else if (is_negative) {
27160 stepval = PyNumber_Invert(v);
27161 Py_DECREF(v);
27162 if (unlikely(!stepval))
27163 return (int) -1;
27164 } else {
27165 stepval = v;
27166 }
27167 v = NULL;
27168 val = (int) 0;
27169 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
27170 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
27171 for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
27172 PyObject *tmp, *digit;
27173 long idigit;
27174 digit = PyNumber_And(stepval, mask);
27175 if (unlikely(!digit)) goto done;
27176 idigit = PyLong_AsLong(digit);
27177 Py_DECREF(digit);
27178 if (unlikely(idigit < 0)) goto done;
27179 val |= ((int) idigit) << bits;
27180 tmp = PyNumber_Rshift(stepval, shift);
27181 if (unlikely(!tmp)) goto done;
27182 Py_DECREF(stepval); stepval = tmp;
27183 }
27184 Py_DECREF(shift); shift = NULL;
27185 Py_DECREF(mask); mask = NULL;
27186 {
27187 long idigit = PyLong_AsLong(stepval);
27188 if (unlikely(idigit < 0)) goto done;
27189 remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
27190 if (unlikely(idigit >= (1L << remaining_bits)))
27191 goto raise_overflow;
27192 val |= ((int) idigit) << bits;
27193 }
27194 if (!is_unsigned) {
27195 if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
27196 goto raise_overflow;
27197 if (is_negative)
27198 val = ~val;
27199 }
27200 ret = 0;
27201done:
27202 Py_XDECREF(shift);
27203 Py_XDECREF(mask);
27204 Py_XDECREF(stepval);
27205#endif
27206 if (unlikely(ret))
27207 return (int) -1;
27208 return val;
27209raise_overflow:
27210 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
27211}
27212static CYTHON_INLINE int __Pyx_PyLong___Pyx_PyLong_As_int(PyObject *x) {
27213#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27214#pragma GCC diagnostic push
27215#pragma GCC diagnostic ignored "-Wconversion"
27216#endif
27217 const int neg_one = (int) -1, const_zero = (int) 0;
27218#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27219#pragma GCC diagnostic pop
27220#endif
27221 const int is_unsigned = neg_one > const_zero;
27222 if (is_unsigned) {
27223 #if CYTHON_USE_PYLONG_INTERNALS
27224 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
27225 goto raise_neg_overflow;
27226 } else if (__Pyx_PyLong_IsCompact(x)) {
27227 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
27228 } else
27229 #endif
27230 {
27231 return __Pyx_PyULong___Pyx_PyLong_As_int(x);
27232 }
27233 } else {
27234 #if CYTHON_USE_PYLONG_INTERNALS
27235 if (__Pyx_PyLong_IsCompact(x)) {
27236 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
27237 } else
27238 #endif
27239 {
27240 return __Pyx_PySLong___Pyx_PyLong_As_int(x);
27241 }
27242 }
27243#if CYTHON_USE_PYLONG_INTERNALS
27244raise_neg_overflow:
27245 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
27246raise_overflow:
27247 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
27248#endif
27249}
27250static int __Pyx_NonPyLong___Pyx_PyLong_As_int(PyObject *x) {
27251 int val;
27252 PyObject *tmp = __Pyx_PyNumber_Long(x);
27253 if (!tmp) return (int) -1;
27254 val = __Pyx_PyLong_As_int(tmp);
27255 Py_DECREF(tmp);
27256 return val;
27257}
27258static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
27259 if (likely(PyLong_Check(x))) {
27260 return __Pyx_PyLong___Pyx_PyLong_As_int(x);
27261 } else {
27262 return __Pyx_NonPyLong___Pyx_PyLong_As_int(x);
27263 }
27264}
27265
27266/* PyObjectVectorcallKwds (used by PyObjectVectorcallMethodKwds) */
27267#if CYTHON_VECTORCALL
27268CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i) {
27269 PyObject *key = __Pyx_PyTuple_GET_ITEM(kwnames, i);
27270#if !CYTHON_ASSUME_SAFE_MACROS
27271 if (unlikely(!key)) return -1;
27272#endif
27273 if (unlikely(!PyUnicode_Check(key))) {
27274 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
27275 return -1;
27276 }
27277 return 0;
27278}
27279#else
27280CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n) {
27281 PyObject *out = PyDict_New();
27282 if (unlikely(!out)) return NULL;
27283 for (Py_ssize_t i=0; i<n; ++i) {
27284 if (unlikely(PyDict_SetItem(out, keys[i], values[i]) < 0)) {
27285 Py_DECREF(out);
27286 return NULL;
27287 }
27288 }
27289 return out;
27290}
27291CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i) {
27292 PyObject *key = kwnames[i];
27293 if (unlikely(!PyUnicode_Check(key))) {
27294 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
27295 return -1;
27296 }
27297 return 0;
27298}
27299#endif
27300
27301/* PyObjectVectorcallMethodKwds (used by CIntToPy) */
27302#if !CYTHON_VECTORCALL
27303static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
27304 PyObject *result;
27305 PyObject *obj = PyObject_GetAttr(args[0], name);
27306 if (unlikely(!obj))
27307 return NULL;
27308 result = __Pyx_Object_VectorcallKwds(obj, args+1, nargsf-1, kwnames);
27309 Py_DECREF(obj);
27310 return result;
27311}
27312#endif
27313
27314/* CIntToPy */
27315static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
27316#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27317#pragma GCC diagnostic push
27318#pragma GCC diagnostic ignored "-Wconversion"
27319#endif
27320 const int neg_one = (int) -1, const_zero = (int) 0;
27321#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27322#pragma GCC diagnostic pop
27323#endif
27324 const int is_unsigned = neg_one > const_zero;
27325 if (is_unsigned) {
27326 if (sizeof(int) < sizeof(long)) {
27327 return PyLong_FromLong((long) value);
27328 } else if (sizeof(int) <= sizeof(unsigned long)) {
27329 return PyLong_FromUnsignedLong((unsigned long) value);
27330#if !CYTHON_COMPILING_IN_PYPY
27331 } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
27332 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
27333#endif
27334 }
27335 } else {
27336 if (sizeof(int) <= sizeof(long)) {
27337 return PyLong_FromLong((long) value);
27338 } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
27339 return PyLong_FromLongLong((PY_LONG_LONG) value);
27340 }
27341 }
27342 {
27343 unsigned char *bytes = (unsigned char *)&value;
27344#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
27345 if (is_unsigned) {
27346 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
27347 } else {
27348 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
27349 }
27350#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
27351 int one = 1; int little = (int)*(unsigned char *)&one;
27352 return _PyLong_FromByteArray(bytes, sizeof(int),
27353 little, !is_unsigned);
27354#else
27355 int one = 1; int little = (int)*(unsigned char *)&one;
27356 PyObject *result = NULL, *kwds = NULL;
27357 PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;;
27358 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
27359 if (!py_bytes) goto limited_bad;
27360 from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10);
27361 if (!from_bytes_str) goto limited_bad;
27362 order_str = PyUnicode_FromString(little ? "little" : "big");
27363 if (!order_str) goto limited_bad;
27364 {
27365 PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True };
27366 if (!is_unsigned) {
27367 PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6);
27368 if (!signed_str) goto limited_bad;
27369#if CYTHON_VECTORCALL
27370 kwds = PyTuple_Pack(1, signed_str);
27371#else
27372 {
27373 PyObject *keys[] = {signed_str};
27374 PyObject *values[] = {Py_True};
27375 kwds = __Pyx_MakeKwargDict(keys, values, 1);
27376 }
27377#endif
27378 Py_DECREF(signed_str);
27379 if (unlikely(!kwds)) goto limited_bad;
27380 }
27381 result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
27382 }
27383 limited_bad:
27384 Py_XDECREF(kwds);
27385 Py_XDECREF(order_str);
27386 Py_XDECREF(py_bytes);
27387 Py_XDECREF(from_bytes_str);
27388 return result;
27389#endif
27390 }
27391}
27392
27393/* CIntToPy */
27394static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
27395#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27396#pragma GCC diagnostic push
27397#pragma GCC diagnostic ignored "-Wconversion"
27398#endif
27399 const long neg_one = (long) -1, const_zero = (long) 0;
27400#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27401#pragma GCC diagnostic pop
27402#endif
27403 const int is_unsigned = neg_one > const_zero;
27404 if (is_unsigned) {
27405 if (sizeof(long) < sizeof(long)) {
27406 return PyLong_FromLong((long) value);
27407 } else if (sizeof(long) <= sizeof(unsigned long)) {
27408 return PyLong_FromUnsignedLong((unsigned long) value);
27409#if !CYTHON_COMPILING_IN_PYPY
27410 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
27411 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
27412#endif
27413 }
27414 } else {
27415 if (sizeof(long) <= sizeof(long)) {
27416 return PyLong_FromLong((long) value);
27417 } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
27418 return PyLong_FromLongLong((PY_LONG_LONG) value);
27419 }
27420 }
27421 {
27422 unsigned char *bytes = (unsigned char *)&value;
27423#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
27424 if (is_unsigned) {
27425 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
27426 } else {
27427 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
27428 }
27429#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
27430 int one = 1; int little = (int)*(unsigned char *)&one;
27431 return _PyLong_FromByteArray(bytes, sizeof(long),
27432 little, !is_unsigned);
27433#else
27434 int one = 1; int little = (int)*(unsigned char *)&one;
27435 PyObject *result = NULL, *kwds = NULL;
27436 PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;;
27437 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
27438 if (!py_bytes) goto limited_bad;
27439 from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10);
27440 if (!from_bytes_str) goto limited_bad;
27441 order_str = PyUnicode_FromString(little ? "little" : "big");
27442 if (!order_str) goto limited_bad;
27443 {
27444 PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True };
27445 if (!is_unsigned) {
27446 PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6);
27447 if (!signed_str) goto limited_bad;
27448#if CYTHON_VECTORCALL
27449 kwds = PyTuple_Pack(1, signed_str);
27450#else
27451 {
27452 PyObject *keys[] = {signed_str};
27453 PyObject *values[] = {Py_True};
27454 kwds = __Pyx_MakeKwargDict(keys, values, 1);
27455 }
27456#endif
27457 Py_DECREF(signed_str);
27458 if (unlikely(!kwds)) goto limited_bad;
27459 }
27460 result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
27461 }
27462 limited_bad:
27463 Py_XDECREF(kwds);
27464 Py_XDECREF(order_str);
27465 Py_XDECREF(py_bytes);
27466 Py_XDECREF(from_bytes_str);
27467 return result;
27468#endif
27469 }
27470}
27471
27472/* CIntFromPy */
27473static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x);
27474static long __Pyx_raise_neg_overflow___Pyx_PyLong_As_long(void) {
27475 const char* type_name = "long";
27476 PyErr_Format(PyExc_OverflowError,
27477 "can't convert negative value to %.200s", type_name);
27478 return (long) -1;
27479}
27480static long __Pyx_raise_overflow___Pyx_PyLong_As_long(void) {
27481 const char* type_name = "long";
27482 PyErr_Format(PyExc_OverflowError,
27483 "value too large to convert to %.200s", type_name);
27484 return (long) -1;
27485}
27486static CYTHON_INLINE long __Pyx_PyULong___Pyx_PyLong_As_long(PyObject *x) {
27487 const int is_unsigned = 1;
27488#if CYTHON_USE_PYLONG_INTERNALS
27489 {
27490 const digit* digits = __Pyx_PyLong_Digits(x);
27491 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
27492 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
27493 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
27494 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27495 } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
27496 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27497 }
27498 } else
27499 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27500 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
27501 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27502 } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
27503 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27504 }
27505 } else
27506 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27507 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
27508 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27509 } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
27510 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27511 }
27512 } else
27513 {}
27514 }
27515#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
27516 if (unlikely(Py_SIZE(x) < 0)) {
27517 goto raise_neg_overflow;
27518 }
27519#else
27520 {
27521 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
27522 if (unlikely(result < 0))
27523 return (long) -1;
27524 if (unlikely(result == 1))
27525 goto raise_neg_overflow;
27526 }
27527#endif
27528 if ((sizeof(long) <= sizeof(unsigned long))) {
27529 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
27530 } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
27531 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
27532 }
27533 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
27534raise_neg_overflow:
27535 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
27536raise_overflow:
27537 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
27538}
27539static CYTHON_INLINE long __Pyx_PySLong___Pyx_PyLong_As_long(PyObject *x) {
27540 const int is_unsigned = 0;
27541#if CYTHON_USE_PYLONG_INTERNALS
27542 if (__Pyx_PyLong_IsNeg(x)) {
27543 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
27544 const digit* digits = __Pyx_PyLong_Digits(x);
27545 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
27546 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27547 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27548 __PYX_VERIFY_RETURN_INT(long, long, ival)
27549 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
27550 return (long) (((long) -1) * (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
27551 }
27552 } else
27553 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27554 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27555 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27556 __PYX_VERIFY_RETURN_INT(long, long, ival)
27557 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
27558 return (long) (((long) -1) * (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
27559 }
27560 } else
27561 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27562 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
27563 long ival = - (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
27564 __PYX_VERIFY_RETURN_INT(long, long, ival)
27565 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
27566 return (long) (((long) -1) * (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
27567 }
27568 } else
27569 {}
27570 } else {
27571 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
27572 const digit* digits = __Pyx_PyLong_Digits(x);
27573 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
27574 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27575 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27576 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
27577 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27578 }
27579 } else
27580 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
27581 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27582 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27583 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
27584 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27585 }
27586 } else
27587 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
27588 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
27589 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
27590 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
27591 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
27592 }
27593 } else
27594 {}
27595 }
27596#endif
27597 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
27598 if ((sizeof(long) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
27599 __PYX_VERIFY_RETURN_INT_EXC(long, int, PyLong_AsInt(x))
27600 } else
27601 #endif
27602 if ((sizeof(long) <= sizeof(long))) {
27603 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
27604 } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
27605 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
27606 }
27607 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
27608raise_neg_overflow:
27609 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
27610raise_overflow:
27611 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
27612}
27613static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x) {
27614#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27615#pragma GCC diagnostic push
27616#pragma GCC diagnostic ignored "-Wconversion"
27617#endif
27618 const long neg_one = (long) -1, const_zero = (long) 0;
27619#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27620#pragma GCC diagnostic pop
27621#endif
27622 const int is_unsigned = neg_one > const_zero;
27623 long val;
27624 int ret = -1;
27625#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
27626 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
27627 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
27628 if (unlikely(bytes_copied == -1)) {
27629 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
27630 goto raise_overflow;
27631 } else {
27632 ret = 0;
27633 }
27634#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
27635 int one = 1; int is_little = (int)*(unsigned char *)&one;
27636 unsigned char *bytes = (unsigned char *)&val;
27637 ret = _PyLong_AsByteArray((PyLongObject *)x,
27638 bytes, sizeof(val),
27639 is_little, !is_unsigned);
27640 if ((0)) goto raise_overflow;
27641#else
27642 PyObject *v;
27643 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
27644 int bits, remaining_bits, is_negative = 0;
27645 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
27646 if (likely(PyLong_CheckExact(x))) {
27647 v = __Pyx_NewRef(x);
27648 } else {
27649 v = PyNumber_Long(x);
27650 if (unlikely(!v)) return (long) -1;
27651 assert(PyLong_CheckExact(v));
27652 }
27653 {
27654 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
27655 if (unlikely(result < 0)) {
27656 Py_DECREF(v);
27657 return (long) -1;
27658 }
27659 is_negative = result == 1;
27660 }
27661 if (is_unsigned && unlikely(is_negative)) {
27662 Py_DECREF(v);
27663 PyErr_SetString(PyExc_OverflowError,
27664 "can't convert negative value to long");
27665 return (long) -1;
27666 } else if (is_negative) {
27667 stepval = PyNumber_Invert(v);
27668 Py_DECREF(v);
27669 if (unlikely(!stepval))
27670 return (long) -1;
27671 } else {
27672 stepval = v;
27673 }
27674 v = NULL;
27675 val = (long) 0;
27676 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
27677 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
27678 for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
27679 PyObject *tmp, *digit;
27680 long idigit;
27681 digit = PyNumber_And(stepval, mask);
27682 if (unlikely(!digit)) goto done;
27683 idigit = PyLong_AsLong(digit);
27684 Py_DECREF(digit);
27685 if (unlikely(idigit < 0)) goto done;
27686 val |= ((long) idigit) << bits;
27687 tmp = PyNumber_Rshift(stepval, shift);
27688 if (unlikely(!tmp)) goto done;
27689 Py_DECREF(stepval); stepval = tmp;
27690 }
27691 Py_DECREF(shift); shift = NULL;
27692 Py_DECREF(mask); mask = NULL;
27693 {
27694 long idigit = PyLong_AsLong(stepval);
27695 if (unlikely(idigit < 0)) goto done;
27696 remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
27697 if (unlikely(idigit >= (1L << remaining_bits)))
27698 goto raise_overflow;
27699 val |= ((long) idigit) << bits;
27700 }
27701 if (!is_unsigned) {
27702 if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
27703 goto raise_overflow;
27704 if (is_negative)
27705 val = ~val;
27706 }
27707 ret = 0;
27708done:
27709 Py_XDECREF(shift);
27710 Py_XDECREF(mask);
27711 Py_XDECREF(stepval);
27712#endif
27713 if (unlikely(ret))
27714 return (long) -1;
27715 return val;
27716raise_overflow:
27717 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
27718}
27719static CYTHON_INLINE long __Pyx_PyLong___Pyx_PyLong_As_long(PyObject *x) {
27720#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27721#pragma GCC diagnostic push
27722#pragma GCC diagnostic ignored "-Wconversion"
27723#endif
27724 const long neg_one = (long) -1, const_zero = (long) 0;
27725#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
27726#pragma GCC diagnostic pop
27727#endif
27728 const int is_unsigned = neg_one > const_zero;
27729 if (is_unsigned) {
27730 #if CYTHON_USE_PYLONG_INTERNALS
27731 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
27732 goto raise_neg_overflow;
27733 } else if (__Pyx_PyLong_IsCompact(x)) {
27734 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
27735 } else
27736 #endif
27737 {
27738 return __Pyx_PyULong___Pyx_PyLong_As_long(x);
27739 }
27740 } else {
27741 #if CYTHON_USE_PYLONG_INTERNALS
27742 if (__Pyx_PyLong_IsCompact(x)) {
27743 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
27744 } else
27745 #endif
27746 {
27747 return __Pyx_PySLong___Pyx_PyLong_As_long(x);
27748 }
27749 }
27750#if CYTHON_USE_PYLONG_INTERNALS
27751raise_neg_overflow:
27752 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
27753raise_overflow:
27754 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
27755#endif
27756}
27757static long __Pyx_NonPyLong___Pyx_PyLong_As_long(PyObject *x) {
27758 long val;
27759 PyObject *tmp = __Pyx_PyNumber_Long(x);
27760 if (!tmp) return (long) -1;
27761 val = __Pyx_PyLong_As_long(tmp);
27762 Py_DECREF(tmp);
27763 return val;
27764}
27765static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
27766 if (likely(PyLong_Check(x))) {
27767 return __Pyx_PyLong___Pyx_PyLong_As_long(x);
27768 } else {
27769 return __Pyx_NonPyLong___Pyx_PyLong_As_long(x);
27770 }
27771}
27772
27773/* GetRuntimeVersion */
27774#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
27775void __Pyx_init_runtime_version(void) {
27776 if (__Pyx_cached_runtime_version == 0) {
27777 const char* rt_version = Py_GetVersion();
27778 unsigned long version = 0;
27779 unsigned long factor = 0x01000000UL;
27780 unsigned int digit = 0;
27781 int i = 0;
27782 while (factor) {
27783 while ('0' <= rt_version[i] && rt_version[i] <= '9') {
27784 digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
27785 ++i;
27786 }
27787 version += factor * digit;
27788 if (rt_version[i] != '.')
27789 break;
27790 digit = 0;
27791 factor >>= 8;
27792 ++i;
27793 }
27794 __Pyx_cached_runtime_version = version;
27795 }
27796}
27797#endif
27798static unsigned long __Pyx_get_runtime_version(void) {
27799#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
27800 return Py_Version & ~0xFFUL;
27801#else
27802 return __Pyx_cached_runtime_version;
27803#endif
27804}
27805
27806/* CheckBinaryVersion */
27807static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
27808 const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
27809 if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
27810 return 0;
27811 if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
27812 return 1;
27813 {
27814 char message[200];
27815 PyOS_snprintf(message, sizeof(message),
27816 "compile time Python version %d.%d "
27817 "of module '%.100s' "
27818 "%s "
27819 "runtime version %d.%d",
27820 (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
27821 __Pyx_MODULE_NAME,
27822 (allow_newer) ? "was newer than" : "does not match",
27823 (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
27824 );
27825 return PyErr_WarnEx(NULL, message, 1);
27826 }
27827}
27828
27829/* NewCodeObj */
27830#if CYTHON_COMPILING_IN_LIMITED_API
27831 static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
27832 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
27833 PyObject *fv, PyObject *cell, PyObject* fn,
27834 PyObject *name, int fline, PyObject *lnos) {
27835 PyObject *exception_table = NULL;
27836 PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
27837 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
27838 PyObject *version_info;
27839 PyObject *py_minor_version = NULL;
27840 #endif
27841 long minor_version = 0;
27842 #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
27843 minor_version = 11;
27844 #else
27845 if (!(version_info = PySys_GetObject("version_info"))) goto end;
27846 if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
27847 minor_version = PyLong_AsLong(py_minor_version);
27848 Py_DECREF(py_minor_version);
27849 if (minor_version == -1 && PyErr_Occurred()) goto end;
27850 #endif
27851 if (!(types_module = PyImport_ImportModule("types"))) goto end;
27852 if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
27853 if (minor_version <= 10) {
27854 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
27855 c, n, v, fn, name, fline, lnos, fv, cell);
27856 } else {
27857 if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
27858 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
27859 c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
27860 }
27861 end:
27862 Py_XDECREF(code_type);
27863 Py_XDECREF(exception_table);
27864 Py_XDECREF(types_module);
27865 if (!result) {
27866 PyObject *exc_type, *exc_value, *exc_tb;
27867 PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
27868 if (PyErr_WarnFormat(
27869 PyExc_RuntimeWarning, 1,
27870 "Code object creation failed in Cython module: %S\nTry recompiling with a more recent version of Cython.",
27871 exc_value ? exc_value : exc_type) == 0) {
27872 result = Py_None;
27873 Py_INCREF(result);
27874 }
27875 Py_DECREF(exc_type);
27876 Py_XDECREF(exc_value);
27877 Py_XDECREF(exc_tb);
27878 }
27879 return result;
27880 }
27881#elif PY_VERSION_HEX >= 0x030B0000
27882 static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
27883 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
27884 PyObject *fv, PyObject *cell, PyObject* fn,
27885 PyObject *name, int fline, PyObject *lnos) {
27886 PyCodeObject *result;
27887 result =
27888 #if PY_VERSION_HEX >= 0x030C0000
27889 PyUnstable_Code_NewWithPosOnlyArgs
27890 #else
27891 PyCode_NewWithPosOnlyArgs
27892 #endif
27893 (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
27894 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
27895 if (likely(result))
27896 result->_co_firsttraceable = 0;
27897 #endif
27898 return result;
27899 }
27900#elif !CYTHON_COMPILING_IN_PYPY
27901 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
27902 PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
27903#else
27904 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
27905 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
27906#endif
27907static PyObject* __Pyx_PyCode_New(
27908 const __Pyx_PyCode_New_function_description descr,
27909 PyObject * const *varnames,
27910 PyObject *filename,
27911 PyObject *funcname,
27912 PyObject *line_table,
27913 PyObject *tuple_dedup_map
27914) {
27915 PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
27916 Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
27917 PyObject *varnames_tuple = PyTuple_New(var_count);
27918 if (unlikely(!varnames_tuple)) return NULL;
27919 for (Py_ssize_t i=0; i < var_count; i++) {
27920 Py_INCREF(varnames[i]);
27921 if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
27922 }
27923 #if CYTHON_COMPILING_IN_LIMITED_API
27924 varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
27925 if (!varnames_tuple_dedup) {
27926 if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
27927 varnames_tuple_dedup = varnames_tuple;
27928 }
27929 #else
27930 varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
27931 if (unlikely(!varnames_tuple_dedup)) goto done;
27932 #endif
27933 #if CYTHON_AVOID_BORROWED_REFS
27934 Py_INCREF(varnames_tuple_dedup);
27935 #endif
27936 if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
27937 Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
27938 #if !CYTHON_ASSUME_SAFE_SIZE
27939 if (unlikely(line_table_length == -1)) goto done;
27940 #endif
27941 Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
27942 code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
27943 if (unlikely(!code_bytes)) goto done;
27944 char* c_code_bytes = PyBytes_AsString(code_bytes);
27945 if (unlikely(!c_code_bytes)) goto done;
27946 memset(c_code_bytes, 0, (size_t) code_len);
27947 }
27948 code_obj = (PyObject*) __Pyx__PyCode_New(
27949 (int) descr.argcount,
27950 (int) descr.num_posonly_args,
27951 (int) descr.num_kwonly_args,
27952 (int) descr.nlocals,
27953 0,
27954 (int) descr.flags,
27955 code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
27956 __pyx_mstate_global->__pyx_empty_tuple,
27957 __pyx_mstate_global->__pyx_empty_tuple,
27958 varnames_tuple_dedup,
27959 __pyx_mstate_global->__pyx_empty_tuple,
27960 __pyx_mstate_global->__pyx_empty_tuple,
27961 filename,
27962 funcname,
27963 (int) descr.first_line,
27964 (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
27965 );
27966done:
27967 Py_XDECREF(code_bytes);
27968 #if CYTHON_AVOID_BORROWED_REFS
27969 Py_XDECREF(varnames_tuple_dedup);
27970 #endif
27971 Py_DECREF(varnames_tuple);
27972 return code_obj;
27973}
27974
27975/* DecompressString */
27976CYTHON_UNUSED
27977static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
27978#ifdef __Pyx_DecompressString_UNUSED
27979 CYTHON_UNUSED_VAR(s);
27980 CYTHON_UNUSED_VAR(length);
27981 CYTHON_UNUSED_VAR(algo);
27982 return NULL;
27983#else
27984 PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
27985 const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
27986 PyObject *methodname = PyUnicode_FromString("decompress");
27987 if (unlikely(!methodname)) return NULL;
27988 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
27989 if (algo == 3) {
27990 PyObject *fromlist = Py_BuildValue("[O]", methodname);
27991 if (unlikely(!fromlist)) goto bad;
27992 module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
27993 Py_DECREF(fromlist);
27994 } else
27995 #endif
27996 module = PyImport_ImportModule(module_name);
27997 if (unlikely(!module)) goto import_failed;
27998 decompress = PyObject_GetAttr(module, methodname);
27999 if (unlikely(!decompress)) goto import_failed;
28000 {
28001 #ifdef __cplusplus
28002 char *memview_bytes = const_cast<char*>(s);
28003 #else
28004 #if defined(__clang__)
28005 #pragma clang diagnostic push
28006 #pragma clang diagnostic ignored "-Wcast-qual"
28007 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
28008 #pragma GCC diagnostic push
28009 #pragma GCC diagnostic ignored "-Wcast-qual"
28010 #endif
28011 char *memview_bytes = (char*) s;
28012 #if defined(__clang__)
28013 #pragma clang diagnostic pop
28014 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
28015 #pragma GCC diagnostic pop
28016 #endif
28017 #endif
28018 #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
28019 int memview_flags = 0x100;
28020 #else
28021 int memview_flags = PyBUF_READ;
28022 #endif
28023 compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
28024 }
28025 if (unlikely(!compressed_bytes)) {
28026 Py_DECREF(decompress);
28027 goto bad;
28028 }
28029 decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
28030 Py_DECREF(compressed_bytes);
28031 Py_DECREF(decompress);
28032 Py_DECREF(module);
28033 Py_DECREF(methodname);
28034 return decompressed;
28035import_failed:
28036 PyErr_Format(PyExc_ImportError,
28037 "Failed to import '%.20s.decompress' - cannot initialise module strings. "
28038 "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
28039 module_name, algo);
28040bad:
28041 Py_XDECREF(module);
28042 Py_DECREF(methodname);
28043 return NULL;
28044#endif
28045}
28046
28047/* DecompressString_LZSS */
28048#ifndef __Pyx_DecompressString_LZSS_UNUSED
28049CYTHON_UNUSED
28050static CYTHON_SMALL_CODE size_t __pyx_lzss_decompress(const uint8_t* src, uint8_t* dst, size_t dst_len) {
28051 size_t pos = 0, out_pos = 0;
28052 while (1) {
28053 uint32_t flags = src[pos++] | 0xFF00;
28054 while (flags & 0x100) {
28055 if (flags & 1) {
28056 dst[out_pos++] = src[pos++];
28057 } else {
28058 uint32_t lo = src[pos++], hi = src[pos++];
28059 uint32_t end_offset_of_last_occurrence, match_length;
28060 if (!(lo & 0x80)) {
28061 end_offset_of_last_occurrence = lo;
28062 match_length = hi;
28063 } else if (!(hi & 0x80)) {
28064 end_offset_of_last_occurrence = 0x80 + (((hi << 2) & 0x180) | (lo & 0x7F));
28065 match_length = hi & 0x1F;
28066 } else {
28067 end_offset_of_last_occurrence = 0x80 + ((hi & 0x7F) << 7 | (lo & 0x7F));
28068 match_length = src[pos++];
28069 }
28070 match_length += 3;
28071 size_t ref_pos = out_pos - end_offset_of_last_occurrence - match_length;
28072 memcpy(dst + out_pos, dst + ref_pos, match_length);
28073 out_pos += match_length;
28074 }
28075 if (out_pos >= dst_len) return pos;
28076 flags >>= 1;
28077 }
28078 }
28079}
28080#endif
28081static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length) {
28082#ifdef __Pyx_DecompressString_LZSS_UNUSED
28083 CYTHON_UNUSED_VAR(s);
28084 CYTHON_UNUSED_VAR(compressed_length);
28085 CYTHON_UNUSED_VAR(uncompressed_length);
28086 return NULL;
28087#else
28088 PyObject *result;
28089 unsigned char *result_data;
28090 size_t src_length;
28091 result = PyBytes_FromStringAndSize(NULL, (Py_ssize_t) uncompressed_length);
28092 if (unlikely(!result)) return NULL;
28093 result_data = __Pyx_PyBytes_AsWritableUString(result);
28094 if (unlikely(!result_data)) goto bad;
28095 src_length = __pyx_lzss_decompress((const uint8_t*) s, result_data, uncompressed_length);
28096 if (unlikely(src_length != compressed_length)) goto decompression_failed;
28097 return result;
28098decompression_failed:
28099 PyErr_SetString(PyExc_RuntimeError, "LZSS string data decompression failed");
28100bad:
28101 Py_DECREF(result);
28102 return NULL;
28103#endif
28104}
28105
28106#include <string.h>
28107static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
28108 size_t len = strlen(s);
28109 if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
28110 PyErr_SetString(PyExc_OverflowError, "byte string is too long");
28111 return -1;
28112 }
28113 return (Py_ssize_t) len;
28114}
28115static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
28116 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
28117 if (unlikely(len < 0)) return NULL;
28118 return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
28119}
28120static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
28121 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
28122 if (unlikely(len < 0)) return NULL;
28123 return PyByteArray_FromStringAndSize(c_str, len);
28124}
28125static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
28126 Py_ssize_t ignore;
28127 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
28128}
28129#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
28130static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
28131 if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
28132#if CYTHON_COMPILING_IN_LIMITED_API
28133 {
28134 const char* result;
28135 Py_ssize_t unicode_length;
28136 CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
28137 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
28138 if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
28139 #else
28140 result = PyUnicode_AsUTF8AndSize(o, length);
28141 #endif
28142 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
28143 unicode_length = PyUnicode_GetLength(o);
28144 if (unlikely(unicode_length < 0)) return NULL;
28145 if (unlikely(unicode_length != *length)) {
28146 PyUnicode_AsASCIIString(o);
28147 return NULL;
28148 }
28149 #endif
28150 return result;
28151 }
28152#else
28153#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
28154 if (likely(PyUnicode_IS_ASCII(o))) {
28155 *length = PyUnicode_GET_LENGTH(o);
28156 return PyUnicode_AsUTF8(o);
28157 } else {
28158 PyUnicode_AsASCIIString(o);
28159 return NULL;
28160 }
28161#else
28162 return PyUnicode_AsUTF8AndSize(o, length);
28163#endif
28164#endif
28165}
28166#endif
28167static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
28168#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
28169 if (PyUnicode_Check(o)) {
28170 return __Pyx_PyUnicode_AsStringAndSize(o, length);
28171 } else
28172#endif
28173 if (PyByteArray_Check(o)) {
28174#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
28175 *length = PyByteArray_GET_SIZE(o);
28176 return PyByteArray_AS_STRING(o);
28177#else
28178 *length = PyByteArray_Size(o);
28179 if (*length == -1) return NULL;
28180 return PyByteArray_AsString(o);
28181#endif
28182 } else
28183 {
28184 char* result;
28185 int r = PyBytes_AsStringAndSize(o, &result, length);
28186 if (unlikely(r < 0)) {
28187 return NULL;
28188 } else {
28189 return result;
28190 }
28191 }
28192}
28193static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
28194 int is_true = x == Py_True;
28195 if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
28196 else return PyObject_IsTrue(x);
28197}
28198static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
28199 int retval;
28200 if (unlikely(!x)) return -1;
28201 retval = __Pyx_PyObject_IsTrue(x);
28202 Py_DECREF(x);
28203 return retval;
28204}
28205static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
28206 __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
28207 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
28208 if (unlikely(!result_type_name)) goto bad;
28209 #endif
28210 if (PyLong_Check(result)) {
28211 if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
28212 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). "
28213 "The ability to return an instance of a strict subclass of int is deprecated, "
28214 "and may be removed in a future version of Python.",
28215 result_type_name)) {
28216 __Pyx_DECREF_TypeName(result_type_name);
28217 goto bad;
28218 }
28219 __Pyx_DECREF_TypeName(result_type_name);
28220 return result;
28221 }
28222 PyErr_Format(PyExc_TypeError,
28223 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
28224 result_type_name);
28225 __Pyx_DECREF_TypeName(result_type_name);
28226bad:
28227 Py_DECREF(result);
28228 return NULL;
28229}
28230static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
28231#if CYTHON_USE_TYPE_SLOTS
28232 PyNumberMethods *m;
28233#endif
28234 PyObject *res = NULL;
28235 if (likely(PyLong_Check(x)))
28236 return __Pyx_NewRef(x);
28237#if CYTHON_USE_TYPE_SLOTS
28238 m = Py_TYPE(x)->tp_as_number;
28239 if (likely(m && m->nb_int)) {
28240 res = m->nb_int(x);
28241 }
28242#else
28243 if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
28244 res = PyNumber_Long(x);
28245 }
28246#endif
28247 if (likely(res)) {
28248 if (unlikely(!PyLong_CheckExact(res))) {
28249 return __Pyx_PyNumber_LongWrongResultType(res);
28250 }
28251 }
28252 else if (!PyErr_Occurred()) {
28253 PyErr_SetString(PyExc_TypeError,
28254 "an integer is required");
28255 }
28256 return res;
28257}
28258static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_AsSsize_t(PyObject* b) {
28259 #if CYTHON_USE_PYLONG_INTERNALS
28260 Py_ssize_t ival;
28261 const Py_ssize_t size = __Pyx_PyLong_DigitCount(b);
28262 const int is_neg = __Pyx_PyLong_IsNeg(b);
28263 const digit* digits = __Pyx_PyLong_Digits(b);
28264 if (size == 0) return 0;
28265 #if SIZEOF_SIZE_T * 8 > 1 * PyLong_SHIFT
28266 if (size == 1) {
28267 ival = (Py_ssize_t) (((size_t)digits[0]));
28268 } else
28269 #endif
28270 #if SIZEOF_SIZE_T * 8 > 2 * PyLong_SHIFT
28271 if (size == 2) {
28272 ival = (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
28273 } else
28274 #endif
28275 #if SIZEOF_SIZE_T * 8 > 3 * PyLong_SHIFT
28276 if (size == 3) {
28277 ival = (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
28278 } else
28279 #endif
28280 #if SIZEOF_SIZE_T * 8 > 4 * PyLong_SHIFT
28281 if (size == 4) {
28282 ival = (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
28283 } else
28284 #endif
28285 return PyLong_AsSsize_t(b);
28286 return is_neg ? -ival : ival;
28287 #else
28288 return PyLong_AsSsize_t(b);
28289 #endif
28290}
28291static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
28292 if (likely(PyLong_Check(b))) {
28293 return __Pyx_PyLong_AsSsize_t(b);
28294 } else {
28295 Py_ssize_t ival;
28296 PyObject *x = PyNumber_Index(b);
28297 if (unlikely(!x)) return -1;
28298 ival = __Pyx_PyLong_AsSsize_t(x);
28299 Py_DECREF(x);
28300 return ival;
28301 }
28302}
28303static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
28304 if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
28305 return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
28306 } else {
28307 Py_ssize_t ival;
28308 PyObject *x;
28309 x = PyNumber_Index(o);
28310 if (!x) return -1;
28311 ival = PyLong_AsLong(x);
28312 Py_DECREF(x);
28313 return ival;
28314 }
28315}
28316static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
28317 CYTHON_UNUSED_VAR(b);
28318 return __Pyx_NewRef(Py_None);
28319}
28320static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
28321 return __Pyx_NewRef(b ? Py_True: Py_False);
28322}
28323static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
28324 return PyLong_FromSize_t(ival);
28325}
28326
28327
28328/* MultiPhaseInitModuleState */
28329#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
28330#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28331#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
28332 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
28333#else
28334 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
28335#endif
28336#endif
28337#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
28338#error "Module state with PEP489 requires atomics. Currently that's one of\
28339 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
28340#endif
28341#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28342#define __Pyx_ModuleStateLookup_Lock()
28343#define __Pyx_ModuleStateLookup_Unlock()
28344#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
28345static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
28346#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
28347#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
28348#elif defined(__cplusplus) && __cplusplus >= 201103L
28349#include <mutex>
28350static std::mutex __Pyx_ModuleStateLookup_mutex;
28351#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
28352#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
28353#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
28354#include <threads.h>
28355static mtx_t __Pyx_ModuleStateLookup_mutex;
28356static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
28357static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
28358 mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
28359}
28360#define __Pyx_ModuleStateLookup_Lock()\
28361 call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
28362 mtx_lock(&__Pyx_ModuleStateLookup_mutex)
28363#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
28364#elif defined(HAVE_PTHREAD_H)
28365#include <pthread.h>
28366static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
28367#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
28368#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
28369#elif defined(_WIN32)
28370#include <Windows.h> // synchapi.h on its own doesn't work
28371static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
28372#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
28373#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
28374#else
28375#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
28376 Requires C standard >= C11, or C++ standard >= C++11,\
28377 or pthreads, or the Windows 32 API, or Python >= 3.13."
28378#endif
28379typedef struct {
28380 int64_t id;
28381 PyObject *module;
28382} __Pyx_InterpreterIdAndModule;
28383typedef struct {
28384 char interpreter_id_as_index;
28385 Py_ssize_t count;
28386 Py_ssize_t allocated;
28387 __Pyx_InterpreterIdAndModule table[1];
28388} __Pyx_ModuleStateLookupData;
28389#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
28390#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28391static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
28392#endif
28393#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28394static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
28395#else
28396static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
28397#endif
28398static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
28399 __Pyx_InterpreterIdAndModule* table,
28400 Py_ssize_t count,
28401 int64_t interpreterId) {
28402 __Pyx_InterpreterIdAndModule* begin = table;
28403 __Pyx_InterpreterIdAndModule* end = begin + count;
28404 if (begin->id == interpreterId) {
28405 return begin;
28406 }
28407 while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
28408 __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
28409 if (halfway->id == interpreterId) {
28410 return halfway;
28411 }
28412 if (halfway->id < interpreterId) {
28413 begin = halfway;
28414 } else {
28415 end = halfway;
28416 }
28417 }
28418 for (; begin < end; ++begin) {
28419 if (begin->id >= interpreterId) return begin;
28420 }
28421 return begin;
28422}
28423static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
28424 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
28425 if (interpreter_id == -1) return NULL;
28426#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28427 __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
28428 {
28429 __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
28430 if (likely(data)) {
28431 __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
28432 if (likely(data == new_data)) {
28433 goto read_finished;
28434 }
28435 }
28436 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
28437 __Pyx_ModuleStateLookup_Lock();
28438 __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
28439 data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
28440 __Pyx_ModuleStateLookup_Unlock();
28441 }
28442 read_finished:;
28443#else
28444 __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
28445#endif
28446 __Pyx_InterpreterIdAndModule* found = NULL;
28447 if (unlikely(!data)) goto end;
28448 if (data->interpreter_id_as_index) {
28449 if (interpreter_id < data->count) {
28450 found = data->table+interpreter_id;
28451 }
28452 } else {
28453 found = __Pyx_State_FindModuleStateLookupTableLowerBound(
28454 data->table, data->count, interpreter_id);
28455 }
28456 end:
28457 {
28458 PyObject *result=NULL;
28459 if (found && found->id == interpreter_id) {
28460 result = found->module;
28461 }
28462#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28463 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
28464#endif
28465 return result;
28466 }
28467}
28468#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28469static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
28470 while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
28471}
28472#else
28473#define __Pyx_ModuleStateLookup_wait_until_no_readers()
28474#endif
28475static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
28476 Py_ssize_t to_allocate = (*old_data)->allocated;
28477 while (to_allocate <= interpreter_id) {
28478 if (to_allocate == 0) to_allocate = 1;
28479 else to_allocate *= 2;
28480 }
28481 __Pyx_ModuleStateLookupData *new_data = *old_data;
28482 if (to_allocate != (*old_data)->allocated) {
28483 new_data = (__Pyx_ModuleStateLookupData *)realloc(
28484 *old_data,
28485 sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
28486 if (!new_data) {
28487 PyErr_NoMemory();
28488 return -1;
28489 }
28490 for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
28491 new_data->table[i].id = i;
28492 new_data->table[i].module = NULL;
28493 }
28494 new_data->allocated = to_allocate;
28495 }
28496 new_data->table[interpreter_id].module = module;
28497 if (new_data->count < interpreter_id+1) {
28498 new_data->count = interpreter_id+1;
28499 }
28500 *old_data = new_data;
28501 return 0;
28502}
28503static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
28504 __Pyx_InterpreterIdAndModule *read = data->table;
28505 __Pyx_InterpreterIdAndModule *write = data->table;
28506 __Pyx_InterpreterIdAndModule *end = read + data->count;
28507 for (; read<end; ++read) {
28508 if (read->module) {
28509 write->id = read->id;
28510 write->module = read->module;
28511 ++write;
28512 }
28513 }
28514 data->count = write - data->table;
28515 for (; write<end; ++write) {
28516 write->id = 0;
28517 write->module = NULL;
28518 }
28519 data->interpreter_id_as_index = 0;
28520}
28521static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
28522 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
28523 if (interpreter_id == -1) return -1;
28524 int result = 0;
28525 __Pyx_ModuleStateLookup_Lock();
28526#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28527 __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
28528 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
28529#else
28530 __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
28531#endif
28532 __Pyx_ModuleStateLookupData *new_data = old_data;
28533 if (!new_data) {
28534 new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
28535 if (!new_data) {
28536 result = -1;
28537 PyErr_NoMemory();
28538 goto end;
28539 }
28540 new_data->allocated = 1;
28541 new_data->interpreter_id_as_index = 1;
28542 }
28543 __Pyx_ModuleStateLookup_wait_until_no_readers();
28544 if (new_data->interpreter_id_as_index) {
28545 if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
28546 result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
28547 goto end;
28548 }
28549 __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
28550 }
28551 {
28552 Py_ssize_t insert_at = 0;
28553 {
28554 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
28555 new_data->table, new_data->count, interpreter_id);
28556 assert(lower_bound);
28557 insert_at = lower_bound - new_data->table;
28558 if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
28559 lower_bound->module = module;
28560 goto end; // already in table, nothing more to do
28561 }
28562 }
28563 if (new_data->count+1 >= new_data->allocated) {
28564 Py_ssize_t to_allocate = (new_data->count+1)*2;
28565 new_data =
28566 (__Pyx_ModuleStateLookupData*)realloc(
28567 new_data,
28568 sizeof(__Pyx_ModuleStateLookupData) +
28569 (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
28570 if (!new_data) {
28571 result = -1;
28572 new_data = old_data;
28573 PyErr_NoMemory();
28574 goto end;
28575 }
28576 new_data->allocated = to_allocate;
28577 }
28578 ++new_data->count;
28579 int64_t last_id = interpreter_id;
28580 PyObject *last_module = module;
28581 for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
28582 int64_t current_id = new_data->table[i].id;
28583 new_data->table[i].id = last_id;
28584 last_id = current_id;
28585 PyObject *current_module = new_data->table[i].module;
28586 new_data->table[i].module = last_module;
28587 last_module = current_module;
28588 }
28589 }
28590 end:
28591#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28592 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
28593#else
28594 __Pyx_ModuleStateLookup_data = new_data;
28595#endif
28596 __Pyx_ModuleStateLookup_Unlock();
28597 return result;
28598}
28599static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
28600 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
28601 if (interpreter_id == -1) return -1;
28602 __Pyx_ModuleStateLookup_Lock();
28603#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28604 __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
28605 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
28606#else
28607 __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
28608#endif
28609 if (data->interpreter_id_as_index) {
28610 if (interpreter_id < data->count) {
28611 data->table[interpreter_id].module = NULL;
28612 }
28613 goto done;
28614 }
28615 {
28616 __Pyx_ModuleStateLookup_wait_until_no_readers();
28617 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
28618 data->table, data->count, interpreter_id);
28619 if (!lower_bound) goto done;
28620 if (lower_bound->id != interpreter_id) goto done;
28621 __Pyx_InterpreterIdAndModule *end = data->table+data->count;
28622 for (;lower_bound<end-1; ++lower_bound) {
28623 lower_bound->id = (lower_bound+1)->id;
28624 lower_bound->module = (lower_bound+1)->module;
28625 }
28626 }
28627 --data->count;
28628 if (data->count == 0) {
28629 free(data);
28630 data = NULL;
28631 }
28632 done:
28633#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
28634 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
28635#else
28636 __Pyx_ModuleStateLookup_data = data;
28637#endif
28638 __Pyx_ModuleStateLookup_Unlock();
28639 return 0;
28640}
28641#endif
28642
28643/* #### Code section: utility_code_pragmas_end ### */
28644#ifdef _MSC_VER
28645#pragma warning( pop )
28646#endif
28647
28648
28649
28650/* #### Code section: end ### */
28651#endif /* Py_PYTHON_H */
Int n
Definition Headers.h:28
Double q
Definition Headers.h:81
Double T
Definition Headers.h:87
Double r
Definition Headers.h:83
Int number
Definition Headers.h:33
Double f
Definition Headers.h:64
Double s
Definition Headers.h:84
Double * z
Definition Headers.h:49
Double v
Definition Headers.h:95
void calculateConservationResidualPWL(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nodeStarOffsets, int *nElements_node, double *elementResidual, double *vAverage, double *starU, double *dX, double *w, double *normal, double *conservationResidual, double *starR, double *vConservative, double *vConservative_element)
void calculateConservationFluxPWL(int nNodes_global, int nNodes_internal, int *nElements_node, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *internalNodes, double *starR, double *starJ, double *starU)
void calculateConservationResidualGlobalBoundaries(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dS, double *normal, double *elementResidual, double *velocity, double *conservationResidual)
void calculateConservationJacobianPWL(int nNodes_global, int nNodes_internal, int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nodeStarOffsets, int *nodeStarJacobianOffsets, int *nElements_node, int *internalNodes, double *w, double *normal, double *starJacobian)
void calculateConservationResidualPWL_opt(int nNodes_owned, int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nElements_node, int *fluxElementBoundaries, double *elementResidual, double *vAverage, double *dX, double *w, double *normal, NodeStarFactorStruct *nodeStarFactor, double *conservationResidual, double *vConservative, double *vConservative_element)
void calculateConservationResidualPWL_primative(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *skipflag_elementBoundaries, double *elementResidual, double *dX, double *normal, double *conservationResidual, double *vConservative)
void updateSelectedExteriorElementBoundaryFlux(int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_test_element, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *skipflag_elementBoundaries, double *flux, double *w_dS, double *residual)
Update the element boundary flux on exterior element boundaries.
void calculateConservationJacobianPWL_interiorBoundaries(int nNodes_global, int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nElements_node, int *fluxElementBoundaries, double *w, double *normal, NodeStarFactorStruct *nodeStarFactor)
void getElementBoundaryBDM1velocityValuesLagrangeRep(int nElements_global, int nBoundaries_Element, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int nVDOF_element, int *elementBoundaryElementsArray, int *exteriorElementBoundariesArray, double *ebq_v, double *p1_velocity_dofs, double *ebq_velocity)
void calculateConservationFluxPWL_noNeumannFix(int nNodes_global, int *nElements_node, NodeStarFactorStruct *nodeStarFactor)
void getElementBoundaryRT0velocityValues(int nElements_global, int nElementBoundaries_element, int nPoints_elementBoundary, int nSpace, double *x_elementBoundary, double *rt0vdofs_element, double *v_elementBoundary)
void getGlobalExteriorElementBoundaryBDM1velocityValuesLagrangeRep(int nExteriorElementBoundaries_global, int nQuadraturePoints_elementBoundary, int nSpace, int nDOF_trial_element, int nVDOF_element, int *elementBoundaryElementsArray, int *exteriorElementBoundariesArray, double *ebqe_v, double *p1_velocity_dofs, double *ebqe_velocity)
void updateRT0velocityWithAveragedPotentialP1nc(int nElements_global, int nQuadraturePoints_element, int nSpace, double *detJ, double *quad_a, double *phi, double *gradphi, double *a, double *rt0vdofs)
int nodeStar_init(int nElements_global, int nNodes_element, int nNodes_global, int *nElements_node, int *nodeStarElementsArray, int *nodeStarElementNeighborsArray, int *N_p, int **subdomain_dim_p, double ***subdomain_L_p, double ***subdomain_R_p, double ***subdomain_U_p, PROTEUS_LAPACK_INTEGER ***subdomain_pivots_p, PROTEUS_LAPACK_INTEGER ***subdomain_column_pivots_p)
void solveLocalBDM2projection(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int nDOFs_test_element, int nVDOFs_element, double *BDMprojectionMatFact_element, int *BDMprojectionMatPivots_element, double *w_dS_f, double *ebq_n, double *w_interior_gradients, double *q_velocity, double *ebq_velocity, double *p1_velocity_dofs)
void postProcessRT0velocityFromP1nc(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *nFreeDOF_element, int *freeLocal_element, double *detJ, double *sqrt_det_g, double *n, double *elementBarycenters, double *quad_a, double *quad_f, double *w_dV_r, double *w_dV_m, double *u, double *gradu, double *a, double *f, double *r, double *mt, double *rt0vdofs)
void postProcessRT0velocityFromP1ncNoMass_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *nFreeDOF_element, int *freeLocal_element, double *detJ, double *sqrt_det_g, double *n, double *elementBarycenters, double *quad_a, double *quad_f, double *w_dV_r, double *u, double *gradu, double *a, double *f, double *r, double *rt0vdofs)
int nodeStar_copy(int other_N, int *other_subdomain_dim, double **other_subdomain_L, double **other_subdomain_R, double **other_subdomain_U, PROTEUS_LAPACK_INTEGER **other_subdomain_pivots, PROTEUS_LAPACK_INTEGER **other_subdomain_column_pivots, int *N_p, int **subdomain_dim_p, double ***subdomain_L_p, double ***subdomain_R_p, double ***subdomain_U_p, PROTEUS_LAPACK_INTEGER ***subdomain_pivots_p, PROTEUS_LAPACK_INTEGER ***subdomain_column_pivots_p)
void solveLocalBDM1projectionFromFlux(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOFs_test_element, int nVDOFs_element, double *BDMprojectionMatFact_element, int *BDMprojectionMatPivots_element, int *elementBoundaryElementsArray, int *elementBoundariesArray, double *w_dS_f, double *ebq_global_flux, double *p1_velocity_dofs)
void computeFluxCorrectionPWC(int nElementBoundaries_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, double *pwcW, double *pwcV, double *fluxCorrection)
void fluxCorrectionVelocityUpdate(int nElements_global, int nElementBoundaries_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dS, double *normal, double *fluxCorrection, double *vConservative, double *vConservative_element)
void postprocessDiffusiveVelocityPointEval(int nPoints, int nSpace, double updateCoef, const double *a, const double *grad_phi, double *velocity)
void getGlobalExteriorElementBoundaryRT0velocityValues(int nExteriorElementBoundaries_global, int nPoints_elementBoundary, int nSpace, int *elementBoundaryElementsArray, int *exteriorElementBoundariesArray, double *x_elementBoundary_global, double *rt0vdofs_element, double *v_elementBoundary_global)
void getGlobalExteriorElementBoundaryRT0velocityValuesFluxRep(int nExteriorElementBoundaries_global, int nPoints_elementBoundary_global, int nSpace, int nDetVals_element, double *nodeArray, int *elementNodesArray, int *elementBoundaryElementsArray, int *exteriorElementBoundariesArray, double *abs_det_J, double *x_ebqe, double *rt0vdofs_element, double *v_ebqe)
void getElementRT0velocityValues(int nElements_global, int nPoints_element, int nSpace, double *x_element, double *rt0vdofs_element, double *v_element)
void calculateElementResidualPWL(int nElements, int nDOF_element_res, int nDOF_element_resPWL, double *alpha, double *elementResidual, double *elementResidualPWL)
void postProcessRT0velocityFromP1ncNoMass(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *nFreeDOF_element, int *freeLocal_element, double *detJ, double *sqrt_det_g, double *n, double *elementBarycenters, double *quad_a, double *quad_f, double *w_dV_r, double *u, double *gradu, double *a, double *f, double *r, double *rt0vdofs)
void subdomain_U_copy_local2global(int max_nN_owned, int nElements_global, int nNodes_element, int *elementNodes, int *nodeStarElements, NodeStarFactorStruct *nodeStarFactor, double *subdomain_U)
void postprocessAdvectiveVelocityPointEval(int nPoints, int nSpace, double updateCoef, const double *f, double *velocity)
void getElementBDM2velocityValuesLagrangeRep(int nElements_global, int nQuadraturePoints_element, int nSpace, int nDOF_trial_element, int nVDOF_element, double *q_v, double *p1_velocity_dofs, double *q_velocity)
void getElementBoundaryRT0velocityValuesFluxRep(int nElements_global, int nElementBoundaries_element, int nPoints_elementBoundary, int nSpace, int nDetVals_element, double *nodeArray, int *elementNodesArray, double *abs_det_J, double *x_elementBoundary, double *rt0vdofs_element, double *v_elementBoundary)
void postProcessRT0velocityFromP1nc_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_test_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, int *nFreeDOF_element, int *freeLocal_element, double *detJ, double *sqrt_det_g, double *n, double *elementBarycenters, double *quad_a, double *quad_f, double *w_dV_r, double *w_dV_m, double *u, double *gradu, double *a, double *f, double *r, double *mt, double *rt0vdofs)
void getElementBDM1velocityValuesLagrangeRep(int nElements_global, int nQuadraturePoints_element, int nSpace, int nDOF_trial_element, int nVDOF_element, double *q_v, double *p1_velocity_dofs, double *q_velocity)
void calculateConservationResidualPWL_interiorBoundaries(int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nElements_node, int *fluxElementBoundaries, double *elementResidual, double *vAverage, double *dX, double *w, double *normal, NodeStarFactorStruct *nodeStarFactor, double *conservationResidual, double *vConservative, double *vConservative_element)
void getGlobalElementBoundaryRT0velocityValuesFluxRep(int nElementBoundaries_global, int nPoints_elementBoundary_global, int nSpace, int nDetVals_element, double *nodeArray, int *elementNodesArray, int *elementBoundaryElementsArray, double *abs_det_J, double *x_elementBoundary_global, double *rt0vdofs_element, double *v_elementBoundary_global)
void sunWheelerGSsweep(int nElements_global, int nElementBoundaries_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, double *dS, double *normal, double *sqrt_det_g, double *alpha, double *fluxCorrection, double *conservationResidual)
void buildBDM2rhs(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_elementInterior, int nSpace, int nDOFs_test_element, int nVDOFs_element, int nDOFs_trial_interior_element, double *BDMprojectionMatFact_element, int *BDMprojectionMatPivots_element, int *edgeFlags, double *w_dS_f, double *ebq_n, double *w_interior_grads, double *w_interior_divfree, double *ebq_velocity, double *q_velocity, double *p1_velocity_dofs)
void postProcessRT0potentialFromP1nc_sd(int nElements_global, int nQuadraturePoints_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int *rowptr, int *colind, double *uQuadratureWeights_element, double *elementBarycenters, double *aElementQuadratureWeights, double *detJ, double *uQuadratureWeights_elementBoundary, double *x, double *u, double *gradu, double *x_elementBoundary, double *u_elementBoundary, double *n, double *a, double *f, double *r, double *rt0vdofs, double *rt0potential)
void buildLocalBDM2projectionMatrices(int degree, int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nQuadraturePoints_elementInterior, int nSpace, int nDOFs_test_element, int nDOFs_trial_boundary_element, int nDOFs_trial_interior_element, int nVDOFs_element, int *edgeFlags, double *w_dS_f, double *ebq_n, double *ebq_v, double *BDMprojectionMat_element, double *q_basis_vals, double *w_int_test_grads, double *w_int_div_free, double *piola_trial_fun)
void subdomain_U_copy_global2local(int max_nN_owned, int nElements_global, int nNodes_element, int *elementNodes, int *nodeStarElements, NodeStarFactorStruct *nodeStarFactor, double *subdomain_U)
void getRT0velocityValuesFluxRep_arbitraryElementMembership(int nElements_global, int nElementBoundaries_element, int nPoints, int nSpace, int nDetVals_element, const double *nodeArray, const int *elementNodesArray, const double *abs_det_J, const double *x, const int *element_locations, const double *rt0vdofs_element, double *v_element)
void updateRT0velocityWithAveragedPotentialP1nc_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *detJ, double *quad_a, double *phi, double *gradphi, double *a, double *rt0vdofs)
void projectElementBoundaryFluxToRT0fluxRep(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nDOF_RT0V_element, int *elementBoundaryElementsArray, int *elementBoundariesArray, double *elementBoundaryQuadratureWeights, double *flux_elementBoundary, double *rt0vdofs_element)
void solveLocalBDM1projection(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int nDOFs_test_element, int nVDOFs_element, double *BDMprojectionMatFact_element, int *BDMprojectionMatPivots_element, double *w_dS_f, double *ebq_n, double *ebq_velocity, double *p1_velocity_dofs)
void factorLocalBDM1projectionMatrices(int nElements_global, int nVDOFs_element, double *BDMprojectionMat_element, int *BDMprojectionMatPivots_element)
void buildLocalBDM1projectionMatrices(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, int nDOFs_test_element, int nDOFs_trial_element, int nVDOFs_element, double *w_dS_f, double *ebq_n, double *ebq_v, double *BDMprojectionMat_element)
void getElementLDGvelocityValuesLagrangeRep(int nElements_global, int nQuadraturePoints_element, int nSpace, int nDOF_trial_element, int nVDOF_element, double *q_v, double *velocity_dofs, double *q_velocity)
void getElementRT0velocityValuesFluxRep(int nElements_global, int nElementBoundaries_element, int nPoints_element, int nSpace, int nDetVals_element, double *nodeArray, int *elementNodesArray, double *abs_det_J, double *x_element, double *rt0vdofs_element, double *v_element)
void postprocessDiffusiveVelocityPointEval_sd(int nPoints, int nSpace, double updateCoef, int *rowptr, int *colind, const double *a, const double *grad_phi, double *velocity)
void factorLocalBDM2projectionMatrices(int nElements_global, int nVDOFs_element, double *BDMprojectionMat_element, int *BDMprojectionMatPivots_element)
void projectElementBoundaryVelocityToRT0fluxRep(int nElements_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *elementBoundaryQuadratureWeights, double *n, double *v_elementBoundary, double *rt0vdofs_element)
void calculateConservationJacobianPWL_opt(int nNodes_owned, int nNodes_global, int nNodes_internal, int nElements_global, int nInteriorElementBoundaries_global, int nExteriorElementBoundaries_global, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nNodes_element, int nSpace, int *interiorElementBoundaries, int *exteriorElementBoundaries, int *elementBoundaryElements, int *elementBoundaryLocalElementBoundaries, int *elementNodes, int *nodeStarElements, int *nodeStarElementNeighbors, int *nElements_node, int *internalNodes, int *fluxElementBoundaries, int *fluxBoundaryNodes, double *w, double *normal, NodeStarFactorStruct *nodeStarFactor)
int nodeStar_free(int N, int *subdomain_dim, double **subdomain_L, double **subdomain_R, double **subdomain_U, PROTEUS_LAPACK_INTEGER **subdomain_pivots, PROTEUS_LAPACK_INTEGER **subdomain_column_pivots)
void getGlobalElementBoundaryRT0velocityValues(int nElementBoundaries_global, int nPoints_elementBoundary, int nSpace, int *elementBoundaryElementsArray, double *x_elementBoundary_global, double *rt0vdofs_element, double *v_elementBoundary_global)
void postProcessRT0potentialFromP1nc(int nElements_global, int nQuadraturePoints_element, int nElementBoundaries_element, int nQuadraturePoints_elementBoundary, int nSpace, double *uQuadratureWeights_element, double *elementBarycenters, double *aElementQuadratureWeights, double *detJ, double *uQuadratureWeights_elementBoundary, double *x, double *u, double *gradu, double *x_elementBoundary, double *u_elementBoundary, double *n, double *a, double *f, double *r, double *rt0vdofs, double *rt0potential)
void calculateConservationFluxPWL_opt(int nNodes_owned, int nNodes_global, int nNodes_internal, int *nElements_node, int *internalNodes, int *fluxBoundaryNodes, NodeStarFactorStruct *nodeStarFactor)
#define c(i)
Definition jf.h:21
Python interface to velocity postprocessing library.