proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
csubgridError.c
Go to the documentation of this file.
1/* Generated by Cython 3.3.0 */
2
3/* BEGIN: Cython Metadata
4{
5 "distutils": {
6 "depends": [
7 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayobject.h",
8 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayscalars.h",
9 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarrayobject.h",
10 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarraytypes.h",
11 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ufuncobject.h",
12 "proteus/subgridError.h"
13 ],
14 "extra_compile_args": [
15 "-Wall",
16 "-DF77_POST_UNDERSCORE",
17 "-DUSE_BLAS",
18 "-DCMRVEC_BOUNDS_CHECK",
19 "-DMV_VECTOR_BOUNDS_CHECK",
20 "-DPETSC_INCLUDE_AS_C",
21 "-DPETSC_SKIP_COMPLEX"
22 ],
23 "extra_link_args": [
24 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
25 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
26 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
27 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
28 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
29 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
30 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
31 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib"
32 ],
33 "include_dirs": [
34 "proteus",
35 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include"
36 ],
37 "language": "c",
38 "libraries": [
39 "m"
40 ],
41 "name": "csubgridError",
42 "sources": [
43 "proteus/csubgridError.pyx",
44 "proteus/subgridError.c"
45 ]
46 },
47 "module_name": "csubgridError"
48}
49END: Cython Metadata */
50
51#ifndef PY_SSIZE_T_CLEAN
52#define PY_SSIZE_T_CLEAN
53#endif /* PY_SSIZE_T_CLEAN */
54/* InitLimitedAPI */
55#if defined(Py_LIMITED_API)
56 #if !defined(CYTHON_LIMITED_API)
57 #define CYTHON_LIMITED_API 1
58 #endif
59#elif defined(CYTHON_LIMITED_API)
60 #ifdef _MSC_VER
61 #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.")
62 #else
63 #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.
64 #endif
65#endif
66
67#include "Python.h"
68#ifndef Py_PYTHON_H
69 #error Python headers needed to compile C extensions, please install development version of Python.
70#elif PY_VERSION_HEX < 0x03090000
71 #error Cython requires Python 3.9+.
72#elif defined(Py_LIMITED_API) && (Py_LIMITED_API & 0xFFFF0000) > (PY_VERSION_HEX & 0xFFFF0000)
73 #error 'Py_LIMITED_API' can only select past Python X.Y versions, not future ones.
74#else
75#define __PYX_ABI_VERSION "3_3_0"
76#define CYTHON_HEX_VERSION 0x030300F0
77#define CYTHON_FUTURE_DIVISION 1
78/* CModulePreamble */
79#include <stddef.h>
80#ifndef offsetof
81 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
82#endif
83#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
84 #ifndef __stdcall
85 #define __stdcall
86 #endif
87 #ifndef __cdecl
88 #define __cdecl
89 #endif
90 #ifndef __fastcall
91 #define __fastcall
92 #endif
93#endif
94#ifdef __has_builtin
95 #define __Pyx_has_cbuiltin(name) __has_builtin(name)
96#else
97 #define __Pyx_has_cbuiltin(name) (0)
98#endif
99#ifndef DL_IMPORT
100 #define DL_IMPORT(t) t
101#endif
102#ifndef DL_EXPORT
103 #define DL_EXPORT(t) t
104#endif
105#define __PYX_COMMA ,
106#ifndef PY_LONG_LONG
107 #define PY_LONG_LONG LONG_LONG
108#endif
109#ifndef Py_HUGE_VAL
110 #define Py_HUGE_VAL HUGE_VAL
111#endif
112#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
113#if defined(CYTHON_LIMITED_API)
114 #ifdef Py_LIMITED_API
115 #undef __PYX_LIMITED_VERSION_HEX
116 #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
117 #if Py_LIMITED_API < 0x03090000
118 #error "Cython 3.3 requires the Python Limited API version to be 3.9 or greater."
119 #endif
120 #endif
121 #if defined(GRAALVM_PYTHON) || defined(PYPY_VERSION)
122 #ifdef _MSC_VER
123 #pragma message ("Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
124 code for PyPy and GraalPy and is unlikely to work.")
125 #else
126 #warning "Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
127 code for PyPy and GraalPy and is unlikely to work."
128 #endif
129 #endif
130 #define CYTHON_COMPILING_IN_PYPY 0
131 #define CYTHON_COMPILING_IN_CPYTHON 0
132 #define CYTHON_COMPILING_IN_LIMITED_API 1
133 #define CYTHON_COMPILING_IN_GRAAL 0
134 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
135 #undef CYTHON_USE_TYPE_SLOTS
136 #define CYTHON_USE_TYPE_SLOTS 0
137 #undef CYTHON_USE_TYPE_SPECS
138 #define CYTHON_USE_TYPE_SPECS 1
139 #undef CYTHON_USE_PYTYPE_LOOKUP
140 #define CYTHON_USE_PYTYPE_LOOKUP 0
141 #undef CYTHON_USE_PYLIST_INTERNALS
142 #define CYTHON_USE_PYLIST_INTERNALS 0
143 #undef CYTHON_USE_UNICODE_INTERNALS
144 #define CYTHON_USE_UNICODE_INTERNALS 0
145 #ifndef CYTHON_USE_UNICODE_WRITER
146 #define CYTHON_USE_UNICODE_WRITER 0
147 #endif
148 #undef CYTHON_USE_PYLONG_INTERNALS
149 #define CYTHON_USE_PYLONG_INTERNALS 0
150 #ifndef CYTHON_AVOID_BORROWED_REFS
151 #define CYTHON_AVOID_BORROWED_REFS 0
152 #endif
153 #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
154 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
155 #endif
156 #undef CYTHON_ASSUME_SAFE_MACROS
157 #define CYTHON_ASSUME_SAFE_MACROS 0
158 #undef CYTHON_ASSUME_SAFE_SIZE
159 #define CYTHON_ASSUME_SAFE_SIZE 0
160 #undef CYTHON_UNPACK_METHODS
161 #define CYTHON_UNPACK_METHODS 0
162 #undef CYTHON_FAST_THREAD_STATE
163 #define CYTHON_FAST_THREAD_STATE 0
164 #undef CYTHON_FAST_GIL
165 #define CYTHON_FAST_GIL 0
166 #undef CYTHON_VECTORCALL
167 #define CYTHON_VECTORCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
168 #ifndef CYTHON_VECTORCALL_TPNEW
169 #define CYTHON_VECTORCALL_TPNEW (CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
170 #endif
171 #ifndef CYTHON_PEP487_INIT_SUBCLASS
172 #define CYTHON_PEP487_INIT_SUBCLASS 1
173 #endif
174 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
175 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
176 #endif
177 #ifndef CYTHON_USE_MODULE_STATE
178 #define CYTHON_USE_MODULE_STATE 0
179 #endif
180 #undef CYTHON_USE_SYS_MONITORING
181 #define CYTHON_USE_SYS_MONITORING 0
182 #ifndef CYTHON_USE_TP_FINALIZE
183 #define CYTHON_USE_TP_FINALIZE (__PYX_LIMITED_VERSION_HEX >= 0x030F0000 && PY_VERSION_HEX > 0x030F00A8)
184 #endif
185 #ifndef CYTHON_USE_AM_SEND
186 #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
187 #endif
188 #undef CYTHON_USE_DICT_VERSIONS
189 #define CYTHON_USE_DICT_VERSIONS 0
190 #undef CYTHON_USE_EXC_INFO_STACK
191 #define CYTHON_USE_EXC_INFO_STACK 0
192 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
193 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
194 #endif
195 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
196 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
197 #endif
198 #ifndef CYTHON_USE_FREELISTS
199 #define CYTHON_USE_FREELISTS 1
200 #endif
201 #undef CYTHON_IMMORTAL_CONSTANTS
202 #define CYTHON_IMMORTAL_CONSTANTS 0
203 #if __PYX_LIMITED_VERSION_HEX < 0x030E0000
204 #undef CYTHON_OPAQUE_OBJECTS
205 #define CYTHON_OPAQUE_OBJECTS 0
206 #elif !defined(CYTHON_OPAQUE_OBJECTS)
207 #define CYTHON_OPAQUE_OBJECTS (__PYX_LIMITED_VERSION_HEX >= 0x030F0000)
208 #endif
209#elif defined(GRAALVM_PYTHON)
210 /* For very preliminary testing purposes. Most variables are set the same as PyPy.
211 The existence of this section does not imply that anything works or is even tested */
212 #define CYTHON_COMPILING_IN_PYPY 0
213 #define CYTHON_COMPILING_IN_CPYTHON 0
214 #define CYTHON_COMPILING_IN_LIMITED_API 0
215 #define CYTHON_COMPILING_IN_GRAAL 1
216 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
217 #ifndef CYTHON_USE_TYPE_SLOTS
218 #define CYTHON_USE_TYPE_SLOTS 0
219 #endif
220 #undef CYTHON_USE_TYPE_SPECS
221 #define CYTHON_USE_TYPE_SPECS 0
222 #undef CYTHON_USE_PYTYPE_LOOKUP
223 #define CYTHON_USE_PYTYPE_LOOKUP 0
224 #undef CYTHON_USE_PYLIST_INTERNALS
225 #define CYTHON_USE_PYLIST_INTERNALS 0
226 #undef CYTHON_USE_UNICODE_INTERNALS
227 #define CYTHON_USE_UNICODE_INTERNALS 0
228 #undef CYTHON_USE_UNICODE_WRITER
229 #define CYTHON_USE_UNICODE_WRITER 0
230 #undef CYTHON_USE_PYLONG_INTERNALS
231 #define CYTHON_USE_PYLONG_INTERNALS 0
232 #undef CYTHON_AVOID_BORROWED_REFS
233 #define CYTHON_AVOID_BORROWED_REFS 1
234 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
235 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
236 #undef CYTHON_ASSUME_SAFE_MACROS
237 #define CYTHON_ASSUME_SAFE_MACROS 0
238 #undef CYTHON_ASSUME_SAFE_SIZE
239 #define CYTHON_ASSUME_SAFE_SIZE 0
240 #undef CYTHON_UNPACK_METHODS
241 #define CYTHON_UNPACK_METHODS 0
242 #undef CYTHON_FAST_THREAD_STATE
243 #define CYTHON_FAST_THREAD_STATE 0
244 #undef CYTHON_FAST_GIL
245 #define CYTHON_FAST_GIL 0
246 #ifndef CYTHON_VECTORCALL
247 #define CYTHON_VECTORCALL 1
248 #endif
249 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
250 #undef CYTHON_VECTORCALL_TPNEW
251 #define CYTHON_VECTORCALL_TPNEW 0
252 #elif !defined(CYTHON_VECTORCALL_TPNEW)
253 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
254 #endif
255 #ifndef CYTHON_PEP487_INIT_SUBCLASS
256 #define CYTHON_PEP487_INIT_SUBCLASS 1
257 #endif
258 #undef CYTHON_PEP489_MULTI_PHASE_INIT
259 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
260 #undef CYTHON_USE_MODULE_STATE
261 #define CYTHON_USE_MODULE_STATE 0
262 #undef CYTHON_USE_SYS_MONITORING
263 #define CYTHON_USE_SYS_MONITORING 0
264 #undef CYTHON_USE_TP_FINALIZE
265 #define CYTHON_USE_TP_FINALIZE 0
266 #undef CYTHON_USE_AM_SEND
267 #define CYTHON_USE_AM_SEND 0
268 #undef CYTHON_USE_DICT_VERSIONS
269 #define CYTHON_USE_DICT_VERSIONS 0
270 #undef CYTHON_USE_EXC_INFO_STACK
271 #define CYTHON_USE_EXC_INFO_STACK 1
272 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
273 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
274 #endif
275 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
276 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
277 #endif
278 #undef CYTHON_USE_FREELISTS
279 #define CYTHON_USE_FREELISTS 0
280 #undef CYTHON_IMMORTAL_CONSTANTS
281 #define CYTHON_IMMORTAL_CONSTANTS 0
282 #undef CYTHON_OPAQUE_OBJECTS
283 #define CYTHON_OPAQUE_OBJECTS 0
284#elif defined(PYPY_VERSION)
285 #define CYTHON_COMPILING_IN_PYPY 1
286 #define CYTHON_COMPILING_IN_CPYTHON 0
287 #define CYTHON_COMPILING_IN_LIMITED_API 0
288 #define CYTHON_COMPILING_IN_GRAAL 0
289 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
290 #undef CYTHON_USE_TYPE_SLOTS
291 #define CYTHON_USE_TYPE_SLOTS 1
292 #ifndef CYTHON_USE_TYPE_SPECS
293 #define CYTHON_USE_TYPE_SPECS 0
294 #endif
295 #undef CYTHON_USE_PYTYPE_LOOKUP
296 #define CYTHON_USE_PYTYPE_LOOKUP 0
297 #undef CYTHON_USE_PYLIST_INTERNALS
298 #define CYTHON_USE_PYLIST_INTERNALS 0
299 #undef CYTHON_USE_UNICODE_INTERNALS
300 #define CYTHON_USE_UNICODE_INTERNALS 0
301 #undef CYTHON_USE_UNICODE_WRITER
302 #define CYTHON_USE_UNICODE_WRITER 0
303 #undef CYTHON_USE_PYLONG_INTERNALS
304 #define CYTHON_USE_PYLONG_INTERNALS 0
305 #undef CYTHON_AVOID_BORROWED_REFS
306 #define CYTHON_AVOID_BORROWED_REFS 1
307 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
308 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
309 #undef CYTHON_ASSUME_SAFE_MACROS
310 #define CYTHON_ASSUME_SAFE_MACROS 0
311 #ifndef CYTHON_ASSUME_SAFE_SIZE
312 #define CYTHON_ASSUME_SAFE_SIZE 1
313 #endif
314 #undef CYTHON_UNPACK_METHODS
315 #define CYTHON_UNPACK_METHODS 0
316 #undef CYTHON_FAST_THREAD_STATE
317 #define CYTHON_FAST_THREAD_STATE 0
318 #undef CYTHON_FAST_GIL
319 #define CYTHON_FAST_GIL 0
320 #ifndef CYTHON_VECTORCALL
321 #define CYTHON_VECTORCALL 1
322 #endif
323 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
324 #undef CYTHON_VECTORCALL_TPNEW
325 #define CYTHON_VECTORCALL_TPNEW 0
326 #elif !defined(CYTHON_VECTORCALL_TPNEW)
327 #define CYTHON_VECTORCALL_TPNEW (PYPY_VERSION_NUM >= 0x07030800 && CYTHON_VECTORCALL)
328 #endif
329 #ifndef CYTHON_PEP487_INIT_SUBCLASS
330 #define CYTHON_PEP487_INIT_SUBCLASS 1
331 #endif
332 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
333 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
334 #endif
335 #undef CYTHON_USE_MODULE_STATE
336 #define CYTHON_USE_MODULE_STATE 0
337 #undef CYTHON_USE_SYS_MONITORING
338 #define CYTHON_USE_SYS_MONITORING 0
339 #ifndef CYTHON_USE_TP_FINALIZE
340 #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
341 #endif
342 #undef CYTHON_USE_AM_SEND
343 #define CYTHON_USE_AM_SEND 0
344 #undef CYTHON_USE_DICT_VERSIONS
345 #define CYTHON_USE_DICT_VERSIONS 0
346 #undef CYTHON_USE_EXC_INFO_STACK
347 #define CYTHON_USE_EXC_INFO_STACK 0
348 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
349 #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
350 #endif
351 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
352 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
353 #endif
354 #undef CYTHON_USE_FREELISTS
355 #define CYTHON_USE_FREELISTS 0
356 #undef CYTHON_IMMORTAL_CONSTANTS
357 #define CYTHON_IMMORTAL_CONSTANTS 0
358 #undef CYTHON_OPAQUE_OBJECTS
359 #define CYTHON_OPAQUE_OBJECTS 0
360#else
361 #define CYTHON_COMPILING_IN_PYPY 0
362 #define CYTHON_COMPILING_IN_CPYTHON 1
363 #define CYTHON_COMPILING_IN_LIMITED_API 0
364 #define CYTHON_COMPILING_IN_GRAAL 0
365 #ifdef Py_GIL_DISABLED
366 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
367 #else
368 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
369 #endif
370 #if PY_VERSION_HEX < 0x030A0000
371 #undef CYTHON_USE_TYPE_SLOTS
372 #define CYTHON_USE_TYPE_SLOTS 1
373 #elif !defined(CYTHON_USE_TYPE_SLOTS)
374 #define CYTHON_USE_TYPE_SLOTS 1
375 #endif
376 #ifndef CYTHON_USE_TYPE_SPECS
377 #define CYTHON_USE_TYPE_SPECS 0
378 #endif
379 #ifndef CYTHON_USE_PYTYPE_LOOKUP
380 #define CYTHON_USE_PYTYPE_LOOKUP 1
381 #endif
382 #ifndef CYTHON_USE_PYLONG_INTERNALS
383 #define CYTHON_USE_PYLONG_INTERNALS 1
384 #endif
385 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
386 #undef CYTHON_USE_PYLIST_INTERNALS
387 #define CYTHON_USE_PYLIST_INTERNALS 0
388 #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
389 #define CYTHON_USE_PYLIST_INTERNALS 1
390 #endif
391 #ifndef CYTHON_USE_UNICODE_INTERNALS
392 #define CYTHON_USE_UNICODE_INTERNALS 1
393 #endif
394 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
395 #undef CYTHON_USE_UNICODE_WRITER
396 #define CYTHON_USE_UNICODE_WRITER 0
397 #elif !defined(CYTHON_USE_UNICODE_WRITER)
398 #define CYTHON_USE_UNICODE_WRITER 1
399 #endif
400 #ifndef CYTHON_AVOID_BORROWED_REFS
401 #define CYTHON_AVOID_BORROWED_REFS 0
402 #endif
403 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
404 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
405 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
406 #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
407 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
408 #endif
409 #ifndef CYTHON_ASSUME_SAFE_MACROS
410 #define CYTHON_ASSUME_SAFE_MACROS 1
411 #endif
412 #ifndef CYTHON_ASSUME_SAFE_SIZE
413 #define CYTHON_ASSUME_SAFE_SIZE 1
414 #endif
415 #ifndef CYTHON_UNPACK_METHODS
416 #define CYTHON_UNPACK_METHODS 1
417 #endif
418 #ifndef CYTHON_FAST_THREAD_STATE
419 #define CYTHON_FAST_THREAD_STATE 1
420 #endif
421 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
422 #undef CYTHON_FAST_GIL
423 #define CYTHON_FAST_GIL 0
424 #elif !defined(CYTHON_FAST_GIL)
425 #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
426 #endif
427 #ifndef CYTHON_VECTORCALL
428 #define CYTHON_VECTORCALL 1
429 #endif
430 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
431 #undef CYTHON_VECTORCALL_TPNEW
432 #define CYTHON_VECTORCALL_TPNEW 0
433 #elif !defined(CYTHON_VECTORCALL_TPNEW)
434 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
435 #endif
436 #ifndef CYTHON_PEP487_INIT_SUBCLASS
437 #define CYTHON_PEP487_INIT_SUBCLASS 1
438 #endif
439 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
440 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
441 #endif
442 #ifndef CYTHON_USE_MODULE_STATE
443 #define CYTHON_USE_MODULE_STATE 0
444 #endif
445 #ifndef CYTHON_USE_SYS_MONITORING
446 #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
447 #endif
448 #ifndef CYTHON_USE_TP_FINALIZE
449 #define CYTHON_USE_TP_FINALIZE 1
450 #endif
451 #ifndef CYTHON_USE_AM_SEND
452 #define CYTHON_USE_AM_SEND 1
453 #endif
454 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
455 #undef CYTHON_USE_DICT_VERSIONS
456 #define CYTHON_USE_DICT_VERSIONS 0
457 #elif !defined(CYTHON_USE_DICT_VERSIONS)
458 #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
459 #endif
460 #ifndef CYTHON_USE_EXC_INFO_STACK
461 #define CYTHON_USE_EXC_INFO_STACK 1
462 #endif
463 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
464 #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
465 #endif
466 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
467 #define CYTHON_USE_OWN_PREP_RERAISE_STAR (PY_VERSION_HEX < 0x030C00B2)
468 #endif
469 #ifndef CYTHON_USE_FREELISTS
470 #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
471 #endif
472 #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
473 #undef CYTHON_IMMORTAL_CONSTANTS
474 #define CYTHON_IMMORTAL_CONSTANTS 0 // definitely won't work
475 #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
476 #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
477 #endif
478 #ifndef CYTHON_OPAQUE_OBJECTS
479 #define CYTHON_OPAQUE_OBJECTS 0
480 #endif
481#endif
482#if CYTHON_USE_PYLONG_INTERNALS
483 #undef SHIFT
484 #undef BASE
485 #undef MASK
486 #ifdef SIZEOF_VOID_P
487 enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
488 #endif
489#endif
490#ifndef __has_attribute
491 #define __has_attribute(x) 0
492#endif
493#ifndef __has_cpp_attribute
494 #define __has_cpp_attribute(x) 0
495#endif
496#ifndef CYTHON_RESTRICT
497 #if defined(__GNUC__)
498 #define CYTHON_RESTRICT __restrict__
499 #elif defined(_MSC_VER) && _MSC_VER >= 1400
500 #define CYTHON_RESTRICT __restrict
501 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
502 #define CYTHON_RESTRICT restrict
503 #else
504 #define CYTHON_RESTRICT
505 #endif
506#endif
507#ifndef CYTHON_UNUSED
508 #if defined(__cplusplus)
509 /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
510 * but leads to warnings with -pedantic, since it is a C++17 feature */
511 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
512 #if __has_cpp_attribute(maybe_unused)
513 #define CYTHON_UNUSED [[maybe_unused]]
514 #endif
515 #endif
516 #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
517 #define CYTHON_UNUSED [[maybe_unused]]
518 #endif
519#endif
520#ifndef CYTHON_UNUSED
521# if defined(__GNUC__)
522# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
523# define CYTHON_UNUSED __attribute__ ((__unused__))
524# else
525# define CYTHON_UNUSED
526# endif
527# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
528# define CYTHON_UNUSED __attribute__ ((__unused__))
529# else
530# define CYTHON_UNUSED
531# endif
532#endif
533#ifndef CYTHON_UNUSED_VAR
534# if defined(__cplusplus)
535 template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
536# else
537# define CYTHON_UNUSED_VAR(x) (void)(x)
538# endif
539#endif
540#ifndef CYTHON_MAYBE_UNUSED_VAR
541 #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
542#endif
543#ifndef CYTHON_NCP_UNUSED
544# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
545# define CYTHON_NCP_UNUSED
546# else
547# define CYTHON_NCP_UNUSED CYTHON_UNUSED
548# endif
549#endif
550#ifndef CYTHON_USE_CPP_STD_MOVE
551 #if defined(__cplusplus) && (\
552 __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
553 #define CYTHON_USE_CPP_STD_MOVE 1
554 #else
555 #define CYTHON_USE_CPP_STD_MOVE 0
556 #endif
557#endif
558#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
559#include <stdint.h>
560typedef uintptr_t __pyx_uintptr_t;
561#ifndef CYTHON_FALLTHROUGH
562 #if defined(__cplusplus)
563 /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
564 * but leads to warnings with -pedantic, since it is a C++17 feature */
565 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
566 #if __has_cpp_attribute(fallthrough)
567 #define CYTHON_FALLTHROUGH [[fallthrough]]
568 #endif
569 #endif
570 #ifndef CYTHON_FALLTHROUGH
571 #if __has_cpp_attribute(clang::fallthrough)
572 #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
573 #elif __has_cpp_attribute(gnu::fallthrough)
574 #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
575 #endif
576 #endif
577 #endif
578 #ifndef CYTHON_FALLTHROUGH
579 #if __has_attribute(fallthrough)
580 #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
581 #else
582 #define CYTHON_FALLTHROUGH
583 #endif
584 #endif
585 #if defined(__clang__) && defined(__apple_build_version__)
586 #if __apple_build_version__ < 7000000
587 #undef CYTHON_FALLTHROUGH
588 #define CYTHON_FALLTHROUGH
589 #endif
590 #endif
591#endif
592#ifdef Py_UNREACHABLE
593 #define __Pyx_UNREACHABLE() Py_UNREACHABLE()
594#elif __Pyx_has_cbuiltin(__builtin_unreachable)
595 #define __Pyx_UNREACHABLE() __builtin_unreachable()
596#elif defined(__clang__) || defined(__INTEL_COMPILER) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)))
597 #define __Pyx_UNREACHABLE() __builtin_unreachable()
598#elif defined(_MSC_VER)
599 #define __Pyx_UNREACHABLE() __assume(0)
600#else
601 #define __Pyx_UNREACHABLE() Py_FatalError("Unreachable C code path reached")
602#endif
603#ifndef Py_UNREACHABLE
604 #define Py_UNREACHABLE() __Pyx_UNREACHABLE()
605#endif
606#ifdef __cplusplus
607 template <typename T>
608 struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
609 #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
610#else
611 #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
612#endif
613#if CYTHON_COMPILING_IN_PYPY == 1
614 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX < 0x030A0000)
615#else
616 #define __PYX_NEED_TP_PRINT_SLOT 0
617#endif
618#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
619#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
620#define __Pyx_PyErr_FetchException(petype, peval, petb) PyErr_Fetch(petype, peval, petb)
621#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_Restore(etype, eval, etb)
622#else
623#define __Pyx_PyErr_FetchException(petype, peval, petb) *(petype)=NULL; *(peval)=PyErr_GetRaisedException(); *(petb)=NULL
624#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_SetRaisedException(eval)
625#endif
626
627/* CInitCode */
628#ifndef CYTHON_INLINE
629 #if defined(__clang__)
630 #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
631 #elif defined(__GNUC__)
632 #define CYTHON_INLINE __inline__
633 #elif defined(_MSC_VER)
634 #define CYTHON_INLINE __inline
635 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
636 #define CYTHON_INLINE inline
637 #else
638 #define CYTHON_INLINE
639 #endif
640#endif
641
642/* PythonCompatibility */
643#define __PYX_BUILD_PY_SSIZE_T "n"
644#define CYTHON_FORMAT_SSIZE_T "z"
645#define __Pyx_BUILTIN_MODULE_NAME "builtins"
646#define __Pyx_DefaultClassType PyType_Type
647#if CYTHON_COMPILING_IN_LIMITED_API
648 #ifndef CO_OPTIMIZED
649 static int CO_OPTIMIZED;
650 #endif
651 #ifndef CO_NEWLOCALS
652 static int CO_NEWLOCALS;
653 #endif
654 #ifndef CO_VARARGS
655 static int CO_VARARGS;
656 #endif
657 #ifndef CO_VARKEYWORDS
658 static int CO_VARKEYWORDS;
659 #endif
660 #ifndef CO_ASYNC_GENERATOR
661 static int CO_ASYNC_GENERATOR;
662 #endif
663 #ifndef CO_GENERATOR
664 static int CO_GENERATOR;
665 #endif
666 #ifndef CO_COROUTINE
667 static int CO_COROUTINE;
668 #endif
669#else
670 #ifndef CO_COROUTINE
671 #define CO_COROUTINE 0x80
672 #endif
673 #ifndef CO_ASYNC_GENERATOR
674 #define CO_ASYNC_GENERATOR 0x200
675 #endif
676#endif
677static int __Pyx_init_co_variables(void);
678#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
679 #define __Pyx_Py_Is(x, y) Py_Is(x, y)
680#else
681 #define __Pyx_Py_Is(x, y) ((x) == (y))
682#endif
683#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
684 #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
685#else
686 #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
687#endif
688#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
689 #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
690#else
691 #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
692#endif
693#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
694 #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
695#else
696 #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
697#endif
698#define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj))
699#if CYTHON_COMPILING_IN_PYPY
700 #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
701#else
702 #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
703#endif
704#if CYTHON_COMPILING_IN_LIMITED_API
705static unsigned long __Pyx_Runtime_TPFLAGS_SEQUENCE;
706static unsigned long __Pyx_Runtime_TPFLAGS_MAPPING;
707#else
708#define __Pyx_Runtime_TPFLAGS_SEQUENCE Py_TPFLAGS_SEQUENCE
709#define __Pyx_Runtime_TPFLAGS_MAPPING Py_TPFLAGS_MAPPING
710#endif
711static int __Pyx_init_tpflags_variables(void);
712#ifndef Py_TPFLAGS_HAVE_FINALIZE
713 #define Py_TPFLAGS_HAVE_FINALIZE 0
714#endif
715#ifndef Py_TPFLAGS_SEQUENCE
716 #define Py_TPFLAGS_SEQUENCE (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 5)
717#endif
718#ifndef Py_TPFLAGS_MAPPING
719 #define Py_TPFLAGS_MAPPING (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 6)
720#endif
721#ifndef Py_TPFLAGS_IMMUTABLETYPE
722 #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
723#endif
724#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
725 #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
726#endif
727#ifndef METH_STACKLESS
728 #define METH_STACKLESS 0
729#endif
730#if !defined(METH_FASTCALL) || CYTHON_COMPILING_IN_PYPY
731 #ifndef METH_FASTCALL
732 #define METH_FASTCALL 0x80
733 #endif
734 typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
735 typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
736 Py_ssize_t nargs, PyObject *kwnames);
737#else
738 #if PY_VERSION_HEX >= 0x030d00A4
739 # define __Pyx_PyCFunctionFast PyCFunctionFast
740 # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
741 #else
742 # define __Pyx_PyCFunctionFast _PyCFunctionFast
743 # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
744 #endif
745#endif
746#if CYTHON_VECTORCALL
747 #define __Pyx_METH_FASTCALL METH_FASTCALL
748 #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
749 #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
750#else
751 #define __Pyx_METH_FASTCALL METH_VARARGS
752 #define __Pyx_PyCFunction_FastCall PyCFunction
753 #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
754#endif
755#if CYTHON_VECTORCALL
756 #define __pyx_vectorcallfunc vectorcallfunc
757 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET
758 #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n))
759#else
760 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0
761 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n))
762#endif
763#define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func)
764#define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func)
765#if CYTHON_COMPILING_IN_CPYTHON
766#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth)
767#elif !CYTHON_COMPILING_IN_LIMITED_API
768#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func)
769#endif
770#if CYTHON_COMPILING_IN_CPYTHON
771#define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags)
772static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
773 return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
774}
775#endif
776static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
777#if CYTHON_COMPILING_IN_LIMITED_API
778 return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
779#else
780 return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
781#endif
782}
783#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc)
784#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
785 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b))
786#else
787 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b)
788#endif
789#if CYTHON_COMPILING_IN_PYPY
790 typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
791#else
792 #define __Pyx_PyCMethod PyCMethod
793#endif
794#ifndef METH_METHOD
795 #define METH_METHOD 0x200
796#endif
797#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
798 #define PyObject_Malloc(s) PyMem_Malloc(s)
799 #define PyObject_Free(p) PyMem_Free(p)
800 #define PyObject_Realloc(p) PyMem_Realloc(p)
801#endif
802#if CYTHON_COMPILING_IN_LIMITED_API
803 #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
804#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
805 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
806 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
807#elif CYTHON_COMPILING_IN_GRAAL
808 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
809 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
810#else
811 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
812 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
813#endif
814#if CYTHON_COMPILING_IN_LIMITED_API
815 #define __Pyx_PyThreadState_Current PyThreadState_Get()
816#elif !CYTHON_FAST_THREAD_STATE
817 #define __Pyx_PyThreadState_Current PyThreadState_GET()
818#elif PY_VERSION_HEX >= 0x030d00A1
819 #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
820#else
821 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
822#endif
823#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
824 #define __PYX_SHARED_SIZEOF(T) -((int)sizeof(T))
825 #define __PYX_SHARED_RELATIVE_OFFSET Py_RELATIVE_OFFSET
826 #define CYTHON_OPAQUE_SHARED_TYPES 1
827#else
828 #define __PYX_SHARED_SIZEOF(T) sizeof(T)
829 #define __PYX_SHARED_RELATIVE_OFFSET 0
830 #define CYTHON_OPAQUE_SHARED_TYPES 0
831#endif
832#if CYTHON_USE_MODULE_STATE
833static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
834{
835 void *result;
836 result = PyModule_GetState(op);
837 if (!result)
838 Py_FatalError("Couldn't find the module state");
839 return result;
840}
841#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
842#else
843#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
844#endif
845#define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
846#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
847#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
848#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
849#if CYTHON_USE_TYPE_SLOTS
850 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name)
851 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
852 #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
853 #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
854#else
855 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name))
856 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
857 ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
858 (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
859 __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
860 #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
861 #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
862#endif
863#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
864#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
865#else
866#define __Pyx_PyDict_NewPresized(n) PyDict_New()
867#endif
868#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
869#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
870#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
871#define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
872static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
873 PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
874 if (res == NULL && PyErr_Occurred()) {
875 PyErr_WriteUnraisable(NULL);
876 }
877 return res;
878}
879#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
880#define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError
881#define __Pyx_PyDict_GetItemStr PyDict_GetItem
882#else
883static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
884#if CYTHON_COMPILING_IN_PYPY
885 return PyDict_GetItem(dict, name);
886#else
887 PyDictEntry *ep;
888 PyDictObject *mp = (PyDictObject*) dict;
889 long hash = ((PyStringObject *) name)->ob_shash;
890 assert(hash != -1);
891 ep = (mp->ma_lookup)(mp, name, hash);
892 if (ep == NULL) {
893 return NULL;
894 }
895 return ep->me_value;
896#endif
897}
898#define __Pyx_PyDict_GetItemStr PyDict_GetItem
899#endif
900#if CYTHON_USE_TYPE_SLOTS
901 #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags)
902 #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
903#else
904 #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp))
905 #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature)
906#endif
907#define __Pyx_PyObject_GetIterNextFunc(iterator) __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
908#if CYTHON_USE_TYPE_SPECS
909#define __Pyx_PyHeapTypeObject_GC_Del(obj) {\
910 PyTypeObject *type = Py_TYPE((PyObject*)obj);\
911 assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
912 PyObject_GC_Del(obj);\
913 Py_DECREF(type);\
914}
915#else
916#define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj)
917#endif
918#if CYTHON_COMPILING_IN_LIMITED_API
919 #define __Pyx_PyUnicode_READY(op) (0)
920 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
921 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U)
922 #define __Pyx_PyUnicode_KIND(u) ((void)u, (0))
923 #define __Pyx_PyUnicode_KIND_04(u) __Pyx_PyUnicode_KIND(u)
924 #define __Pyx_PyUnicode_DATA(u) ((void*)u)
925 #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
926 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u))
927#else
928 #if PY_VERSION_HEX >= 0x030C0000
929 #define __Pyx_PyUnicode_READY(op) (0)
930 #else
931 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
932 0 : _PyUnicode_Ready((PyObject *)(op)))
933 #endif
934 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
935 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
936 #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u))
937 #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
938 #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
939 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
940 #if PY_VERSION_HEX >= 0x030C0000
941 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
942 #else
943 #if CYTHON_COMPILING_IN_CPYTHON
944 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
945 #else
946 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
947 #endif
948 #endif
949 static CYTHON_INLINE int __Pyx_PyUnicode_KIND_04(PyObject *o) {
950 return __Pyx_PyUnicode_KIND(o) - (int) !!PyUnicode_IS_ASCII(o);
951 }
952#endif
953#if CYTHON_COMPILING_IN_PYPY
954 #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
955 #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
956#else
957 #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
958 #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
959 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
960#endif
961#if CYTHON_COMPILING_IN_PYPY
962 #if !defined(PyUnicode_DecodeUnicodeEscape)
963 #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors)
964 #endif
965 #if !defined(PyUnicode_Contains)
966 #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
967 #endif
968 #if !defined(PyByteArray_Check)
969 #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
970 #endif
971 #if !defined(PyObject_Format)
972 #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
973 #endif
974#endif
975#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
976#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
977 #define __Pyx_PySequence_ListKeepNew(obj)\
978 (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
979#elif CYTHON_COMPILING_IN_CPYTHON
980 #define __Pyx_PySequence_ListKeepNew(obj)\
981 (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
982#else
983 #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj)
984#endif
985#ifndef PySet_CheckExact
986 #define PySet_CheckExact(obj) Py_IS_TYPE(obj, &PySet_Type)
987#endif
988enum __Pyx_ReferenceSharing {
989 __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
990 __Pyx_ReferenceSharing_OwnStrongReference,
991 __Pyx_ReferenceSharing_FunctionArgument,
992 __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
993};
994#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
995#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
996 (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
997 (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
998 (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
999#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
1000#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
1001#else
1002#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
1003#endif
1004#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1005 #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
1006#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1007 #if CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
1008 #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1009 #else
1010 #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
1011 #endif
1012#elif CYTHON_COMPILING_IN_LIMITED_API || !(CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE)
1013 #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
1014#else
1015 #define __Pyx_PyList_GetItemRef(o, i) (likely(__Pyx_is_valid_index(i, PyList_GET_SIZE(o))) ?\
1016 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1017#endif
1018#if CYTHON_AVOID_BORROWED_REFS || CYTHON_COMPILING_IN_LIMITED_API
1019 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1020 __Pyx_PyList_GetItemRef(o, i))
1021#elif CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1022 #if CYTHON_ASSUME_SAFE_MACROS
1023 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1024 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1025 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1026 #else
1027 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1028 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1029 __Pyx_XNewRef(PyList_GetItem(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1030 #endif
1031#elif CYTHON_ASSUME_SAFE_MACROS
1032 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1033 __Pyx_NewRef(PyList_GET_ITEM(o, i)))
1034#else
1035 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1036 __Pyx_XNewRef(PyList_GetItem(o, i)))
1037#endif
1038#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1039#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
1040#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1041static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1042 *result = PyObject_GetItem(dict, key);
1043 if (*result == NULL) {
1044 if (PyErr_ExceptionMatches(PyExc_KeyError)) {
1045 PyErr_Clear();
1046 return 0;
1047 }
1048 return -1;
1049 }
1050 return 1;
1051}
1052#else
1053static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1054 *result = PyDict_GetItemWithError(dict, key);
1055 if (*result == NULL) {
1056 return PyErr_Occurred() ? -1 : 0;
1057 }
1058 Py_INCREF(*result);
1059 return 1;
1060}
1061#endif
1062#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
1063 #define __Pyx_VISIT_CONST(obj) Py_VISIT(obj)
1064#else
1065 #define __Pyx_VISIT_CONST(obj)
1066#endif
1067#if CYTHON_ASSUME_SAFE_MACROS
1068 #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
1069 #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
1070 #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
1071 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
1072 #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
1073 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
1074#else
1075 #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
1076 #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
1077 #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
1078 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
1079 #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
1080 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
1081#endif
1082#if CYTHON_ASSUME_SAFE_SIZE
1083 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
1084 #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
1085 #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
1086 #define __Pyx_PyDict_GET_SIZE(o) PyDict_GET_SIZE(o)
1087 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
1088 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
1089 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
1090#else
1091 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
1092 #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
1093 #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
1094 #define __Pyx_PyDict_GET_SIZE(o) PyDict_Size(o)
1095 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
1096 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
1097 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
1098#endif
1099#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
1100 #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
1101#endif
1102#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
1103#define __Pyx_PyLong_AsHash_t __Pyx_PyIndex_AsSsize_t
1104#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1105 #define __Pyx_PySendResult PySendResult
1106#else
1107 typedef enum {
1108 PYGEN_RETURN = 0,
1109 PYGEN_ERROR = -1,
1110 PYGEN_NEXT = 1,
1111 } __Pyx_PySendResult;
1112#endif
1113#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
1114 typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
1115#else
1116 #define __Pyx_pyiter_sendfunc sendfunc
1117#endif
1118#if !CYTHON_USE_AM_SEND
1119#define __PYX_HAS_PY_AM_SEND 0
1120#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1121#define __PYX_HAS_PY_AM_SEND 1
1122#else
1123#define __PYX_HAS_PY_AM_SEND 2 // our own backported implementation
1124#endif
1125#if __PYX_HAS_PY_AM_SEND < 2
1126 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
1127#else
1128 typedef struct {
1129 unaryfunc am_await;
1130 unaryfunc am_aiter;
1131 unaryfunc am_anext;
1132 __Pyx_pyiter_sendfunc am_send;
1133 } __Pyx_PyAsyncMethodsStruct;
1134 #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
1135#endif
1136#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
1137 #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
1138#else
1139 #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
1140#endif
1141#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
1142#ifdef __cplusplus
1143extern "C"
1144#endif
1145PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
1146#endif
1147#if CYTHON_COMPILING_IN_LIMITED_API
1148static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
1149 int value;
1150 PyObject *py_value = PyObject_GetAttrString(inspect, name);
1151 if (!py_value) return 0;
1152 value = (int) PyLong_AsLong(py_value);
1153 Py_DECREF(py_value);
1154 *write_to = value;
1155 return value != -1 || !PyErr_Occurred();
1156}
1157static int __Pyx_init_co_variables(void) {
1158 PyObject *inspect;
1159 int result;
1160 inspect = PyImport_ImportModule("inspect");
1161 result =
1162#if !defined(CO_OPTIMIZED)
1163 __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
1164#endif
1165#if !defined(CO_NEWLOCALS)
1166 __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
1167#endif
1168#if !defined(CO_VARARGS)
1169 __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
1170#endif
1171#if !defined(CO_VARKEYWORDS)
1172 __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
1173#endif
1174#if !defined(CO_ASYNC_GENERATOR)
1175 __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
1176#endif
1177#if !defined(CO_GENERATOR)
1178 __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
1179#endif
1180#if !defined(CO_COROUTINE)
1181 __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
1182#endif
1183 1;
1184 Py_DECREF(inspect);
1185 return result ? 0 : -1;
1186}
1187static int __Pyx_init_tpflags_bitcount(unsigned long flag) {
1188 int count = 0;
1189 while (flag) {
1190 count += (int) (flag & 1);
1191 flag >>= 1;
1192 }
1193 return count;
1194}
1195static int __Pyx_init_tpflags_variables(void) {
1196 if (__Pyx_Runtime_TPFLAGS_SEQUENCE != 0 && __Pyx_Runtime_TPFLAGS_MAPPING != 0) {
1197 return 0;
1198 }
1199 PyObject *collections_abc = PyImport_ImportModule("collections.abc");
1200 if (!collections_abc) return -1;
1201 int result = 0;
1202 PyObject *sequence = NULL, *mapping = NULL;
1203#if __PYX_LIMITED_VERSION_HEX >= 0x030D0000
1204 if (PyObject_GetOptionalAttrString(collections_abc, "Sequence", &sequence) != 1) goto fail;
1205 if (PyObject_GetOptionalAttrString(collections_abc, "Mapping", &mapping) != 1) goto fail;
1206#else
1207 sequence = PyObject_GetAttrString(collections_abc, "Sequence");
1208 if (!sequence) goto fail_attr_lookup;
1209 mapping = PyObject_GetAttrString(collections_abc, "Mapping");
1210 if (!mapping) goto fail_attr_lookup;
1211#endif
1212 if (!PyType_Check(sequence) || !PyType_Check(mapping)) goto fail;
1213 {
1214 unsigned long sequence_flags = PyType_GetFlags((PyTypeObject*)sequence);
1215 unsigned long mapping_flags = PyType_GetFlags((PyTypeObject*)mapping);
1216 unsigned long mutual_flags = sequence_flags & mapping_flags;
1217 sequence_flags = sequence_flags ^ mutual_flags;
1218 mapping_flags = mapping_flags ^ mutual_flags;
1219 if (__Pyx_Runtime_TPFLAGS_SEQUENCE == 0 && __Pyx_init_tpflags_bitcount(sequence_flags) == 1) {
1220 __Pyx_Runtime_TPFLAGS_SEQUENCE = sequence_flags;
1221 }
1222 if (__Pyx_Runtime_TPFLAGS_MAPPING == 0 && __Pyx_init_tpflags_bitcount(mapping_flags) == 1) {
1223 __Pyx_Runtime_TPFLAGS_MAPPING = mapping_flags;
1224 }
1225 }
1226 cleanup:
1227 Py_XDECREF(mapping);
1228 Py_XDECREF(sequence);
1229 Py_DECREF(collections_abc);
1230 return result;
1231#if __PYX_LIMITED_VERSION_HEX < 0x030D0000
1232 fail_attr_lookup:
1233 if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
1234 PyErr_Clear();
1235 }
1236#endif
1237 fail:
1238 result = PyErr_Occurred() ? -1 : 0;
1239 goto cleanup;
1240}
1241#else
1242static int __Pyx_init_co_variables(void) {
1243 return 0; // It's a limited API-only feature
1244}
1245static int __Pyx_init_tpflags_variables(void) {
1246 return 0; // It's a limited API-only feature
1247}
1248#endif
1249
1250/* MathInitCode */
1251#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
1252 #ifndef _USE_MATH_DEFINES
1253 #define _USE_MATH_DEFINES
1254 #endif
1255#endif
1256#include <math.h>
1257#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
1258#define __Pyx_truncl trunc
1259#else
1260#define __Pyx_truncl truncl
1261#endif
1262
1263#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1264#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 1
1265#endif
1266#ifndef CYTHON_CLINE_IN_TRACEBACK
1267#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1268#endif
1269#if CYTHON_CLINE_IN_TRACEBACK
1270#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; }
1271#else
1272#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; }
1273#endif
1274#define __PYX_ERR(f_index, lineno, Ln_error) \
1275 { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
1276
1277#ifdef CYTHON_EXTERN_C
1278 #undef __PYX_EXTERN_C
1279 #define __PYX_EXTERN_C CYTHON_EXTERN_C
1280#elif defined(__PYX_EXTERN_C)
1281 #ifdef _MSC_VER
1282 #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
1283 #else
1284 #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
1285 #endif
1286#else
1287 #ifdef __cplusplus
1288 #define __PYX_EXTERN_C extern "C"
1289 #else
1290 #define __PYX_EXTERN_C extern
1291 #endif
1292#endif
1293
1294#define __PYX_HAVE__csubgridError
1295#define __PYX_HAVE_API__csubgridError
1296/* Early includes */
1297#include <string.h>
1298#include <stdio.h>
1299
1300 /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
1301
1302#include "numpy/arrayobject.h"
1303#include "numpy/ndarrayobject.h"
1304#include "numpy/ndarraytypes.h"
1305#include "numpy/arrayscalars.h"
1306#include "numpy/ufuncobject.h"
1307#include "subgridError.h"
1308#ifdef _OPENMP
1309#include <omp.h>
1310#endif /* _OPENMP */
1311
1312#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
1313#define CYTHON_WITHOUT_ASSERTIONS
1314#endif
1315
1316#ifdef CYTHON_FREETHREADING_COMPATIBLE
1317#if CYTHON_FREETHREADING_COMPATIBLE
1318#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
1319#else
1320#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1321#endif
1322#else
1323#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1324#endif
1325#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
1326#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
1327#define __PYX_DEFAULT_STRING_ENCODING ""
1328#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
1329#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
1330#define __Pyx_uchar_cast(c) ((unsigned char)c)
1331#define __Pyx_long_cast(x) ((long)x)
1332#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
1333 (sizeof(type) < sizeof(Py_ssize_t)) ||\
1334 (sizeof(type) > sizeof(Py_ssize_t) &&\
1335 likely(v < (type)PY_SSIZE_T_MAX ||\
1336 v == (type)PY_SSIZE_T_MAX) &&\
1337 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
1338 v == (type)PY_SSIZE_T_MIN))) ||\
1339 (sizeof(type) == sizeof(Py_ssize_t) &&\
1340 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
1341 v == (type)PY_SSIZE_T_MAX))) )
1342static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
1343 return (size_t) i < (size_t) limit;
1344}
1345#if defined (__cplusplus) && __cplusplus >= 201103L
1346 #include <cstdlib>
1347 #define __Pyx_sst_abs(value) std::abs(value)
1348#elif SIZEOF_INT >= SIZEOF_SIZE_T
1349 #define __Pyx_sst_abs(value) abs(value)
1350#elif SIZEOF_LONG >= SIZEOF_SIZE_T
1351 #define __Pyx_sst_abs(value) labs(value)
1352#elif defined (_MSC_VER)
1353 #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
1354#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
1355 #define __Pyx_sst_abs(value) llabs(value)
1356#elif defined (__GNUC__)
1357 #define __Pyx_sst_abs(value) __builtin_llabs(value)
1358#else
1359 #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
1360#endif
1361static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
1362static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
1363static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
1364static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
1365#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
1366#define __Pyx_PyBytes_FromString PyBytes_FromString
1367#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
1368static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
1369#if CYTHON_ASSUME_SAFE_MACROS
1370 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
1371 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
1372 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
1373 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
1374 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
1375 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
1376 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
1377#else
1378 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AsString(s))
1379 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AsString(s))
1380 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AsString(s))
1381 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AsString(s))
1382 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AsString(s))
1383 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AsString(s))
1384 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
1385#endif
1386#define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1387#define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1388#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1389#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
1390#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
1391#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
1392#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
1393#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
1394#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
1395#define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o)
1396#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
1397static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
1398#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
1399 return Py_NewRef(obj);
1400#else
1401 Py_INCREF(obj);
1402 return obj;
1403#endif
1404}
1405static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
1406#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
1407 return Py_XNewRef(obj);
1408#else
1409 Py_XINCREF(obj);
1410 return obj;
1411#endif
1412}
1413static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
1414static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
1415static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
1416static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
1417static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
1418#define __Pyx_PyObject_RichCompareBool(a,b,cmp) __Pyx_PyObject_IsTrueAndDecref(PyObject_RichCompare((a),(b),(cmp)))
1419#define __Pyx_PySequence_Tuple(obj)\
1420 (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
1421static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
1422static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
1423static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
1424#if CYTHON_ASSUME_SAFE_MACROS
1425#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
1426#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
1427#define __Pyx_PyFloat_IsNonZero(x) (PyFloat_AS_DOUBLE(x) != 0.0)
1428#else
1429#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
1430#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
1431#define __Pyx_PyFloat_IsNonZero(x) PyObject_IsTrue(x)
1432#endif
1433#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
1434#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
1435#if CYTHON_USE_PYLONG_INTERNALS
1436 #if PY_VERSION_HEX >= 0x030C00A7
1437 #ifndef _PyLong_SIGN_MASK
1438 #define _PyLong_SIGN_MASK 3
1439 #endif
1440 #ifndef _PyLong_NON_SIZE_BITS
1441 #define _PyLong_NON_SIZE_BITS 3
1442 #endif
1443 #define __Pyx_PyLong_SignBits(x) ((int) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK))
1444 #define __Pyx_PyLong_Sign(x) (1 - __Pyx_PyLong_SignBits(x))
1445 #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_SignBits(x) & 2) != 0)
1446 #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x))
1447 #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_SignBits(x) & 1)
1448 #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_SignBits(x) == 0)
1449 #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0])
1450 #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
1451 #define __Pyx_PyLong_SignedDigitCount(x)\
1452 (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
1453 #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
1454 #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
1455 #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
1456 #else
1457 #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
1458 #define __Pyx_PyLong_CompactValue(x) (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
1459 #endif
1460 static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_CompareSignAndSize(PyObject *a, PyObject *b) {
1461 uintptr_t tag_a = ((PyLongObject*)a)->long_value.lv_tag;
1462 uintptr_t tag_b = ((PyLongObject*)b)->long_value.lv_tag;
1463 if (tag_a == tag_b) return 0;
1464 int sign_a = (int) (tag_a & _PyLong_SIGN_MASK);
1465 int sign_b = (int) (tag_b & _PyLong_SIGN_MASK);
1466 if (sign_a > sign_b) return -1;
1467 if (sign_a < sign_b) return 1;
1468 Py_ssize_t size_a = (Py_ssize_t) (tag_a >> _PyLong_NON_SIZE_BITS);
1469 Py_ssize_t size_b = (Py_ssize_t) (tag_b >> _PyLong_NON_SIZE_BITS);
1470 return (1 - sign_a) * (size_a - size_b);
1471 }
1472 typedef Py_ssize_t __Pyx_compact_pylong;
1473 typedef size_t __Pyx_compact_upylong;
1474 #else
1475 #define __Pyx_PyLong_Sign(x) ((int) ((Py_SIZE(x) == 0) ? 0 : (Py_SIZE(x) < 0) ? -1 : 1))
1476 #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0)
1477 #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0)
1478 #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0)
1479 #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0)
1480 #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
1481 #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x))
1482 #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x)
1483 #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
1484 #define __Pyx_PyLong_CompactValue(x)\
1485 ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
1486 #define __Pyx_PyLong_CompareSignAndSize(a, b) (Py_SIZE(a) - Py_SIZE(b))
1487 typedef sdigit __Pyx_compact_pylong;
1488 typedef digit __Pyx_compact_upylong;
1489 #endif
1490 #if PY_VERSION_HEX >= 0x030C00A5
1491 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
1492 #else
1493 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit)
1494 #endif
1495 #define __Pyx_PyLong_IsNonZero(x) (!__Pyx_PyLong_IsZero(x))
1496#else
1497 #define __Pyx_PyLong_IsNonZero(x) PyObject_IsTrue(x)
1498#endif
1499#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
1500 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
1501#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
1502 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
1503#else
1504 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
1505#endif
1506
1507
1508/* Test for GCC > 2.95 */
1509#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
1510 #define likely(x) __builtin_expect(!!(x), 1)
1511 #define unlikely(x) __builtin_expect(!!(x), 0)
1512#else /* !__GNUC__ or GCC < 2.95 */
1513 #define likely(x) (x)
1514 #define unlikely(x) (x)
1515#endif /* __GNUC__ */
1516/* PretendToInitialize */
1517#ifdef __cplusplus
1518#if __cplusplus > 201103L
1519#include <type_traits>
1520#endif
1521template <typename T>
1522static void __Pyx_pretend_to_initialize(T* ptr) {
1523#if __cplusplus > 201103L
1524 if ((std::is_trivially_default_constructible<T>::value))
1525#endif
1526 *ptr = T();
1527 (void)ptr;
1528}
1529#else
1530static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
1531#endif
1532
1533
1534#if !CYTHON_USE_MODULE_STATE
1535static PyObject *__pyx_m = NULL;
1536#endif
1537static const char * const __pyx_cfilenm = __FILE__;
1538
1539/* Header.proto */
1540#if !defined(CYTHON_CCOMPLEX)
1541 #if defined(__cplusplus)
1542 #define CYTHON_CCOMPLEX 1
1543 #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
1544 #define CYTHON_CCOMPLEX 1
1545 #else
1546 #define CYTHON_CCOMPLEX 0
1547 #endif
1548#endif
1549#if CYTHON_CCOMPLEX
1550 #ifdef __cplusplus
1551 #include <complex>
1552 #else
1553 #include <complex.h>
1554 #endif
1555#endif
1556#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
1557 #undef _Complex_I
1558 #define _Complex_I 1.0fj
1559#endif
1560
1561/* #### Code section: filename_table ### */
1562
1563static const char* const __pyx_f[] = {
1564 "proteus/csubgridError.pyx",
1565 "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd",
1566 "cpython/type.pxd",
1567};
1568/* #### Code section: utility_code_proto_before_types ### */
1569/* Atomics.proto (used by UnpackUnboundCMethod) */
1570#include <pythread.h>
1571#ifndef CYTHON_ATOMICS
1572 #define CYTHON_ATOMICS 1
1573#endif
1574#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
1575#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1576#define __pyx_atomic_int_type int
1577#define __pyx_nonatomic_int_type int
1578#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1579 (__STDC_VERSION__ >= 201112L) &&\
1580 !defined(__STDC_NO_ATOMICS__))
1581 #include <stdatomic.h>
1582#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1583 (__cplusplus >= 201103L) ||\
1584 (defined(_MSC_VER) && _MSC_VER >= 1700)))
1585 #include <atomic>
1586#endif
1587#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1588 (__STDC_VERSION__ >= 201112L) &&\
1589 !defined(__STDC_NO_ATOMICS__) &&\
1590 ATOMIC_INT_LOCK_FREE == 2)
1591 #undef __pyx_atomic_int_type
1592 #define __pyx_atomic_int_type atomic_int
1593 #define __pyx_atomic_ptr_type atomic_uintptr_t
1594 #define __pyx_nonatomic_ptr_type uintptr_t
1595 #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
1596 #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
1597 #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
1598 #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
1599 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1600 #define __pyx_atomic_load(value) atomic_load(value)
1601 #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
1602 #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
1603 #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
1604 #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1605 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1606 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1607 #pragma message ("Using standard C atomics")
1608 #elif defined(__PYX_DEBUG_ATOMICS)
1609 #warning "Using standard C atomics"
1610 #endif
1611#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1612 (__cplusplus >= 201103L) ||\
1613\
1614 (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
1615 ATOMIC_INT_LOCK_FREE == 2)
1616 #undef __pyx_atomic_int_type
1617 #define __pyx_atomic_int_type std::atomic_int
1618 #define __pyx_atomic_ptr_type std::atomic_uintptr_t
1619 #define __pyx_nonatomic_ptr_type uintptr_t
1620 #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
1621 #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
1622 #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
1623 #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
1624 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1625 #define __pyx_atomic_load(value) std::atomic_load(value)
1626 #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
1627 #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
1628 #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
1629 #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1630 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1631 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1632 #pragma message ("Using standard C++ atomics")
1633 #elif defined(__PYX_DEBUG_ATOMICS)
1634 #warning "Using standard C++ atomics"
1635 #endif
1636#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
1637 (__GNUC_MINOR__ > 1 ||\
1638 (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
1639 #define __pyx_atomic_ptr_type void*
1640 #define __pyx_nonatomic_ptr_type void*
1641 #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
1642 #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
1643 #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
1644 #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
1645 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1646 __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
1647 int result = old == *expected;
1648 *expected = old;
1649 return result;
1650 }
1651 #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
1652 #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
1653 #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
1654 #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
1655 #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
1656 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1657 __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
1658 int result = old == *expected;
1659 *expected = old;
1660 return result;
1661 }
1662 #ifdef __PYX_DEBUG_ATOMICS
1663 #warning "Using GNU atomics"
1664 #endif
1665#elif CYTHON_ATOMICS && defined(_MSC_VER)
1666 #include <intrin.h>
1667 #undef __pyx_atomic_int_type
1668 #define __pyx_atomic_int_type long
1669 #define __pyx_atomic_ptr_type void*
1670 #undef __pyx_nonatomic_int_type
1671 #define __pyx_nonatomic_int_type long
1672 #define __pyx_nonatomic_ptr_type void*
1673 #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
1674 #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
1675 #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
1676 #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
1677 #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
1678 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1679 __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
1680 int result = old == *expected;
1681 *expected = old;
1682 return result;
1683 }
1684 #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
1685 #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
1686 #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
1687 #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
1688 #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
1689 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1690 __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
1691 int result = old == *expected;
1692 *expected = old;
1693 return result;
1694 }
1695 #ifdef __PYX_DEBUG_ATOMICS
1696 #pragma message ("Using MSVC atomics")
1697 #endif
1698#else
1699 #undef CYTHON_ATOMICS
1700 #define CYTHON_ATOMICS 0
1701 #ifdef __PYX_DEBUG_ATOMICS
1702 #warning "Not using atomics"
1703 #endif
1704#endif
1705
1706/* CriticalSectionsDefinition.proto (used by CriticalSections) */
1707#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1708#define __Pyx_PyCriticalSection void*
1709#define __Pyx_PyCriticalSection2 void*
1710#define __Pyx_PyCriticalSection_End(cs)
1711#define __Pyx_PyCriticalSection2_End(cs)
1712#else
1713#define __Pyx_PyCriticalSection PyCriticalSection
1714#define __Pyx_PyCriticalSection2 PyCriticalSection2
1715#define __Pyx_PyCriticalSection_End PyCriticalSection_End
1716#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
1717#endif
1718
1719/* CriticalSections.proto (used by ParseKeywordsImpl) */
1720#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1721#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
1722#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
1723#else
1724#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
1725#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
1726#endif
1727#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
1728#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
1729#define __Pyx_END_CRITICAL_SECTION() }
1730#else
1731#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
1732#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
1733#endif
1734
1735/* IncludeStructmemberH.proto (used by CythonFunctionShared) */
1736#include <structmember.h>
1737
1738/* #### Code section: numeric_typedefs ### */
1739
1740/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":761
1741 * # in Cython to enable them only on the right systems.
1742 *
1743 * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
1744 * ctypedef npy_int16 int16_t
1745 * ctypedef npy_int32 int32_t
1746*/
1747typedef npy_int8 __pyx_t_5numpy_int8_t;
1748
1749/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":762
1750 *
1751 * ctypedef npy_int8 int8_t
1752 * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
1753 * ctypedef npy_int32 int32_t
1754 * ctypedef npy_int64 int64_t
1755*/
1756typedef npy_int16 __pyx_t_5numpy_int16_t;
1757
1758/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":763
1759 * ctypedef npy_int8 int8_t
1760 * ctypedef npy_int16 int16_t
1761 * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1762 * ctypedef npy_int64 int64_t
1763 *
1764*/
1765typedef npy_int32 __pyx_t_5numpy_int32_t;
1766
1767/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":764
1768 * ctypedef npy_int16 int16_t
1769 * ctypedef npy_int32 int32_t
1770 * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1771 *
1772 * ctypedef npy_uint8 uint8_t
1773*/
1774typedef npy_int64 __pyx_t_5numpy_int64_t;
1775
1776/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":766
1777 * ctypedef npy_int64 int64_t
1778 *
1779 * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1780 * ctypedef npy_uint16 uint16_t
1781 * ctypedef npy_uint32 uint32_t
1782*/
1783typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1784
1785/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":767
1786 *
1787 * ctypedef npy_uint8 uint8_t
1788 * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1789 * ctypedef npy_uint32 uint32_t
1790 * ctypedef npy_uint64 uint64_t
1791*/
1792typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1793
1794/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":768
1795 * ctypedef npy_uint8 uint8_t
1796 * ctypedef npy_uint16 uint16_t
1797 * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1798 * ctypedef npy_uint64 uint64_t
1799 *
1800*/
1801typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1802
1803/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":769
1804 * ctypedef npy_uint16 uint16_t
1805 * ctypedef npy_uint32 uint32_t
1806 * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1807 *
1808 * ctypedef npy_float32 float32_t
1809*/
1810typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1811
1812/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":771
1813 * ctypedef npy_uint64 uint64_t
1814 *
1815 * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1816 * ctypedef npy_float64 float64_t
1817 * #ctypedef npy_float80 float80_t
1818*/
1819typedef npy_float32 __pyx_t_5numpy_float32_t;
1820
1821/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":772
1822 *
1823 * ctypedef npy_float32 float32_t
1824 * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1825 * #ctypedef npy_float80 float80_t
1826 * #ctypedef npy_float128 float128_t
1827*/
1828typedef npy_float64 __pyx_t_5numpy_float64_t;
1829
1830/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":779
1831 * ctypedef double complex complex128_t
1832 *
1833 * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1834 * ctypedef npy_ulonglong ulonglong_t
1835 *
1836*/
1837typedef npy_longlong __pyx_t_5numpy_longlong_t;
1838
1839/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":780
1840 *
1841 * ctypedef npy_longlong longlong_t
1842 * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1843 *
1844 * ctypedef npy_intp intp_t
1845*/
1846typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1847
1848/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":782
1849 * ctypedef npy_ulonglong ulonglong_t
1850 *
1851 * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1852 * ctypedef npy_uintp uintp_t
1853 *
1854*/
1855typedef npy_intp __pyx_t_5numpy_intp_t;
1856
1857/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":783
1858 *
1859 * ctypedef npy_intp intp_t
1860 * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1861 *
1862 * ctypedef npy_double float_t
1863*/
1864typedef npy_uintp __pyx_t_5numpy_uintp_t;
1865
1866/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":785
1867 * ctypedef npy_uintp uintp_t
1868 *
1869 * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1870 * ctypedef npy_double double_t
1871 * ctypedef npy_longdouble longdouble_t
1872*/
1873typedef npy_double __pyx_t_5numpy_float_t;
1874
1875/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":786
1876 *
1877 * ctypedef npy_double float_t
1878 * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1879 * ctypedef npy_longdouble longdouble_t
1880 *
1881*/
1882typedef npy_double __pyx_t_5numpy_double_t;
1883
1884/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":787
1885 * ctypedef npy_double float_t
1886 * ctypedef npy_double double_t
1887 * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1888 *
1889 * ctypedef float complex cfloat_t
1890*/
1891typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1892/* #### Code section: complex_type_declarations ### */
1893/* Declarations.proto */
1894#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1895 #ifdef __cplusplus
1896 typedef ::std::complex< float > __pyx_t_float_complex;
1897 #else
1898 typedef float _Complex __pyx_t_float_complex;
1899 #endif
1900#else
1901 typedef struct { float real, imag; } __pyx_t_float_complex;
1902#endif
1903static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1904
1905/* Declarations.proto */
1906#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1907 #ifdef __cplusplus
1908 typedef ::std::complex< double > __pyx_t_double_complex;
1909 #else
1910 typedef double _Complex __pyx_t_double_complex;
1911 #endif
1912#else
1913 typedef struct { double real, imag; } __pyx_t_double_complex;
1914#endif
1915static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1916
1917/* Declarations.proto */
1918#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1919 #ifdef __cplusplus
1920 typedef ::std::complex< long double > __pyx_t_long_double_complex;
1921 #else
1922 typedef long double _Complex __pyx_t_long_double_complex;
1923 #endif
1924#else
1925 typedef struct { long double real, imag; } __pyx_t_long_double_complex;
1926#endif
1927static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);
1928
1929/* #### Code section: type_declarations ### */
1930
1931/*--- Type declarations ---*/
1932/* #### Code section: utility_code_proto ### */
1933
1934/* --- Runtime support code (head) --- */
1935/* Refnanny.proto */
1936#ifndef CYTHON_REFNANNY
1937 #define CYTHON_REFNANNY 0
1938#endif
1939#if CYTHON_REFNANNY
1940 typedef struct {
1941 void (*INCREF)(void*, PyObject*, Py_ssize_t);
1942 void (*DECREF)(void*, PyObject*, Py_ssize_t);
1943 void (*GOTREF)(void*, PyObject*, Py_ssize_t);
1944 void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
1945 void* (*SetupContext)(const char*, Py_ssize_t, const char*);
1946 void (*FinishContext)(void**);
1947 } __Pyx_RefNannyAPIStruct;
1948 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1949 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1950 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1951 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1952 if (acquire_gil) {\
1953 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1954 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
1955 PyGILState_Release(__pyx_gilstate_save);\
1956 } else {\
1957 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
1958 }
1959 #define __Pyx_RefNannyFinishContextNogil() {\
1960 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1961 __Pyx_RefNannyFinishContext();\
1962 PyGILState_Release(__pyx_gilstate_save);\
1963 }
1964 #define __Pyx_RefNannyFinishContextNogil() {\
1965 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1966 __Pyx_RefNannyFinishContext();\
1967 PyGILState_Release(__pyx_gilstate_save);\
1968 }
1969 #define __Pyx_RefNannyFinishContext()\
1970 __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1971 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
1972 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
1973 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
1974 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
1975 #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
1976 #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
1977 #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
1978 #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
1979#else
1980 #define __Pyx_RefNannyDeclarations
1981 #define __Pyx_RefNannySetupContext(name, acquire_gil)
1982 #define __Pyx_RefNannyFinishContextNogil()
1983 #define __Pyx_RefNannyFinishContext()
1984 #define __Pyx_INCREF(r) Py_INCREF(r)
1985 #define __Pyx_DECREF(r) Py_DECREF(r)
1986 #define __Pyx_GOTREF(r)
1987 #define __Pyx_GIVEREF(r)
1988 #define __Pyx_XINCREF(r) Py_XINCREF(r)
1989 #define __Pyx_XDECREF(r) Py_XDECREF(r)
1990 #define __Pyx_XGOTREF(r)
1991 #define __Pyx_XGIVEREF(r)
1992#endif
1993#define __Pyx_Py_XDECREF_SET(r, v) do {\
1994 PyObject *tmp = (PyObject *) r;\
1995 r = v; Py_XDECREF(tmp);\
1996 } while (0)
1997#define __Pyx_XDECREF_SET(r, v) do {\
1998 PyObject *tmp = (PyObject *) r;\
1999 r = v; __Pyx_XDECREF(tmp);\
2000 } while (0)
2001#define __Pyx_DECREF_SET(r, v) do {\
2002 PyObject *tmp = (PyObject *) r;\
2003 r = v; __Pyx_DECREF(tmp);\
2004 } while (0)
2005#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
2006#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2007
2008/* GetTopmostException.proto (used by SaveResetException) */
2009#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
2010static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2011#endif
2012
2013/* PyThreadStateGet.proto (used by SaveResetException) */
2014#if CYTHON_FAST_THREAD_STATE
2015#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
2016#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
2017#if PY_VERSION_HEX >= 0x030C00A6
2018#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
2019#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
2020#else
2021#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
2022#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
2023#endif
2024#else
2025#define __Pyx_PyThreadState_declare
2026#define __Pyx_PyThreadState_assign
2027#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
2028#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
2029#endif
2030
2031/* SaveResetException.proto */
2032#if CYTHON_FAST_THREAD_STATE
2033#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2034static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2035#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2036static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2037#else
2038#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2039#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2040#endif
2041
2042/* FastTypeChecks.proto (used by PyException_Check) */
2043#if CYTHON_COMPILING_IN_CPYTHON
2044#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2045#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
2046static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2047static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
2048#define __Pyx_PyAnySet_Check(obj) __Pyx_TypeCheck2(obj, &PySet_Type, &PyFrozenSet_Type)
2049#else
2050#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2051#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
2052#define __Pyx_PyAnySet_Check(obj) PyAnySet_Check(obj)
2053#endif
2054
2055/* PyException_Check.proto */
2056#define __Pyx_PyExc_Exception_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2057
2058/* PyErrFetchRestore.proto (used by GivenExceptionMatches) */
2059#if CYTHON_FAST_THREAD_STATE
2060#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2061#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2062#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2063#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2064#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2065static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2066static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2067#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
2068#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2069#else
2070#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2071#endif
2072#else
2073#define __Pyx_PyErr_Clear() PyErr_Clear()
2074#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2075#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
2076#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
2077#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
2078#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
2079#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
2080#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
2081#endif
2082
2083/* GivenExceptionMatches.proto (used by PyErrExceptionMatches) */
2084#if CYTHON_COMPILING_IN_CPYTHON
2085static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2086static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2087#else
2088#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2089static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
2090 return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
2091}
2092#endif
2093#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
2094
2095/* PyErrExceptionMatches.proto */
2096#if CYTHON_FAST_THREAD_STATE
2097#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2098static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2099#else
2100#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2101#endif
2102
2103/* GetException.proto */
2104#if CYTHON_FAST_THREAD_STATE
2105#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2106static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2107#else
2108static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2109#endif
2110
2111/* PyImportError_Check.proto */
2112#define __Pyx_PyExc_ImportError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ImportError)
2113
2114/* PyObjectCall.proto (used by PyObjectFastCall) */
2115#if CYTHON_COMPILING_IN_CPYTHON
2116static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2117#else
2118#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2119#endif
2120
2121/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
2122#if CYTHON_COMPILING_IN_CPYTHON
2123static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2124#endif
2125
2126/* PyObjectFastCall.proto */
2127#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
2128static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargsf, PyObject *kwargs);
2129
2130/* RaiseException.export */
2131static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2132
2133/* CopyObjectArray.proto (used by TupleOrListFromArrayImpl) */
2134#if CYTHON_COMPILING_IN_CPYTHON
2135static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length);
2136#endif
2137
2138/* TupleOrListFromArrayImpl.proto (used by TupleFromArray) */
2139#if PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API
2140#define __Pyx_PyTuple_FromArray(src, n) PyTuple_FromArray(src, ((n)<0) ? 0 : (n))
2141#else
2142CYTHON_UNUSED static PyObject *
2143__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
2144#endif
2145
2146/* TupleFromArray.proto (used by fastcall) */
2147
2148
2149/* IncludeStringH.proto (used by PyObjectCompare) */
2150#include <string.h>
2151
2152/* PyObjectCompare.proto (used by UnicodeEquals) */
2153static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop);
2154
2155/* UnicodeEquals.proto (used by fastcall) */
2156#define __Pyx_PyUnicode_Equals(s1, s2) __Pyx_PyObject_CompareBoolEq_str_str(s1, s2, Py_EQ)
2157
2158/* fastcall.proto */
2159#if CYTHON_AVOID_BORROWED_REFS
2160 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
2161#elif CYTHON_ASSUME_SAFE_MACROS
2162 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
2163#else
2164 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
2165#endif
2166#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
2167#define __Pyx_KwValues_VARARGS(args, nargs) NULL
2168#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
2169#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
2170#if CYTHON_VECTORCALL
2171 #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
2172 #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
2173 #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
2174 static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
2175 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
2176 CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
2177 #else
2178 #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
2179 #endif
2180#else
2181 #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
2182 #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
2183 #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
2184 #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
2185 #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
2186#endif
2187#if CYTHON_VECTORCALL_TPNEW
2188 #if !CYTHON_VECTORCALL
2189 #error Enabling CYTHON_VECTORCALL_TPNEW without CYTHON_VECTORCALL is not supported
2190 #endif
2191 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_FASTCALL
2192 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_FASTCALL
2193 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_FASTCALL
2194 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_FASTCALL
2195 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_FASTCALL
2196#else
2197 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_VARARGS
2198 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_VARARGS
2199 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_VARARGS
2200 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_VARARGS
2201 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_VARARGS
2202#endif
2203#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
2204#if CYTHON_VECTORCALL
2205#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
2206#else
2207#define __Pyx_ArgsSlice_FASTCALL __Pyx_ArgsSlice_VARARGS
2208#endif
2209
2210/* py_dict_items.proto (used by OwnedDictNext) */
2211#define __Pyx_PyDict_items_TypePtr (&PyDictKeys_Type)
2212#define __Pyx_PyDict_items_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictItems_TypePtr)
2213#define __Pyx_PyDict_items_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictItems_TypePtr)
2214static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);
2215
2216/* CallCFunction.proto (used by CallUnboundCMethod0) */
2217#define __Pyx_CallCFunction(cfunc, self, args)\
2218 ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
2219#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
2220 ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
2221#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
2222 ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
2223#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
2224 ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)
2225
2226/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */
2227static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2228
2229/* UnpackUnboundCMethod_decl.proto (used by UnpackUnboundCMethod) */
2230typedef struct {
2231 PyObject *type;
2232 PyObject **method_name;
2233 PyCFunction func;
2234 PyObject *method;
2235 int flag;
2236#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
2237 __pyx_atomic_int_type initialized;
2238#endif
2239} __Pyx_CachedCFunction;
2240
2241/* IgnoreException.proto (used by UnpackUnboundCMethod_impl) */
2242static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception);
2243#define __Pyx_IgnoreException(ignorable_exception) __Pyx_IgnoreGivenException(NULL, ignorable_exception)
2244
2245/* PyObjectGetAttrStr.proto (used by UnpackUnboundCMethod_impl) */
2246#if CYTHON_USE_TYPE_SLOTS
2247static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
2248#else
2249#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
2250#endif
2251
2252/* UnpackUnboundCMethod_impl.export */
2253static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target);
2254
2255/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
2256#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2257static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
2258#if !CYTHON_ATOMICS
2259 return 1;
2260#else
2261 __pyx_nonatomic_int_type expected = 0;
2262 if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
2263 return 0;
2264 }
2265 return expected;
2266#endif
2267}
2268static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
2269#if CYTHON_ATOMICS
2270 __pyx_atomic_store(&cfunc->initialized, 2);
2271#endif
2272}
2273#else
2274#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
2275#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
2276#endif
2277
2278/* CallUnboundCMethod0.proto */
2279CYTHON_UNUSED
2280static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2281#if CYTHON_COMPILING_IN_CPYTHON
2282static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2283#else
2284#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
2285#endif
2286
2287/* py_dict_values.proto (used by OwnedDictNext) */
2288#define __Pyx_PyDict_values_TypePtr (&PyDictKeys_Type)
2289#define __Pyx_PyDict_values_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictValues_TypePtr)
2290#define __Pyx_PyDict_values_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictValues_TypePtr)
2291static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);
2292
2293/* OwnedDictNext.proto (used by ParseKeywordsImpl) */
2294#if CYTHON_AVOID_BORROWED_REFS
2295static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
2296#else
2297CYTHON_INLINE
2298static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
2299#endif
2300
2301/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
2302static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2303
2304/* ParseKeywordsImpl.export */
2305static int __Pyx_ParseKeywordsTuple(
2306 PyObject *kwds,
2307 PyObject * const *kwvalues,
2308 PyObject ** const argnames[],
2309 PyObject *kwds2,
2310 PyObject *values[],
2311 Py_ssize_t num_pos_args,
2312 Py_ssize_t num_kwargs,
2313 const char* function_name,
2314 int ignore_unknown_kwargs
2315);
2316static int __Pyx_ParseKeywordDictToDict(
2317 PyObject *kwds,
2318 PyObject ** const argnames[],
2319 PyObject *kwds2,
2320 PyObject *values[],
2321 Py_ssize_t num_pos_args,
2322 const char* function_name
2323);
2324static int __Pyx_ParseKeywordDict(
2325 PyObject *kwds,
2326 PyObject ** const argnames[],
2327 PyObject *values[],
2328 Py_ssize_t num_pos_args,
2329 Py_ssize_t num_kwargs,
2330 const char* function_name,
2331 int ignore_unknown_kwargs
2332);
2333
2334/* CallUnboundCMethod2.proto */
2335CYTHON_UNUSED
2336static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
2337#if CYTHON_COMPILING_IN_CPYTHON
2338static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
2339#else
2340#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
2341#endif
2342
2343/* ParseKeywords.proto */
2344static CYTHON_INLINE int __Pyx_ParseKeywords(
2345 PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
2346 PyObject *kwds2, PyObject *values[],
2347 Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
2348 const char* function_name,
2349 int ignore_unknown_kwargs
2350);
2351
2352/* RaiseArgTupleInvalid.export */
2353static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2354 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2355
2356/* ArgTypeTestError.export */
2357static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2358
2359/* ArgTypeTest.proto */
2360static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact);
2361
2362/* TypeImport.proto */
2363#ifndef __PYX_HAVE_RT_ImportType_proto_3_3_0
2364#define __PYX_HAVE_RT_ImportType_proto_3_3_0
2365#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
2366#include <stdalign.h>
2367#endif
2368#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
2369#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) alignof(s)
2370#else
2371#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) sizeof(void*)
2372#endif
2373enum __Pyx_ImportType_CheckSize_3_3_0 {
2374 __Pyx_ImportType_CheckSize_Error_3_3_0 = 0,
2375 __Pyx_ImportType_CheckSize_Warn_3_3_0 = 1,
2376 __Pyx_ImportType_CheckSize_Ignore_3_3_0 = 2
2377};
2378static 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);
2379#endif
2380
2381/* PyObjectGetAttrStrNoError.proto (used by HasAttr) */
2382static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2383
2384/* HasAttr.proto (used by ImportImpl) */
2385#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2386#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n)
2387#else
2388static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2389#endif
2390
2391/* TupleOrListFromArrayImpl.proto (used by ListFromArray) */
2392CYTHON_UNUSED static PyObject *
2393__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
2394
2395/* ListFromArray.proto (used by ImportImpl) */
2396
2397
2398/* ImportImpl.export */
2399static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);
2400
2401/* Import.proto */
2402static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);
2403
2404/* dict_setdefault.proto (used by FetchCommonType) */
2405static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);
2406
2407/* AddModuleRef.proto (used by FetchSharedCythonModule) */
2408#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3) ||\
2409 __PYX_LIMITED_VERSION_HEX < 0x030d0000)
2410 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
2411#else
2412 #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
2413#endif
2414
2415/* FetchSharedCythonModule.proto (used by FetchCommonType) */
2416static PyObject *__Pyx_FetchSharedCythonABIModule(void);
2417
2418/* VerifyCachedType.proto (used by FetchCommonType) */
2419static int __Pyx_VerifyCachedType(PyObject *cached_type,
2420 const char *name,
2421 Py_ssize_t expected_basicsize);
2422
2423/* FetchCommonType.proto (used by CommonTypesMetaclass) */
2424static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);
2425
2426/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
2427static int __pyx_CommonTypesMetaclass_init(PyObject *module);
2428#define __Pyx_CommonTypesMetaclass_USED
2429
2430/* CythonFunctionPerModule.proto (used by CythonFunctionShared) */
2431#define __Pyx_CyFunction_USED
2432#if CYTHON_OPAQUE_SHARED_TYPES
2433#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)PyObject_GetTypeData((o), __pyx_mstate_global->__pyx_CyFunctionType))
2434#else
2435#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)o)
2436#endif
2437#define __Pyx_CYFUNCTION_STATICMETHOD 0x01
2438#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
2439#define __Pyx_CYFUNCTION_CCLASS 0x04
2440#define __Pyx_CYFUNCTION_COROUTINE 0x08
2441#define __Pyx_CyFunction_GetClosure(f)\
2442 ((__Pyx_as_CyFunctionObject(f))->func_closure)
2443#if CYTHON_COMPILING_IN_LIMITED_API
2444 #define __Pyx__CyFunction_GetClassObj(f)\
2445 ((f)->func_classobj)
2446#else
2447 #define __Pyx__CyFunction_GetClassObj(f)\
2448 ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
2449#endif
2450#define __Pyx_CyFunction_GetClassObj(f)\
2451 __Pyx__CyFunction_GetClassObj(__Pyx_as_CyFunctionObject(f))
2452#define __Pyx_CyFunction_SetClassObj(f, classobj)\
2453 __Pyx__CyFunction_SetClassObj(__Pyx_as_CyFunctionObject(f), (classobj))
2454#define __Pyx_CyFunction_Defaults(type, f)\
2455 ((type *)((__Pyx_as_CyFunctionObject(f))->defaults))
2456#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
2457 (__Pyx_as_CyFunctionObject(f))->defaults_getter = (g)
2458typedef struct {
2459#if CYTHON_COMPILING_IN_LIMITED_API
2460#if !CYTHON_OPAQUE_OBJECTS
2461 PyObject_HEAD
2462#endif
2463 PyMethodDef *func_methoddef;
2464 PyObject *func_module;
2465#else
2466 PyCMethodObject func;
2467#endif
2468#if (CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY) && CYTHON_VECTORCALL
2469 __pyx_vectorcallfunc func_vectorcall;
2470#endif
2471#if CYTHON_COMPILING_IN_LIMITED_API
2472 PyObject *func_weakreflist;
2473#endif
2474#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
2475 PyObject *func_dict;
2476#endif
2477 PyObject *func_name;
2478 PyObject *func_qualname;
2479 PyObject *func_doc;
2480 PyObject *func_globals;
2481 PyObject *func_code;
2482 PyObject *func_closure;
2483#if CYTHON_COMPILING_IN_LIMITED_API
2484 PyObject *func_classobj;
2485#endif
2486 PyObject *defaults;
2487 int flags;
2488 PyObject *defaults_tuple;
2489 PyObject *defaults_kwdict;
2490 PyObject *(*defaults_getter)(PyObject *);
2491 PyObject *func_annotations;
2492#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
2493 PyObject *func_is_coroutine;
2494#endif
2495} __pyx_CyFunctionObject;
2496#undef __Pyx_CyOrPyCFunction_Check
2497#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2498#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
2499#define __Pyx_CyFunction_CheckExact(obj) Py_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2500static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
2501#undef __Pyx_IsSameCFunction
2502#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc)
2503static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
2504static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
2505 PyTypeObject *defaults_type);
2506static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
2507 PyObject *tuple);
2508static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
2509 PyObject *dict);
2510static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
2511 PyObject *dict);
2512static int __pyx_CyFunction_init(PyObject *module);
2513#if CYTHON_VECTORCALL
2514#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
2515#define __Pyx_CyFunction_func_vectorcall(f) ((f)->func_vectorcall)
2516#else
2517#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
2518#endif
2519#endif
2520
2521/* CallTypeTraverse.proto (used by CythonFunctionShared) */
2522#if !CYTHON_USE_TYPE_SPECS
2523#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
2524#else
2525static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
2526#endif
2527
2528/* PyMethodNew.proto (used by CythonFunctionShared) */
2529static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);
2530
2531/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
2532#if CYTHON_VECTORCALL
2533static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
2534#endif
2535
2536/* CythonFunctionShared.proto (used by CythonFunction) */
2537static PyObject *__Pyx_CyFunction_Init(PyObject *op_in, PyMethodDef *ml,
2538 int flags, PyObject* qualname,
2539 PyObject *closure,
2540 PyObject *module, PyObject *globals,
2541 PyObject* code);
2542#if CYTHON_VECTORCALL
2543static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2544static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2545static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2546static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2547#endif
2548
2549/* CythonFunction.export */
2550static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
2551 int flags, PyObject* qualname,
2552 PyObject *closure,
2553 PyObject *module, PyObject *globals,
2554 PyObject* code);
2555static PyTypeObject *__Pyx_Get_CyFunction_Type(void);
2556
2557/* PyDictVersioning.proto (used by CLineInTraceback) */
2558#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2559#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
2560#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
2561#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2562 (version_var) = __PYX_GET_DICT_VERSION(dict);\
2563 (cache_var) = (value);
2564#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2565 static PY_UINT64_T __pyx_dict_version = 0;\
2566 static PyObject *__pyx_dict_cached_value = NULL;\
2567 if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2568 (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
2569 } else {\
2570 (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2571 __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2572 }\
2573}
2574static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2575static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2576static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2577#else
2578#define __PYX_GET_DICT_VERSION(dict) (0)
2579#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2580#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
2581#endif
2582
2583/* CLineInTraceback.proto (used by AddTraceback) */
2584#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
2585static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
2586#else
2587#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
2588#endif
2589
2590/* CodeObjectCache.proto (used by AddTraceback) */
2591#if CYTHON_COMPILING_IN_LIMITED_API
2592typedef PyObject __Pyx_CachedCodeObjectType;
2593#else
2594typedef PyCodeObject __Pyx_CachedCodeObjectType;
2595#endif
2596typedef struct {
2597 __Pyx_CachedCodeObjectType* code_object;
2598 int code_line;
2599} __Pyx_CodeObjectCacheEntry;
2600struct __Pyx_CodeObjectCache {
2601 int count;
2602 int max_count;
2603 __Pyx_CodeObjectCacheEntry* entries;
2604 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2605 __pyx_atomic_int_type accessor_count;
2606 #endif
2607};
2608static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
2609static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
2610static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);
2611
2612/* AddTraceback.proto */
2613static void __Pyx_AddTraceback(const char *funcname, int c_line,
2614 int py_line, const char *filename);
2615
2616/* GCCDiagnostics.proto */
2617#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
2618#define __Pyx_HAS_GCC_DIAGNOSTIC
2619#endif
2620
2621/* RealImag.proto */
2622#if CYTHON_CCOMPLEX
2623 #ifdef __cplusplus
2624 #define __Pyx_CREAL(z) ((z).real())
2625 #define __Pyx_CIMAG(z) ((z).imag())
2626 #else
2627 #define __Pyx_CREAL(z) (__real__(z))
2628 #define __Pyx_CIMAG(z) (__imag__(z))
2629 #endif
2630#else
2631 #define __Pyx_CREAL(z) ((z).real)
2632 #define __Pyx_CIMAG(z) ((z).imag)
2633#endif
2634#if defined(__cplusplus) && CYTHON_CCOMPLEX\
2635 && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
2636 #define __Pyx_SET_CREAL(z,x) ((z).real(x))
2637 #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
2638#else
2639 #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
2640 #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
2641#endif
2642
2643/* Arithmetic.proto */
2644#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2645 #define __Pyx_c_eq_float(a, b) ((a)==(b))
2646 #define __Pyx_c_sum_float(a, b) ((a)+(b))
2647 #define __Pyx_c_diff_float(a, b) ((a)-(b))
2648 #define __Pyx_c_prod_float(a, b) ((a)*(b))
2649 #define __Pyx_c_quot_float(a, b) ((a)/(b))
2650 #define __Pyx_c_neg_float(a) (-(a))
2651 #ifdef __cplusplus
2652 #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
2653 #define __Pyx_c_conj_float(z) (::std::conj(z))
2654 #if 1
2655 #define __Pyx_c_abs_float(z) (::std::abs(z))
2656 #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
2657 #endif
2658 #else
2659 #define __Pyx_c_is_zero_float(z) ((z)==0)
2660 #define __Pyx_c_conj_float(z) (conjf(z))
2661 #if 1
2662 #define __Pyx_c_abs_float(z) (cabsf(z))
2663 #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
2664 #endif
2665 #endif
2666#else
2667 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
2668 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
2669 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
2670 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
2671 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
2672 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
2673 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
2674 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
2675 #if 1
2676 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
2677 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
2678 #endif
2679#endif
2680
2681/* Arithmetic.proto */
2682#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2683 #define __Pyx_c_eq_double(a, b) ((a)==(b))
2684 #define __Pyx_c_sum_double(a, b) ((a)+(b))
2685 #define __Pyx_c_diff_double(a, b) ((a)-(b))
2686 #define __Pyx_c_prod_double(a, b) ((a)*(b))
2687 #define __Pyx_c_quot_double(a, b) ((a)/(b))
2688 #define __Pyx_c_neg_double(a) (-(a))
2689 #ifdef __cplusplus
2690 #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
2691 #define __Pyx_c_conj_double(z) (::std::conj(z))
2692 #if 1
2693 #define __Pyx_c_abs_double(z) (::std::abs(z))
2694 #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
2695 #endif
2696 #else
2697 #define __Pyx_c_is_zero_double(z) ((z)==0)
2698 #define __Pyx_c_conj_double(z) (conj(z))
2699 #if 1
2700 #define __Pyx_c_abs_double(z) (cabs(z))
2701 #define __Pyx_c_pow_double(a, b) (cpow(a, b))
2702 #endif
2703 #endif
2704#else
2705 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
2706 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
2707 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
2708 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
2709 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
2710 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
2711 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
2712 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
2713 #if 1
2714 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
2715 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
2716 #endif
2717#endif
2718
2719/* Arithmetic.proto */
2720#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2721 #define __Pyx_c_eq_long__double(a, b) ((a)==(b))
2722 #define __Pyx_c_sum_long__double(a, b) ((a)+(b))
2723 #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
2724 #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
2725 #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
2726 #define __Pyx_c_neg_long__double(a) (-(a))
2727 #ifdef __cplusplus
2728 #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
2729 #define __Pyx_c_conj_long__double(z) (::std::conj(z))
2730 #if 1
2731 #define __Pyx_c_abs_long__double(z) (::std::abs(z))
2732 #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b))
2733 #endif
2734 #else
2735 #define __Pyx_c_is_zero_long__double(z) ((z)==0)
2736 #define __Pyx_c_conj_long__double(z) (conjl(z))
2737 #if 1
2738 #define __Pyx_c_abs_long__double(z) (cabsl(z))
2739 #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b))
2740 #endif
2741 #endif
2742#else
2743 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2744 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2745 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2746 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2747 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2748 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
2749 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
2750 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
2751 #if 1
2752 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
2753 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
2754 #endif
2755#endif
2756
2757/* CIntFromPy.proto */
2758static CYTHON_INLINE char __Pyx_PyLong_As_char(PyObject *);
2759
2760/* CIntFromPy.proto */
2761static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);
2762
2763/* FormatTypeName.proto */
2764#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2765typedef PyObject *__Pyx_TypeName;
2766#define __Pyx_FMT_TYPENAME "%N"
2767#define __Pyx_PyType_GetFullyQualifiedName(tp) Py_NewRef((PyObject*)tp)
2768#define __Pyx_DECREF_TypeName(obj) Py_DECREF(obj)
2769#elif CYTHON_COMPILING_IN_LIMITED_API
2770typedef PyObject *__Pyx_TypeName;
2771#define __Pyx_FMT_TYPENAME "%U"
2772#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
2773static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
2774#else // !LIMITED_API
2775typedef const char *__Pyx_TypeName;
2776#define __Pyx_FMT_TYPENAME "%.200s"
2777#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
2778#define __Pyx_DECREF_TypeName(obj)
2779#endif
2780
2781/* PyObjectVectorcallKwds.proto (used by PyObjectVectorcallMethodKwds) */
2782#if CYTHON_VECTORCALL
2783#define __Pyx_Object_VectorcallKwds PyObject_Vectorcall
2784CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i);
2785#else
2786#define __Pyx_Object_VectorcallKwds __Pyx_PyObject_FastCallDict
2787CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n);
2788CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i);
2789#endif
2790
2791/* PyObjectVectorcallMethodKwds.proto (used by CIntToPy) */
2792#if CYTHON_VECTORCALL
2793#define __Pyx_Object_VectorcallMethodKwds PyObject_VectorcallMethod
2794#else
2795static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2796#endif
2797
2798/* CIntToPy.proto */
2799static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);
2800
2801/* CIntFromPy.proto */
2802static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);
2803
2804/* GetRuntimeVersion.proto */
2805#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
2806static unsigned long __Pyx_cached_runtime_version = 0;
2807static void __Pyx_init_runtime_version(void);
2808#else
2809#define __Pyx_init_runtime_version()
2810#endif
2811static unsigned long __Pyx_get_runtime_version(void);
2812
2813/* CheckBinaryVersion.proto */
2814static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
2815
2816/* DecompressString.proto */
2817static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);
2818
2819/* DecompressString_LZSS.proto */
2820static PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length);
2821
2822/* MultiPhaseInitModuleState.proto */
2823#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
2824#include <stdlib.h>
2825static PyObject *__Pyx_State_FindModule(void*);
2826static int __Pyx_State_AddModule(PyObject* module, void*);
2827static int __Pyx_State_RemoveModule(void*);
2828#elif CYTHON_USE_MODULE_STATE
2829#define __Pyx_State_FindModule PyState_FindModule
2830#define __Pyx_State_AddModule PyState_AddModule
2831#define __Pyx_State_RemoveModule PyState_RemoveModule
2832#endif
2833
2834/* #### Code section: module_declarations ### */
2835/* CythonABIVersion.proto */
2836#if CYTHON_COMPILING_IN_LIMITED_API
2837 #if CYTHON_VECTORCALL
2838 #define __PYX_VECTORCALL_ABI_SUFFIX "_vectorcall"
2839 #else
2840 #define __PYX_VECTORCALL_ABI_SUFFIX
2841 #endif
2842 #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_VECTORCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
2843#else
2844 #define __PYX_LIMITED_ABI_SUFFIX
2845#endif
2846#if __PYX_HAS_PY_AM_SEND == 1
2847 #define __PYX_AM_SEND_ABI_SUFFIX
2848#elif __PYX_HAS_PY_AM_SEND == 2
2849 #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
2850#else
2851 #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
2852#endif
2853#ifndef __PYX_MONITORING_ABI_SUFFIX
2854 #define __PYX_MONITORING_ABI_SUFFIX
2855#endif
2856#if CYTHON_USE_TP_FINALIZE
2857 #define __PYX_TP_FINALIZE_ABI_SUFFIX
2858#else
2859 #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
2860#endif
2861#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
2862 #define __PYX_FREELISTS_ABI_SUFFIX
2863#else
2864 #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
2865#endif
2866#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
2867 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX "opaque"
2868#else
2869 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX
2870#endif
2871#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
2872#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
2873#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
2874
2875static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2876static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2877static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2878static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2879static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2880static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2881static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2882static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2883static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2884static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2885static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self); /* proto*/
2886static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2887static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2888static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2889static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2890static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2891static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
2892static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self); /* proto*/
2893static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self); /* proto*/
2894static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self); /* proto*/
2895static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self); /* proto*/
2896static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self); /* proto*/
2897static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self); /* proto*/
2898static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self); /* proto*/
2899static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2900static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2901static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2902static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2903static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2904static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2905static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2906static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2907static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2908static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2909static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self); /* proto*/
2910
2911/* Module declarations from "libc.string" */
2912
2913/* Module declarations from "libc.stdio" */
2914
2915/* Module declarations from "__builtin__" */
2916
2917/* Module declarations from "cpython.type" */
2918
2919/* Module declarations from "cpython" */
2920
2921/* Module declarations from "cpython.object" */
2922
2923/* Module declarations from "cpython.ref" */
2924
2925/* Module declarations from "numpy" */
2926
2927/* Module declarations from "numpy" */
2928
2929/* Module declarations from "csubgridError" */
2930/* #### Code section: typeinfo ### */
2931/* #### Code section: before_global_var ### */
2932#define __Pyx_MODULE_NAME "csubgridError"
2933extern int __pyx_module_is_main_csubgridError;
2934int __pyx_module_is_main_csubgridError = 0;
2935
2936/* Implementation of "csubgridError" */
2937/* #### Code section: global_var ### */
2938/* #### Code section: string_decls ### */
2939/* #### Code section: decls ### */
2940static PyObject *__pyx_pf_13csubgridError_calculateSubgridError_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau, PyArrayObject *__pyx_v_pdeResidual, PyArrayObject *__pyx_v_dpdeResidual, PyArrayObject *__pyx_v_subgridError, PyArrayObject *__pyx_v_dsubgridError); /* proto */
2941static PyObject *__pyx_pf_13csubgridError_2calculateSubgridError_ADR_generic_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2942static PyObject *__pyx_pf_13csubgridError_4calculateSubgridError_ADR_generic_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2943static PyObject *__pyx_pf_13csubgridError_6calculateSubgridError_ADR_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2944static PyObject *__pyx_pf_13csubgridError_8calculateSubgridError_ADR_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2945static PyObject *__pyx_pf_13csubgridError_10calculateSubgridError_A_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2946static PyObject *__pyx_pf_13csubgridError_12calculateSubgridError_HJ_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau); /* proto */
2947static PyObject *__pyx_pf_13csubgridError_14calculateSubgridErrorStokes2D_GLS_velocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2948static PyObject *__pyx_pf_13csubgridError_16calculateSubgridErrorStokes2D_GLS_velocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2949static PyObject *__pyx_pf_13csubgridError_18calculateSubgridErrorStokes3D_GLS_velocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2950static PyObject *__pyx_pf_13csubgridError_20calculateSubgridErrorStokes3D_GLS_velocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2951static PyObject *__pyx_pf_13csubgridError_22calculateSubgridErrorStokes2D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2952static PyObject *__pyx_pf_13csubgridError_24calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2953static PyObject *__pyx_pf_13csubgridError_26calculateSubgridErrorStokes3D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2954static PyObject *__pyx_pf_13csubgridError_28calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2955static PyObject *__pyx_pf_13csubgridError_30calculateSubgridErrorNavierStokes2D_GLS_tau(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_hFactor, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2956static PyObject *__pyx_pf_13csubgridError_32calculateSubgridErrorNavierStokes2D_GLS_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_hFactor, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2957static PyObject *__pyx_pf_13csubgridError_34calculateSubgridErrorNavierStokes2D_generic_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2958static PyObject *__pyx_pf_13csubgridError_36calculateSubgridErrorNavierStokes2D_generic_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2959static PyObject *__pyx_pf_13csubgridError_38calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2960static PyObject *__pyx_pf_13csubgridError_40calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl); /* proto */
2961static PyObject *__pyx_pf_13csubgridError_42calculateSubgridErrorNavierStokes2D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_dpdeResidualU_dv, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_du, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2962static PyObject *__pyx_pf_13csubgridError_44calculateSubgridErrorStokes_GLS_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1); /* proto */
2963static PyObject *__pyx_pf_13csubgridError_46calculateSubgridErrorStokes_GLS_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1); /* proto */
2964static PyObject *__pyx_pf_13csubgridError_48calculateSubgridErrorStokes2D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2965static PyObject *__pyx_pf_13csubgridError_50calculateSubgridErrorStokes3D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2966static PyObject *__pyx_pf_13csubgridError_52calculateSubgridErrorNavierStokes3D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_dpdeResidualU_dv, PyArrayObject *__pyx_v_dpdeResidualU_dw, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_du, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_dpdeResidualV_dw, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_du, PyArrayObject *__pyx_v_dpdeResidualW_dv, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_dsubgridErrorU_dw, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_dsubgridErrorV_dw, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_du, PyArrayObject *__pyx_v_dsubgridErrorW_dv, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2967static PyObject *__pyx_pf_13csubgridError_54calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2968static PyObject *__pyx_pf_13csubgridError_56calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw); /* proto */
2969static PyObject *__pyx_pf_13csubgridError_58calculateSubgridErrorStokes2D_1(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_dp, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2970static PyObject *__pyx_pf_13csubgridError_60calculateSubgridErrorStokes2D_1_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_dp, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv); /* proto */
2971static PyObject *__pyx_pf_13csubgridError_62calculateSubgridErrorShallowWater1D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_g, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_cfl_1, PyArrayObject *__pyx_v_cfl_2); /* proto */
2972static PyObject *__pyx_pf_13csubgridError_64calculateSubgridErrorShallowWater2D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_g, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_hv, PyArrayObject *__pyx_v_cfl_1, PyArrayObject *__pyx_v_cfl_2, PyArrayObject *__pyx_v_cfl_3); /* proto */
2973static PyObject *__pyx_pf_13csubgridError_66calculateSubgridError_Harari_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nSpace, double __pyx_v_dt, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau); /* proto */
2974static PyObject *__pyx_pf_13csubgridError_68calculateSubgridErrorGradient_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau_gradient, PyArrayObject *__pyx_v_grad_pdeResidual, PyArrayObject *__pyx_v_grad_subgridError); /* proto */
2975static PyObject *__pyx_pf_13csubgridError_70calculateSubgridError_ADR_Sangalli_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau, PyArrayObject *__pyx_v_tau_gradient); /* proto */
2976/* #### Code section: late_includes ### */
2977/* #### Code section: module_state ### */
2978/* SmallCodeConfig */
2979#ifndef CYTHON_SMALL_CODE
2980#if defined(__clang__)
2981 #define CYTHON_SMALL_CODE
2982#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
2983 #define CYTHON_SMALL_CODE __attribute__((cold))
2984#else
2985 #define CYTHON_SMALL_CODE
2986#endif
2987#endif
2988
2989#ifdef __cplusplus
2990namespace {
2991 #endif
2992 typedef struct {
2993 PyObject *__pyx_d;
2994 PyObject *__pyx_b;
2995 PyObject *__pyx_cython_runtime;
2996 PyObject *__pyx_empty_tuple;
2997 PyObject *__pyx_empty_bytes;
2998 PyObject *__pyx_empty_unicode;
2999 PyTypeObject *__pyx_ptype_7cpython_4type_type;
3000 PyTypeObject *__pyx_ptype_5numpy_dtype;
3001 PyTypeObject *__pyx_ptype_5numpy_flatiter;
3002 PyTypeObject *__pyx_ptype_5numpy_broadcast;
3003 PyTypeObject *__pyx_ptype_5numpy_ndarray;
3004 PyTypeObject *__pyx_ptype_5numpy_generic;
3005 PyTypeObject *__pyx_ptype_5numpy_number;
3006 PyTypeObject *__pyx_ptype_5numpy_integer;
3007 PyTypeObject *__pyx_ptype_5numpy_signedinteger;
3008 PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
3009 PyTypeObject *__pyx_ptype_5numpy_inexact;
3010 PyTypeObject *__pyx_ptype_5numpy_floating;
3011 PyTypeObject *__pyx_ptype_5numpy_complexfloating;
3012 PyTypeObject *__pyx_ptype_5numpy_flexible;
3013 PyTypeObject *__pyx_ptype_5numpy_character;
3014 PyTypeObject *__pyx_ptype_5numpy_ufunc;
3015 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
3016 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
3017 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
3018 PyObject *__pyx_codeobj_tab[36];
3019 PyObject *__pyx_string_tab[173];
3020/* #### Code section: module_state_contents ### */
3021/* CommonTypesMetaclass.module_state_decls */
3022PyTypeObject *__pyx_CommonTypesMetaclassType;
3023
3024/* CachedMethodType.module_state_decls */
3025#if CYTHON_COMPILING_IN_LIMITED_API
3026PyObject *__Pyx_CachedMethodType;
3027#endif
3028
3029/* CythonFunctionPerModule.module_state_decls */
3030PyTypeObject *__pyx_CyFunctionType;
3031
3032/* CodeObjectCache.module_state_decls */
3033struct __Pyx_CodeObjectCache __pyx_code_cache;
3034
3035/* #### Code section: module_state_end ### */
3036} __pyx_mstatetype;
3037#ifdef __cplusplus
3038} /* anonymous namespace */
3039#endif
3040
3041#if CYTHON_USE_MODULE_STATE
3042#ifdef __cplusplus
3043namespace {
3044extern struct PyModuleDef __pyx_moduledef;
3045} /* anonymous namespace */
3046#else
3047static struct PyModuleDef __pyx_moduledef;
3048#endif
3049
3050#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))
3051
3052#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
3053#else
3054static __pyx_mstatetype __pyx_mstate_global_static =
3055#ifdef __cplusplus
3056 {};
3057#else
3058 {0};
3059#endif
3060static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
3061#endif
3062/* #### Code section: constant_name_defines ### */
3063#define __pyx_kp_u_ __pyx_string_tab[0]
3064#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[1]
3065#define __pyx_kp_u_add_note __pyx_string_tab[2]
3066#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[3]
3067#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[4]
3068#define __pyx_kp_u_proteus_csubgridError_pyx __pyx_string_tab[5]
3069#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[6]
3070#define __pyx_n_u_annotate __pyx_string_tab[7]
3071#define __pyx_n_u_func __pyx_string_tab[8]
3072#define __pyx_n_u_main __pyx_string_tab[9]
3073#define __pyx_n_u_module __pyx_string_tab[10]
3074#define __pyx_n_u_name __pyx_string_tab[11]
3075#define __pyx_n_u_qualname __pyx_string_tab[12]
3076#define __pyx_n_u_test __pyx_string_tab[13]
3077#define __pyx_n_u_is_coroutine __pyx_string_tab[14]
3078#define __pyx_n_u_a __pyx_string_tab[15]
3079#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[16]
3080#define __pyx_n_u_calculateSubgridErrorGradient_ta __pyx_string_tab[17]
3081#define __pyx_n_u_calculateSubgridErrorNavierStoke __pyx_string_tab[18]
3082#define __pyx_n_u_calculateSubgridErrorNavierStoke_7 __pyx_string_tab[19]
3083#define __pyx_n_u_calculateSubgridErrorNavierStoke_2 __pyx_string_tab[20]
3084#define __pyx_n_u_calculateSubgridErrorNavierStoke_3 __pyx_string_tab[21]
3085#define __pyx_n_u_calculateSubgridErrorNavierStoke_4 __pyx_string_tab[22]
3086#define __pyx_n_u_calculateSubgridErrorNavierStoke_5 __pyx_string_tab[23]
3087#define __pyx_n_u_calculateSubgridErrorNavierStoke_6 __pyx_string_tab[24]
3088#define __pyx_n_u_calculateSubgridErrorNavierStoke_8 __pyx_string_tab[25]
3089#define __pyx_n_u_calculateSubgridErrorNavierStoke_9 __pyx_string_tab[26]
3090#define __pyx_n_u_calculateSubgridErrorNavierStoke_10 __pyx_string_tab[27]
3091#define __pyx_n_u_calculateSubgridErrorShallowWate __pyx_string_tab[28]
3092#define __pyx_n_u_calculateSubgridErrorShallowWate_2 __pyx_string_tab[29]
3093#define __pyx_n_u_calculateSubgridErrorStokes2D_1 __pyx_string_tab[30]
3094#define __pyx_n_u_calculateSubgridErrorStokes2D_1_2 __pyx_string_tab[31]
3095#define __pyx_n_u_calculateSubgridErrorStokes2D_GL_5 __pyx_string_tab[32]
3096#define __pyx_n_u_calculateSubgridErrorStokes2D_GL __pyx_string_tab[33]
3097#define __pyx_n_u_calculateSubgridErrorStokes2D_GL_3 __pyx_string_tab[34]
3098#define __pyx_n_u_calculateSubgridErrorStokes2D_GL_4 __pyx_string_tab[35]
3099#define __pyx_n_u_calculateSubgridErrorStokes2D_GL_2 __pyx_string_tab[36]
3100#define __pyx_n_u_calculateSubgridErrorStokes3D_GL_5 __pyx_string_tab[37]
3101#define __pyx_n_u_calculateSubgridErrorStokes3D_GL __pyx_string_tab[38]
3102#define __pyx_n_u_calculateSubgridErrorStokes3D_GL_3 __pyx_string_tab[39]
3103#define __pyx_n_u_calculateSubgridErrorStokes3D_GL_4 __pyx_string_tab[40]
3104#define __pyx_n_u_calculateSubgridErrorStokes3D_GL_2 __pyx_string_tab[41]
3105#define __pyx_n_u_calculateSubgridErrorStokes_GLS __pyx_string_tab[42]
3106#define __pyx_n_u_calculateSubgridErrorStokes_GLS_2 __pyx_string_tab[43]
3107#define __pyx_n_u_calculateSubgridError_ADR_Sangal __pyx_string_tab[44]
3108#define __pyx_n_u_calculateSubgridError_ADR_generi __pyx_string_tab[45]
3109#define __pyx_n_u_calculateSubgridError_ADR_generi_2 __pyx_string_tab[46]
3110#define __pyx_n_u_calculateSubgridError_ADR_tau __pyx_string_tab[47]
3111#define __pyx_n_u_calculateSubgridError_ADR_tau_sd __pyx_string_tab[48]
3112#define __pyx_n_u_calculateSubgridError_A_tau __pyx_string_tab[49]
3113#define __pyx_n_u_calculateSubgridError_HJ_tau __pyx_string_tab[50]
3114#define __pyx_n_u_calculateSubgridError_Harari_tau __pyx_string_tab[51]
3115#define __pyx_n_u_calculateSubgridError_tauRes __pyx_string_tab[52]
3116#define __pyx_n_u_cfl __pyx_string_tab[53]
3117#define __pyx_n_u_cfl_1 __pyx_string_tab[54]
3118#define __pyx_n_u_cfl_2 __pyx_string_tab[55]
3119#define __pyx_n_u_cfl_3 __pyx_string_tab[56]
3120#define __pyx_n_u_cline_in_traceback __pyx_string_tab[57]
3121#define __pyx_n_u_colind __pyx_string_tab[58]
3122#define __pyx_n_u_csubgridError __pyx_string_tab[59]
3123#define __pyx_n_u_dH __pyx_string_tab[60]
3124#define __pyx_n_u_da __pyx_string_tab[61]
3125#define __pyx_n_u_df __pyx_string_tab[62]
3126#define __pyx_n_u_dm __pyx_string_tab[63]
3127#define __pyx_n_u_dmt __pyx_string_tab[64]
3128#define __pyx_n_u_dpdeResidual __pyx_string_tab[65]
3129#define __pyx_n_u_dpdeResidualP_du __pyx_string_tab[66]
3130#define __pyx_n_u_dpdeResidualP_dv __pyx_string_tab[67]
3131#define __pyx_n_u_dpdeResidualP_dw __pyx_string_tab[68]
3132#define __pyx_n_u_dpdeResidualU_dp __pyx_string_tab[69]
3133#define __pyx_n_u_dpdeResidualU_du __pyx_string_tab[70]
3134#define __pyx_n_u_dpdeResidualU_dv __pyx_string_tab[71]
3135#define __pyx_n_u_dpdeResidualU_dw __pyx_string_tab[72]
3136#define __pyx_n_u_dpdeResidualV_dp __pyx_string_tab[73]
3137#define __pyx_n_u_dpdeResidualV_du __pyx_string_tab[74]
3138#define __pyx_n_u_dpdeResidualV_dv __pyx_string_tab[75]
3139#define __pyx_n_u_dpdeResidualV_dw __pyx_string_tab[76]
3140#define __pyx_n_u_dpdeResidualW_dp __pyx_string_tab[77]
3141#define __pyx_n_u_dpdeResidualW_du __pyx_string_tab[78]
3142#define __pyx_n_u_dpdeResidualW_dv __pyx_string_tab[79]
3143#define __pyx_n_u_dpdeResidualW_dw __pyx_string_tab[80]
3144#define __pyx_n_u_dphi __pyx_string_tab[81]
3145#define __pyx_n_u_dr __pyx_string_tab[82]
3146#define __pyx_n_u_dsubgridError __pyx_string_tab[83]
3147#define __pyx_n_u_dsubgridErrorP_dp __pyx_string_tab[84]
3148#define __pyx_n_u_dsubgridErrorP_du __pyx_string_tab[85]
3149#define __pyx_n_u_dsubgridErrorP_dv __pyx_string_tab[86]
3150#define __pyx_n_u_dsubgridErrorP_dw __pyx_string_tab[87]
3151#define __pyx_n_u_dsubgridErrorU_dp __pyx_string_tab[88]
3152#define __pyx_n_u_dsubgridErrorU_du __pyx_string_tab[89]
3153#define __pyx_n_u_dsubgridErrorU_dv __pyx_string_tab[90]
3154#define __pyx_n_u_dsubgridErrorU_dw __pyx_string_tab[91]
3155#define __pyx_n_u_dsubgridErrorV_dp __pyx_string_tab[92]
3156#define __pyx_n_u_dsubgridErrorV_du __pyx_string_tab[93]
3157#define __pyx_n_u_dsubgridErrorV_dv __pyx_string_tab[94]
3158#define __pyx_n_u_dsubgridErrorV_dw __pyx_string_tab[95]
3159#define __pyx_n_u_dsubgridErrorW_dp __pyx_string_tab[96]
3160#define __pyx_n_u_dsubgridErrorW_du __pyx_string_tab[97]
3161#define __pyx_n_u_dsubgridErrorW_dv __pyx_string_tab[98]
3162#define __pyx_n_u_dsubgridErrorW_dw __pyx_string_tab[99]
3163#define __pyx_n_u_dt __pyx_string_tab[100]
3164#define __pyx_n_u_elementDiameter __pyx_string_tab[101]
3165#define __pyx_n_u_f __pyx_string_tab[102]
3166#define __pyx_n_u_g __pyx_string_tab[103]
3167#define __pyx_n_u_grad_pdeResidual __pyx_string_tab[104]
3168#define __pyx_n_u_grad_phi __pyx_string_tab[105]
3169#define __pyx_n_u_grad_subgridError __pyx_string_tab[106]
3170#define __pyx_n_u_h __pyx_string_tab[107]
3171#define __pyx_n_u_hFactor __pyx_string_tab[108]
3172#define __pyx_n_u_hu __pyx_string_tab[109]
3173#define __pyx_n_u_hv __pyx_string_tab[110]
3174#define __pyx_n_u_inverseJ __pyx_string_tab[111]
3175#define __pyx_n_u_items __pyx_string_tab[112]
3176#define __pyx_n_u_nSpace __pyx_string_tab[113]
3177#define __pyx_n_u_np __pyx_string_tab[114]
3178#define __pyx_n_u_numpy __pyx_string_tab[115]
3179#define __pyx_n_u_pdeResidual __pyx_string_tab[116]
3180#define __pyx_n_u_pdeResidualP __pyx_string_tab[117]
3181#define __pyx_n_u_pdeResidualU __pyx_string_tab[118]
3182#define __pyx_n_u_pdeResidualV __pyx_string_tab[119]
3183#define __pyx_n_u_pdeResidualW __pyx_string_tab[120]
3184#define __pyx_n_u_pe __pyx_string_tab[121]
3185#define __pyx_n_u_pop __pyx_string_tab[122]
3186#define __pyx_n_u_rowptr __pyx_string_tab[123]
3187#define __pyx_n_u_setdefault __pyx_string_tab[124]
3188#define __pyx_n_u_stabilization __pyx_string_tab[125]
3189#define __pyx_n_u_subgridError __pyx_string_tab[126]
3190#define __pyx_n_u_subgridErrorP __pyx_string_tab[127]
3191#define __pyx_n_u_subgridErrorU __pyx_string_tab[128]
3192#define __pyx_n_u_subgridErrorV __pyx_string_tab[129]
3193#define __pyx_n_u_subgridErrorW __pyx_string_tab[130]
3194#define __pyx_n_u_tau __pyx_string_tab[131]
3195#define __pyx_n_u_tau0 __pyx_string_tab[132]
3196#define __pyx_n_u_tau1 __pyx_string_tab[133]
3197#define __pyx_n_u_tau_gradient __pyx_string_tab[134]
3198#define __pyx_n_u_u __pyx_string_tab[135]
3199#define __pyx_n_u_v __pyx_string_tab[136]
3200#define __pyx_n_u_values __pyx_string_tab[137]
3201#define __pyx_kp_b_iso88591_6_9_q_9_q_2_a_22B_22C1 __pyx_string_tab[138]
3202#define __pyx_kp_b_iso88591_vQa_V1A_V1A_Q_Q_a_a_q __pyx_string_tab[139]
3203#define __pyx_kp_b_iso88591_6_2_2_A_2_1_2_a_2_a __pyx_string_tab[140]
3204#define __pyx_kp_b_iso88591_1BfAQ_fAQ_fAQ_6oQ_6b_6aq_6d_6d __pyx_string_tab[141]
3205#define __pyx_kp_b_iso88591_6_Q_A_Q_Q __pyx_string_tab[142]
3206#define __pyx_kp_b_iso88591_q_2_2_1_2_A_2_q_2_q __pyx_string_tab[143]
3207#define __pyx_kp_b_iso88591_F_1_6_vQ_vQ_2_2_1_2_Q __pyx_string_tab[144]
3208#define __pyx_kp_b_iso88591_q_2_2_1_2_A_2_A_2_q_2_q_2_q __pyx_string_tab[145]
3209#define __pyx_kp_b_iso88591_5AQfAQ45V1A45V1A4_ha4_c_4_b_4_a __pyx_string_tab[146]
3210#define __pyx_kp_b_iso88591_8q_q_45V1A45V1A4_ha4_c_4_b_4_aq __pyx_string_tab[147]
3211#define __pyx_kp_b_iso88591_1_01_q_01_q_010_0_Q0_A0_10_10_a __pyx_string_tab[148]
3212#define __pyx_kp_b_iso88591_41AV1A01_q_01_q_010_0_Q0_A0_10 __pyx_string_tab[149]
3213#define __pyx_kp_b_iso88591_C_1F_145V1A45V1A4_ha4_c_4_b_4_a __pyx_string_tab[150]
3214#define __pyx_kp_b_iso88591_F_QavQa45V1A45V1A4_ha4_c_4_b_4 __pyx_string_tab[151]
3215#define __pyx_kp_b_iso88591_2V1A_2_2_Q_2_A_2_1_2_A_2_2_a_2 __pyx_string_tab[152]
3216#define __pyx_kp_b_iso88591_2V1A_fAQ_fAQ__A_S_Rq_Qa_Rq_XQ_T __pyx_string_tab[153]
3217#define __pyx_kp_b_iso88591_Qb_aq_vQ_vQ_2_2_Q_2_A_2_1_2_A_2 __pyx_string_tab[154]
3218#define __pyx_kp_b_iso88591_Qb_aq_fAQ_fAQ_6_6_oQ_c_b_aq_b_h __pyx_string_tab[155]
3219#define __pyx_kp_b_iso88591_ar_q_fAQ_fAQ_36_36_6ha_6c_6b_6a __pyx_string_tab[156]
3220#define __pyx_kp_b_iso88591_0q0A_q_0A_q_0A_q_010_0_10_a0_J __pyx_string_tab[157]
3221#define __pyx_kp_b_iso88591_3_3DF_10A_q_0A_q_010_0_10_a0_J __pyx_string_tab[158]
3222#define __pyx_kp_b_iso88591_Q_vQa_V1A_V1A_6d_6d_6l_66Fa_66F __pyx_string_tab[159]
3223#define __pyx_kp_b_iso88591_0q0A_q_0A_q_0A_q_010_0_10_a0_J_2 __pyx_string_tab[160]
3224#define __pyx_kp_b_iso88591_3_3DF_10A_q_0A_q_010_0_10_a0_J_2 __pyx_string_tab[161]
3225#define __pyx_kp_b_iso88591_9_9J_PQQR8I_qPQ8I_qPQ898B_QR8B __pyx_string_tab[162]
3226#define __pyx_kp_b_iso88591_1_MVSTTU8I_qPQ8I_qPQ898B_QR8B_1 __pyx_string_tab[163]
3227#define __pyx_kp_b_iso88591_0_414EV1A4EV1A4EV1A454_d_4_d_4 __pyx_string_tab[164]
3228#define __pyx_kp_b_iso88591_2_A_6fAQ_5V1A_5V1A_oQ_aq_aq_aq __pyx_string_tab[165]
3229#define __pyx_kp_b_iso88591_2_q_9_q_5V1A_5V1A_oQ_aq_aq_aq_l __pyx_string_tab[166]
3230#define __pyx_kp_b_iso88591_8_Q_vQa_V1A_V1A_6d_6d_6l_66Fa_6 __pyx_string_tab[167]
3231#define __pyx_kp_b_iso88591_8_9_9J_PQQR8I_qPQ8I_qPQ898B_QR8 __pyx_string_tab[168]
3232#define __pyx_kp_b_iso88591_8_1_MVSTTU8I_qPQ8I_qPQ898B_QR8B __pyx_string_tab[169]
3233#define __pyx_kp_b_iso88591_a_PPVVWWX_MVSTTU_MVSTTU_FoUV_Fb __pyx_string_tab[170]
3234#define __pyx_kp_b_iso88591_B_BSSYYZZ_QQWWXXY_QQWWXXY_A_J_Y __pyx_string_tab[171]
3235#define __pyx_kp_b_iso88591_P_414EV1A4EV1A4EV1A454_d_4_d_4 __pyx_string_tab[172]
3236/* #### Code section: module_state_clear ### */
3237#if CYTHON_USE_MODULE_STATE
3238static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
3239 __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
3240 if (!clear_module_state) return 0;
3241 Py_CLEAR(clear_module_state->__pyx_d);
3242 Py_CLEAR(clear_module_state->__pyx_b);
3243 Py_CLEAR(clear_module_state->__pyx_cython_runtime);
3244 Py_CLEAR(clear_module_state->__pyx_empty_tuple);
3245 Py_CLEAR(clear_module_state->__pyx_empty_bytes);
3246 Py_CLEAR(clear_module_state->__pyx_empty_unicode);
3247 #if CYTHON_PEP489_MULTI_PHASE_INIT
3248 __Pyx_State_RemoveModule(NULL);
3249 #endif
3250 Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
3251 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
3252 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
3253 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
3254 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
3255 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
3256 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
3257 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
3258 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
3259 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
3260 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
3261 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
3262 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
3263 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
3264 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
3265 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
3266 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method);
3267 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method);
3268 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method);
3269 for (int i=0; i<36; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
3270 for (int i=0; i<173; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
3271/* #### Code section: module_state_clear_contents ### */
3272/* CommonTypesMetaclass.module_state_clear */
3273Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);
3274
3275/* CythonFunctionPerModule.module_state_clear */
3276Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
3277
3278/* #### Code section: module_state_clear_end ### */
3279return 0;
3280}
3281#endif
3282/* #### Code section: module_state_traverse ### */
3283#if CYTHON_USE_MODULE_STATE
3284static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3285 __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
3286 if (!traverse_module_state) return 0;
3287 Py_VISIT(traverse_module_state->__pyx_d);
3288 Py_VISIT(traverse_module_state->__pyx_b);
3289 Py_VISIT(traverse_module_state->__pyx_cython_runtime);
3290 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
3291 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
3292 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
3293 Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
3294 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
3295 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
3296 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
3297 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
3298 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
3299 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
3300 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
3301 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
3302 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
3303 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
3304 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
3305 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
3306 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
3307 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
3308 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
3309 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method);
3310 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method);
3311 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method);
3312 for (int i=0; i<36; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
3313 for (int i=0; i<173; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
3314/* #### Code section: module_state_traverse_contents ### */
3315/* CommonTypesMetaclass.module_state_traverse */
3316Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);
3317
3318/* CythonFunctionPerModule.module_state_traverse */
3319Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
3320
3321/* #### Code section: module_state_traverse_end ### */
3322return 0;
3323}
3324#endif
3325/* #### Code section: module_code ### */
3326
3327/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
3328 *
3329 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
3330 * @property # <<<<<<<<<<<<<<
3331 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3332 * return PyDataType_TYPEOBJ(self)
3333*/
3334
3335static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self) {
3336 PyTypeObject *__pyx_r;
3337
3338 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":232
3339 * @property
3340 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3341 * return PyDataType_TYPEOBJ(self) # <<<<<<<<<<<<<<
3342 *
3343 * @property
3344*/
3345 {
3346
3347 __pyx_r = PyDataType_TYPEOBJ(__pyx_v_self);
3348 }
3349 goto __pyx_L0;
3350
3351 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
3352 *
3353 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
3354 * @property # <<<<<<<<<<<<<<
3355 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
3356 * return PyDataType_TYPEOBJ(self)
3357*/
3358
3359 /* function exit code */
3360 __pyx_L0:;
3361 return __pyx_r;
3362}
3363
3364/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
3365 * return PyDataType_TYPEOBJ(self)
3366 *
3367 * @property # <<<<<<<<<<<<<<
3368 * cdef inline char kind(self) noexcept nogil:
3369 * return PyDataType_KIND(self)
3370*/
3371
3372static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self) {
3373 char __pyx_r;
3374
3375 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":236
3376 * @property
3377 * cdef inline char kind(self) noexcept nogil:
3378 * return PyDataType_KIND(self) # <<<<<<<<<<<<<<
3379 *
3380 * @property
3381*/
3382 {
3383
3384 __pyx_r = PyDataType_KIND(__pyx_v_self);
3385 }
3386 goto __pyx_L0;
3387
3388 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
3389 * return PyDataType_TYPEOBJ(self)
3390 *
3391 * @property # <<<<<<<<<<<<<<
3392 * cdef inline char kind(self) noexcept nogil:
3393 * return PyDataType_KIND(self)
3394*/
3395
3396 /* function exit code */
3397 __pyx_L0:;
3398 return __pyx_r;
3399}
3400
3401/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
3402 * return PyDataType_KIND(self)
3403 *
3404 * @property # <<<<<<<<<<<<<<
3405 * cdef inline char type(self) noexcept nogil:
3406 * return PyDataType_TYPE(self)
3407*/
3408
3409static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self) {
3410 char __pyx_r;
3411
3412 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":240
3413 * @property
3414 * cdef inline char type(self) noexcept nogil:
3415 * return PyDataType_TYPE(self) # <<<<<<<<<<<<<<
3416 *
3417 * # Numpy sometimes mutates this without warning (e.g. it'll
3418*/
3419 {
3420
3421 __pyx_r = PyDataType_TYPE(__pyx_v_self);
3422 }
3423 goto __pyx_L0;
3424
3425 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
3426 * return PyDataType_KIND(self)
3427 *
3428 * @property # <<<<<<<<<<<<<<
3429 * cdef inline char type(self) noexcept nogil:
3430 * return PyDataType_TYPE(self)
3431*/
3432
3433 /* function exit code */
3434 __pyx_L0:;
3435 return __pyx_r;
3436}
3437
3438/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
3439 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
3440 * # directly accessing this field.
3441 * @property # <<<<<<<<<<<<<<
3442 * cdef inline char byteorder(self) noexcept nogil:
3443 * return PyDataType_BYTEORDER(self)
3444*/
3445
3446static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self) {
3447 char __pyx_r;
3448
3449 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":249
3450 * @property
3451 * cdef inline char byteorder(self) noexcept nogil:
3452 * return PyDataType_BYTEORDER(self) # <<<<<<<<<<<<<<
3453 *
3454 * @property
3455*/
3456 {
3457
3458 __pyx_r = PyDataType_BYTEORDER(__pyx_v_self);
3459 }
3460 goto __pyx_L0;
3461
3462 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
3463 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
3464 * # directly accessing this field.
3465 * @property # <<<<<<<<<<<<<<
3466 * cdef inline char byteorder(self) noexcept nogil:
3467 * return PyDataType_BYTEORDER(self)
3468*/
3469
3470 /* function exit code */
3471 __pyx_L0:;
3472 return __pyx_r;
3473}
3474
3475/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
3476 * return PyDataType_BYTEORDER(self)
3477 *
3478 * @property # <<<<<<<<<<<<<<
3479 * cdef inline int type_num(self) noexcept nogil:
3480 * return PyDataType_TYPENUM(self)
3481*/
3482
3483static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self) {
3484 int __pyx_r;
3485
3486 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":253
3487 * @property
3488 * cdef inline int type_num(self) noexcept nogil:
3489 * return PyDataType_TYPENUM(self) # <<<<<<<<<<<<<<
3490 *
3491 * @property
3492*/
3493 {
3494
3495 __pyx_r = PyDataType_TYPENUM(__pyx_v_self);
3496 }
3497 goto __pyx_L0;
3498
3499 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
3500 * return PyDataType_BYTEORDER(self)
3501 *
3502 * @property # <<<<<<<<<<<<<<
3503 * cdef inline int type_num(self) noexcept nogil:
3504 * return PyDataType_TYPENUM(self)
3505*/
3506
3507 /* function exit code */
3508 __pyx_L0:;
3509 return __pyx_r;
3510}
3511
3512/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
3513 * return PyDataType_TYPENUM(self)
3514 *
3515 * @property # <<<<<<<<<<<<<<
3516 * cdef inline npy_intp itemsize(self) noexcept nogil:
3517 * return PyDataType_ELSIZE(self)
3518*/
3519
3520static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self) {
3521 npy_intp __pyx_r;
3522
3523 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":257
3524 * @property
3525 * cdef inline npy_intp itemsize(self) noexcept nogil:
3526 * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<<
3527 *
3528 * @property
3529*/
3530 {
3531
3532 __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
3533 }
3534 goto __pyx_L0;
3535
3536 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
3537 * return PyDataType_TYPENUM(self)
3538 *
3539 * @property # <<<<<<<<<<<<<<
3540 * cdef inline npy_intp itemsize(self) noexcept nogil:
3541 * return PyDataType_ELSIZE(self)
3542*/
3543
3544 /* function exit code */
3545 __pyx_L0:;
3546 return __pyx_r;
3547}
3548
3549/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
3550 * return PyDataType_ELSIZE(self)
3551 *
3552 * @property # <<<<<<<<<<<<<<
3553 * cdef inline npy_intp alignment(self) noexcept nogil:
3554 * return PyDataType_ALIGNMENT(self)
3555*/
3556
3557static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self) {
3558 npy_intp __pyx_r;
3559
3560 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":261
3561 * @property
3562 * cdef inline npy_intp alignment(self) noexcept nogil:
3563 * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<<
3564 *
3565 * # Use fields/names with care as they may be NULL. You must check
3566*/
3567 {
3568
3569 __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
3570 }
3571 goto __pyx_L0;
3572
3573 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
3574 * return PyDataType_ELSIZE(self)
3575 *
3576 * @property # <<<<<<<<<<<<<<
3577 * cdef inline npy_intp alignment(self) noexcept nogil:
3578 * return PyDataType_ALIGNMENT(self)
3579*/
3580
3581 /* function exit code */
3582 __pyx_L0:;
3583 return __pyx_r;
3584}
3585
3586/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
3587 * # Use fields/names with care as they may be NULL. You must check
3588 * # for this using PyDataType_HASFIELDS.
3589 * @property # <<<<<<<<<<<<<<
3590 * cdef inline object fields(self):
3591 * return <object>PyDataType_FIELDS(self)
3592*/
3593
3594static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self) {
3595 PyObject *__pyx_r = NULL;
3596 __Pyx_RefNannyDeclarations
3597 PyObject *__pyx_t_1;
3598 __Pyx_RefNannySetupContext("__get__", 0);
3599
3600 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":267
3601 * @property
3602 * cdef inline object fields(self):
3603 * return <object>PyDataType_FIELDS(self) # <<<<<<<<<<<<<<
3604 *
3605 * @property
3606*/
3607 __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
3608
3609 {
3610 PyObject *__pyx_temp;
3611 {
3612 __pyx_temp = __pyx_r;
3613 __Pyx_INCREF(((PyObject *)__pyx_t_1));
3614 __pyx_r = ((PyObject *)__pyx_t_1);
3615 }
3616 __Pyx_XDECREF(__pyx_temp);
3617 }
3618
3619 goto __pyx_L0;
3620
3621 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
3622 * # Use fields/names with care as they may be NULL. You must check
3623 * # for this using PyDataType_HASFIELDS.
3624 * @property # <<<<<<<<<<<<<<
3625 * cdef inline object fields(self):
3626 * return <object>PyDataType_FIELDS(self)
3627*/
3628
3629 /* function exit code */
3630 __pyx_L0:;
3631 __Pyx_XGIVEREF(__pyx_r);
3632 __Pyx_RefNannyFinishContext();
3633 return __pyx_r;
3634}
3635
3636/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
3637 * return <object>PyDataType_FIELDS(self)
3638 *
3639 * @property # <<<<<<<<<<<<<<
3640 * cdef inline tuple names(self):
3641 * return <tuple>PyDataType_NAMES(self)
3642*/
3643
3644static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self) {
3645 PyObject *__pyx_r = NULL;
3646 __Pyx_RefNannyDeclarations
3647 PyObject *__pyx_t_1;
3648 __Pyx_RefNannySetupContext("__get__", 0);
3649
3650 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":271
3651 * @property
3652 * cdef inline tuple names(self):
3653 * return <tuple>PyDataType_NAMES(self) # <<<<<<<<<<<<<<
3654 *
3655 * # Use PyDataType_HASSUBARRAY to test whether this field is
3656*/
3657 __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
3658
3659 {
3660 PyObject *__pyx_temp;
3661 {
3662 __pyx_temp = __pyx_r;
3663 __Pyx_INCREF(((PyObject*)__pyx_t_1));
3664 __pyx_r = ((PyObject*)__pyx_t_1);
3665 }
3666 __Pyx_XDECREF(__pyx_temp);
3667 }
3668
3669 goto __pyx_L0;
3670
3671 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
3672 * return <object>PyDataType_FIELDS(self)
3673 *
3674 * @property # <<<<<<<<<<<<<<
3675 * cdef inline tuple names(self):
3676 * return <tuple>PyDataType_NAMES(self)
3677*/
3678
3679 /* function exit code */
3680 __pyx_L0:;
3681 __Pyx_XGIVEREF(__pyx_r);
3682 __Pyx_RefNannyFinishContext();
3683 return __pyx_r;
3684}
3685
3686/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
3687 * # valid (the pointer can be NULL). Most users should access
3688 * # this field via the inline helper method PyDataType_SHAPE.
3689 * @property # <<<<<<<<<<<<<<
3690 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
3691 * return PyDataType_SUBARRAY(self)
3692*/
3693
3694static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self) {
3695 PyArray_ArrayDescr *__pyx_r;
3696
3697 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":278
3698 * @property
3699 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
3700 * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<<
3701 *
3702 * @property
3703*/
3704 {
3705
3706 __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
3707 }
3708 goto __pyx_L0;
3709
3710 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
3711 * # valid (the pointer can be NULL). Most users should access
3712 * # this field via the inline helper method PyDataType_SHAPE.
3713 * @property # <<<<<<<<<<<<<<
3714 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
3715 * return PyDataType_SUBARRAY(self)
3716*/
3717
3718 /* function exit code */
3719 __pyx_L0:;
3720 return __pyx_r;
3721}
3722
3723/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
3724 * return PyDataType_SUBARRAY(self)
3725 *
3726 * @property # <<<<<<<<<<<<<<
3727 * cdef inline npy_uint64 flags(self) noexcept nogil:
3728 * """The data types flags."""
3729*/
3730
3731static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self) {
3732 npy_uint64 __pyx_r;
3733
3734 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":283
3735 * cdef inline npy_uint64 flags(self) noexcept nogil:
3736 * """The data types flags."""
3737 * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<<
3738 *
3739 *
3740*/
3741 {
3742
3743 __pyx_r = PyDataType_FLAGS(__pyx_v_self);
3744 }
3745 goto __pyx_L0;
3746
3747 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
3748 * return PyDataType_SUBARRAY(self)
3749 *
3750 * @property # <<<<<<<<<<<<<<
3751 * cdef inline npy_uint64 flags(self) noexcept nogil:
3752 * """The data types flags."""
3753*/
3754
3755 /* function exit code */
3756 __pyx_L0:;
3757 return __pyx_r;
3758}
3759
3760/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
3761 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
3762 *
3763 * @property # <<<<<<<<<<<<<<
3764 * cdef inline int numiter(self) noexcept nogil:
3765 * """The number of arrays that need to be broadcast to the same shape."""
3766*/
3767
3768static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self) {
3769 int __pyx_r;
3770
3771 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":295
3772 * cdef inline int numiter(self) noexcept nogil:
3773 * """The number of arrays that need to be broadcast to the same shape."""
3774 * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<<
3775 *
3776 * @property
3777*/
3778 {
3779
3780 __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
3781 }
3782 goto __pyx_L0;
3783
3784 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
3785 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
3786 *
3787 * @property # <<<<<<<<<<<<<<
3788 * cdef inline int numiter(self) noexcept nogil:
3789 * """The number of arrays that need to be broadcast to the same shape."""
3790*/
3791
3792 /* function exit code */
3793 __pyx_L0:;
3794 return __pyx_r;
3795}
3796
3797/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
3798 * return PyArray_MultiIter_NUMITER(self)
3799 *
3800 * @property # <<<<<<<<<<<<<<
3801 * cdef inline npy_intp size(self) noexcept nogil:
3802 * """The total broadcasted size."""
3803*/
3804
3805static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self) {
3806 npy_intp __pyx_r;
3807
3808 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":300
3809 * cdef inline npy_intp size(self) noexcept nogil:
3810 * """The total broadcasted size."""
3811 * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<<
3812 *
3813 * @property
3814*/
3815 {
3816
3817 __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
3818 }
3819 goto __pyx_L0;
3820
3821 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
3822 * return PyArray_MultiIter_NUMITER(self)
3823 *
3824 * @property # <<<<<<<<<<<<<<
3825 * cdef inline npy_intp size(self) noexcept nogil:
3826 * """The total broadcasted size."""
3827*/
3828
3829 /* function exit code */
3830 __pyx_L0:;
3831 return __pyx_r;
3832}
3833
3834/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
3835 * return PyArray_MultiIter_SIZE(self)
3836 *
3837 * @property # <<<<<<<<<<<<<<
3838 * cdef inline npy_intp index(self) noexcept nogil:
3839 * """The current (1-d) index into the broadcasted result."""
3840*/
3841
3842static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self) {
3843 npy_intp __pyx_r;
3844
3845 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":305
3846 * cdef inline npy_intp index(self) noexcept nogil:
3847 * """The current (1-d) index into the broadcasted result."""
3848 * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<<
3849 *
3850 * @property
3851*/
3852 {
3853
3854 __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
3855 }
3856 goto __pyx_L0;
3857
3858 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
3859 * return PyArray_MultiIter_SIZE(self)
3860 *
3861 * @property # <<<<<<<<<<<<<<
3862 * cdef inline npy_intp index(self) noexcept nogil:
3863 * """The current (1-d) index into the broadcasted result."""
3864*/
3865
3866 /* function exit code */
3867 __pyx_L0:;
3868 return __pyx_r;
3869}
3870
3871/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
3872 * return PyArray_MultiIter_INDEX(self)
3873 *
3874 * @property # <<<<<<<<<<<<<<
3875 * cdef inline int nd(self) noexcept nogil:
3876 * """The number of dimensions in the broadcasted result."""
3877*/
3878
3879static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self) {
3880 int __pyx_r;
3881
3882 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":310
3883 * cdef inline int nd(self) noexcept nogil:
3884 * """The number of dimensions in the broadcasted result."""
3885 * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<<
3886 *
3887 * @property
3888*/
3889 {
3890
3891 __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
3892 }
3893 goto __pyx_L0;
3894
3895 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
3896 * return PyArray_MultiIter_INDEX(self)
3897 *
3898 * @property # <<<<<<<<<<<<<<
3899 * cdef inline int nd(self) noexcept nogil:
3900 * """The number of dimensions in the broadcasted result."""
3901*/
3902
3903 /* function exit code */
3904 __pyx_L0:;
3905 return __pyx_r;
3906}
3907
3908/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
3909 * return PyArray_MultiIter_NDIM(self)
3910 *
3911 * @property # <<<<<<<<<<<<<<
3912 * cdef inline npy_intp* dimensions(self) noexcept nogil:
3913 * """The shape of the broadcasted result."""
3914*/
3915
3916static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self) {
3917 npy_intp *__pyx_r;
3918
3919 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":315
3920 * cdef inline npy_intp* dimensions(self) noexcept nogil:
3921 * """The shape of the broadcasted result."""
3922 * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<<
3923 *
3924 * @property
3925*/
3926 {
3927
3928 __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
3929 }
3930 goto __pyx_L0;
3931
3932 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
3933 * return PyArray_MultiIter_NDIM(self)
3934 *
3935 * @property # <<<<<<<<<<<<<<
3936 * cdef inline npy_intp* dimensions(self) noexcept nogil:
3937 * """The shape of the broadcasted result."""
3938*/
3939
3940 /* function exit code */
3941 __pyx_L0:;
3942 return __pyx_r;
3943}
3944
3945/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
3946 * return PyArray_MultiIter_DIMS(self)
3947 *
3948 * @property # <<<<<<<<<<<<<<
3949 * cdef inline void** iters(self) noexcept nogil:
3950 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
3951*/
3952
3953static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self) {
3954 void **__pyx_r;
3955
3956 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":321
3957 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
3958 * On return, the iterators are adjusted for broadcasting."""
3959 * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<<
3960 *
3961 *
3962*/
3963 {
3964
3965 __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
3966 }
3967 goto __pyx_L0;
3968
3969 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
3970 * return PyArray_MultiIter_DIMS(self)
3971 *
3972 * @property # <<<<<<<<<<<<<<
3973 * cdef inline void** iters(self) noexcept nogil:
3974 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
3975*/
3976
3977 /* function exit code */
3978 __pyx_L0:;
3979 return __pyx_r;
3980}
3981
3982/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
3983 * # Instead, we use properties that map to the corresponding C-API functions.
3984 *
3985 * @property # <<<<<<<<<<<<<<
3986 * cdef inline PyObject* base(self) noexcept nogil:
3987 * """Returns a borrowed reference to the object owning the data/memory.
3988*/
3989
3990static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self) {
3991 PyObject *__pyx_r;
3992
3993 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":339
3994 * """Returns a borrowed reference to the object owning the data/memory.
3995 * """
3996 * return PyArray_BASE(self) # <<<<<<<<<<<<<<
3997 *
3998 * @property
3999*/
4000 {
4001
4002 __pyx_r = PyArray_BASE(__pyx_v_self);
4003 }
4004 goto __pyx_L0;
4005
4006 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
4007 * # Instead, we use properties that map to the corresponding C-API functions.
4008 *
4009 * @property # <<<<<<<<<<<<<<
4010 * cdef inline PyObject* base(self) noexcept nogil:
4011 * """Returns a borrowed reference to the object owning the data/memory.
4012*/
4013
4014 /* function exit code */
4015 __pyx_L0:;
4016 return __pyx_r;
4017}
4018
4019/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
4020 * return PyArray_BASE(self)
4021 *
4022 * @property # <<<<<<<<<<<<<<
4023 * cdef inline dtype descr(self):
4024 * """Returns an owned reference to the dtype of the array.
4025*/
4026
4027static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self) {
4028 PyArray_Descr *__pyx_r = NULL;
4029 __Pyx_RefNannyDeclarations
4030 PyArray_Descr *__pyx_t_1;
4031 __Pyx_RefNannySetupContext("__get__", 0);
4032
4033 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":345
4034 * """Returns an owned reference to the dtype of the array.
4035 * """
4036 * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
4037 *
4038 * @property
4039*/
4040 __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
4041
4042 {
4043 PyArray_Descr *__pyx_temp;
4044 {
4045 __pyx_temp = __pyx_r;
4046 __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
4047 __pyx_r = ((PyArray_Descr *)__pyx_t_1);
4048 }
4049 __Pyx_XDECREF((PyObject *)__pyx_temp);
4050 }
4051
4052 goto __pyx_L0;
4053
4054 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
4055 * return PyArray_BASE(self)
4056 *
4057 * @property # <<<<<<<<<<<<<<
4058 * cdef inline dtype descr(self):
4059 * """Returns an owned reference to the dtype of the array.
4060*/
4061
4062 /* function exit code */
4063 __pyx_L0:;
4064 __Pyx_XGIVEREF((PyObject *)__pyx_r);
4065 __Pyx_RefNannyFinishContext();
4066 return __pyx_r;
4067}
4068
4069/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
4070 * return <dtype>PyArray_DESCR(self)
4071 *
4072 * @property # <<<<<<<<<<<<<<
4073 * cdef inline int ndim(self) noexcept nogil:
4074 * """Returns the number of dimensions in the array.
4075*/
4076
4077static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self) {
4078 int __pyx_r;
4079
4080 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":351
4081 * """Returns the number of dimensions in the array.
4082 * """
4083 * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
4084 *
4085 * @property
4086*/
4087 {
4088
4089 __pyx_r = PyArray_NDIM(__pyx_v_self);
4090 }
4091 goto __pyx_L0;
4092
4093 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
4094 * return <dtype>PyArray_DESCR(self)
4095 *
4096 * @property # <<<<<<<<<<<<<<
4097 * cdef inline int ndim(self) noexcept nogil:
4098 * """Returns the number of dimensions in the array.
4099*/
4100
4101 /* function exit code */
4102 __pyx_L0:;
4103 return __pyx_r;
4104}
4105
4106/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
4107 * return PyArray_NDIM(self)
4108 *
4109 * @property # <<<<<<<<<<<<<<
4110 * cdef inline npy_intp *shape(self) noexcept nogil:
4111 * """Returns a pointer to the dimensions/shape of the array.
4112*/
4113
4114static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self) {
4115 npy_intp *__pyx_r;
4116
4117 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":359
4118 * Can return NULL for 0-dimensional arrays.
4119 * """
4120 * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
4121 *
4122 * @property
4123*/
4124 {
4125
4126 __pyx_r = PyArray_DIMS(__pyx_v_self);
4127 }
4128 goto __pyx_L0;
4129
4130 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
4131 * return PyArray_NDIM(self)
4132 *
4133 * @property # <<<<<<<<<<<<<<
4134 * cdef inline npy_intp *shape(self) noexcept nogil:
4135 * """Returns a pointer to the dimensions/shape of the array.
4136*/
4137
4138 /* function exit code */
4139 __pyx_L0:;
4140 return __pyx_r;
4141}
4142
4143/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
4144 * return PyArray_DIMS(self)
4145 *
4146 * @property # <<<<<<<<<<<<<<
4147 * cdef inline npy_intp *strides(self) noexcept nogil:
4148 * """Returns a pointer to the strides of the array.
4149*/
4150
4151static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self) {
4152 npy_intp *__pyx_r;
4153
4154 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":366
4155 * The number of elements matches the number of dimensions of the array (ndim).
4156 * """
4157 * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
4158 *
4159 * @property
4160*/
4161 {
4162
4163 __pyx_r = PyArray_STRIDES(__pyx_v_self);
4164 }
4165 goto __pyx_L0;
4166
4167 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
4168 * return PyArray_DIMS(self)
4169 *
4170 * @property # <<<<<<<<<<<<<<
4171 * cdef inline npy_intp *strides(self) noexcept nogil:
4172 * """Returns a pointer to the strides of the array.
4173*/
4174
4175 /* function exit code */
4176 __pyx_L0:;
4177 return __pyx_r;
4178}
4179
4180/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
4181 * return PyArray_STRIDES(self)
4182 *
4183 * @property # <<<<<<<<<<<<<<
4184 * cdef inline npy_intp size(self) noexcept nogil:
4185 * """Returns the total size (in number of elements) of the array.
4186*/
4187
4188static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self) {
4189 npy_intp __pyx_r;
4190
4191 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":372
4192 * """Returns the total size (in number of elements) of the array.
4193 * """
4194 * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
4195 *
4196 * @property
4197*/
4198 {
4199
4200 __pyx_r = PyArray_SIZE(__pyx_v_self);
4201 }
4202 goto __pyx_L0;
4203
4204 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
4205 * return PyArray_STRIDES(self)
4206 *
4207 * @property # <<<<<<<<<<<<<<
4208 * cdef inline npy_intp size(self) noexcept nogil:
4209 * """Returns the total size (in number of elements) of the array.
4210*/
4211
4212 /* function exit code */
4213 __pyx_L0:;
4214 return __pyx_r;
4215}
4216
4217/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
4218 * return PyArray_SIZE(self)
4219 *
4220 * @property # <<<<<<<<<<<<<<
4221 * cdef inline char* data(self) noexcept nogil:
4222 * """The pointer to the data buffer as a char*.
4223*/
4224
4225static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self) {
4226 char *__pyx_r;
4227
4228 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":381
4229 * of `PyArray_DATA()` instead, which returns a 'void*'.
4230 * """
4231 * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
4232 *
4233 *
4234*/
4235 {
4236
4237 __pyx_r = PyArray_BYTES(__pyx_v_self);
4238 }
4239 goto __pyx_L0;
4240
4241 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
4242 * return PyArray_SIZE(self)
4243 *
4244 * @property # <<<<<<<<<<<<<<
4245 * cdef inline char* data(self) noexcept nogil:
4246 * """The pointer to the data buffer as a char*.
4247*/
4248
4249 /* function exit code */
4250 __pyx_L0:;
4251 return __pyx_r;
4252}
4253
4254/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
4255 * ctypedef long double complex clongdouble_t
4256 *
4257 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
4258 * return PyArray_MultiIterNew(1, <void*>a)
4259 *
4260*/
4261
4262static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
4263 PyObject *__pyx_r = NULL;
4264 __Pyx_RefNannyDeclarations
4265 PyObject *__pyx_t_1 = NULL;
4266 int __pyx_lineno = 0;
4267 const char *__pyx_filename = NULL;
4268 int __pyx_clineno = 0;
4269 __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
4270
4271 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":795
4272 *
4273 * cdef inline object PyArray_MultiIterNew1(a):
4274 * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
4275 *
4276 * cdef inline object PyArray_MultiIterNew2(a, b):
4277*/
4278 __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 795, __pyx_L1_error)
4279 __Pyx_GOTREF(__pyx_t_1);
4280 {
4281 PyObject *__pyx_temp;
4282 {
4283 __pyx_temp = __pyx_r;
4284 __pyx_r = __pyx_t_1;
4285 }
4286 __Pyx_XDECREF(__pyx_temp);
4287 }
4288 __pyx_t_1 = 0;
4289 goto __pyx_L0;
4290
4291 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
4292 * ctypedef long double complex clongdouble_t
4293 *
4294 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
4295 * return PyArray_MultiIterNew(1, <void*>a)
4296 *
4297*/
4298
4299 /* function exit code */
4300 __pyx_L1_error:;
4301 __Pyx_XDECREF(__pyx_t_1);
4302 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
4303 __pyx_r = 0;
4304 __pyx_L0:;
4305 __Pyx_XGIVEREF(__pyx_r);
4306 __Pyx_RefNannyFinishContext();
4307 return __pyx_r;
4308}
4309
4310/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
4311 * return PyArray_MultiIterNew(1, <void*>a)
4312 *
4313 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
4314 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4315 *
4316*/
4317
4318static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
4319 PyObject *__pyx_r = NULL;
4320 __Pyx_RefNannyDeclarations
4321 PyObject *__pyx_t_1 = NULL;
4322 int __pyx_lineno = 0;
4323 const char *__pyx_filename = NULL;
4324 int __pyx_clineno = 0;
4325 __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
4326
4327 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":798
4328 *
4329 * cdef inline object PyArray_MultiIterNew2(a, b):
4330 * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
4331 *
4332 * cdef inline object PyArray_MultiIterNew3(a, b, c):
4333*/
4334 __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)
4335 __Pyx_GOTREF(__pyx_t_1);
4336 {
4337 PyObject *__pyx_temp;
4338 {
4339 __pyx_temp = __pyx_r;
4340 __pyx_r = __pyx_t_1;
4341 }
4342 __Pyx_XDECREF(__pyx_temp);
4343 }
4344 __pyx_t_1 = 0;
4345 goto __pyx_L0;
4346
4347 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
4348 * return PyArray_MultiIterNew(1, <void*>a)
4349 *
4350 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
4351 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4352 *
4353*/
4354
4355 /* function exit code */
4356 __pyx_L1_error:;
4357 __Pyx_XDECREF(__pyx_t_1);
4358 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
4359 __pyx_r = 0;
4360 __pyx_L0:;
4361 __Pyx_XGIVEREF(__pyx_r);
4362 __Pyx_RefNannyFinishContext();
4363 return __pyx_r;
4364}
4365
4366/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
4367 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4368 *
4369 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
4370 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4371 *
4372*/
4373
4374static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
4375 PyObject *__pyx_r = NULL;
4376 __Pyx_RefNannyDeclarations
4377 PyObject *__pyx_t_1 = NULL;
4378 int __pyx_lineno = 0;
4379 const char *__pyx_filename = NULL;
4380 int __pyx_clineno = 0;
4381 __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
4382
4383 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":801
4384 *
4385 * cdef inline object PyArray_MultiIterNew3(a, b, c):
4386 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
4387 *
4388 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
4389*/
4390 __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)
4391 __Pyx_GOTREF(__pyx_t_1);
4392 {
4393 PyObject *__pyx_temp;
4394 {
4395 __pyx_temp = __pyx_r;
4396 __pyx_r = __pyx_t_1;
4397 }
4398 __Pyx_XDECREF(__pyx_temp);
4399 }
4400 __pyx_t_1 = 0;
4401 goto __pyx_L0;
4402
4403 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
4404 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
4405 *
4406 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
4407 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4408 *
4409*/
4410
4411 /* function exit code */
4412 __pyx_L1_error:;
4413 __Pyx_XDECREF(__pyx_t_1);
4414 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
4415 __pyx_r = 0;
4416 __pyx_L0:;
4417 __Pyx_XGIVEREF(__pyx_r);
4418 __Pyx_RefNannyFinishContext();
4419 return __pyx_r;
4420}
4421
4422/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
4423 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4424 *
4425 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
4426 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4427 *
4428*/
4429
4430static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
4431 PyObject *__pyx_r = NULL;
4432 __Pyx_RefNannyDeclarations
4433 PyObject *__pyx_t_1 = NULL;
4434 int __pyx_lineno = 0;
4435 const char *__pyx_filename = NULL;
4436 int __pyx_clineno = 0;
4437 __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
4438
4439 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":804
4440 *
4441 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
4442 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
4443 *
4444 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
4445*/
4446 __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)
4447 __Pyx_GOTREF(__pyx_t_1);
4448 {
4449 PyObject *__pyx_temp;
4450 {
4451 __pyx_temp = __pyx_r;
4452 __pyx_r = __pyx_t_1;
4453 }
4454 __Pyx_XDECREF(__pyx_temp);
4455 }
4456 __pyx_t_1 = 0;
4457 goto __pyx_L0;
4458
4459 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
4460 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
4461 *
4462 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
4463 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4464 *
4465*/
4466
4467 /* function exit code */
4468 __pyx_L1_error:;
4469 __Pyx_XDECREF(__pyx_t_1);
4470 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
4471 __pyx_r = 0;
4472 __pyx_L0:;
4473 __Pyx_XGIVEREF(__pyx_r);
4474 __Pyx_RefNannyFinishContext();
4475 return __pyx_r;
4476}
4477
4478/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
4479 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4480 *
4481 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
4482 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
4483 *
4484*/
4485
4486static 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) {
4487 PyObject *__pyx_r = NULL;
4488 __Pyx_RefNannyDeclarations
4489 PyObject *__pyx_t_1 = NULL;
4490 int __pyx_lineno = 0;
4491 const char *__pyx_filename = NULL;
4492 int __pyx_clineno = 0;
4493 __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
4494
4495 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":807
4496 *
4497 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
4498 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
4499 *
4500 * cdef inline tuple PyDataType_SHAPE(dtype d):
4501*/
4502 __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)
4503 __Pyx_GOTREF(__pyx_t_1);
4504 {
4505 PyObject *__pyx_temp;
4506 {
4507 __pyx_temp = __pyx_r;
4508 __pyx_r = __pyx_t_1;
4509 }
4510 __Pyx_XDECREF(__pyx_temp);
4511 }
4512 __pyx_t_1 = 0;
4513 goto __pyx_L0;
4514
4515 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
4516 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
4517 *
4518 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
4519 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
4520 *
4521*/
4522
4523 /* function exit code */
4524 __pyx_L1_error:;
4525 __Pyx_XDECREF(__pyx_t_1);
4526 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
4527 __pyx_r = 0;
4528 __pyx_L0:;
4529 __Pyx_XGIVEREF(__pyx_r);
4530 __Pyx_RefNannyFinishContext();
4531 return __pyx_r;
4532}
4533
4534/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
4535 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
4536 *
4537 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
4538 * if PyDataType_HASSUBARRAY(d):
4539 * return <tuple>d.subarray.shape
4540*/
4541
4542static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
4543 PyObject *__pyx_r = NULL;
4544 __Pyx_RefNannyDeclarations
4545 int __pyx_t_1;
4546 PyObject *__pyx_t_2;
4547 __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
4548
4549 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
4550 *
4551 * cdef inline tuple PyDataType_SHAPE(dtype d):
4552 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
4553 * return <tuple>d.subarray.shape
4554 * else:
4555*/
4556 __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
4557
4558 if (__pyx_t_1) {
4559
4560
4561 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":811
4562 * cdef inline tuple PyDataType_SHAPE(dtype d):
4563 * if PyDataType_HASSUBARRAY(d):
4564 * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
4565 * else:
4566 * return ()
4567*/
4568 __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray___get__(__pyx_v_d)->shape;
4569
4570 {
4571 PyObject *__pyx_temp;
4572 {
4573 __pyx_temp = __pyx_r;
4574 __Pyx_INCREF(((PyObject*)__pyx_t_2));
4575 __pyx_r = ((PyObject*)__pyx_t_2);
4576 }
4577 __Pyx_XDECREF(__pyx_temp);
4578 }
4579
4580 goto __pyx_L0;
4581
4582 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
4583 *
4584 * cdef inline tuple PyDataType_SHAPE(dtype d):
4585 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
4586 * return <tuple>d.subarray.shape
4587 * else:
4588*/
4589 }
4590
4591 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":813
4592 * return <tuple>d.subarray.shape
4593 * else:
4594 * return () # <<<<<<<<<<<<<<
4595 *
4596 *
4597*/
4598 /*else*/ {
4599 {
4600 PyObject *__pyx_temp;
4601 {
4602 __pyx_temp = __pyx_r;
4603 __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
4604 __pyx_r = __pyx_mstate_global->__pyx_empty_tuple;
4605 }
4606 __Pyx_XDECREF(__pyx_temp);
4607 }
4608 goto __pyx_L0;
4609 }
4610
4611 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
4612 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
4613 *
4614 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
4615 * if PyDataType_HASSUBARRAY(d):
4616 * return <tuple>d.subarray.shape
4617*/
4618
4619 /* function exit code */
4620 __pyx_L0:;
4621 __Pyx_XGIVEREF(__pyx_r);
4622 __Pyx_RefNannyFinishContext();
4623 return __pyx_r;
4624}
4625
4626/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
4627 *
4628 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
4629 * @property # <<<<<<<<<<<<<<
4630 * cdef inline int nin(self) noexcept nogil:
4631 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
4632*/
4633
4634static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self) {
4635 int __pyx_r;
4636
4637 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":949
4638 * @property
4639 * cdef inline int nin(self) noexcept nogil:
4640 * return _PyUFuncObject_GET_ITEM_DATA(self).nin # <<<<<<<<<<<<<<
4641 *
4642 * @property
4643*/
4644 {
4645
4646 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nin;
4647 }
4648 goto __pyx_L0;
4649
4650 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
4651 *
4652 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
4653 * @property # <<<<<<<<<<<<<<
4654 * cdef inline int nin(self) noexcept nogil:
4655 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
4656*/
4657
4658 /* function exit code */
4659 __pyx_L0:;
4660 return __pyx_r;
4661}
4662
4663/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
4664 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
4665 *
4666 * @property # <<<<<<<<<<<<<<
4667 * cdef inline int nout(self) noexcept nogil:
4668 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
4669*/
4670
4671static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self) {
4672 int __pyx_r;
4673
4674 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":953
4675 * @property
4676 * cdef inline int nout(self) noexcept nogil:
4677 * return _PyUFuncObject_GET_ITEM_DATA(self).nout # <<<<<<<<<<<<<<
4678 *
4679 * @property
4680*/
4681 {
4682
4683 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nout;
4684 }
4685 goto __pyx_L0;
4686
4687 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
4688 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
4689 *
4690 * @property # <<<<<<<<<<<<<<
4691 * cdef inline int nout(self) noexcept nogil:
4692 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
4693*/
4694
4695 /* function exit code */
4696 __pyx_L0:;
4697 return __pyx_r;
4698}
4699
4700/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
4701 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
4702 *
4703 * @property # <<<<<<<<<<<<<<
4704 * cdef inline int nargs(self) noexcept nogil:
4705 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
4706*/
4707
4708static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self) {
4709 int __pyx_r;
4710
4711 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":957
4712 * @property
4713 * cdef inline int nargs(self) noexcept nogil:
4714 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs # <<<<<<<<<<<<<<
4715 *
4716 * @property
4717*/
4718 {
4719
4720 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nargs;
4721 }
4722 goto __pyx_L0;
4723
4724 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
4725 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
4726 *
4727 * @property # <<<<<<<<<<<<<<
4728 * cdef inline int nargs(self) noexcept nogil:
4729 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
4730*/
4731
4732 /* function exit code */
4733 __pyx_L0:;
4734 return __pyx_r;
4735}
4736
4737/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
4738 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
4739 *
4740 * @property # <<<<<<<<<<<<<<
4741 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
4742 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
4743*/
4744
4745static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self) {
4746 PyUFuncGenericFunction *__pyx_r;
4747
4748 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":961
4749 * @property
4750 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
4751 * return _PyUFuncObject_GET_ITEM_DATA(self).functions # <<<<<<<<<<<<<<
4752 *
4753 * @property
4754*/
4755 {
4756
4757 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->functions;
4758 }
4759 goto __pyx_L0;
4760
4761 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
4762 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
4763 *
4764 * @property # <<<<<<<<<<<<<<
4765 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
4766 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
4767*/
4768
4769 /* function exit code */
4770 __pyx_L0:;
4771 return __pyx_r;
4772}
4773
4774/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
4775 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
4776 *
4777 * @property # <<<<<<<<<<<<<<
4778 * cdef inline void ** data(self) noexcept nogil:
4779 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
4780*/
4781
4782static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self) {
4783 void **__pyx_r;
4784
4785 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":965
4786 * @property
4787 * cdef inline void ** data(self) noexcept nogil:
4788 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data # <<<<<<<<<<<<<<
4789 *
4790 * @property
4791*/
4792 {
4793
4794 __pyx_r = ((void **)_PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->data);
4795 }
4796 goto __pyx_L0;
4797
4798 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
4799 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
4800 *
4801 * @property # <<<<<<<<<<<<<<
4802 * cdef inline void ** data(self) noexcept nogil:
4803 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
4804*/
4805
4806 /* function exit code */
4807 __pyx_L0:;
4808 return __pyx_r;
4809}
4810
4811/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
4812 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
4813 *
4814 * @property # <<<<<<<<<<<<<<
4815 * cdef inline int ntypes(self) noexcept nogil:
4816 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
4817*/
4818
4819static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self) {
4820 int __pyx_r;
4821
4822 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":969
4823 * @property
4824 * cdef inline int ntypes(self) noexcept nogil:
4825 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes # <<<<<<<<<<<<<<
4826 *
4827 * @property
4828*/
4829 {
4830
4831 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ntypes;
4832 }
4833 goto __pyx_L0;
4834
4835 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
4836 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
4837 *
4838 * @property # <<<<<<<<<<<<<<
4839 * cdef inline int ntypes(self) noexcept nogil:
4840 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
4841*/
4842
4843 /* function exit code */
4844 __pyx_L0:;
4845 return __pyx_r;
4846}
4847
4848/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
4849 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
4850 *
4851 * @property # <<<<<<<<<<<<<<
4852 * cdef inline const char* name(self) noexcept nogil:
4853 * return _PyUFuncObject_GET_ITEM_DATA(self).name
4854*/
4855
4856static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self) {
4857 char const *__pyx_r;
4858
4859 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":973
4860 * @property
4861 * cdef inline const char* name(self) noexcept nogil:
4862 * return _PyUFuncObject_GET_ITEM_DATA(self).name # <<<<<<<<<<<<<<
4863 *
4864 * @property
4865*/
4866 {
4867
4868 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->name;
4869 }
4870 goto __pyx_L0;
4871
4872 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
4873 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
4874 *
4875 * @property # <<<<<<<<<<<<<<
4876 * cdef inline const char* name(self) noexcept nogil:
4877 * return _PyUFuncObject_GET_ITEM_DATA(self).name
4878*/
4879
4880 /* function exit code */
4881 __pyx_L0:;
4882 return __pyx_r;
4883}
4884
4885/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
4886 * return _PyUFuncObject_GET_ITEM_DATA(self).name
4887 *
4888 * @property # <<<<<<<<<<<<<<
4889 * cdef inline const char* doc(self) noexcept nogil:
4890 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
4891*/
4892
4893static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self) {
4894 char const *__pyx_r;
4895
4896 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":977
4897 * @property
4898 * cdef inline const char* doc(self) noexcept nogil:
4899 * return _PyUFuncObject_GET_ITEM_DATA(self).doc # <<<<<<<<<<<<<<
4900 *
4901 * @property
4902*/
4903 {
4904
4905 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->doc;
4906 }
4907 goto __pyx_L0;
4908
4909 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
4910 * return _PyUFuncObject_GET_ITEM_DATA(self).name
4911 *
4912 * @property # <<<<<<<<<<<<<<
4913 * cdef inline const char* doc(self) noexcept nogil:
4914 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
4915*/
4916
4917 /* function exit code */
4918 __pyx_L0:;
4919 return __pyx_r;
4920}
4921
4922/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
4923 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
4924 *
4925 * @property # <<<<<<<<<<<<<<
4926 * cdef inline void* ptr(self) noexcept nogil:
4927 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
4928*/
4929
4930static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self) {
4931 void *__pyx_r;
4932
4933 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":981
4934 * @property
4935 * cdef inline void* ptr(self) noexcept nogil:
4936 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr # <<<<<<<<<<<<<<
4937 *
4938 * @property
4939*/
4940 {
4941
4942 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ptr;
4943 }
4944 goto __pyx_L0;
4945
4946 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
4947 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
4948 *
4949 * @property # <<<<<<<<<<<<<<
4950 * cdef inline void* ptr(self) noexcept nogil:
4951 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
4952*/
4953
4954 /* function exit code */
4955 __pyx_L0:;
4956 return __pyx_r;
4957}
4958
4959/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
4960 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
4961 *
4962 * @property # <<<<<<<<<<<<<<
4963 * cdef inline PyObject* obj(self) noexcept nogil:
4964 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
4965*/
4966
4967static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self) {
4968 PyObject *__pyx_r;
4969
4970 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":985
4971 * @property
4972 * cdef inline PyObject* obj(self) noexcept nogil:
4973 * return _PyUFuncObject_GET_ITEM_DATA(self).obj # <<<<<<<<<<<<<<
4974 *
4975 * @property
4976*/
4977 {
4978
4979 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->obj;
4980 }
4981 goto __pyx_L0;
4982
4983 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
4984 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
4985 *
4986 * @property # <<<<<<<<<<<<<<
4987 * cdef inline PyObject* obj(self) noexcept nogil:
4988 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
4989*/
4990
4991 /* function exit code */
4992 __pyx_L0:;
4993 return __pyx_r;
4994}
4995
4996/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
4997 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
4998 *
4999 * @property # <<<<<<<<<<<<<<
5000 * cdef inline PyObject* userloops(self) noexcept nogil:
5001 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
5002*/
5003
5004static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self) {
5005 PyObject *__pyx_r;
5006
5007 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":989
5008 * @property
5009 * cdef inline PyObject* userloops(self) noexcept nogil:
5010 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops # <<<<<<<<<<<<<<
5011 *
5012 * PyUFuncObject_fields *_PyUFuncObject_GET_ITEM_DATA(ufunc) nogil
5013*/
5014 {
5015
5016 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->userloops;
5017 }
5018 goto __pyx_L0;
5019
5020 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
5021 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5022 *
5023 * @property # <<<<<<<<<<<<<<
5024 * cdef inline PyObject* userloops(self) noexcept nogil:
5025 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
5026*/
5027
5028 /* function exit code */
5029 __pyx_L0:;
5030 return __pyx_r;
5031}
5032
5033/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
5034 * int _import_umath() except -1
5035 *
5036 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
5037 * Py_INCREF(base) # important to do this before stealing the reference below!
5038 * PyArray_SetBaseObject(arr, base)
5039*/
5040
5041static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
5042 int __pyx_t_1;
5043 int __pyx_lineno = 0;
5044 const char *__pyx_filename = NULL;
5045 int __pyx_clineno = 0;
5046
5047 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1066
5048 *
5049 * cdef inline void set_array_base(ndarray arr, object base) except *:
5050 * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
5051 * PyArray_SetBaseObject(arr, base)
5052 *
5053*/
5054 Py_INCREF(__pyx_v_base);
5055
5056 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1067
5057 * cdef inline void set_array_base(ndarray arr, object base) except *:
5058 * Py_INCREF(base) # important to do this before stealing the reference below!
5059 * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
5060 *
5061 * cdef inline object get_array_base(ndarray arr):
5062*/
5063 __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)
5064
5065
5066 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
5067 * int _import_umath() except -1
5068 *
5069 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
5070 * Py_INCREF(base) # important to do this before stealing the reference below!
5071 * PyArray_SetBaseObject(arr, base)
5072*/
5073
5074 /* function exit code */
5075 goto __pyx_L0;
5076 __pyx_L1_error:;
5077 __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
5078 __pyx_L0:;
5079
5080}
5081
5082/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
5083 * PyArray_SetBaseObject(arr, base)
5084 *
5085 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
5086 * base = PyArray_BASE(arr)
5087 * if base is NULL:
5088*/
5089
5090static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
5091 PyObject *__pyx_v_base;
5092 PyObject *__pyx_r = NULL;
5093 __Pyx_RefNannyDeclarations
5094 int __pyx_t_1;
5095 __Pyx_RefNannySetupContext("get_array_base", 0);
5096
5097 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1070
5098 *
5099 * cdef inline object get_array_base(ndarray arr):
5100 * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
5101 * if base is NULL:
5102 * return None
5103*/
5104 __pyx_v_base = PyArray_BASE(__pyx_v_arr);
5105
5106 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
5107 * cdef inline object get_array_base(ndarray arr):
5108 * base = PyArray_BASE(arr)
5109 * if base is NULL: # <<<<<<<<<<<<<<
5110 * return None
5111 * return <object>base
5112*/
5113 __pyx_t_1 = (__pyx_v_base == NULL);
5114
5115 if (__pyx_t_1) {
5116
5117
5118 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1072
5119 * base = PyArray_BASE(arr)
5120 * if base is NULL:
5121 * return None # <<<<<<<<<<<<<<
5122 * return <object>base
5123 *
5124*/
5125 {
5126 PyObject *__pyx_temp;
5127 {
5128 __pyx_temp = __pyx_r;
5129 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5130 }
5131 __Pyx_XDECREF(__pyx_temp);
5132 }
5133 goto __pyx_L0;
5134
5135 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
5136 * cdef inline object get_array_base(ndarray arr):
5137 * base = PyArray_BASE(arr)
5138 * if base is NULL: # <<<<<<<<<<<<<<
5139 * return None
5140 * return <object>base
5141*/
5142 }
5143
5144 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1073
5145 * if base is NULL:
5146 * return None
5147 * return <object>base # <<<<<<<<<<<<<<
5148 *
5149 * # Versions of the import_* functions which are more suitable for
5150*/
5151 {
5152 PyObject *__pyx_temp;
5153 {
5154 __pyx_temp = __pyx_r;
5155 __Pyx_INCREF(((PyObject *)__pyx_v_base));
5156 __pyx_r = ((PyObject *)__pyx_v_base);
5157 }
5158 __Pyx_XDECREF(__pyx_temp);
5159 }
5160 goto __pyx_L0;
5161
5162 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
5163 * PyArray_SetBaseObject(arr, base)
5164 *
5165 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
5166 * base = PyArray_BASE(arr)
5167 * if base is NULL:
5168*/
5169
5170 /* function exit code */
5171 __pyx_L0:;
5172
5173 __Pyx_XGIVEREF(__pyx_r);
5174 __Pyx_RefNannyFinishContext();
5175 return __pyx_r;
5176}
5177
5178/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
5179 * # Versions of the import_* functions which are more suitable for
5180 * # Cython code.
5181 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
5182 * try:
5183 * __pyx_import_array()
5184*/
5185
5186static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
5187 int __pyx_r;
5188 __Pyx_RefNannyDeclarations
5189 PyObject *__pyx_t_1 = NULL;
5190 PyObject *__pyx_t_2 = NULL;
5191 PyObject *__pyx_t_3 = NULL;
5192 int __pyx_t_4;
5193 PyObject *__pyx_t_5 = NULL;
5194 PyObject *__pyx_t_6 = NULL;
5195 PyObject *__pyx_t_7 = NULL;
5196 PyObject *__pyx_t_8 = NULL;
5197 PyObject *__pyx_t_9 = NULL;
5198 size_t __pyx_t_10;
5199 int __pyx_lineno = 0;
5200 const char *__pyx_filename = NULL;
5201 int __pyx_clineno = 0;
5202 __Pyx_RefNannySetupContext("import_array", 0);
5203
5204 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5205 * # Cython code.
5206 * cdef inline int import_array() except -1:
5207 * try: # <<<<<<<<<<<<<<
5208 * __pyx_import_array()
5209 * except Exception:
5210*/
5211 {
5212 __Pyx_PyThreadState_declare
5213 __Pyx_PyThreadState_assign
5214 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5215 __Pyx_XGOTREF(__pyx_t_1);
5216 __Pyx_XGOTREF(__pyx_t_2);
5217 __Pyx_XGOTREF(__pyx_t_3);
5218 /*try:*/ {
5219
5220 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1079
5221 * cdef inline int import_array() except -1:
5222 * try:
5223 * __pyx_import_array() # <<<<<<<<<<<<<<
5224 * except Exception:
5225 * raise ImportError("numpy._core.multiarray failed to import")
5226*/
5227 __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1079, __pyx_L3_error)
5228
5229
5230 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5231 * # Cython code.
5232 * cdef inline int import_array() except -1:
5233 * try: # <<<<<<<<<<<<<<
5234 * __pyx_import_array()
5235 * except Exception:
5236*/
5237 }
5238 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5239 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5240 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5241 goto __pyx_L8_try_end;
5242 __pyx_L3_error:;
5243
5244 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1080
5245 * try:
5246 * __pyx_import_array()
5247 * except Exception: # <<<<<<<<<<<<<<
5248 * raise ImportError("numpy._core.multiarray failed to import")
5249 *
5250*/
5251 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
5252 if (__pyx_t_4) {
5253 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
5254 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1080, __pyx_L5_except_error)
5255 __Pyx_XGOTREF(__pyx_t_5);
5256 __Pyx_XGOTREF(__pyx_t_6);
5257 __Pyx_XGOTREF(__pyx_t_7);
5258
5259 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1081
5260 * __pyx_import_array()
5261 * except Exception:
5262 * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
5263 *
5264 * cdef inline int import_umath() except -1:
5265*/
5266 __pyx_t_9 = NULL;
5267 __pyx_t_10 = 1;
5268 {
5269 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to};
5270 __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));
5271 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5272 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1081, __pyx_L5_except_error)
5273 __Pyx_GOTREF(__pyx_t_8);
5274 }
5275 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
5276 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5277 __PYX_ERR(1, 1081, __pyx_L5_except_error)
5278 }
5279 goto __pyx_L5_except_error;
5280
5281 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
5282 * # Cython code.
5283 * cdef inline int import_array() except -1:
5284 * try: # <<<<<<<<<<<<<<
5285 * __pyx_import_array()
5286 * except Exception:
5287*/
5288 __pyx_L5_except_error:;
5289 __Pyx_XGIVEREF(__pyx_t_1);
5290 __Pyx_XGIVEREF(__pyx_t_2);
5291 __Pyx_XGIVEREF(__pyx_t_3);
5292 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5293 goto __pyx_L1_error;
5294 __pyx_L8_try_end:;
5295 }
5296
5297 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
5298 * # Versions of the import_* functions which are more suitable for
5299 * # Cython code.
5300 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
5301 * try:
5302 * __pyx_import_array()
5303*/
5304
5305 /* function exit code */
5306 __pyx_r = 0;
5307 goto __pyx_L0;
5308 __pyx_L1_error:;
5309 __Pyx_XDECREF(__pyx_t_5);
5310 __Pyx_XDECREF(__pyx_t_6);
5311 __Pyx_XDECREF(__pyx_t_7);
5312 __Pyx_XDECREF(__pyx_t_8);
5313 __Pyx_XDECREF(__pyx_t_9);
5314 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
5315 __pyx_r = -1;
5316 __pyx_L0:;
5317
5318 __Pyx_RefNannyFinishContext();
5319 return __pyx_r;
5320}
5321
5322/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
5323 * raise ImportError("numpy._core.multiarray failed to import")
5324 *
5325 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
5326 * try:
5327 * _import_umath()
5328*/
5329
5330static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
5331 int __pyx_r;
5332 __Pyx_RefNannyDeclarations
5333 PyObject *__pyx_t_1 = NULL;
5334 PyObject *__pyx_t_2 = NULL;
5335 PyObject *__pyx_t_3 = NULL;
5336 int __pyx_t_4;
5337 PyObject *__pyx_t_5 = NULL;
5338 PyObject *__pyx_t_6 = NULL;
5339 PyObject *__pyx_t_7 = NULL;
5340 PyObject *__pyx_t_8 = NULL;
5341 PyObject *__pyx_t_9 = NULL;
5342 size_t __pyx_t_10;
5343 int __pyx_lineno = 0;
5344 const char *__pyx_filename = NULL;
5345 int __pyx_clineno = 0;
5346 __Pyx_RefNannySetupContext("import_umath", 0);
5347
5348 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5349 *
5350 * cdef inline int import_umath() except -1:
5351 * try: # <<<<<<<<<<<<<<
5352 * _import_umath()
5353 * except Exception:
5354*/
5355 {
5356 __Pyx_PyThreadState_declare
5357 __Pyx_PyThreadState_assign
5358 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5359 __Pyx_XGOTREF(__pyx_t_1);
5360 __Pyx_XGOTREF(__pyx_t_2);
5361 __Pyx_XGOTREF(__pyx_t_3);
5362 /*try:*/ {
5363
5364 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1085
5365 * cdef inline int import_umath() except -1:
5366 * try:
5367 * _import_umath() # <<<<<<<<<<<<<<
5368 * except Exception:
5369 * raise ImportError("numpy._core.umath failed to import")
5370*/
5371 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1085, __pyx_L3_error)
5372
5373
5374 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5375 *
5376 * cdef inline int import_umath() except -1:
5377 * try: # <<<<<<<<<<<<<<
5378 * _import_umath()
5379 * except Exception:
5380*/
5381 }
5382 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5383 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5384 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5385 goto __pyx_L8_try_end;
5386 __pyx_L3_error:;
5387
5388 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1086
5389 * try:
5390 * _import_umath()
5391 * except Exception: # <<<<<<<<<<<<<<
5392 * raise ImportError("numpy._core.umath failed to import")
5393 *
5394*/
5395 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
5396 if (__pyx_t_4) {
5397 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
5398 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1086, __pyx_L5_except_error)
5399 __Pyx_XGOTREF(__pyx_t_5);
5400 __Pyx_XGOTREF(__pyx_t_6);
5401 __Pyx_XGOTREF(__pyx_t_7);
5402
5403 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1087
5404 * _import_umath()
5405 * except Exception:
5406 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
5407 *
5408 * cdef inline int import_ufunc() except -1:
5409*/
5410 __pyx_t_9 = NULL;
5411 __pyx_t_10 = 1;
5412 {
5413 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
5414 __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));
5415 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5416 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1087, __pyx_L5_except_error)
5417 __Pyx_GOTREF(__pyx_t_8);
5418 }
5419 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
5420 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5421 __PYX_ERR(1, 1087, __pyx_L5_except_error)
5422 }
5423 goto __pyx_L5_except_error;
5424
5425 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
5426 *
5427 * cdef inline int import_umath() except -1:
5428 * try: # <<<<<<<<<<<<<<
5429 * _import_umath()
5430 * except Exception:
5431*/
5432 __pyx_L5_except_error:;
5433 __Pyx_XGIVEREF(__pyx_t_1);
5434 __Pyx_XGIVEREF(__pyx_t_2);
5435 __Pyx_XGIVEREF(__pyx_t_3);
5436 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5437 goto __pyx_L1_error;
5438 __pyx_L8_try_end:;
5439 }
5440
5441 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
5442 * raise ImportError("numpy._core.multiarray failed to import")
5443 *
5444 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
5445 * try:
5446 * _import_umath()
5447*/
5448
5449 /* function exit code */
5450 __pyx_r = 0;
5451 goto __pyx_L0;
5452 __pyx_L1_error:;
5453 __Pyx_XDECREF(__pyx_t_5);
5454 __Pyx_XDECREF(__pyx_t_6);
5455 __Pyx_XDECREF(__pyx_t_7);
5456 __Pyx_XDECREF(__pyx_t_8);
5457 __Pyx_XDECREF(__pyx_t_9);
5458 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
5459 __pyx_r = -1;
5460 __pyx_L0:;
5461
5462 __Pyx_RefNannyFinishContext();
5463 return __pyx_r;
5464}
5465
5466/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
5467 * raise ImportError("numpy._core.umath failed to import")
5468 *
5469 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
5470 * try:
5471 * _import_umath()
5472*/
5473
5474static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
5475 int __pyx_r;
5476 __Pyx_RefNannyDeclarations
5477 PyObject *__pyx_t_1 = NULL;
5478 PyObject *__pyx_t_2 = NULL;
5479 PyObject *__pyx_t_3 = NULL;
5480 int __pyx_t_4;
5481 PyObject *__pyx_t_5 = NULL;
5482 PyObject *__pyx_t_6 = NULL;
5483 PyObject *__pyx_t_7 = NULL;
5484 PyObject *__pyx_t_8 = NULL;
5485 PyObject *__pyx_t_9 = NULL;
5486 size_t __pyx_t_10;
5487 int __pyx_lineno = 0;
5488 const char *__pyx_filename = NULL;
5489 int __pyx_clineno = 0;
5490 __Pyx_RefNannySetupContext("import_ufunc", 0);
5491
5492 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
5493 *
5494 * cdef inline int import_ufunc() except -1:
5495 * try: # <<<<<<<<<<<<<<
5496 * _import_umath()
5497 * except Exception:
5498*/
5499 {
5500 __Pyx_PyThreadState_declare
5501 __Pyx_PyThreadState_assign
5502 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5503 __Pyx_XGOTREF(__pyx_t_1);
5504 __Pyx_XGOTREF(__pyx_t_2);
5505 __Pyx_XGOTREF(__pyx_t_3);
5506 /*try:*/ {
5507
5508 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1091
5509 * cdef inline int import_ufunc() except -1:
5510 * try:
5511 * _import_umath() # <<<<<<<<<<<<<<
5512 * except Exception:
5513 * raise ImportError("numpy._core.umath failed to import")
5514*/
5515 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1091, __pyx_L3_error)
5516
5517
5518 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
5519 *
5520 * cdef inline int import_ufunc() except -1:
5521 * try: # <<<<<<<<<<<<<<
5522 * _import_umath()
5523 * except Exception:
5524*/
5525 }
5526 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
5527 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5528 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5529 goto __pyx_L8_try_end;
5530 __pyx_L3_error:;
5531
5532 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1092
5533 * try:
5534 * _import_umath()
5535 * except Exception: # <<<<<<<<<<<<<<
5536 * raise ImportError("numpy._core.umath failed to import")
5537 *
5538*/
5539 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
5540 if (__pyx_t_4) {
5541 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
5542 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1092, __pyx_L5_except_error)
5543 __Pyx_XGOTREF(__pyx_t_5);
5544 __Pyx_XGOTREF(__pyx_t_6);
5545 __Pyx_XGOTREF(__pyx_t_7);
5546
5547 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1093
5548 * _import_umath()
5549 * except Exception:
5550 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
5551 *
5552 *
5553*/
5554 __pyx_t_9 = NULL;
5555 __pyx_t_10 = 1;
5556 {
5557 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
5558 __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));
5559 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5560 if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1093, __pyx_L5_except_error)
5561 __Pyx_GOTREF(__pyx_t_8);
5562 }
5563 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
5564 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5565 __PYX_ERR(1, 1093, __pyx_L5_except_error)
5566 }
5567 goto __pyx_L5_except_error;
5568
5569 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
5570 *
5571 * cdef inline int import_ufunc() except -1:
5572 * try: # <<<<<<<<<<<<<<
5573 * _import_umath()
5574 * except Exception:
5575*/
5576 __pyx_L5_except_error:;
5577 __Pyx_XGIVEREF(__pyx_t_1);
5578 __Pyx_XGIVEREF(__pyx_t_2);
5579 __Pyx_XGIVEREF(__pyx_t_3);
5580 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5581 goto __pyx_L1_error;
5582 __pyx_L8_try_end:;
5583 }
5584
5585 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
5586 * raise ImportError("numpy._core.umath failed to import")
5587 *
5588 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
5589 * try:
5590 * _import_umath()
5591*/
5592
5593 /* function exit code */
5594 __pyx_r = 0;
5595 goto __pyx_L0;
5596 __pyx_L1_error:;
5597 __Pyx_XDECREF(__pyx_t_5);
5598 __Pyx_XDECREF(__pyx_t_6);
5599 __Pyx_XDECREF(__pyx_t_7);
5600 __Pyx_XDECREF(__pyx_t_8);
5601 __Pyx_XDECREF(__pyx_t_9);
5602 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
5603 __pyx_r = -1;
5604 __pyx_L0:;
5605
5606 __Pyx_RefNannyFinishContext();
5607 return __pyx_r;
5608}
5609
5610/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
5611 *
5612 *
5613 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
5614 * """
5615 * Cython equivalent of `isinstance(obj, np.timedelta64)`
5616*/
5617
5618static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
5619 int __pyx_r;
5620
5621 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1108
5622 * bool
5623 * """
5624 * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
5625 *
5626 *
5627*/
5628 {
5629
5630 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
5631 }
5632 goto __pyx_L0;
5633
5634 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
5635 *
5636 *
5637 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
5638 * """
5639 * Cython equivalent of `isinstance(obj, np.timedelta64)`
5640*/
5641
5642 /* function exit code */
5643 __pyx_L0:;
5644
5645 return __pyx_r;
5646}
5647
5648/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
5649 *
5650 *
5651 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
5652 * """
5653 * Cython equivalent of `isinstance(obj, np.datetime64)`
5654*/
5655
5656static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
5657 int __pyx_r;
5658
5659 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1123
5660 * bool
5661 * """
5662 * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
5663 *
5664 *
5665*/
5666 {
5667
5668 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
5669 }
5670 goto __pyx_L0;
5671
5672 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
5673 *
5674 *
5675 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
5676 * """
5677 * Cython equivalent of `isinstance(obj, np.datetime64)`
5678*/
5679
5680 /* function exit code */
5681 __pyx_L0:;
5682
5683 return __pyx_r;
5684}
5685
5686/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
5687 *
5688 *
5689 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5690 * """
5691 * returns the int64 value underlying scalar numpy datetime64 object
5692*/
5693
5694static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
5695 npy_datetime __pyx_r;
5696
5697 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1133
5698 * also needed. That can be found using `get_datetime64_unit`.
5699 * """
5700 * return _PyDatetimeScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
5701 *
5702 *
5703*/
5704 {
5705
5706 __pyx_r = _PyDatetimeScalarObject_GetValue(__pyx_v_obj);
5707 }
5708 goto __pyx_L0;
5709
5710 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
5711 *
5712 *
5713 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5714 * """
5715 * returns the int64 value underlying scalar numpy datetime64 object
5716*/
5717
5718 /* function exit code */
5719 __pyx_L0:;
5720 return __pyx_r;
5721}
5722
5723/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
5724 *
5725 *
5726 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5727 * """
5728 * returns the int64 value underlying scalar numpy timedelta64 object
5729*/
5730
5731static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
5732 npy_timedelta __pyx_r;
5733
5734 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1140
5735 * returns the int64 value underlying scalar numpy timedelta64 object
5736 * """
5737 * return _PyTimedeltaScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
5738 *
5739 *
5740*/
5741 {
5742
5743 __pyx_r = _PyTimedeltaScalarObject_GetValue(__pyx_v_obj);
5744 }
5745 goto __pyx_L0;
5746
5747 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
5748 *
5749 *
5750 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5751 * """
5752 * returns the int64 value underlying scalar numpy timedelta64 object
5753*/
5754
5755 /* function exit code */
5756 __pyx_L0:;
5757 return __pyx_r;
5758}
5759
5760/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
5761 *
5762 *
5763 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5764 * """
5765 * returns the unit part of the dtype for a numpy datetime64 object.
5766*/
5767
5768static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
5769 NPY_DATETIMEUNIT __pyx_r;
5770
5771 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1147
5772 * returns the unit part of the dtype for a numpy datetime64 object.
5773 * """
5774 * return _PyDatetimeScalarObject_GetMetadata(obj).base # <<<<<<<<<<<<<<
5775 *
5776 *
5777*/
5778 {
5779
5780 __pyx_r = _PyDatetimeScalarObject_GetMetadata(__pyx_v_obj).base;
5781 }
5782 goto __pyx_L0;
5783
5784 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
5785 *
5786 *
5787 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
5788 * """
5789 * returns the unit part of the dtype for a numpy datetime64 object.
5790*/
5791
5792 /* function exit code */
5793 __pyx_L0:;
5794 return __pyx_r;
5795}
5796
5797/* "csubgridError.pyx":671
5798 * double* tau,
5799 * double* tau_gradient)
5800 * def calculateSubgridError_tauRes(np.ndarray tau, # <<<<<<<<<<<<<<
5801 * np.ndarray pdeResidual,
5802 * np.ndarray dpdeResidual,
5803*/
5804
5805/* Python wrapper */
5806static PyObject *__pyx_pw_13csubgridError_1calculateSubgridError_tauRes(PyObject *__pyx_self,
5807#if CYTHON_VECTORCALL
5808PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
5809#else
5810PyObject *__pyx_args, PyObject *__pyx_kwds
5811#endif
5812); /*proto*/
5813static PyMethodDef __pyx_mdef_13csubgridError_1calculateSubgridError_tauRes = {"calculateSubgridError_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_1calculateSubgridError_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
5814static PyObject *__pyx_pw_13csubgridError_1calculateSubgridError_tauRes(PyObject *__pyx_self,
5815#if CYTHON_VECTORCALL
5816PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
5817#else
5818PyObject *__pyx_args, PyObject *__pyx_kwds
5819#endif
5820) {
5821 PyArrayObject *__pyx_v_tau = 0;
5822 PyArrayObject *__pyx_v_pdeResidual = 0;
5823 PyArrayObject *__pyx_v_dpdeResidual = 0;
5824 PyArrayObject *__pyx_v_subgridError = 0;
5825 PyArrayObject *__pyx_v_dsubgridError = 0;
5826 #if !CYTHON_VECTORCALL
5827 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
5828 #endif
5829 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
5830 PyObject* values[5] = {0,0,0,0,0};
5831 int __pyx_lineno = 0;
5832 const char *__pyx_filename = NULL;
5833 int __pyx_clineno = 0;
5834 PyObject *__pyx_r = 0;
5835 __Pyx_RefNannyDeclarations
5836 __Pyx_RefNannySetupContext("calculateSubgridError_tauRes (wrapper)", 0);
5837 #if !CYTHON_VECTORCALL
5838 #if CYTHON_ASSUME_SAFE_SIZE
5839 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
5840 #else
5841 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
5842 #endif
5843 #endif
5844 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
5845 {
5846 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau,&__pyx_mstate_global->__pyx_n_u_pdeResidual,&__pyx_mstate_global->__pyx_n_u_dpdeResidual,&__pyx_mstate_global->__pyx_n_u_subgridError,&__pyx_mstate_global->__pyx_n_u_dsubgridError,0};
5847 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
5848 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 671, __pyx_L3_error)
5849 if (__pyx_kwds_len > 0) {
5850 switch (__pyx_nargs) {
5851 case 5:
5852 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
5853 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 671, __pyx_L3_error)
5854 CYTHON_FALLTHROUGH;
5855 case 4:
5856 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
5857 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 671, __pyx_L3_error)
5858 CYTHON_FALLTHROUGH;
5859 case 3:
5860 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
5861 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 671, __pyx_L3_error)
5862 CYTHON_FALLTHROUGH;
5863 case 2:
5864 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
5865 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 671, __pyx_L3_error)
5866 CYTHON_FALLTHROUGH;
5867 case 1:
5868 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
5869 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 671, __pyx_L3_error)
5870 CYTHON_FALLTHROUGH;
5871 case 0: break;
5872 default: goto __pyx_L5_argtuple_error;
5873 }
5874 const Py_ssize_t kwd_pos_args = __pyx_nargs;
5875 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_tauRes", 0) < (0)) __PYX_ERR(0, 671, __pyx_L3_error)
5876 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
5877 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_tauRes", 1, 5, 5, i); __PYX_ERR(0, 671, __pyx_L3_error) }
5878 }
5879 } else if (unlikely(__pyx_nargs != 5)) {
5880 goto __pyx_L5_argtuple_error;
5881 } else {
5882 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
5883 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 671, __pyx_L3_error)
5884 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
5885 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 671, __pyx_L3_error)
5886 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
5887 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 671, __pyx_L3_error)
5888 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
5889 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 671, __pyx_L3_error)
5890 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
5891 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 671, __pyx_L3_error)
5892 }
5893 __pyx_v_tau = ((PyArrayObject *)values[0]);
5894 __pyx_v_pdeResidual = ((PyArrayObject *)values[1]);
5895 __pyx_v_dpdeResidual = ((PyArrayObject *)values[2]);
5896 __pyx_v_subgridError = ((PyArrayObject *)values[3]);
5897 __pyx_v_dsubgridError = ((PyArrayObject *)values[4]);
5898 }
5899 goto __pyx_L6_skip;
5900 __pyx_L5_argtuple_error:;
5901 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_tauRes", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 671, __pyx_L3_error)
5902 __pyx_L6_skip:;
5903 goto __pyx_L4_argument_unpacking_done;
5904 __pyx_L3_error:;
5905 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
5906 Py_XDECREF(values[__pyx_temp]);
5907 }
5908 __Pyx_AddTraceback("csubgridError.calculateSubgridError_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
5909 __Pyx_RefNannyFinishContext();
5910 return NULL;
5911 __pyx_L4_argument_unpacking_done:;
5912 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 671, __pyx_L1_error)
5913 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidual", 0))) __PYX_ERR(0, 672, __pyx_L1_error)
5914 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidual", 0))) __PYX_ERR(0, 673, __pyx_L1_error)
5915 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridError), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridError", 0))) __PYX_ERR(0, 674, __pyx_L1_error)
5916 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridError), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridError", 0))) __PYX_ERR(0, 675, __pyx_L1_error)
5917 __pyx_r = __pyx_pf_13csubgridError_calculateSubgridError_tauRes(__pyx_self, __pyx_v_tau, __pyx_v_pdeResidual, __pyx_v_dpdeResidual, __pyx_v_subgridError, __pyx_v_dsubgridError);
5918
5919 /* function exit code */
5920 goto __pyx_L0;
5921 __pyx_L1_error:;
5922 __pyx_r = NULL;
5923 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
5924 Py_XDECREF(values[__pyx_temp]);
5925 }
5926 goto __pyx_L7_cleaned_up;
5927 __pyx_L0:;
5928 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
5929 Py_XDECREF(values[__pyx_temp]);
5930 }
5931 __pyx_L7_cleaned_up:;
5932 __Pyx_RefNannyFinishContext();
5933 return __pyx_r;
5934}
5935
5936static PyObject *__pyx_pf_13csubgridError_calculateSubgridError_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau, PyArrayObject *__pyx_v_pdeResidual, PyArrayObject *__pyx_v_dpdeResidual, PyArrayObject *__pyx_v_subgridError, PyArrayObject *__pyx_v_dsubgridError) {
5937 PyObject *__pyx_r = NULL;
5938 __Pyx_RefNannyDeclarations
5939 __Pyx_RefNannySetupContext("calculateSubgridError_tauRes", 0);
5940
5941 /* "csubgridError.pyx":676
5942 * np.ndarray subgridError,
5943 * np.ndarray dsubgridError):
5944 * ccalculateSubgridError_tauRes(dsubgridError.shape[0], # <<<<<<<<<<<<<<
5945 * dsubgridError.shape[1],
5946 * dsubgridError.shape[2],
5947*/
5948 calculateSubgridError_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridError)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridError)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridError)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridError)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridError)));
5949
5950 /* "csubgridError.pyx":671
5951 * double* tau,
5952 * double* tau_gradient)
5953 * def calculateSubgridError_tauRes(np.ndarray tau, # <<<<<<<<<<<<<<
5954 * np.ndarray pdeResidual,
5955 * np.ndarray dpdeResidual,
5956*/
5957
5958 /* function exit code */
5959 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5960 __Pyx_XGIVEREF(__pyx_r);
5961 __Pyx_RefNannyFinishContext();
5962 return __pyx_r;
5963}
5964
5965/* "csubgridError.pyx":684
5966 * <double*> subgridError.data,
5967 * <double*> dsubgridError.data)
5968 * def calculateSubgridError_ADR_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
5969 * np.ndarray dmt,
5970 * np.ndarray df,
5971*/
5972
5973/* Python wrapper */
5974static PyObject *__pyx_pw_13csubgridError_3calculateSubgridError_ADR_generic_tau(PyObject *__pyx_self,
5975#if CYTHON_VECTORCALL
5976PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
5977#else
5978PyObject *__pyx_args, PyObject *__pyx_kwds
5979#endif
5980); /*proto*/
5981static PyMethodDef __pyx_mdef_13csubgridError_3calculateSubgridError_ADR_generic_tau = {"calculateSubgridError_ADR_generic_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_3calculateSubgridError_ADR_generic_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
5982static PyObject *__pyx_pw_13csubgridError_3calculateSubgridError_ADR_generic_tau(PyObject *__pyx_self,
5983#if CYTHON_VECTORCALL
5984PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
5985#else
5986PyObject *__pyx_args, PyObject *__pyx_kwds
5987#endif
5988) {
5989 PyArrayObject *__pyx_v_inverseJ = 0;
5990 PyArrayObject *__pyx_v_dmt = 0;
5991 PyArrayObject *__pyx_v_df = 0;
5992 PyArrayObject *__pyx_v_a = 0;
5993 PyArrayObject *__pyx_v_da = 0;
5994 PyArrayObject *__pyx_v_grad_phi = 0;
5995 PyArrayObject *__pyx_v_dphi = 0;
5996 PyArrayObject *__pyx_v_dr = 0;
5997 PyArrayObject *__pyx_v_pe = 0;
5998 PyArrayObject *__pyx_v_cfl = 0;
5999 PyArrayObject *__pyx_v_tau = 0;
6000 #if !CYTHON_VECTORCALL
6001 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6002 #endif
6003 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6004 PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
6005 int __pyx_lineno = 0;
6006 const char *__pyx_filename = NULL;
6007 int __pyx_clineno = 0;
6008 PyObject *__pyx_r = 0;
6009 __Pyx_RefNannyDeclarations
6010 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_generic_tau (wrapper)", 0);
6011 #if !CYTHON_VECTORCALL
6012 #if CYTHON_ASSUME_SAFE_SIZE
6013 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6014 #else
6015 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6016 #endif
6017 #endif
6018 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6019 {
6020 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_da,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_dphi,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_pe,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
6021 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6022 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 684, __pyx_L3_error)
6023 if (__pyx_kwds_len > 0) {
6024 switch (__pyx_nargs) {
6025 case 11:
6026 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6027 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 684, __pyx_L3_error)
6028 CYTHON_FALLTHROUGH;
6029 case 10:
6030 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6031 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 684, __pyx_L3_error)
6032 CYTHON_FALLTHROUGH;
6033 case 9:
6034 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6035 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 684, __pyx_L3_error)
6036 CYTHON_FALLTHROUGH;
6037 case 8:
6038 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6039 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 684, __pyx_L3_error)
6040 CYTHON_FALLTHROUGH;
6041 case 7:
6042 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6043 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 684, __pyx_L3_error)
6044 CYTHON_FALLTHROUGH;
6045 case 6:
6046 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6047 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 684, __pyx_L3_error)
6048 CYTHON_FALLTHROUGH;
6049 case 5:
6050 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6051 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 684, __pyx_L3_error)
6052 CYTHON_FALLTHROUGH;
6053 case 4:
6054 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6055 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 684, __pyx_L3_error)
6056 CYTHON_FALLTHROUGH;
6057 case 3:
6058 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6059 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 684, __pyx_L3_error)
6060 CYTHON_FALLTHROUGH;
6061 case 2:
6062 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6063 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 684, __pyx_L3_error)
6064 CYTHON_FALLTHROUGH;
6065 case 1:
6066 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6067 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 684, __pyx_L3_error)
6068 CYTHON_FALLTHROUGH;
6069 case 0: break;
6070 default: goto __pyx_L5_argtuple_error;
6071 }
6072 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6073 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_ADR_generic_tau", 0) < (0)) __PYX_ERR(0, 684, __pyx_L3_error)
6074 for (Py_ssize_t i = __pyx_nargs; i < 11; i++) {
6075 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_generic_tau", 1, 11, 11, i); __PYX_ERR(0, 684, __pyx_L3_error) }
6076 }
6077 } else if (unlikely(__pyx_nargs != 11)) {
6078 goto __pyx_L5_argtuple_error;
6079 } else {
6080 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6081 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 684, __pyx_L3_error)
6082 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6083 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 684, __pyx_L3_error)
6084 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6085 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 684, __pyx_L3_error)
6086 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6087 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 684, __pyx_L3_error)
6088 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6089 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 684, __pyx_L3_error)
6090 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6091 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 684, __pyx_L3_error)
6092 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6093 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 684, __pyx_L3_error)
6094 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6095 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 684, __pyx_L3_error)
6096 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6097 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 684, __pyx_L3_error)
6098 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6099 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 684, __pyx_L3_error)
6100 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6101 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 684, __pyx_L3_error)
6102 }
6103 __pyx_v_inverseJ = ((PyArrayObject *)values[0]);
6104 __pyx_v_dmt = ((PyArrayObject *)values[1]);
6105 __pyx_v_df = ((PyArrayObject *)values[2]);
6106 __pyx_v_a = ((PyArrayObject *)values[3]);
6107 __pyx_v_da = ((PyArrayObject *)values[4]);
6108 __pyx_v_grad_phi = ((PyArrayObject *)values[5]);
6109 __pyx_v_dphi = ((PyArrayObject *)values[6]);
6110 __pyx_v_dr = ((PyArrayObject *)values[7]);
6111 __pyx_v_pe = ((PyArrayObject *)values[8]);
6112 __pyx_v_cfl = ((PyArrayObject *)values[9]);
6113 __pyx_v_tau = ((PyArrayObject *)values[10]);
6114 }
6115 goto __pyx_L6_skip;
6116 __pyx_L5_argtuple_error:;
6117 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_generic_tau", 1, 11, 11, __pyx_nargs); __PYX_ERR(0, 684, __pyx_L3_error)
6118 __pyx_L6_skip:;
6119 goto __pyx_L4_argument_unpacking_done;
6120 __pyx_L3_error:;
6121 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6122 Py_XDECREF(values[__pyx_temp]);
6123 }
6124 __Pyx_AddTraceback("csubgridError.calculateSubgridError_ADR_generic_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
6125 __Pyx_RefNannyFinishContext();
6126 return NULL;
6127 __pyx_L4_argument_unpacking_done:;
6128 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 684, __pyx_L1_error)
6129 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 685, __pyx_L1_error)
6130 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 686, __pyx_L1_error)
6131 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 687, __pyx_L1_error)
6132 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 688, __pyx_L1_error)
6133 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 689, __pyx_L1_error)
6134 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 690, __pyx_L1_error)
6135 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 691, __pyx_L1_error)
6136 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pe", 0))) __PYX_ERR(0, 692, __pyx_L1_error)
6137 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 693, __pyx_L1_error)
6138 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 694, __pyx_L1_error)
6139 __pyx_r = __pyx_pf_13csubgridError_2calculateSubgridError_ADR_generic_tau(__pyx_self, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_df, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_dr, __pyx_v_pe, __pyx_v_cfl, __pyx_v_tau);
6140
6141 /* function exit code */
6142 goto __pyx_L0;
6143 __pyx_L1_error:;
6144 __pyx_r = NULL;
6145 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6146 Py_XDECREF(values[__pyx_temp]);
6147 }
6148 goto __pyx_L7_cleaned_up;
6149 __pyx_L0:;
6150 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6151 Py_XDECREF(values[__pyx_temp]);
6152 }
6153 __pyx_L7_cleaned_up:;
6154 __Pyx_RefNannyFinishContext();
6155 return __pyx_r;
6156}
6157
6158static PyObject *__pyx_pf_13csubgridError_2calculateSubgridError_ADR_generic_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
6159 PyObject *__pyx_r = NULL;
6160 __Pyx_RefNannyDeclarations
6161 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_generic_tau", 0);
6162
6163 /* "csubgridError.pyx":695
6164 * np.ndarray cfl,
6165 * np.ndarray tau):
6166 * ccalculateSubgridError_ADR_generic_tau(df.shape[0], # <<<<<<<<<<<<<<
6167 * df.shape[1],
6168 * df.shape[2],
6169*/
6170 calculateSubgridError_ADR_generic_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_da)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
6171
6172 /* "csubgridError.pyx":684
6173 * <double*> subgridError.data,
6174 * <double*> dsubgridError.data)
6175 * def calculateSubgridError_ADR_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
6176 * np.ndarray dmt,
6177 * np.ndarray df,
6178*/
6179
6180 /* function exit code */
6181 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6182 __Pyx_XGIVEREF(__pyx_r);
6183 __Pyx_RefNannyFinishContext();
6184 return __pyx_r;
6185}
6186
6187/* "csubgridError.pyx":709
6188 * <double*> cfl.data,
6189 * <double*> tau.data)
6190 * def calculateSubgridError_ADR_generic_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
6191 * np.ndarray colind,
6192 * np.ndarray inverseJ,
6193*/
6194
6195/* Python wrapper */
6196static PyObject *__pyx_pw_13csubgridError_5calculateSubgridError_ADR_generic_tau_sd(PyObject *__pyx_self,
6197#if CYTHON_VECTORCALL
6198PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6199#else
6200PyObject *__pyx_args, PyObject *__pyx_kwds
6201#endif
6202); /*proto*/
6203static PyMethodDef __pyx_mdef_13csubgridError_5calculateSubgridError_ADR_generic_tau_sd = {"calculateSubgridError_ADR_generic_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_5calculateSubgridError_ADR_generic_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6204static PyObject *__pyx_pw_13csubgridError_5calculateSubgridError_ADR_generic_tau_sd(PyObject *__pyx_self,
6205#if CYTHON_VECTORCALL
6206PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6207#else
6208PyObject *__pyx_args, PyObject *__pyx_kwds
6209#endif
6210) {
6211 PyArrayObject *__pyx_v_rowptr = 0;
6212 PyArrayObject *__pyx_v_colind = 0;
6213 PyArrayObject *__pyx_v_inverseJ = 0;
6214 PyArrayObject *__pyx_v_dmt = 0;
6215 PyArrayObject *__pyx_v_df = 0;
6216 PyArrayObject *__pyx_v_a = 0;
6217 PyArrayObject *__pyx_v_da = 0;
6218 PyArrayObject *__pyx_v_grad_phi = 0;
6219 PyArrayObject *__pyx_v_dphi = 0;
6220 PyArrayObject *__pyx_v_dr = 0;
6221 PyArrayObject *__pyx_v_pe = 0;
6222 PyArrayObject *__pyx_v_cfl = 0;
6223 PyArrayObject *__pyx_v_tau = 0;
6224 #if !CYTHON_VECTORCALL
6225 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6226 #endif
6227 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6228 PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
6229 int __pyx_lineno = 0;
6230 const char *__pyx_filename = NULL;
6231 int __pyx_clineno = 0;
6232 PyObject *__pyx_r = 0;
6233 __Pyx_RefNannyDeclarations
6234 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_generic_tau_sd (wrapper)", 0);
6235 #if !CYTHON_VECTORCALL
6236 #if CYTHON_ASSUME_SAFE_SIZE
6237 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6238 #else
6239 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6240 #endif
6241 #endif
6242 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6243 {
6244 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_da,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_dphi,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_pe,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
6245 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6246 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 709, __pyx_L3_error)
6247 if (__pyx_kwds_len > 0) {
6248 switch (__pyx_nargs) {
6249 case 13:
6250 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6251 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 709, __pyx_L3_error)
6252 CYTHON_FALLTHROUGH;
6253 case 12:
6254 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6255 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 709, __pyx_L3_error)
6256 CYTHON_FALLTHROUGH;
6257 case 11:
6258 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6259 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 709, __pyx_L3_error)
6260 CYTHON_FALLTHROUGH;
6261 case 10:
6262 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6263 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 709, __pyx_L3_error)
6264 CYTHON_FALLTHROUGH;
6265 case 9:
6266 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6267 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 709, __pyx_L3_error)
6268 CYTHON_FALLTHROUGH;
6269 case 8:
6270 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6271 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 709, __pyx_L3_error)
6272 CYTHON_FALLTHROUGH;
6273 case 7:
6274 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6275 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 709, __pyx_L3_error)
6276 CYTHON_FALLTHROUGH;
6277 case 6:
6278 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6279 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 709, __pyx_L3_error)
6280 CYTHON_FALLTHROUGH;
6281 case 5:
6282 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6283 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 709, __pyx_L3_error)
6284 CYTHON_FALLTHROUGH;
6285 case 4:
6286 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6287 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 709, __pyx_L3_error)
6288 CYTHON_FALLTHROUGH;
6289 case 3:
6290 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6291 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 709, __pyx_L3_error)
6292 CYTHON_FALLTHROUGH;
6293 case 2:
6294 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6295 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 709, __pyx_L3_error)
6296 CYTHON_FALLTHROUGH;
6297 case 1:
6298 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6299 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 709, __pyx_L3_error)
6300 CYTHON_FALLTHROUGH;
6301 case 0: break;
6302 default: goto __pyx_L5_argtuple_error;
6303 }
6304 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6305 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_ADR_generic_tau_sd", 0) < (0)) __PYX_ERR(0, 709, __pyx_L3_error)
6306 for (Py_ssize_t i = __pyx_nargs; i < 13; i++) {
6307 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_generic_tau_sd", 1, 13, 13, i); __PYX_ERR(0, 709, __pyx_L3_error) }
6308 }
6309 } else if (unlikely(__pyx_nargs != 13)) {
6310 goto __pyx_L5_argtuple_error;
6311 } else {
6312 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6313 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 709, __pyx_L3_error)
6314 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6315 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 709, __pyx_L3_error)
6316 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6317 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 709, __pyx_L3_error)
6318 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6319 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 709, __pyx_L3_error)
6320 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6321 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 709, __pyx_L3_error)
6322 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6323 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 709, __pyx_L3_error)
6324 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6325 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 709, __pyx_L3_error)
6326 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6327 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 709, __pyx_L3_error)
6328 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6329 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 709, __pyx_L3_error)
6330 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6331 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 709, __pyx_L3_error)
6332 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6333 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 709, __pyx_L3_error)
6334 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6335 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 709, __pyx_L3_error)
6336 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6337 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 709, __pyx_L3_error)
6338 }
6339 __pyx_v_rowptr = ((PyArrayObject *)values[0]);
6340 __pyx_v_colind = ((PyArrayObject *)values[1]);
6341 __pyx_v_inverseJ = ((PyArrayObject *)values[2]);
6342 __pyx_v_dmt = ((PyArrayObject *)values[3]);
6343 __pyx_v_df = ((PyArrayObject *)values[4]);
6344 __pyx_v_a = ((PyArrayObject *)values[5]);
6345 __pyx_v_da = ((PyArrayObject *)values[6]);
6346 __pyx_v_grad_phi = ((PyArrayObject *)values[7]);
6347 __pyx_v_dphi = ((PyArrayObject *)values[8]);
6348 __pyx_v_dr = ((PyArrayObject *)values[9]);
6349 __pyx_v_pe = ((PyArrayObject *)values[10]);
6350 __pyx_v_cfl = ((PyArrayObject *)values[11]);
6351 __pyx_v_tau = ((PyArrayObject *)values[12]);
6352 }
6353 goto __pyx_L6_skip;
6354 __pyx_L5_argtuple_error:;
6355 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_generic_tau_sd", 1, 13, 13, __pyx_nargs); __PYX_ERR(0, 709, __pyx_L3_error)
6356 __pyx_L6_skip:;
6357 goto __pyx_L4_argument_unpacking_done;
6358 __pyx_L3_error:;
6359 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6360 Py_XDECREF(values[__pyx_temp]);
6361 }
6362 __Pyx_AddTraceback("csubgridError.calculateSubgridError_ADR_generic_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
6363 __Pyx_RefNannyFinishContext();
6364 return NULL;
6365 __pyx_L4_argument_unpacking_done:;
6366 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 709, __pyx_L1_error)
6367 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 710, __pyx_L1_error)
6368 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 711, __pyx_L1_error)
6369 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 712, __pyx_L1_error)
6370 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 713, __pyx_L1_error)
6371 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 714, __pyx_L1_error)
6372 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 715, __pyx_L1_error)
6373 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 716, __pyx_L1_error)
6374 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 717, __pyx_L1_error)
6375 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 718, __pyx_L1_error)
6376 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pe", 0))) __PYX_ERR(0, 719, __pyx_L1_error)
6377 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 720, __pyx_L1_error)
6378 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 721, __pyx_L1_error)
6379 __pyx_r = __pyx_pf_13csubgridError_4calculateSubgridError_ADR_generic_tau_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_df, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_dr, __pyx_v_pe, __pyx_v_cfl, __pyx_v_tau);
6380
6381 /* function exit code */
6382 goto __pyx_L0;
6383 __pyx_L1_error:;
6384 __pyx_r = NULL;
6385 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6386 Py_XDECREF(values[__pyx_temp]);
6387 }
6388 goto __pyx_L7_cleaned_up;
6389 __pyx_L0:;
6390 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6391 Py_XDECREF(values[__pyx_temp]);
6392 }
6393 __pyx_L7_cleaned_up:;
6394 __Pyx_RefNannyFinishContext();
6395 return __pyx_r;
6396}
6397
6398static PyObject *__pyx_pf_13csubgridError_4calculateSubgridError_ADR_generic_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
6399 PyObject *__pyx_r = NULL;
6400 __Pyx_RefNannyDeclarations
6401 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_generic_tau_sd", 0);
6402
6403 /* "csubgridError.pyx":722
6404 * np.ndarray cfl,
6405 * np.ndarray tau):
6406 * ccalculateSubgridError_ADR_generic_tau_sd(df.shape[0], # <<<<<<<<<<<<<<
6407 * df.shape[1],
6408 * df.shape[2],
6409*/
6410 calculateSubgridError_ADR_generic_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), ((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_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_da)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
6411
6412 /* "csubgridError.pyx":709
6413 * <double*> cfl.data,
6414 * <double*> tau.data)
6415 * def calculateSubgridError_ADR_generic_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
6416 * np.ndarray colind,
6417 * np.ndarray inverseJ,
6418*/
6419
6420 /* function exit code */
6421 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6422 __Pyx_XGIVEREF(__pyx_r);
6423 __Pyx_RefNannyFinishContext();
6424 return __pyx_r;
6425}
6426
6427/* "csubgridError.pyx":738
6428 * <double*> cfl.data,
6429 * <double*> tau.data)
6430 * def calculateSubgridError_ADR_tau(char stabilization, # <<<<<<<<<<<<<<
6431 * np.ndarray elementDiameter,
6432 * np.ndarray dmt,
6433*/
6434
6435/* Python wrapper */
6436static PyObject *__pyx_pw_13csubgridError_7calculateSubgridError_ADR_tau(PyObject *__pyx_self,
6437#if CYTHON_VECTORCALL
6438PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6439#else
6440PyObject *__pyx_args, PyObject *__pyx_kwds
6441#endif
6442); /*proto*/
6443static PyMethodDef __pyx_mdef_13csubgridError_7calculateSubgridError_ADR_tau = {"calculateSubgridError_ADR_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_7calculateSubgridError_ADR_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6444static PyObject *__pyx_pw_13csubgridError_7calculateSubgridError_ADR_tau(PyObject *__pyx_self,
6445#if CYTHON_VECTORCALL
6446PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6447#else
6448PyObject *__pyx_args, PyObject *__pyx_kwds
6449#endif
6450) {
6451 char __pyx_v_stabilization;
6452 PyArrayObject *__pyx_v_elementDiameter = 0;
6453 PyArrayObject *__pyx_v_dmt = 0;
6454 PyArrayObject *__pyx_v_df = 0;
6455 PyArrayObject *__pyx_v_a = 0;
6456 PyArrayObject *__pyx_v_da = 0;
6457 PyArrayObject *__pyx_v_grad_phi = 0;
6458 PyArrayObject *__pyx_v_dphi = 0;
6459 PyArrayObject *__pyx_v_dr = 0;
6460 PyArrayObject *__pyx_v_pe = 0;
6461 PyArrayObject *__pyx_v_cfl = 0;
6462 PyArrayObject *__pyx_v_tau = 0;
6463 #if !CYTHON_VECTORCALL
6464 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6465 #endif
6466 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6467 PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
6468 int __pyx_lineno = 0;
6469 const char *__pyx_filename = NULL;
6470 int __pyx_clineno = 0;
6471 PyObject *__pyx_r = 0;
6472 __Pyx_RefNannyDeclarations
6473 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_tau (wrapper)", 0);
6474 #if !CYTHON_VECTORCALL
6475 #if CYTHON_ASSUME_SAFE_SIZE
6476 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6477 #else
6478 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6479 #endif
6480 #endif
6481 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6482 {
6483 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_stabilization,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_da,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_dphi,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_pe,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
6484 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6485 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 738, __pyx_L3_error)
6486 if (__pyx_kwds_len > 0) {
6487 switch (__pyx_nargs) {
6488 case 12:
6489 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6490 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 738, __pyx_L3_error)
6491 CYTHON_FALLTHROUGH;
6492 case 11:
6493 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6494 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 738, __pyx_L3_error)
6495 CYTHON_FALLTHROUGH;
6496 case 10:
6497 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6498 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 738, __pyx_L3_error)
6499 CYTHON_FALLTHROUGH;
6500 case 9:
6501 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6502 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 738, __pyx_L3_error)
6503 CYTHON_FALLTHROUGH;
6504 case 8:
6505 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6506 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 738, __pyx_L3_error)
6507 CYTHON_FALLTHROUGH;
6508 case 7:
6509 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6510 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 738, __pyx_L3_error)
6511 CYTHON_FALLTHROUGH;
6512 case 6:
6513 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6514 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 738, __pyx_L3_error)
6515 CYTHON_FALLTHROUGH;
6516 case 5:
6517 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6518 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 738, __pyx_L3_error)
6519 CYTHON_FALLTHROUGH;
6520 case 4:
6521 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6522 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 738, __pyx_L3_error)
6523 CYTHON_FALLTHROUGH;
6524 case 3:
6525 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6526 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 738, __pyx_L3_error)
6527 CYTHON_FALLTHROUGH;
6528 case 2:
6529 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6530 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 738, __pyx_L3_error)
6531 CYTHON_FALLTHROUGH;
6532 case 1:
6533 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6534 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 738, __pyx_L3_error)
6535 CYTHON_FALLTHROUGH;
6536 case 0: break;
6537 default: goto __pyx_L5_argtuple_error;
6538 }
6539 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6540 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_ADR_tau", 0) < (0)) __PYX_ERR(0, 738, __pyx_L3_error)
6541 for (Py_ssize_t i = __pyx_nargs; i < 12; i++) {
6542 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_tau", 1, 12, 12, i); __PYX_ERR(0, 738, __pyx_L3_error) }
6543 }
6544 } else if (unlikely(__pyx_nargs != 12)) {
6545 goto __pyx_L5_argtuple_error;
6546 } else {
6547 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6548 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 738, __pyx_L3_error)
6549 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6550 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 738, __pyx_L3_error)
6551 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6552 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 738, __pyx_L3_error)
6553 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6554 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 738, __pyx_L3_error)
6555 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6556 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 738, __pyx_L3_error)
6557 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6558 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 738, __pyx_L3_error)
6559 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6560 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 738, __pyx_L3_error)
6561 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6562 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 738, __pyx_L3_error)
6563 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6564 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 738, __pyx_L3_error)
6565 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6566 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 738, __pyx_L3_error)
6567 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6568 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 738, __pyx_L3_error)
6569 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6570 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 738, __pyx_L3_error)
6571 }
6572 __pyx_v_stabilization = __Pyx_PyLong_As_char(values[0]); if (unlikely((__pyx_v_stabilization == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 738, __pyx_L3_error)
6573 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
6574 __pyx_v_dmt = ((PyArrayObject *)values[2]);
6575 __pyx_v_df = ((PyArrayObject *)values[3]);
6576 __pyx_v_a = ((PyArrayObject *)values[4]);
6577 __pyx_v_da = ((PyArrayObject *)values[5]);
6578 __pyx_v_grad_phi = ((PyArrayObject *)values[6]);
6579 __pyx_v_dphi = ((PyArrayObject *)values[7]);
6580 __pyx_v_dr = ((PyArrayObject *)values[8]);
6581 __pyx_v_pe = ((PyArrayObject *)values[9]);
6582 __pyx_v_cfl = ((PyArrayObject *)values[10]);
6583 __pyx_v_tau = ((PyArrayObject *)values[11]);
6584 }
6585 goto __pyx_L6_skip;
6586 __pyx_L5_argtuple_error:;
6587 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_tau", 1, 12, 12, __pyx_nargs); __PYX_ERR(0, 738, __pyx_L3_error)
6588 __pyx_L6_skip:;
6589 goto __pyx_L4_argument_unpacking_done;
6590 __pyx_L3_error:;
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_AddTraceback("csubgridError.calculateSubgridError_ADR_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
6595 __Pyx_RefNannyFinishContext();
6596 return NULL;
6597 __pyx_L4_argument_unpacking_done:;
6598 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 739, __pyx_L1_error)
6599 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 740, __pyx_L1_error)
6600 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 741, __pyx_L1_error)
6601 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 742, __pyx_L1_error)
6602 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 743, __pyx_L1_error)
6603 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 744, __pyx_L1_error)
6604 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 745, __pyx_L1_error)
6605 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 746, __pyx_L1_error)
6606 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pe", 0))) __PYX_ERR(0, 747, __pyx_L1_error)
6607 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 748, __pyx_L1_error)
6608 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 749, __pyx_L1_error)
6609 __pyx_r = __pyx_pf_13csubgridError_6calculateSubgridError_ADR_tau(__pyx_self, __pyx_v_stabilization, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_df, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_dr, __pyx_v_pe, __pyx_v_cfl, __pyx_v_tau);
6610
6611 /* function exit code */
6612 goto __pyx_L0;
6613 __pyx_L1_error:;
6614 __pyx_r = NULL;
6615 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6616 Py_XDECREF(values[__pyx_temp]);
6617 }
6618 goto __pyx_L7_cleaned_up;
6619 __pyx_L0:;
6620 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6621 Py_XDECREF(values[__pyx_temp]);
6622 }
6623 __pyx_L7_cleaned_up:;
6624
6625 __Pyx_RefNannyFinishContext();
6626 return __pyx_r;
6627}
6628
6629static PyObject *__pyx_pf_13csubgridError_6calculateSubgridError_ADR_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
6630 PyObject *__pyx_r = NULL;
6631 __Pyx_RefNannyDeclarations
6632 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_tau", 0);
6633
6634 /* "csubgridError.pyx":750
6635 * np.ndarray cfl,
6636 * np.ndarray tau):
6637 * ccalculateSubgridError_ADR_tau(df.shape[0], # <<<<<<<<<<<<<<
6638 * df.shape[1],
6639 * df.shape[2],
6640*/
6641 calculateSubgridError_ADR_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), __pyx_v_stabilization, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_da)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
6642
6643 /* "csubgridError.pyx":738
6644 * <double*> cfl.data,
6645 * <double*> tau.data)
6646 * def calculateSubgridError_ADR_tau(char stabilization, # <<<<<<<<<<<<<<
6647 * np.ndarray elementDiameter,
6648 * np.ndarray dmt,
6649*/
6650
6651 /* function exit code */
6652 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6653 __Pyx_XGIVEREF(__pyx_r);
6654 __Pyx_RefNannyFinishContext();
6655 return __pyx_r;
6656}
6657
6658/* "csubgridError.pyx":765
6659 * <double*> cfl.data,
6660 * <double*> tau.data)
6661 * def calculateSubgridError_ADR_tau_sd(char stabilization, # <<<<<<<<<<<<<<
6662 * np.ndarray rowptr,
6663 * np.ndarray colind,
6664*/
6665
6666/* Python wrapper */
6667static PyObject *__pyx_pw_13csubgridError_9calculateSubgridError_ADR_tau_sd(PyObject *__pyx_self,
6668#if CYTHON_VECTORCALL
6669PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6670#else
6671PyObject *__pyx_args, PyObject *__pyx_kwds
6672#endif
6673); /*proto*/
6674static PyMethodDef __pyx_mdef_13csubgridError_9calculateSubgridError_ADR_tau_sd = {"calculateSubgridError_ADR_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_9calculateSubgridError_ADR_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6675static PyObject *__pyx_pw_13csubgridError_9calculateSubgridError_ADR_tau_sd(PyObject *__pyx_self,
6676#if CYTHON_VECTORCALL
6677PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6678#else
6679PyObject *__pyx_args, PyObject *__pyx_kwds
6680#endif
6681) {
6682 char __pyx_v_stabilization;
6683 PyArrayObject *__pyx_v_rowptr = 0;
6684 PyArrayObject *__pyx_v_colind = 0;
6685 PyArrayObject *__pyx_v_elementDiameter = 0;
6686 PyArrayObject *__pyx_v_dmt = 0;
6687 PyArrayObject *__pyx_v_df = 0;
6688 PyArrayObject *__pyx_v_a = 0;
6689 PyArrayObject *__pyx_v_da = 0;
6690 PyArrayObject *__pyx_v_grad_phi = 0;
6691 PyArrayObject *__pyx_v_dphi = 0;
6692 PyArrayObject *__pyx_v_dr = 0;
6693 PyArrayObject *__pyx_v_pe = 0;
6694 PyArrayObject *__pyx_v_cfl = 0;
6695 PyArrayObject *__pyx_v_tau = 0;
6696 #if !CYTHON_VECTORCALL
6697 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6698 #endif
6699 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6700 PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
6701 int __pyx_lineno = 0;
6702 const char *__pyx_filename = NULL;
6703 int __pyx_clineno = 0;
6704 PyObject *__pyx_r = 0;
6705 __Pyx_RefNannyDeclarations
6706 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_tau_sd (wrapper)", 0);
6707 #if !CYTHON_VECTORCALL
6708 #if CYTHON_ASSUME_SAFE_SIZE
6709 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6710 #else
6711 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6712 #endif
6713 #endif
6714 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6715 {
6716 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_stabilization,&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_da,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_dphi,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_pe,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
6717 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6718 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 765, __pyx_L3_error)
6719 if (__pyx_kwds_len > 0) {
6720 switch (__pyx_nargs) {
6721 case 14:
6722 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6723 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 765, __pyx_L3_error)
6724 CYTHON_FALLTHROUGH;
6725 case 13:
6726 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6727 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 765, __pyx_L3_error)
6728 CYTHON_FALLTHROUGH;
6729 case 12:
6730 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6731 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 765, __pyx_L3_error)
6732 CYTHON_FALLTHROUGH;
6733 case 11:
6734 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6735 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 765, __pyx_L3_error)
6736 CYTHON_FALLTHROUGH;
6737 case 10:
6738 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6739 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 765, __pyx_L3_error)
6740 CYTHON_FALLTHROUGH;
6741 case 9:
6742 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6743 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 765, __pyx_L3_error)
6744 CYTHON_FALLTHROUGH;
6745 case 8:
6746 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6747 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 765, __pyx_L3_error)
6748 CYTHON_FALLTHROUGH;
6749 case 7:
6750 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6751 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 765, __pyx_L3_error)
6752 CYTHON_FALLTHROUGH;
6753 case 6:
6754 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6755 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 765, __pyx_L3_error)
6756 CYTHON_FALLTHROUGH;
6757 case 5:
6758 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6759 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 765, __pyx_L3_error)
6760 CYTHON_FALLTHROUGH;
6761 case 4:
6762 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6763 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 765, __pyx_L3_error)
6764 CYTHON_FALLTHROUGH;
6765 case 3:
6766 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6767 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 765, __pyx_L3_error)
6768 CYTHON_FALLTHROUGH;
6769 case 2:
6770 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6771 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 765, __pyx_L3_error)
6772 CYTHON_FALLTHROUGH;
6773 case 1:
6774 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6775 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 765, __pyx_L3_error)
6776 CYTHON_FALLTHROUGH;
6777 case 0: break;
6778 default: goto __pyx_L5_argtuple_error;
6779 }
6780 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6781 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_ADR_tau_sd", 0) < (0)) __PYX_ERR(0, 765, __pyx_L3_error)
6782 for (Py_ssize_t i = __pyx_nargs; i < 14; i++) {
6783 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_tau_sd", 1, 14, 14, i); __PYX_ERR(0, 765, __pyx_L3_error) }
6784 }
6785 } else if (unlikely(__pyx_nargs != 14)) {
6786 goto __pyx_L5_argtuple_error;
6787 } else {
6788 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6789 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 765, __pyx_L3_error)
6790 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6791 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 765, __pyx_L3_error)
6792 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6793 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 765, __pyx_L3_error)
6794 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6795 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 765, __pyx_L3_error)
6796 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6797 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 765, __pyx_L3_error)
6798 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6799 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 765, __pyx_L3_error)
6800 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
6801 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 765, __pyx_L3_error)
6802 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
6803 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 765, __pyx_L3_error)
6804 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
6805 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 765, __pyx_L3_error)
6806 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
6807 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 765, __pyx_L3_error)
6808 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
6809 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 765, __pyx_L3_error)
6810 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
6811 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 765, __pyx_L3_error)
6812 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
6813 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 765, __pyx_L3_error)
6814 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
6815 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 765, __pyx_L3_error)
6816 }
6817 __pyx_v_stabilization = __Pyx_PyLong_As_char(values[0]); if (unlikely((__pyx_v_stabilization == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L3_error)
6818 __pyx_v_rowptr = ((PyArrayObject *)values[1]);
6819 __pyx_v_colind = ((PyArrayObject *)values[2]);
6820 __pyx_v_elementDiameter = ((PyArrayObject *)values[3]);
6821 __pyx_v_dmt = ((PyArrayObject *)values[4]);
6822 __pyx_v_df = ((PyArrayObject *)values[5]);
6823 __pyx_v_a = ((PyArrayObject *)values[6]);
6824 __pyx_v_da = ((PyArrayObject *)values[7]);
6825 __pyx_v_grad_phi = ((PyArrayObject *)values[8]);
6826 __pyx_v_dphi = ((PyArrayObject *)values[9]);
6827 __pyx_v_dr = ((PyArrayObject *)values[10]);
6828 __pyx_v_pe = ((PyArrayObject *)values[11]);
6829 __pyx_v_cfl = ((PyArrayObject *)values[12]);
6830 __pyx_v_tau = ((PyArrayObject *)values[13]);
6831 }
6832 goto __pyx_L6_skip;
6833 __pyx_L5_argtuple_error:;
6834 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_tau_sd", 1, 14, 14, __pyx_nargs); __PYX_ERR(0, 765, __pyx_L3_error)
6835 __pyx_L6_skip:;
6836 goto __pyx_L4_argument_unpacking_done;
6837 __pyx_L3_error:;
6838 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6839 Py_XDECREF(values[__pyx_temp]);
6840 }
6841 __Pyx_AddTraceback("csubgridError.calculateSubgridError_ADR_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
6842 __Pyx_RefNannyFinishContext();
6843 return NULL;
6844 __pyx_L4_argument_unpacking_done:;
6845 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 766, __pyx_L1_error)
6846 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 767, __pyx_L1_error)
6847 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 768, __pyx_L1_error)
6848 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 769, __pyx_L1_error)
6849 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 770, __pyx_L1_error)
6850 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 771, __pyx_L1_error)
6851 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 772, __pyx_L1_error)
6852 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 773, __pyx_L1_error)
6853 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 774, __pyx_L1_error)
6854 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 775, __pyx_L1_error)
6855 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pe", 0))) __PYX_ERR(0, 776, __pyx_L1_error)
6856 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 777, __pyx_L1_error)
6857 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 778, __pyx_L1_error)
6858 __pyx_r = __pyx_pf_13csubgridError_8calculateSubgridError_ADR_tau_sd(__pyx_self, __pyx_v_stabilization, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_df, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_dr, __pyx_v_pe, __pyx_v_cfl, __pyx_v_tau);
6859
6860 /* function exit code */
6861 goto __pyx_L0;
6862 __pyx_L1_error:;
6863 __pyx_r = NULL;
6864 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6865 Py_XDECREF(values[__pyx_temp]);
6866 }
6867 goto __pyx_L7_cleaned_up;
6868 __pyx_L0:;
6869 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6870 Py_XDECREF(values[__pyx_temp]);
6871 }
6872 __pyx_L7_cleaned_up:;
6873
6874 __Pyx_RefNannyFinishContext();
6875 return __pyx_r;
6876}
6877
6878static PyObject *__pyx_pf_13csubgridError_8calculateSubgridError_ADR_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
6879 PyObject *__pyx_r = NULL;
6880 __Pyx_RefNannyDeclarations
6881 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_tau_sd", 0);
6882
6883 /* "csubgridError.pyx":779
6884 * np.ndarray cfl,
6885 * np.ndarray tau):
6886 * ccalculateSubgridError_ADR_tau_sd(df.shape[0], # <<<<<<<<<<<<<<
6887 * df.shape[1],
6888 * df.shape[2],
6889*/
6890 calculateSubgridError_ADR_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_rowptr)), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_colind)), __pyx_v_stabilization, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_da)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
6891
6892 /* "csubgridError.pyx":765
6893 * <double*> cfl.data,
6894 * <double*> tau.data)
6895 * def calculateSubgridError_ADR_tau_sd(char stabilization, # <<<<<<<<<<<<<<
6896 * np.ndarray rowptr,
6897 * np.ndarray colind,
6898*/
6899
6900 /* function exit code */
6901 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6902 __Pyx_XGIVEREF(__pyx_r);
6903 __Pyx_RefNannyFinishContext();
6904 return __pyx_r;
6905}
6906
6907/* "csubgridError.pyx":796
6908 * <double*> cfl.data,
6909 * <double*> tau.data)
6910 * def calculateSubgridError_A_tau(char stabilization, # <<<<<<<<<<<<<<
6911 * np.ndarray elementDiameter,
6912 * np.ndarray dmt,
6913*/
6914
6915/* Python wrapper */
6916static PyObject *__pyx_pw_13csubgridError_11calculateSubgridError_A_tau(PyObject *__pyx_self,
6917#if CYTHON_VECTORCALL
6918PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6919#else
6920PyObject *__pyx_args, PyObject *__pyx_kwds
6921#endif
6922); /*proto*/
6923static PyMethodDef __pyx_mdef_13csubgridError_11calculateSubgridError_A_tau = {"calculateSubgridError_A_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_11calculateSubgridError_A_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6924static PyObject *__pyx_pw_13csubgridError_11calculateSubgridError_A_tau(PyObject *__pyx_self,
6925#if CYTHON_VECTORCALL
6926PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6927#else
6928PyObject *__pyx_args, PyObject *__pyx_kwds
6929#endif
6930) {
6931 char __pyx_v_stabilization;
6932 PyArrayObject *__pyx_v_elementDiameter = 0;
6933 PyArrayObject *__pyx_v_dmt = 0;
6934 PyArrayObject *__pyx_v_df = 0;
6935 PyArrayObject *__pyx_v_cfl = 0;
6936 PyArrayObject *__pyx_v_tau = 0;
6937 #if !CYTHON_VECTORCALL
6938 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6939 #endif
6940 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6941 PyObject* values[6] = {0,0,0,0,0,0};
6942 int __pyx_lineno = 0;
6943 const char *__pyx_filename = NULL;
6944 int __pyx_clineno = 0;
6945 PyObject *__pyx_r = 0;
6946 __Pyx_RefNannyDeclarations
6947 __Pyx_RefNannySetupContext("calculateSubgridError_A_tau (wrapper)", 0);
6948 #if !CYTHON_VECTORCALL
6949 #if CYTHON_ASSUME_SAFE_SIZE
6950 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6951 #else
6952 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6953 #endif
6954 #endif
6955 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6956 {
6957 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_stabilization,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
6958 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6959 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 796, __pyx_L3_error)
6960 if (__pyx_kwds_len > 0) {
6961 switch (__pyx_nargs) {
6962 case 6:
6963 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
6964 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 796, __pyx_L3_error)
6965 CYTHON_FALLTHROUGH;
6966 case 5:
6967 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
6968 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 796, __pyx_L3_error)
6969 CYTHON_FALLTHROUGH;
6970 case 4:
6971 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
6972 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 796, __pyx_L3_error)
6973 CYTHON_FALLTHROUGH;
6974 case 3:
6975 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
6976 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 796, __pyx_L3_error)
6977 CYTHON_FALLTHROUGH;
6978 case 2:
6979 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
6980 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 796, __pyx_L3_error)
6981 CYTHON_FALLTHROUGH;
6982 case 1:
6983 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6984 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 796, __pyx_L3_error)
6985 CYTHON_FALLTHROUGH;
6986 case 0: break;
6987 default: goto __pyx_L5_argtuple_error;
6988 }
6989 const Py_ssize_t kwd_pos_args = __pyx_nargs;
6990 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_A_tau", 0) < (0)) __PYX_ERR(0, 796, __pyx_L3_error)
6991 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
6992 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_A_tau", 1, 6, 6, i); __PYX_ERR(0, 796, __pyx_L3_error) }
6993 }
6994 } else if (unlikely(__pyx_nargs != 6)) {
6995 goto __pyx_L5_argtuple_error;
6996 } else {
6997 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
6998 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 796, __pyx_L3_error)
6999 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7000 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 796, __pyx_L3_error)
7001 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 796, __pyx_L3_error)
7003 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7004 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 796, __pyx_L3_error)
7005 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 796, __pyx_L3_error)
7007 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7008 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 796, __pyx_L3_error)
7009 }
7010 __pyx_v_stabilization = __Pyx_PyLong_As_char(values[0]); if (unlikely((__pyx_v_stabilization == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 796, __pyx_L3_error)
7011 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
7012 __pyx_v_dmt = ((PyArrayObject *)values[2]);
7013 __pyx_v_df = ((PyArrayObject *)values[3]);
7014 __pyx_v_cfl = ((PyArrayObject *)values[4]);
7015 __pyx_v_tau = ((PyArrayObject *)values[5]);
7016 }
7017 goto __pyx_L6_skip;
7018 __pyx_L5_argtuple_error:;
7019 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_A_tau", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 796, __pyx_L3_error)
7020 __pyx_L6_skip:;
7021 goto __pyx_L4_argument_unpacking_done;
7022 __pyx_L3_error:;
7023 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7024 Py_XDECREF(values[__pyx_temp]);
7025 }
7026 __Pyx_AddTraceback("csubgridError.calculateSubgridError_A_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
7027 __Pyx_RefNannyFinishContext();
7028 return NULL;
7029 __pyx_L4_argument_unpacking_done:;
7030 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 797, __pyx_L1_error)
7031 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 798, __pyx_L1_error)
7032 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 799, __pyx_L1_error)
7033 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 800, __pyx_L1_error)
7034 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 801, __pyx_L1_error)
7035 __pyx_r = __pyx_pf_13csubgridError_10calculateSubgridError_A_tau(__pyx_self, __pyx_v_stabilization, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_df, __pyx_v_cfl, __pyx_v_tau);
7036
7037 /* function exit code */
7038 goto __pyx_L0;
7039 __pyx_L1_error:;
7040 __pyx_r = NULL;
7041 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7042 Py_XDECREF(values[__pyx_temp]);
7043 }
7044 goto __pyx_L7_cleaned_up;
7045 __pyx_L0:;
7046 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7047 Py_XDECREF(values[__pyx_temp]);
7048 }
7049 __pyx_L7_cleaned_up:;
7050
7051 __Pyx_RefNannyFinishContext();
7052 return __pyx_r;
7053}
7054
7055static PyObject *__pyx_pf_13csubgridError_10calculateSubgridError_A_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
7056 PyObject *__pyx_r = NULL;
7057 __Pyx_RefNannyDeclarations
7058 __Pyx_RefNannySetupContext("calculateSubgridError_A_tau", 0);
7059
7060 /* "csubgridError.pyx":802
7061 * np.ndarray cfl,
7062 * np.ndarray tau):
7063 * ccalculateSubgridError_A_tau(df.shape[0], # <<<<<<<<<<<<<<
7064 * df.shape[1],
7065 * df.shape[2],
7066*/
7067 calculateSubgridError_A_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), __pyx_v_stabilization, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
7068
7069 /* "csubgridError.pyx":796
7070 * <double*> cfl.data,
7071 * <double*> tau.data)
7072 * def calculateSubgridError_A_tau(char stabilization, # <<<<<<<<<<<<<<
7073 * np.ndarray elementDiameter,
7074 * np.ndarray dmt,
7075*/
7076
7077 /* function exit code */
7078 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7079 __Pyx_XGIVEREF(__pyx_r);
7080 __Pyx_RefNannyFinishContext();
7081 return __pyx_r;
7082}
7083
7084/* "csubgridError.pyx":811
7085 * <double*> cfl.data,
7086 * <double*> tau.data)
7087 * def calculateSubgridError_HJ_tau(char stabilization, # <<<<<<<<<<<<<<
7088 * np.ndarray elementDiameter,
7089 * np.ndarray dmt,
7090*/
7091
7092/* Python wrapper */
7093static PyObject *__pyx_pw_13csubgridError_13calculateSubgridError_HJ_tau(PyObject *__pyx_self,
7094#if CYTHON_VECTORCALL
7095PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7096#else
7097PyObject *__pyx_args, PyObject *__pyx_kwds
7098#endif
7099); /*proto*/
7100static PyMethodDef __pyx_mdef_13csubgridError_13calculateSubgridError_HJ_tau = {"calculateSubgridError_HJ_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_13calculateSubgridError_HJ_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7101static PyObject *__pyx_pw_13csubgridError_13calculateSubgridError_HJ_tau(PyObject *__pyx_self,
7102#if CYTHON_VECTORCALL
7103PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7104#else
7105PyObject *__pyx_args, PyObject *__pyx_kwds
7106#endif
7107) {
7108 char __pyx_v_stabilization;
7109 PyArrayObject *__pyx_v_elementDiameter = 0;
7110 PyArrayObject *__pyx_v_dmt = 0;
7111 PyArrayObject *__pyx_v_dH = 0;
7112 PyArrayObject *__pyx_v_cfl = 0;
7113 PyArrayObject *__pyx_v_tau = 0;
7114 #if !CYTHON_VECTORCALL
7115 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7116 #endif
7117 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7118 PyObject* values[6] = {0,0,0,0,0,0};
7119 int __pyx_lineno = 0;
7120 const char *__pyx_filename = NULL;
7121 int __pyx_clineno = 0;
7122 PyObject *__pyx_r = 0;
7123 __Pyx_RefNannyDeclarations
7124 __Pyx_RefNannySetupContext("calculateSubgridError_HJ_tau (wrapper)", 0);
7125 #if !CYTHON_VECTORCALL
7126 #if CYTHON_ASSUME_SAFE_SIZE
7127 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7128 #else
7129 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7130 #endif
7131 #endif
7132 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7133 {
7134 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_stabilization,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dH,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,0};
7135 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7136 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 811, __pyx_L3_error)
7137 if (__pyx_kwds_len > 0) {
7138 switch (__pyx_nargs) {
7139 case 6:
7140 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7141 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 811, __pyx_L3_error)
7142 CYTHON_FALLTHROUGH;
7143 case 5:
7144 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7145 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 811, __pyx_L3_error)
7146 CYTHON_FALLTHROUGH;
7147 case 4:
7148 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7149 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 811, __pyx_L3_error)
7150 CYTHON_FALLTHROUGH;
7151 case 3:
7152 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7153 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 811, __pyx_L3_error)
7154 CYTHON_FALLTHROUGH;
7155 case 2:
7156 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7157 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 811, __pyx_L3_error)
7158 CYTHON_FALLTHROUGH;
7159 case 1:
7160 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7161 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 811, __pyx_L3_error)
7162 CYTHON_FALLTHROUGH;
7163 case 0: break;
7164 default: goto __pyx_L5_argtuple_error;
7165 }
7166 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7167 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_HJ_tau", 0) < (0)) __PYX_ERR(0, 811, __pyx_L3_error)
7168 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
7169 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_HJ_tau", 1, 6, 6, i); __PYX_ERR(0, 811, __pyx_L3_error) }
7170 }
7171 } else if (unlikely(__pyx_nargs != 6)) {
7172 goto __pyx_L5_argtuple_error;
7173 } else {
7174 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7175 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 811, __pyx_L3_error)
7176 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7177 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 811, __pyx_L3_error)
7178 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7179 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 811, __pyx_L3_error)
7180 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7181 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 811, __pyx_L3_error)
7182 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7183 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 811, __pyx_L3_error)
7184 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7185 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 811, __pyx_L3_error)
7186 }
7187 __pyx_v_stabilization = __Pyx_PyLong_As_char(values[0]); if (unlikely((__pyx_v_stabilization == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 811, __pyx_L3_error)
7188 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
7189 __pyx_v_dmt = ((PyArrayObject *)values[2]);
7190 __pyx_v_dH = ((PyArrayObject *)values[3]);
7191 __pyx_v_cfl = ((PyArrayObject *)values[4]);
7192 __pyx_v_tau = ((PyArrayObject *)values[5]);
7193 }
7194 goto __pyx_L6_skip;
7195 __pyx_L5_argtuple_error:;
7196 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_HJ_tau", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 811, __pyx_L3_error)
7197 __pyx_L6_skip:;
7198 goto __pyx_L4_argument_unpacking_done;
7199 __pyx_L3_error:;
7200 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7201 Py_XDECREF(values[__pyx_temp]);
7202 }
7203 __Pyx_AddTraceback("csubgridError.calculateSubgridError_HJ_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
7204 __Pyx_RefNannyFinishContext();
7205 return NULL;
7206 __pyx_L4_argument_unpacking_done:;
7207 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 812, __pyx_L1_error)
7208 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 813, __pyx_L1_error)
7209 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 814, __pyx_L1_error)
7210 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 815, __pyx_L1_error)
7211 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 816, __pyx_L1_error)
7212 __pyx_r = __pyx_pf_13csubgridError_12calculateSubgridError_HJ_tau(__pyx_self, __pyx_v_stabilization, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_dH, __pyx_v_cfl, __pyx_v_tau);
7213
7214 /* function exit code */
7215 goto __pyx_L0;
7216 __pyx_L1_error:;
7217 __pyx_r = NULL;
7218 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7219 Py_XDECREF(values[__pyx_temp]);
7220 }
7221 goto __pyx_L7_cleaned_up;
7222 __pyx_L0:;
7223 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7224 Py_XDECREF(values[__pyx_temp]);
7225 }
7226 __pyx_L7_cleaned_up:;
7227
7228 __Pyx_RefNannyFinishContext();
7229 return __pyx_r;
7230}
7231
7232static PyObject *__pyx_pf_13csubgridError_12calculateSubgridError_HJ_tau(CYTHON_UNUSED PyObject *__pyx_self, char __pyx_v_stabilization, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau) {
7233 PyObject *__pyx_r = NULL;
7234 __Pyx_RefNannyDeclarations
7235 __Pyx_RefNannySetupContext("calculateSubgridError_HJ_tau", 0);
7236
7237 /* "csubgridError.pyx":817
7238 * np.ndarray cfl,
7239 * np.ndarray tau):
7240 * ccalculateSubgridError_A_tau(dH.shape[0], # <<<<<<<<<<<<<<
7241 * dH.shape[1],
7242 * dH.shape[2],
7243*/
7244 calculateSubgridError_A_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[2]), __pyx_v_stabilization, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dH)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
7245
7246 /* "csubgridError.pyx":811
7247 * <double*> cfl.data,
7248 * <double*> tau.data)
7249 * def calculateSubgridError_HJ_tau(char stabilization, # <<<<<<<<<<<<<<
7250 * np.ndarray elementDiameter,
7251 * np.ndarray dmt,
7252*/
7253
7254 /* function exit code */
7255 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7256 __Pyx_XGIVEREF(__pyx_r);
7257 __Pyx_RefNannyFinishContext();
7258 return __pyx_r;
7259}
7260
7261/* "csubgridError.pyx":827
7262 * <double*> tau.data)
7263 *
7264 * def calculateSubgridErrorStokes2D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
7265 * np.ndarray a,
7266 * np.ndarray pdeResidualU,
7267*/
7268
7269/* Python wrapper */
7270static PyObject *__pyx_pw_13csubgridError_15calculateSubgridErrorStokes2D_GLS_velocity(PyObject *__pyx_self,
7271#if CYTHON_VECTORCALL
7272PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7273#else
7274PyObject *__pyx_args, PyObject *__pyx_kwds
7275#endif
7276); /*proto*/
7277static PyMethodDef __pyx_mdef_13csubgridError_15calculateSubgridErrorStokes2D_GLS_velocity = {"calculateSubgridErrorStokes2D_GLS_velocity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_15calculateSubgridErrorStokes2D_GLS_velocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7278static PyObject *__pyx_pw_13csubgridError_15calculateSubgridErrorStokes2D_GLS_velocity(PyObject *__pyx_self,
7279#if CYTHON_VECTORCALL
7280PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7281#else
7282PyObject *__pyx_args, PyObject *__pyx_kwds
7283#endif
7284) {
7285 PyArrayObject *__pyx_v_elementDiameter = 0;
7286 PyArrayObject *__pyx_v_a = 0;
7287 PyArrayObject *__pyx_v_pdeResidualU = 0;
7288 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
7289 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
7290 PyArrayObject *__pyx_v_pdeResidualV = 0;
7291 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
7292 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
7293 PyArrayObject *__pyx_v_subgridErrorU = 0;
7294 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
7295 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
7296 PyArrayObject *__pyx_v_subgridErrorV = 0;
7297 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
7298 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
7299 #if !CYTHON_VECTORCALL
7300 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7301 #endif
7302 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7303 PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
7304 int __pyx_lineno = 0;
7305 const char *__pyx_filename = NULL;
7306 int __pyx_clineno = 0;
7307 PyObject *__pyx_r = 0;
7308 __Pyx_RefNannyDeclarations
7309 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity (wrapper)", 0);
7310 #if !CYTHON_VECTORCALL
7311 #if CYTHON_ASSUME_SAFE_SIZE
7312 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7313 #else
7314 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7315 #endif
7316 #endif
7317 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7318 {
7319 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
7320 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7321 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 827, __pyx_L3_error)
7322 if (__pyx_kwds_len > 0) {
7323 switch (__pyx_nargs) {
7324 case 14:
7325 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7326 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 827, __pyx_L3_error)
7327 CYTHON_FALLTHROUGH;
7328 case 13:
7329 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7330 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 827, __pyx_L3_error)
7331 CYTHON_FALLTHROUGH;
7332 case 12:
7333 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7334 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 827, __pyx_L3_error)
7335 CYTHON_FALLTHROUGH;
7336 case 11:
7337 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7338 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 827, __pyx_L3_error)
7339 CYTHON_FALLTHROUGH;
7340 case 10:
7341 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7342 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 827, __pyx_L3_error)
7343 CYTHON_FALLTHROUGH;
7344 case 9:
7345 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7346 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 827, __pyx_L3_error)
7347 CYTHON_FALLTHROUGH;
7348 case 8:
7349 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7350 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 827, __pyx_L3_error)
7351 CYTHON_FALLTHROUGH;
7352 case 7:
7353 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7354 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 827, __pyx_L3_error)
7355 CYTHON_FALLTHROUGH;
7356 case 6:
7357 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7358 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 827, __pyx_L3_error)
7359 CYTHON_FALLTHROUGH;
7360 case 5:
7361 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7362 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 827, __pyx_L3_error)
7363 CYTHON_FALLTHROUGH;
7364 case 4:
7365 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7366 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 827, __pyx_L3_error)
7367 CYTHON_FALLTHROUGH;
7368 case 3:
7369 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7370 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 827, __pyx_L3_error)
7371 CYTHON_FALLTHROUGH;
7372 case 2:
7373 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7374 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 827, __pyx_L3_error)
7375 CYTHON_FALLTHROUGH;
7376 case 1:
7377 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7378 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 827, __pyx_L3_error)
7379 CYTHON_FALLTHROUGH;
7380 case 0: break;
7381 default: goto __pyx_L5_argtuple_error;
7382 }
7383 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7384 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_GLS_velocity", 0) < (0)) __PYX_ERR(0, 827, __pyx_L3_error)
7385 for (Py_ssize_t i = __pyx_nargs; i < 14; i++) {
7386 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity", 1, 14, 14, i); __PYX_ERR(0, 827, __pyx_L3_error) }
7387 }
7388 } else if (unlikely(__pyx_nargs != 14)) {
7389 goto __pyx_L5_argtuple_error;
7390 } else {
7391 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7392 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 827, __pyx_L3_error)
7393 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7394 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 827, __pyx_L3_error)
7395 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7396 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 827, __pyx_L3_error)
7397 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7398 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 827, __pyx_L3_error)
7399 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7400 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 827, __pyx_L3_error)
7401 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7402 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 827, __pyx_L3_error)
7403 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7404 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 827, __pyx_L3_error)
7405 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7406 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 827, __pyx_L3_error)
7407 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7408 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 827, __pyx_L3_error)
7409 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7410 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 827, __pyx_L3_error)
7411 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7412 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 827, __pyx_L3_error)
7413 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7414 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 827, __pyx_L3_error)
7415 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7416 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 827, __pyx_L3_error)
7417 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7418 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 827, __pyx_L3_error)
7419 }
7420 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
7421 __pyx_v_a = ((PyArrayObject *)values[1]);
7422 __pyx_v_pdeResidualU = ((PyArrayObject *)values[2]);
7423 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[3]);
7424 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[4]);
7425 __pyx_v_pdeResidualV = ((PyArrayObject *)values[5]);
7426 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[6]);
7427 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[7]);
7428 __pyx_v_subgridErrorU = ((PyArrayObject *)values[8]);
7429 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[9]);
7430 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[10]);
7431 __pyx_v_subgridErrorV = ((PyArrayObject *)values[11]);
7432 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[12]);
7433 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[13]);
7434 }
7435 goto __pyx_L6_skip;
7436 __pyx_L5_argtuple_error:;
7437 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity", 1, 14, 14, __pyx_nargs); __PYX_ERR(0, 827, __pyx_L3_error)
7438 __pyx_L6_skip:;
7439 goto __pyx_L4_argument_unpacking_done;
7440 __pyx_L3_error:;
7441 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7442 Py_XDECREF(values[__pyx_temp]);
7443 }
7444 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_GLS_velocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
7445 __Pyx_RefNannyFinishContext();
7446 return NULL;
7447 __pyx_L4_argument_unpacking_done:;
7448 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 827, __pyx_L1_error)
7449 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 828, __pyx_L1_error)
7450 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 829, __pyx_L1_error)
7451 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 830, __pyx_L1_error)
7452 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 831, __pyx_L1_error)
7453 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 832, __pyx_L1_error)
7454 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 833, __pyx_L1_error)
7455 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 834, __pyx_L1_error)
7456 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 835, __pyx_L1_error)
7457 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 836, __pyx_L1_error)
7458 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 837, __pyx_L1_error)
7459 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 838, __pyx_L1_error)
7460 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 839, __pyx_L1_error)
7461 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 840, __pyx_L1_error)
7462 __pyx_r = __pyx_pf_13csubgridError_14calculateSubgridErrorStokes2D_GLS_velocity(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv);
7463
7464 /* function exit code */
7465 goto __pyx_L0;
7466 __pyx_L1_error:;
7467 __pyx_r = NULL;
7468 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7469 Py_XDECREF(values[__pyx_temp]);
7470 }
7471 goto __pyx_L7_cleaned_up;
7472 __pyx_L0:;
7473 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7474 Py_XDECREF(values[__pyx_temp]);
7475 }
7476 __pyx_L7_cleaned_up:;
7477 __Pyx_RefNannyFinishContext();
7478 return __pyx_r;
7479}
7480
7481static PyObject *__pyx_pf_13csubgridError_14calculateSubgridErrorStokes2D_GLS_velocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
7482 PyObject *__pyx_r = NULL;
7483 __Pyx_RefNannyDeclarations
7484 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity", 0);
7485
7486 /* "csubgridError.pyx":841
7487 * np.ndarray dsubgridErrorV_dp,
7488 * np.ndarray dsubgridErrorV_dv):
7489 * ccalculateSubgridErrorStokes2D_GLS_velocity(dsubgridErrorU_du.shape[0], # <<<<<<<<<<<<<<
7490 * dsubgridErrorU_du.shape[1],
7491 * dsubgridErrorU_du.shape[2],
7492*/
7493 calculateSubgridErrorStokes2D_GLS_velocity((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
7494
7495 /* "csubgridError.pyx":827
7496 * <double*> tau.data)
7497 *
7498 * def calculateSubgridErrorStokes2D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
7499 * np.ndarray a,
7500 * np.ndarray pdeResidualU,
7501*/
7502
7503 /* function exit code */
7504 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7505 __Pyx_XGIVEREF(__pyx_r);
7506 __Pyx_RefNannyFinishContext();
7507 return __pyx_r;
7508}
7509
7510/* "csubgridError.pyx":859
7511 * <double*> dsubgridErrorV_dp.data,
7512 * <double*> dsubgridErrorV_dv.data)
7513 * def calculateSubgridErrorStokes2D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
7514 * np.ndarray a,
7515 * np.ndarray pdeResidualU,
7516*/
7517
7518/* Python wrapper */
7519static PyObject *__pyx_pw_13csubgridError_17calculateSubgridErrorStokes2D_GLS_velocity_sd(PyObject *__pyx_self,
7520#if CYTHON_VECTORCALL
7521PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7522#else
7523PyObject *__pyx_args, PyObject *__pyx_kwds
7524#endif
7525); /*proto*/
7526static PyMethodDef __pyx_mdef_13csubgridError_17calculateSubgridErrorStokes2D_GLS_velocity_sd = {"calculateSubgridErrorStokes2D_GLS_velocity_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_17calculateSubgridErrorStokes2D_GLS_velocity_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7527static PyObject *__pyx_pw_13csubgridError_17calculateSubgridErrorStokes2D_GLS_velocity_sd(PyObject *__pyx_self,
7528#if CYTHON_VECTORCALL
7529PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7530#else
7531PyObject *__pyx_args, PyObject *__pyx_kwds
7532#endif
7533) {
7534 PyArrayObject *__pyx_v_elementDiameter = 0;
7535 PyArrayObject *__pyx_v_a = 0;
7536 PyArrayObject *__pyx_v_pdeResidualU = 0;
7537 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
7538 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
7539 PyArrayObject *__pyx_v_pdeResidualV = 0;
7540 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
7541 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
7542 PyArrayObject *__pyx_v_subgridErrorU = 0;
7543 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
7544 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
7545 PyArrayObject *__pyx_v_subgridErrorV = 0;
7546 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
7547 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
7548 #if !CYTHON_VECTORCALL
7549 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7550 #endif
7551 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7552 PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
7553 int __pyx_lineno = 0;
7554 const char *__pyx_filename = NULL;
7555 int __pyx_clineno = 0;
7556 PyObject *__pyx_r = 0;
7557 __Pyx_RefNannyDeclarations
7558 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_sd (wrapper)", 0);
7559 #if !CYTHON_VECTORCALL
7560 #if CYTHON_ASSUME_SAFE_SIZE
7561 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7562 #else
7563 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7564 #endif
7565 #endif
7566 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7567 {
7568 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
7569 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7570 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 859, __pyx_L3_error)
7571 if (__pyx_kwds_len > 0) {
7572 switch (__pyx_nargs) {
7573 case 14:
7574 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7575 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 859, __pyx_L3_error)
7576 CYTHON_FALLTHROUGH;
7577 case 13:
7578 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 859, __pyx_L3_error)
7580 CYTHON_FALLTHROUGH;
7581 case 12:
7582 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 859, __pyx_L3_error)
7584 CYTHON_FALLTHROUGH;
7585 case 11:
7586 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7587 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 859, __pyx_L3_error)
7588 CYTHON_FALLTHROUGH;
7589 case 10:
7590 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7591 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 859, __pyx_L3_error)
7592 CYTHON_FALLTHROUGH;
7593 case 9:
7594 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7595 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 859, __pyx_L3_error)
7596 CYTHON_FALLTHROUGH;
7597 case 8:
7598 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7599 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 859, __pyx_L3_error)
7600 CYTHON_FALLTHROUGH;
7601 case 7:
7602 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7603 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 859, __pyx_L3_error)
7604 CYTHON_FALLTHROUGH;
7605 case 6:
7606 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7607 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 859, __pyx_L3_error)
7608 CYTHON_FALLTHROUGH;
7609 case 5:
7610 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7611 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 859, __pyx_L3_error)
7612 CYTHON_FALLTHROUGH;
7613 case 4:
7614 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7615 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 859, __pyx_L3_error)
7616 CYTHON_FALLTHROUGH;
7617 case 3:
7618 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7619 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 859, __pyx_L3_error)
7620 CYTHON_FALLTHROUGH;
7621 case 2:
7622 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7623 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 859, __pyx_L3_error)
7624 CYTHON_FALLTHROUGH;
7625 case 1:
7626 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7627 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 859, __pyx_L3_error)
7628 CYTHON_FALLTHROUGH;
7629 case 0: break;
7630 default: goto __pyx_L5_argtuple_error;
7631 }
7632 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7633 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_GLS_velocity_sd", 0) < (0)) __PYX_ERR(0, 859, __pyx_L3_error)
7634 for (Py_ssize_t i = __pyx_nargs; i < 14; i++) {
7635 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_sd", 1, 14, 14, i); __PYX_ERR(0, 859, __pyx_L3_error) }
7636 }
7637 } else if (unlikely(__pyx_nargs != 14)) {
7638 goto __pyx_L5_argtuple_error;
7639 } else {
7640 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7641 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 859, __pyx_L3_error)
7642 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7643 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 859, __pyx_L3_error)
7644 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7645 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 859, __pyx_L3_error)
7646 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7647 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 859, __pyx_L3_error)
7648 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7649 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 859, __pyx_L3_error)
7650 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7651 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 859, __pyx_L3_error)
7652 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7653 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 859, __pyx_L3_error)
7654 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7655 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 859, __pyx_L3_error)
7656 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7657 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 859, __pyx_L3_error)
7658 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7659 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 859, __pyx_L3_error)
7660 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7661 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 859, __pyx_L3_error)
7662 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7663 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 859, __pyx_L3_error)
7664 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7665 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 859, __pyx_L3_error)
7666 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7667 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 859, __pyx_L3_error)
7668 }
7669 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
7670 __pyx_v_a = ((PyArrayObject *)values[1]);
7671 __pyx_v_pdeResidualU = ((PyArrayObject *)values[2]);
7672 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[3]);
7673 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[4]);
7674 __pyx_v_pdeResidualV = ((PyArrayObject *)values[5]);
7675 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[6]);
7676 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[7]);
7677 __pyx_v_subgridErrorU = ((PyArrayObject *)values[8]);
7678 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[9]);
7679 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[10]);
7680 __pyx_v_subgridErrorV = ((PyArrayObject *)values[11]);
7681 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[12]);
7682 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[13]);
7683 }
7684 goto __pyx_L6_skip;
7685 __pyx_L5_argtuple_error:;
7686 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_sd", 1, 14, 14, __pyx_nargs); __PYX_ERR(0, 859, __pyx_L3_error)
7687 __pyx_L6_skip:;
7688 goto __pyx_L4_argument_unpacking_done;
7689 __pyx_L3_error:;
7690 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7691 Py_XDECREF(values[__pyx_temp]);
7692 }
7693 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_GLS_velocity_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
7694 __Pyx_RefNannyFinishContext();
7695 return NULL;
7696 __pyx_L4_argument_unpacking_done:;
7697 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 859, __pyx_L1_error)
7698 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 860, __pyx_L1_error)
7699 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 861, __pyx_L1_error)
7700 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 862, __pyx_L1_error)
7701 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 863, __pyx_L1_error)
7702 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 864, __pyx_L1_error)
7703 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 865, __pyx_L1_error)
7704 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 866, __pyx_L1_error)
7705 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 867, __pyx_L1_error)
7706 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 868, __pyx_L1_error)
7707 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 869, __pyx_L1_error)
7708 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 870, __pyx_L1_error)
7709 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 871, __pyx_L1_error)
7710 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 872, __pyx_L1_error)
7711 __pyx_r = __pyx_pf_13csubgridError_16calculateSubgridErrorStokes2D_GLS_velocity_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv);
7712
7713 /* function exit code */
7714 goto __pyx_L0;
7715 __pyx_L1_error:;
7716 __pyx_r = NULL;
7717 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7718 Py_XDECREF(values[__pyx_temp]);
7719 }
7720 goto __pyx_L7_cleaned_up;
7721 __pyx_L0:;
7722 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7723 Py_XDECREF(values[__pyx_temp]);
7724 }
7725 __pyx_L7_cleaned_up:;
7726 __Pyx_RefNannyFinishContext();
7727 return __pyx_r;
7728}
7729
7730static PyObject *__pyx_pf_13csubgridError_16calculateSubgridErrorStokes2D_GLS_velocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
7731 PyObject *__pyx_r = NULL;
7732 __Pyx_RefNannyDeclarations
7733 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_sd", 0);
7734
7735 /* "csubgridError.pyx":873
7736 * np.ndarray dsubgridErrorV_dp,
7737 * np.ndarray dsubgridErrorV_dv):
7738 * ccalculateSubgridErrorStokes2D_GLS_velocity_sd(dsubgridErrorU_du.shape[0], # <<<<<<<<<<<<<<
7739 * dsubgridErrorU_du.shape[1],
7740 * dsubgridErrorU_du.shape[2],
7741*/
7742 calculateSubgridErrorStokes2D_GLS_velocity_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
7743
7744 /* "csubgridError.pyx":859
7745 * <double*> dsubgridErrorV_dp.data,
7746 * <double*> dsubgridErrorV_dv.data)
7747 * def calculateSubgridErrorStokes2D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
7748 * np.ndarray a,
7749 * np.ndarray pdeResidualU,
7750*/
7751
7752 /* function exit code */
7753 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7754 __Pyx_XGIVEREF(__pyx_r);
7755 __Pyx_RefNannyFinishContext();
7756 return __pyx_r;
7757}
7758
7759/* "csubgridError.pyx":891
7760 * <double*> dsubgridErrorV_dp.data,
7761 * <double*> dsubgridErrorV_dv.data)
7762 * def calculateSubgridErrorStokes3D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
7763 * np.ndarray a,
7764 * np.ndarray pdeResidualU,
7765*/
7766
7767/* Python wrapper */
7768static PyObject *__pyx_pw_13csubgridError_19calculateSubgridErrorStokes3D_GLS_velocity(PyObject *__pyx_self,
7769#if CYTHON_VECTORCALL
7770PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7771#else
7772PyObject *__pyx_args, PyObject *__pyx_kwds
7773#endif
7774); /*proto*/
7775static PyMethodDef __pyx_mdef_13csubgridError_19calculateSubgridErrorStokes3D_GLS_velocity = {"calculateSubgridErrorStokes3D_GLS_velocity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_19calculateSubgridErrorStokes3D_GLS_velocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7776static PyObject *__pyx_pw_13csubgridError_19calculateSubgridErrorStokes3D_GLS_velocity(PyObject *__pyx_self,
7777#if CYTHON_VECTORCALL
7778PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7779#else
7780PyObject *__pyx_args, PyObject *__pyx_kwds
7781#endif
7782) {
7783 PyArrayObject *__pyx_v_elementDiameter = 0;
7784 PyArrayObject *__pyx_v_a = 0;
7785 PyArrayObject *__pyx_v_pdeResidualU = 0;
7786 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
7787 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
7788 PyArrayObject *__pyx_v_pdeResidualV = 0;
7789 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
7790 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
7791 PyArrayObject *__pyx_v_pdeResidualW = 0;
7792 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
7793 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
7794 PyArrayObject *__pyx_v_subgridErrorU = 0;
7795 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
7796 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
7797 PyArrayObject *__pyx_v_subgridErrorV = 0;
7798 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
7799 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
7800 PyArrayObject *__pyx_v_subgridErrorW = 0;
7801 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
7802 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
7803 #if !CYTHON_VECTORCALL
7804 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7805 #endif
7806 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7807 PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
7808 int __pyx_lineno = 0;
7809 const char *__pyx_filename = NULL;
7810 int __pyx_clineno = 0;
7811 PyObject *__pyx_r = 0;
7812 __Pyx_RefNannyDeclarations
7813 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity (wrapper)", 0);
7814 #if !CYTHON_VECTORCALL
7815 #if CYTHON_ASSUME_SAFE_SIZE
7816 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7817 #else
7818 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7819 #endif
7820 #endif
7821 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7822 {
7823 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
7824 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7825 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 891, __pyx_L3_error)
7826 if (__pyx_kwds_len > 0) {
7827 switch (__pyx_nargs) {
7828 case 20:
7829 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
7830 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 891, __pyx_L3_error)
7831 CYTHON_FALLTHROUGH;
7832 case 19:
7833 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
7834 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 891, __pyx_L3_error)
7835 CYTHON_FALLTHROUGH;
7836 case 18:
7837 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
7838 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 891, __pyx_L3_error)
7839 CYTHON_FALLTHROUGH;
7840 case 17:
7841 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
7842 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 891, __pyx_L3_error)
7843 CYTHON_FALLTHROUGH;
7844 case 16:
7845 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
7846 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 891, __pyx_L3_error)
7847 CYTHON_FALLTHROUGH;
7848 case 15:
7849 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
7850 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 891, __pyx_L3_error)
7851 CYTHON_FALLTHROUGH;
7852 case 14:
7853 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7854 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 891, __pyx_L3_error)
7855 CYTHON_FALLTHROUGH;
7856 case 13:
7857 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7858 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 891, __pyx_L3_error)
7859 CYTHON_FALLTHROUGH;
7860 case 12:
7861 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7862 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 891, __pyx_L3_error)
7863 CYTHON_FALLTHROUGH;
7864 case 11:
7865 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7866 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 891, __pyx_L3_error)
7867 CYTHON_FALLTHROUGH;
7868 case 10:
7869 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7870 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 891, __pyx_L3_error)
7871 CYTHON_FALLTHROUGH;
7872 case 9:
7873 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7874 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 891, __pyx_L3_error)
7875 CYTHON_FALLTHROUGH;
7876 case 8:
7877 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7878 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 891, __pyx_L3_error)
7879 CYTHON_FALLTHROUGH;
7880 case 7:
7881 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7882 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 891, __pyx_L3_error)
7883 CYTHON_FALLTHROUGH;
7884 case 6:
7885 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7886 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 891, __pyx_L3_error)
7887 CYTHON_FALLTHROUGH;
7888 case 5:
7889 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7890 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 891, __pyx_L3_error)
7891 CYTHON_FALLTHROUGH;
7892 case 4:
7893 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7894 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 891, __pyx_L3_error)
7895 CYTHON_FALLTHROUGH;
7896 case 3:
7897 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7898 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 891, __pyx_L3_error)
7899 CYTHON_FALLTHROUGH;
7900 case 2:
7901 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7902 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 891, __pyx_L3_error)
7903 CYTHON_FALLTHROUGH;
7904 case 1:
7905 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7906 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 891, __pyx_L3_error)
7907 CYTHON_FALLTHROUGH;
7908 case 0: break;
7909 default: goto __pyx_L5_argtuple_error;
7910 }
7911 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7912 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes3D_GLS_velocity", 0) < (0)) __PYX_ERR(0, 891, __pyx_L3_error)
7913 for (Py_ssize_t i = __pyx_nargs; i < 20; i++) {
7914 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity", 1, 20, 20, i); __PYX_ERR(0, 891, __pyx_L3_error) }
7915 }
7916 } else if (unlikely(__pyx_nargs != 20)) {
7917 goto __pyx_L5_argtuple_error;
7918 } else {
7919 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7920 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 891, __pyx_L3_error)
7921 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7922 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 891, __pyx_L3_error)
7923 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7924 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 891, __pyx_L3_error)
7925 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7926 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 891, __pyx_L3_error)
7927 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
7928 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 891, __pyx_L3_error)
7929 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
7930 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 891, __pyx_L3_error)
7931 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
7932 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 891, __pyx_L3_error)
7933 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
7934 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 891, __pyx_L3_error)
7935 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
7936 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 891, __pyx_L3_error)
7937 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
7938 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 891, __pyx_L3_error)
7939 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
7940 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 891, __pyx_L3_error)
7941 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
7942 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 891, __pyx_L3_error)
7943 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
7944 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 891, __pyx_L3_error)
7945 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
7946 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 891, __pyx_L3_error)
7947 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
7948 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 891, __pyx_L3_error)
7949 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
7950 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 891, __pyx_L3_error)
7951 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
7952 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 891, __pyx_L3_error)
7953 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
7954 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 891, __pyx_L3_error)
7955 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
7956 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 891, __pyx_L3_error)
7957 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
7958 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 891, __pyx_L3_error)
7959 }
7960 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
7961 __pyx_v_a = ((PyArrayObject *)values[1]);
7962 __pyx_v_pdeResidualU = ((PyArrayObject *)values[2]);
7963 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[3]);
7964 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[4]);
7965 __pyx_v_pdeResidualV = ((PyArrayObject *)values[5]);
7966 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[6]);
7967 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[7]);
7968 __pyx_v_pdeResidualW = ((PyArrayObject *)values[8]);
7969 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[9]);
7970 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[10]);
7971 __pyx_v_subgridErrorU = ((PyArrayObject *)values[11]);
7972 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[12]);
7973 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[13]);
7974 __pyx_v_subgridErrorV = ((PyArrayObject *)values[14]);
7975 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[15]);
7976 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[16]);
7977 __pyx_v_subgridErrorW = ((PyArrayObject *)values[17]);
7978 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[18]);
7979 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[19]);
7980 }
7981 goto __pyx_L6_skip;
7982 __pyx_L5_argtuple_error:;
7983 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity", 1, 20, 20, __pyx_nargs); __PYX_ERR(0, 891, __pyx_L3_error)
7984 __pyx_L6_skip:;
7985 goto __pyx_L4_argument_unpacking_done;
7986 __pyx_L3_error:;
7987 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7988 Py_XDECREF(values[__pyx_temp]);
7989 }
7990 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes3D_GLS_velocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
7991 __Pyx_RefNannyFinishContext();
7992 return NULL;
7993 __pyx_L4_argument_unpacking_done:;
7994 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 891, __pyx_L1_error)
7995 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 892, __pyx_L1_error)
7996 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 893, __pyx_L1_error)
7997 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 894, __pyx_L1_error)
7998 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 895, __pyx_L1_error)
7999 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 896, __pyx_L1_error)
8000 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 897, __pyx_L1_error)
8001 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 898, __pyx_L1_error)
8002 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 899, __pyx_L1_error)
8003 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 900, __pyx_L1_error)
8004 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 901, __pyx_L1_error)
8005 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 902, __pyx_L1_error)
8006 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 903, __pyx_L1_error)
8007 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 904, __pyx_L1_error)
8008 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 905, __pyx_L1_error)
8009 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 906, __pyx_L1_error)
8010 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 907, __pyx_L1_error)
8011 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 908, __pyx_L1_error)
8012 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 909, __pyx_L1_error)
8013 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 910, __pyx_L1_error)
8014 __pyx_r = __pyx_pf_13csubgridError_18calculateSubgridErrorStokes3D_GLS_velocity(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
8015
8016 /* function exit code */
8017 goto __pyx_L0;
8018 __pyx_L1_error:;
8019 __pyx_r = NULL;
8020 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8021 Py_XDECREF(values[__pyx_temp]);
8022 }
8023 goto __pyx_L7_cleaned_up;
8024 __pyx_L0:;
8025 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8026 Py_XDECREF(values[__pyx_temp]);
8027 }
8028 __pyx_L7_cleaned_up:;
8029 __Pyx_RefNannyFinishContext();
8030 return __pyx_r;
8031}
8032
8033static PyObject *__pyx_pf_13csubgridError_18calculateSubgridErrorStokes3D_GLS_velocity(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
8034 PyObject *__pyx_r = NULL;
8035 __Pyx_RefNannyDeclarations
8036 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity", 0);
8037
8038 /* "csubgridError.pyx":911
8039 * np.ndarray dsubgridErrorW_dp,
8040 * np.ndarray dsubgridErrorW_dw):
8041 * ccalculateSubgridErrorStokes3D_GLS_velocity(dsubgridErrorU_du.shape[0], # <<<<<<<<<<<<<<
8042 * dsubgridErrorU_du.shape[1],
8043 * dsubgridErrorU_du.shape[2],
8044*/
8045 calculateSubgridErrorStokes3D_GLS_velocity((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
8046
8047 /* "csubgridError.pyx":891
8048 * <double*> dsubgridErrorV_dp.data,
8049 * <double*> dsubgridErrorV_dv.data)
8050 * def calculateSubgridErrorStokes3D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8051 * np.ndarray a,
8052 * np.ndarray pdeResidualU,
8053*/
8054
8055 /* function exit code */
8056 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8057 __Pyx_XGIVEREF(__pyx_r);
8058 __Pyx_RefNannyFinishContext();
8059 return __pyx_r;
8060}
8061
8062/* "csubgridError.pyx":935
8063 * <double*> dsubgridErrorW_dp.data,
8064 * <double*> dsubgridErrorW_dw.data)
8065 * def calculateSubgridErrorStokes3D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8066 * np.ndarray a,
8067 * np.ndarray pdeResidualU,
8068*/
8069
8070/* Python wrapper */
8071static PyObject *__pyx_pw_13csubgridError_21calculateSubgridErrorStokes3D_GLS_velocity_sd(PyObject *__pyx_self,
8072#if CYTHON_VECTORCALL
8073PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8074#else
8075PyObject *__pyx_args, PyObject *__pyx_kwds
8076#endif
8077); /*proto*/
8078static PyMethodDef __pyx_mdef_13csubgridError_21calculateSubgridErrorStokes3D_GLS_velocity_sd = {"calculateSubgridErrorStokes3D_GLS_velocity_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_21calculateSubgridErrorStokes3D_GLS_velocity_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8079static PyObject *__pyx_pw_13csubgridError_21calculateSubgridErrorStokes3D_GLS_velocity_sd(PyObject *__pyx_self,
8080#if CYTHON_VECTORCALL
8081PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8082#else
8083PyObject *__pyx_args, PyObject *__pyx_kwds
8084#endif
8085) {
8086 PyArrayObject *__pyx_v_elementDiameter = 0;
8087 PyArrayObject *__pyx_v_a = 0;
8088 PyArrayObject *__pyx_v_pdeResidualU = 0;
8089 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
8090 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
8091 PyArrayObject *__pyx_v_pdeResidualV = 0;
8092 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
8093 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
8094 PyArrayObject *__pyx_v_pdeResidualW = 0;
8095 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
8096 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
8097 PyArrayObject *__pyx_v_subgridErrorU = 0;
8098 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
8099 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
8100 PyArrayObject *__pyx_v_subgridErrorV = 0;
8101 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
8102 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
8103 PyArrayObject *__pyx_v_subgridErrorW = 0;
8104 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
8105 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
8106 #if !CYTHON_VECTORCALL
8107 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8108 #endif
8109 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8110 PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8111 int __pyx_lineno = 0;
8112 const char *__pyx_filename = NULL;
8113 int __pyx_clineno = 0;
8114 PyObject *__pyx_r = 0;
8115 __Pyx_RefNannyDeclarations
8116 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_sd (wrapper)", 0);
8117 #if !CYTHON_VECTORCALL
8118 #if CYTHON_ASSUME_SAFE_SIZE
8119 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8120 #else
8121 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8122 #endif
8123 #endif
8124 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8125 {
8126 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
8127 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8128 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 935, __pyx_L3_error)
8129 if (__pyx_kwds_len > 0) {
8130 switch (__pyx_nargs) {
8131 case 20:
8132 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8133 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 935, __pyx_L3_error)
8134 CYTHON_FALLTHROUGH;
8135 case 19:
8136 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8137 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 935, __pyx_L3_error)
8138 CYTHON_FALLTHROUGH;
8139 case 18:
8140 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8141 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 935, __pyx_L3_error)
8142 CYTHON_FALLTHROUGH;
8143 case 17:
8144 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8145 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 935, __pyx_L3_error)
8146 CYTHON_FALLTHROUGH;
8147 case 16:
8148 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8149 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 935, __pyx_L3_error)
8150 CYTHON_FALLTHROUGH;
8151 case 15:
8152 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8153 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 935, __pyx_L3_error)
8154 CYTHON_FALLTHROUGH;
8155 case 14:
8156 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8157 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 935, __pyx_L3_error)
8158 CYTHON_FALLTHROUGH;
8159 case 13:
8160 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8161 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 935, __pyx_L3_error)
8162 CYTHON_FALLTHROUGH;
8163 case 12:
8164 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8165 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 935, __pyx_L3_error)
8166 CYTHON_FALLTHROUGH;
8167 case 11:
8168 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8169 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 935, __pyx_L3_error)
8170 CYTHON_FALLTHROUGH;
8171 case 10:
8172 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8173 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 935, __pyx_L3_error)
8174 CYTHON_FALLTHROUGH;
8175 case 9:
8176 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8177 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 935, __pyx_L3_error)
8178 CYTHON_FALLTHROUGH;
8179 case 8:
8180 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8181 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 935, __pyx_L3_error)
8182 CYTHON_FALLTHROUGH;
8183 case 7:
8184 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8185 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 935, __pyx_L3_error)
8186 CYTHON_FALLTHROUGH;
8187 case 6:
8188 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8189 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 935, __pyx_L3_error)
8190 CYTHON_FALLTHROUGH;
8191 case 5:
8192 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8193 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 935, __pyx_L3_error)
8194 CYTHON_FALLTHROUGH;
8195 case 4:
8196 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8197 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 935, __pyx_L3_error)
8198 CYTHON_FALLTHROUGH;
8199 case 3:
8200 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8201 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 935, __pyx_L3_error)
8202 CYTHON_FALLTHROUGH;
8203 case 2:
8204 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8205 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 935, __pyx_L3_error)
8206 CYTHON_FALLTHROUGH;
8207 case 1:
8208 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8209 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 935, __pyx_L3_error)
8210 CYTHON_FALLTHROUGH;
8211 case 0: break;
8212 default: goto __pyx_L5_argtuple_error;
8213 }
8214 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8215 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes3D_GLS_velocity_sd", 0) < (0)) __PYX_ERR(0, 935, __pyx_L3_error)
8216 for (Py_ssize_t i = __pyx_nargs; i < 20; i++) {
8217 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_sd", 1, 20, 20, i); __PYX_ERR(0, 935, __pyx_L3_error) }
8218 }
8219 } else if (unlikely(__pyx_nargs != 20)) {
8220 goto __pyx_L5_argtuple_error;
8221 } else {
8222 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8223 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 935, __pyx_L3_error)
8224 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8225 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 935, __pyx_L3_error)
8226 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8227 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 935, __pyx_L3_error)
8228 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8229 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 935, __pyx_L3_error)
8230 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8231 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 935, __pyx_L3_error)
8232 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8233 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 935, __pyx_L3_error)
8234 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8235 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 935, __pyx_L3_error)
8236 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8237 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 935, __pyx_L3_error)
8238 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8239 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 935, __pyx_L3_error)
8240 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8241 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 935, __pyx_L3_error)
8242 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8243 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 935, __pyx_L3_error)
8244 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8245 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 935, __pyx_L3_error)
8246 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8247 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 935, __pyx_L3_error)
8248 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8249 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 935, __pyx_L3_error)
8250 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8251 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 935, __pyx_L3_error)
8252 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8253 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 935, __pyx_L3_error)
8254 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8255 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 935, __pyx_L3_error)
8256 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8257 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 935, __pyx_L3_error)
8258 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8259 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 935, __pyx_L3_error)
8260 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8261 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 935, __pyx_L3_error)
8262 }
8263 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
8264 __pyx_v_a = ((PyArrayObject *)values[1]);
8265 __pyx_v_pdeResidualU = ((PyArrayObject *)values[2]);
8266 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[3]);
8267 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[4]);
8268 __pyx_v_pdeResidualV = ((PyArrayObject *)values[5]);
8269 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[6]);
8270 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[7]);
8271 __pyx_v_pdeResidualW = ((PyArrayObject *)values[8]);
8272 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[9]);
8273 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[10]);
8274 __pyx_v_subgridErrorU = ((PyArrayObject *)values[11]);
8275 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[12]);
8276 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[13]);
8277 __pyx_v_subgridErrorV = ((PyArrayObject *)values[14]);
8278 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[15]);
8279 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[16]);
8280 __pyx_v_subgridErrorW = ((PyArrayObject *)values[17]);
8281 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[18]);
8282 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[19]);
8283 }
8284 goto __pyx_L6_skip;
8285 __pyx_L5_argtuple_error:;
8286 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_sd", 1, 20, 20, __pyx_nargs); __PYX_ERR(0, 935, __pyx_L3_error)
8287 __pyx_L6_skip:;
8288 goto __pyx_L4_argument_unpacking_done;
8289 __pyx_L3_error:;
8290 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8291 Py_XDECREF(values[__pyx_temp]);
8292 }
8293 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes3D_GLS_velocity_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
8294 __Pyx_RefNannyFinishContext();
8295 return NULL;
8296 __pyx_L4_argument_unpacking_done:;
8297 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 935, __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, 936, __pyx_L1_error)
8299 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 937, __pyx_L1_error)
8300 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 938, __pyx_L1_error)
8301 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 939, __pyx_L1_error)
8302 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 940, __pyx_L1_error)
8303 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 941, __pyx_L1_error)
8304 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 942, __pyx_L1_error)
8305 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 943, __pyx_L1_error)
8306 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 944, __pyx_L1_error)
8307 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 945, __pyx_L1_error)
8308 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 946, __pyx_L1_error)
8309 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 947, __pyx_L1_error)
8310 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 948, __pyx_L1_error)
8311 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 949, __pyx_L1_error)
8312 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 950, __pyx_L1_error)
8313 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 951, __pyx_L1_error)
8314 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 952, __pyx_L1_error)
8315 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 953, __pyx_L1_error)
8316 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 954, __pyx_L1_error)
8317 __pyx_r = __pyx_pf_13csubgridError_20calculateSubgridErrorStokes3D_GLS_velocity_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
8318
8319 /* function exit code */
8320 goto __pyx_L0;
8321 __pyx_L1_error:;
8322 __pyx_r = NULL;
8323 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8324 Py_XDECREF(values[__pyx_temp]);
8325 }
8326 goto __pyx_L7_cleaned_up;
8327 __pyx_L0:;
8328 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8329 Py_XDECREF(values[__pyx_temp]);
8330 }
8331 __pyx_L7_cleaned_up:;
8332 __Pyx_RefNannyFinishContext();
8333 return __pyx_r;
8334}
8335
8336static PyObject *__pyx_pf_13csubgridError_20calculateSubgridErrorStokes3D_GLS_velocity_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
8337 PyObject *__pyx_r = NULL;
8338 __Pyx_RefNannyDeclarations
8339 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_sd", 0);
8340
8341 /* "csubgridError.pyx":955
8342 * np.ndarray dsubgridErrorW_dp,
8343 * np.ndarray dsubgridErrorW_dw):
8344 * ccalculateSubgridErrorStokes3D_GLS_velocity_sd(dsubgridErrorU_du.shape[0], # <<<<<<<<<<<<<<
8345 * dsubgridErrorU_du.shape[1],
8346 * dsubgridErrorU_du.shape[2],
8347*/
8348 calculateSubgridErrorStokes3D_GLS_velocity_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorU_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
8349
8350 /* "csubgridError.pyx":935
8351 * <double*> dsubgridErrorW_dp.data,
8352 * <double*> dsubgridErrorW_dw.data)
8353 * def calculateSubgridErrorStokes3D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8354 * np.ndarray a,
8355 * np.ndarray pdeResidualU,
8356*/
8357
8358 /* function exit code */
8359 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8360 __Pyx_XGIVEREF(__pyx_r);
8361 __Pyx_RefNannyFinishContext();
8362 return __pyx_r;
8363}
8364
8365/* "csubgridError.pyx":979
8366 * <double*> dsubgridErrorW_dp.data,
8367 * <double*> dsubgridErrorW_dw.data)
8368 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8369 * np.ndarray a,
8370 * np.ndarray pdeResidualP,
8371*/
8372
8373/* Python wrapper */
8374static PyObject *__pyx_pw_13csubgridError_23calculateSubgridErrorStokes2D_GLS_velocity_pressure(PyObject *__pyx_self,
8375#if CYTHON_VECTORCALL
8376PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8377#else
8378PyObject *__pyx_args, PyObject *__pyx_kwds
8379#endif
8380); /*proto*/
8381static PyMethodDef __pyx_mdef_13csubgridError_23calculateSubgridErrorStokes2D_GLS_velocity_pressure = {"calculateSubgridErrorStokes2D_GLS_velocity_pressure", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_23calculateSubgridErrorStokes2D_GLS_velocity_pressure, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8382static PyObject *__pyx_pw_13csubgridError_23calculateSubgridErrorStokes2D_GLS_velocity_pressure(PyObject *__pyx_self,
8383#if CYTHON_VECTORCALL
8384PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8385#else
8386PyObject *__pyx_args, PyObject *__pyx_kwds
8387#endif
8388) {
8389 PyArrayObject *__pyx_v_elementDiameter = 0;
8390 PyArrayObject *__pyx_v_a = 0;
8391 PyArrayObject *__pyx_v_pdeResidualP = 0;
8392 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
8393 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
8394 PyArrayObject *__pyx_v_pdeResidualU = 0;
8395 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
8396 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
8397 PyArrayObject *__pyx_v_pdeResidualV = 0;
8398 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
8399 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
8400 PyArrayObject *__pyx_v_subgridErrorP = 0;
8401 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
8402 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
8403 PyArrayObject *__pyx_v_subgridErrorU = 0;
8404 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
8405 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
8406 PyArrayObject *__pyx_v_subgridErrorV = 0;
8407 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
8408 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
8409 #if !CYTHON_VECTORCALL
8410 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8411 #endif
8412 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8413 PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8414 int __pyx_lineno = 0;
8415 const char *__pyx_filename = NULL;
8416 int __pyx_clineno = 0;
8417 PyObject *__pyx_r = 0;
8418 __Pyx_RefNannyDeclarations
8419 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_pressure (wrapper)", 0);
8420 #if !CYTHON_VECTORCALL
8421 #if CYTHON_ASSUME_SAFE_SIZE
8422 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8423 #else
8424 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8425 #endif
8426 #endif
8427 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8428 {
8429 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
8430 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8431 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 979, __pyx_L3_error)
8432 if (__pyx_kwds_len > 0) {
8433 switch (__pyx_nargs) {
8434 case 20:
8435 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8436 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 979, __pyx_L3_error)
8437 CYTHON_FALLTHROUGH;
8438 case 19:
8439 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8440 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 979, __pyx_L3_error)
8441 CYTHON_FALLTHROUGH;
8442 case 18:
8443 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8444 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 979, __pyx_L3_error)
8445 CYTHON_FALLTHROUGH;
8446 case 17:
8447 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8448 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 979, __pyx_L3_error)
8449 CYTHON_FALLTHROUGH;
8450 case 16:
8451 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8452 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 979, __pyx_L3_error)
8453 CYTHON_FALLTHROUGH;
8454 case 15:
8455 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8456 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 979, __pyx_L3_error)
8457 CYTHON_FALLTHROUGH;
8458 case 14:
8459 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8460 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 979, __pyx_L3_error)
8461 CYTHON_FALLTHROUGH;
8462 case 13:
8463 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8464 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 979, __pyx_L3_error)
8465 CYTHON_FALLTHROUGH;
8466 case 12:
8467 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8468 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 979, __pyx_L3_error)
8469 CYTHON_FALLTHROUGH;
8470 case 11:
8471 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8472 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 979, __pyx_L3_error)
8473 CYTHON_FALLTHROUGH;
8474 case 10:
8475 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8476 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 979, __pyx_L3_error)
8477 CYTHON_FALLTHROUGH;
8478 case 9:
8479 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8480 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 979, __pyx_L3_error)
8481 CYTHON_FALLTHROUGH;
8482 case 8:
8483 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8484 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 979, __pyx_L3_error)
8485 CYTHON_FALLTHROUGH;
8486 case 7:
8487 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8488 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 979, __pyx_L3_error)
8489 CYTHON_FALLTHROUGH;
8490 case 6:
8491 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8492 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 979, __pyx_L3_error)
8493 CYTHON_FALLTHROUGH;
8494 case 5:
8495 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8496 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 979, __pyx_L3_error)
8497 CYTHON_FALLTHROUGH;
8498 case 4:
8499 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8500 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 979, __pyx_L3_error)
8501 CYTHON_FALLTHROUGH;
8502 case 3:
8503 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8504 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 979, __pyx_L3_error)
8505 CYTHON_FALLTHROUGH;
8506 case 2:
8507 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8508 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 979, __pyx_L3_error)
8509 CYTHON_FALLTHROUGH;
8510 case 1:
8511 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8512 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 979, __pyx_L3_error)
8513 CYTHON_FALLTHROUGH;
8514 case 0: break;
8515 default: goto __pyx_L5_argtuple_error;
8516 }
8517 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8518 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_GLS_velocity_pressure", 0) < (0)) __PYX_ERR(0, 979, __pyx_L3_error)
8519 for (Py_ssize_t i = __pyx_nargs; i < 20; i++) {
8520 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_pressure", 1, 20, 20, i); __PYX_ERR(0, 979, __pyx_L3_error) }
8521 }
8522 } else if (unlikely(__pyx_nargs != 20)) {
8523 goto __pyx_L5_argtuple_error;
8524 } else {
8525 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8526 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 979, __pyx_L3_error)
8527 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8528 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 979, __pyx_L3_error)
8529 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8530 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 979, __pyx_L3_error)
8531 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8532 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 979, __pyx_L3_error)
8533 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8534 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 979, __pyx_L3_error)
8535 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8536 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 979, __pyx_L3_error)
8537 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8538 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 979, __pyx_L3_error)
8539 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8540 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 979, __pyx_L3_error)
8541 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8542 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 979, __pyx_L3_error)
8543 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8544 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 979, __pyx_L3_error)
8545 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8546 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 979, __pyx_L3_error)
8547 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8548 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 979, __pyx_L3_error)
8549 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8550 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 979, __pyx_L3_error)
8551 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8552 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 979, __pyx_L3_error)
8553 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8554 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 979, __pyx_L3_error)
8555 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8556 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 979, __pyx_L3_error)
8557 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8558 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 979, __pyx_L3_error)
8559 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8560 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 979, __pyx_L3_error)
8561 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8562 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 979, __pyx_L3_error)
8563 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8564 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 979, __pyx_L3_error)
8565 }
8566 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
8567 __pyx_v_a = ((PyArrayObject *)values[1]);
8568 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
8569 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
8570 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
8571 __pyx_v_pdeResidualU = ((PyArrayObject *)values[5]);
8572 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[6]);
8573 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[7]);
8574 __pyx_v_pdeResidualV = ((PyArrayObject *)values[8]);
8575 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[9]);
8576 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[10]);
8577 __pyx_v_subgridErrorP = ((PyArrayObject *)values[11]);
8578 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[12]);
8579 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[13]);
8580 __pyx_v_subgridErrorU = ((PyArrayObject *)values[14]);
8581 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[15]);
8582 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[16]);
8583 __pyx_v_subgridErrorV = ((PyArrayObject *)values[17]);
8584 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[18]);
8585 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[19]);
8586 }
8587 goto __pyx_L6_skip;
8588 __pyx_L5_argtuple_error:;
8589 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_pressure", 1, 20, 20, __pyx_nargs); __PYX_ERR(0, 979, __pyx_L3_error)
8590 __pyx_L6_skip:;
8591 goto __pyx_L4_argument_unpacking_done;
8592 __pyx_L3_error:;
8593 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8594 Py_XDECREF(values[__pyx_temp]);
8595 }
8596 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_GLS_velocity_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
8597 __Pyx_RefNannyFinishContext();
8598 return NULL;
8599 __pyx_L4_argument_unpacking_done:;
8600 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 979, __pyx_L1_error)
8601 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 980, __pyx_L1_error)
8602 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 981, __pyx_L1_error)
8603 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 982, __pyx_L1_error)
8604 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 983, __pyx_L1_error)
8605 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 984, __pyx_L1_error)
8606 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 985, __pyx_L1_error)
8607 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 986, __pyx_L1_error)
8608 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 987, __pyx_L1_error)
8609 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 988, __pyx_L1_error)
8610 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 989, __pyx_L1_error)
8611 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 990, __pyx_L1_error)
8612 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 991, __pyx_L1_error)
8613 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 992, __pyx_L1_error)
8614 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 993, __pyx_L1_error)
8615 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 994, __pyx_L1_error)
8616 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 995, __pyx_L1_error)
8617 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 996, __pyx_L1_error)
8618 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 997, __pyx_L1_error)
8619 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 998, __pyx_L1_error)
8620 __pyx_r = __pyx_pf_13csubgridError_22calculateSubgridErrorStokes2D_GLS_velocity_pressure(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv);
8621
8622 /* function exit code */
8623 goto __pyx_L0;
8624 __pyx_L1_error:;
8625 __pyx_r = NULL;
8626 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8627 Py_XDECREF(values[__pyx_temp]);
8628 }
8629 goto __pyx_L7_cleaned_up;
8630 __pyx_L0:;
8631 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8632 Py_XDECREF(values[__pyx_temp]);
8633 }
8634 __pyx_L7_cleaned_up:;
8635 __Pyx_RefNannyFinishContext();
8636 return __pyx_r;
8637}
8638
8639static PyObject *__pyx_pf_13csubgridError_22calculateSubgridErrorStokes2D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
8640 PyObject *__pyx_r = NULL;
8641 __Pyx_RefNannyDeclarations
8642 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_pressure", 0);
8643
8644 /* "csubgridError.pyx":999
8645 * np.ndarray dsubgridErrorV_dp,
8646 * np.ndarray dsubgridErrorV_dv):
8647 * ccalculateSubgridErrorStokes2D_GLS_velocity_pressure(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
8648 * dsubgridErrorP_du.shape[1],
8649 * dsubgridErrorP_du.shape[2],
8650*/
8651 calculateSubgridErrorStokes2D_GLS_velocity_pressure((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
8652
8653 /* "csubgridError.pyx":979
8654 * <double*> dsubgridErrorW_dp.data,
8655 * <double*> dsubgridErrorW_dw.data)
8656 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8657 * np.ndarray a,
8658 * np.ndarray pdeResidualP,
8659*/
8660
8661 /* function exit code */
8662 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8663 __Pyx_XGIVEREF(__pyx_r);
8664 __Pyx_RefNannyFinishContext();
8665 return __pyx_r;
8666}
8667
8668/* "csubgridError.pyx":1023
8669 * <double*> dsubgridErrorV_dp.data,
8670 * <double*> dsubgridErrorV_dv.data)
8671 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8672 * np.ndarray a,
8673 * np.ndarray pdeResidualP,
8674*/
8675
8676/* Python wrapper */
8677static PyObject *__pyx_pw_13csubgridError_25calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
8678#if CYTHON_VECTORCALL
8679PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8680#else
8681PyObject *__pyx_args, PyObject *__pyx_kwds
8682#endif
8683); /*proto*/
8684static PyMethodDef __pyx_mdef_13csubgridError_25calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd = {"calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_25calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8685static PyObject *__pyx_pw_13csubgridError_25calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
8686#if CYTHON_VECTORCALL
8687PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8688#else
8689PyObject *__pyx_args, PyObject *__pyx_kwds
8690#endif
8691) {
8692 PyArrayObject *__pyx_v_elementDiameter = 0;
8693 PyArrayObject *__pyx_v_a = 0;
8694 PyArrayObject *__pyx_v_pdeResidualP = 0;
8695 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
8696 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
8697 PyArrayObject *__pyx_v_pdeResidualU = 0;
8698 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
8699 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
8700 PyArrayObject *__pyx_v_pdeResidualV = 0;
8701 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
8702 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
8703 PyArrayObject *__pyx_v_subgridErrorP = 0;
8704 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
8705 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
8706 PyArrayObject *__pyx_v_subgridErrorU = 0;
8707 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
8708 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
8709 PyArrayObject *__pyx_v_subgridErrorV = 0;
8710 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
8711 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
8712 #if !CYTHON_VECTORCALL
8713 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8714 #endif
8715 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8716 PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
8717 int __pyx_lineno = 0;
8718 const char *__pyx_filename = NULL;
8719 int __pyx_clineno = 0;
8720 PyObject *__pyx_r = 0;
8721 __Pyx_RefNannyDeclarations
8722 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd (wrapper)", 0);
8723 #if !CYTHON_VECTORCALL
8724 #if CYTHON_ASSUME_SAFE_SIZE
8725 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8726 #else
8727 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8728 #endif
8729 #endif
8730 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8731 {
8732 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
8733 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8734 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1023, __pyx_L3_error)
8735 if (__pyx_kwds_len > 0) {
8736 switch (__pyx_nargs) {
8737 case 20:
8738 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8739 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1023, __pyx_L3_error)
8740 CYTHON_FALLTHROUGH;
8741 case 19:
8742 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8743 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1023, __pyx_L3_error)
8744 CYTHON_FALLTHROUGH;
8745 case 18:
8746 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8747 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1023, __pyx_L3_error)
8748 CYTHON_FALLTHROUGH;
8749 case 17:
8750 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8751 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1023, __pyx_L3_error)
8752 CYTHON_FALLTHROUGH;
8753 case 16:
8754 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8755 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1023, __pyx_L3_error)
8756 CYTHON_FALLTHROUGH;
8757 case 15:
8758 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8759 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1023, __pyx_L3_error)
8760 CYTHON_FALLTHROUGH;
8761 case 14:
8762 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8763 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1023, __pyx_L3_error)
8764 CYTHON_FALLTHROUGH;
8765 case 13:
8766 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8767 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1023, __pyx_L3_error)
8768 CYTHON_FALLTHROUGH;
8769 case 12:
8770 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8771 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1023, __pyx_L3_error)
8772 CYTHON_FALLTHROUGH;
8773 case 11:
8774 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8775 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1023, __pyx_L3_error)
8776 CYTHON_FALLTHROUGH;
8777 case 10:
8778 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8779 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1023, __pyx_L3_error)
8780 CYTHON_FALLTHROUGH;
8781 case 9:
8782 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8783 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1023, __pyx_L3_error)
8784 CYTHON_FALLTHROUGH;
8785 case 8:
8786 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8787 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1023, __pyx_L3_error)
8788 CYTHON_FALLTHROUGH;
8789 case 7:
8790 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8791 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1023, __pyx_L3_error)
8792 CYTHON_FALLTHROUGH;
8793 case 6:
8794 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8795 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1023, __pyx_L3_error)
8796 CYTHON_FALLTHROUGH;
8797 case 5:
8798 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8799 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1023, __pyx_L3_error)
8800 CYTHON_FALLTHROUGH;
8801 case 4:
8802 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8803 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1023, __pyx_L3_error)
8804 CYTHON_FALLTHROUGH;
8805 case 3:
8806 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8807 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1023, __pyx_L3_error)
8808 CYTHON_FALLTHROUGH;
8809 case 2:
8810 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8811 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1023, __pyx_L3_error)
8812 CYTHON_FALLTHROUGH;
8813 case 1:
8814 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8815 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1023, __pyx_L3_error)
8816 CYTHON_FALLTHROUGH;
8817 case 0: break;
8818 default: goto __pyx_L5_argtuple_error;
8819 }
8820 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8821 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", 0) < (0)) __PYX_ERR(0, 1023, __pyx_L3_error)
8822 for (Py_ssize_t i = __pyx_nargs; i < 20; i++) {
8823 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", 1, 20, 20, i); __PYX_ERR(0, 1023, __pyx_L3_error) }
8824 }
8825 } else if (unlikely(__pyx_nargs != 20)) {
8826 goto __pyx_L5_argtuple_error;
8827 } else {
8828 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8829 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1023, __pyx_L3_error)
8830 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8831 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1023, __pyx_L3_error)
8832 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8833 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1023, __pyx_L3_error)
8834 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8835 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1023, __pyx_L3_error)
8836 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
8837 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1023, __pyx_L3_error)
8838 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
8839 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1023, __pyx_L3_error)
8840 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
8841 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1023, __pyx_L3_error)
8842 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
8843 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1023, __pyx_L3_error)
8844 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
8845 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1023, __pyx_L3_error)
8846 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
8847 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1023, __pyx_L3_error)
8848 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
8849 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1023, __pyx_L3_error)
8850 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
8851 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1023, __pyx_L3_error)
8852 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
8853 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1023, __pyx_L3_error)
8854 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
8855 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1023, __pyx_L3_error)
8856 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
8857 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1023, __pyx_L3_error)
8858 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
8859 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1023, __pyx_L3_error)
8860 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
8861 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1023, __pyx_L3_error)
8862 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
8863 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1023, __pyx_L3_error)
8864 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
8865 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1023, __pyx_L3_error)
8866 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
8867 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1023, __pyx_L3_error)
8868 }
8869 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
8870 __pyx_v_a = ((PyArrayObject *)values[1]);
8871 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
8872 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
8873 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
8874 __pyx_v_pdeResidualU = ((PyArrayObject *)values[5]);
8875 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[6]);
8876 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[7]);
8877 __pyx_v_pdeResidualV = ((PyArrayObject *)values[8]);
8878 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[9]);
8879 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[10]);
8880 __pyx_v_subgridErrorP = ((PyArrayObject *)values[11]);
8881 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[12]);
8882 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[13]);
8883 __pyx_v_subgridErrorU = ((PyArrayObject *)values[14]);
8884 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[15]);
8885 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[16]);
8886 __pyx_v_subgridErrorV = ((PyArrayObject *)values[17]);
8887 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[18]);
8888 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[19]);
8889 }
8890 goto __pyx_L6_skip;
8891 __pyx_L5_argtuple_error:;
8892 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", 1, 20, 20, __pyx_nargs); __PYX_ERR(0, 1023, __pyx_L3_error)
8893 __pyx_L6_skip:;
8894 goto __pyx_L4_argument_unpacking_done;
8895 __pyx_L3_error:;
8896 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8897 Py_XDECREF(values[__pyx_temp]);
8898 }
8899 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
8900 __Pyx_RefNannyFinishContext();
8901 return NULL;
8902 __pyx_L4_argument_unpacking_done:;
8903 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1023, __pyx_L1_error)
8904 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1024, __pyx_L1_error)
8905 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1025, __pyx_L1_error)
8906 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1026, __pyx_L1_error)
8907 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1027, __pyx_L1_error)
8908 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1028, __pyx_L1_error)
8909 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1029, __pyx_L1_error)
8910 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1030, __pyx_L1_error)
8911 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1031, __pyx_L1_error)
8912 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1032, __pyx_L1_error)
8913 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1033, __pyx_L1_error)
8914 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1034, __pyx_L1_error)
8915 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1035, __pyx_L1_error)
8916 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1036, __pyx_L1_error)
8917 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1037, __pyx_L1_error)
8918 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1038, __pyx_L1_error)
8919 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1039, __pyx_L1_error)
8920 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1040, __pyx_L1_error)
8921 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1041, __pyx_L1_error)
8922 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1042, __pyx_L1_error)
8923 __pyx_r = __pyx_pf_13csubgridError_24calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv);
8924
8925 /* function exit code */
8926 goto __pyx_L0;
8927 __pyx_L1_error:;
8928 __pyx_r = NULL;
8929 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8930 Py_XDECREF(values[__pyx_temp]);
8931 }
8932 goto __pyx_L7_cleaned_up;
8933 __pyx_L0:;
8934 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8935 Py_XDECREF(values[__pyx_temp]);
8936 }
8937 __pyx_L7_cleaned_up:;
8938 __Pyx_RefNannyFinishContext();
8939 return __pyx_r;
8940}
8941
8942static PyObject *__pyx_pf_13csubgridError_24calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
8943 PyObject *__pyx_r = NULL;
8944 __Pyx_RefNannyDeclarations
8945 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd", 0);
8946
8947 /* "csubgridError.pyx":1043
8948 * np.ndarray dsubgridErrorV_dp,
8949 * np.ndarray dsubgridErrorV_dv):
8950 * ccalculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
8951 * dsubgridErrorP_du.shape[1],
8952 * dsubgridErrorP_du.shape[2],
8953*/
8954 calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
8955
8956 /* "csubgridError.pyx":1023
8957 * <double*> dsubgridErrorV_dp.data,
8958 * <double*> dsubgridErrorV_dv.data)
8959 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8960 * np.ndarray a,
8961 * np.ndarray pdeResidualP,
8962*/
8963
8964 /* function exit code */
8965 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8966 __Pyx_XGIVEREF(__pyx_r);
8967 __Pyx_RefNannyFinishContext();
8968 return __pyx_r;
8969}
8970
8971/* "csubgridError.pyx":1067
8972 * <double*> dsubgridErrorV_dp.data,
8973 * <double*> dsubgridErrorV_dv.data)
8974 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
8975 * np.ndarray a,
8976 * np.ndarray pdeResidualP,
8977*/
8978
8979/* Python wrapper */
8980static PyObject *__pyx_pw_13csubgridError_27calculateSubgridErrorStokes3D_GLS_velocity_pressure(PyObject *__pyx_self,
8981#if CYTHON_VECTORCALL
8982PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8983#else
8984PyObject *__pyx_args, PyObject *__pyx_kwds
8985#endif
8986); /*proto*/
8987static PyMethodDef __pyx_mdef_13csubgridError_27calculateSubgridErrorStokes3D_GLS_velocity_pressure = {"calculateSubgridErrorStokes3D_GLS_velocity_pressure", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_27calculateSubgridErrorStokes3D_GLS_velocity_pressure, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8988static PyObject *__pyx_pw_13csubgridError_27calculateSubgridErrorStokes3D_GLS_velocity_pressure(PyObject *__pyx_self,
8989#if CYTHON_VECTORCALL
8990PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8991#else
8992PyObject *__pyx_args, PyObject *__pyx_kwds
8993#endif
8994) {
8995 PyArrayObject *__pyx_v_elementDiameter = 0;
8996 PyArrayObject *__pyx_v_a = 0;
8997 PyArrayObject *__pyx_v_pdeResidualP = 0;
8998 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
8999 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
9000 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
9001 PyArrayObject *__pyx_v_pdeResidualU = 0;
9002 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
9003 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
9004 PyArrayObject *__pyx_v_pdeResidualV = 0;
9005 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
9006 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
9007 PyArrayObject *__pyx_v_pdeResidualW = 0;
9008 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
9009 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
9010 PyArrayObject *__pyx_v_subgridErrorP = 0;
9011 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
9012 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
9013 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
9014 PyArrayObject *__pyx_v_subgridErrorU = 0;
9015 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
9016 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
9017 PyArrayObject *__pyx_v_subgridErrorV = 0;
9018 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
9019 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
9020 PyArrayObject *__pyx_v_subgridErrorW = 0;
9021 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
9022 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
9023 #if !CYTHON_VECTORCALL
9024 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9025 #endif
9026 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9027 PyObject* values[28] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
9028 int __pyx_lineno = 0;
9029 const char *__pyx_filename = NULL;
9030 int __pyx_clineno = 0;
9031 PyObject *__pyx_r = 0;
9032 __Pyx_RefNannyDeclarations
9033 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_pressure (wrapper)", 0);
9034 #if !CYTHON_VECTORCALL
9035 #if CYTHON_ASSUME_SAFE_SIZE
9036 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9037 #else
9038 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9039 #endif
9040 #endif
9041 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9042 {
9043 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
9044 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9045 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1067, __pyx_L3_error)
9046 if (__pyx_kwds_len > 0) {
9047 switch (__pyx_nargs) {
9048 case 28:
9049 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
9050 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1067, __pyx_L3_error)
9051 CYTHON_FALLTHROUGH;
9052 case 27:
9053 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
9054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1067, __pyx_L3_error)
9055 CYTHON_FALLTHROUGH;
9056 case 26:
9057 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
9058 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1067, __pyx_L3_error)
9059 CYTHON_FALLTHROUGH;
9060 case 25:
9061 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
9062 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1067, __pyx_L3_error)
9063 CYTHON_FALLTHROUGH;
9064 case 24:
9065 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
9066 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1067, __pyx_L3_error)
9067 CYTHON_FALLTHROUGH;
9068 case 23:
9069 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
9070 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1067, __pyx_L3_error)
9071 CYTHON_FALLTHROUGH;
9072 case 22:
9073 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
9074 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1067, __pyx_L3_error)
9075 CYTHON_FALLTHROUGH;
9076 case 21:
9077 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
9078 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1067, __pyx_L3_error)
9079 CYTHON_FALLTHROUGH;
9080 case 20:
9081 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
9082 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1067, __pyx_L3_error)
9083 CYTHON_FALLTHROUGH;
9084 case 19:
9085 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
9086 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1067, __pyx_L3_error)
9087 CYTHON_FALLTHROUGH;
9088 case 18:
9089 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
9090 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1067, __pyx_L3_error)
9091 CYTHON_FALLTHROUGH;
9092 case 17:
9093 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
9094 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1067, __pyx_L3_error)
9095 CYTHON_FALLTHROUGH;
9096 case 16:
9097 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
9098 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1067, __pyx_L3_error)
9099 CYTHON_FALLTHROUGH;
9100 case 15:
9101 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
9102 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1067, __pyx_L3_error)
9103 CYTHON_FALLTHROUGH;
9104 case 14:
9105 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
9106 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1067, __pyx_L3_error)
9107 CYTHON_FALLTHROUGH;
9108 case 13:
9109 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
9110 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1067, __pyx_L3_error)
9111 CYTHON_FALLTHROUGH;
9112 case 12:
9113 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
9114 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1067, __pyx_L3_error)
9115 CYTHON_FALLTHROUGH;
9116 case 11:
9117 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
9118 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1067, __pyx_L3_error)
9119 CYTHON_FALLTHROUGH;
9120 case 10:
9121 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9122 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1067, __pyx_L3_error)
9123 CYTHON_FALLTHROUGH;
9124 case 9:
9125 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9126 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1067, __pyx_L3_error)
9127 CYTHON_FALLTHROUGH;
9128 case 8:
9129 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9130 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1067, __pyx_L3_error)
9131 CYTHON_FALLTHROUGH;
9132 case 7:
9133 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9134 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1067, __pyx_L3_error)
9135 CYTHON_FALLTHROUGH;
9136 case 6:
9137 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9138 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1067, __pyx_L3_error)
9139 CYTHON_FALLTHROUGH;
9140 case 5:
9141 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9142 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1067, __pyx_L3_error)
9143 CYTHON_FALLTHROUGH;
9144 case 4:
9145 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9146 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1067, __pyx_L3_error)
9147 CYTHON_FALLTHROUGH;
9148 case 3:
9149 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9150 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1067, __pyx_L3_error)
9151 CYTHON_FALLTHROUGH;
9152 case 2:
9153 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9154 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1067, __pyx_L3_error)
9155 CYTHON_FALLTHROUGH;
9156 case 1:
9157 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9158 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1067, __pyx_L3_error)
9159 CYTHON_FALLTHROUGH;
9160 case 0: break;
9161 default: goto __pyx_L5_argtuple_error;
9162 }
9163 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9164 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes3D_GLS_velocity_pressure", 0) < (0)) __PYX_ERR(0, 1067, __pyx_L3_error)
9165 for (Py_ssize_t i = __pyx_nargs; i < 28; i++) {
9166 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_pressure", 1, 28, 28, i); __PYX_ERR(0, 1067, __pyx_L3_error) }
9167 }
9168 } else if (unlikely(__pyx_nargs != 28)) {
9169 goto __pyx_L5_argtuple_error;
9170 } else {
9171 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9172 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1067, __pyx_L3_error)
9173 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9174 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1067, __pyx_L3_error)
9175 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9176 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1067, __pyx_L3_error)
9177 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9178 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1067, __pyx_L3_error)
9179 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9180 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1067, __pyx_L3_error)
9181 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9182 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1067, __pyx_L3_error)
9183 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9184 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1067, __pyx_L3_error)
9185 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9186 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1067, __pyx_L3_error)
9187 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9188 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1067, __pyx_L3_error)
9189 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9190 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1067, __pyx_L3_error)
9191 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
9192 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1067, __pyx_L3_error)
9193 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
9194 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1067, __pyx_L3_error)
9195 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
9196 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1067, __pyx_L3_error)
9197 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
9198 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1067, __pyx_L3_error)
9199 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
9200 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1067, __pyx_L3_error)
9201 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
9202 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1067, __pyx_L3_error)
9203 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
9204 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1067, __pyx_L3_error)
9205 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
9206 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1067, __pyx_L3_error)
9207 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
9208 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1067, __pyx_L3_error)
9209 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
9210 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1067, __pyx_L3_error)
9211 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
9212 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1067, __pyx_L3_error)
9213 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
9214 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1067, __pyx_L3_error)
9215 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
9216 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1067, __pyx_L3_error)
9217 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
9218 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1067, __pyx_L3_error)
9219 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
9220 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1067, __pyx_L3_error)
9221 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
9222 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1067, __pyx_L3_error)
9223 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
9224 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1067, __pyx_L3_error)
9225 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
9226 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1067, __pyx_L3_error)
9227 }
9228 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
9229 __pyx_v_a = ((PyArrayObject *)values[1]);
9230 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
9231 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
9232 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
9233 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[5]);
9234 __pyx_v_pdeResidualU = ((PyArrayObject *)values[6]);
9235 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[7]);
9236 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[8]);
9237 __pyx_v_pdeResidualV = ((PyArrayObject *)values[9]);
9238 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[10]);
9239 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[11]);
9240 __pyx_v_pdeResidualW = ((PyArrayObject *)values[12]);
9241 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[13]);
9242 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[14]);
9243 __pyx_v_subgridErrorP = ((PyArrayObject *)values[15]);
9244 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[16]);
9245 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[17]);
9246 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[18]);
9247 __pyx_v_subgridErrorU = ((PyArrayObject *)values[19]);
9248 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[20]);
9249 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[21]);
9250 __pyx_v_subgridErrorV = ((PyArrayObject *)values[22]);
9251 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[23]);
9252 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[24]);
9253 __pyx_v_subgridErrorW = ((PyArrayObject *)values[25]);
9254 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[26]);
9255 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[27]);
9256 }
9257 goto __pyx_L6_skip;
9258 __pyx_L5_argtuple_error:;
9259 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_pressure", 1, 28, 28, __pyx_nargs); __PYX_ERR(0, 1067, __pyx_L3_error)
9260 __pyx_L6_skip:;
9261 goto __pyx_L4_argument_unpacking_done;
9262 __pyx_L3_error:;
9263 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9264 Py_XDECREF(values[__pyx_temp]);
9265 }
9266 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes3D_GLS_velocity_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
9267 __Pyx_RefNannyFinishContext();
9268 return NULL;
9269 __pyx_L4_argument_unpacking_done:;
9270 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1067, __pyx_L1_error)
9271 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1068, __pyx_L1_error)
9272 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1069, __pyx_L1_error)
9273 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1070, __pyx_L1_error)
9274 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1071, __pyx_L1_error)
9275 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1072, __pyx_L1_error)
9276 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1073, __pyx_L1_error)
9277 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1074, __pyx_L1_error)
9278 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1075, __pyx_L1_error)
9279 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1076, __pyx_L1_error)
9280 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1077, __pyx_L1_error)
9281 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1078, __pyx_L1_error)
9282 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1079, __pyx_L1_error)
9283 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1080, __pyx_L1_error)
9284 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1081, __pyx_L1_error)
9285 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1082, __pyx_L1_error)
9286 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1083, __pyx_L1_error)
9287 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1084, __pyx_L1_error)
9288 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1085, __pyx_L1_error)
9289 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1086, __pyx_L1_error)
9290 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1087, __pyx_L1_error)
9291 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1088, __pyx_L1_error)
9292 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1089, __pyx_L1_error)
9293 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1090, __pyx_L1_error)
9294 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1091, __pyx_L1_error)
9295 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1092, __pyx_L1_error)
9296 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1093, __pyx_L1_error)
9297 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1094, __pyx_L1_error)
9298 __pyx_r = __pyx_pf_13csubgridError_26calculateSubgridErrorStokes3D_GLS_velocity_pressure(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
9299
9300 /* function exit code */
9301 goto __pyx_L0;
9302 __pyx_L1_error:;
9303 __pyx_r = NULL;
9304 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9305 Py_XDECREF(values[__pyx_temp]);
9306 }
9307 goto __pyx_L7_cleaned_up;
9308 __pyx_L0:;
9309 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9310 Py_XDECREF(values[__pyx_temp]);
9311 }
9312 __pyx_L7_cleaned_up:;
9313 __Pyx_RefNannyFinishContext();
9314 return __pyx_r;
9315}
9316
9317static PyObject *__pyx_pf_13csubgridError_26calculateSubgridErrorStokes3D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
9318 PyObject *__pyx_r = NULL;
9319 __Pyx_RefNannyDeclarations
9320 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_pressure", 0);
9321
9322 /* "csubgridError.pyx":1095
9323 * np.ndarray dsubgridErrorW_dp,
9324 * np.ndarray dsubgridErrorW_dw):
9325 * ccalculateSubgridErrorStokes3D_GLS_velocity_pressure(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
9326 * dsubgridErrorP_du.shape[1],
9327 * dsubgridErrorP_du.shape[2],
9328*/
9329 calculateSubgridErrorStokes3D_GLS_velocity_pressure((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
9330
9331 /* "csubgridError.pyx":1067
9332 * <double*> dsubgridErrorV_dp.data,
9333 * <double*> dsubgridErrorV_dv.data)
9334 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
9335 * np.ndarray a,
9336 * np.ndarray pdeResidualP,
9337*/
9338
9339 /* function exit code */
9340 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9341 __Pyx_XGIVEREF(__pyx_r);
9342 __Pyx_RefNannyFinishContext();
9343 return __pyx_r;
9344}
9345
9346/* "csubgridError.pyx":1127
9347 * <double*> dsubgridErrorW_dp.data,
9348 * <double*> dsubgridErrorW_dw.data)
9349 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
9350 * np.ndarray a,
9351 * np.ndarray pdeResidualP,
9352*/
9353
9354/* Python wrapper */
9355static PyObject *__pyx_pw_13csubgridError_29calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
9356#if CYTHON_VECTORCALL
9357PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9358#else
9359PyObject *__pyx_args, PyObject *__pyx_kwds
9360#endif
9361); /*proto*/
9362static PyMethodDef __pyx_mdef_13csubgridError_29calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd = {"calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_29calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9363static PyObject *__pyx_pw_13csubgridError_29calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
9364#if CYTHON_VECTORCALL
9365PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9366#else
9367PyObject *__pyx_args, PyObject *__pyx_kwds
9368#endif
9369) {
9370 PyArrayObject *__pyx_v_elementDiameter = 0;
9371 PyArrayObject *__pyx_v_a = 0;
9372 PyArrayObject *__pyx_v_pdeResidualP = 0;
9373 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
9374 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
9375 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
9376 PyArrayObject *__pyx_v_pdeResidualU = 0;
9377 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
9378 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
9379 PyArrayObject *__pyx_v_pdeResidualV = 0;
9380 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
9381 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
9382 PyArrayObject *__pyx_v_pdeResidualW = 0;
9383 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
9384 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
9385 PyArrayObject *__pyx_v_subgridErrorP = 0;
9386 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
9387 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
9388 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
9389 PyArrayObject *__pyx_v_subgridErrorU = 0;
9390 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
9391 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
9392 PyArrayObject *__pyx_v_subgridErrorV = 0;
9393 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
9394 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
9395 PyArrayObject *__pyx_v_subgridErrorW = 0;
9396 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
9397 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
9398 #if !CYTHON_VECTORCALL
9399 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9400 #endif
9401 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9402 PyObject* values[28] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
9403 int __pyx_lineno = 0;
9404 const char *__pyx_filename = NULL;
9405 int __pyx_clineno = 0;
9406 PyObject *__pyx_r = 0;
9407 __Pyx_RefNannyDeclarations
9408 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd (wrapper)", 0);
9409 #if !CYTHON_VECTORCALL
9410 #if CYTHON_ASSUME_SAFE_SIZE
9411 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9412 #else
9413 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9414 #endif
9415 #endif
9416 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9417 {
9418 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
9419 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9420 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1127, __pyx_L3_error)
9421 if (__pyx_kwds_len > 0) {
9422 switch (__pyx_nargs) {
9423 case 28:
9424 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
9425 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1127, __pyx_L3_error)
9426 CYTHON_FALLTHROUGH;
9427 case 27:
9428 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
9429 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1127, __pyx_L3_error)
9430 CYTHON_FALLTHROUGH;
9431 case 26:
9432 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
9433 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1127, __pyx_L3_error)
9434 CYTHON_FALLTHROUGH;
9435 case 25:
9436 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
9437 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1127, __pyx_L3_error)
9438 CYTHON_FALLTHROUGH;
9439 case 24:
9440 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
9441 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1127, __pyx_L3_error)
9442 CYTHON_FALLTHROUGH;
9443 case 23:
9444 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
9445 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1127, __pyx_L3_error)
9446 CYTHON_FALLTHROUGH;
9447 case 22:
9448 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
9449 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1127, __pyx_L3_error)
9450 CYTHON_FALLTHROUGH;
9451 case 21:
9452 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
9453 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1127, __pyx_L3_error)
9454 CYTHON_FALLTHROUGH;
9455 case 20:
9456 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
9457 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1127, __pyx_L3_error)
9458 CYTHON_FALLTHROUGH;
9459 case 19:
9460 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
9461 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1127, __pyx_L3_error)
9462 CYTHON_FALLTHROUGH;
9463 case 18:
9464 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
9465 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1127, __pyx_L3_error)
9466 CYTHON_FALLTHROUGH;
9467 case 17:
9468 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
9469 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1127, __pyx_L3_error)
9470 CYTHON_FALLTHROUGH;
9471 case 16:
9472 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
9473 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1127, __pyx_L3_error)
9474 CYTHON_FALLTHROUGH;
9475 case 15:
9476 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
9477 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1127, __pyx_L3_error)
9478 CYTHON_FALLTHROUGH;
9479 case 14:
9480 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
9481 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1127, __pyx_L3_error)
9482 CYTHON_FALLTHROUGH;
9483 case 13:
9484 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
9485 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1127, __pyx_L3_error)
9486 CYTHON_FALLTHROUGH;
9487 case 12:
9488 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
9489 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1127, __pyx_L3_error)
9490 CYTHON_FALLTHROUGH;
9491 case 11:
9492 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
9493 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1127, __pyx_L3_error)
9494 CYTHON_FALLTHROUGH;
9495 case 10:
9496 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9497 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1127, __pyx_L3_error)
9498 CYTHON_FALLTHROUGH;
9499 case 9:
9500 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9501 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1127, __pyx_L3_error)
9502 CYTHON_FALLTHROUGH;
9503 case 8:
9504 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9505 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1127, __pyx_L3_error)
9506 CYTHON_FALLTHROUGH;
9507 case 7:
9508 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9509 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1127, __pyx_L3_error)
9510 CYTHON_FALLTHROUGH;
9511 case 6:
9512 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9513 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1127, __pyx_L3_error)
9514 CYTHON_FALLTHROUGH;
9515 case 5:
9516 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9517 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1127, __pyx_L3_error)
9518 CYTHON_FALLTHROUGH;
9519 case 4:
9520 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9521 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1127, __pyx_L3_error)
9522 CYTHON_FALLTHROUGH;
9523 case 3:
9524 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9525 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1127, __pyx_L3_error)
9526 CYTHON_FALLTHROUGH;
9527 case 2:
9528 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9529 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1127, __pyx_L3_error)
9530 CYTHON_FALLTHROUGH;
9531 case 1:
9532 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9533 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1127, __pyx_L3_error)
9534 CYTHON_FALLTHROUGH;
9535 case 0: break;
9536 default: goto __pyx_L5_argtuple_error;
9537 }
9538 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9539 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", 0) < (0)) __PYX_ERR(0, 1127, __pyx_L3_error)
9540 for (Py_ssize_t i = __pyx_nargs; i < 28; i++) {
9541 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", 1, 28, 28, i); __PYX_ERR(0, 1127, __pyx_L3_error) }
9542 }
9543 } else if (unlikely(__pyx_nargs != 28)) {
9544 goto __pyx_L5_argtuple_error;
9545 } else {
9546 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9547 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1127, __pyx_L3_error)
9548 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9549 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1127, __pyx_L3_error)
9550 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9551 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1127, __pyx_L3_error)
9552 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9553 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1127, __pyx_L3_error)
9554 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9555 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1127, __pyx_L3_error)
9556 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9557 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1127, __pyx_L3_error)
9558 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9559 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1127, __pyx_L3_error)
9560 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9561 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1127, __pyx_L3_error)
9562 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9563 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1127, __pyx_L3_error)
9564 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
9565 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1127, __pyx_L3_error)
9566 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
9567 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1127, __pyx_L3_error)
9568 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
9569 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1127, __pyx_L3_error)
9570 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
9571 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1127, __pyx_L3_error)
9572 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
9573 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1127, __pyx_L3_error)
9574 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
9575 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1127, __pyx_L3_error)
9576 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
9577 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1127, __pyx_L3_error)
9578 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
9579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1127, __pyx_L3_error)
9580 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
9581 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1127, __pyx_L3_error)
9582 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
9583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1127, __pyx_L3_error)
9584 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
9585 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1127, __pyx_L3_error)
9586 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
9587 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1127, __pyx_L3_error)
9588 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
9589 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1127, __pyx_L3_error)
9590 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
9591 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1127, __pyx_L3_error)
9592 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
9593 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1127, __pyx_L3_error)
9594 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
9595 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1127, __pyx_L3_error)
9596 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
9597 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1127, __pyx_L3_error)
9598 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
9599 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1127, __pyx_L3_error)
9600 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
9601 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1127, __pyx_L3_error)
9602 }
9603 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
9604 __pyx_v_a = ((PyArrayObject *)values[1]);
9605 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
9606 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
9607 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
9608 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[5]);
9609 __pyx_v_pdeResidualU = ((PyArrayObject *)values[6]);
9610 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[7]);
9611 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[8]);
9612 __pyx_v_pdeResidualV = ((PyArrayObject *)values[9]);
9613 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[10]);
9614 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[11]);
9615 __pyx_v_pdeResidualW = ((PyArrayObject *)values[12]);
9616 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[13]);
9617 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[14]);
9618 __pyx_v_subgridErrorP = ((PyArrayObject *)values[15]);
9619 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[16]);
9620 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[17]);
9621 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[18]);
9622 __pyx_v_subgridErrorU = ((PyArrayObject *)values[19]);
9623 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[20]);
9624 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[21]);
9625 __pyx_v_subgridErrorV = ((PyArrayObject *)values[22]);
9626 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[23]);
9627 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[24]);
9628 __pyx_v_subgridErrorW = ((PyArrayObject *)values[25]);
9629 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[26]);
9630 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[27]);
9631 }
9632 goto __pyx_L6_skip;
9633 __pyx_L5_argtuple_error:;
9634 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", 1, 28, 28, __pyx_nargs); __PYX_ERR(0, 1127, __pyx_L3_error)
9635 __pyx_L6_skip:;
9636 goto __pyx_L4_argument_unpacking_done;
9637 __pyx_L3_error:;
9638 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9639 Py_XDECREF(values[__pyx_temp]);
9640 }
9641 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
9642 __Pyx_RefNannyFinishContext();
9643 return NULL;
9644 __pyx_L4_argument_unpacking_done:;
9645 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
9646 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1128, __pyx_L1_error)
9647 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1129, __pyx_L1_error)
9648 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1130, __pyx_L1_error)
9649 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1131, __pyx_L1_error)
9650 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1132, __pyx_L1_error)
9651 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1133, __pyx_L1_error)
9652 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1134, __pyx_L1_error)
9653 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1135, __pyx_L1_error)
9654 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1136, __pyx_L1_error)
9655 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1137, __pyx_L1_error)
9656 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1138, __pyx_L1_error)
9657 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1139, __pyx_L1_error)
9658 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1140, __pyx_L1_error)
9659 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1141, __pyx_L1_error)
9660 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1142, __pyx_L1_error)
9661 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1143, __pyx_L1_error)
9662 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1144, __pyx_L1_error)
9663 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1145, __pyx_L1_error)
9664 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1146, __pyx_L1_error)
9665 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1147, __pyx_L1_error)
9666 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1148, __pyx_L1_error)
9667 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1149, __pyx_L1_error)
9668 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1150, __pyx_L1_error)
9669 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1151, __pyx_L1_error)
9670 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1152, __pyx_L1_error)
9671 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1153, __pyx_L1_error)
9672 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1154, __pyx_L1_error)
9673 __pyx_r = __pyx_pf_13csubgridError_28calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
9674
9675 /* function exit code */
9676 goto __pyx_L0;
9677 __pyx_L1_error:;
9678 __pyx_r = NULL;
9679 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9680 Py_XDECREF(values[__pyx_temp]);
9681 }
9682 goto __pyx_L7_cleaned_up;
9683 __pyx_L0:;
9684 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9685 Py_XDECREF(values[__pyx_temp]);
9686 }
9687 __pyx_L7_cleaned_up:;
9688 __Pyx_RefNannyFinishContext();
9689 return __pyx_r;
9690}
9691
9692static PyObject *__pyx_pf_13csubgridError_28calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
9693 PyObject *__pyx_r = NULL;
9694 __Pyx_RefNannyDeclarations
9695 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd", 0);
9696
9697 /* "csubgridError.pyx":1155
9698 * np.ndarray dsubgridErrorW_dp,
9699 * np.ndarray dsubgridErrorW_dw):
9700 * ccalculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
9701 * dsubgridErrorP_du.shape[1],
9702 * dsubgridErrorP_du.shape[2],
9703*/
9704 calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
9705
9706 /* "csubgridError.pyx":1127
9707 * <double*> dsubgridErrorW_dp.data,
9708 * <double*> dsubgridErrorW_dw.data)
9709 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
9710 * np.ndarray a,
9711 * np.ndarray pdeResidualP,
9712*/
9713
9714 /* function exit code */
9715 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9716 __Pyx_XGIVEREF(__pyx_r);
9717 __Pyx_RefNannyFinishContext();
9718 return __pyx_r;
9719}
9720
9721/* "csubgridError.pyx":1187
9722 * <double*> dsubgridErrorW_dp.data,
9723 * <double*> dsubgridErrorW_dw.data)
9724 * def calculateSubgridErrorNavierStokes2D_GLS_tau(double hFactor, # <<<<<<<<<<<<<<
9725 * np.ndarray elementDiameter,
9726 * np.ndarray dmt,
9727*/
9728
9729/* Python wrapper */
9730static PyObject *__pyx_pw_13csubgridError_31calculateSubgridErrorNavierStokes2D_GLS_tau(PyObject *__pyx_self,
9731#if CYTHON_VECTORCALL
9732PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9733#else
9734PyObject *__pyx_args, PyObject *__pyx_kwds
9735#endif
9736); /*proto*/
9737static PyMethodDef __pyx_mdef_13csubgridError_31calculateSubgridErrorNavierStokes2D_GLS_tau = {"calculateSubgridErrorNavierStokes2D_GLS_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_31calculateSubgridErrorNavierStokes2D_GLS_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9738static PyObject *__pyx_pw_13csubgridError_31calculateSubgridErrorNavierStokes2D_GLS_tau(PyObject *__pyx_self,
9739#if CYTHON_VECTORCALL
9740PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9741#else
9742PyObject *__pyx_args, PyObject *__pyx_kwds
9743#endif
9744) {
9745 double __pyx_v_hFactor;
9746 PyArrayObject *__pyx_v_elementDiameter = 0;
9747 PyArrayObject *__pyx_v_dmt = 0;
9748 PyArrayObject *__pyx_v_dm = 0;
9749 PyArrayObject *__pyx_v_f = 0;
9750 PyArrayObject *__pyx_v_a = 0;
9751 PyArrayObject *__pyx_v_tau0 = 0;
9752 PyArrayObject *__pyx_v_tau1 = 0;
9753 PyArrayObject *__pyx_v_cfl = 0;
9754 #if !CYTHON_VECTORCALL
9755 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9756 #endif
9757 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9758 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
9759 int __pyx_lineno = 0;
9760 const char *__pyx_filename = NULL;
9761 int __pyx_clineno = 0;
9762 PyObject *__pyx_r = 0;
9763 __Pyx_RefNannyDeclarations
9764 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tau (wrapper)", 0);
9765 #if !CYTHON_VECTORCALL
9766 #if CYTHON_ASSUME_SAFE_SIZE
9767 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9768 #else
9769 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9770 #endif
9771 #endif
9772 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9773 {
9774 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_hFactor,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
9775 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9776 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1187, __pyx_L3_error)
9777 if (__pyx_kwds_len > 0) {
9778 switch (__pyx_nargs) {
9779 case 9:
9780 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9781 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1187, __pyx_L3_error)
9782 CYTHON_FALLTHROUGH;
9783 case 8:
9784 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9785 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1187, __pyx_L3_error)
9786 CYTHON_FALLTHROUGH;
9787 case 7:
9788 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9789 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1187, __pyx_L3_error)
9790 CYTHON_FALLTHROUGH;
9791 case 6:
9792 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9793 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1187, __pyx_L3_error)
9794 CYTHON_FALLTHROUGH;
9795 case 5:
9796 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9797 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1187, __pyx_L3_error)
9798 CYTHON_FALLTHROUGH;
9799 case 4:
9800 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9801 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1187, __pyx_L3_error)
9802 CYTHON_FALLTHROUGH;
9803 case 3:
9804 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9805 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1187, __pyx_L3_error)
9806 CYTHON_FALLTHROUGH;
9807 case 2:
9808 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9809 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1187, __pyx_L3_error)
9810 CYTHON_FALLTHROUGH;
9811 case 1:
9812 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9813 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1187, __pyx_L3_error)
9814 CYTHON_FALLTHROUGH;
9815 case 0: break;
9816 default: goto __pyx_L5_argtuple_error;
9817 }
9818 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9819 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_GLS_tau", 0) < (0)) __PYX_ERR(0, 1187, __pyx_L3_error)
9820 for (Py_ssize_t i = __pyx_nargs; i < 9; i++) {
9821 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tau", 1, 9, 9, i); __PYX_ERR(0, 1187, __pyx_L3_error) }
9822 }
9823 } else if (unlikely(__pyx_nargs != 9)) {
9824 goto __pyx_L5_argtuple_error;
9825 } else {
9826 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9827 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1187, __pyx_L3_error)
9828 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9829 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1187, __pyx_L3_error)
9830 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9831 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1187, __pyx_L3_error)
9832 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9833 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1187, __pyx_L3_error)
9834 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
9835 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1187, __pyx_L3_error)
9836 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9837 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1187, __pyx_L3_error)
9838 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9839 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1187, __pyx_L3_error)
9840 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9841 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1187, __pyx_L3_error)
9842 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9843 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1187, __pyx_L3_error)
9844 }
9845 __pyx_v_hFactor = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_hFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1187, __pyx_L3_error)
9846 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
9847 __pyx_v_dmt = ((PyArrayObject *)values[2]);
9848 __pyx_v_dm = ((PyArrayObject *)values[3]);
9849 __pyx_v_f = ((PyArrayObject *)values[4]);
9850 __pyx_v_a = ((PyArrayObject *)values[5]);
9851 __pyx_v_tau0 = ((PyArrayObject *)values[6]);
9852 __pyx_v_tau1 = ((PyArrayObject *)values[7]);
9853 __pyx_v_cfl = ((PyArrayObject *)values[8]);
9854 }
9855 goto __pyx_L6_skip;
9856 __pyx_L5_argtuple_error:;
9857 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tau", 1, 9, 9, __pyx_nargs); __PYX_ERR(0, 1187, __pyx_L3_error)
9858 __pyx_L6_skip:;
9859 goto __pyx_L4_argument_unpacking_done;
9860 __pyx_L3_error:;
9861 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9862 Py_XDECREF(values[__pyx_temp]);
9863 }
9864 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_GLS_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
9865 __Pyx_RefNannyFinishContext();
9866 return NULL;
9867 __pyx_L4_argument_unpacking_done:;
9868 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1188, __pyx_L1_error)
9869 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1189, __pyx_L1_error)
9870 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1190, __pyx_L1_error)
9871 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1191, __pyx_L1_error)
9872 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1192, __pyx_L1_error)
9873 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1193, __pyx_L1_error)
9874 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1194, __pyx_L1_error)
9875 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1195, __pyx_L1_error)
9876 __pyx_r = __pyx_pf_13csubgridError_30calculateSubgridErrorNavierStokes2D_GLS_tau(__pyx_self, __pyx_v_hFactor, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
9877
9878 /* function exit code */
9879 goto __pyx_L0;
9880 __pyx_L1_error:;
9881 __pyx_r = NULL;
9882 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9883 Py_XDECREF(values[__pyx_temp]);
9884 }
9885 goto __pyx_L7_cleaned_up;
9886 __pyx_L0:;
9887 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9888 Py_XDECREF(values[__pyx_temp]);
9889 }
9890 __pyx_L7_cleaned_up:;
9891
9892 __Pyx_RefNannyFinishContext();
9893 return __pyx_r;
9894}
9895
9896static PyObject *__pyx_pf_13csubgridError_30calculateSubgridErrorNavierStokes2D_GLS_tau(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_hFactor, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
9897 PyObject *__pyx_r = NULL;
9898 __Pyx_RefNannyDeclarations
9899 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tau", 0);
9900
9901 /* "csubgridError.pyx":1196
9902 * np.ndarray tau1,
9903 * np.ndarray cfl):
9904 * ccalculateSubgridErrorNavierStokes2D_GLS_tau(f.shape[0], # <<<<<<<<<<<<<<
9905 * f.shape[1],
9906 * f.shape[2],
9907*/
9908 calculateSubgridErrorNavierStokes2D_GLS_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), __pyx_v_hFactor, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
9909
9910 /* "csubgridError.pyx":1187
9911 * <double*> dsubgridErrorW_dp.data,
9912 * <double*> dsubgridErrorW_dw.data)
9913 * def calculateSubgridErrorNavierStokes2D_GLS_tau(double hFactor, # <<<<<<<<<<<<<<
9914 * np.ndarray elementDiameter,
9915 * np.ndarray dmt,
9916*/
9917
9918 /* function exit code */
9919 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9920 __Pyx_XGIVEREF(__pyx_r);
9921 __Pyx_RefNannyFinishContext();
9922 return __pyx_r;
9923}
9924
9925/* "csubgridError.pyx":1208
9926 * <double*> tau1.data,
9927 * <double*> cfl.data)
9928 * def calculateSubgridErrorNavierStokes2D_GLS_tau_sd(double hFactor, # <<<<<<<<<<<<<<
9929 * np.ndarray elementDiameter,
9930 * np.ndarray dmt,
9931*/
9932
9933/* Python wrapper */
9934static PyObject *__pyx_pw_13csubgridError_33calculateSubgridErrorNavierStokes2D_GLS_tau_sd(PyObject *__pyx_self,
9935#if CYTHON_VECTORCALL
9936PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9937#else
9938PyObject *__pyx_args, PyObject *__pyx_kwds
9939#endif
9940); /*proto*/
9941static PyMethodDef __pyx_mdef_13csubgridError_33calculateSubgridErrorNavierStokes2D_GLS_tau_sd = {"calculateSubgridErrorNavierStokes2D_GLS_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_33calculateSubgridErrorNavierStokes2D_GLS_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9942static PyObject *__pyx_pw_13csubgridError_33calculateSubgridErrorNavierStokes2D_GLS_tau_sd(PyObject *__pyx_self,
9943#if CYTHON_VECTORCALL
9944PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9945#else
9946PyObject *__pyx_args, PyObject *__pyx_kwds
9947#endif
9948) {
9949 double __pyx_v_hFactor;
9950 PyArrayObject *__pyx_v_elementDiameter = 0;
9951 PyArrayObject *__pyx_v_dmt = 0;
9952 PyArrayObject *__pyx_v_dm = 0;
9953 PyArrayObject *__pyx_v_f = 0;
9954 PyArrayObject *__pyx_v_a = 0;
9955 PyArrayObject *__pyx_v_tau0 = 0;
9956 PyArrayObject *__pyx_v_tau1 = 0;
9957 PyArrayObject *__pyx_v_cfl = 0;
9958 #if !CYTHON_VECTORCALL
9959 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9960 #endif
9961 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9962 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
9963 int __pyx_lineno = 0;
9964 const char *__pyx_filename = NULL;
9965 int __pyx_clineno = 0;
9966 PyObject *__pyx_r = 0;
9967 __Pyx_RefNannyDeclarations
9968 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tau_sd (wrapper)", 0);
9969 #if !CYTHON_VECTORCALL
9970 #if CYTHON_ASSUME_SAFE_SIZE
9971 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9972 #else
9973 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9974 #endif
9975 #endif
9976 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9977 {
9978 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_hFactor,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
9979 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9980 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1208, __pyx_L3_error)
9981 if (__pyx_kwds_len > 0) {
9982 switch (__pyx_nargs) {
9983 case 9:
9984 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
9985 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1208, __pyx_L3_error)
9986 CYTHON_FALLTHROUGH;
9987 case 8:
9988 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
9989 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1208, __pyx_L3_error)
9990 CYTHON_FALLTHROUGH;
9991 case 7:
9992 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
9993 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1208, __pyx_L3_error)
9994 CYTHON_FALLTHROUGH;
9995 case 6:
9996 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
9997 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1208, __pyx_L3_error)
9998 CYTHON_FALLTHROUGH;
9999 case 5:
10000 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10001 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1208, __pyx_L3_error)
10002 CYTHON_FALLTHROUGH;
10003 case 4:
10004 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10005 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1208, __pyx_L3_error)
10006 CYTHON_FALLTHROUGH;
10007 case 3:
10008 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10009 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1208, __pyx_L3_error)
10010 CYTHON_FALLTHROUGH;
10011 case 2:
10012 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10013 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1208, __pyx_L3_error)
10014 CYTHON_FALLTHROUGH;
10015 case 1:
10016 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10017 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1208, __pyx_L3_error)
10018 CYTHON_FALLTHROUGH;
10019 case 0: break;
10020 default: goto __pyx_L5_argtuple_error;
10021 }
10022 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10023 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_GLS_tau_sd", 0) < (0)) __PYX_ERR(0, 1208, __pyx_L3_error)
10024 for (Py_ssize_t i = __pyx_nargs; i < 9; i++) {
10025 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tau_sd", 1, 9, 9, i); __PYX_ERR(0, 1208, __pyx_L3_error) }
10026 }
10027 } else if (unlikely(__pyx_nargs != 9)) {
10028 goto __pyx_L5_argtuple_error;
10029 } else {
10030 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10031 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1208, __pyx_L3_error)
10032 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10033 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1208, __pyx_L3_error)
10034 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10035 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1208, __pyx_L3_error)
10036 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10037 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1208, __pyx_L3_error)
10038 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10039 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1208, __pyx_L3_error)
10040 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10041 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1208, __pyx_L3_error)
10042 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10043 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1208, __pyx_L3_error)
10044 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10045 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1208, __pyx_L3_error)
10046 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
10047 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1208, __pyx_L3_error)
10048 }
10049 __pyx_v_hFactor = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_hFactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1208, __pyx_L3_error)
10050 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
10051 __pyx_v_dmt = ((PyArrayObject *)values[2]);
10052 __pyx_v_dm = ((PyArrayObject *)values[3]);
10053 __pyx_v_f = ((PyArrayObject *)values[4]);
10054 __pyx_v_a = ((PyArrayObject *)values[5]);
10055 __pyx_v_tau0 = ((PyArrayObject *)values[6]);
10056 __pyx_v_tau1 = ((PyArrayObject *)values[7]);
10057 __pyx_v_cfl = ((PyArrayObject *)values[8]);
10058 }
10059 goto __pyx_L6_skip;
10060 __pyx_L5_argtuple_error:;
10061 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tau_sd", 1, 9, 9, __pyx_nargs); __PYX_ERR(0, 1208, __pyx_L3_error)
10062 __pyx_L6_skip:;
10063 goto __pyx_L4_argument_unpacking_done;
10064 __pyx_L3_error:;
10065 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10066 Py_XDECREF(values[__pyx_temp]);
10067 }
10068 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_GLS_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10069 __Pyx_RefNannyFinishContext();
10070 return NULL;
10071 __pyx_L4_argument_unpacking_done:;
10072 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1209, __pyx_L1_error)
10073 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1210, __pyx_L1_error)
10074 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1211, __pyx_L1_error)
10075 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1212, __pyx_L1_error)
10076 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1213, __pyx_L1_error)
10077 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1214, __pyx_L1_error)
10078 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1215, __pyx_L1_error)
10079 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1216, __pyx_L1_error)
10080 __pyx_r = __pyx_pf_13csubgridError_32calculateSubgridErrorNavierStokes2D_GLS_tau_sd(__pyx_self, __pyx_v_hFactor, __pyx_v_elementDiameter, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
10081
10082 /* function exit code */
10083 goto __pyx_L0;
10084 __pyx_L1_error:;
10085 __pyx_r = NULL;
10086 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10087 Py_XDECREF(values[__pyx_temp]);
10088 }
10089 goto __pyx_L7_cleaned_up;
10090 __pyx_L0:;
10091 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10092 Py_XDECREF(values[__pyx_temp]);
10093 }
10094 __pyx_L7_cleaned_up:;
10095
10096 __Pyx_RefNannyFinishContext();
10097 return __pyx_r;
10098}
10099
10100static PyObject *__pyx_pf_13csubgridError_32calculateSubgridErrorNavierStokes2D_GLS_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_hFactor, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
10101 PyObject *__pyx_r = NULL;
10102 __Pyx_RefNannyDeclarations
10103 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tau_sd", 0);
10104
10105 /* "csubgridError.pyx":1217
10106 * np.ndarray tau1,
10107 * np.ndarray cfl):
10108 * ccalculateSubgridErrorNavierStokes2D_GLS_tau_sd(f.shape[0], # <<<<<<<<<<<<<<
10109 * f.shape[1],
10110 * f.shape[2],
10111*/
10112 calculateSubgridErrorNavierStokes2D_GLS_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), __pyx_v_hFactor, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
10113
10114 /* "csubgridError.pyx":1208
10115 * <double*> tau1.data,
10116 * <double*> cfl.data)
10117 * def calculateSubgridErrorNavierStokes2D_GLS_tau_sd(double hFactor, # <<<<<<<<<<<<<<
10118 * np.ndarray elementDiameter,
10119 * np.ndarray dmt,
10120*/
10121
10122 /* function exit code */
10123 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10124 __Pyx_XGIVEREF(__pyx_r);
10125 __Pyx_RefNannyFinishContext();
10126 return __pyx_r;
10127}
10128
10129/* "csubgridError.pyx":1229
10130 * <double*> tau1.data,
10131 * <double*> cfl.data)
10132 * def calculateSubgridErrorNavierStokes2D_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10133 * np.ndarray dmt,
10134 * np.ndarray dm,
10135*/
10136
10137/* Python wrapper */
10138static PyObject *__pyx_pw_13csubgridError_35calculateSubgridErrorNavierStokes2D_generic_tau(PyObject *__pyx_self,
10139#if CYTHON_VECTORCALL
10140PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10141#else
10142PyObject *__pyx_args, PyObject *__pyx_kwds
10143#endif
10144); /*proto*/
10145static PyMethodDef __pyx_mdef_13csubgridError_35calculateSubgridErrorNavierStokes2D_generic_tau = {"calculateSubgridErrorNavierStokes2D_generic_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_35calculateSubgridErrorNavierStokes2D_generic_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10146static PyObject *__pyx_pw_13csubgridError_35calculateSubgridErrorNavierStokes2D_generic_tau(PyObject *__pyx_self,
10147#if CYTHON_VECTORCALL
10148PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10149#else
10150PyObject *__pyx_args, PyObject *__pyx_kwds
10151#endif
10152) {
10153 PyArrayObject *__pyx_v_inverseJ = 0;
10154 PyArrayObject *__pyx_v_dmt = 0;
10155 PyArrayObject *__pyx_v_dm = 0;
10156 PyArrayObject *__pyx_v_f = 0;
10157 PyArrayObject *__pyx_v_a = 0;
10158 PyArrayObject *__pyx_v_tau0 = 0;
10159 PyArrayObject *__pyx_v_tau1 = 0;
10160 PyArrayObject *__pyx_v_cfl = 0;
10161 #if !CYTHON_VECTORCALL
10162 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10163 #endif
10164 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10165 PyObject* values[8] = {0,0,0,0,0,0,0,0};
10166 int __pyx_lineno = 0;
10167 const char *__pyx_filename = NULL;
10168 int __pyx_clineno = 0;
10169 PyObject *__pyx_r = 0;
10170 __Pyx_RefNannyDeclarations
10171 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_tau (wrapper)", 0);
10172 #if !CYTHON_VECTORCALL
10173 #if CYTHON_ASSUME_SAFE_SIZE
10174 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10175 #else
10176 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10177 #endif
10178 #endif
10179 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10180 {
10181 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
10182 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10183 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
10184 if (__pyx_kwds_len > 0) {
10185 switch (__pyx_nargs) {
10186 case 8:
10187 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10188 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1229, __pyx_L3_error)
10189 CYTHON_FALLTHROUGH;
10190 case 7:
10191 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10192 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1229, __pyx_L3_error)
10193 CYTHON_FALLTHROUGH;
10194 case 6:
10195 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10196 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1229, __pyx_L3_error)
10197 CYTHON_FALLTHROUGH;
10198 case 5:
10199 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10200 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1229, __pyx_L3_error)
10201 CYTHON_FALLTHROUGH;
10202 case 4:
10203 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10204 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1229, __pyx_L3_error)
10205 CYTHON_FALLTHROUGH;
10206 case 3:
10207 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10208 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1229, __pyx_L3_error)
10209 CYTHON_FALLTHROUGH;
10210 case 2:
10211 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10212 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1229, __pyx_L3_error)
10213 CYTHON_FALLTHROUGH;
10214 case 1:
10215 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10216 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1229, __pyx_L3_error)
10217 CYTHON_FALLTHROUGH;
10218 case 0: break;
10219 default: goto __pyx_L5_argtuple_error;
10220 }
10221 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10222 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_generic_tau", 0) < (0)) __PYX_ERR(0, 1229, __pyx_L3_error)
10223 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
10224 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_tau", 1, 8, 8, i); __PYX_ERR(0, 1229, __pyx_L3_error) }
10225 }
10226 } else if (unlikely(__pyx_nargs != 8)) {
10227 goto __pyx_L5_argtuple_error;
10228 } else {
10229 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10230 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1229, __pyx_L3_error)
10231 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10232 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1229, __pyx_L3_error)
10233 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10234 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1229, __pyx_L3_error)
10235 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10236 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1229, __pyx_L3_error)
10237 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10238 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1229, __pyx_L3_error)
10239 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10240 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1229, __pyx_L3_error)
10241 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10242 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1229, __pyx_L3_error)
10243 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10244 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1229, __pyx_L3_error)
10245 }
10246 __pyx_v_inverseJ = ((PyArrayObject *)values[0]);
10247 __pyx_v_dmt = ((PyArrayObject *)values[1]);
10248 __pyx_v_dm = ((PyArrayObject *)values[2]);
10249 __pyx_v_f = ((PyArrayObject *)values[3]);
10250 __pyx_v_a = ((PyArrayObject *)values[4]);
10251 __pyx_v_tau0 = ((PyArrayObject *)values[5]);
10252 __pyx_v_tau1 = ((PyArrayObject *)values[6]);
10253 __pyx_v_cfl = ((PyArrayObject *)values[7]);
10254 }
10255 goto __pyx_L6_skip;
10256 __pyx_L5_argtuple_error:;
10257 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_tau", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 1229, __pyx_L3_error)
10258 __pyx_L6_skip:;
10259 goto __pyx_L4_argument_unpacking_done;
10260 __pyx_L3_error:;
10261 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10262 Py_XDECREF(values[__pyx_temp]);
10263 }
10264 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_generic_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
10265 __Pyx_RefNannyFinishContext();
10266 return NULL;
10267 __pyx_L4_argument_unpacking_done:;
10268 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 1229, __pyx_L1_error)
10269 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1230, __pyx_L1_error)
10270 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1231, __pyx_L1_error)
10271 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1232, __pyx_L1_error)
10272 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1233, __pyx_L1_error)
10273 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1234, __pyx_L1_error)
10274 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1235, __pyx_L1_error)
10275 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1236, __pyx_L1_error)
10276 __pyx_r = __pyx_pf_13csubgridError_34calculateSubgridErrorNavierStokes2D_generic_tau(__pyx_self, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
10277
10278 /* function exit code */
10279 goto __pyx_L0;
10280 __pyx_L1_error:;
10281 __pyx_r = NULL;
10282 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10283 Py_XDECREF(values[__pyx_temp]);
10284 }
10285 goto __pyx_L7_cleaned_up;
10286 __pyx_L0:;
10287 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10288 Py_XDECREF(values[__pyx_temp]);
10289 }
10290 __pyx_L7_cleaned_up:;
10291 __Pyx_RefNannyFinishContext();
10292 return __pyx_r;
10293}
10294
10295static PyObject *__pyx_pf_13csubgridError_34calculateSubgridErrorNavierStokes2D_generic_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
10296 PyObject *__pyx_r = NULL;
10297 __Pyx_RefNannyDeclarations
10298 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_tau", 0);
10299
10300 /* "csubgridError.pyx":1237
10301 * np.ndarray tau1,
10302 * np.ndarray cfl):
10303 * ccalculateSubgridErrorNavierStokes2D_generic_tau(f.shape[0], # <<<<<<<<<<<<<<
10304 * f.shape[1],
10305 * f.shape[2],
10306*/
10307 calculateSubgridErrorNavierStokes2D_generic_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
10308
10309 /* "csubgridError.pyx":1229
10310 * <double*> tau1.data,
10311 * <double*> cfl.data)
10312 * def calculateSubgridErrorNavierStokes2D_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10313 * np.ndarray dmt,
10314 * np.ndarray dm,
10315*/
10316
10317 /* function exit code */
10318 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10319 __Pyx_XGIVEREF(__pyx_r);
10320 __Pyx_RefNannyFinishContext();
10321 return __pyx_r;
10322}
10323
10324/* "csubgridError.pyx":1248
10325 * <double*> tau1.data,
10326 * <double*> cfl.data)
10327 * def calculateSubgridErrorNavierStokes2D_generic_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10328 * np.ndarray dmt,
10329 * np.ndarray dm,
10330*/
10331
10332/* Python wrapper */
10333static PyObject *__pyx_pw_13csubgridError_37calculateSubgridErrorNavierStokes2D_generic_tau_sd(PyObject *__pyx_self,
10334#if CYTHON_VECTORCALL
10335PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10336#else
10337PyObject *__pyx_args, PyObject *__pyx_kwds
10338#endif
10339); /*proto*/
10340static PyMethodDef __pyx_mdef_13csubgridError_37calculateSubgridErrorNavierStokes2D_generic_tau_sd = {"calculateSubgridErrorNavierStokes2D_generic_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_37calculateSubgridErrorNavierStokes2D_generic_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10341static PyObject *__pyx_pw_13csubgridError_37calculateSubgridErrorNavierStokes2D_generic_tau_sd(PyObject *__pyx_self,
10342#if CYTHON_VECTORCALL
10343PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10344#else
10345PyObject *__pyx_args, PyObject *__pyx_kwds
10346#endif
10347) {
10348 PyArrayObject *__pyx_v_inverseJ = 0;
10349 PyArrayObject *__pyx_v_dmt = 0;
10350 PyArrayObject *__pyx_v_dm = 0;
10351 PyArrayObject *__pyx_v_f = 0;
10352 PyArrayObject *__pyx_v_a = 0;
10353 PyArrayObject *__pyx_v_tau0 = 0;
10354 PyArrayObject *__pyx_v_tau1 = 0;
10355 PyArrayObject *__pyx_v_cfl = 0;
10356 #if !CYTHON_VECTORCALL
10357 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10358 #endif
10359 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10360 PyObject* values[8] = {0,0,0,0,0,0,0,0};
10361 int __pyx_lineno = 0;
10362 const char *__pyx_filename = NULL;
10363 int __pyx_clineno = 0;
10364 PyObject *__pyx_r = 0;
10365 __Pyx_RefNannyDeclarations
10366 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_tau_sd (wrapper)", 0);
10367 #if !CYTHON_VECTORCALL
10368 #if CYTHON_ASSUME_SAFE_SIZE
10369 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10370 #else
10371 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10372 #endif
10373 #endif
10374 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10375 {
10376 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
10377 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10378 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1248, __pyx_L3_error)
10379 if (__pyx_kwds_len > 0) {
10380 switch (__pyx_nargs) {
10381 case 8:
10382 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10383 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1248, __pyx_L3_error)
10384 CYTHON_FALLTHROUGH;
10385 case 7:
10386 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10387 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1248, __pyx_L3_error)
10388 CYTHON_FALLTHROUGH;
10389 case 6:
10390 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10391 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1248, __pyx_L3_error)
10392 CYTHON_FALLTHROUGH;
10393 case 5:
10394 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10395 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1248, __pyx_L3_error)
10396 CYTHON_FALLTHROUGH;
10397 case 4:
10398 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10399 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1248, __pyx_L3_error)
10400 CYTHON_FALLTHROUGH;
10401 case 3:
10402 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10403 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1248, __pyx_L3_error)
10404 CYTHON_FALLTHROUGH;
10405 case 2:
10406 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10407 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1248, __pyx_L3_error)
10408 CYTHON_FALLTHROUGH;
10409 case 1:
10410 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10411 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1248, __pyx_L3_error)
10412 CYTHON_FALLTHROUGH;
10413 case 0: break;
10414 default: goto __pyx_L5_argtuple_error;
10415 }
10416 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10417 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_generic_tau_sd", 0) < (0)) __PYX_ERR(0, 1248, __pyx_L3_error)
10418 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
10419 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_tau_sd", 1, 8, 8, i); __PYX_ERR(0, 1248, __pyx_L3_error) }
10420 }
10421 } else if (unlikely(__pyx_nargs != 8)) {
10422 goto __pyx_L5_argtuple_error;
10423 } else {
10424 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10425 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1248, __pyx_L3_error)
10426 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10427 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1248, __pyx_L3_error)
10428 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10429 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1248, __pyx_L3_error)
10430 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10431 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1248, __pyx_L3_error)
10432 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10433 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1248, __pyx_L3_error)
10434 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10435 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1248, __pyx_L3_error)
10436 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10437 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1248, __pyx_L3_error)
10438 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10439 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1248, __pyx_L3_error)
10440 }
10441 __pyx_v_inverseJ = ((PyArrayObject *)values[0]);
10442 __pyx_v_dmt = ((PyArrayObject *)values[1]);
10443 __pyx_v_dm = ((PyArrayObject *)values[2]);
10444 __pyx_v_f = ((PyArrayObject *)values[3]);
10445 __pyx_v_a = ((PyArrayObject *)values[4]);
10446 __pyx_v_tau0 = ((PyArrayObject *)values[5]);
10447 __pyx_v_tau1 = ((PyArrayObject *)values[6]);
10448 __pyx_v_cfl = ((PyArrayObject *)values[7]);
10449 }
10450 goto __pyx_L6_skip;
10451 __pyx_L5_argtuple_error:;
10452 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_tau_sd", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 1248, __pyx_L3_error)
10453 __pyx_L6_skip:;
10454 goto __pyx_L4_argument_unpacking_done;
10455 __pyx_L3_error:;
10456 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10457 Py_XDECREF(values[__pyx_temp]);
10458 }
10459 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_generic_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10460 __Pyx_RefNannyFinishContext();
10461 return NULL;
10462 __pyx_L4_argument_unpacking_done:;
10463 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 1248, __pyx_L1_error)
10464 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1249, __pyx_L1_error)
10465 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1250, __pyx_L1_error)
10466 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1251, __pyx_L1_error)
10467 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1252, __pyx_L1_error)
10468 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1253, __pyx_L1_error)
10469 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1254, __pyx_L1_error)
10470 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1255, __pyx_L1_error)
10471 __pyx_r = __pyx_pf_13csubgridError_36calculateSubgridErrorNavierStokes2D_generic_tau_sd(__pyx_self, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
10472
10473 /* function exit code */
10474 goto __pyx_L0;
10475 __pyx_L1_error:;
10476 __pyx_r = NULL;
10477 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10478 Py_XDECREF(values[__pyx_temp]);
10479 }
10480 goto __pyx_L7_cleaned_up;
10481 __pyx_L0:;
10482 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10483 Py_XDECREF(values[__pyx_temp]);
10484 }
10485 __pyx_L7_cleaned_up:;
10486 __Pyx_RefNannyFinishContext();
10487 return __pyx_r;
10488}
10489
10490static PyObject *__pyx_pf_13csubgridError_36calculateSubgridErrorNavierStokes2D_generic_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
10491 PyObject *__pyx_r = NULL;
10492 __Pyx_RefNannyDeclarations
10493 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_tau_sd", 0);
10494
10495 /* "csubgridError.pyx":1256
10496 * np.ndarray tau1,
10497 * np.ndarray cfl):
10498 * ccalculateSubgridErrorNavierStokes2D_generic_tau_sd(f.shape[0], # <<<<<<<<<<<<<<
10499 * f.shape[1],
10500 * f.shape[2],
10501*/
10502 calculateSubgridErrorNavierStokes2D_generic_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
10503
10504 /* "csubgridError.pyx":1248
10505 * <double*> tau1.data,
10506 * <double*> cfl.data)
10507 * def calculateSubgridErrorNavierStokes2D_generic_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10508 * np.ndarray dmt,
10509 * np.ndarray dm,
10510*/
10511
10512 /* function exit code */
10513 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10514 __Pyx_XGIVEREF(__pyx_r);
10515 __Pyx_RefNannyFinishContext();
10516 return __pyx_r;
10517}
10518
10519/* "csubgridError.pyx":1267
10520 * <double*> tau1.data,
10521 * <double*> cfl.data)
10522 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10523 * np.ndarray dmt,
10524 * np.ndarray dm,
10525*/
10526
10527/* Python wrapper */
10528static PyObject *__pyx_pw_13csubgridError_39calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(PyObject *__pyx_self,
10529#if CYTHON_VECTORCALL
10530PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10531#else
10532PyObject *__pyx_args, PyObject *__pyx_kwds
10533#endif
10534); /*proto*/
10535static PyMethodDef __pyx_mdef_13csubgridError_39calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau = {"calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_39calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10536static PyObject *__pyx_pw_13csubgridError_39calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(PyObject *__pyx_self,
10537#if CYTHON_VECTORCALL
10538PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10539#else
10540PyObject *__pyx_args, PyObject *__pyx_kwds
10541#endif
10542) {
10543 PyArrayObject *__pyx_v_inverseJ = 0;
10544 PyArrayObject *__pyx_v_dmt = 0;
10545 PyArrayObject *__pyx_v_dm = 0;
10546 PyArrayObject *__pyx_v_f = 0;
10547 PyArrayObject *__pyx_v_a = 0;
10548 PyArrayObject *__pyx_v_dr = 0;
10549 PyArrayObject *__pyx_v_tau0 = 0;
10550 PyArrayObject *__pyx_v_tau1 = 0;
10551 PyArrayObject *__pyx_v_cfl = 0;
10552 #if !CYTHON_VECTORCALL
10553 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10554 #endif
10555 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10556 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
10557 int __pyx_lineno = 0;
10558 const char *__pyx_filename = NULL;
10559 int __pyx_clineno = 0;
10560 PyObject *__pyx_r = 0;
10561 __Pyx_RefNannyDeclarations
10562 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau (wrapper)", 0);
10563 #if !CYTHON_VECTORCALL
10564 #if CYTHON_ASSUME_SAFE_SIZE
10565 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10566 #else
10567 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10568 #endif
10569 #endif
10570 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10571 {
10572 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
10573 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10574 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1267, __pyx_L3_error)
10575 if (__pyx_kwds_len > 0) {
10576 switch (__pyx_nargs) {
10577 case 9:
10578 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
10579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1267, __pyx_L3_error)
10580 CYTHON_FALLTHROUGH;
10581 case 8:
10582 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1267, __pyx_L3_error)
10584 CYTHON_FALLTHROUGH;
10585 case 7:
10586 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10587 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1267, __pyx_L3_error)
10588 CYTHON_FALLTHROUGH;
10589 case 6:
10590 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10591 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1267, __pyx_L3_error)
10592 CYTHON_FALLTHROUGH;
10593 case 5:
10594 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10595 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1267, __pyx_L3_error)
10596 CYTHON_FALLTHROUGH;
10597 case 4:
10598 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10599 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1267, __pyx_L3_error)
10600 CYTHON_FALLTHROUGH;
10601 case 3:
10602 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10603 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1267, __pyx_L3_error)
10604 CYTHON_FALLTHROUGH;
10605 case 2:
10606 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10607 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1267, __pyx_L3_error)
10608 CYTHON_FALLTHROUGH;
10609 case 1:
10610 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10611 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1267, __pyx_L3_error)
10612 CYTHON_FALLTHROUGH;
10613 case 0: break;
10614 default: goto __pyx_L5_argtuple_error;
10615 }
10616 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10617 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", 0) < (0)) __PYX_ERR(0, 1267, __pyx_L3_error)
10618 for (Py_ssize_t i = __pyx_nargs; i < 9; i++) {
10619 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", 1, 9, 9, i); __PYX_ERR(0, 1267, __pyx_L3_error) }
10620 }
10621 } else if (unlikely(__pyx_nargs != 9)) {
10622 goto __pyx_L5_argtuple_error;
10623 } else {
10624 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10625 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1267, __pyx_L3_error)
10626 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10627 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1267, __pyx_L3_error)
10628 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10629 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1267, __pyx_L3_error)
10630 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10631 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1267, __pyx_L3_error)
10632 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10633 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1267, __pyx_L3_error)
10634 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10635 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1267, __pyx_L3_error)
10636 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10637 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1267, __pyx_L3_error)
10638 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10639 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1267, __pyx_L3_error)
10640 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
10641 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1267, __pyx_L3_error)
10642 }
10643 __pyx_v_inverseJ = ((PyArrayObject *)values[0]);
10644 __pyx_v_dmt = ((PyArrayObject *)values[1]);
10645 __pyx_v_dm = ((PyArrayObject *)values[2]);
10646 __pyx_v_f = ((PyArrayObject *)values[3]);
10647 __pyx_v_a = ((PyArrayObject *)values[4]);
10648 __pyx_v_dr = ((PyArrayObject *)values[5]);
10649 __pyx_v_tau0 = ((PyArrayObject *)values[6]);
10650 __pyx_v_tau1 = ((PyArrayObject *)values[7]);
10651 __pyx_v_cfl = ((PyArrayObject *)values[8]);
10652 }
10653 goto __pyx_L6_skip;
10654 __pyx_L5_argtuple_error:;
10655 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", 1, 9, 9, __pyx_nargs); __PYX_ERR(0, 1267, __pyx_L3_error)
10656 __pyx_L6_skip:;
10657 goto __pyx_L4_argument_unpacking_done;
10658 __pyx_L3_error:;
10659 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10660 Py_XDECREF(values[__pyx_temp]);
10661 }
10662 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
10663 __Pyx_RefNannyFinishContext();
10664 return NULL;
10665 __pyx_L4_argument_unpacking_done:;
10666 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 1267, __pyx_L1_error)
10667 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1268, __pyx_L1_error)
10668 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1269, __pyx_L1_error)
10669 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1270, __pyx_L1_error)
10670 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1271, __pyx_L1_error)
10671 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 1272, __pyx_L1_error)
10672 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1273, __pyx_L1_error)
10673 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1274, __pyx_L1_error)
10674 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1275, __pyx_L1_error)
10675 __pyx_r = __pyx_pf_13csubgridError_38calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(__pyx_self, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_dr, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
10676
10677 /* function exit code */
10678 goto __pyx_L0;
10679 __pyx_L1_error:;
10680 __pyx_r = NULL;
10681 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10682 Py_XDECREF(values[__pyx_temp]);
10683 }
10684 goto __pyx_L7_cleaned_up;
10685 __pyx_L0:;
10686 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10687 Py_XDECREF(values[__pyx_temp]);
10688 }
10689 __pyx_L7_cleaned_up:;
10690 __Pyx_RefNannyFinishContext();
10691 return __pyx_r;
10692}
10693
10694static PyObject *__pyx_pf_13csubgridError_38calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
10695 PyObject *__pyx_r = NULL;
10696 __Pyx_RefNannyDeclarations
10697 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau", 0);
10698
10699 /* "csubgridError.pyx":1276
10700 * np.ndarray tau1,
10701 * np.ndarray cfl):
10702 * ccalculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(f.shape[0], # <<<<<<<<<<<<<<
10703 * f.shape[1],
10704 * f.shape[2],
10705*/
10706 calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
10707
10708 /* "csubgridError.pyx":1267
10709 * <double*> tau1.data,
10710 * <double*> cfl.data)
10711 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10712 * np.ndarray dmt,
10713 * np.ndarray dm,
10714*/
10715
10716 /* function exit code */
10717 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10718 __Pyx_XGIVEREF(__pyx_r);
10719 __Pyx_RefNannyFinishContext();
10720 return __pyx_r;
10721}
10722
10723/* "csubgridError.pyx":1288
10724 * <double*> tau1.data,
10725 * <double*> cfl.data)
10726 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10727 * np.ndarray dmt,
10728 * np.ndarray dm,
10729*/
10730
10731/* Python wrapper */
10732static PyObject *__pyx_pw_13csubgridError_41calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(PyObject *__pyx_self,
10733#if CYTHON_VECTORCALL
10734PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10735#else
10736PyObject *__pyx_args, PyObject *__pyx_kwds
10737#endif
10738); /*proto*/
10739static PyMethodDef __pyx_mdef_13csubgridError_41calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd = {"calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_41calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10740static PyObject *__pyx_pw_13csubgridError_41calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(PyObject *__pyx_self,
10741#if CYTHON_VECTORCALL
10742PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10743#else
10744PyObject *__pyx_args, PyObject *__pyx_kwds
10745#endif
10746) {
10747 PyArrayObject *__pyx_v_inverseJ = 0;
10748 PyArrayObject *__pyx_v_dmt = 0;
10749 PyArrayObject *__pyx_v_dm = 0;
10750 PyArrayObject *__pyx_v_f = 0;
10751 PyArrayObject *__pyx_v_a = 0;
10752 PyArrayObject *__pyx_v_dr = 0;
10753 PyArrayObject *__pyx_v_tau0 = 0;
10754 PyArrayObject *__pyx_v_tau1 = 0;
10755 PyArrayObject *__pyx_v_cfl = 0;
10756 #if !CYTHON_VECTORCALL
10757 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10758 #endif
10759 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10760 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
10761 int __pyx_lineno = 0;
10762 const char *__pyx_filename = NULL;
10763 int __pyx_clineno = 0;
10764 PyObject *__pyx_r = 0;
10765 __Pyx_RefNannyDeclarations
10766 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd (wrapper)", 0);
10767 #if !CYTHON_VECTORCALL
10768 #if CYTHON_ASSUME_SAFE_SIZE
10769 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10770 #else
10771 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10772 #endif
10773 #endif
10774 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10775 {
10776 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_cfl,0};
10777 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10778 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1288, __pyx_L3_error)
10779 if (__pyx_kwds_len > 0) {
10780 switch (__pyx_nargs) {
10781 case 9:
10782 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
10783 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1288, __pyx_L3_error)
10784 CYTHON_FALLTHROUGH;
10785 case 8:
10786 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10787 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1288, __pyx_L3_error)
10788 CYTHON_FALLTHROUGH;
10789 case 7:
10790 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10791 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1288, __pyx_L3_error)
10792 CYTHON_FALLTHROUGH;
10793 case 6:
10794 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10795 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1288, __pyx_L3_error)
10796 CYTHON_FALLTHROUGH;
10797 case 5:
10798 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10799 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1288, __pyx_L3_error)
10800 CYTHON_FALLTHROUGH;
10801 case 4:
10802 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10803 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1288, __pyx_L3_error)
10804 CYTHON_FALLTHROUGH;
10805 case 3:
10806 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10807 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1288, __pyx_L3_error)
10808 CYTHON_FALLTHROUGH;
10809 case 2:
10810 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10811 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1288, __pyx_L3_error)
10812 CYTHON_FALLTHROUGH;
10813 case 1:
10814 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10815 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1288, __pyx_L3_error)
10816 CYTHON_FALLTHROUGH;
10817 case 0: break;
10818 default: goto __pyx_L5_argtuple_error;
10819 }
10820 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10821 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", 0) < (0)) __PYX_ERR(0, 1288, __pyx_L3_error)
10822 for (Py_ssize_t i = __pyx_nargs; i < 9; i++) {
10823 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", 1, 9, 9, i); __PYX_ERR(0, 1288, __pyx_L3_error) }
10824 }
10825 } else if (unlikely(__pyx_nargs != 9)) {
10826 goto __pyx_L5_argtuple_error;
10827 } else {
10828 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10829 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1288, __pyx_L3_error)
10830 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10831 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1288, __pyx_L3_error)
10832 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10833 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1288, __pyx_L3_error)
10834 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10835 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1288, __pyx_L3_error)
10836 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10837 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1288, __pyx_L3_error)
10838 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10839 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1288, __pyx_L3_error)
10840 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10841 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1288, __pyx_L3_error)
10842 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
10843 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1288, __pyx_L3_error)
10844 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
10845 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1288, __pyx_L3_error)
10846 }
10847 __pyx_v_inverseJ = ((PyArrayObject *)values[0]);
10848 __pyx_v_dmt = ((PyArrayObject *)values[1]);
10849 __pyx_v_dm = ((PyArrayObject *)values[2]);
10850 __pyx_v_f = ((PyArrayObject *)values[3]);
10851 __pyx_v_a = ((PyArrayObject *)values[4]);
10852 __pyx_v_dr = ((PyArrayObject *)values[5]);
10853 __pyx_v_tau0 = ((PyArrayObject *)values[6]);
10854 __pyx_v_tau1 = ((PyArrayObject *)values[7]);
10855 __pyx_v_cfl = ((PyArrayObject *)values[8]);
10856 }
10857 goto __pyx_L6_skip;
10858 __pyx_L5_argtuple_error:;
10859 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", 1, 9, 9, __pyx_nargs); __PYX_ERR(0, 1288, __pyx_L3_error)
10860 __pyx_L6_skip:;
10861 goto __pyx_L4_argument_unpacking_done;
10862 __pyx_L3_error:;
10863 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10864 Py_XDECREF(values[__pyx_temp]);
10865 }
10866 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
10867 __Pyx_RefNannyFinishContext();
10868 return NULL;
10869 __pyx_L4_argument_unpacking_done:;
10870 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 1288, __pyx_L1_error)
10871 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1289, __pyx_L1_error)
10872 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1290, __pyx_L1_error)
10873 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1291, __pyx_L1_error)
10874 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1292, __pyx_L1_error)
10875 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 1293, __pyx_L1_error)
10876 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1294, __pyx_L1_error)
10877 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1295, __pyx_L1_error)
10878 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1296, __pyx_L1_error)
10879 __pyx_r = __pyx_pf_13csubgridError_40calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(__pyx_self, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_dr, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_cfl);
10880
10881 /* function exit code */
10882 goto __pyx_L0;
10883 __pyx_L1_error:;
10884 __pyx_r = NULL;
10885 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10886 Py_XDECREF(values[__pyx_temp]);
10887 }
10888 goto __pyx_L7_cleaned_up;
10889 __pyx_L0:;
10890 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10891 Py_XDECREF(values[__pyx_temp]);
10892 }
10893 __pyx_L7_cleaned_up:;
10894 __Pyx_RefNannyFinishContext();
10895 return __pyx_r;
10896}
10897
10898static PyObject *__pyx_pf_13csubgridError_40calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_cfl) {
10899 PyObject *__pyx_r = NULL;
10900 __Pyx_RefNannyDeclarations
10901 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd", 0);
10902
10903 /* "csubgridError.pyx":1297
10904 * np.ndarray tau1,
10905 * np.ndarray cfl):
10906 * ccalculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(f.shape[0], # <<<<<<<<<<<<<<
10907 * f.shape[1],
10908 * f.shape[2],
10909*/
10910 calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_f)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)));
10911
10912 /* "csubgridError.pyx":1288
10913 * <double*> tau1.data,
10914 * <double*> cfl.data)
10915 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
10916 * np.ndarray dmt,
10917 * np.ndarray dm,
10918*/
10919
10920 /* function exit code */
10921 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10922 __Pyx_XGIVEREF(__pyx_r);
10923 __Pyx_RefNannyFinishContext();
10924 return __pyx_r;
10925}
10926
10927/* "csubgridError.pyx":1309
10928 * <double*> tau1.data,
10929 * <double*> cfl.data)
10930 * def calculateSubgridErrorNavierStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
10931 * np.ndarray tau1,
10932 * np.ndarray pdeResidualP,
10933*/
10934
10935/* Python wrapper */
10936static PyObject *__pyx_pw_13csubgridError_43calculateSubgridErrorNavierStokes2D_GLS_tauRes(PyObject *__pyx_self,
10937#if CYTHON_VECTORCALL
10938PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10939#else
10940PyObject *__pyx_args, PyObject *__pyx_kwds
10941#endif
10942); /*proto*/
10943static PyMethodDef __pyx_mdef_13csubgridError_43calculateSubgridErrorNavierStokes2D_GLS_tauRes = {"calculateSubgridErrorNavierStokes2D_GLS_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_43calculateSubgridErrorNavierStokes2D_GLS_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10944static PyObject *__pyx_pw_13csubgridError_43calculateSubgridErrorNavierStokes2D_GLS_tauRes(PyObject *__pyx_self,
10945#if CYTHON_VECTORCALL
10946PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10947#else
10948PyObject *__pyx_args, PyObject *__pyx_kwds
10949#endif
10950) {
10951 PyArrayObject *__pyx_v_tau0 = 0;
10952 PyArrayObject *__pyx_v_tau1 = 0;
10953 PyArrayObject *__pyx_v_pdeResidualP = 0;
10954 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
10955 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
10956 PyArrayObject *__pyx_v_pdeResidualU = 0;
10957 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
10958 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
10959 PyArrayObject *__pyx_v_dpdeResidualU_dv = 0;
10960 PyArrayObject *__pyx_v_pdeResidualV = 0;
10961 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
10962 PyArrayObject *__pyx_v_dpdeResidualV_du = 0;
10963 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
10964 PyArrayObject *__pyx_v_subgridErrorP = 0;
10965 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
10966 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
10967 PyArrayObject *__pyx_v_subgridErrorU = 0;
10968 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
10969 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
10970 PyArrayObject *__pyx_v_dsubgridErrorU_dv = 0;
10971 PyArrayObject *__pyx_v_subgridErrorV = 0;
10972 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
10973 PyArrayObject *__pyx_v_dsubgridErrorV_du = 0;
10974 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
10975 #if !CYTHON_VECTORCALL
10976 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10977 #endif
10978 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10979 PyObject* values[24] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
10980 int __pyx_lineno = 0;
10981 const char *__pyx_filename = NULL;
10982 int __pyx_clineno = 0;
10983 PyObject *__pyx_r = 0;
10984 __Pyx_RefNannyDeclarations
10985 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tauRes (wrapper)", 0);
10986 #if !CYTHON_VECTORCALL
10987 #if CYTHON_ASSUME_SAFE_SIZE
10988 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10989 #else
10990 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10991 #endif
10992 #endif
10993 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10994 {
10995 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
10996 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10997 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1309, __pyx_L3_error)
10998 if (__pyx_kwds_len > 0) {
10999 switch (__pyx_nargs) {
11000 case 24:
11001 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
11002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1309, __pyx_L3_error)
11003 CYTHON_FALLTHROUGH;
11004 case 23:
11005 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
11006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1309, __pyx_L3_error)
11007 CYTHON_FALLTHROUGH;
11008 case 22:
11009 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
11010 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1309, __pyx_L3_error)
11011 CYTHON_FALLTHROUGH;
11012 case 21:
11013 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
11014 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1309, __pyx_L3_error)
11015 CYTHON_FALLTHROUGH;
11016 case 20:
11017 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
11018 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1309, __pyx_L3_error)
11019 CYTHON_FALLTHROUGH;
11020 case 19:
11021 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
11022 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1309, __pyx_L3_error)
11023 CYTHON_FALLTHROUGH;
11024 case 18:
11025 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
11026 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1309, __pyx_L3_error)
11027 CYTHON_FALLTHROUGH;
11028 case 17:
11029 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
11030 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1309, __pyx_L3_error)
11031 CYTHON_FALLTHROUGH;
11032 case 16:
11033 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
11034 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1309, __pyx_L3_error)
11035 CYTHON_FALLTHROUGH;
11036 case 15:
11037 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
11038 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1309, __pyx_L3_error)
11039 CYTHON_FALLTHROUGH;
11040 case 14:
11041 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
11042 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1309, __pyx_L3_error)
11043 CYTHON_FALLTHROUGH;
11044 case 13:
11045 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
11046 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1309, __pyx_L3_error)
11047 CYTHON_FALLTHROUGH;
11048 case 12:
11049 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
11050 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1309, __pyx_L3_error)
11051 CYTHON_FALLTHROUGH;
11052 case 11:
11053 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
11054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1309, __pyx_L3_error)
11055 CYTHON_FALLTHROUGH;
11056 case 10:
11057 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
11058 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1309, __pyx_L3_error)
11059 CYTHON_FALLTHROUGH;
11060 case 9:
11061 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
11062 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1309, __pyx_L3_error)
11063 CYTHON_FALLTHROUGH;
11064 case 8:
11065 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
11066 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1309, __pyx_L3_error)
11067 CYTHON_FALLTHROUGH;
11068 case 7:
11069 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
11070 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1309, __pyx_L3_error)
11071 CYTHON_FALLTHROUGH;
11072 case 6:
11073 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11074 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1309, __pyx_L3_error)
11075 CYTHON_FALLTHROUGH;
11076 case 5:
11077 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11078 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1309, __pyx_L3_error)
11079 CYTHON_FALLTHROUGH;
11080 case 4:
11081 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11082 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1309, __pyx_L3_error)
11083 CYTHON_FALLTHROUGH;
11084 case 3:
11085 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11086 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1309, __pyx_L3_error)
11087 CYTHON_FALLTHROUGH;
11088 case 2:
11089 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11090 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1309, __pyx_L3_error)
11091 CYTHON_FALLTHROUGH;
11092 case 1:
11093 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11094 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1309, __pyx_L3_error)
11095 CYTHON_FALLTHROUGH;
11096 case 0: break;
11097 default: goto __pyx_L5_argtuple_error;
11098 }
11099 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11100 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes2D_GLS_tauRes", 0) < (0)) __PYX_ERR(0, 1309, __pyx_L3_error)
11101 for (Py_ssize_t i = __pyx_nargs; i < 24; i++) {
11102 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tauRes", 1, 24, 24, i); __PYX_ERR(0, 1309, __pyx_L3_error) }
11103 }
11104 } else if (unlikely(__pyx_nargs != 24)) {
11105 goto __pyx_L5_argtuple_error;
11106 } else {
11107 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11108 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1309, __pyx_L3_error)
11109 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11110 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1309, __pyx_L3_error)
11111 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11112 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1309, __pyx_L3_error)
11113 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11114 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1309, __pyx_L3_error)
11115 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11116 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1309, __pyx_L3_error)
11117 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11118 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1309, __pyx_L3_error)
11119 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
11120 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1309, __pyx_L3_error)
11121 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
11122 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1309, __pyx_L3_error)
11123 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
11124 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1309, __pyx_L3_error)
11125 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
11126 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1309, __pyx_L3_error)
11127 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
11128 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1309, __pyx_L3_error)
11129 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
11130 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1309, __pyx_L3_error)
11131 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
11132 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1309, __pyx_L3_error)
11133 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
11134 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1309, __pyx_L3_error)
11135 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
11136 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1309, __pyx_L3_error)
11137 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
11138 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1309, __pyx_L3_error)
11139 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
11140 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1309, __pyx_L3_error)
11141 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
11142 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1309, __pyx_L3_error)
11143 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
11144 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1309, __pyx_L3_error)
11145 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
11146 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1309, __pyx_L3_error)
11147 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
11148 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1309, __pyx_L3_error)
11149 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
11150 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1309, __pyx_L3_error)
11151 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
11152 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1309, __pyx_L3_error)
11153 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
11154 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1309, __pyx_L3_error)
11155 }
11156 __pyx_v_tau0 = ((PyArrayObject *)values[0]);
11157 __pyx_v_tau1 = ((PyArrayObject *)values[1]);
11158 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
11159 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
11160 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
11161 __pyx_v_pdeResidualU = ((PyArrayObject *)values[5]);
11162 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[6]);
11163 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[7]);
11164 __pyx_v_dpdeResidualU_dv = ((PyArrayObject *)values[8]);
11165 __pyx_v_pdeResidualV = ((PyArrayObject *)values[9]);
11166 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[10]);
11167 __pyx_v_dpdeResidualV_du = ((PyArrayObject *)values[11]);
11168 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[12]);
11169 __pyx_v_subgridErrorP = ((PyArrayObject *)values[13]);
11170 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[14]);
11171 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[15]);
11172 __pyx_v_subgridErrorU = ((PyArrayObject *)values[16]);
11173 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[17]);
11174 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[18]);
11175 __pyx_v_dsubgridErrorU_dv = ((PyArrayObject *)values[19]);
11176 __pyx_v_subgridErrorV = ((PyArrayObject *)values[20]);
11177 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[21]);
11178 __pyx_v_dsubgridErrorV_du = ((PyArrayObject *)values[22]);
11179 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[23]);
11180 }
11181 goto __pyx_L6_skip;
11182 __pyx_L5_argtuple_error:;
11183 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes2D_GLS_tauRes", 1, 24, 24, __pyx_nargs); __PYX_ERR(0, 1309, __pyx_L3_error)
11184 __pyx_L6_skip:;
11185 goto __pyx_L4_argument_unpacking_done;
11186 __pyx_L3_error:;
11187 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11188 Py_XDECREF(values[__pyx_temp]);
11189 }
11190 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes2D_GLS_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11191 __Pyx_RefNannyFinishContext();
11192 return NULL;
11193 __pyx_L4_argument_unpacking_done:;
11194 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1309, __pyx_L1_error)
11195 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1310, __pyx_L1_error)
11196 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1311, __pyx_L1_error)
11197 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1312, __pyx_L1_error)
11198 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1313, __pyx_L1_error)
11199 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1314, __pyx_L1_error)
11200 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1315, __pyx_L1_error)
11201 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1316, __pyx_L1_error)
11202 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dv", 0))) __PYX_ERR(0, 1317, __pyx_L1_error)
11203 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1318, __pyx_L1_error)
11204 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1319, __pyx_L1_error)
11205 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_du", 0))) __PYX_ERR(0, 1320, __pyx_L1_error)
11206 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1321, __pyx_L1_error)
11207 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1322, __pyx_L1_error)
11208 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1323, __pyx_L1_error)
11209 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1324, __pyx_L1_error)
11210 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1325, __pyx_L1_error)
11211 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1326, __pyx_L1_error)
11212 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1327, __pyx_L1_error)
11213 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dv", 0))) __PYX_ERR(0, 1328, __pyx_L1_error)
11214 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1329, __pyx_L1_error)
11215 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1330, __pyx_L1_error)
11216 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_du", 0))) __PYX_ERR(0, 1331, __pyx_L1_error)
11217 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1332, __pyx_L1_error)
11218 __pyx_r = __pyx_pf_13csubgridError_42calculateSubgridErrorNavierStokes2D_GLS_tauRes(__pyx_self, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_dpdeResidualU_dv, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_du, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_dsubgridErrorU_dv, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_du, __pyx_v_dsubgridErrorV_dv);
11219
11220 /* function exit code */
11221 goto __pyx_L0;
11222 __pyx_L1_error:;
11223 __pyx_r = NULL;
11224 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11225 Py_XDECREF(values[__pyx_temp]);
11226 }
11227 goto __pyx_L7_cleaned_up;
11228 __pyx_L0:;
11229 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11230 Py_XDECREF(values[__pyx_temp]);
11231 }
11232 __pyx_L7_cleaned_up:;
11233 __Pyx_RefNannyFinishContext();
11234 return __pyx_r;
11235}
11236
11237static PyObject *__pyx_pf_13csubgridError_42calculateSubgridErrorNavierStokes2D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_dpdeResidualU_dv, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_du, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
11238 PyObject *__pyx_r = NULL;
11239 __Pyx_RefNannyDeclarations
11240 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes2D_GLS_tauRes", 0);
11241
11242 /* "csubgridError.pyx":1333
11243 * np.ndarray dsubgridErrorV_du,
11244 * np.ndarray dsubgridErrorV_dv):
11245 * ccalculateSubgridErrorNavierStokes2D_GLS_tauRes(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
11246 * dsubgridErrorP_du.shape[1],
11247 * dsubgridErrorP_du.shape[2],
11248*/
11249 calculateSubgridErrorNavierStokes2D_GLS_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
11250
11251 /* "csubgridError.pyx":1309
11252 * <double*> tau1.data,
11253 * <double*> cfl.data)
11254 * def calculateSubgridErrorNavierStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
11255 * np.ndarray tau1,
11256 * np.ndarray pdeResidualP,
11257*/
11258
11259 /* function exit code */
11260 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11261 __Pyx_XGIVEREF(__pyx_r);
11262 __Pyx_RefNannyFinishContext();
11263 return __pyx_r;
11264}
11265
11266/* "csubgridError.pyx":1361
11267 * <double*> dsubgridErrorV_du.data,
11268 * <double*> dsubgridErrorV_dv.data)
11269 * def calculateSubgridErrorStokes_GLS_tau(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
11270 * np.ndarray dH,
11271 * np.ndarray a,
11272*/
11273
11274/* Python wrapper */
11275static PyObject *__pyx_pw_13csubgridError_45calculateSubgridErrorStokes_GLS_tau(PyObject *__pyx_self,
11276#if CYTHON_VECTORCALL
11277PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11278#else
11279PyObject *__pyx_args, PyObject *__pyx_kwds
11280#endif
11281); /*proto*/
11282static PyMethodDef __pyx_mdef_13csubgridError_45calculateSubgridErrorStokes_GLS_tau = {"calculateSubgridErrorStokes_GLS_tau", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_45calculateSubgridErrorStokes_GLS_tau, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11283static PyObject *__pyx_pw_13csubgridError_45calculateSubgridErrorStokes_GLS_tau(PyObject *__pyx_self,
11284#if CYTHON_VECTORCALL
11285PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11286#else
11287PyObject *__pyx_args, PyObject *__pyx_kwds
11288#endif
11289) {
11290 PyArrayObject *__pyx_v_elementDiameter = 0;
11291 PyArrayObject *__pyx_v_dH = 0;
11292 PyArrayObject *__pyx_v_a = 0;
11293 PyArrayObject *__pyx_v_tau0 = 0;
11294 PyArrayObject *__pyx_v_tau1 = 0;
11295 #if !CYTHON_VECTORCALL
11296 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11297 #endif
11298 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11299 PyObject* values[5] = {0,0,0,0,0};
11300 int __pyx_lineno = 0;
11301 const char *__pyx_filename = NULL;
11302 int __pyx_clineno = 0;
11303 PyObject *__pyx_r = 0;
11304 __Pyx_RefNannyDeclarations
11305 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes_GLS_tau (wrapper)", 0);
11306 #if !CYTHON_VECTORCALL
11307 #if CYTHON_ASSUME_SAFE_SIZE
11308 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11309 #else
11310 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11311 #endif
11312 #endif
11313 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11314 {
11315 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dH,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,0};
11316 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11317 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1361, __pyx_L3_error)
11318 if (__pyx_kwds_len > 0) {
11319 switch (__pyx_nargs) {
11320 case 5:
11321 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11322 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1361, __pyx_L3_error)
11323 CYTHON_FALLTHROUGH;
11324 case 4:
11325 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11326 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1361, __pyx_L3_error)
11327 CYTHON_FALLTHROUGH;
11328 case 3:
11329 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11330 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1361, __pyx_L3_error)
11331 CYTHON_FALLTHROUGH;
11332 case 2:
11333 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11334 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1361, __pyx_L3_error)
11335 CYTHON_FALLTHROUGH;
11336 case 1:
11337 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11338 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1361, __pyx_L3_error)
11339 CYTHON_FALLTHROUGH;
11340 case 0: break;
11341 default: goto __pyx_L5_argtuple_error;
11342 }
11343 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11344 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes_GLS_tau", 0) < (0)) __PYX_ERR(0, 1361, __pyx_L3_error)
11345 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
11346 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes_GLS_tau", 1, 5, 5, i); __PYX_ERR(0, 1361, __pyx_L3_error) }
11347 }
11348 } else if (unlikely(__pyx_nargs != 5)) {
11349 goto __pyx_L5_argtuple_error;
11350 } else {
11351 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11352 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1361, __pyx_L3_error)
11353 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11354 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1361, __pyx_L3_error)
11355 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11356 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1361, __pyx_L3_error)
11357 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11358 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1361, __pyx_L3_error)
11359 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11360 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1361, __pyx_L3_error)
11361 }
11362 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
11363 __pyx_v_dH = ((PyArrayObject *)values[1]);
11364 __pyx_v_a = ((PyArrayObject *)values[2]);
11365 __pyx_v_tau0 = ((PyArrayObject *)values[3]);
11366 __pyx_v_tau1 = ((PyArrayObject *)values[4]);
11367 }
11368 goto __pyx_L6_skip;
11369 __pyx_L5_argtuple_error:;
11370 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes_GLS_tau", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 1361, __pyx_L3_error)
11371 __pyx_L6_skip:;
11372 goto __pyx_L4_argument_unpacking_done;
11373 __pyx_L3_error:;
11374 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11375 Py_XDECREF(values[__pyx_temp]);
11376 }
11377 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes_GLS_tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
11378 __Pyx_RefNannyFinishContext();
11379 return NULL;
11380 __pyx_L4_argument_unpacking_done:;
11381 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1361, __pyx_L1_error)
11382 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 1362, __pyx_L1_error)
11383 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1363, __pyx_L1_error)
11384 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1364, __pyx_L1_error)
11385 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1365, __pyx_L1_error)
11386 __pyx_r = __pyx_pf_13csubgridError_44calculateSubgridErrorStokes_GLS_tau(__pyx_self, __pyx_v_elementDiameter, __pyx_v_dH, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1);
11387
11388 /* function exit code */
11389 goto __pyx_L0;
11390 __pyx_L1_error:;
11391 __pyx_r = NULL;
11392 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11393 Py_XDECREF(values[__pyx_temp]);
11394 }
11395 goto __pyx_L7_cleaned_up;
11396 __pyx_L0:;
11397 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11398 Py_XDECREF(values[__pyx_temp]);
11399 }
11400 __pyx_L7_cleaned_up:;
11401 __Pyx_RefNannyFinishContext();
11402 return __pyx_r;
11403}
11404
11405static PyObject *__pyx_pf_13csubgridError_44calculateSubgridErrorStokes_GLS_tau(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1) {
11406 PyObject *__pyx_r = NULL;
11407 __Pyx_RefNannyDeclarations
11408 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes_GLS_tau", 0);
11409
11410 /* "csubgridError.pyx":1366
11411 * np.ndarray tau0,
11412 * np.ndarray tau1):
11413 * ccalculateSubgridErrorStokes_GLS_tau(dH.shape[0], # <<<<<<<<<<<<<<
11414 * dH.shape[1],
11415 * dH.shape[2],
11416*/
11417 calculateSubgridErrorStokes_GLS_tau((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dH)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)));
11418
11419 /* "csubgridError.pyx":1361
11420 * <double*> dsubgridErrorV_du.data,
11421 * <double*> dsubgridErrorV_dv.data)
11422 * def calculateSubgridErrorStokes_GLS_tau(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
11423 * np.ndarray dH,
11424 * np.ndarray a,
11425*/
11426
11427 /* function exit code */
11428 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11429 __Pyx_XGIVEREF(__pyx_r);
11430 __Pyx_RefNannyFinishContext();
11431 return __pyx_r;
11432}
11433
11434/* "csubgridError.pyx":1374
11435 * <double*> tau0.data,
11436 * <double*> tau1.data)
11437 * def calculateSubgridErrorStokes_GLS_tau_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
11438 * np.ndarray dH,
11439 * np.ndarray a,
11440*/
11441
11442/* Python wrapper */
11443static PyObject *__pyx_pw_13csubgridError_47calculateSubgridErrorStokes_GLS_tau_sd(PyObject *__pyx_self,
11444#if CYTHON_VECTORCALL
11445PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11446#else
11447PyObject *__pyx_args, PyObject *__pyx_kwds
11448#endif
11449); /*proto*/
11450static PyMethodDef __pyx_mdef_13csubgridError_47calculateSubgridErrorStokes_GLS_tau_sd = {"calculateSubgridErrorStokes_GLS_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_47calculateSubgridErrorStokes_GLS_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11451static PyObject *__pyx_pw_13csubgridError_47calculateSubgridErrorStokes_GLS_tau_sd(PyObject *__pyx_self,
11452#if CYTHON_VECTORCALL
11453PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11454#else
11455PyObject *__pyx_args, PyObject *__pyx_kwds
11456#endif
11457) {
11458 PyArrayObject *__pyx_v_elementDiameter = 0;
11459 PyArrayObject *__pyx_v_dH = 0;
11460 PyArrayObject *__pyx_v_a = 0;
11461 PyArrayObject *__pyx_v_tau0 = 0;
11462 PyArrayObject *__pyx_v_tau1 = 0;
11463 #if !CYTHON_VECTORCALL
11464 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11465 #endif
11466 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11467 PyObject* values[5] = {0,0,0,0,0};
11468 int __pyx_lineno = 0;
11469 const char *__pyx_filename = NULL;
11470 int __pyx_clineno = 0;
11471 PyObject *__pyx_r = 0;
11472 __Pyx_RefNannyDeclarations
11473 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes_GLS_tau_sd (wrapper)", 0);
11474 #if !CYTHON_VECTORCALL
11475 #if CYTHON_ASSUME_SAFE_SIZE
11476 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11477 #else
11478 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11479 #endif
11480 #endif
11481 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11482 {
11483 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dH,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,0};
11484 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11485 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1374, __pyx_L3_error)
11486 if (__pyx_kwds_len > 0) {
11487 switch (__pyx_nargs) {
11488 case 5:
11489 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11490 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1374, __pyx_L3_error)
11491 CYTHON_FALLTHROUGH;
11492 case 4:
11493 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11494 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1374, __pyx_L3_error)
11495 CYTHON_FALLTHROUGH;
11496 case 3:
11497 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11498 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1374, __pyx_L3_error)
11499 CYTHON_FALLTHROUGH;
11500 case 2:
11501 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11502 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1374, __pyx_L3_error)
11503 CYTHON_FALLTHROUGH;
11504 case 1:
11505 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11506 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1374, __pyx_L3_error)
11507 CYTHON_FALLTHROUGH;
11508 case 0: break;
11509 default: goto __pyx_L5_argtuple_error;
11510 }
11511 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11512 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes_GLS_tau_sd", 0) < (0)) __PYX_ERR(0, 1374, __pyx_L3_error)
11513 for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
11514 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes_GLS_tau_sd", 1, 5, 5, i); __PYX_ERR(0, 1374, __pyx_L3_error) }
11515 }
11516 } else if (unlikely(__pyx_nargs != 5)) {
11517 goto __pyx_L5_argtuple_error;
11518 } else {
11519 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11520 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1374, __pyx_L3_error)
11521 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11522 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1374, __pyx_L3_error)
11523 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11524 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1374, __pyx_L3_error)
11525 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11526 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1374, __pyx_L3_error)
11527 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11528 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1374, __pyx_L3_error)
11529 }
11530 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
11531 __pyx_v_dH = ((PyArrayObject *)values[1]);
11532 __pyx_v_a = ((PyArrayObject *)values[2]);
11533 __pyx_v_tau0 = ((PyArrayObject *)values[3]);
11534 __pyx_v_tau1 = ((PyArrayObject *)values[4]);
11535 }
11536 goto __pyx_L6_skip;
11537 __pyx_L5_argtuple_error:;
11538 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes_GLS_tau_sd", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 1374, __pyx_L3_error)
11539 __pyx_L6_skip:;
11540 goto __pyx_L4_argument_unpacking_done;
11541 __pyx_L3_error:;
11542 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11543 Py_XDECREF(values[__pyx_temp]);
11544 }
11545 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes_GLS_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
11546 __Pyx_RefNannyFinishContext();
11547 return NULL;
11548 __pyx_L4_argument_unpacking_done:;
11549 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1374, __pyx_L1_error)
11550 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dH), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dH", 0))) __PYX_ERR(0, 1375, __pyx_L1_error)
11551 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1376, __pyx_L1_error)
11552 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1377, __pyx_L1_error)
11553 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1378, __pyx_L1_error)
11554 __pyx_r = __pyx_pf_13csubgridError_46calculateSubgridErrorStokes_GLS_tau_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_dH, __pyx_v_a, __pyx_v_tau0, __pyx_v_tau1);
11555
11556 /* function exit code */
11557 goto __pyx_L0;
11558 __pyx_L1_error:;
11559 __pyx_r = NULL;
11560 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11561 Py_XDECREF(values[__pyx_temp]);
11562 }
11563 goto __pyx_L7_cleaned_up;
11564 __pyx_L0:;
11565 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11566 Py_XDECREF(values[__pyx_temp]);
11567 }
11568 __pyx_L7_cleaned_up:;
11569 __Pyx_RefNannyFinishContext();
11570 return __pyx_r;
11571}
11572
11573static PyObject *__pyx_pf_13csubgridError_46calculateSubgridErrorStokes_GLS_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dH, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1) {
11574 PyObject *__pyx_r = NULL;
11575 __Pyx_RefNannyDeclarations
11576 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes_GLS_tau_sd", 0);
11577
11578 /* "csubgridError.pyx":1379
11579 * np.ndarray tau0,
11580 * np.ndarray tau1):
11581 * ccalculateSubgridErrorStokes_GLS_tau_sd(dH.shape[0], # <<<<<<<<<<<<<<
11582 * dH.shape[1],
11583 * dH.shape[2],
11584*/
11585 calculateSubgridErrorStokes_GLS_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dH)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dH)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)));
11586
11587 /* "csubgridError.pyx":1374
11588 * <double*> tau0.data,
11589 * <double*> tau1.data)
11590 * def calculateSubgridErrorStokes_GLS_tau_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
11591 * np.ndarray dH,
11592 * np.ndarray a,
11593*/
11594
11595 /* function exit code */
11596 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11597 __Pyx_XGIVEREF(__pyx_r);
11598 __Pyx_RefNannyFinishContext();
11599 return __pyx_r;
11600}
11601
11602/* "csubgridError.pyx":1387
11603 * <double*> tau0.data,
11604 * <double*> tau1.data)
11605 * def calculateSubgridErrorStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
11606 * np.ndarray tau1,
11607 * np.ndarray pdeResidualP,
11608*/
11609
11610/* Python wrapper */
11611static PyObject *__pyx_pw_13csubgridError_49calculateSubgridErrorStokes2D_GLS_tauRes(PyObject *__pyx_self,
11612#if CYTHON_VECTORCALL
11613PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11614#else
11615PyObject *__pyx_args, PyObject *__pyx_kwds
11616#endif
11617); /*proto*/
11618static PyMethodDef __pyx_mdef_13csubgridError_49calculateSubgridErrorStokes2D_GLS_tauRes = {"calculateSubgridErrorStokes2D_GLS_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_49calculateSubgridErrorStokes2D_GLS_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11619static PyObject *__pyx_pw_13csubgridError_49calculateSubgridErrorStokes2D_GLS_tauRes(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) {
11626 PyArrayObject *__pyx_v_tau0 = 0;
11627 PyArrayObject *__pyx_v_tau1 = 0;
11628 PyArrayObject *__pyx_v_pdeResidualP = 0;
11629 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
11630 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
11631 PyArrayObject *__pyx_v_pdeResidualU = 0;
11632 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
11633 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
11634 PyArrayObject *__pyx_v_pdeResidualV = 0;
11635 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
11636 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
11637 PyArrayObject *__pyx_v_subgridErrorP = 0;
11638 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
11639 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
11640 PyArrayObject *__pyx_v_subgridErrorU = 0;
11641 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
11642 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
11643 PyArrayObject *__pyx_v_subgridErrorV = 0;
11644 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
11645 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
11646 #if !CYTHON_VECTORCALL
11647 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11648 #endif
11649 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11650 PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
11651 int __pyx_lineno = 0;
11652 const char *__pyx_filename = NULL;
11653 int __pyx_clineno = 0;
11654 PyObject *__pyx_r = 0;
11655 __Pyx_RefNannyDeclarations
11656 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_tauRes (wrapper)", 0);
11657 #if !CYTHON_VECTORCALL
11658 #if CYTHON_ASSUME_SAFE_SIZE
11659 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11660 #else
11661 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11662 #endif
11663 #endif
11664 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11665 {
11666 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
11667 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11668 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1387, __pyx_L3_error)
11669 if (__pyx_kwds_len > 0) {
11670 switch (__pyx_nargs) {
11671 case 20:
11672 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
11673 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1387, __pyx_L3_error)
11674 CYTHON_FALLTHROUGH;
11675 case 19:
11676 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
11677 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1387, __pyx_L3_error)
11678 CYTHON_FALLTHROUGH;
11679 case 18:
11680 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
11681 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1387, __pyx_L3_error)
11682 CYTHON_FALLTHROUGH;
11683 case 17:
11684 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
11685 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1387, __pyx_L3_error)
11686 CYTHON_FALLTHROUGH;
11687 case 16:
11688 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
11689 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1387, __pyx_L3_error)
11690 CYTHON_FALLTHROUGH;
11691 case 15:
11692 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
11693 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1387, __pyx_L3_error)
11694 CYTHON_FALLTHROUGH;
11695 case 14:
11696 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
11697 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1387, __pyx_L3_error)
11698 CYTHON_FALLTHROUGH;
11699 case 13:
11700 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
11701 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1387, __pyx_L3_error)
11702 CYTHON_FALLTHROUGH;
11703 case 12:
11704 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
11705 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1387, __pyx_L3_error)
11706 CYTHON_FALLTHROUGH;
11707 case 11:
11708 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
11709 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1387, __pyx_L3_error)
11710 CYTHON_FALLTHROUGH;
11711 case 10:
11712 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
11713 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1387, __pyx_L3_error)
11714 CYTHON_FALLTHROUGH;
11715 case 9:
11716 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
11717 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1387, __pyx_L3_error)
11718 CYTHON_FALLTHROUGH;
11719 case 8:
11720 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
11721 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1387, __pyx_L3_error)
11722 CYTHON_FALLTHROUGH;
11723 case 7:
11724 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
11725 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1387, __pyx_L3_error)
11726 CYTHON_FALLTHROUGH;
11727 case 6:
11728 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11729 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1387, __pyx_L3_error)
11730 CYTHON_FALLTHROUGH;
11731 case 5:
11732 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11733 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1387, __pyx_L3_error)
11734 CYTHON_FALLTHROUGH;
11735 case 4:
11736 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11737 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1387, __pyx_L3_error)
11738 CYTHON_FALLTHROUGH;
11739 case 3:
11740 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11741 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1387, __pyx_L3_error)
11742 CYTHON_FALLTHROUGH;
11743 case 2:
11744 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11745 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1387, __pyx_L3_error)
11746 CYTHON_FALLTHROUGH;
11747 case 1:
11748 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11749 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1387, __pyx_L3_error)
11750 CYTHON_FALLTHROUGH;
11751 case 0: break;
11752 default: goto __pyx_L5_argtuple_error;
11753 }
11754 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11755 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_GLS_tauRes", 0) < (0)) __PYX_ERR(0, 1387, __pyx_L3_error)
11756 for (Py_ssize_t i = __pyx_nargs; i < 20; i++) {
11757 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_tauRes", 1, 20, 20, i); __PYX_ERR(0, 1387, __pyx_L3_error) }
11758 }
11759 } else if (unlikely(__pyx_nargs != 20)) {
11760 goto __pyx_L5_argtuple_error;
11761 } else {
11762 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11763 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1387, __pyx_L3_error)
11764 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11765 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1387, __pyx_L3_error)
11766 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11767 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1387, __pyx_L3_error)
11768 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11769 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1387, __pyx_L3_error)
11770 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11771 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1387, __pyx_L3_error)
11772 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11773 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1387, __pyx_L3_error)
11774 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
11775 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1387, __pyx_L3_error)
11776 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
11777 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1387, __pyx_L3_error)
11778 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
11779 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1387, __pyx_L3_error)
11780 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
11781 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1387, __pyx_L3_error)
11782 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
11783 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1387, __pyx_L3_error)
11784 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
11785 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1387, __pyx_L3_error)
11786 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
11787 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1387, __pyx_L3_error)
11788 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
11789 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1387, __pyx_L3_error)
11790 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
11791 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1387, __pyx_L3_error)
11792 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
11793 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1387, __pyx_L3_error)
11794 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
11795 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1387, __pyx_L3_error)
11796 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
11797 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1387, __pyx_L3_error)
11798 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
11799 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1387, __pyx_L3_error)
11800 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
11801 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1387, __pyx_L3_error)
11802 }
11803 __pyx_v_tau0 = ((PyArrayObject *)values[0]);
11804 __pyx_v_tau1 = ((PyArrayObject *)values[1]);
11805 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
11806 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
11807 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
11808 __pyx_v_pdeResidualU = ((PyArrayObject *)values[5]);
11809 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[6]);
11810 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[7]);
11811 __pyx_v_pdeResidualV = ((PyArrayObject *)values[8]);
11812 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[9]);
11813 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[10]);
11814 __pyx_v_subgridErrorP = ((PyArrayObject *)values[11]);
11815 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[12]);
11816 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[13]);
11817 __pyx_v_subgridErrorU = ((PyArrayObject *)values[14]);
11818 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[15]);
11819 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[16]);
11820 __pyx_v_subgridErrorV = ((PyArrayObject *)values[17]);
11821 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[18]);
11822 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[19]);
11823 }
11824 goto __pyx_L6_skip;
11825 __pyx_L5_argtuple_error:;
11826 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_GLS_tauRes", 1, 20, 20, __pyx_nargs); __PYX_ERR(0, 1387, __pyx_L3_error)
11827 __pyx_L6_skip:;
11828 goto __pyx_L4_argument_unpacking_done;
11829 __pyx_L3_error:;
11830 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11831 Py_XDECREF(values[__pyx_temp]);
11832 }
11833 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_GLS_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11834 __Pyx_RefNannyFinishContext();
11835 return NULL;
11836 __pyx_L4_argument_unpacking_done:;
11837 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1387, __pyx_L1_error)
11838 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1388, __pyx_L1_error)
11839 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1389, __pyx_L1_error)
11840 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1390, __pyx_L1_error)
11841 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1391, __pyx_L1_error)
11842 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1392, __pyx_L1_error)
11843 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1393, __pyx_L1_error)
11844 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1394, __pyx_L1_error)
11845 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1395, __pyx_L1_error)
11846 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1396, __pyx_L1_error)
11847 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1397, __pyx_L1_error)
11848 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1398, __pyx_L1_error)
11849 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1399, __pyx_L1_error)
11850 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1400, __pyx_L1_error)
11851 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1401, __pyx_L1_error)
11852 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1402, __pyx_L1_error)
11853 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1403, __pyx_L1_error)
11854 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1404, __pyx_L1_error)
11855 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1405, __pyx_L1_error)
11856 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1406, __pyx_L1_error)
11857 __pyx_r = __pyx_pf_13csubgridError_48calculateSubgridErrorStokes2D_GLS_tauRes(__pyx_self, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv);
11858
11859 /* function exit code */
11860 goto __pyx_L0;
11861 __pyx_L1_error:;
11862 __pyx_r = NULL;
11863 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11864 Py_XDECREF(values[__pyx_temp]);
11865 }
11866 goto __pyx_L7_cleaned_up;
11867 __pyx_L0:;
11868 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11869 Py_XDECREF(values[__pyx_temp]);
11870 }
11871 __pyx_L7_cleaned_up:;
11872 __Pyx_RefNannyFinishContext();
11873 return __pyx_r;
11874}
11875
11876static PyObject *__pyx_pf_13csubgridError_48calculateSubgridErrorStokes2D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
11877 PyObject *__pyx_r = NULL;
11878 __Pyx_RefNannyDeclarations
11879 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_GLS_tauRes", 0);
11880
11881 /* "csubgridError.pyx":1407
11882 * np.ndarray dsubgridErrorV_dp,
11883 * np.ndarray dsubgridErrorV_dv):
11884 * ccalculateSubgridErrorStokes2D_GLS_tauRes(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
11885 * dsubgridErrorP_du.shape[1],
11886 * dsubgridErrorP_du.shape[2],
11887*/
11888 calculateSubgridErrorStokes2D_GLS_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
11889
11890 /* "csubgridError.pyx":1387
11891 * <double*> tau0.data,
11892 * <double*> tau1.data)
11893 * def calculateSubgridErrorStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
11894 * np.ndarray tau1,
11895 * np.ndarray pdeResidualP,
11896*/
11897
11898 /* function exit code */
11899 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11900 __Pyx_XGIVEREF(__pyx_r);
11901 __Pyx_RefNannyFinishContext();
11902 return __pyx_r;
11903}
11904
11905/* "csubgridError.pyx":1431
11906 * <double*> dsubgridErrorV_dp.data,
11907 * <double*> dsubgridErrorV_dv.data)
11908 * def calculateSubgridErrorStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
11909 * np.ndarray tau1,
11910 * np.ndarray pdeResidualP,
11911*/
11912
11913/* Python wrapper */
11914static PyObject *__pyx_pw_13csubgridError_51calculateSubgridErrorStokes3D_GLS_tauRes(PyObject *__pyx_self,
11915#if CYTHON_VECTORCALL
11916PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11917#else
11918PyObject *__pyx_args, PyObject *__pyx_kwds
11919#endif
11920); /*proto*/
11921static PyMethodDef __pyx_mdef_13csubgridError_51calculateSubgridErrorStokes3D_GLS_tauRes = {"calculateSubgridErrorStokes3D_GLS_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_51calculateSubgridErrorStokes3D_GLS_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11922static PyObject *__pyx_pw_13csubgridError_51calculateSubgridErrorStokes3D_GLS_tauRes(PyObject *__pyx_self,
11923#if CYTHON_VECTORCALL
11924PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11925#else
11926PyObject *__pyx_args, PyObject *__pyx_kwds
11927#endif
11928) {
11929 PyArrayObject *__pyx_v_tau0 = 0;
11930 PyArrayObject *__pyx_v_tau1 = 0;
11931 PyArrayObject *__pyx_v_pdeResidualP = 0;
11932 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
11933 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
11934 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
11935 PyArrayObject *__pyx_v_pdeResidualU = 0;
11936 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
11937 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
11938 PyArrayObject *__pyx_v_pdeResidualV = 0;
11939 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
11940 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
11941 PyArrayObject *__pyx_v_pdeResidualW = 0;
11942 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
11943 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
11944 PyArrayObject *__pyx_v_subgridErrorP = 0;
11945 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
11946 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
11947 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
11948 PyArrayObject *__pyx_v_subgridErrorU = 0;
11949 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
11950 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
11951 PyArrayObject *__pyx_v_subgridErrorV = 0;
11952 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
11953 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
11954 PyArrayObject *__pyx_v_subgridErrorW = 0;
11955 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
11956 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
11957 #if !CYTHON_VECTORCALL
11958 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11959 #endif
11960 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11961 PyObject* values[28] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
11962 int __pyx_lineno = 0;
11963 const char *__pyx_filename = NULL;
11964 int __pyx_clineno = 0;
11965 PyObject *__pyx_r = 0;
11966 __Pyx_RefNannyDeclarations
11967 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_tauRes (wrapper)", 0);
11968 #if !CYTHON_VECTORCALL
11969 #if CYTHON_ASSUME_SAFE_SIZE
11970 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11971 #else
11972 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11973 #endif
11974 #endif
11975 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11976 {
11977 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
11978 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11979 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1431, __pyx_L3_error)
11980 if (__pyx_kwds_len > 0) {
11981 switch (__pyx_nargs) {
11982 case 28:
11983 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
11984 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1431, __pyx_L3_error)
11985 CYTHON_FALLTHROUGH;
11986 case 27:
11987 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
11988 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1431, __pyx_L3_error)
11989 CYTHON_FALLTHROUGH;
11990 case 26:
11991 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
11992 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1431, __pyx_L3_error)
11993 CYTHON_FALLTHROUGH;
11994 case 25:
11995 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
11996 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1431, __pyx_L3_error)
11997 CYTHON_FALLTHROUGH;
11998 case 24:
11999 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
12000 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1431, __pyx_L3_error)
12001 CYTHON_FALLTHROUGH;
12002 case 23:
12003 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
12004 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1431, __pyx_L3_error)
12005 CYTHON_FALLTHROUGH;
12006 case 22:
12007 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
12008 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1431, __pyx_L3_error)
12009 CYTHON_FALLTHROUGH;
12010 case 21:
12011 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
12012 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1431, __pyx_L3_error)
12013 CYTHON_FALLTHROUGH;
12014 case 20:
12015 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
12016 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1431, __pyx_L3_error)
12017 CYTHON_FALLTHROUGH;
12018 case 19:
12019 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
12020 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1431, __pyx_L3_error)
12021 CYTHON_FALLTHROUGH;
12022 case 18:
12023 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
12024 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1431, __pyx_L3_error)
12025 CYTHON_FALLTHROUGH;
12026 case 17:
12027 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
12028 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1431, __pyx_L3_error)
12029 CYTHON_FALLTHROUGH;
12030 case 16:
12031 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
12032 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1431, __pyx_L3_error)
12033 CYTHON_FALLTHROUGH;
12034 case 15:
12035 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
12036 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1431, __pyx_L3_error)
12037 CYTHON_FALLTHROUGH;
12038 case 14:
12039 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
12040 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1431, __pyx_L3_error)
12041 CYTHON_FALLTHROUGH;
12042 case 13:
12043 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12044 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1431, __pyx_L3_error)
12045 CYTHON_FALLTHROUGH;
12046 case 12:
12047 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12048 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1431, __pyx_L3_error)
12049 CYTHON_FALLTHROUGH;
12050 case 11:
12051 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12052 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1431, __pyx_L3_error)
12053 CYTHON_FALLTHROUGH;
12054 case 10:
12055 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12056 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1431, __pyx_L3_error)
12057 CYTHON_FALLTHROUGH;
12058 case 9:
12059 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12060 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1431, __pyx_L3_error)
12061 CYTHON_FALLTHROUGH;
12062 case 8:
12063 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12064 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1431, __pyx_L3_error)
12065 CYTHON_FALLTHROUGH;
12066 case 7:
12067 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12068 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1431, __pyx_L3_error)
12069 CYTHON_FALLTHROUGH;
12070 case 6:
12071 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12072 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1431, __pyx_L3_error)
12073 CYTHON_FALLTHROUGH;
12074 case 5:
12075 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12076 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1431, __pyx_L3_error)
12077 CYTHON_FALLTHROUGH;
12078 case 4:
12079 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12080 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1431, __pyx_L3_error)
12081 CYTHON_FALLTHROUGH;
12082 case 3:
12083 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12084 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1431, __pyx_L3_error)
12085 CYTHON_FALLTHROUGH;
12086 case 2:
12087 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12088 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1431, __pyx_L3_error)
12089 CYTHON_FALLTHROUGH;
12090 case 1:
12091 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12092 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1431, __pyx_L3_error)
12093 CYTHON_FALLTHROUGH;
12094 case 0: break;
12095 default: goto __pyx_L5_argtuple_error;
12096 }
12097 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12098 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes3D_GLS_tauRes", 0) < (0)) __PYX_ERR(0, 1431, __pyx_L3_error)
12099 for (Py_ssize_t i = __pyx_nargs; i < 28; i++) {
12100 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_tauRes", 1, 28, 28, i); __PYX_ERR(0, 1431, __pyx_L3_error) }
12101 }
12102 } else if (unlikely(__pyx_nargs != 28)) {
12103 goto __pyx_L5_argtuple_error;
12104 } else {
12105 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12106 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1431, __pyx_L3_error)
12107 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12108 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1431, __pyx_L3_error)
12109 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12110 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1431, __pyx_L3_error)
12111 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12112 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1431, __pyx_L3_error)
12113 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12114 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1431, __pyx_L3_error)
12115 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12116 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1431, __pyx_L3_error)
12117 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12118 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1431, __pyx_L3_error)
12119 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12120 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1431, __pyx_L3_error)
12121 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12122 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1431, __pyx_L3_error)
12123 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12124 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1431, __pyx_L3_error)
12125 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12126 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1431, __pyx_L3_error)
12127 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12128 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1431, __pyx_L3_error)
12129 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12130 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1431, __pyx_L3_error)
12131 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
12132 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1431, __pyx_L3_error)
12133 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
12134 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1431, __pyx_L3_error)
12135 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
12136 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1431, __pyx_L3_error)
12137 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
12138 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1431, __pyx_L3_error)
12139 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
12140 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1431, __pyx_L3_error)
12141 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
12142 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1431, __pyx_L3_error)
12143 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
12144 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1431, __pyx_L3_error)
12145 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
12146 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1431, __pyx_L3_error)
12147 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
12148 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1431, __pyx_L3_error)
12149 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
12150 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1431, __pyx_L3_error)
12151 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
12152 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1431, __pyx_L3_error)
12153 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
12154 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1431, __pyx_L3_error)
12155 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
12156 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1431, __pyx_L3_error)
12157 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
12158 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1431, __pyx_L3_error)
12159 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
12160 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1431, __pyx_L3_error)
12161 }
12162 __pyx_v_tau0 = ((PyArrayObject *)values[0]);
12163 __pyx_v_tau1 = ((PyArrayObject *)values[1]);
12164 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
12165 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
12166 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
12167 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[5]);
12168 __pyx_v_pdeResidualU = ((PyArrayObject *)values[6]);
12169 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[7]);
12170 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[8]);
12171 __pyx_v_pdeResidualV = ((PyArrayObject *)values[9]);
12172 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[10]);
12173 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[11]);
12174 __pyx_v_pdeResidualW = ((PyArrayObject *)values[12]);
12175 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[13]);
12176 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[14]);
12177 __pyx_v_subgridErrorP = ((PyArrayObject *)values[15]);
12178 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[16]);
12179 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[17]);
12180 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[18]);
12181 __pyx_v_subgridErrorU = ((PyArrayObject *)values[19]);
12182 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[20]);
12183 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[21]);
12184 __pyx_v_subgridErrorV = ((PyArrayObject *)values[22]);
12185 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[23]);
12186 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[24]);
12187 __pyx_v_subgridErrorW = ((PyArrayObject *)values[25]);
12188 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[26]);
12189 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[27]);
12190 }
12191 goto __pyx_L6_skip;
12192 __pyx_L5_argtuple_error:;
12193 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes3D_GLS_tauRes", 1, 28, 28, __pyx_nargs); __PYX_ERR(0, 1431, __pyx_L3_error)
12194 __pyx_L6_skip:;
12195 goto __pyx_L4_argument_unpacking_done;
12196 __pyx_L3_error:;
12197 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12198 Py_XDECREF(values[__pyx_temp]);
12199 }
12200 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes3D_GLS_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
12201 __Pyx_RefNannyFinishContext();
12202 return NULL;
12203 __pyx_L4_argument_unpacking_done:;
12204 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1431, __pyx_L1_error)
12205 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1432, __pyx_L1_error)
12206 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1433, __pyx_L1_error)
12207 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1434, __pyx_L1_error)
12208 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1435, __pyx_L1_error)
12209 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1436, __pyx_L1_error)
12210 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1437, __pyx_L1_error)
12211 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1438, __pyx_L1_error)
12212 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1439, __pyx_L1_error)
12213 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1440, __pyx_L1_error)
12214 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1441, __pyx_L1_error)
12215 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1442, __pyx_L1_error)
12216 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1443, __pyx_L1_error)
12217 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1444, __pyx_L1_error)
12218 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1445, __pyx_L1_error)
12219 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1446, __pyx_L1_error)
12220 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1447, __pyx_L1_error)
12221 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1448, __pyx_L1_error)
12222 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1449, __pyx_L1_error)
12223 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1450, __pyx_L1_error)
12224 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1451, __pyx_L1_error)
12225 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1452, __pyx_L1_error)
12226 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1453, __pyx_L1_error)
12227 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1454, __pyx_L1_error)
12228 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1455, __pyx_L1_error)
12229 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1456, __pyx_L1_error)
12230 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1457, __pyx_L1_error)
12231 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1458, __pyx_L1_error)
12232 __pyx_r = __pyx_pf_13csubgridError_50calculateSubgridErrorStokes3D_GLS_tauRes(__pyx_self, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
12233
12234 /* function exit code */
12235 goto __pyx_L0;
12236 __pyx_L1_error:;
12237 __pyx_r = NULL;
12238 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12239 Py_XDECREF(values[__pyx_temp]);
12240 }
12241 goto __pyx_L7_cleaned_up;
12242 __pyx_L0:;
12243 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12244 Py_XDECREF(values[__pyx_temp]);
12245 }
12246 __pyx_L7_cleaned_up:;
12247 __Pyx_RefNannyFinishContext();
12248 return __pyx_r;
12249}
12250
12251static PyObject *__pyx_pf_13csubgridError_50calculateSubgridErrorStokes3D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
12252 PyObject *__pyx_r = NULL;
12253 __Pyx_RefNannyDeclarations
12254 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes3D_GLS_tauRes", 0);
12255
12256 /* "csubgridError.pyx":1459
12257 * np.ndarray dsubgridErrorW_dp,
12258 * np.ndarray dsubgridErrorW_dw):
12259 * ccalculateSubgridErrorStokes3D_GLS_tauRes(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
12260 * dsubgridErrorP_du.shape[1],
12261 * dsubgridErrorP_du.shape[2],
12262*/
12263 calculateSubgridErrorStokes3D_GLS_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
12264
12265 /* "csubgridError.pyx":1431
12266 * <double*> dsubgridErrorV_dp.data,
12267 * <double*> dsubgridErrorV_dv.data)
12268 * def calculateSubgridErrorStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
12269 * np.ndarray tau1,
12270 * np.ndarray pdeResidualP,
12271*/
12272
12273 /* function exit code */
12274 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12275 __Pyx_XGIVEREF(__pyx_r);
12276 __Pyx_RefNannyFinishContext();
12277 return __pyx_r;
12278}
12279
12280/* "csubgridError.pyx":1491
12281 * <double*> dsubgridErrorW_dp.data,
12282 * <double*> dsubgridErrorW_dw.data)
12283 * def calculateSubgridErrorNavierStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
12284 * np.ndarray tau1,
12285 * np.ndarray pdeResidualP,
12286*/
12287
12288/* Python wrapper */
12289static PyObject *__pyx_pw_13csubgridError_53calculateSubgridErrorNavierStokes3D_GLS_tauRes(PyObject *__pyx_self,
12290#if CYTHON_VECTORCALL
12291PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12292#else
12293PyObject *__pyx_args, PyObject *__pyx_kwds
12294#endif
12295); /*proto*/
12296static PyMethodDef __pyx_mdef_13csubgridError_53calculateSubgridErrorNavierStokes3D_GLS_tauRes = {"calculateSubgridErrorNavierStokes3D_GLS_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_53calculateSubgridErrorNavierStokes3D_GLS_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12297static PyObject *__pyx_pw_13csubgridError_53calculateSubgridErrorNavierStokes3D_GLS_tauRes(PyObject *__pyx_self,
12298#if CYTHON_VECTORCALL
12299PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12300#else
12301PyObject *__pyx_args, PyObject *__pyx_kwds
12302#endif
12303) {
12304 PyArrayObject *__pyx_v_tau0 = 0;
12305 PyArrayObject *__pyx_v_tau1 = 0;
12306 PyArrayObject *__pyx_v_pdeResidualP = 0;
12307 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
12308 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
12309 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
12310 PyArrayObject *__pyx_v_pdeResidualU = 0;
12311 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
12312 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
12313 PyArrayObject *__pyx_v_dpdeResidualU_dv = 0;
12314 PyArrayObject *__pyx_v_dpdeResidualU_dw = 0;
12315 PyArrayObject *__pyx_v_pdeResidualV = 0;
12316 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
12317 PyArrayObject *__pyx_v_dpdeResidualV_du = 0;
12318 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
12319 PyArrayObject *__pyx_v_dpdeResidualV_dw = 0;
12320 PyArrayObject *__pyx_v_pdeResidualW = 0;
12321 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
12322 PyArrayObject *__pyx_v_dpdeResidualW_du = 0;
12323 PyArrayObject *__pyx_v_dpdeResidualW_dv = 0;
12324 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
12325 PyArrayObject *__pyx_v_subgridErrorP = 0;
12326 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
12327 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
12328 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
12329 PyArrayObject *__pyx_v_subgridErrorU = 0;
12330 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
12331 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
12332 PyArrayObject *__pyx_v_dsubgridErrorU_dv = 0;
12333 PyArrayObject *__pyx_v_dsubgridErrorU_dw = 0;
12334 PyArrayObject *__pyx_v_subgridErrorV = 0;
12335 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
12336 PyArrayObject *__pyx_v_dsubgridErrorV_du = 0;
12337 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
12338 PyArrayObject *__pyx_v_dsubgridErrorV_dw = 0;
12339 PyArrayObject *__pyx_v_subgridErrorW = 0;
12340 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
12341 PyArrayObject *__pyx_v_dsubgridErrorW_du = 0;
12342 PyArrayObject *__pyx_v_dsubgridErrorW_dv = 0;
12343 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
12344 #if !CYTHON_VECTORCALL
12345 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12346 #endif
12347 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12348 PyObject* values[40] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
12349 int __pyx_lineno = 0;
12350 const char *__pyx_filename = NULL;
12351 int __pyx_clineno = 0;
12352 PyObject *__pyx_r = 0;
12353 __Pyx_RefNannyDeclarations
12354 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_tauRes (wrapper)", 0);
12355 #if !CYTHON_VECTORCALL
12356 #if CYTHON_ASSUME_SAFE_SIZE
12357 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12358 #else
12359 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12360 #endif
12361 #endif
12362 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12363 {
12364 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau0,&__pyx_mstate_global->__pyx_n_u_tau1,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
12365 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12366 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1491, __pyx_L3_error)
12367 if (__pyx_kwds_len > 0) {
12368 switch (__pyx_nargs) {
12369 case 40:
12370 values[39] = __Pyx_ArgRef_FASTCALL(__pyx_args, 39);
12371 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[39])) __PYX_ERR(0, 1491, __pyx_L3_error)
12372 CYTHON_FALLTHROUGH;
12373 case 39:
12374 values[38] = __Pyx_ArgRef_FASTCALL(__pyx_args, 38);
12375 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[38])) __PYX_ERR(0, 1491, __pyx_L3_error)
12376 CYTHON_FALLTHROUGH;
12377 case 38:
12378 values[37] = __Pyx_ArgRef_FASTCALL(__pyx_args, 37);
12379 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[37])) __PYX_ERR(0, 1491, __pyx_L3_error)
12380 CYTHON_FALLTHROUGH;
12381 case 37:
12382 values[36] = __Pyx_ArgRef_FASTCALL(__pyx_args, 36);
12383 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[36])) __PYX_ERR(0, 1491, __pyx_L3_error)
12384 CYTHON_FALLTHROUGH;
12385 case 36:
12386 values[35] = __Pyx_ArgRef_FASTCALL(__pyx_args, 35);
12387 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[35])) __PYX_ERR(0, 1491, __pyx_L3_error)
12388 CYTHON_FALLTHROUGH;
12389 case 35:
12390 values[34] = __Pyx_ArgRef_FASTCALL(__pyx_args, 34);
12391 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[34])) __PYX_ERR(0, 1491, __pyx_L3_error)
12392 CYTHON_FALLTHROUGH;
12393 case 34:
12394 values[33] = __Pyx_ArgRef_FASTCALL(__pyx_args, 33);
12395 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[33])) __PYX_ERR(0, 1491, __pyx_L3_error)
12396 CYTHON_FALLTHROUGH;
12397 case 33:
12398 values[32] = __Pyx_ArgRef_FASTCALL(__pyx_args, 32);
12399 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[32])) __PYX_ERR(0, 1491, __pyx_L3_error)
12400 CYTHON_FALLTHROUGH;
12401 case 32:
12402 values[31] = __Pyx_ArgRef_FASTCALL(__pyx_args, 31);
12403 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[31])) __PYX_ERR(0, 1491, __pyx_L3_error)
12404 CYTHON_FALLTHROUGH;
12405 case 31:
12406 values[30] = __Pyx_ArgRef_FASTCALL(__pyx_args, 30);
12407 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[30])) __PYX_ERR(0, 1491, __pyx_L3_error)
12408 CYTHON_FALLTHROUGH;
12409 case 30:
12410 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
12411 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1491, __pyx_L3_error)
12412 CYTHON_FALLTHROUGH;
12413 case 29:
12414 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
12415 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1491, __pyx_L3_error)
12416 CYTHON_FALLTHROUGH;
12417 case 28:
12418 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
12419 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1491, __pyx_L3_error)
12420 CYTHON_FALLTHROUGH;
12421 case 27:
12422 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
12423 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1491, __pyx_L3_error)
12424 CYTHON_FALLTHROUGH;
12425 case 26:
12426 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
12427 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1491, __pyx_L3_error)
12428 CYTHON_FALLTHROUGH;
12429 case 25:
12430 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
12431 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1491, __pyx_L3_error)
12432 CYTHON_FALLTHROUGH;
12433 case 24:
12434 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
12435 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1491, __pyx_L3_error)
12436 CYTHON_FALLTHROUGH;
12437 case 23:
12438 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
12439 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1491, __pyx_L3_error)
12440 CYTHON_FALLTHROUGH;
12441 case 22:
12442 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
12443 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1491, __pyx_L3_error)
12444 CYTHON_FALLTHROUGH;
12445 case 21:
12446 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
12447 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1491, __pyx_L3_error)
12448 CYTHON_FALLTHROUGH;
12449 case 20:
12450 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
12451 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1491, __pyx_L3_error)
12452 CYTHON_FALLTHROUGH;
12453 case 19:
12454 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
12455 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1491, __pyx_L3_error)
12456 CYTHON_FALLTHROUGH;
12457 case 18:
12458 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
12459 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1491, __pyx_L3_error)
12460 CYTHON_FALLTHROUGH;
12461 case 17:
12462 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
12463 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1491, __pyx_L3_error)
12464 CYTHON_FALLTHROUGH;
12465 case 16:
12466 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
12467 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1491, __pyx_L3_error)
12468 CYTHON_FALLTHROUGH;
12469 case 15:
12470 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
12471 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1491, __pyx_L3_error)
12472 CYTHON_FALLTHROUGH;
12473 case 14:
12474 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
12475 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1491, __pyx_L3_error)
12476 CYTHON_FALLTHROUGH;
12477 case 13:
12478 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12479 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1491, __pyx_L3_error)
12480 CYTHON_FALLTHROUGH;
12481 case 12:
12482 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12483 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1491, __pyx_L3_error)
12484 CYTHON_FALLTHROUGH;
12485 case 11:
12486 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12487 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1491, __pyx_L3_error)
12488 CYTHON_FALLTHROUGH;
12489 case 10:
12490 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12491 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1491, __pyx_L3_error)
12492 CYTHON_FALLTHROUGH;
12493 case 9:
12494 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12495 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1491, __pyx_L3_error)
12496 CYTHON_FALLTHROUGH;
12497 case 8:
12498 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12499 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1491, __pyx_L3_error)
12500 CYTHON_FALLTHROUGH;
12501 case 7:
12502 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12503 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1491, __pyx_L3_error)
12504 CYTHON_FALLTHROUGH;
12505 case 6:
12506 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12507 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1491, __pyx_L3_error)
12508 CYTHON_FALLTHROUGH;
12509 case 5:
12510 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12511 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1491, __pyx_L3_error)
12512 CYTHON_FALLTHROUGH;
12513 case 4:
12514 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12515 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1491, __pyx_L3_error)
12516 CYTHON_FALLTHROUGH;
12517 case 3:
12518 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12519 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1491, __pyx_L3_error)
12520 CYTHON_FALLTHROUGH;
12521 case 2:
12522 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12523 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1491, __pyx_L3_error)
12524 CYTHON_FALLTHROUGH;
12525 case 1:
12526 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12527 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1491, __pyx_L3_error)
12528 CYTHON_FALLTHROUGH;
12529 case 0: break;
12530 default: goto __pyx_L5_argtuple_error;
12531 }
12532 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12533 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes3D_GLS_tauRes", 0) < (0)) __PYX_ERR(0, 1491, __pyx_L3_error)
12534 for (Py_ssize_t i = __pyx_nargs; i < 40; i++) {
12535 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_tauRes", 1, 40, 40, i); __PYX_ERR(0, 1491, __pyx_L3_error) }
12536 }
12537 } else if (unlikely(__pyx_nargs != 40)) {
12538 goto __pyx_L5_argtuple_error;
12539 } else {
12540 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12541 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1491, __pyx_L3_error)
12542 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12543 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1491, __pyx_L3_error)
12544 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12545 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1491, __pyx_L3_error)
12546 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12547 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1491, __pyx_L3_error)
12548 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12549 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1491, __pyx_L3_error)
12550 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12551 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1491, __pyx_L3_error)
12552 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12553 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1491, __pyx_L3_error)
12554 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12555 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1491, __pyx_L3_error)
12556 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12557 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1491, __pyx_L3_error)
12558 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12559 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1491, __pyx_L3_error)
12560 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12561 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1491, __pyx_L3_error)
12562 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12563 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1491, __pyx_L3_error)
12564 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12565 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1491, __pyx_L3_error)
12566 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
12567 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1491, __pyx_L3_error)
12568 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
12569 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1491, __pyx_L3_error)
12570 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
12571 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1491, __pyx_L3_error)
12572 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
12573 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1491, __pyx_L3_error)
12574 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
12575 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1491, __pyx_L3_error)
12576 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
12577 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1491, __pyx_L3_error)
12578 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
12579 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1491, __pyx_L3_error)
12580 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
12581 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1491, __pyx_L3_error)
12582 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
12583 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1491, __pyx_L3_error)
12584 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
12585 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1491, __pyx_L3_error)
12586 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
12587 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1491, __pyx_L3_error)
12588 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
12589 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1491, __pyx_L3_error)
12590 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
12591 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1491, __pyx_L3_error)
12592 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
12593 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1491, __pyx_L3_error)
12594 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
12595 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1491, __pyx_L3_error)
12596 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
12597 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1491, __pyx_L3_error)
12598 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
12599 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1491, __pyx_L3_error)
12600 values[30] = __Pyx_ArgRef_FASTCALL(__pyx_args, 30);
12601 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[30])) __PYX_ERR(0, 1491, __pyx_L3_error)
12602 values[31] = __Pyx_ArgRef_FASTCALL(__pyx_args, 31);
12603 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[31])) __PYX_ERR(0, 1491, __pyx_L3_error)
12604 values[32] = __Pyx_ArgRef_FASTCALL(__pyx_args, 32);
12605 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[32])) __PYX_ERR(0, 1491, __pyx_L3_error)
12606 values[33] = __Pyx_ArgRef_FASTCALL(__pyx_args, 33);
12607 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[33])) __PYX_ERR(0, 1491, __pyx_L3_error)
12608 values[34] = __Pyx_ArgRef_FASTCALL(__pyx_args, 34);
12609 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[34])) __PYX_ERR(0, 1491, __pyx_L3_error)
12610 values[35] = __Pyx_ArgRef_FASTCALL(__pyx_args, 35);
12611 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[35])) __PYX_ERR(0, 1491, __pyx_L3_error)
12612 values[36] = __Pyx_ArgRef_FASTCALL(__pyx_args, 36);
12613 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[36])) __PYX_ERR(0, 1491, __pyx_L3_error)
12614 values[37] = __Pyx_ArgRef_FASTCALL(__pyx_args, 37);
12615 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[37])) __PYX_ERR(0, 1491, __pyx_L3_error)
12616 values[38] = __Pyx_ArgRef_FASTCALL(__pyx_args, 38);
12617 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[38])) __PYX_ERR(0, 1491, __pyx_L3_error)
12618 values[39] = __Pyx_ArgRef_FASTCALL(__pyx_args, 39);
12619 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[39])) __PYX_ERR(0, 1491, __pyx_L3_error)
12620 }
12621 __pyx_v_tau0 = ((PyArrayObject *)values[0]);
12622 __pyx_v_tau1 = ((PyArrayObject *)values[1]);
12623 __pyx_v_pdeResidualP = ((PyArrayObject *)values[2]);
12624 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[3]);
12625 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[4]);
12626 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[5]);
12627 __pyx_v_pdeResidualU = ((PyArrayObject *)values[6]);
12628 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[7]);
12629 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[8]);
12630 __pyx_v_dpdeResidualU_dv = ((PyArrayObject *)values[9]);
12631 __pyx_v_dpdeResidualU_dw = ((PyArrayObject *)values[10]);
12632 __pyx_v_pdeResidualV = ((PyArrayObject *)values[11]);
12633 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[12]);
12634 __pyx_v_dpdeResidualV_du = ((PyArrayObject *)values[13]);
12635 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[14]);
12636 __pyx_v_dpdeResidualV_dw = ((PyArrayObject *)values[15]);
12637 __pyx_v_pdeResidualW = ((PyArrayObject *)values[16]);
12638 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[17]);
12639 __pyx_v_dpdeResidualW_du = ((PyArrayObject *)values[18]);
12640 __pyx_v_dpdeResidualW_dv = ((PyArrayObject *)values[19]);
12641 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[20]);
12642 __pyx_v_subgridErrorP = ((PyArrayObject *)values[21]);
12643 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[22]);
12644 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[23]);
12645 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[24]);
12646 __pyx_v_subgridErrorU = ((PyArrayObject *)values[25]);
12647 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[26]);
12648 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[27]);
12649 __pyx_v_dsubgridErrorU_dv = ((PyArrayObject *)values[28]);
12650 __pyx_v_dsubgridErrorU_dw = ((PyArrayObject *)values[29]);
12651 __pyx_v_subgridErrorV = ((PyArrayObject *)values[30]);
12652 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[31]);
12653 __pyx_v_dsubgridErrorV_du = ((PyArrayObject *)values[32]);
12654 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[33]);
12655 __pyx_v_dsubgridErrorV_dw = ((PyArrayObject *)values[34]);
12656 __pyx_v_subgridErrorW = ((PyArrayObject *)values[35]);
12657 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[36]);
12658 __pyx_v_dsubgridErrorW_du = ((PyArrayObject *)values[37]);
12659 __pyx_v_dsubgridErrorW_dv = ((PyArrayObject *)values[38]);
12660 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[39]);
12661 }
12662 goto __pyx_L6_skip;
12663 __pyx_L5_argtuple_error:;
12664 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_tauRes", 1, 40, 40, __pyx_nargs); __PYX_ERR(0, 1491, __pyx_L3_error)
12665 __pyx_L6_skip:;
12666 goto __pyx_L4_argument_unpacking_done;
12667 __pyx_L3_error:;
12668 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12669 Py_XDECREF(values[__pyx_temp]);
12670 }
12671 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes3D_GLS_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
12672 __Pyx_RefNannyFinishContext();
12673 return NULL;
12674 __pyx_L4_argument_unpacking_done:;
12675 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau0", 0))) __PYX_ERR(0, 1491, __pyx_L1_error)
12676 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau1", 0))) __PYX_ERR(0, 1492, __pyx_L1_error)
12677 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1493, __pyx_L1_error)
12678 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1494, __pyx_L1_error)
12679 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1495, __pyx_L1_error)
12680 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1496, __pyx_L1_error)
12681 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1497, __pyx_L1_error)
12682 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1498, __pyx_L1_error)
12683 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1499, __pyx_L1_error)
12684 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dv", 0))) __PYX_ERR(0, 1500, __pyx_L1_error)
12685 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dw", 0))) __PYX_ERR(0, 1501, __pyx_L1_error)
12686 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1502, __pyx_L1_error)
12687 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1503, __pyx_L1_error)
12688 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_du", 0))) __PYX_ERR(0, 1504, __pyx_L1_error)
12689 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1505, __pyx_L1_error)
12690 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dw", 0))) __PYX_ERR(0, 1506, __pyx_L1_error)
12691 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1507, __pyx_L1_error)
12692 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1508, __pyx_L1_error)
12693 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_du", 0))) __PYX_ERR(0, 1509, __pyx_L1_error)
12694 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dv", 0))) __PYX_ERR(0, 1510, __pyx_L1_error)
12695 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1511, __pyx_L1_error)
12696 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1512, __pyx_L1_error)
12697 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1513, __pyx_L1_error)
12698 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1514, __pyx_L1_error)
12699 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1515, __pyx_L1_error)
12700 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1516, __pyx_L1_error)
12701 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1517, __pyx_L1_error)
12702 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1518, __pyx_L1_error)
12703 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dv", 0))) __PYX_ERR(0, 1519, __pyx_L1_error)
12704 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dw", 0))) __PYX_ERR(0, 1520, __pyx_L1_error)
12705 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1521, __pyx_L1_error)
12706 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1522, __pyx_L1_error)
12707 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_du", 0))) __PYX_ERR(0, 1523, __pyx_L1_error)
12708 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1524, __pyx_L1_error)
12709 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dw", 0))) __PYX_ERR(0, 1525, __pyx_L1_error)
12710 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1526, __pyx_L1_error)
12711 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1527, __pyx_L1_error)
12712 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_du", 0))) __PYX_ERR(0, 1528, __pyx_L1_error)
12713 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dv", 0))) __PYX_ERR(0, 1529, __pyx_L1_error)
12714 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1530, __pyx_L1_error)
12715 __pyx_r = __pyx_pf_13csubgridError_52calculateSubgridErrorNavierStokes3D_GLS_tauRes(__pyx_self, __pyx_v_tau0, __pyx_v_tau1, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_dpdeResidualU_dv, __pyx_v_dpdeResidualU_dw, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_du, __pyx_v_dpdeResidualV_dv, __pyx_v_dpdeResidualV_dw, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_du, __pyx_v_dpdeResidualW_dv, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_dsubgridErrorU_dv, __pyx_v_dsubgridErrorU_dw, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_du, __pyx_v_dsubgridErrorV_dv, __pyx_v_dsubgridErrorV_dw, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_du, __pyx_v_dsubgridErrorW_dv, __pyx_v_dsubgridErrorW_dw);
12716
12717 /* function exit code */
12718 goto __pyx_L0;
12719 __pyx_L1_error:;
12720 __pyx_r = NULL;
12721 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12722 Py_XDECREF(values[__pyx_temp]);
12723 }
12724 goto __pyx_L7_cleaned_up;
12725 __pyx_L0:;
12726 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12727 Py_XDECREF(values[__pyx_temp]);
12728 }
12729 __pyx_L7_cleaned_up:;
12730 __Pyx_RefNannyFinishContext();
12731 return __pyx_r;
12732}
12733
12734static PyObject *__pyx_pf_13csubgridError_52calculateSubgridErrorNavierStokes3D_GLS_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau0, PyArrayObject *__pyx_v_tau1, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_dpdeResidualU_dv, PyArrayObject *__pyx_v_dpdeResidualU_dw, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_du, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_dpdeResidualV_dw, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_du, PyArrayObject *__pyx_v_dpdeResidualW_dv, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_dsubgridErrorU_dw, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_dsubgridErrorV_dw, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_du, PyArrayObject *__pyx_v_dsubgridErrorW_dv, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
12735 PyObject *__pyx_r = NULL;
12736 __Pyx_RefNannyDeclarations
12737 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_tauRes", 0);
12738
12739 /* "csubgridError.pyx":1531
12740 * np.ndarray dsubgridErrorW_dv,
12741 * np.ndarray dsubgridErrorW_dw):
12742 * ccalculateSubgridErrorNavierStokes3D_GLS_tauRes(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
12743 * dsubgridErrorP_du.shape[1],
12744 * dsubgridErrorP_du.shape[2],
12745*/
12746 calculateSubgridErrorNavierStokes3D_GLS_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
12747
12748 /* "csubgridError.pyx":1491
12749 * <double*> dsubgridErrorW_dp.data,
12750 * <double*> dsubgridErrorW_dw.data)
12751 * def calculateSubgridErrorNavierStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
12752 * np.ndarray tau1,
12753 * np.ndarray pdeResidualP,
12754*/
12755
12756 /* function exit code */
12757 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12758 __Pyx_XGIVEREF(__pyx_r);
12759 __Pyx_RefNannyFinishContext();
12760 return __pyx_r;
12761}
12762
12763/* "csubgridError.pyx":1575
12764 * <double*> dsubgridErrorW_dv.data,
12765 * <double*> dsubgridErrorW_dw.data)
12766 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
12767 * np.ndarray dm,
12768 * np.ndarray f,
12769*/
12770
12771/* Python wrapper */
12772static PyObject *__pyx_pw_13csubgridError_55calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(PyObject *__pyx_self,
12773#if CYTHON_VECTORCALL
12774PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12775#else
12776PyObject *__pyx_args, PyObject *__pyx_kwds
12777#endif
12778); /*proto*/
12779static PyMethodDef __pyx_mdef_13csubgridError_55calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure = {"calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_55calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12780static PyObject *__pyx_pw_13csubgridError_55calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(PyObject *__pyx_self,
12781#if CYTHON_VECTORCALL
12782PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12783#else
12784PyObject *__pyx_args, PyObject *__pyx_kwds
12785#endif
12786) {
12787 PyArrayObject *__pyx_v_elementDiameter = 0;
12788 PyArrayObject *__pyx_v_dm = 0;
12789 PyArrayObject *__pyx_v_f = 0;
12790 PyArrayObject *__pyx_v_a = 0;
12791 PyArrayObject *__pyx_v_pdeResidualP = 0;
12792 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
12793 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
12794 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
12795 PyArrayObject *__pyx_v_pdeResidualU = 0;
12796 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
12797 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
12798 PyArrayObject *__pyx_v_pdeResidualV = 0;
12799 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
12800 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
12801 PyArrayObject *__pyx_v_pdeResidualW = 0;
12802 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
12803 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
12804 PyArrayObject *__pyx_v_subgridErrorP = 0;
12805 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
12806 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
12807 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
12808 PyArrayObject *__pyx_v_subgridErrorU = 0;
12809 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
12810 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
12811 PyArrayObject *__pyx_v_subgridErrorV = 0;
12812 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
12813 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
12814 PyArrayObject *__pyx_v_subgridErrorW = 0;
12815 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
12816 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
12817 #if !CYTHON_VECTORCALL
12818 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12819 #endif
12820 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12821 PyObject* values[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
12822 int __pyx_lineno = 0;
12823 const char *__pyx_filename = NULL;
12824 int __pyx_clineno = 0;
12825 PyObject *__pyx_r = 0;
12826 __Pyx_RefNannyDeclarations
12827 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure (wrapper)", 0);
12828 #if !CYTHON_VECTORCALL
12829 #if CYTHON_ASSUME_SAFE_SIZE
12830 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12831 #else
12832 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12833 #endif
12834 #endif
12835 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12836 {
12837 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
12838 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12839 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1575, __pyx_L3_error)
12840 if (__pyx_kwds_len > 0) {
12841 switch (__pyx_nargs) {
12842 case 30:
12843 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
12844 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1575, __pyx_L3_error)
12845 CYTHON_FALLTHROUGH;
12846 case 29:
12847 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
12848 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1575, __pyx_L3_error)
12849 CYTHON_FALLTHROUGH;
12850 case 28:
12851 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
12852 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1575, __pyx_L3_error)
12853 CYTHON_FALLTHROUGH;
12854 case 27:
12855 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
12856 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1575, __pyx_L3_error)
12857 CYTHON_FALLTHROUGH;
12858 case 26:
12859 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
12860 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1575, __pyx_L3_error)
12861 CYTHON_FALLTHROUGH;
12862 case 25:
12863 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
12864 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1575, __pyx_L3_error)
12865 CYTHON_FALLTHROUGH;
12866 case 24:
12867 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
12868 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1575, __pyx_L3_error)
12869 CYTHON_FALLTHROUGH;
12870 case 23:
12871 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
12872 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1575, __pyx_L3_error)
12873 CYTHON_FALLTHROUGH;
12874 case 22:
12875 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
12876 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1575, __pyx_L3_error)
12877 CYTHON_FALLTHROUGH;
12878 case 21:
12879 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
12880 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1575, __pyx_L3_error)
12881 CYTHON_FALLTHROUGH;
12882 case 20:
12883 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
12884 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1575, __pyx_L3_error)
12885 CYTHON_FALLTHROUGH;
12886 case 19:
12887 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
12888 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1575, __pyx_L3_error)
12889 CYTHON_FALLTHROUGH;
12890 case 18:
12891 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
12892 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1575, __pyx_L3_error)
12893 CYTHON_FALLTHROUGH;
12894 case 17:
12895 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
12896 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1575, __pyx_L3_error)
12897 CYTHON_FALLTHROUGH;
12898 case 16:
12899 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
12900 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1575, __pyx_L3_error)
12901 CYTHON_FALLTHROUGH;
12902 case 15:
12903 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
12904 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1575, __pyx_L3_error)
12905 CYTHON_FALLTHROUGH;
12906 case 14:
12907 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
12908 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1575, __pyx_L3_error)
12909 CYTHON_FALLTHROUGH;
12910 case 13:
12911 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12912 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1575, __pyx_L3_error)
12913 CYTHON_FALLTHROUGH;
12914 case 12:
12915 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12916 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1575, __pyx_L3_error)
12917 CYTHON_FALLTHROUGH;
12918 case 11:
12919 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12920 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1575, __pyx_L3_error)
12921 CYTHON_FALLTHROUGH;
12922 case 10:
12923 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12924 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1575, __pyx_L3_error)
12925 CYTHON_FALLTHROUGH;
12926 case 9:
12927 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12928 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1575, __pyx_L3_error)
12929 CYTHON_FALLTHROUGH;
12930 case 8:
12931 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12932 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1575, __pyx_L3_error)
12933 CYTHON_FALLTHROUGH;
12934 case 7:
12935 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12936 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1575, __pyx_L3_error)
12937 CYTHON_FALLTHROUGH;
12938 case 6:
12939 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12940 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1575, __pyx_L3_error)
12941 CYTHON_FALLTHROUGH;
12942 case 5:
12943 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12944 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1575, __pyx_L3_error)
12945 CYTHON_FALLTHROUGH;
12946 case 4:
12947 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12948 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1575, __pyx_L3_error)
12949 CYTHON_FALLTHROUGH;
12950 case 3:
12951 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12952 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1575, __pyx_L3_error)
12953 CYTHON_FALLTHROUGH;
12954 case 2:
12955 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12956 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1575, __pyx_L3_error)
12957 CYTHON_FALLTHROUGH;
12958 case 1:
12959 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12960 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1575, __pyx_L3_error)
12961 CYTHON_FALLTHROUGH;
12962 case 0: break;
12963 default: goto __pyx_L5_argtuple_error;
12964 }
12965 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12966 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", 0) < (0)) __PYX_ERR(0, 1575, __pyx_L3_error)
12967 for (Py_ssize_t i = __pyx_nargs; i < 30; i++) {
12968 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", 1, 30, 30, i); __PYX_ERR(0, 1575, __pyx_L3_error) }
12969 }
12970 } else if (unlikely(__pyx_nargs != 30)) {
12971 goto __pyx_L5_argtuple_error;
12972 } else {
12973 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12974 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1575, __pyx_L3_error)
12975 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12976 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1575, __pyx_L3_error)
12977 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12978 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1575, __pyx_L3_error)
12979 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
12980 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1575, __pyx_L3_error)
12981 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
12982 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1575, __pyx_L3_error)
12983 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
12984 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1575, __pyx_L3_error)
12985 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
12986 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1575, __pyx_L3_error)
12987 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
12988 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1575, __pyx_L3_error)
12989 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
12990 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1575, __pyx_L3_error)
12991 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
12992 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1575, __pyx_L3_error)
12993 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
12994 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1575, __pyx_L3_error)
12995 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
12996 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1575, __pyx_L3_error)
12997 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
12998 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1575, __pyx_L3_error)
12999 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
13000 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1575, __pyx_L3_error)
13001 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
13002 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1575, __pyx_L3_error)
13003 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
13004 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1575, __pyx_L3_error)
13005 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
13006 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1575, __pyx_L3_error)
13007 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
13008 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1575, __pyx_L3_error)
13009 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13010 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1575, __pyx_L3_error)
13011 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13012 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1575, __pyx_L3_error)
13013 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13014 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1575, __pyx_L3_error)
13015 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13016 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1575, __pyx_L3_error)
13017 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13018 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1575, __pyx_L3_error)
13019 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13020 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1575, __pyx_L3_error)
13021 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13022 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1575, __pyx_L3_error)
13023 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
13024 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1575, __pyx_L3_error)
13025 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
13026 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1575, __pyx_L3_error)
13027 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
13028 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1575, __pyx_L3_error)
13029 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
13030 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1575, __pyx_L3_error)
13031 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
13032 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1575, __pyx_L3_error)
13033 }
13034 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
13035 __pyx_v_dm = ((PyArrayObject *)values[1]);
13036 __pyx_v_f = ((PyArrayObject *)values[2]);
13037 __pyx_v_a = ((PyArrayObject *)values[3]);
13038 __pyx_v_pdeResidualP = ((PyArrayObject *)values[4]);
13039 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[5]);
13040 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[6]);
13041 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[7]);
13042 __pyx_v_pdeResidualU = ((PyArrayObject *)values[8]);
13043 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[9]);
13044 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[10]);
13045 __pyx_v_pdeResidualV = ((PyArrayObject *)values[11]);
13046 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[12]);
13047 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[13]);
13048 __pyx_v_pdeResidualW = ((PyArrayObject *)values[14]);
13049 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[15]);
13050 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[16]);
13051 __pyx_v_subgridErrorP = ((PyArrayObject *)values[17]);
13052 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[18]);
13053 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[19]);
13054 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[20]);
13055 __pyx_v_subgridErrorU = ((PyArrayObject *)values[21]);
13056 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[22]);
13057 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[23]);
13058 __pyx_v_subgridErrorV = ((PyArrayObject *)values[24]);
13059 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[25]);
13060 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[26]);
13061 __pyx_v_subgridErrorW = ((PyArrayObject *)values[27]);
13062 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[28]);
13063 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[29]);
13064 }
13065 goto __pyx_L6_skip;
13066 __pyx_L5_argtuple_error:;
13067 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", 1, 30, 30, __pyx_nargs); __PYX_ERR(0, 1575, __pyx_L3_error)
13068 __pyx_L6_skip:;
13069 goto __pyx_L4_argument_unpacking_done;
13070 __pyx_L3_error:;
13071 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13072 Py_XDECREF(values[__pyx_temp]);
13073 }
13074 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", __pyx_clineno, __pyx_lineno, __pyx_filename);
13075 __Pyx_RefNannyFinishContext();
13076 return NULL;
13077 __pyx_L4_argument_unpacking_done:;
13078 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1575, __pyx_L1_error)
13079 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1576, __pyx_L1_error)
13080 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1577, __pyx_L1_error)
13081 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1578, __pyx_L1_error)
13082 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1579, __pyx_L1_error)
13083 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1580, __pyx_L1_error)
13084 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1581, __pyx_L1_error)
13085 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1582, __pyx_L1_error)
13086 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1583, __pyx_L1_error)
13087 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1584, __pyx_L1_error)
13088 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1585, __pyx_L1_error)
13089 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1586, __pyx_L1_error)
13090 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1587, __pyx_L1_error)
13091 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1588, __pyx_L1_error)
13092 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1589, __pyx_L1_error)
13093 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1590, __pyx_L1_error)
13094 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1591, __pyx_L1_error)
13095 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1592, __pyx_L1_error)
13096 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1593, __pyx_L1_error)
13097 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1594, __pyx_L1_error)
13098 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1595, __pyx_L1_error)
13099 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1596, __pyx_L1_error)
13100 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1597, __pyx_L1_error)
13101 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1598, __pyx_L1_error)
13102 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1599, __pyx_L1_error)
13103 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1600, __pyx_L1_error)
13104 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1601, __pyx_L1_error)
13105 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1602, __pyx_L1_error)
13106 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1603, __pyx_L1_error)
13107 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1604, __pyx_L1_error)
13108 __pyx_r = __pyx_pf_13csubgridError_54calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(__pyx_self, __pyx_v_elementDiameter, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
13109
13110 /* function exit code */
13111 goto __pyx_L0;
13112 __pyx_L1_error:;
13113 __pyx_r = NULL;
13114 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13115 Py_XDECREF(values[__pyx_temp]);
13116 }
13117 goto __pyx_L7_cleaned_up;
13118 __pyx_L0:;
13119 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13120 Py_XDECREF(values[__pyx_temp]);
13121 }
13122 __pyx_L7_cleaned_up:;
13123 __Pyx_RefNannyFinishContext();
13124 return __pyx_r;
13125}
13126
13127static PyObject *__pyx_pf_13csubgridError_54calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
13128 PyObject *__pyx_r = NULL;
13129 __Pyx_RefNannyDeclarations
13130 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure", 0);
13131
13132 /* "csubgridError.pyx":1605
13133 * np.ndarray dsubgridErrorW_dp,
13134 * np.ndarray dsubgridErrorW_dw):
13135 * ccalculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
13136 * dsubgridErrorP_du.shape[1],
13137 * dsubgridErrorP_du.shape[2],
13138*/
13139 calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
13140
13141 /* "csubgridError.pyx":1575
13142 * <double*> dsubgridErrorW_dv.data,
13143 * <double*> dsubgridErrorW_dw.data)
13144 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13145 * np.ndarray dm,
13146 * np.ndarray f,
13147*/
13148
13149 /* function exit code */
13150 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13151 __Pyx_XGIVEREF(__pyx_r);
13152 __Pyx_RefNannyFinishContext();
13153 return __pyx_r;
13154}
13155
13156/* "csubgridError.pyx":1639
13157 * <double*> dsubgridErrorW_dp.data,
13158 * <double*> dsubgridErrorW_dw.data)
13159 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13160 * np.ndarray dm,
13161 * np.ndarray f,
13162*/
13163
13164/* Python wrapper */
13165static PyObject *__pyx_pw_13csubgridError_57calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
13166#if CYTHON_VECTORCALL
13167PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13168#else
13169PyObject *__pyx_args, PyObject *__pyx_kwds
13170#endif
13171); /*proto*/
13172static PyMethodDef __pyx_mdef_13csubgridError_57calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd = {"calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_57calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13173static PyObject *__pyx_pw_13csubgridError_57calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(PyObject *__pyx_self,
13174#if CYTHON_VECTORCALL
13175PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13176#else
13177PyObject *__pyx_args, PyObject *__pyx_kwds
13178#endif
13179) {
13180 PyArrayObject *__pyx_v_elementDiameter = 0;
13181 PyArrayObject *__pyx_v_dm = 0;
13182 PyArrayObject *__pyx_v_f = 0;
13183 PyArrayObject *__pyx_v_a = 0;
13184 PyArrayObject *__pyx_v_pdeResidualP = 0;
13185 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
13186 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
13187 PyArrayObject *__pyx_v_dpdeResidualP_dw = 0;
13188 PyArrayObject *__pyx_v_pdeResidualU = 0;
13189 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
13190 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
13191 PyArrayObject *__pyx_v_pdeResidualV = 0;
13192 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
13193 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
13194 PyArrayObject *__pyx_v_pdeResidualW = 0;
13195 PyArrayObject *__pyx_v_dpdeResidualW_dp = 0;
13196 PyArrayObject *__pyx_v_dpdeResidualW_dw = 0;
13197 PyArrayObject *__pyx_v_subgridErrorP = 0;
13198 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
13199 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
13200 PyArrayObject *__pyx_v_dsubgridErrorP_dw = 0;
13201 PyArrayObject *__pyx_v_subgridErrorU = 0;
13202 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
13203 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
13204 PyArrayObject *__pyx_v_subgridErrorV = 0;
13205 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
13206 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
13207 PyArrayObject *__pyx_v_subgridErrorW = 0;
13208 PyArrayObject *__pyx_v_dsubgridErrorW_dp = 0;
13209 PyArrayObject *__pyx_v_dsubgridErrorW_dw = 0;
13210 #if !CYTHON_VECTORCALL
13211 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13212 #endif
13213 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13214 PyObject* values[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
13215 int __pyx_lineno = 0;
13216 const char *__pyx_filename = NULL;
13217 int __pyx_clineno = 0;
13218 PyObject *__pyx_r = 0;
13219 __Pyx_RefNannyDeclarations
13220 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd (wrapper)", 0);
13221 #if !CYTHON_VECTORCALL
13222 #if CYTHON_ASSUME_SAFE_SIZE
13223 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13224 #else
13225 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13226 #endif
13227 #endif
13228 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13229 {
13230 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_dm,&__pyx_mstate_global->__pyx_n_u_f,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dw,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualW,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualW_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dw,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorW,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorW_dw,0};
13231 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13232 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1639, __pyx_L3_error)
13233 if (__pyx_kwds_len > 0) {
13234 switch (__pyx_nargs) {
13235 case 30:
13236 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
13237 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1639, __pyx_L3_error)
13238 CYTHON_FALLTHROUGH;
13239 case 29:
13240 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
13241 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1639, __pyx_L3_error)
13242 CYTHON_FALLTHROUGH;
13243 case 28:
13244 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
13245 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1639, __pyx_L3_error)
13246 CYTHON_FALLTHROUGH;
13247 case 27:
13248 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
13249 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1639, __pyx_L3_error)
13250 CYTHON_FALLTHROUGH;
13251 case 26:
13252 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
13253 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1639, __pyx_L3_error)
13254 CYTHON_FALLTHROUGH;
13255 case 25:
13256 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13257 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1639, __pyx_L3_error)
13258 CYTHON_FALLTHROUGH;
13259 case 24:
13260 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13261 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1639, __pyx_L3_error)
13262 CYTHON_FALLTHROUGH;
13263 case 23:
13264 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13265 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1639, __pyx_L3_error)
13266 CYTHON_FALLTHROUGH;
13267 case 22:
13268 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13269 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1639, __pyx_L3_error)
13270 CYTHON_FALLTHROUGH;
13271 case 21:
13272 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13273 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1639, __pyx_L3_error)
13274 CYTHON_FALLTHROUGH;
13275 case 20:
13276 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13277 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1639, __pyx_L3_error)
13278 CYTHON_FALLTHROUGH;
13279 case 19:
13280 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13281 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1639, __pyx_L3_error)
13282 CYTHON_FALLTHROUGH;
13283 case 18:
13284 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
13285 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1639, __pyx_L3_error)
13286 CYTHON_FALLTHROUGH;
13287 case 17:
13288 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
13289 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1639, __pyx_L3_error)
13290 CYTHON_FALLTHROUGH;
13291 case 16:
13292 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
13293 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1639, __pyx_L3_error)
13294 CYTHON_FALLTHROUGH;
13295 case 15:
13296 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
13297 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1639, __pyx_L3_error)
13298 CYTHON_FALLTHROUGH;
13299 case 14:
13300 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
13301 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1639, __pyx_L3_error)
13302 CYTHON_FALLTHROUGH;
13303 case 13:
13304 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
13305 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1639, __pyx_L3_error)
13306 CYTHON_FALLTHROUGH;
13307 case 12:
13308 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
13309 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1639, __pyx_L3_error)
13310 CYTHON_FALLTHROUGH;
13311 case 11:
13312 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
13313 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1639, __pyx_L3_error)
13314 CYTHON_FALLTHROUGH;
13315 case 10:
13316 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13317 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1639, __pyx_L3_error)
13318 CYTHON_FALLTHROUGH;
13319 case 9:
13320 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13321 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1639, __pyx_L3_error)
13322 CYTHON_FALLTHROUGH;
13323 case 8:
13324 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13325 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1639, __pyx_L3_error)
13326 CYTHON_FALLTHROUGH;
13327 case 7:
13328 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13329 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1639, __pyx_L3_error)
13330 CYTHON_FALLTHROUGH;
13331 case 6:
13332 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13333 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1639, __pyx_L3_error)
13334 CYTHON_FALLTHROUGH;
13335 case 5:
13336 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13337 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1639, __pyx_L3_error)
13338 CYTHON_FALLTHROUGH;
13339 case 4:
13340 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13341 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1639, __pyx_L3_error)
13342 CYTHON_FALLTHROUGH;
13343 case 3:
13344 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13345 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1639, __pyx_L3_error)
13346 CYTHON_FALLTHROUGH;
13347 case 2:
13348 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13349 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1639, __pyx_L3_error)
13350 CYTHON_FALLTHROUGH;
13351 case 1:
13352 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13353 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1639, __pyx_L3_error)
13354 CYTHON_FALLTHROUGH;
13355 case 0: break;
13356 default: goto __pyx_L5_argtuple_error;
13357 }
13358 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13359 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", 0) < (0)) __PYX_ERR(0, 1639, __pyx_L3_error)
13360 for (Py_ssize_t i = __pyx_nargs; i < 30; i++) {
13361 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", 1, 30, 30, i); __PYX_ERR(0, 1639, __pyx_L3_error) }
13362 }
13363 } else if (unlikely(__pyx_nargs != 30)) {
13364 goto __pyx_L5_argtuple_error;
13365 } else {
13366 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13367 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1639, __pyx_L3_error)
13368 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13369 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1639, __pyx_L3_error)
13370 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13371 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1639, __pyx_L3_error)
13372 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13373 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1639, __pyx_L3_error)
13374 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13375 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1639, __pyx_L3_error)
13376 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13377 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1639, __pyx_L3_error)
13378 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13379 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1639, __pyx_L3_error)
13380 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13381 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1639, __pyx_L3_error)
13382 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13383 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1639, __pyx_L3_error)
13384 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13385 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1639, __pyx_L3_error)
13386 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
13387 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1639, __pyx_L3_error)
13388 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
13389 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1639, __pyx_L3_error)
13390 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
13391 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1639, __pyx_L3_error)
13392 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
13393 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1639, __pyx_L3_error)
13394 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
13395 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1639, __pyx_L3_error)
13396 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
13397 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1639, __pyx_L3_error)
13398 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
13399 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1639, __pyx_L3_error)
13400 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
13401 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1639, __pyx_L3_error)
13402 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13403 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1639, __pyx_L3_error)
13404 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13405 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1639, __pyx_L3_error)
13406 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13407 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1639, __pyx_L3_error)
13408 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13409 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1639, __pyx_L3_error)
13410 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13411 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1639, __pyx_L3_error)
13412 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13413 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1639, __pyx_L3_error)
13414 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13415 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1639, __pyx_L3_error)
13416 values[25] = __Pyx_ArgRef_FASTCALL(__pyx_args, 25);
13417 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[25])) __PYX_ERR(0, 1639, __pyx_L3_error)
13418 values[26] = __Pyx_ArgRef_FASTCALL(__pyx_args, 26);
13419 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[26])) __PYX_ERR(0, 1639, __pyx_L3_error)
13420 values[27] = __Pyx_ArgRef_FASTCALL(__pyx_args, 27);
13421 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[27])) __PYX_ERR(0, 1639, __pyx_L3_error)
13422 values[28] = __Pyx_ArgRef_FASTCALL(__pyx_args, 28);
13423 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[28])) __PYX_ERR(0, 1639, __pyx_L3_error)
13424 values[29] = __Pyx_ArgRef_FASTCALL(__pyx_args, 29);
13425 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[29])) __PYX_ERR(0, 1639, __pyx_L3_error)
13426 }
13427 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
13428 __pyx_v_dm = ((PyArrayObject *)values[1]);
13429 __pyx_v_f = ((PyArrayObject *)values[2]);
13430 __pyx_v_a = ((PyArrayObject *)values[3]);
13431 __pyx_v_pdeResidualP = ((PyArrayObject *)values[4]);
13432 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[5]);
13433 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[6]);
13434 __pyx_v_dpdeResidualP_dw = ((PyArrayObject *)values[7]);
13435 __pyx_v_pdeResidualU = ((PyArrayObject *)values[8]);
13436 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[9]);
13437 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[10]);
13438 __pyx_v_pdeResidualV = ((PyArrayObject *)values[11]);
13439 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[12]);
13440 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[13]);
13441 __pyx_v_pdeResidualW = ((PyArrayObject *)values[14]);
13442 __pyx_v_dpdeResidualW_dp = ((PyArrayObject *)values[15]);
13443 __pyx_v_dpdeResidualW_dw = ((PyArrayObject *)values[16]);
13444 __pyx_v_subgridErrorP = ((PyArrayObject *)values[17]);
13445 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[18]);
13446 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[19]);
13447 __pyx_v_dsubgridErrorP_dw = ((PyArrayObject *)values[20]);
13448 __pyx_v_subgridErrorU = ((PyArrayObject *)values[21]);
13449 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[22]);
13450 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[23]);
13451 __pyx_v_subgridErrorV = ((PyArrayObject *)values[24]);
13452 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[25]);
13453 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[26]);
13454 __pyx_v_subgridErrorW = ((PyArrayObject *)values[27]);
13455 __pyx_v_dsubgridErrorW_dp = ((PyArrayObject *)values[28]);
13456 __pyx_v_dsubgridErrorW_dw = ((PyArrayObject *)values[29]);
13457 }
13458 goto __pyx_L6_skip;
13459 __pyx_L5_argtuple_error:;
13460 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", 1, 30, 30, __pyx_nargs); __PYX_ERR(0, 1639, __pyx_L3_error)
13461 __pyx_L6_skip:;
13462 goto __pyx_L4_argument_unpacking_done;
13463 __pyx_L3_error:;
13464 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13465 Py_XDECREF(values[__pyx_temp]);
13466 }
13467 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
13468 __Pyx_RefNannyFinishContext();
13469 return NULL;
13470 __pyx_L4_argument_unpacking_done:;
13471 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1639, __pyx_L1_error)
13472 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dm", 0))) __PYX_ERR(0, 1640, __pyx_L1_error)
13473 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "f", 0))) __PYX_ERR(0, 1641, __pyx_L1_error)
13474 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1642, __pyx_L1_error)
13475 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1643, __pyx_L1_error)
13476 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1644, __pyx_L1_error)
13477 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1645, __pyx_L1_error)
13478 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dw", 0))) __PYX_ERR(0, 1646, __pyx_L1_error)
13479 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1647, __pyx_L1_error)
13480 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1648, __pyx_L1_error)
13481 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1649, __pyx_L1_error)
13482 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1650, __pyx_L1_error)
13483 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1651, __pyx_L1_error)
13484 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1652, __pyx_L1_error)
13485 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualW", 0))) __PYX_ERR(0, 1653, __pyx_L1_error)
13486 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dp", 0))) __PYX_ERR(0, 1654, __pyx_L1_error)
13487 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualW_dw", 0))) __PYX_ERR(0, 1655, __pyx_L1_error)
13488 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1656, __pyx_L1_error)
13489 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1657, __pyx_L1_error)
13490 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1658, __pyx_L1_error)
13491 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dw", 0))) __PYX_ERR(0, 1659, __pyx_L1_error)
13492 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1660, __pyx_L1_error)
13493 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1661, __pyx_L1_error)
13494 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1662, __pyx_L1_error)
13495 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1663, __pyx_L1_error)
13496 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1664, __pyx_L1_error)
13497 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1665, __pyx_L1_error)
13498 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorW), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorW", 0))) __PYX_ERR(0, 1666, __pyx_L1_error)
13499 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dp", 0))) __PYX_ERR(0, 1667, __pyx_L1_error)
13500 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorW_dw), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorW_dw", 0))) __PYX_ERR(0, 1668, __pyx_L1_error)
13501 __pyx_r = __pyx_pf_13csubgridError_56calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_dm, __pyx_v_f, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_dpdeResidualP_dw, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_pdeResidualW, __pyx_v_dpdeResidualW_dp, __pyx_v_dpdeResidualW_dw, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_dsubgridErrorP_dw, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_dv, __pyx_v_subgridErrorW, __pyx_v_dsubgridErrorW_dp, __pyx_v_dsubgridErrorW_dw);
13502
13503 /* function exit code */
13504 goto __pyx_L0;
13505 __pyx_L1_error:;
13506 __pyx_r = NULL;
13507 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13508 Py_XDECREF(values[__pyx_temp]);
13509 }
13510 goto __pyx_L7_cleaned_up;
13511 __pyx_L0:;
13512 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13513 Py_XDECREF(values[__pyx_temp]);
13514 }
13515 __pyx_L7_cleaned_up:;
13516 __Pyx_RefNannyFinishContext();
13517 return __pyx_r;
13518}
13519
13520static PyObject *__pyx_pf_13csubgridError_56calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_dm, PyArrayObject *__pyx_v_f, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_dpdeResidualP_dw, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_pdeResidualW, PyArrayObject *__pyx_v_dpdeResidualW_dp, PyArrayObject *__pyx_v_dpdeResidualW_dw, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_dsubgridErrorP_dw, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_dv, PyArrayObject *__pyx_v_subgridErrorW, PyArrayObject *__pyx_v_dsubgridErrorW_dp, PyArrayObject *__pyx_v_dsubgridErrorW_dw) {
13521 PyObject *__pyx_r = NULL;
13522 __Pyx_RefNannyDeclarations
13523 __Pyx_RefNannySetupContext("calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd", 0);
13524
13525 /* "csubgridError.pyx":1669
13526 * np.ndarray dsubgridErrorW_dp,
13527 * np.ndarray dsubgridErrorW_dw):
13528 * ccalculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
13529 * dsubgridErrorP_du.shape[1],
13530 * dsubgridErrorP_du.shape[2],
13531*/
13532 calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 3, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dm)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_f)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualW_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dw)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorW)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorW_dw)));
13533
13534 /* "csubgridError.pyx":1639
13535 * <double*> dsubgridErrorW_dp.data,
13536 * <double*> dsubgridErrorW_dw.data)
13537 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13538 * np.ndarray dm,
13539 * np.ndarray f,
13540*/
13541
13542 /* function exit code */
13543 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13544 __Pyx_XGIVEREF(__pyx_r);
13545 __Pyx_RefNannyFinishContext();
13546 return __pyx_r;
13547}
13548
13549/* "csubgridError.pyx":1703
13550 * <double*> dsubgridErrorW_dp.data,
13551 * <double*> dsubgridErrorW_dw.data)
13552 * def calculateSubgridErrorStokes2D_1(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13553 * np.ndarray u,
13554 * np.ndarray v,
13555*/
13556
13557/* Python wrapper */
13558static PyObject *__pyx_pw_13csubgridError_59calculateSubgridErrorStokes2D_1(PyObject *__pyx_self,
13559#if CYTHON_VECTORCALL
13560PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13561#else
13562PyObject *__pyx_args, PyObject *__pyx_kwds
13563#endif
13564); /*proto*/
13565static PyMethodDef __pyx_mdef_13csubgridError_59calculateSubgridErrorStokes2D_1 = {"calculateSubgridErrorStokes2D_1", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_59calculateSubgridErrorStokes2D_1, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13566static PyObject *__pyx_pw_13csubgridError_59calculateSubgridErrorStokes2D_1(PyObject *__pyx_self,
13567#if CYTHON_VECTORCALL
13568PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13569#else
13570PyObject *__pyx_args, PyObject *__pyx_kwds
13571#endif
13572) {
13573 PyArrayObject *__pyx_v_elementDiameter = 0;
13574 PyArrayObject *__pyx_v_u = 0;
13575 PyArrayObject *__pyx_v_v = 0;
13576 PyArrayObject *__pyx_v_a = 0;
13577 PyArrayObject *__pyx_v_pdeResidualP = 0;
13578 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
13579 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
13580 PyArrayObject *__pyx_v_pdeResidualU = 0;
13581 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
13582 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
13583 PyArrayObject *__pyx_v_pdeResidualV = 0;
13584 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
13585 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
13586 PyArrayObject *__pyx_v_subgridErrorP = 0;
13587 PyArrayObject *__pyx_v_dsubgridErrorP_dp = 0;
13588 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
13589 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
13590 PyArrayObject *__pyx_v_subgridErrorU = 0;
13591 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
13592 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
13593 PyArrayObject *__pyx_v_dsubgridErrorU_dv = 0;
13594 PyArrayObject *__pyx_v_subgridErrorV = 0;
13595 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
13596 PyArrayObject *__pyx_v_dsubgridErrorV_du = 0;
13597 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
13598 #if !CYTHON_VECTORCALL
13599 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13600 #endif
13601 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13602 PyObject* values[25] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
13603 int __pyx_lineno = 0;
13604 const char *__pyx_filename = NULL;
13605 int __pyx_clineno = 0;
13606 PyObject *__pyx_r = 0;
13607 __Pyx_RefNannyDeclarations
13608 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_1 (wrapper)", 0);
13609 #if !CYTHON_VECTORCALL
13610 #if CYTHON_ASSUME_SAFE_SIZE
13611 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13612 #else
13613 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13614 #endif
13615 #endif
13616 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13617 {
13618 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_v,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
13619 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13620 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1703, __pyx_L3_error)
13621 if (__pyx_kwds_len > 0) {
13622 switch (__pyx_nargs) {
13623 case 25:
13624 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13625 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1703, __pyx_L3_error)
13626 CYTHON_FALLTHROUGH;
13627 case 24:
13628 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13629 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1703, __pyx_L3_error)
13630 CYTHON_FALLTHROUGH;
13631 case 23:
13632 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13633 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1703, __pyx_L3_error)
13634 CYTHON_FALLTHROUGH;
13635 case 22:
13636 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13637 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1703, __pyx_L3_error)
13638 CYTHON_FALLTHROUGH;
13639 case 21:
13640 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13641 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1703, __pyx_L3_error)
13642 CYTHON_FALLTHROUGH;
13643 case 20:
13644 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13645 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1703, __pyx_L3_error)
13646 CYTHON_FALLTHROUGH;
13647 case 19:
13648 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13649 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1703, __pyx_L3_error)
13650 CYTHON_FALLTHROUGH;
13651 case 18:
13652 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
13653 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1703, __pyx_L3_error)
13654 CYTHON_FALLTHROUGH;
13655 case 17:
13656 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
13657 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1703, __pyx_L3_error)
13658 CYTHON_FALLTHROUGH;
13659 case 16:
13660 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
13661 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1703, __pyx_L3_error)
13662 CYTHON_FALLTHROUGH;
13663 case 15:
13664 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
13665 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1703, __pyx_L3_error)
13666 CYTHON_FALLTHROUGH;
13667 case 14:
13668 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
13669 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1703, __pyx_L3_error)
13670 CYTHON_FALLTHROUGH;
13671 case 13:
13672 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
13673 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1703, __pyx_L3_error)
13674 CYTHON_FALLTHROUGH;
13675 case 12:
13676 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
13677 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1703, __pyx_L3_error)
13678 CYTHON_FALLTHROUGH;
13679 case 11:
13680 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
13681 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1703, __pyx_L3_error)
13682 CYTHON_FALLTHROUGH;
13683 case 10:
13684 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13685 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1703, __pyx_L3_error)
13686 CYTHON_FALLTHROUGH;
13687 case 9:
13688 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13689 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1703, __pyx_L3_error)
13690 CYTHON_FALLTHROUGH;
13691 case 8:
13692 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13693 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1703, __pyx_L3_error)
13694 CYTHON_FALLTHROUGH;
13695 case 7:
13696 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13697 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1703, __pyx_L3_error)
13698 CYTHON_FALLTHROUGH;
13699 case 6:
13700 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13701 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1703, __pyx_L3_error)
13702 CYTHON_FALLTHROUGH;
13703 case 5:
13704 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13705 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1703, __pyx_L3_error)
13706 CYTHON_FALLTHROUGH;
13707 case 4:
13708 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13709 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1703, __pyx_L3_error)
13710 CYTHON_FALLTHROUGH;
13711 case 3:
13712 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13713 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1703, __pyx_L3_error)
13714 CYTHON_FALLTHROUGH;
13715 case 2:
13716 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13717 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1703, __pyx_L3_error)
13718 CYTHON_FALLTHROUGH;
13719 case 1:
13720 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13721 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1703, __pyx_L3_error)
13722 CYTHON_FALLTHROUGH;
13723 case 0: break;
13724 default: goto __pyx_L5_argtuple_error;
13725 }
13726 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13727 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_1", 0) < (0)) __PYX_ERR(0, 1703, __pyx_L3_error)
13728 for (Py_ssize_t i = __pyx_nargs; i < 25; i++) {
13729 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_1", 1, 25, 25, i); __PYX_ERR(0, 1703, __pyx_L3_error) }
13730 }
13731 } else if (unlikely(__pyx_nargs != 25)) {
13732 goto __pyx_L5_argtuple_error;
13733 } else {
13734 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13735 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1703, __pyx_L3_error)
13736 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13737 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1703, __pyx_L3_error)
13738 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
13739 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1703, __pyx_L3_error)
13740 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
13741 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1703, __pyx_L3_error)
13742 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
13743 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1703, __pyx_L3_error)
13744 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
13745 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1703, __pyx_L3_error)
13746 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
13747 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1703, __pyx_L3_error)
13748 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
13749 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1703, __pyx_L3_error)
13750 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
13751 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1703, __pyx_L3_error)
13752 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
13753 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1703, __pyx_L3_error)
13754 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
13755 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1703, __pyx_L3_error)
13756 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
13757 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1703, __pyx_L3_error)
13758 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
13759 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1703, __pyx_L3_error)
13760 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
13761 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1703, __pyx_L3_error)
13762 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
13763 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1703, __pyx_L3_error)
13764 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
13765 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1703, __pyx_L3_error)
13766 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
13767 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1703, __pyx_L3_error)
13768 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
13769 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1703, __pyx_L3_error)
13770 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13771 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1703, __pyx_L3_error)
13772 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13773 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1703, __pyx_L3_error)
13774 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13775 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1703, __pyx_L3_error)
13776 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13777 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1703, __pyx_L3_error)
13778 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13779 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1703, __pyx_L3_error)
13780 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13781 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1703, __pyx_L3_error)
13782 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13783 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1703, __pyx_L3_error)
13784 }
13785 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
13786 __pyx_v_u = ((PyArrayObject *)values[1]);
13787 __pyx_v_v = ((PyArrayObject *)values[2]);
13788 __pyx_v_a = ((PyArrayObject *)values[3]);
13789 __pyx_v_pdeResidualP = ((PyArrayObject *)values[4]);
13790 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[5]);
13791 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[6]);
13792 __pyx_v_pdeResidualU = ((PyArrayObject *)values[7]);
13793 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[8]);
13794 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[9]);
13795 __pyx_v_pdeResidualV = ((PyArrayObject *)values[10]);
13796 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[11]);
13797 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[12]);
13798 __pyx_v_subgridErrorP = ((PyArrayObject *)values[13]);
13799 __pyx_v_dsubgridErrorP_dp = ((PyArrayObject *)values[14]);
13800 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[15]);
13801 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[16]);
13802 __pyx_v_subgridErrorU = ((PyArrayObject *)values[17]);
13803 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[18]);
13804 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[19]);
13805 __pyx_v_dsubgridErrorU_dv = ((PyArrayObject *)values[20]);
13806 __pyx_v_subgridErrorV = ((PyArrayObject *)values[21]);
13807 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[22]);
13808 __pyx_v_dsubgridErrorV_du = ((PyArrayObject *)values[23]);
13809 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[24]);
13810 }
13811 goto __pyx_L6_skip;
13812 __pyx_L5_argtuple_error:;
13813 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_1", 1, 25, 25, __pyx_nargs); __PYX_ERR(0, 1703, __pyx_L3_error)
13814 __pyx_L6_skip:;
13815 goto __pyx_L4_argument_unpacking_done;
13816 __pyx_L3_error:;
13817 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13818 Py_XDECREF(values[__pyx_temp]);
13819 }
13820 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_1", __pyx_clineno, __pyx_lineno, __pyx_filename);
13821 __Pyx_RefNannyFinishContext();
13822 return NULL;
13823 __pyx_L4_argument_unpacking_done:;
13824 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1703, __pyx_L1_error)
13825 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 1704, __pyx_L1_error)
13826 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 1705, __pyx_L1_error)
13827 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1706, __pyx_L1_error)
13828 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1707, __pyx_L1_error)
13829 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1708, __pyx_L1_error)
13830 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1709, __pyx_L1_error)
13831 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1710, __pyx_L1_error)
13832 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1711, __pyx_L1_error)
13833 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1712, __pyx_L1_error)
13834 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1713, __pyx_L1_error)
13835 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1714, __pyx_L1_error)
13836 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1715, __pyx_L1_error)
13837 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1716, __pyx_L1_error)
13838 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dp", 0))) __PYX_ERR(0, 1717, __pyx_L1_error)
13839 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1718, __pyx_L1_error)
13840 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1719, __pyx_L1_error)
13841 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1720, __pyx_L1_error)
13842 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1721, __pyx_L1_error)
13843 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1722, __pyx_L1_error)
13844 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dv", 0))) __PYX_ERR(0, 1723, __pyx_L1_error)
13845 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1724, __pyx_L1_error)
13846 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1725, __pyx_L1_error)
13847 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_du", 0))) __PYX_ERR(0, 1726, __pyx_L1_error)
13848 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1727, __pyx_L1_error)
13849 __pyx_r = __pyx_pf_13csubgridError_58calculateSubgridErrorStokes2D_1(__pyx_self, __pyx_v_elementDiameter, __pyx_v_u, __pyx_v_v, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_dp, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_dsubgridErrorU_dv, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_du, __pyx_v_dsubgridErrorV_dv);
13850
13851 /* function exit code */
13852 goto __pyx_L0;
13853 __pyx_L1_error:;
13854 __pyx_r = NULL;
13855 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13856 Py_XDECREF(values[__pyx_temp]);
13857 }
13858 goto __pyx_L7_cleaned_up;
13859 __pyx_L0:;
13860 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13861 Py_XDECREF(values[__pyx_temp]);
13862 }
13863 __pyx_L7_cleaned_up:;
13864 __Pyx_RefNannyFinishContext();
13865 return __pyx_r;
13866}
13867
13868static PyObject *__pyx_pf_13csubgridError_58calculateSubgridErrorStokes2D_1(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_dp, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
13869 PyObject *__pyx_r = NULL;
13870 __Pyx_RefNannyDeclarations
13871 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_1", 0);
13872
13873 /* "csubgridError.pyx":1728
13874 * np.ndarray dsubgridErrorV_du,
13875 * np.ndarray dsubgridErrorV_dv):
13876 * ccalculateSubgridErrorStokes2D_1(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
13877 * dsubgridErrorP_du.shape[1],
13878 * dsubgridErrorP_du.shape[2],
13879*/
13880 calculateSubgridErrorStokes2D_1((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
13881
13882 /* "csubgridError.pyx":1703
13883 * <double*> dsubgridErrorW_dp.data,
13884 * <double*> dsubgridErrorW_dw.data)
13885 * def calculateSubgridErrorStokes2D_1(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13886 * np.ndarray u,
13887 * np.ndarray v,
13888*/
13889
13890 /* function exit code */
13891 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13892 __Pyx_XGIVEREF(__pyx_r);
13893 __Pyx_RefNannyFinishContext();
13894 return __pyx_r;
13895}
13896
13897/* "csubgridError.pyx":1757
13898 * <double*> dsubgridErrorV_du.data,
13899 * <double*> dsubgridErrorV_dv.data)
13900 * def calculateSubgridErrorStokes2D_1_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
13901 * np.ndarray u,
13902 * np.ndarray v,
13903*/
13904
13905/* Python wrapper */
13906static PyObject *__pyx_pw_13csubgridError_61calculateSubgridErrorStokes2D_1_sd(PyObject *__pyx_self,
13907#if CYTHON_VECTORCALL
13908PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13909#else
13910PyObject *__pyx_args, PyObject *__pyx_kwds
13911#endif
13912); /*proto*/
13913static PyMethodDef __pyx_mdef_13csubgridError_61calculateSubgridErrorStokes2D_1_sd = {"calculateSubgridErrorStokes2D_1_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_61calculateSubgridErrorStokes2D_1_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13914static PyObject *__pyx_pw_13csubgridError_61calculateSubgridErrorStokes2D_1_sd(PyObject *__pyx_self,
13915#if CYTHON_VECTORCALL
13916PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13917#else
13918PyObject *__pyx_args, PyObject *__pyx_kwds
13919#endif
13920) {
13921 PyArrayObject *__pyx_v_elementDiameter = 0;
13922 PyArrayObject *__pyx_v_u = 0;
13923 PyArrayObject *__pyx_v_v = 0;
13924 PyArrayObject *__pyx_v_a = 0;
13925 PyArrayObject *__pyx_v_pdeResidualP = 0;
13926 PyArrayObject *__pyx_v_dpdeResidualP_du = 0;
13927 PyArrayObject *__pyx_v_dpdeResidualP_dv = 0;
13928 PyArrayObject *__pyx_v_pdeResidualU = 0;
13929 PyArrayObject *__pyx_v_dpdeResidualU_dp = 0;
13930 PyArrayObject *__pyx_v_dpdeResidualU_du = 0;
13931 PyArrayObject *__pyx_v_pdeResidualV = 0;
13932 PyArrayObject *__pyx_v_dpdeResidualV_dp = 0;
13933 PyArrayObject *__pyx_v_dpdeResidualV_dv = 0;
13934 PyArrayObject *__pyx_v_subgridErrorP = 0;
13935 PyArrayObject *__pyx_v_dsubgridErrorP_dp = 0;
13936 PyArrayObject *__pyx_v_dsubgridErrorP_du = 0;
13937 PyArrayObject *__pyx_v_dsubgridErrorP_dv = 0;
13938 PyArrayObject *__pyx_v_subgridErrorU = 0;
13939 PyArrayObject *__pyx_v_dsubgridErrorU_dp = 0;
13940 PyArrayObject *__pyx_v_dsubgridErrorU_du = 0;
13941 PyArrayObject *__pyx_v_dsubgridErrorU_dv = 0;
13942 PyArrayObject *__pyx_v_subgridErrorV = 0;
13943 PyArrayObject *__pyx_v_dsubgridErrorV_dp = 0;
13944 PyArrayObject *__pyx_v_dsubgridErrorV_du = 0;
13945 PyArrayObject *__pyx_v_dsubgridErrorV_dv = 0;
13946 #if !CYTHON_VECTORCALL
13947 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13948 #endif
13949 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13950 PyObject* values[25] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
13951 int __pyx_lineno = 0;
13952 const char *__pyx_filename = NULL;
13953 int __pyx_clineno = 0;
13954 PyObject *__pyx_r = 0;
13955 __Pyx_RefNannyDeclarations
13956 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_1_sd (wrapper)", 0);
13957 #if !CYTHON_VECTORCALL
13958 #if CYTHON_ASSUME_SAFE_SIZE
13959 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13960 #else
13961 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13962 #endif
13963 #endif
13964 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13965 {
13966 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_v,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_pdeResidualP,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_du,&__pyx_mstate_global->__pyx_n_u_dpdeResidualP_dv,&__pyx_mstate_global->__pyx_n_u_pdeResidualU,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualU_du,&__pyx_mstate_global->__pyx_n_u_pdeResidualV,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dp,&__pyx_mstate_global->__pyx_n_u_dpdeResidualV_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorP,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorP_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorU,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorU_dv,&__pyx_mstate_global->__pyx_n_u_subgridErrorV,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dp,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_du,&__pyx_mstate_global->__pyx_n_u_dsubgridErrorV_dv,0};
13967 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13968 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1757, __pyx_L3_error)
13969 if (__pyx_kwds_len > 0) {
13970 switch (__pyx_nargs) {
13971 case 25:
13972 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
13973 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1757, __pyx_L3_error)
13974 CYTHON_FALLTHROUGH;
13975 case 24:
13976 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
13977 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1757, __pyx_L3_error)
13978 CYTHON_FALLTHROUGH;
13979 case 23:
13980 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
13981 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1757, __pyx_L3_error)
13982 CYTHON_FALLTHROUGH;
13983 case 22:
13984 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
13985 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1757, __pyx_L3_error)
13986 CYTHON_FALLTHROUGH;
13987 case 21:
13988 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
13989 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1757, __pyx_L3_error)
13990 CYTHON_FALLTHROUGH;
13991 case 20:
13992 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
13993 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1757, __pyx_L3_error)
13994 CYTHON_FALLTHROUGH;
13995 case 19:
13996 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
13997 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1757, __pyx_L3_error)
13998 CYTHON_FALLTHROUGH;
13999 case 18:
14000 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
14001 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1757, __pyx_L3_error)
14002 CYTHON_FALLTHROUGH;
14003 case 17:
14004 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
14005 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1757, __pyx_L3_error)
14006 CYTHON_FALLTHROUGH;
14007 case 16:
14008 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
14009 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1757, __pyx_L3_error)
14010 CYTHON_FALLTHROUGH;
14011 case 15:
14012 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14013 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1757, __pyx_L3_error)
14014 CYTHON_FALLTHROUGH;
14015 case 14:
14016 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14017 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1757, __pyx_L3_error)
14018 CYTHON_FALLTHROUGH;
14019 case 13:
14020 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14021 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1757, __pyx_L3_error)
14022 CYTHON_FALLTHROUGH;
14023 case 12:
14024 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14025 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1757, __pyx_L3_error)
14026 CYTHON_FALLTHROUGH;
14027 case 11:
14028 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14029 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1757, __pyx_L3_error)
14030 CYTHON_FALLTHROUGH;
14031 case 10:
14032 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14033 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1757, __pyx_L3_error)
14034 CYTHON_FALLTHROUGH;
14035 case 9:
14036 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14037 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1757, __pyx_L3_error)
14038 CYTHON_FALLTHROUGH;
14039 case 8:
14040 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14041 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1757, __pyx_L3_error)
14042 CYTHON_FALLTHROUGH;
14043 case 7:
14044 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14045 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1757, __pyx_L3_error)
14046 CYTHON_FALLTHROUGH;
14047 case 6:
14048 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14049 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1757, __pyx_L3_error)
14050 CYTHON_FALLTHROUGH;
14051 case 5:
14052 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14053 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1757, __pyx_L3_error)
14054 CYTHON_FALLTHROUGH;
14055 case 4:
14056 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14057 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1757, __pyx_L3_error)
14058 CYTHON_FALLTHROUGH;
14059 case 3:
14060 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14061 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1757, __pyx_L3_error)
14062 CYTHON_FALLTHROUGH;
14063 case 2:
14064 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14065 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1757, __pyx_L3_error)
14066 CYTHON_FALLTHROUGH;
14067 case 1:
14068 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14069 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1757, __pyx_L3_error)
14070 CYTHON_FALLTHROUGH;
14071 case 0: break;
14072 default: goto __pyx_L5_argtuple_error;
14073 }
14074 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14075 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorStokes2D_1_sd", 0) < (0)) __PYX_ERR(0, 1757, __pyx_L3_error)
14076 for (Py_ssize_t i = __pyx_nargs; i < 25; i++) {
14077 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_1_sd", 1, 25, 25, i); __PYX_ERR(0, 1757, __pyx_L3_error) }
14078 }
14079 } else if (unlikely(__pyx_nargs != 25)) {
14080 goto __pyx_L5_argtuple_error;
14081 } else {
14082 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14083 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1757, __pyx_L3_error)
14084 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14085 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1757, __pyx_L3_error)
14086 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14087 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1757, __pyx_L3_error)
14088 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14089 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1757, __pyx_L3_error)
14090 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14091 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1757, __pyx_L3_error)
14092 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14093 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1757, __pyx_L3_error)
14094 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14095 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1757, __pyx_L3_error)
14096 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14097 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1757, __pyx_L3_error)
14098 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
14099 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1757, __pyx_L3_error)
14100 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
14101 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1757, __pyx_L3_error)
14102 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
14103 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1757, __pyx_L3_error)
14104 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
14105 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1757, __pyx_L3_error)
14106 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
14107 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1757, __pyx_L3_error)
14108 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
14109 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1757, __pyx_L3_error)
14110 values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14);
14111 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1757, __pyx_L3_error)
14112 values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15);
14113 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1757, __pyx_L3_error)
14114 values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16);
14115 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 1757, __pyx_L3_error)
14116 values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17);
14117 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 1757, __pyx_L3_error)
14118 values[18] = __Pyx_ArgRef_FASTCALL(__pyx_args, 18);
14119 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[18])) __PYX_ERR(0, 1757, __pyx_L3_error)
14120 values[19] = __Pyx_ArgRef_FASTCALL(__pyx_args, 19);
14121 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[19])) __PYX_ERR(0, 1757, __pyx_L3_error)
14122 values[20] = __Pyx_ArgRef_FASTCALL(__pyx_args, 20);
14123 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[20])) __PYX_ERR(0, 1757, __pyx_L3_error)
14124 values[21] = __Pyx_ArgRef_FASTCALL(__pyx_args, 21);
14125 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[21])) __PYX_ERR(0, 1757, __pyx_L3_error)
14126 values[22] = __Pyx_ArgRef_FASTCALL(__pyx_args, 22);
14127 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[22])) __PYX_ERR(0, 1757, __pyx_L3_error)
14128 values[23] = __Pyx_ArgRef_FASTCALL(__pyx_args, 23);
14129 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[23])) __PYX_ERR(0, 1757, __pyx_L3_error)
14130 values[24] = __Pyx_ArgRef_FASTCALL(__pyx_args, 24);
14131 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[24])) __PYX_ERR(0, 1757, __pyx_L3_error)
14132 }
14133 __pyx_v_elementDiameter = ((PyArrayObject *)values[0]);
14134 __pyx_v_u = ((PyArrayObject *)values[1]);
14135 __pyx_v_v = ((PyArrayObject *)values[2]);
14136 __pyx_v_a = ((PyArrayObject *)values[3]);
14137 __pyx_v_pdeResidualP = ((PyArrayObject *)values[4]);
14138 __pyx_v_dpdeResidualP_du = ((PyArrayObject *)values[5]);
14139 __pyx_v_dpdeResidualP_dv = ((PyArrayObject *)values[6]);
14140 __pyx_v_pdeResidualU = ((PyArrayObject *)values[7]);
14141 __pyx_v_dpdeResidualU_dp = ((PyArrayObject *)values[8]);
14142 __pyx_v_dpdeResidualU_du = ((PyArrayObject *)values[9]);
14143 __pyx_v_pdeResidualV = ((PyArrayObject *)values[10]);
14144 __pyx_v_dpdeResidualV_dp = ((PyArrayObject *)values[11]);
14145 __pyx_v_dpdeResidualV_dv = ((PyArrayObject *)values[12]);
14146 __pyx_v_subgridErrorP = ((PyArrayObject *)values[13]);
14147 __pyx_v_dsubgridErrorP_dp = ((PyArrayObject *)values[14]);
14148 __pyx_v_dsubgridErrorP_du = ((PyArrayObject *)values[15]);
14149 __pyx_v_dsubgridErrorP_dv = ((PyArrayObject *)values[16]);
14150 __pyx_v_subgridErrorU = ((PyArrayObject *)values[17]);
14151 __pyx_v_dsubgridErrorU_dp = ((PyArrayObject *)values[18]);
14152 __pyx_v_dsubgridErrorU_du = ((PyArrayObject *)values[19]);
14153 __pyx_v_dsubgridErrorU_dv = ((PyArrayObject *)values[20]);
14154 __pyx_v_subgridErrorV = ((PyArrayObject *)values[21]);
14155 __pyx_v_dsubgridErrorV_dp = ((PyArrayObject *)values[22]);
14156 __pyx_v_dsubgridErrorV_du = ((PyArrayObject *)values[23]);
14157 __pyx_v_dsubgridErrorV_dv = ((PyArrayObject *)values[24]);
14158 }
14159 goto __pyx_L6_skip;
14160 __pyx_L5_argtuple_error:;
14161 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorStokes2D_1_sd", 1, 25, 25, __pyx_nargs); __PYX_ERR(0, 1757, __pyx_L3_error)
14162 __pyx_L6_skip:;
14163 goto __pyx_L4_argument_unpacking_done;
14164 __pyx_L3_error:;
14165 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14166 Py_XDECREF(values[__pyx_temp]);
14167 }
14168 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorStokes2D_1_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
14169 __Pyx_RefNannyFinishContext();
14170 return NULL;
14171 __pyx_L4_argument_unpacking_done:;
14172 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1757, __pyx_L1_error)
14173 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "u", 0))) __PYX_ERR(0, 1758, __pyx_L1_error)
14174 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "v", 0))) __PYX_ERR(0, 1759, __pyx_L1_error)
14175 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1760, __pyx_L1_error)
14176 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualP", 0))) __PYX_ERR(0, 1761, __pyx_L1_error)
14177 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_du", 0))) __PYX_ERR(0, 1762, __pyx_L1_error)
14178 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualP_dv", 0))) __PYX_ERR(0, 1763, __pyx_L1_error)
14179 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualU", 0))) __PYX_ERR(0, 1764, __pyx_L1_error)
14180 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_dp", 0))) __PYX_ERR(0, 1765, __pyx_L1_error)
14181 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualU_du", 0))) __PYX_ERR(0, 1766, __pyx_L1_error)
14182 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pdeResidualV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pdeResidualV", 0))) __PYX_ERR(0, 1767, __pyx_L1_error)
14183 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dp", 0))) __PYX_ERR(0, 1768, __pyx_L1_error)
14184 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dpdeResidualV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dpdeResidualV_dv", 0))) __PYX_ERR(0, 1769, __pyx_L1_error)
14185 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorP), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorP", 0))) __PYX_ERR(0, 1770, __pyx_L1_error)
14186 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dp", 0))) __PYX_ERR(0, 1771, __pyx_L1_error)
14187 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_du", 0))) __PYX_ERR(0, 1772, __pyx_L1_error)
14188 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorP_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorP_dv", 0))) __PYX_ERR(0, 1773, __pyx_L1_error)
14189 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorU), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorU", 0))) __PYX_ERR(0, 1774, __pyx_L1_error)
14190 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dp", 0))) __PYX_ERR(0, 1775, __pyx_L1_error)
14191 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_du", 0))) __PYX_ERR(0, 1776, __pyx_L1_error)
14192 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorU_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorU_dv", 0))) __PYX_ERR(0, 1777, __pyx_L1_error)
14193 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subgridErrorV), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "subgridErrorV", 0))) __PYX_ERR(0, 1778, __pyx_L1_error)
14194 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dp), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dp", 0))) __PYX_ERR(0, 1779, __pyx_L1_error)
14195 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_du), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_du", 0))) __PYX_ERR(0, 1780, __pyx_L1_error)
14196 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dsubgridErrorV_dv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dsubgridErrorV_dv", 0))) __PYX_ERR(0, 1781, __pyx_L1_error)
14197 __pyx_r = __pyx_pf_13csubgridError_60calculateSubgridErrorStokes2D_1_sd(__pyx_self, __pyx_v_elementDiameter, __pyx_v_u, __pyx_v_v, __pyx_v_a, __pyx_v_pdeResidualP, __pyx_v_dpdeResidualP_du, __pyx_v_dpdeResidualP_dv, __pyx_v_pdeResidualU, __pyx_v_dpdeResidualU_dp, __pyx_v_dpdeResidualU_du, __pyx_v_pdeResidualV, __pyx_v_dpdeResidualV_dp, __pyx_v_dpdeResidualV_dv, __pyx_v_subgridErrorP, __pyx_v_dsubgridErrorP_dp, __pyx_v_dsubgridErrorP_du, __pyx_v_dsubgridErrorP_dv, __pyx_v_subgridErrorU, __pyx_v_dsubgridErrorU_dp, __pyx_v_dsubgridErrorU_du, __pyx_v_dsubgridErrorU_dv, __pyx_v_subgridErrorV, __pyx_v_dsubgridErrorV_dp, __pyx_v_dsubgridErrorV_du, __pyx_v_dsubgridErrorV_dv);
14198
14199 /* function exit code */
14200 goto __pyx_L0;
14201 __pyx_L1_error:;
14202 __pyx_r = NULL;
14203 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14204 Py_XDECREF(values[__pyx_temp]);
14205 }
14206 goto __pyx_L7_cleaned_up;
14207 __pyx_L0:;
14208 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14209 Py_XDECREF(values[__pyx_temp]);
14210 }
14211 __pyx_L7_cleaned_up:;
14212 __Pyx_RefNannyFinishContext();
14213 return __pyx_r;
14214}
14215
14216static PyObject *__pyx_pf_13csubgridError_60calculateSubgridErrorStokes2D_1_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_u, PyArrayObject *__pyx_v_v, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_pdeResidualP, PyArrayObject *__pyx_v_dpdeResidualP_du, PyArrayObject *__pyx_v_dpdeResidualP_dv, PyArrayObject *__pyx_v_pdeResidualU, PyArrayObject *__pyx_v_dpdeResidualU_dp, PyArrayObject *__pyx_v_dpdeResidualU_du, PyArrayObject *__pyx_v_pdeResidualV, PyArrayObject *__pyx_v_dpdeResidualV_dp, PyArrayObject *__pyx_v_dpdeResidualV_dv, PyArrayObject *__pyx_v_subgridErrorP, PyArrayObject *__pyx_v_dsubgridErrorP_dp, PyArrayObject *__pyx_v_dsubgridErrorP_du, PyArrayObject *__pyx_v_dsubgridErrorP_dv, PyArrayObject *__pyx_v_subgridErrorU, PyArrayObject *__pyx_v_dsubgridErrorU_dp, PyArrayObject *__pyx_v_dsubgridErrorU_du, PyArrayObject *__pyx_v_dsubgridErrorU_dv, PyArrayObject *__pyx_v_subgridErrorV, PyArrayObject *__pyx_v_dsubgridErrorV_dp, PyArrayObject *__pyx_v_dsubgridErrorV_du, PyArrayObject *__pyx_v_dsubgridErrorV_dv) {
14217 PyObject *__pyx_r = NULL;
14218 __Pyx_RefNannyDeclarations
14219 __Pyx_RefNannySetupContext("calculateSubgridErrorStokes2D_1_sd", 0);
14220
14221 /* "csubgridError.pyx":1782
14222 * np.ndarray dsubgridErrorV_du,
14223 * np.ndarray dsubgridErrorV_dv):
14224 * ccalculateSubgridErrorStokes2D_1_sd(dsubgridErrorP_du.shape[0], # <<<<<<<<<<<<<<
14225 * dsubgridErrorP_du.shape[1],
14226 * dsubgridErrorP_du.shape[2],
14227*/
14228 calculateSubgridErrorStokes2D_1_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_dsubgridErrorP_du)[2]), 2, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_u)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_v)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pdeResidualV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dpdeResidualV_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorP)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorP_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorU)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorU_dv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_subgridErrorV)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dp)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_du)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dsubgridErrorV_dv)));
14229
14230 /* "csubgridError.pyx":1757
14231 * <double*> dsubgridErrorV_du.data,
14232 * <double*> dsubgridErrorV_dv.data)
14233 * def calculateSubgridErrorStokes2D_1_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
14234 * np.ndarray u,
14235 * np.ndarray v,
14236*/
14237
14238 /* function exit code */
14239 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14240 __Pyx_XGIVEREF(__pyx_r);
14241 __Pyx_RefNannyFinishContext();
14242 return __pyx_r;
14243}
14244
14245/* "csubgridError.pyx":1811
14246 * <double*> dsubgridErrorV_du.data,
14247 * <double*> dsubgridErrorV_dv.data)
14248 * def calculateSubgridErrorShallowWater1D(double g, # <<<<<<<<<<<<<<
14249 * np.ndarray elementDiameter,
14250 * np.ndarray h,
14251*/
14252
14253/* Python wrapper */
14254static PyObject *__pyx_pw_13csubgridError_63calculateSubgridErrorShallowWater1D(PyObject *__pyx_self,
14255#if CYTHON_VECTORCALL
14256PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14257#else
14258PyObject *__pyx_args, PyObject *__pyx_kwds
14259#endif
14260); /*proto*/
14261static PyMethodDef __pyx_mdef_13csubgridError_63calculateSubgridErrorShallowWater1D = {"calculateSubgridErrorShallowWater1D", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_63calculateSubgridErrorShallowWater1D, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14262static PyObject *__pyx_pw_13csubgridError_63calculateSubgridErrorShallowWater1D(PyObject *__pyx_self,
14263#if CYTHON_VECTORCALL
14264PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14265#else
14266PyObject *__pyx_args, PyObject *__pyx_kwds
14267#endif
14268) {
14269 double __pyx_v_g;
14270 PyArrayObject *__pyx_v_elementDiameter = 0;
14271 PyArrayObject *__pyx_v_h = 0;
14272 PyArrayObject *__pyx_v_hu = 0;
14273 PyArrayObject *__pyx_v_cfl_1 = 0;
14274 PyArrayObject *__pyx_v_cfl_2 = 0;
14275 #if !CYTHON_VECTORCALL
14276 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14277 #endif
14278 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14279 PyObject* values[6] = {0,0,0,0,0,0};
14280 int __pyx_lineno = 0;
14281 const char *__pyx_filename = NULL;
14282 int __pyx_clineno = 0;
14283 PyObject *__pyx_r = 0;
14284 __Pyx_RefNannyDeclarations
14285 __Pyx_RefNannySetupContext("calculateSubgridErrorShallowWater1D (wrapper)", 0);
14286 #if !CYTHON_VECTORCALL
14287 #if CYTHON_ASSUME_SAFE_SIZE
14288 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14289 #else
14290 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14291 #endif
14292 #endif
14293 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14294 {
14295 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_g,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_h,&__pyx_mstate_global->__pyx_n_u_hu,&__pyx_mstate_global->__pyx_n_u_cfl_1,&__pyx_mstate_global->__pyx_n_u_cfl_2,0};
14296 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14297 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1811, __pyx_L3_error)
14298 if (__pyx_kwds_len > 0) {
14299 switch (__pyx_nargs) {
14300 case 6:
14301 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14302 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1811, __pyx_L3_error)
14303 CYTHON_FALLTHROUGH;
14304 case 5:
14305 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14306 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1811, __pyx_L3_error)
14307 CYTHON_FALLTHROUGH;
14308 case 4:
14309 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14310 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1811, __pyx_L3_error)
14311 CYTHON_FALLTHROUGH;
14312 case 3:
14313 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14314 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1811, __pyx_L3_error)
14315 CYTHON_FALLTHROUGH;
14316 case 2:
14317 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14318 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1811, __pyx_L3_error)
14319 CYTHON_FALLTHROUGH;
14320 case 1:
14321 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14322 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1811, __pyx_L3_error)
14323 CYTHON_FALLTHROUGH;
14324 case 0: break;
14325 default: goto __pyx_L5_argtuple_error;
14326 }
14327 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14328 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorShallowWater1D", 0) < (0)) __PYX_ERR(0, 1811, __pyx_L3_error)
14329 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
14330 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorShallowWater1D", 1, 6, 6, i); __PYX_ERR(0, 1811, __pyx_L3_error) }
14331 }
14332 } else if (unlikely(__pyx_nargs != 6)) {
14333 goto __pyx_L5_argtuple_error;
14334 } else {
14335 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14336 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1811, __pyx_L3_error)
14337 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14338 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1811, __pyx_L3_error)
14339 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14340 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1811, __pyx_L3_error)
14341 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14342 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1811, __pyx_L3_error)
14343 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14344 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1811, __pyx_L3_error)
14345 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14346 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1811, __pyx_L3_error)
14347 }
14348 __pyx_v_g = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1811, __pyx_L3_error)
14349 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
14350 __pyx_v_h = ((PyArrayObject *)values[2]);
14351 __pyx_v_hu = ((PyArrayObject *)values[3]);
14352 __pyx_v_cfl_1 = ((PyArrayObject *)values[4]);
14353 __pyx_v_cfl_2 = ((PyArrayObject *)values[5]);
14354 }
14355 goto __pyx_L6_skip;
14356 __pyx_L5_argtuple_error:;
14357 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorShallowWater1D", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 1811, __pyx_L3_error)
14358 __pyx_L6_skip:;
14359 goto __pyx_L4_argument_unpacking_done;
14360 __pyx_L3_error:;
14361 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14362 Py_XDECREF(values[__pyx_temp]);
14363 }
14364 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorShallowWater1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
14365 __Pyx_RefNannyFinishContext();
14366 return NULL;
14367 __pyx_L4_argument_unpacking_done:;
14368 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1812, __pyx_L1_error)
14369 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "h", 0))) __PYX_ERR(0, 1813, __pyx_L1_error)
14370 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "hu", 0))) __PYX_ERR(0, 1814, __pyx_L1_error)
14371 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl_1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl_1", 0))) __PYX_ERR(0, 1815, __pyx_L1_error)
14372 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl_2), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl_2", 0))) __PYX_ERR(0, 1816, __pyx_L1_error)
14373 __pyx_r = __pyx_pf_13csubgridError_62calculateSubgridErrorShallowWater1D(__pyx_self, __pyx_v_g, __pyx_v_elementDiameter, __pyx_v_h, __pyx_v_hu, __pyx_v_cfl_1, __pyx_v_cfl_2);
14374
14375 /* function exit code */
14376 goto __pyx_L0;
14377 __pyx_L1_error:;
14378 __pyx_r = NULL;
14379 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14380 Py_XDECREF(values[__pyx_temp]);
14381 }
14382 goto __pyx_L7_cleaned_up;
14383 __pyx_L0:;
14384 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14385 Py_XDECREF(values[__pyx_temp]);
14386 }
14387 __pyx_L7_cleaned_up:;
14388
14389 __Pyx_RefNannyFinishContext();
14390 return __pyx_r;
14391}
14392
14393static PyObject *__pyx_pf_13csubgridError_62calculateSubgridErrorShallowWater1D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_g, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_cfl_1, PyArrayObject *__pyx_v_cfl_2) {
14394 PyObject *__pyx_r = NULL;
14395 __Pyx_RefNannyDeclarations
14396 __Pyx_RefNannySetupContext("calculateSubgridErrorShallowWater1D", 0);
14397
14398 /* "csubgridError.pyx":1817
14399 * np.ndarray cfl_1,
14400 * np.ndarray cfl_2):
14401 * ccalculateSubgridErrorShallowWater1D(h.shape[0], # <<<<<<<<<<<<<<
14402 * h.shape[1],
14403 * g,
14404*/
14405 calculateSubgridErrorShallowWater1D((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_h)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_h)[1]), __pyx_v_g, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_h)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_hu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl_1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl_2)));
14406
14407 /* "csubgridError.pyx":1811
14408 * <double*> dsubgridErrorV_du.data,
14409 * <double*> dsubgridErrorV_dv.data)
14410 * def calculateSubgridErrorShallowWater1D(double g, # <<<<<<<<<<<<<<
14411 * np.ndarray elementDiameter,
14412 * np.ndarray h,
14413*/
14414
14415 /* function exit code */
14416 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14417 __Pyx_XGIVEREF(__pyx_r);
14418 __Pyx_RefNannyFinishContext();
14419 return __pyx_r;
14420}
14421
14422/* "csubgridError.pyx":1825
14423 * <double*> cfl_1.data,
14424 * <double*> cfl_2.data)
14425 * def calculateSubgridErrorShallowWater2D(double g, # <<<<<<<<<<<<<<
14426 * np.ndarray elementDiameter,
14427 * np.ndarray h,
14428*/
14429
14430/* Python wrapper */
14431static PyObject *__pyx_pw_13csubgridError_65calculateSubgridErrorShallowWater2D(PyObject *__pyx_self,
14432#if CYTHON_VECTORCALL
14433PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14434#else
14435PyObject *__pyx_args, PyObject *__pyx_kwds
14436#endif
14437); /*proto*/
14438static PyMethodDef __pyx_mdef_13csubgridError_65calculateSubgridErrorShallowWater2D = {"calculateSubgridErrorShallowWater2D", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_65calculateSubgridErrorShallowWater2D, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14439static PyObject *__pyx_pw_13csubgridError_65calculateSubgridErrorShallowWater2D(PyObject *__pyx_self,
14440#if CYTHON_VECTORCALL
14441PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14442#else
14443PyObject *__pyx_args, PyObject *__pyx_kwds
14444#endif
14445) {
14446 double __pyx_v_g;
14447 PyArrayObject *__pyx_v_elementDiameter = 0;
14448 PyArrayObject *__pyx_v_h = 0;
14449 PyArrayObject *__pyx_v_hu = 0;
14450 PyArrayObject *__pyx_v_hv = 0;
14451 PyArrayObject *__pyx_v_cfl_1 = 0;
14452 PyArrayObject *__pyx_v_cfl_2 = 0;
14453 PyArrayObject *__pyx_v_cfl_3 = 0;
14454 #if !CYTHON_VECTORCALL
14455 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14456 #endif
14457 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14458 PyObject* values[8] = {0,0,0,0,0,0,0,0};
14459 int __pyx_lineno = 0;
14460 const char *__pyx_filename = NULL;
14461 int __pyx_clineno = 0;
14462 PyObject *__pyx_r = 0;
14463 __Pyx_RefNannyDeclarations
14464 __Pyx_RefNannySetupContext("calculateSubgridErrorShallowWater2D (wrapper)", 0);
14465 #if !CYTHON_VECTORCALL
14466 #if CYTHON_ASSUME_SAFE_SIZE
14467 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14468 #else
14469 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14470 #endif
14471 #endif
14472 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14473 {
14474 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_g,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_h,&__pyx_mstate_global->__pyx_n_u_hu,&__pyx_mstate_global->__pyx_n_u_hv,&__pyx_mstate_global->__pyx_n_u_cfl_1,&__pyx_mstate_global->__pyx_n_u_cfl_2,&__pyx_mstate_global->__pyx_n_u_cfl_3,0};
14475 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14476 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1825, __pyx_L3_error)
14477 if (__pyx_kwds_len > 0) {
14478 switch (__pyx_nargs) {
14479 case 8:
14480 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14481 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1825, __pyx_L3_error)
14482 CYTHON_FALLTHROUGH;
14483 case 7:
14484 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14485 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1825, __pyx_L3_error)
14486 CYTHON_FALLTHROUGH;
14487 case 6:
14488 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14489 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1825, __pyx_L3_error)
14490 CYTHON_FALLTHROUGH;
14491 case 5:
14492 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14493 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1825, __pyx_L3_error)
14494 CYTHON_FALLTHROUGH;
14495 case 4:
14496 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14497 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1825, __pyx_L3_error)
14498 CYTHON_FALLTHROUGH;
14499 case 3:
14500 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14501 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1825, __pyx_L3_error)
14502 CYTHON_FALLTHROUGH;
14503 case 2:
14504 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14505 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1825, __pyx_L3_error)
14506 CYTHON_FALLTHROUGH;
14507 case 1:
14508 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14509 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1825, __pyx_L3_error)
14510 CYTHON_FALLTHROUGH;
14511 case 0: break;
14512 default: goto __pyx_L5_argtuple_error;
14513 }
14514 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14515 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorShallowWater2D", 0) < (0)) __PYX_ERR(0, 1825, __pyx_L3_error)
14516 for (Py_ssize_t i = __pyx_nargs; i < 8; i++) {
14517 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorShallowWater2D", 1, 8, 8, i); __PYX_ERR(0, 1825, __pyx_L3_error) }
14518 }
14519 } else if (unlikely(__pyx_nargs != 8)) {
14520 goto __pyx_L5_argtuple_error;
14521 } else {
14522 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14523 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1825, __pyx_L3_error)
14524 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14525 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1825, __pyx_L3_error)
14526 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14527 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1825, __pyx_L3_error)
14528 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14529 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1825, __pyx_L3_error)
14530 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14531 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1825, __pyx_L3_error)
14532 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14533 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1825, __pyx_L3_error)
14534 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14535 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1825, __pyx_L3_error)
14536 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
14537 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1825, __pyx_L3_error)
14538 }
14539 __pyx_v_g = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_g == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L3_error)
14540 __pyx_v_elementDiameter = ((PyArrayObject *)values[1]);
14541 __pyx_v_h = ((PyArrayObject *)values[2]);
14542 __pyx_v_hu = ((PyArrayObject *)values[3]);
14543 __pyx_v_hv = ((PyArrayObject *)values[4]);
14544 __pyx_v_cfl_1 = ((PyArrayObject *)values[5]);
14545 __pyx_v_cfl_2 = ((PyArrayObject *)values[6]);
14546 __pyx_v_cfl_3 = ((PyArrayObject *)values[7]);
14547 }
14548 goto __pyx_L6_skip;
14549 __pyx_L5_argtuple_error:;
14550 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorShallowWater2D", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 1825, __pyx_L3_error)
14551 __pyx_L6_skip:;
14552 goto __pyx_L4_argument_unpacking_done;
14553 __pyx_L3_error:;
14554 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14555 Py_XDECREF(values[__pyx_temp]);
14556 }
14557 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorShallowWater2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
14558 __Pyx_RefNannyFinishContext();
14559 return NULL;
14560 __pyx_L4_argument_unpacking_done:;
14561 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1826, __pyx_L1_error)
14562 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_h), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "h", 0))) __PYX_ERR(0, 1827, __pyx_L1_error)
14563 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "hu", 0))) __PYX_ERR(0, 1828, __pyx_L1_error)
14564 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hv), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "hv", 0))) __PYX_ERR(0, 1829, __pyx_L1_error)
14565 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl_1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl_1", 0))) __PYX_ERR(0, 1830, __pyx_L1_error)
14566 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl_2), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl_2", 0))) __PYX_ERR(0, 1831, __pyx_L1_error)
14567 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl_3), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl_3", 0))) __PYX_ERR(0, 1832, __pyx_L1_error)
14568 __pyx_r = __pyx_pf_13csubgridError_64calculateSubgridErrorShallowWater2D(__pyx_self, __pyx_v_g, __pyx_v_elementDiameter, __pyx_v_h, __pyx_v_hu, __pyx_v_hv, __pyx_v_cfl_1, __pyx_v_cfl_2, __pyx_v_cfl_3);
14569
14570 /* function exit code */
14571 goto __pyx_L0;
14572 __pyx_L1_error:;
14573 __pyx_r = NULL;
14574 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14575 Py_XDECREF(values[__pyx_temp]);
14576 }
14577 goto __pyx_L7_cleaned_up;
14578 __pyx_L0:;
14579 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14580 Py_XDECREF(values[__pyx_temp]);
14581 }
14582 __pyx_L7_cleaned_up:;
14583
14584 __Pyx_RefNannyFinishContext();
14585 return __pyx_r;
14586}
14587
14588static PyObject *__pyx_pf_13csubgridError_64calculateSubgridErrorShallowWater2D(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_g, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_h, PyArrayObject *__pyx_v_hu, PyArrayObject *__pyx_v_hv, PyArrayObject *__pyx_v_cfl_1, PyArrayObject *__pyx_v_cfl_2, PyArrayObject *__pyx_v_cfl_3) {
14589 PyObject *__pyx_r = NULL;
14590 __Pyx_RefNannyDeclarations
14591 __Pyx_RefNannySetupContext("calculateSubgridErrorShallowWater2D", 0);
14592
14593 /* "csubgridError.pyx":1833
14594 * np.ndarray cfl_2,
14595 * np.ndarray cfl_3):
14596 * ccalculateSubgridErrorShallowWater2D(h.shape[0], # <<<<<<<<<<<<<<
14597 * h.shape[1],
14598 * g,
14599*/
14600 calculateSubgridErrorShallowWater2D((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_h)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_h)[1]), __pyx_v_g, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_h)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_hu)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_hv)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl_1)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl_2)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl_3)));
14601
14602 /* "csubgridError.pyx":1825
14603 * <double*> cfl_1.data,
14604 * <double*> cfl_2.data)
14605 * def calculateSubgridErrorShallowWater2D(double g, # <<<<<<<<<<<<<<
14606 * np.ndarray elementDiameter,
14607 * np.ndarray h,
14608*/
14609
14610 /* function exit code */
14611 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14612 __Pyx_XGIVEREF(__pyx_r);
14613 __Pyx_RefNannyFinishContext();
14614 return __pyx_r;
14615}
14616
14617/* "csubgridError.pyx":1843
14618 * <double*> cfl_2.data,
14619 * <double*> cfl_3.data)
14620 * def calculateSubgridError_Harari_tau_sd(int nSpace, # <<<<<<<<<<<<<<
14621 * double dt,
14622 * np.ndarray rowptr,
14623*/
14624
14625/* Python wrapper */
14626static PyObject *__pyx_pw_13csubgridError_67calculateSubgridError_Harari_tau_sd(PyObject *__pyx_self,
14627#if CYTHON_VECTORCALL
14628PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14629#else
14630PyObject *__pyx_args, PyObject *__pyx_kwds
14631#endif
14632); /*proto*/
14633static PyMethodDef __pyx_mdef_13csubgridError_67calculateSubgridError_Harari_tau_sd = {"calculateSubgridError_Harari_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_67calculateSubgridError_Harari_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14634static PyObject *__pyx_pw_13csubgridError_67calculateSubgridError_Harari_tau_sd(PyObject *__pyx_self,
14635#if CYTHON_VECTORCALL
14636PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14637#else
14638PyObject *__pyx_args, PyObject *__pyx_kwds
14639#endif
14640) {
14641 int __pyx_v_nSpace;
14642 double __pyx_v_dt;
14643 PyArrayObject *__pyx_v_rowptr = 0;
14644 PyArrayObject *__pyx_v_colind = 0;
14645 PyArrayObject *__pyx_v_elementDiameter = 0;
14646 PyArrayObject *__pyx_v_a = 0;
14647 PyArrayObject *__pyx_v_tau = 0;
14648 #if !CYTHON_VECTORCALL
14649 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14650 #endif
14651 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14652 PyObject* values[7] = {0,0,0,0,0,0,0};
14653 int __pyx_lineno = 0;
14654 const char *__pyx_filename = NULL;
14655 int __pyx_clineno = 0;
14656 PyObject *__pyx_r = 0;
14657 __Pyx_RefNannyDeclarations
14658 __Pyx_RefNannySetupContext("calculateSubgridError_Harari_tau_sd (wrapper)", 0);
14659 #if !CYTHON_VECTORCALL
14660 #if CYTHON_ASSUME_SAFE_SIZE
14661 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14662 #else
14663 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14664 #endif
14665 #endif
14666 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14667 {
14668 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nSpace,&__pyx_mstate_global->__pyx_n_u_dt,&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_elementDiameter,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_tau,0};
14669 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14670 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1843, __pyx_L3_error)
14671 if (__pyx_kwds_len > 0) {
14672 switch (__pyx_nargs) {
14673 case 7:
14674 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14675 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1843, __pyx_L3_error)
14676 CYTHON_FALLTHROUGH;
14677 case 6:
14678 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14679 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1843, __pyx_L3_error)
14680 CYTHON_FALLTHROUGH;
14681 case 5:
14682 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14683 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1843, __pyx_L3_error)
14684 CYTHON_FALLTHROUGH;
14685 case 4:
14686 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14687 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1843, __pyx_L3_error)
14688 CYTHON_FALLTHROUGH;
14689 case 3:
14690 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14691 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1843, __pyx_L3_error)
14692 CYTHON_FALLTHROUGH;
14693 case 2:
14694 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14695 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1843, __pyx_L3_error)
14696 CYTHON_FALLTHROUGH;
14697 case 1:
14698 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14699 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1843, __pyx_L3_error)
14700 CYTHON_FALLTHROUGH;
14701 case 0: break;
14702 default: goto __pyx_L5_argtuple_error;
14703 }
14704 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14705 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_Harari_tau_sd", 0) < (0)) __PYX_ERR(0, 1843, __pyx_L3_error)
14706 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
14707 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_Harari_tau_sd", 1, 7, 7, i); __PYX_ERR(0, 1843, __pyx_L3_error) }
14708 }
14709 } else if (unlikely(__pyx_nargs != 7)) {
14710 goto __pyx_L5_argtuple_error;
14711 } else {
14712 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14713 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1843, __pyx_L3_error)
14714 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14715 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1843, __pyx_L3_error)
14716 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14717 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1843, __pyx_L3_error)
14718 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
14719 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1843, __pyx_L3_error)
14720 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
14721 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1843, __pyx_L3_error)
14722 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
14723 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1843, __pyx_L3_error)
14724 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
14725 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1843, __pyx_L3_error)
14726 }
14727 __pyx_v_nSpace = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_nSpace == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1843, __pyx_L3_error)
14728 __pyx_v_dt = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dt == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1844, __pyx_L3_error)
14729 __pyx_v_rowptr = ((PyArrayObject *)values[2]);
14730 __pyx_v_colind = ((PyArrayObject *)values[3]);
14731 __pyx_v_elementDiameter = ((PyArrayObject *)values[4]);
14732 __pyx_v_a = ((PyArrayObject *)values[5]);
14733 __pyx_v_tau = ((PyArrayObject *)values[6]);
14734 }
14735 goto __pyx_L6_skip;
14736 __pyx_L5_argtuple_error:;
14737 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_Harari_tau_sd", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 1843, __pyx_L3_error)
14738 __pyx_L6_skip:;
14739 goto __pyx_L4_argument_unpacking_done;
14740 __pyx_L3_error:;
14741 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14742 Py_XDECREF(values[__pyx_temp]);
14743 }
14744 __Pyx_AddTraceback("csubgridError.calculateSubgridError_Harari_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
14745 __Pyx_RefNannyFinishContext();
14746 return NULL;
14747 __pyx_L4_argument_unpacking_done:;
14748 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 1845, __pyx_L1_error)
14749 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 1846, __pyx_L1_error)
14750 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elementDiameter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "elementDiameter", 0))) __PYX_ERR(0, 1847, __pyx_L1_error)
14751 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1848, __pyx_L1_error)
14752 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 1849, __pyx_L1_error)
14753 __pyx_r = __pyx_pf_13csubgridError_66calculateSubgridError_Harari_tau_sd(__pyx_self, __pyx_v_nSpace, __pyx_v_dt, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_elementDiameter, __pyx_v_a, __pyx_v_tau);
14754
14755 /* function exit code */
14756 goto __pyx_L0;
14757 __pyx_L1_error:;
14758 __pyx_r = NULL;
14759 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14760 Py_XDECREF(values[__pyx_temp]);
14761 }
14762 goto __pyx_L7_cleaned_up;
14763 __pyx_L0:;
14764 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14765 Py_XDECREF(values[__pyx_temp]);
14766 }
14767 __pyx_L7_cleaned_up:;
14768
14769
14770 __Pyx_RefNannyFinishContext();
14771 return __pyx_r;
14772}
14773
14774static PyObject *__pyx_pf_13csubgridError_66calculateSubgridError_Harari_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nSpace, double __pyx_v_dt, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_elementDiameter, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_tau) {
14775 PyObject *__pyx_r = NULL;
14776 __Pyx_RefNannyDeclarations
14777 __Pyx_RefNannySetupContext("calculateSubgridError_Harari_tau_sd", 0);
14778
14779 /* "csubgridError.pyx":1850
14780 * np.ndarray a,
14781 * np.ndarray tau):
14782 * ccalculateSubgridError_Harari_tau_sd(tau.shape[0], # <<<<<<<<<<<<<<
14783 * tau.shape[1],
14784 * nSpace,
14785*/
14786 calculateSubgridError_Harari_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_tau)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_tau)[1]), __pyx_v_nSpace, __pyx_v_dt, ((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_elementDiameter)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)));
14787
14788 /* "csubgridError.pyx":1843
14789 * <double*> cfl_2.data,
14790 * <double*> cfl_3.data)
14791 * def calculateSubgridError_Harari_tau_sd(int nSpace, # <<<<<<<<<<<<<<
14792 * double dt,
14793 * np.ndarray rowptr,
14794*/
14795
14796 /* function exit code */
14797 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14798 __Pyx_XGIVEREF(__pyx_r);
14799 __Pyx_RefNannyFinishContext();
14800 return __pyx_r;
14801}
14802
14803/* "csubgridError.pyx":1859
14804 * <double*> a.data,
14805 * <double*> tau.data)
14806 * def calculateSubgridErrorGradient_tauRes(np.ndarray tau_gradient, # <<<<<<<<<<<<<<
14807 * np.ndarray grad_pdeResidual,
14808 * np.ndarray grad_subgridError):
14809*/
14810
14811/* Python wrapper */
14812static PyObject *__pyx_pw_13csubgridError_69calculateSubgridErrorGradient_tauRes(PyObject *__pyx_self,
14813#if CYTHON_VECTORCALL
14814PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14815#else
14816PyObject *__pyx_args, PyObject *__pyx_kwds
14817#endif
14818); /*proto*/
14819static PyMethodDef __pyx_mdef_13csubgridError_69calculateSubgridErrorGradient_tauRes = {"calculateSubgridErrorGradient_tauRes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_69calculateSubgridErrorGradient_tauRes, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14820static PyObject *__pyx_pw_13csubgridError_69calculateSubgridErrorGradient_tauRes(PyObject *__pyx_self,
14821#if CYTHON_VECTORCALL
14822PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14823#else
14824PyObject *__pyx_args, PyObject *__pyx_kwds
14825#endif
14826) {
14827 PyArrayObject *__pyx_v_tau_gradient = 0;
14828 PyArrayObject *__pyx_v_grad_pdeResidual = 0;
14829 PyArrayObject *__pyx_v_grad_subgridError = 0;
14830 #if !CYTHON_VECTORCALL
14831 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14832 #endif
14833 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14834 PyObject* values[3] = {0,0,0};
14835 int __pyx_lineno = 0;
14836 const char *__pyx_filename = NULL;
14837 int __pyx_clineno = 0;
14838 PyObject *__pyx_r = 0;
14839 __Pyx_RefNannyDeclarations
14840 __Pyx_RefNannySetupContext("calculateSubgridErrorGradient_tauRes (wrapper)", 0);
14841 #if !CYTHON_VECTORCALL
14842 #if CYTHON_ASSUME_SAFE_SIZE
14843 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14844 #else
14845 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14846 #endif
14847 #endif
14848 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14849 {
14850 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tau_gradient,&__pyx_mstate_global->__pyx_n_u_grad_pdeResidual,&__pyx_mstate_global->__pyx_n_u_grad_subgridError,0};
14851 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
14852 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1859, __pyx_L3_error)
14853 if (__pyx_kwds_len > 0) {
14854 switch (__pyx_nargs) {
14855 case 3:
14856 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14857 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1859, __pyx_L3_error)
14858 CYTHON_FALLTHROUGH;
14859 case 2:
14860 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14861 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1859, __pyx_L3_error)
14862 CYTHON_FALLTHROUGH;
14863 case 1:
14864 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14865 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1859, __pyx_L3_error)
14866 CYTHON_FALLTHROUGH;
14867 case 0: break;
14868 default: goto __pyx_L5_argtuple_error;
14869 }
14870 const Py_ssize_t kwd_pos_args = __pyx_nargs;
14871 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridErrorGradient_tauRes", 0) < (0)) __PYX_ERR(0, 1859, __pyx_L3_error)
14872 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
14873 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorGradient_tauRes", 1, 3, 3, i); __PYX_ERR(0, 1859, __pyx_L3_error) }
14874 }
14875 } else if (unlikely(__pyx_nargs != 3)) {
14876 goto __pyx_L5_argtuple_error;
14877 } else {
14878 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
14879 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1859, __pyx_L3_error)
14880 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
14881 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1859, __pyx_L3_error)
14882 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
14883 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1859, __pyx_L3_error)
14884 }
14885 __pyx_v_tau_gradient = ((PyArrayObject *)values[0]);
14886 __pyx_v_grad_pdeResidual = ((PyArrayObject *)values[1]);
14887 __pyx_v_grad_subgridError = ((PyArrayObject *)values[2]);
14888 }
14889 goto __pyx_L6_skip;
14890 __pyx_L5_argtuple_error:;
14891 __Pyx_RaiseArgtupleInvalid("calculateSubgridErrorGradient_tauRes", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1859, __pyx_L3_error)
14892 __pyx_L6_skip:;
14893 goto __pyx_L4_argument_unpacking_done;
14894 __pyx_L3_error:;
14895 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14896 Py_XDECREF(values[__pyx_temp]);
14897 }
14898 __Pyx_AddTraceback("csubgridError.calculateSubgridErrorGradient_tauRes", __pyx_clineno, __pyx_lineno, __pyx_filename);
14899 __Pyx_RefNannyFinishContext();
14900 return NULL;
14901 __pyx_L4_argument_unpacking_done:;
14902 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau_gradient), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau_gradient", 0))) __PYX_ERR(0, 1859, __pyx_L1_error)
14903 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_pdeResidual), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_pdeResidual", 0))) __PYX_ERR(0, 1860, __pyx_L1_error)
14904 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_subgridError), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_subgridError", 0))) __PYX_ERR(0, 1861, __pyx_L1_error)
14905 __pyx_r = __pyx_pf_13csubgridError_68calculateSubgridErrorGradient_tauRes(__pyx_self, __pyx_v_tau_gradient, __pyx_v_grad_pdeResidual, __pyx_v_grad_subgridError);
14906
14907 /* function exit code */
14908 goto __pyx_L0;
14909 __pyx_L1_error:;
14910 __pyx_r = NULL;
14911 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14912 Py_XDECREF(values[__pyx_temp]);
14913 }
14914 goto __pyx_L7_cleaned_up;
14915 __pyx_L0:;
14916 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14917 Py_XDECREF(values[__pyx_temp]);
14918 }
14919 __pyx_L7_cleaned_up:;
14920 __Pyx_RefNannyFinishContext();
14921 return __pyx_r;
14922}
14923
14924static PyObject *__pyx_pf_13csubgridError_68calculateSubgridErrorGradient_tauRes(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_tau_gradient, PyArrayObject *__pyx_v_grad_pdeResidual, PyArrayObject *__pyx_v_grad_subgridError) {
14925 PyObject *__pyx_r = NULL;
14926 __Pyx_RefNannyDeclarations
14927 __Pyx_RefNannySetupContext("calculateSubgridErrorGradient_tauRes", 0);
14928
14929 /* "csubgridError.pyx":1862
14930 * np.ndarray grad_pdeResidual,
14931 * np.ndarray grad_subgridError):
14932 * ccalculateSubgridErrorGradient_tauRes(grad_subgridError.shape[0], # <<<<<<<<<<<<<<
14933 * grad_subgridError.shape[1],
14934 * grad_subgridError.shape[2],
14935*/
14936 calculateSubgridErrorGradient_tauRes((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_grad_subgridError)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_grad_subgridError)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_grad_subgridError)[2]), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau_gradient)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_pdeResidual)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_subgridError)));
14937
14938 /* "csubgridError.pyx":1859
14939 * <double*> a.data,
14940 * <double*> tau.data)
14941 * def calculateSubgridErrorGradient_tauRes(np.ndarray tau_gradient, # <<<<<<<<<<<<<<
14942 * np.ndarray grad_pdeResidual,
14943 * np.ndarray grad_subgridError):
14944*/
14945
14946 /* function exit code */
14947 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14948 __Pyx_XGIVEREF(__pyx_r);
14949 __Pyx_RefNannyFinishContext();
14950 return __pyx_r;
14951}
14952
14953/* "csubgridError.pyx":1868
14954 * <double*> grad_pdeResidual.data,
14955 * <double*> grad_subgridError.data)
14956 * def calculateSubgridError_ADR_Sangalli_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
14957 * np.ndarray colind,
14958 * np.ndarray inverseJ,
14959*/
14960
14961/* Python wrapper */
14962static PyObject *__pyx_pw_13csubgridError_71calculateSubgridError_ADR_Sangalli_tau_sd(PyObject *__pyx_self,
14963#if CYTHON_VECTORCALL
14964PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14965#else
14966PyObject *__pyx_args, PyObject *__pyx_kwds
14967#endif
14968); /*proto*/
14969static PyMethodDef __pyx_mdef_13csubgridError_71calculateSubgridError_ADR_Sangalli_tau_sd = {"calculateSubgridError_ADR_Sangalli_tau_sd", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13csubgridError_71calculateSubgridError_ADR_Sangalli_tau_sd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
14970static PyObject *__pyx_pw_13csubgridError_71calculateSubgridError_ADR_Sangalli_tau_sd(PyObject *__pyx_self,
14971#if CYTHON_VECTORCALL
14972PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14973#else
14974PyObject *__pyx_args, PyObject *__pyx_kwds
14975#endif
14976) {
14977 PyArrayObject *__pyx_v_rowptr = 0;
14978 PyArrayObject *__pyx_v_colind = 0;
14979 PyArrayObject *__pyx_v_inverseJ = 0;
14980 PyArrayObject *__pyx_v_dmt = 0;
14981 PyArrayObject *__pyx_v_df = 0;
14982 PyArrayObject *__pyx_v_a = 0;
14983 PyArrayObject *__pyx_v_da = 0;
14984 PyArrayObject *__pyx_v_grad_phi = 0;
14985 PyArrayObject *__pyx_v_dphi = 0;
14986 PyArrayObject *__pyx_v_dr = 0;
14987 PyArrayObject *__pyx_v_pe = 0;
14988 PyArrayObject *__pyx_v_cfl = 0;
14989 PyArrayObject *__pyx_v_tau = 0;
14990 PyArrayObject *__pyx_v_tau_gradient = 0;
14991 #if !CYTHON_VECTORCALL
14992 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14993 #endif
14994 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14995 PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
14996 int __pyx_lineno = 0;
14997 const char *__pyx_filename = NULL;
14998 int __pyx_clineno = 0;
14999 PyObject *__pyx_r = 0;
15000 __Pyx_RefNannyDeclarations
15001 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_Sangalli_tau_sd (wrapper)", 0);
15002 #if !CYTHON_VECTORCALL
15003 #if CYTHON_ASSUME_SAFE_SIZE
15004 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
15005 #else
15006 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
15007 #endif
15008 #endif
15009 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
15010 {
15011 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rowptr,&__pyx_mstate_global->__pyx_n_u_colind,&__pyx_mstate_global->__pyx_n_u_inverseJ,&__pyx_mstate_global->__pyx_n_u_dmt,&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_a,&__pyx_mstate_global->__pyx_n_u_da,&__pyx_mstate_global->__pyx_n_u_grad_phi,&__pyx_mstate_global->__pyx_n_u_dphi,&__pyx_mstate_global->__pyx_n_u_dr,&__pyx_mstate_global->__pyx_n_u_pe,&__pyx_mstate_global->__pyx_n_u_cfl,&__pyx_mstate_global->__pyx_n_u_tau,&__pyx_mstate_global->__pyx_n_u_tau_gradient,0};
15012 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
15013 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 1868, __pyx_L3_error)
15014 if (__pyx_kwds_len > 0) {
15015 switch (__pyx_nargs) {
15016 case 14:
15017 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15018 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1868, __pyx_L3_error)
15019 CYTHON_FALLTHROUGH;
15020 case 13:
15021 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15022 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1868, __pyx_L3_error)
15023 CYTHON_FALLTHROUGH;
15024 case 12:
15025 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15026 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1868, __pyx_L3_error)
15027 CYTHON_FALLTHROUGH;
15028 case 11:
15029 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15030 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1868, __pyx_L3_error)
15031 CYTHON_FALLTHROUGH;
15032 case 10:
15033 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15034 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1868, __pyx_L3_error)
15035 CYTHON_FALLTHROUGH;
15036 case 9:
15037 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15038 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1868, __pyx_L3_error)
15039 CYTHON_FALLTHROUGH;
15040 case 8:
15041 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15042 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1868, __pyx_L3_error)
15043 CYTHON_FALLTHROUGH;
15044 case 7:
15045 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15046 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1868, __pyx_L3_error)
15047 CYTHON_FALLTHROUGH;
15048 case 6:
15049 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15050 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1868, __pyx_L3_error)
15051 CYTHON_FALLTHROUGH;
15052 case 5:
15053 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1868, __pyx_L3_error)
15055 CYTHON_FALLTHROUGH;
15056 case 4:
15057 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15058 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1868, __pyx_L3_error)
15059 CYTHON_FALLTHROUGH;
15060 case 3:
15061 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15062 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1868, __pyx_L3_error)
15063 CYTHON_FALLTHROUGH;
15064 case 2:
15065 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15066 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1868, __pyx_L3_error)
15067 CYTHON_FALLTHROUGH;
15068 case 1:
15069 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15070 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1868, __pyx_L3_error)
15071 CYTHON_FALLTHROUGH;
15072 case 0: break;
15073 default: goto __pyx_L5_argtuple_error;
15074 }
15075 const Py_ssize_t kwd_pos_args = __pyx_nargs;
15076 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "calculateSubgridError_ADR_Sangalli_tau_sd", 0) < (0)) __PYX_ERR(0, 1868, __pyx_L3_error)
15077 for (Py_ssize_t i = __pyx_nargs; i < 14; i++) {
15078 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_Sangalli_tau_sd", 1, 14, 14, i); __PYX_ERR(0, 1868, __pyx_L3_error) }
15079 }
15080 } else if (unlikely(__pyx_nargs != 14)) {
15081 goto __pyx_L5_argtuple_error;
15082 } else {
15083 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
15084 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1868, __pyx_L3_error)
15085 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
15086 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1868, __pyx_L3_error)
15087 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
15088 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1868, __pyx_L3_error)
15089 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
15090 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1868, __pyx_L3_error)
15091 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
15092 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1868, __pyx_L3_error)
15093 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
15094 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1868, __pyx_L3_error)
15095 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
15096 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1868, __pyx_L3_error)
15097 values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
15098 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1868, __pyx_L3_error)
15099 values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
15100 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1868, __pyx_L3_error)
15101 values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9);
15102 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1868, __pyx_L3_error)
15103 values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10);
15104 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1868, __pyx_L3_error)
15105 values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11);
15106 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1868, __pyx_L3_error)
15107 values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12);
15108 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1868, __pyx_L3_error)
15109 values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13);
15110 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1868, __pyx_L3_error)
15111 }
15112 __pyx_v_rowptr = ((PyArrayObject *)values[0]);
15113 __pyx_v_colind = ((PyArrayObject *)values[1]);
15114 __pyx_v_inverseJ = ((PyArrayObject *)values[2]);
15115 __pyx_v_dmt = ((PyArrayObject *)values[3]);
15116 __pyx_v_df = ((PyArrayObject *)values[4]);
15117 __pyx_v_a = ((PyArrayObject *)values[5]);
15118 __pyx_v_da = ((PyArrayObject *)values[6]);
15119 __pyx_v_grad_phi = ((PyArrayObject *)values[7]);
15120 __pyx_v_dphi = ((PyArrayObject *)values[8]);
15121 __pyx_v_dr = ((PyArrayObject *)values[9]);
15122 __pyx_v_pe = ((PyArrayObject *)values[10]);
15123 __pyx_v_cfl = ((PyArrayObject *)values[11]);
15124 __pyx_v_tau = ((PyArrayObject *)values[12]);
15125 __pyx_v_tau_gradient = ((PyArrayObject *)values[13]);
15126 }
15127 goto __pyx_L6_skip;
15128 __pyx_L5_argtuple_error:;
15129 __Pyx_RaiseArgtupleInvalid("calculateSubgridError_ADR_Sangalli_tau_sd", 1, 14, 14, __pyx_nargs); __PYX_ERR(0, 1868, __pyx_L3_error)
15130 __pyx_L6_skip:;
15131 goto __pyx_L4_argument_unpacking_done;
15132 __pyx_L3_error:;
15133 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15134 Py_XDECREF(values[__pyx_temp]);
15135 }
15136 __Pyx_AddTraceback("csubgridError.calculateSubgridError_ADR_Sangalli_tau_sd", __pyx_clineno, __pyx_lineno, __pyx_filename);
15137 __Pyx_RefNannyFinishContext();
15138 return NULL;
15139 __pyx_L4_argument_unpacking_done:;
15140 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rowptr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rowptr", 0))) __PYX_ERR(0, 1868, __pyx_L1_error)
15141 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_colind), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "colind", 0))) __PYX_ERR(0, 1869, __pyx_L1_error)
15142 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inverseJ), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inverseJ", 0))) __PYX_ERR(0, 1870, __pyx_L1_error)
15143 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmt), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dmt", 0))) __PYX_ERR(0, 1871, __pyx_L1_error)
15144 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_df), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "df", 0))) __PYX_ERR(0, 1872, __pyx_L1_error)
15145 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(0, 1873, __pyx_L1_error)
15146 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "da", 0))) __PYX_ERR(0, 1874, __pyx_L1_error)
15147 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grad_phi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "grad_phi", 0))) __PYX_ERR(0, 1875, __pyx_L1_error)
15148 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dphi), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dphi", 0))) __PYX_ERR(0, 1876, __pyx_L1_error)
15149 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dr), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "dr", 0))) __PYX_ERR(0, 1877, __pyx_L1_error)
15150 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pe), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "pe", 0))) __PYX_ERR(0, 1878, __pyx_L1_error)
15151 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cfl), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "cfl", 0))) __PYX_ERR(0, 1879, __pyx_L1_error)
15152 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau", 0))) __PYX_ERR(0, 1880, __pyx_L1_error)
15153 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tau_gradient), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "tau_gradient", 0))) __PYX_ERR(0, 1881, __pyx_L1_error)
15154 __pyx_r = __pyx_pf_13csubgridError_70calculateSubgridError_ADR_Sangalli_tau_sd(__pyx_self, __pyx_v_rowptr, __pyx_v_colind, __pyx_v_inverseJ, __pyx_v_dmt, __pyx_v_df, __pyx_v_a, __pyx_v_da, __pyx_v_grad_phi, __pyx_v_dphi, __pyx_v_dr, __pyx_v_pe, __pyx_v_cfl, __pyx_v_tau, __pyx_v_tau_gradient);
15155
15156 /* function exit code */
15157 goto __pyx_L0;
15158 __pyx_L1_error:;
15159 __pyx_r = NULL;
15160 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15161 Py_XDECREF(values[__pyx_temp]);
15162 }
15163 goto __pyx_L7_cleaned_up;
15164 __pyx_L0:;
15165 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
15166 Py_XDECREF(values[__pyx_temp]);
15167 }
15168 __pyx_L7_cleaned_up:;
15169 __Pyx_RefNannyFinishContext();
15170 return __pyx_r;
15171}
15172
15173static PyObject *__pyx_pf_13csubgridError_70calculateSubgridError_ADR_Sangalli_tau_sd(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_rowptr, PyArrayObject *__pyx_v_colind, PyArrayObject *__pyx_v_inverseJ, PyArrayObject *__pyx_v_dmt, PyArrayObject *__pyx_v_df, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_da, PyArrayObject *__pyx_v_grad_phi, PyArrayObject *__pyx_v_dphi, PyArrayObject *__pyx_v_dr, PyArrayObject *__pyx_v_pe, PyArrayObject *__pyx_v_cfl, PyArrayObject *__pyx_v_tau, PyArrayObject *__pyx_v_tau_gradient) {
15174 PyObject *__pyx_r = NULL;
15175 __Pyx_RefNannyDeclarations
15176 __Pyx_RefNannySetupContext("calculateSubgridError_ADR_Sangalli_tau_sd", 0);
15177
15178 /* "csubgridError.pyx":1882
15179 * np.ndarray tau,
15180 * np.ndarray tau_gradient):
15181 * ccalculateSubgridError_ADR_Sangalli_tau_sd(df.shape[0], # <<<<<<<<<<<<<<
15182 * df.shape[1],
15183 * df.shape[2],
15184*/
15185 calculateSubgridError_ADR_Sangalli_tau_sd((__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[0]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_df)[2]), ((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_inverseJ)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dmt)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_df)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_da)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_grad_phi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dphi)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_dr)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_pe)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_cfl)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_tau_gradient)));
15186
15187 /* "csubgridError.pyx":1868
15188 * <double*> grad_pdeResidual.data,
15189 * <double*> grad_subgridError.data)
15190 * def calculateSubgridError_ADR_Sangalli_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
15191 * np.ndarray colind,
15192 * np.ndarray inverseJ,
15193*/
15194
15195 /* function exit code */
15196 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15197 __Pyx_XGIVEREF(__pyx_r);
15198 __Pyx_RefNannyFinishContext();
15199 return __pyx_r;
15200}
15201/* #### Code section: module_exttypes ### */
15202
15203static PyMethodDef __pyx_methods[] = {
15204 {0, 0, 0, 0}
15205};
15206/* #### Code section: initfunc_declarations ### */
15207static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
15208static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
15209static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
15210static CYTHON_SMALL_CODE int __Pyx_InitAfterSharedUtility(void); /*proto*/
15211static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
15212static CYTHON_SMALL_CODE int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15213static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15214static CYTHON_SMALL_CODE int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15215static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15216static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15217static CYTHON_SMALL_CODE int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
15218static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
15219/* #### Code section: init_module ### */
15220
15221static int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate) {
15222 __Pyx_RefNannyDeclarations
15223 CYTHON_UNUSED_VAR(__pyx_mstate);
15224 __Pyx_RefNannySetupContext("__Pyx_modinit_Global_init_code", 0);
15225 /*--- Global init code ---*/
15226 __Pyx_RefNannyFinishContext();
15227 return 0;
15228}
15229
15230static int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate) {
15231 __Pyx_RefNannyDeclarations
15232 CYTHON_UNUSED_VAR(__pyx_mstate);
15233 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_export_code", 0);
15234 /*--- Variable export code ---*/
15235 __Pyx_RefNannyFinishContext();
15236 return 0;
15237}
15238
15239static int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate) {
15240 __Pyx_RefNannyDeclarations
15241 CYTHON_UNUSED_VAR(__pyx_mstate);
15242 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_export_code", 0);
15243 /*--- Function export code ---*/
15244 __Pyx_RefNannyFinishContext();
15245 return 0;
15246}
15247
15248static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) {
15249 __Pyx_RefNannyDeclarations
15250 PyObject *__pyx_t_1 = NULL;
15251 int __pyx_lineno = 0;
15252 const char *__pyx_filename = NULL;
15253 int __pyx_clineno = 0;
15254 CYTHON_UNUSED_VAR(__pyx_mstate);
15255 __Pyx_RefNannySetupContext("__Pyx_modinit_Type_import_code", 0);
15256 /*--- Type import code ---*/
15257 __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error)
15258 __Pyx_GOTREF(__pyx_t_1);
15259 __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_3_0(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
15260 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15261 sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyTypeObject),
15262 #elif CYTHON_COMPILING_IN_LIMITED_API
15263 0, 0,
15264 #else
15265 sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyHeapTypeObject),
15266 #endif
15267 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(2, 9, __pyx_L1_error)
15268 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15269 __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 229, __pyx_L1_error)
15270 __Pyx_GOTREF(__pyx_t_1);
15271 __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "dtype",
15272 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15273 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
15274 #elif CYTHON_COMPILING_IN_LIMITED_API
15275 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
15276 #else
15277 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
15278 #endif
15279 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 229, __pyx_L1_error)
15280 __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flatiter",
15281 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15282 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
15283 #elif CYTHON_COMPILING_IN_LIMITED_API
15284 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
15285 #else
15286 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
15287 #endif
15288 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 286, __pyx_L1_error)
15289 __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "broadcast",
15290 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15291 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
15292 #elif CYTHON_COMPILING_IN_LIMITED_API
15293 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
15294 #else
15295 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
15296 #endif
15297 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 290, __pyx_L1_error)
15298 __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ndarray",
15299 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15300 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
15301 #elif CYTHON_COMPILING_IN_LIMITED_API
15302 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
15303 #else
15304 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
15305 #endif
15306 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 329, __pyx_L1_error)
15307 __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "generic",
15308 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15309 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15310 #elif CYTHON_COMPILING_IN_LIMITED_API
15311 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15312 #else
15313 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15314 #endif
15315 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(1, 847, __pyx_L1_error)
15316 __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "number",
15317 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15318 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15319 #elif CYTHON_COMPILING_IN_LIMITED_API
15320 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15321 #else
15322 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15323 #endif
15324 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(1, 849, __pyx_L1_error)
15325 __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "integer",
15326 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15327 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15328 #elif CYTHON_COMPILING_IN_LIMITED_API
15329 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15330 #else
15331 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15332 #endif
15333 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(1, 851, __pyx_L1_error)
15334 __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "signedinteger",
15335 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15336 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15337 #elif CYTHON_COMPILING_IN_LIMITED_API
15338 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15339 #else
15340 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15341 #endif
15342 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(1, 853, __pyx_L1_error)
15343 __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "unsignedinteger",
15344 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15345 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15346 #elif CYTHON_COMPILING_IN_LIMITED_API
15347 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15348 #else
15349 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15350 #endif
15351 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(1, 855, __pyx_L1_error)
15352 __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "inexact",
15353 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15354 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15355 #elif CYTHON_COMPILING_IN_LIMITED_API
15356 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15357 #else
15358 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15359 #endif
15360 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(1, 857, __pyx_L1_error)
15361 __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "floating",
15362 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15363 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15364 #elif CYTHON_COMPILING_IN_LIMITED_API
15365 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15366 #else
15367 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15368 #endif
15369 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(1, 859, __pyx_L1_error)
15370 __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "complexfloating",
15371 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15372 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15373 #elif CYTHON_COMPILING_IN_LIMITED_API
15374 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15375 #else
15376 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15377 #endif
15378 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(1, 861, __pyx_L1_error)
15379 __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flexible",
15380 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15381 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15382 #elif CYTHON_COMPILING_IN_LIMITED_API
15383 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15384 #else
15385 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15386 #endif
15387 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(1, 863, __pyx_L1_error)
15388 __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "character",
15389 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15390 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15391 #elif CYTHON_COMPILING_IN_LIMITED_API
15392 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15393 #else
15394 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
15395 #endif
15396 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(1, 865, __pyx_L1_error)
15397 __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ufunc",
15398 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15399 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
15400 #elif CYTHON_COMPILING_IN_LIMITED_API
15401 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
15402 #else
15403 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
15404 #endif
15405 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 946, __pyx_L1_error)
15406 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15407 __Pyx_RefNannyFinishContext();
15408 return 0;
15409 __pyx_L1_error:;
15410 __Pyx_XDECREF(__pyx_t_1);
15411 __Pyx_RefNannyFinishContext();
15412 return -1;
15413}
15414
15415static int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate) {
15416 __Pyx_RefNannyDeclarations
15417 CYTHON_UNUSED_VAR(__pyx_mstate);
15418 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_import_code", 0);
15419 /*--- Variable import code ---*/
15420 __Pyx_RefNannyFinishContext();
15421 return 0;
15422}
15423
15424static int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate) {
15425 __Pyx_RefNannyDeclarations
15426 CYTHON_UNUSED_VAR(__pyx_mstate);
15427 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_import_code", 0);
15428 /*--- Function import code ---*/
15429 __Pyx_RefNannyFinishContext();
15430 return 0;
15431}
15432
15433#if CYTHON_PEP489_MULTI_PHASE_INIT
15434static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
15435static int __pyx_pymod_exec_csubgridError(PyObject* module); /*proto*/
15436static PyModuleDef_Slot __pyx_moduledef_slots[] = {
15437 {Py_mod_create, (void*)__pyx_pymod_create},
15438 {Py_mod_exec, (void*)__pyx_pymod_exec_csubgridError},
15439 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
15440 {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
15441 #endif
15442 #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
15443 {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
15444 #endif
15445 {0, NULL}
15446};
15447#endif
15448
15449#ifdef __cplusplus
15450namespace {
15451 struct PyModuleDef __pyx_moduledef =
15452 #else
15453 static struct PyModuleDef __pyx_moduledef =
15454 #endif
15455 {
15456 PyModuleDef_HEAD_INIT,
15457 "csubgridError",
15458 0, /* m_doc */
15459 #if CYTHON_USE_MODULE_STATE
15460 sizeof(__pyx_mstatetype), /* m_size */
15461 #else
15462 (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
15463 #endif
15464 __pyx_methods /* m_methods */,
15465 #if CYTHON_PEP489_MULTI_PHASE_INIT
15466 __pyx_moduledef_slots, /* m_slots */
15467 #else
15468 NULL, /* m_reload */
15469 #endif
15470 #if CYTHON_USE_MODULE_STATE
15471 __pyx_m_traverse, /* m_traverse */
15472 __pyx_m_clear, /* m_clear */
15473 NULL /* m_free */
15474 #else
15475 NULL, /* m_traverse */
15476 NULL, /* m_clear */
15477 NULL /* m_free */
15478 #endif
15479 };
15480 #ifdef __cplusplus
15481} /* anonymous namespace */
15482#endif
15483
15484/* PyModInitFuncType */
15485#ifndef CYTHON_NO_PYINIT_EXPORT
15486 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
15487#else
15488 #ifdef __cplusplus
15489 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
15490 #else
15491 #define __Pyx_PyMODINIT_FUNC PyObject *
15492 #endif
15493#endif
15494
15495__Pyx_PyMODINIT_FUNC PyInit_csubgridError(void) CYTHON_SMALL_CODE; /*proto*/
15496__Pyx_PyMODINIT_FUNC PyInit_csubgridError(void)
15497#if CYTHON_PEP489_MULTI_PHASE_INIT
15498{
15499 return PyModuleDef_Init(&__pyx_moduledef);
15500}
15501/* ModuleCreationPEP489 */
15502#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
15503 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
15504static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
15505 {
15506 PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
15507 if (!module) {
15508 if (!PyErr_ExceptionMatches(PyExc_Exception)) {
15509 goto bad; // BaseException
15510 }
15511 PyErr_Clear(); // just try the 3.8-3.12 version
15512 module = PyImport_ImportModule("_xxsubinterpreters");
15513 if (!module) goto bad;
15514 }
15515 PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
15516 Py_DECREF(module);
15517 if (!current) goto bad;
15518 if (PyTuple_Check(current)) {
15519 PyObject *new_current = PySequence_GetItem(current, 0);
15520 Py_DECREF(current);
15521 current = new_current;
15522 if (!new_current) goto bad;
15523 }
15524 long long as_c_int = PyLong_AsLongLong(current);
15525 Py_DECREF(current);
15526 return as_c_int;
15527 }
15528 bad:
15529 PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
15530 return -1;
15531}
15532#endif
15533#if !CYTHON_USE_MODULE_STATE
15534static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
15535 static PY_INT64_T main_interpreter_id = -1;
15536#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
15537 PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
15538#elif CYTHON_COMPILING_IN_GRAAL
15539 PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
15540#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
15541 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
15542 PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
15543#elif CYTHON_COMPILING_IN_LIMITED_API
15544 PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
15545#else
15546 PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
15547#endif
15548 if (unlikely(current_id == -1)) {
15549 return -1;
15550 }
15551 if (main_interpreter_id == -1) {
15552 main_interpreter_id = current_id;
15553 return 0;
15554 } else if (unlikely(main_interpreter_id != current_id)) {
15555 PyErr_SetString(
15556 PyExc_ImportError,
15557 "Interpreter change detected - this module can only be loaded into one interpreter per process.");
15558 return -1;
15559 }
15560 return 0;
15561}
15562#endif
15563static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
15564{
15565 PyObject *value = PyObject_GetAttrString(spec, from_name);
15566 int result = 0;
15567 if (likely(value)) {
15568 if (allow_none || value != Py_None) {
15569 result = PyDict_SetItemString(moddict, to_name, value);
15570 }
15571 Py_DECREF(value);
15572 } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
15573 PyErr_Clear();
15574 } else {
15575 result = -1;
15576 }
15577 return result;
15578}
15579static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
15580 PyObject *module = NULL, *moddict, *modname;
15581 CYTHON_UNUSED_VAR(def);
15582 #if !CYTHON_USE_MODULE_STATE
15583 if (__Pyx_check_single_interpreter())
15584 return NULL;
15585 #endif
15586 if (__pyx_m)
15587 return __Pyx_NewRef(__pyx_m);
15588 modname = PyObject_GetAttrString(spec, "name");
15589 if (unlikely(!modname)) goto bad;
15590 module = PyModule_NewObject(modname);
15591 Py_DECREF(modname);
15592 if (unlikely(!module)) goto bad;
15593 moddict = PyModule_GetDict(module);
15594 if (unlikely(!moddict)) goto bad;
15595 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
15596 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
15597 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
15598 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
15599 return module;
15600bad:
15601 Py_XDECREF(module);
15602 return NULL;
15603}
15604
15605
15606static CYTHON_SMALL_CODE int __pyx_pymod_exec_csubgridError(PyObject *__pyx_pyinit_module)
15607#endif
15608{
15609 int stringtab_initialized = 0;
15610 #if CYTHON_USE_MODULE_STATE
15611 int pystate_addmodule_run = 0;
15612 #endif
15613 __pyx_mstatetype *__pyx_mstate = NULL;
15614 PyObject *__pyx_t_1 = NULL;
15615 PyObject *__pyx_t_2 = NULL;
15616 int __pyx_lineno = 0;
15617 const char *__pyx_filename = NULL;
15618 int __pyx_clineno = 0;
15619 __Pyx_RefNannyDeclarations
15620 #if CYTHON_PEP489_MULTI_PHASE_INIT
15621 if (__pyx_m) {
15622 if (__pyx_m == __pyx_pyinit_module) return 0;
15623 PyErr_SetString(PyExc_RuntimeError, "Module 'csubgridError' has already been imported. Re-initialisation is not supported.");
15624 return -1;
15625 }
15626 #else
15627 if (__pyx_m) return __Pyx_NewRef(__pyx_m);
15628 #endif
15629 /*--- Module creation code ---*/
15630 #if CYTHON_PEP489_MULTI_PHASE_INIT
15631 __pyx_t_1 = __pyx_pyinit_module;
15632 Py_INCREF(__pyx_t_1);
15633 #else
15634 __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
15635 #endif
15636 #if CYTHON_USE_MODULE_STATE
15637 {
15638 int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
15639 __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "csubgridError" pseudovariable */
15640 if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
15641 pystate_addmodule_run = 1;
15642 }
15643 #else
15644 __pyx_m = __pyx_t_1;
15645 #endif
15646 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
15647 PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
15648 #endif
15649 __pyx_mstate = __pyx_mstate_global;
15650 CYTHON_UNUSED_VAR(__pyx_t_1);
15651 __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
15652 Py_INCREF(__pyx_mstate->__pyx_d);
15653 __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
15654 __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
15655 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
15656 /* ImportRefnannyAPI */
15657 #if CYTHON_REFNANNY
15658 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
15659 if (!__Pyx_RefNanny) {
15660 if (PyErr_ExceptionMatches(PyExc_Exception)) {
15661 PyErr_Clear();
15662 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
15663 }
15664 if (!__Pyx_RefNanny)
15665 Py_FatalError("failed to import 'refnanny' module");
15666 }
15667 #endif
15668
15669__Pyx_RefNannySetupContext("PyInit_csubgridError", 0);
15670 __Pyx_init_runtime_version();
15671 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)
15672 __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
15673 __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
15674 __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
15675 /*--- Library function declarations ---*/
15676 /*--- Initialize various global constants etc. ---*/
15677 if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15678 stringtab_initialized = 1;
15679 if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15680 if (__pyx_module_is_main_csubgridError) {
15681 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)
15682 }
15683 {
15684 PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
15685 if (!PyDict_GetItemString(modules, "csubgridError")) {
15686 if (unlikely((PyDict_SetItemString(modules, "csubgridError", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
15687 }
15688 }
15689 /*--- Builtin init code ---*/
15690 if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15691 /*--- Constants init code ---*/
15692 if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15693 if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15694 /*--- Global type/function init code ---*/
15695 (void)__Pyx_modinit_Global_init_code(__pyx_mstate);
15696 (void)__Pyx_modinit_Variable_export_code(__pyx_mstate);
15697 (void)__Pyx_modinit_Function_export_code(__pyx_mstate);
15698 /*--- Type init code ---*/
15699 if (unlikely((__Pyx_modinit_Type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
15700 (void)__Pyx_modinit_Variable_import_code(__pyx_mstate);
15701 (void)__Pyx_modinit_Function_import_code(__pyx_mstate);
15702 if (__Pyx_InitAfterSharedUtility() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
15703 /*--- Execution code ---*/
15704
15705 /* "csubgridError.pyx":3
15706 * # A type of -*- python -*- file
15707 * # cython: language_level=3
15708 * import numpy as np # <<<<<<<<<<<<<<
15709 * cimport numpy as np
15710 * cdef extern from "subgridError.h":
15711*/
15712 __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)
15713 __pyx_t_2 = __pyx_t_1;
15714 __Pyx_GOTREF(__pyx_t_2);
15715 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)
15716 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15717
15718 /* "csubgridError.pyx":671
15719 * double* tau,
15720 * double* tau_gradient)
15721 * def calculateSubgridError_tauRes(np.ndarray tau, # <<<<<<<<<<<<<<
15722 * np.ndarray pdeResidual,
15723 * np.ndarray dpdeResidual,
15724*/
15725 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_1calculateSubgridError_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_tauRes, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 671, __pyx_L1_error)
15726 __Pyx_GOTREF(__pyx_t_2);
15727 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15728 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15729 #endif
15730 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_tauRes, __pyx_t_2) < (0)) __PYX_ERR(0, 671, __pyx_L1_error)
15731 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15732
15733 /* "csubgridError.pyx":684
15734 * <double*> subgridError.data,
15735 * <double*> dsubgridError.data)
15736 * def calculateSubgridError_ADR_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
15737 * np.ndarray dmt,
15738 * np.ndarray df,
15739*/
15740 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_3calculateSubgridError_ADR_generic_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_generi, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 684, __pyx_L1_error)
15741 __Pyx_GOTREF(__pyx_t_2);
15742 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15743 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15744 #endif
15745 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_generi, __pyx_t_2) < (0)) __PYX_ERR(0, 684, __pyx_L1_error)
15746 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15747
15748 /* "csubgridError.pyx":709
15749 * <double*> cfl.data,
15750 * <double*> tau.data)
15751 * def calculateSubgridError_ADR_generic_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
15752 * np.ndarray colind,
15753 * np.ndarray inverseJ,
15754*/
15755 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_5calculateSubgridError_ADR_generic_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_generi_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error)
15756 __Pyx_GOTREF(__pyx_t_2);
15757 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15758 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15759 #endif
15760 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_generi_2, __pyx_t_2) < (0)) __PYX_ERR(0, 709, __pyx_L1_error)
15761 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15762
15763 /* "csubgridError.pyx":738
15764 * <double*> cfl.data,
15765 * <double*> tau.data)
15766 * def calculateSubgridError_ADR_tau(char stabilization, # <<<<<<<<<<<<<<
15767 * np.ndarray elementDiameter,
15768 * np.ndarray dmt,
15769*/
15770 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_7calculateSubgridError_ADR_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_tau, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 738, __pyx_L1_error)
15771 __Pyx_GOTREF(__pyx_t_2);
15772 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15773 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15774 #endif
15775 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_tau, __pyx_t_2) < (0)) __PYX_ERR(0, 738, __pyx_L1_error)
15776 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15777
15778 /* "csubgridError.pyx":765
15779 * <double*> cfl.data,
15780 * <double*> tau.data)
15781 * def calculateSubgridError_ADR_tau_sd(char stabilization, # <<<<<<<<<<<<<<
15782 * np.ndarray rowptr,
15783 * np.ndarray colind,
15784*/
15785 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_9calculateSubgridError_ADR_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_tau_sd, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 765, __pyx_L1_error)
15786 __Pyx_GOTREF(__pyx_t_2);
15787 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15788 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15789 #endif
15790 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_tau_sd, __pyx_t_2) < (0)) __PYX_ERR(0, 765, __pyx_L1_error)
15791 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15792
15793 /* "csubgridError.pyx":796
15794 * <double*> cfl.data,
15795 * <double*> tau.data)
15796 * def calculateSubgridError_A_tau(char stabilization, # <<<<<<<<<<<<<<
15797 * np.ndarray elementDiameter,
15798 * np.ndarray dmt,
15799*/
15800 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_11calculateSubgridError_A_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_A_tau, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
15801 __Pyx_GOTREF(__pyx_t_2);
15802 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15803 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15804 #endif
15805 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_A_tau, __pyx_t_2) < (0)) __PYX_ERR(0, 796, __pyx_L1_error)
15806 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15807
15808 /* "csubgridError.pyx":811
15809 * <double*> cfl.data,
15810 * <double*> tau.data)
15811 * def calculateSubgridError_HJ_tau(char stabilization, # <<<<<<<<<<<<<<
15812 * np.ndarray elementDiameter,
15813 * np.ndarray dmt,
15814*/
15815 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_13calculateSubgridError_HJ_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_HJ_tau, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 811, __pyx_L1_error)
15816 __Pyx_GOTREF(__pyx_t_2);
15817 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15818 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15819 #endif
15820 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_HJ_tau, __pyx_t_2) < (0)) __PYX_ERR(0, 811, __pyx_L1_error)
15821 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15822
15823 /* "csubgridError.pyx":827
15824 * <double*> tau.data)
15825 *
15826 * def calculateSubgridErrorStokes2D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15827 * np.ndarray a,
15828 * np.ndarray pdeResidualU,
15829*/
15830 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_15calculateSubgridErrorStokes2D_GLS_velocity, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 827, __pyx_L1_error)
15831 __Pyx_GOTREF(__pyx_t_2);
15832 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15833 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15834 #endif
15835 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL, __pyx_t_2) < (0)) __PYX_ERR(0, 827, __pyx_L1_error)
15836 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15837
15838 /* "csubgridError.pyx":859
15839 * <double*> dsubgridErrorV_dp.data,
15840 * <double*> dsubgridErrorV_dv.data)
15841 * def calculateSubgridErrorStokes2D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15842 * np.ndarray a,
15843 * np.ndarray pdeResidualU,
15844*/
15845 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_17calculateSubgridErrorStokes2D_GLS_velocity_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 859, __pyx_L1_error)
15846 __Pyx_GOTREF(__pyx_t_2);
15847 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15848 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15849 #endif
15850 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_2, __pyx_t_2) < (0)) __PYX_ERR(0, 859, __pyx_L1_error)
15851 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15852
15853 /* "csubgridError.pyx":891
15854 * <double*> dsubgridErrorV_dp.data,
15855 * <double*> dsubgridErrorV_dv.data)
15856 * def calculateSubgridErrorStokes3D_GLS_velocity(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15857 * np.ndarray a,
15858 * np.ndarray pdeResidualU,
15859*/
15860 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_19calculateSubgridErrorStokes3D_GLS_velocity, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
15861 __Pyx_GOTREF(__pyx_t_2);
15862 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15863 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15864 #endif
15865 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL, __pyx_t_2) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
15866 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15867
15868 /* "csubgridError.pyx":935
15869 * <double*> dsubgridErrorW_dp.data,
15870 * <double*> dsubgridErrorW_dw.data)
15871 * def calculateSubgridErrorStokes3D_GLS_velocity_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15872 * np.ndarray a,
15873 * np.ndarray pdeResidualU,
15874*/
15875 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_21calculateSubgridErrorStokes3D_GLS_velocity_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 935, __pyx_L1_error)
15876 __Pyx_GOTREF(__pyx_t_2);
15877 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15878 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15879 #endif
15880 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_2, __pyx_t_2) < (0)) __PYX_ERR(0, 935, __pyx_L1_error)
15881 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15882
15883 /* "csubgridError.pyx":979
15884 * <double*> dsubgridErrorW_dp.data,
15885 * <double*> dsubgridErrorW_dw.data)
15886 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15887 * np.ndarray a,
15888 * np.ndarray pdeResidualP,
15889*/
15890 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_23calculateSubgridErrorStokes2D_GLS_velocity_pressure, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_3, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L1_error)
15891 __Pyx_GOTREF(__pyx_t_2);
15892 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15893 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15894 #endif
15895 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_3, __pyx_t_2) < (0)) __PYX_ERR(0, 979, __pyx_L1_error)
15896 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15897
15898 /* "csubgridError.pyx":1023
15899 * <double*> dsubgridErrorV_dp.data,
15900 * <double*> dsubgridErrorV_dv.data)
15901 * def calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15902 * np.ndarray a,
15903 * np.ndarray pdeResidualP,
15904*/
15905 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_25calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_4, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1023, __pyx_L1_error)
15906 __Pyx_GOTREF(__pyx_t_2);
15907 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15908 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15909 #endif
15910 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_4, __pyx_t_2) < (0)) __PYX_ERR(0, 1023, __pyx_L1_error)
15911 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15912
15913 /* "csubgridError.pyx":1067
15914 * <double*> dsubgridErrorV_dp.data,
15915 * <double*> dsubgridErrorV_dv.data)
15916 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15917 * np.ndarray a,
15918 * np.ndarray pdeResidualP,
15919*/
15920 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_27calculateSubgridErrorStokes3D_GLS_velocity_pressure, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_3, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1067, __pyx_L1_error)
15921 __Pyx_GOTREF(__pyx_t_2);
15922 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15923 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15924 #endif
15925 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_3, __pyx_t_2) < (0)) __PYX_ERR(0, 1067, __pyx_L1_error)
15926 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15927
15928 /* "csubgridError.pyx":1127
15929 * <double*> dsubgridErrorW_dp.data,
15930 * <double*> dsubgridErrorW_dw.data)
15931 * def calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
15932 * np.ndarray a,
15933 * np.ndarray pdeResidualP,
15934*/
15935 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_29calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_4, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
15936 __Pyx_GOTREF(__pyx_t_2);
15937 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15938 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15939 #endif
15940 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_4, __pyx_t_2) < (0)) __PYX_ERR(0, 1127, __pyx_L1_error)
15941 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15942
15943 /* "csubgridError.pyx":1187
15944 * <double*> dsubgridErrorW_dp.data,
15945 * <double*> dsubgridErrorW_dw.data)
15946 * def calculateSubgridErrorNavierStokes2D_GLS_tau(double hFactor, # <<<<<<<<<<<<<<
15947 * np.ndarray elementDiameter,
15948 * np.ndarray dmt,
15949*/
15950 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_31calculateSubgridErrorNavierStokes2D_GLS_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1187, __pyx_L1_error)
15951 __Pyx_GOTREF(__pyx_t_2);
15952 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15953 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15954 #endif
15955 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke, __pyx_t_2) < (0)) __PYX_ERR(0, 1187, __pyx_L1_error)
15956 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15957
15958 /* "csubgridError.pyx":1208
15959 * <double*> tau1.data,
15960 * <double*> cfl.data)
15961 * def calculateSubgridErrorNavierStokes2D_GLS_tau_sd(double hFactor, # <<<<<<<<<<<<<<
15962 * np.ndarray elementDiameter,
15963 * np.ndarray dmt,
15964*/
15965 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_33calculateSubgridErrorNavierStokes2D_GLS_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1208, __pyx_L1_error)
15966 __Pyx_GOTREF(__pyx_t_2);
15967 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15968 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15969 #endif
15970 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1208, __pyx_L1_error)
15971 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15972
15973 /* "csubgridError.pyx":1229
15974 * <double*> tau1.data,
15975 * <double*> cfl.data)
15976 * def calculateSubgridErrorNavierStokes2D_generic_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
15977 * np.ndarray dmt,
15978 * np.ndarray dm,
15979*/
15980 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_35calculateSubgridErrorNavierStokes2D_generic_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_3, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
15981 __Pyx_GOTREF(__pyx_t_2);
15982 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15983 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15984 #endif
15985 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_3, __pyx_t_2) < (0)) __PYX_ERR(0, 1229, __pyx_L1_error)
15986 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15987
15988 /* "csubgridError.pyx":1248
15989 * <double*> tau1.data,
15990 * <double*> cfl.data)
15991 * def calculateSubgridErrorNavierStokes2D_generic_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
15992 * np.ndarray dmt,
15993 * np.ndarray dm,
15994*/
15995 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_37calculateSubgridErrorNavierStokes2D_generic_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_4, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1248, __pyx_L1_error)
15996 __Pyx_GOTREF(__pyx_t_2);
15997 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15998 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15999 #endif
16000 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_4, __pyx_t_2) < (0)) __PYX_ERR(0, 1248, __pyx_L1_error)
16001 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16002
16003 /* "csubgridError.pyx":1267
16004 * <double*> tau1.data,
16005 * <double*> cfl.data)
16006 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(np.ndarray inverseJ, # <<<<<<<<<<<<<<
16007 * np.ndarray dmt,
16008 * np.ndarray dm,
16009*/
16010 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_39calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_5, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1267, __pyx_L1_error)
16011 __Pyx_GOTREF(__pyx_t_2);
16012 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16013 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16014 #endif
16015 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_5, __pyx_t_2) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error)
16016 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16017
16018 /* "csubgridError.pyx":1288
16019 * <double*> tau1.data,
16020 * <double*> cfl.data)
16021 * def calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(np.ndarray inverseJ, # <<<<<<<<<<<<<<
16022 * np.ndarray dmt,
16023 * np.ndarray dm,
16024*/
16025 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_41calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_6, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1288, __pyx_L1_error)
16026 __Pyx_GOTREF(__pyx_t_2);
16027 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16028 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16029 #endif
16030 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_6, __pyx_t_2) < (0)) __PYX_ERR(0, 1288, __pyx_L1_error)
16031 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16032
16033 /* "csubgridError.pyx":1309
16034 * <double*> tau1.data,
16035 * <double*> cfl.data)
16036 * def calculateSubgridErrorNavierStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
16037 * np.ndarray tau1,
16038 * np.ndarray pdeResidualP,
16039*/
16040 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_43calculateSubgridErrorNavierStokes2D_GLS_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_7, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1309, __pyx_L1_error)
16041 __Pyx_GOTREF(__pyx_t_2);
16042 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16043 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16044 #endif
16045 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_7, __pyx_t_2) < (0)) __PYX_ERR(0, 1309, __pyx_L1_error)
16046 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16047
16048 /* "csubgridError.pyx":1361
16049 * <double*> dsubgridErrorV_du.data,
16050 * <double*> dsubgridErrorV_dv.data)
16051 * def calculateSubgridErrorStokes_GLS_tau(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16052 * np.ndarray dH,
16053 * np.ndarray a,
16054*/
16055 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_45calculateSubgridErrorStokes_GLS_tau, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes_GLS, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1361, __pyx_L1_error)
16056 __Pyx_GOTREF(__pyx_t_2);
16057 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16058 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16059 #endif
16060 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes_GLS, __pyx_t_2) < (0)) __PYX_ERR(0, 1361, __pyx_L1_error)
16061 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16062
16063 /* "csubgridError.pyx":1374
16064 * <double*> tau0.data,
16065 * <double*> tau1.data)
16066 * def calculateSubgridErrorStokes_GLS_tau_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16067 * np.ndarray dH,
16068 * np.ndarray a,
16069*/
16070 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_47calculateSubgridErrorStokes_GLS_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes_GLS_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1374, __pyx_L1_error)
16071 __Pyx_GOTREF(__pyx_t_2);
16072 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16073 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16074 #endif
16075 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes_GLS_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1374, __pyx_L1_error)
16076 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16077
16078 /* "csubgridError.pyx":1387
16079 * <double*> tau0.data,
16080 * <double*> tau1.data)
16081 * def calculateSubgridErrorStokes2D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
16082 * np.ndarray tau1,
16083 * np.ndarray pdeResidualP,
16084*/
16085 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_49calculateSubgridErrorStokes2D_GLS_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_5, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1387, __pyx_L1_error)
16086 __Pyx_GOTREF(__pyx_t_2);
16087 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16088 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16089 #endif
16090 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_GL_5, __pyx_t_2) < (0)) __PYX_ERR(0, 1387, __pyx_L1_error)
16091 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16092
16093 /* "csubgridError.pyx":1431
16094 * <double*> dsubgridErrorV_dp.data,
16095 * <double*> dsubgridErrorV_dv.data)
16096 * def calculateSubgridErrorStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
16097 * np.ndarray tau1,
16098 * np.ndarray pdeResidualP,
16099*/
16100 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_51calculateSubgridErrorStokes3D_GLS_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_5, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1431, __pyx_L1_error)
16101 __Pyx_GOTREF(__pyx_t_2);
16102 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16103 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16104 #endif
16105 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes3D_GL_5, __pyx_t_2) < (0)) __PYX_ERR(0, 1431, __pyx_L1_error)
16106 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16107
16108 /* "csubgridError.pyx":1491
16109 * <double*> dsubgridErrorW_dp.data,
16110 * <double*> dsubgridErrorW_dw.data)
16111 * def calculateSubgridErrorNavierStokes3D_GLS_tauRes(np.ndarray tau0, # <<<<<<<<<<<<<<
16112 * np.ndarray tau1,
16113 * np.ndarray pdeResidualP,
16114*/
16115 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_53calculateSubgridErrorNavierStokes3D_GLS_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_8, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1491, __pyx_L1_error)
16116 __Pyx_GOTREF(__pyx_t_2);
16117 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16118 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16119 #endif
16120 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_8, __pyx_t_2) < (0)) __PYX_ERR(0, 1491, __pyx_L1_error)
16121 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16122
16123 /* "csubgridError.pyx":1575
16124 * <double*> dsubgridErrorW_dv.data,
16125 * <double*> dsubgridErrorW_dw.data)
16126 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16127 * np.ndarray dm,
16128 * np.ndarray f,
16129*/
16130 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_55calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_9, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1575, __pyx_L1_error)
16131 __Pyx_GOTREF(__pyx_t_2);
16132 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16133 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16134 #endif
16135 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_9, __pyx_t_2) < (0)) __PYX_ERR(0, 1575, __pyx_L1_error)
16136 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16137
16138 /* "csubgridError.pyx":1639
16139 * <double*> dsubgridErrorW_dp.data,
16140 * <double*> dsubgridErrorW_dw.data)
16141 * def calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16142 * np.ndarray dm,
16143 * np.ndarray f,
16144*/
16145 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_57calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_10, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
16146 __Pyx_GOTREF(__pyx_t_2);
16147 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16148 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16149 #endif
16150 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorNavierStoke_10, __pyx_t_2) < (0)) __PYX_ERR(0, 1639, __pyx_L1_error)
16151 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16152
16153 /* "csubgridError.pyx":1703
16154 * <double*> dsubgridErrorW_dp.data,
16155 * <double*> dsubgridErrorW_dw.data)
16156 * def calculateSubgridErrorStokes2D_1(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16157 * np.ndarray u,
16158 * np.ndarray v,
16159*/
16160 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_59calculateSubgridErrorStokes2D_1, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_1, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error)
16161 __Pyx_GOTREF(__pyx_t_2);
16162 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16163 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16164 #endif
16165 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_1, __pyx_t_2) < (0)) __PYX_ERR(0, 1703, __pyx_L1_error)
16166 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16167
16168 /* "csubgridError.pyx":1757
16169 * <double*> dsubgridErrorV_du.data,
16170 * <double*> dsubgridErrorV_dv.data)
16171 * def calculateSubgridErrorStokes2D_1_sd(np.ndarray elementDiameter, # <<<<<<<<<<<<<<
16172 * np.ndarray u,
16173 * np.ndarray v,
16174*/
16175 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_61calculateSubgridErrorStokes2D_1_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_1_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1757, __pyx_L1_error)
16176 __Pyx_GOTREF(__pyx_t_2);
16177 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16178 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16179 #endif
16180 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorStokes2D_1_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1757, __pyx_L1_error)
16181 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16182
16183 /* "csubgridError.pyx":1811
16184 * <double*> dsubgridErrorV_du.data,
16185 * <double*> dsubgridErrorV_dv.data)
16186 * def calculateSubgridErrorShallowWater1D(double g, # <<<<<<<<<<<<<<
16187 * np.ndarray elementDiameter,
16188 * np.ndarray h,
16189*/
16190 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_63calculateSubgridErrorShallowWater1D, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorShallowWate, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1811, __pyx_L1_error)
16191 __Pyx_GOTREF(__pyx_t_2);
16192 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16193 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16194 #endif
16195 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorShallowWate, __pyx_t_2) < (0)) __PYX_ERR(0, 1811, __pyx_L1_error)
16196 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16197
16198 /* "csubgridError.pyx":1825
16199 * <double*> cfl_1.data,
16200 * <double*> cfl_2.data)
16201 * def calculateSubgridErrorShallowWater2D(double g, # <<<<<<<<<<<<<<
16202 * np.ndarray elementDiameter,
16203 * np.ndarray h,
16204*/
16205 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_65calculateSubgridErrorShallowWater2D, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorShallowWate_2, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1825, __pyx_L1_error)
16206 __Pyx_GOTREF(__pyx_t_2);
16207 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16208 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16209 #endif
16210 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorShallowWate_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1825, __pyx_L1_error)
16211 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16212
16213 /* "csubgridError.pyx":1843
16214 * <double*> cfl_2.data,
16215 * <double*> cfl_3.data)
16216 * def calculateSubgridError_Harari_tau_sd(int nSpace, # <<<<<<<<<<<<<<
16217 * double dt,
16218 * np.ndarray rowptr,
16219*/
16220 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_67calculateSubgridError_Harari_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_Harari_tau, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1843, __pyx_L1_error)
16221 __Pyx_GOTREF(__pyx_t_2);
16222 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16223 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16224 #endif
16225 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_Harari_tau, __pyx_t_2) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
16226 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16227
16228 /* "csubgridError.pyx":1859
16229 * <double*> a.data,
16230 * <double*> tau.data)
16231 * def calculateSubgridErrorGradient_tauRes(np.ndarray tau_gradient, # <<<<<<<<<<<<<<
16232 * np.ndarray grad_pdeResidual,
16233 * np.ndarray grad_subgridError):
16234*/
16235 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_69calculateSubgridErrorGradient_tauRes, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorGradient_ta, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1859, __pyx_L1_error)
16236 __Pyx_GOTREF(__pyx_t_2);
16237 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16238 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16239 #endif
16240 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridErrorGradient_ta, __pyx_t_2) < (0)) __PYX_ERR(0, 1859, __pyx_L1_error)
16241 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16242
16243 /* "csubgridError.pyx":1868
16244 * <double*> grad_pdeResidual.data,
16245 * <double*> grad_subgridError.data)
16246 * def calculateSubgridError_ADR_Sangalli_tau_sd(np.ndarray rowptr, # <<<<<<<<<<<<<<
16247 * np.ndarray colind,
16248 * np.ndarray inverseJ,
16249*/
16250 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13csubgridError_71calculateSubgridError_ADR_Sangalli_tau_sd, 0, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_Sangal, NULL, __pyx_mstate_global->__pyx_n_u_csubgridError, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1868, __pyx_L1_error)
16251 __Pyx_GOTREF(__pyx_t_2);
16252 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
16253 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
16254 #endif
16255 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_calculateSubgridError_ADR_Sangal, __pyx_t_2) < (0)) __PYX_ERR(0, 1868, __pyx_L1_error)
16256 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16257
16258 /* "csubgridError.pyx":1
16259 * # A type of -*- python -*- file # <<<<<<<<<<<<<<
16260 * # cython: language_level=3
16261 * import numpy as np
16262*/
16263 __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
16264 __Pyx_GOTREF(__pyx_t_2);
16265 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)
16266 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16267
16268 /*--- Wrapped vars code ---*/
16269
16270 goto __pyx_L0;
16271 __pyx_L1_error:;
16272 __Pyx_XDECREF(__pyx_t_2);
16273 if (__pyx_m) {
16274 if (__pyx_mstate->__pyx_d && stringtab_initialized) {
16275 __Pyx_AddTraceback("init csubgridError", __pyx_clineno, __pyx_lineno, __pyx_filename);
16276 }
16277 #if !CYTHON_USE_MODULE_STATE
16278 Py_CLEAR(__pyx_m);
16279 #else
16280 Py_DECREF(__pyx_m);
16281 if (pystate_addmodule_run) {
16282 PyObject *tp, *value, *tb;
16283 __Pyx_PyErr_FetchException(&tp, &value, &tb);
16284 __Pyx_State_RemoveModule(&__pyx_moduledef);
16285 __Pyx_PyErr_RestoreException(tp, value, tb);
16286 }
16287 #endif
16288 } else if (!PyErr_Occurred()) {
16289 PyErr_SetString(PyExc_ImportError, "init csubgridError");
16290 }
16291 __pyx_L0:;
16292 __Pyx_RefNannyFinishContext();
16293 #if CYTHON_PEP489_MULTI_PHASE_INIT
16294 return (__pyx_m != NULL) ? 0 : -1;
16295 #else
16296 return __pyx_m;
16297 #endif
16298}
16299/* #### Code section: pystring_table ### */
16300/* #### Code section: cached_builtins ### */
16301
16302static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
16303 CYTHON_UNUSED_VAR(__pyx_mstate);
16304
16305 /* Cached unbound methods */
16306 __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
16307 __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
16308 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
16309 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
16310 __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
16311 __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
16312 return 0;
16313}
16314/* #### Code section: cached_constants ### */
16315
16316static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
16317 __Pyx_RefNannyDeclarations
16318 CYTHON_UNUSED_VAR(__pyx_mstate);
16319 __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
16320 __Pyx_RefNannyFinishContext();
16321 return 0;
16322}
16323/* #### Code section: init_constants ### */
16324
16325static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
16326 int __pyx_lineno = 0;
16327 const char *__pyx_filename = NULL;
16328 int __pyx_clineno = 0;
16329 CYTHON_UNUSED_VAR(__pyx_mstate);
16330 {
16331 const struct { const unsigned int length: 8; } str_length_index[] = {{1},{179},{8},{39},{34},{25},{20},{12},{8},{8},{10},{8},{12},{8},{13},{1},{18},{36},{43},{46},{46},{47},{50},{61},{64},{46},{57},{60},{35},{35},{31},{34},{40},{42},{51},{54},{45},{40},{42},{51},{54},{45},{35},{38},{41},{37},{40},{29},{32},{27},{28},{35},{28},{3},{5},{5},{5},{18},{6},{13},{2},{2},{2},{2},{3},{12},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{16},{4},{2},{13},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{17},{2},{15},{1},{1},{16},{8},{17},{1},{7},{2},{2},{8},{5},{6},{2},{5},{11},{12},{12},{12},{12},{2},{3},{6},{10},{13},{12},{13},{13},{13},{13},{3},{4},{4},{12},{1},{1},{6}};
16332 const struct { const unsigned int length: 9; } bytes_length_index[] = {{59},{70},{70},{70},{73},{64},{67},{78},{91},{91},{94},{94},{99},{99},{112},{115},{126},{129},{133},{145},{145},{191},{191},{191},{208},{208},{223},{229},{229},{253},{276},{276},{301},{304},{350}};
16333 #ifndef CYTHON_COMPRESS_STRINGS
16334 #define CYTHON_COMPRESS_STRINGS 90
16335 #endif
16336 #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (1829 bytes) */
16337static const char cstring[] = "(\265/\375`V\037\3358\000ZH\034\017;\020\223u\000\000\000\n\205\032\020\024\n5Q\0235 \002\000\000\024\330\225\245\224[n\300k\021\262D\254\335\253\026\360\252\252\2138DT\304\343\001i\017\000U\021\360\266\264\375\277\253\321l\326\000\336\000\346\000\317\322R?\177\231\2748|\264\304u\363\213*(>\230\222J\014\222\264\364\377\2228\253e\212sz\263\370\3529>)\252aI\342\037AR\215}\367\373b\267\225u.\3137\242C[}\237\016\315$\241%\212\222\204\030\265\001K\251\212\232\262\374\243\232\321\322\034\261\210?\306\321\036E_\035I\027-\301\217D3G\225\274_\030>\351\246\342\253\356\014\2438\344 lH\374\221%\316\237K\222|\010.\337\224#o\372&Wf.\274\227\344\324\222\306\305N8RzMZ\346H\234E\254\302\270X\311\2457M_\004aj\312\245\031\2747\027\345B\362\271\013\324\305hE\262\342H\364f\020\2439\345h\342\315\217^\030\026o\310\245\230#KY\246\211p\371e\231\273\271d\371\010\317E\333\264\255\047?\340\031\021m\267\206\326\023\337\230\350!=\001\372\000\364l<\351U\305\237\315T\233\317\253P?\357`\021\303>\247YT?v\303\234\315\234\0225K\363\232&y\3017]d:\336\214Qn\212\336\031\211g25\203\257\222\311\276\360Q\033\233\030z\363\035\037\217d\362\216W\274\031\3465Ssf\352*DC,\203y\315T3\374^rfj\370\255\304WC|C3\314c8\206\261\360C\2230,A\034\360a\027|4\177$\376.\211E\320\302\344}b\014}\364QL\260(\276\r\371\256\2575\222\372,<\323\210\207\302\344\224\242\3702\327E\3254\275\250\371\3212\006K\361\316,.\210\226*ZX\206\3102\316\0011z\311k\023\246\237K\245\344\0331\245\027\247\314.\364\342Y\333\205\265c^\263N\335\332\266+\305?=bh\033\030X:\245c\265\207\006O\277j\246ZWc\000}\020:\036a\322\235\246\000}\016\236e\261\263\365W\326\272\251<\266cU\253\267v\353&r\361\274\301\343]\212/\2608C\210-q\215\212\366`{\025\033\177\330\036\350S\260\361s\243\2725<\371o+,\264\202\277\312\270G\212{\374\2651.Z\026O\361\330\306 \330\014%\n\2256\0308\267\303\266O}\240%$\364B\210\227\272\320Cm\201k;\035\322\247ZAm\253u\240\217@\307\303s\377\306ak\271O$Qj\307t\210\366\264\350w\203\267\273\324^XK\333\024\332\333~\320\023;\264O\272@oZ\342\334\243\337""\242M\301\322\014z\"\265\275\375\322#\256\375\315\3323=\252\205j\013\240O\200\267\212\204\230z\333\252\206\246\323\214P\272\210](\261( mJ&\246\203\26443}F\246\313\204\326-dTu\361\\\177ca\257\227^\256*\216\266\243\215\201\3510\257\376Z\365\325G\177\376\001\372p\240P\250~\326\"N\376\341\361\361\271\007\251s\261\341\344\320S5\007\320\307t\262-\036;>\313\342\321Y\021\243M\261\036\373ZI.z\305\213K\177\261+\034\335\343\034.\256\356:\331\221\253\325[!\375YQi\rA\265\031\047{\300\236\240\332\026\253\263V\375\201E\311\350\033\3178\327\022o\035U\247>J\275x\307\214\177\220z\304\210E\357\266\205\307\246\234\353\250cQ4\372*j7\366\\\017\326TE?uE\267\212\340sY\210\237\266\005Z\352v\370[\006\013m\220\305KMjh\035N\375\032@\303j\254\332\003\350\243\000\260a$\320\047!\024\201\252\250\201!\222hDDDD\222$)4\006\021\021\241\n:W\354\002\261\034\311@\010\202t\206@C\0101\002\242H \"\"\022H \001\211\220\3049\003h\275B\355\217\n\232\033(\243\352\005jfx\014\274\2062\310\027rZ\001\327p\306\020\032\311\244L@e\264P$S?\371-7R\345\372E0\016\260(7\0203\230\366L\3272\353\363\264\253\243@\267}]\313\254\317\003\233Q\030\034\246\247(\027\367n\312q\244\217\363\027\275\2711\372l/\307\303\374&\244\304UM*\205\353X\274\n\r\325|\275G\022\335\361\3645\320\253\362h\214O\004\364\364\006n\025_\273\023\033\312\207\331\004\264e\222\003\204\215\004\252Y\254c\230`\253\314)\035\342\2126z\376+)(=\247\231]\273\021\305\032\017\364\246:\323z\321\311\177Vr\374J\300*\211&\366J\033$\213\206\275\034Ad_B\323$\014\347\300\337d\001\033\2237\0133\204\022\203[y\375[\244\332\245\263a\002\371\304\267)\371/(\205\035\204\372\363O\245\264\377\024\010\276\221\242\332U\004\211\222*\205\315G\320\213\374\361\200\213\360#\264\331-\024\343\020\264_3\222)Y&\201\2472\010\302w_\txo\246\037\217\300\023n\256\016A\217\324\220\013l\010\321\005\305\254A]\373\341\205\342\214\021\246\303*\333\267\314q\256x\016\177`#\022[0KP.y\350\373\371\255\301v:\240\315\376\310\267\332\021\302O\337\2733+C;z\264E\327\330\016\357\307\250\2001\024&RD\372\260d\2606z\005""\360Q\025`\335Z\210\333\226\364\301\311\371\326Pt\322\246\307m\307\003\n\326\347A\316\240\207\247\r\272\001\t\t\323~\350\354\245S\221[\027\033m-\244a\335P\247\352\274\235\004\215c\367\020\251S\032\350!y%\236\315X\352I\263\213\270\031MQ\313\314\255[\266\353\372\302\344i\245\354\353\t&|6\357K\256\202w\236\340;t\242\372=$\217\265\216\264J1\337\311\327,\230\322\366\244\027/\034o\"Y\"\317\230\350/\225\254\302=\356\r\246\202\206\3634|\256aT\033\226D\312P\250\210z\010\032\267\242\337\233\213\211\211\361n\336d\234\245D\001\342p\272Q\200\243+6\211\340@F\222\203 P\231,O\006\213~\374\343\271q\275\r\227\003;\367\020\223\306EY\000\270;\340\215\3116US\220\003\224\003Bi\300\ro\003^\374>S\200\350\021\346_$3\246N\225\000i\343\007\002\0310~5\366\342\263z\363\027\216_\031\200b\020/B$ \233\017\301L\306\342:c\t\246JZ\256\331\254\016\020\266\336A\333~h\231\361\300G\270?\367\347\363\337Z\277\324l\332\026m]v6\314`\205\032#\226l\342\003\1771|FEf\262\244mn\225q\341z\324\007(t\340\224e\232CZ\200,Xmw\237r.\337\334\276\304\326\351\224\247\304\276QA{\004\244`\306\235\033\024wx\224\276n\203P\224T\304\005gf\007\206\223\347\010?\252\214>\252\255\303t\0237\372\325\035\220E\324\t\t\344$!\226\363(\350\252\204\334\215\032";
16338 PyObject *data = __Pyx_DecompressString(cstring, 1829, 3);
16339 #define __Pyx_DecompressString_LZSS_UNUSED
16340 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
16341 const char* const bytes = __Pyx_PyBytes_AsString(data);
16342 #if !CYTHON_ASSUME_SAFE_MACROS
16343 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
16344 #endif
16345 #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (1873 bytes) */
16346static const char cstring[] = "x\332\335WKs\333F\022&\017\364a+\265\025:U\252\255\255=\200\222\254\370!R\")\253\344\254\022\231\262L\047\332]/)Z\240\035o\025j\010\014E$ @\274\250pO\373Sx\304\021G\034q\304\021G\376\214\374\204\355\001F\324\020|\230\244\245J%.\232_wOwOw\263{ft\362V\2630gu\220\305\275\032X\035M\345d\223\223\260\"\267\260\201,\254\0148\3232d\321\302\006QR\271\332\353Z\376\340\350\200C\252\304\031\370\047,Z&g\332-QA\246\211MNks-[V,Y\345\254A\017\233\005\356\20767\320lN\305X\342,\215\353\201\036k`u\260\312\231\330\"\004\3675RU\315B\226\254\251\002\230\313\352\325\327\234$\033\260\211\334\307\304\272\212\024\023\027\220$\t\240\207U\273\333\033\024\004Q3p\241k\303\246\3100\320\200k#Y\2117\223\273=\315\260X5\273\213\254\316\224F\317\000o\266\271\047B`W\206,\2756\014\315(\364\006\277\010B\r\276j\2033\250\200\360\026\377b]\340\266 \320(\261\000\377\332\266*\022\354\"Y\215P\223l%ZQQ7B\335F\312\rma\323\002\220M\022\215fC\2310B\346@\025e\2550\226\230\"RD[\201\r\032L8o\014$\311X\265\004\013\331\027st\336\242\276\214\215\206\245\375\214\315\322\231\360\346\237\r\242\275\202\352j\216\005SZF\373\n\253\030Zh\331P\030\365\0257\270\226\255\316\251&\r\252\232!\342U\267\2332^f\363\362J\225\243\332}\254h\242l\r\204\236\201M\323\206\366^\327p^\210\215\016R\024\355\272\tb\243x\366I\225\322\034\225\233\022\025?\261<7\214%\273kB\357&\311\3455\027\327q\261\311R\241\217\255\026*\227\227\314\263\274t\236\345\325\363,\257\225gy\225<\027\036+\223*\363\034\t\225\263\013\241\201\324+\350A\371\223\212\237:?\222J\013\235-t\262\320x\276\351\367\347\013\326\220\201\214\3059\322\216i+\360\201Y\203\257\022\371*\213\n\\\006\002\\+\226\201D\334B\342\317\242\006\"i\342\226\222\276\227\220\324\226\272R\327\222z\022\006G\262\004\027\016K\327\004\311N\360\375\004\177\315\362\227\002p\223\274\235\340\373\t~\302\236O\330\363\t{>a\317\047\354\233\t\373f\302\276\231\260oF\366\035Y2\244\211\312\260L\215\370L\010\354\244\240\237\024\\O\010.\223>.\223>.\223>.\223>\370\244\017>\351\203O\372\340\223>\232I\037\315\244\217f\322GT\"x""\315\341.\274 \316dx\215\300\261\337\276\272\2027\205\300T2\346;r\204\254}\247SE\242\005hw\372\262\332\307\206\211\317e\013wM\265\321\203\336T{\321\033\213\361\304\266\027\333*\354\317\316\376\204=\334\323\340\025v\335\263\300\265%\3416\202\367\234i\241\226\254\310\377\215\036\204l8\023?\323D\275\047\n7Q\001\2302\370\354\303\377\"\031\306+\372\234\262\373}\244\330\330\374_\372\327\007\251\314S\047\033>\375\273w\350g\375\334\350\361\013o\303\323\3754C\224\334]\017\001\204\245S\242\000\370\312/\202\351\237R\231\315av\230w\372n\335E#.\357\360n\321\2550\304Sg\313\251\023x\346F\260K\324\306\220w\365\330\313\023\047\355<t\016\335\254\013\356\237:;n\332\3152D\311\335\363#\330\004\237\0009\267H`\333E\024b/\273N\3219u\332n\005\366\332-L\021\207\256\346G\320\362\322\004\220\253\023\220\274\034\005\360\362E*\223\033\246\207\017\207\207N\326\311\215\270\315\341\016\204\226e\210\034\t|\317\3132\271m:l\246\000\261#\222T\366&\205\047\316\206\243\273P\313\047L:4\017\232\325#\210\047\006\260\377sl\377\225S\215\265\236\335T\347I\364\331#%\037C\322\341\226KB\370r\365\020\246\"\271\r\010\274=\047ut\333^\305\253\217\016\236\273\274W\364*\014\361\235\327\361\021\001\021\\\003\264\240u\000\220\2473 A\003\335\002h\306\256\217\\\335K\323v\273K\327\017S\231\"\311\336\335\001\367\331\321~\321\335 ;\261\304h\377\033o/\310\022\330\202\304\0006aK\200\234Wd`\033&\340\026@3\366~@\372\234\206y\367\336_\245\375\234_\364\253A.(\256]\027*\234S\236j\332\257\373\310\357\007\365\000\335\307\026\033\251\3143\047\347\224\350\2110s\272\037{9\332\266\323CN9\252BG~\262]\251]\334\365\177Ie\266\206\271ai\310\303iP\031m\357\014\333N\005&sLlm\217\266\362\216\000\271\0014`\036\000.\034\235@\335A\014\367\036\334\002\274\203\030o\205\024\250\035\000l\371\327T\246\000\266-\367At\246\314H19\256w\231\360\337R\231\235a}\330r\0368\010\202\233Nx;:;\306\360h\264]p4\350E\000\221\010\n\020y\232@d>\346:\2603\200\004\207\316\255\220\002\265\003\210\003\330\003[\203\366\374\214\223\267\354\036\302\360\335\300\241\333\2016\007""\020cn\3628\246\034U\241\2073\025R\240v\024\024?\027\007\261\357\350\341~\305\337\360\365\000&o\232`g\221\216\335\256O\346-\374\346<\31018O\234\367\365\210\375GPdp\2268\016\250\354\346\302\362\031\235\336\337<\240\307Q\227\206\205\023\257O&~\264\373\255\307\303\331Ra\210\374\344}H\253\013\020\036V\211\305\030W\024w\375b\304\276\361u\006W\020\307\341\337\373\017\374\331e^X\375{o\207\373\r\377\205\227\016_\234\007;a\255\036\326/FG?\004\033\201\016\014K\275\030\035\235\372{\321\362)\271\271\010\354\302\275rt\032\236^\204\027\r\226Xc!\037\350\021\337\010\033\357Xb\305\2058\237c\257\030\036\377+\340A\020\276\273\374\235\347\263\037\275D\302\203\327>\037\024\003\270\266\247\211\347\3237\264\022\020\010\277{K\256\3761\316\021/\273\334%O\025`\377\035\350\014\316\021/\263\014\351\225R\231G\303J\370\350\220\276>\267o\236\047\267\004{\255\321\213l\022\024\217\\da\001\036-\014\256(\356\302\\\022\366\304\323g\340g,\307I>\036\352\341\370\317\256?d\222Gwx\013\255y\033\255tI\255qY\315\277\303\216\356\376\024\375\234\343g\345si\335\003j\321\311ut\367\047\361\357\276&\307\251\314\211\207\302\223ZX\343C\276\0316\337\217\230\372\260\344\267\243\343\252\257\205\227<\301\026\274\"\000\020\364\334-($\376\343jX%\236f\022\363U\326Z\351\222d\210 \216{\0061_e\345\225\270X\247i?\033\025\357C\370\341\307\360\307\217\243\2270\\d9|\377a\222\256\214^\236\007{\240Ep3\210X\362\034\273\205]\222\306\313\363\360<v4\203\230\257\262\326J\236\344C\004\037\303\217\377\231I\314WYy\005\352UK\337\341[a\311G\301=\251\255\377\246\270\037\265\377\003\263\326\361\351";
16347 PyObject *data = __Pyx_DecompressString(cstring, 1873, 1);
16348 #define __Pyx_DecompressString_LZSS_UNUSED
16349 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
16350 const char* const bytes = __Pyx_PyBytes_AsString(data);
16351 #if !CYTHON_ASSUME_SAFE_MACROS
16352 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
16353 #endif
16354 #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (2582 bytes) */
16355static const char cstring[] = "\377?Note th\377at Cytho\377n is del\377iberatel\377y strict\373er!\001n PEP\377-484 and\377 rejects\377 subclas\377ses of b\377uiltin t\377ypes. If\377 you nee?d to p%\000%\t\377then set\376\200\000e \047anno\177tation_<\000\377ing\047 dir\366b\000iv\242\000o Fa\377lse.add_\376%\000enumpy.\377_core.mu\376r\000array f\367ailg\003impo\373rt\033\tumath\366\021\016pr\202 us/c\376\307\000gridErr\377or.pyx__\335P\002\000PyD\377\000_N\377extRef__\376\237\004e____fu{nc\004\001main\003\002\357odul\025\002nam\336\035\002qual\004\005te\333st3\000is\261\001ou\376\244 eaasync\347io.\304\000\014\003sca\357lcul\373 Sub\376\206\006Gradien\177t_tauRe\016\023\377NavierSt\377okes2D_G\303LS*\001:\022\025\023++_s=d8!gene\300`c%\374$\0102,withBo\177dyForce?-\304,\016\272\200!3\334&\357\201!\047\004ve\377locity_p\177ressure\200^\374!\025\3515Shallo\377wWater1D$\272r\027\t2\014\024\300e1,\023\026\006\000n\026\372l\237\204\025\244\204\n\226%V\033\327\204\001\242\201#\000H\022\362&\226\200\"\250F\331\204\024\353\205\003\352_\033\n\000\305\200 \203\203*H\022\301\200$\211\204\r\313\032\272\207\032\366\207\003\374\362\207\005\211\207\025_ADR_S\177angalli\315\210\001\340\014\032\240\207\035I\002\223\207 q\002taup\312\211\022\025\005\231\027\262\211\026_HJ\001\030\317arar\306\033\312\212\004fl_cfl_1\001\0012\006\001\3773cline_i\377n_traceb_ackco\020\000d\231\214\n\377dHdadfdm\377dmtdpdeR\177esidual\000\t\257P_du\001\014v\021\014w&0\tU_G\000A\010U1\014\035\000)v!\0143\nV1\014Vq\014\035\000(s\n-\000s\nWq\014W\261\014\035\000\370\263\n-\000\275\000hidrd\250\264\216\t\000\n\201 p\001\ru\022\rv\202#\rwD\n\223\"\226\217\t\224\"\002\014v\000#\r6\013\227\"\332\217\t\230\"\002\014z\013\232\"\300\215\220\t\233\"\002\014\276\013\235\"$\014wd\377telement\377Diameter\177fggrad_\253h\346\n\003hi\023\002\200\221\thhF\377actorhuh\377vinverse\377JitemsnS?pacenp\206\222\002\365h\322\200\204\010P\277i\230\204\010V\244\204\010Wp\377epoprowp\375tX\000tdefau\377ltstabil#iz\214\223\002\217\222\t\233\222\tP\205J\316*""\376\250*tautau0\377tau1tau_\375g\310\221\004uvvalu\377es\200\001\360\006\000\005\377*\250\021\320*;\2706\377\300\021\300!\330(9\270\337\026\270q\300\001\000\006\330(\3372\260,\270a\004\000\3202\375B\035\0012\3202C\3001\3768\000\n\000\005\"\240\021\240\377-\250v\260Q\260a\330\377 -\250V\2601\260A\376\000\006\330 *\250#\250Q\326\003\001+\260\002\002,#\001*\250\356\000\004-\260q@\003)\250\001\177\250\022\2506\260\021\260}\000\377*\250&\260\001\260\021\330\275(\000\0062\260/\300\r\0002s\260\"Z\000\213\000!\2601\221\001\341$q\000\231\000\004\000\206\003,\2501\277\250B\250f\260Ai\000,\371.\000\006\n\0056\260o\300Q\177\330,6\260b\270\001\003\001wa\260q\n\001d\270!\000\004\376\212 \014\000\005!\240\001\240\377\022\2406\250\021\250!\330\257 \"\240&\230\000\021\000\006\330} \022\000*\250/\270\021\321\010\207\"\250A\337\010\356\000C\003\321\001\021~\304\005)\250\026\250q\260\322 !)\313!\310\004\301\004\317\004%\215\000\350 \335%\220\"\016\000\005\221!\023\250\213F\260\351\002+\226%=\000@\000/\306\357!\330(\000\004\227&\222$#\260EQ\326@\020=\003W)y\016\330\210\006\372K\0005\326!\260f\270A\270\377Q\33045\260V\2701\373\270A\000\006\3304>\270hK\300a\003\001c\252@\013\000b\301`\236\022\000a\270q\330\000\004 \000d\340\337`\000\004.\000\047\000\243\0038\260q\363\270\001\361d\017I\022\000\0051\366\311a\260&\\\000\021\33001\343\260\026f\001\000\006\017\000\3300:w\270/\310\031\000:\270#\326\000\362\013\000\"\324\000\022\000!\2701\330\274\000\004 \000$\270a\330\000\0040.%\002\200\001\360[\0004\355\204\001\204$\376\014OC\001\300!\3001\300\037F\310!\3101\272\2016\201D\3461\376\234 F\001\300Q\300a\300\337v\310Q\310a\017Q\026\000\277\005+\250!\2502\224\207\004(\356\312\206\021(\270!\341\207\001#\260Q\000\350\207\001\327\206\013\354\206\004\034\004\354\206\004\201\207\004\210\207\0041\004\376\360\204\003\030\000\005#\240!\240\3772\240V\2501\250A\330\377$&\240f\250A\250Q\376\000\006\330#$\330#-\250w_\270A\003\001S\260\001\n\001wR\250q\021\001Q\250a\003\010wX\260Q&\001T\260\021\030\010\370#""\0041\004<\000\200\001\360\032\000\377\005.\250Q\250b\260\006\341\260\320\207\001\320\020\237\206\r\245\200I\034\000\005\377&\240Q\240b\250\006\250\251a\304\000\337\017$\267\207\002\330\000\004$\177%\330$.\250o\270\217 \337.\250c\260\021\n\001b\260\331\001\021\001:\002.\250\007\004h\260\035a&\001d\260!\030\010#\0041\004\256<\000\200\001\360~\000/x\000r\374\324\205\004\347\211\0203\2606\270\021\330},\000\0046\260h\270a\204\212\001\001c\021\001\377\211\r\226\212\004\034\004\226\212\004\253\212\004\262\212\004\3341\0048\004l\300!\177\0030\250\377q\3200A\300\026\300q\047\310\001\330\000\006\010\0071\337\206\010\325\206\004\373,\300\321\206\001\320:J\310!\327\3300:\000\005\270\000\024-\300\035q!\002K\3101\000\005\271\207\001\004\020~\220#3\260!\3203D\267\206\004\372\020~(\241\204\002\320.?\270v\376\356\206\001\330,=\270V\3001;\300A\000\006\330,-\202\215\013\250\215\001\376\333 \330,6\3206F\300qa\000\005\000\024\023\030m\3001@\002\221G\276 I\001\002\003\260\000\024\033\020\200\003\001\360\274\000\200\202^\267\202>\365W\373 \256\202^\376a[9\270\001\3209J\310\377&\320PQ\320QR\330?8I\310\026\310q\n\000\000\007\377\33089\3308B\300/r\032\002B\266\214\001\013\001,\310a\023\000?\320BR\320RS\000\006\000\026\356\025\032-\310qF\002S\320S\301T\000\006o\001\000\026\035\022\310c<\270\2771\320<M\310VI\000\320\373TU\021\2740\000\0054\260\3771\3204E\300V\3101g\310A\330\000\006\010\0075\330\356\221\016\377l\310!\3304>\320>\031N\367\216\001\000\005>\270\001\023\037\005\000\034S\270m\247\220\001R\000O\252@4\000\005\315>\000\024\320>!\003\003\031\200\001\377\3602\000\005%\240A\320\013%6\367\223\004$\366\223\005\000\006\312\214\n\302\214\004\354\311\214\004\320\214\004l\270\305\214\001\320.>\311\270\324\214\001\000\005\250\000\024\027\024m\270/1\330$.\301\211\001q\000\005\005\010\361\250\000\034#\030\337\003(\240q\320\244\367\231\006\020\3228\273\213H\216\214\005\260\312\213X\320\2016\374\213.\337\233\001\256\214\023\372\000\366\210M\317\211\006\300\026\205\211`\320B\363\211\004\300\300\211G""\216`\272\211M\376S\276<\000\005?\270a\320\377?P\320PV\320VW\317\320WX\330\237\214\010\252\214\010<=\377\330<F\300o\320UV\356\004\001b\310\001\013\001a\300q\364\000\004\031\001l\363\215\001<F\320F\022F\001\330\000\006\007\010\300\n\026\000\027\031\030\201m\231\216\001m\001\262\003w\000\000\006\013\004\300\270\n\026\000\027\035\024\200\001\360\252 B\367\001\300\021\227\204\002Y\320YZ\377\320Z[\330@Q\320Q\356\263!\320XY\000\t\330@A\237\330@J\310/#\000\004\001\"!\310\n\002\330\235\001\023\000\000\004,\356 \"\000K\320JC\003J\000\006\t\006\310\n\026\324\000\027\031\030-\333A@e\000[\320\047[\\\330\000\006\007\010\310\n\026\000\027>\035\024\200\001\360P\001\341\216H\356\216$\020\225\217$\036-\325\217\023\260\217!\330\361\217&\")";
16356 PyObject *data = __Pyx_DecompressString_LZSS(cstring, 2582, 8278);
16357 #define __Pyx_DecompressString_UNUSED
16358 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
16359 const char* const bytes = __Pyx_PyBytes_AsString(data);
16360 #if !CYTHON_ASSUME_SAFE_MACROS
16361 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
16362 #endif
16363 #else /* compression: none (8278 bytes) */
16364static const char bytes[] = "?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_notenumpy._core.multiarray failed to importnumpy._core.umath failed to importproteus/csubgridError.pyx__Pyx_PyDict_NextRef__annotate____func____main____module____name____qualname____test___is_coroutineaasyncio.coroutinescalculateSubgridErrorGradient_tauRescalculateSubgridErrorNavierStokes2D_GLS_taucalculateSubgridErrorNavierStokes2D_GLS_tauRescalculateSubgridErrorNavierStokes2D_GLS_tau_sdcalculateSubgridErrorNavierStokes2D_generic_taucalculateSubgridErrorNavierStokes2D_generic_tau_sdcalculateSubgridErrorNavierStokes2D_generic_withBodyForce_taucalculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sdcalculateSubgridErrorNavierStokes3D_GLS_tauRescalculateSubgridErrorNavierStokes3D_GLS_velocity_pressurecalculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sdcalculateSubgridErrorShallowWater1DcalculateSubgridErrorShallowWater2DcalculateSubgridErrorStokes2D_1calculateSubgridErrorStokes2D_1_sdcalculateSubgridErrorStokes2D_GLS_tauRescalculateSubgridErrorStokes2D_GLS_velocitycalculateSubgridErrorStokes2D_GLS_velocity_pressurecalculateSubgridErrorStokes2D_GLS_velocity_pressure_sdcalculateSubgridErrorStokes2D_GLS_velocity_sdcalculateSubgridErrorStokes3D_GLS_tauRescalculateSubgridErrorStokes3D_GLS_velocitycalculateSubgridErrorStokes3D_GLS_velocity_pressurecalculateSubgridErrorStokes3D_GLS_velocity_pressure_sdcalculateSubgridErrorStokes3D_GLS_velocity_sdcalculateSubgridErrorStokes_GLS_taucalculateSubgridErrorStokes_GLS_tau_sdcalculateSubgridError_ADR_Sangalli_tau_sdcalculateSubgridError_ADR_generic_taucalculateSubgridError_ADR_generic_tau_sdcalculateSubgridError_ADR_taucalculateSubgridError_ADR_tau_sdcalculateSubgridError_A_taucalculateSubgridError_HJ_taucalculateSubgridError_Harari_tau_sdcalculateSubgridError_tauRescflcfl_1cfl_2cfl_3cline_in_tracebackcolindcsubgridErrordHdadfdmdm""tdpdeResidualdpdeResidualP_dudpdeResidualP_dvdpdeResidualP_dwdpdeResidualU_dpdpdeResidualU_dudpdeResidualU_dvdpdeResidualU_dwdpdeResidualV_dpdpdeResidualV_dudpdeResidualV_dvdpdeResidualV_dwdpdeResidualW_dpdpdeResidualW_dudpdeResidualW_dvdpdeResidualW_dwdphidrdsubgridErrordsubgridErrorP_dpdsubgridErrorP_dudsubgridErrorP_dvdsubgridErrorP_dwdsubgridErrorU_dpdsubgridErrorU_dudsubgridErrorU_dvdsubgridErrorU_dwdsubgridErrorV_dpdsubgridErrorV_dudsubgridErrorV_dvdsubgridErrorV_dwdsubgridErrorW_dpdsubgridErrorW_dudsubgridErrorW_dvdsubgridErrorW_dwdtelementDiameterfggrad_pdeResidualgrad_phigrad_subgridErrorhhFactorhuhvinverseJitemsnSpacenpnumpypdeResidualpdeResidualPpdeResidualUpdeResidualVpdeResidualWpepoprowptrsetdefaultstabilizationsubgridErrorsubgridErrorPsubgridErrorUsubgridErrorVsubgridErrorWtautau0tau1tau_gradientuvvalues\200\001\360\006\000\005*\250\021\320*;\2706\300\021\300!\330(9\270\026\270q\300\001\330(9\270\026\270q\300\001\330(2\260,\270a\330(2\3202B\300!\330(2\3202C\3001\200\001\360\n\000\005\"\240\021\240-\250v\260Q\260a\330 -\250V\2601\260A\330 -\250V\2601\260A\330 *\250#\250Q\330 *\250+\260Q\330 *\250,\260a\330 *\250,\260a\330 *\250-\260q\200\001\360\n\000\005)\250\001\250\022\2506\260\021\260!\330(*\250&\260\001\260\021\330(*\250&\260\001\260\021\330(2\260/\300\021\330(2\260\"\260A\330(2\260!\2601\330(2\260$\260a\330(2\260$\260a\200\001\360\n\000\005,\2501\250B\250f\260A\260Q\330,.\250f\260A\260Q\330,.\250f\260A\260Q\330,6\260o\300Q\330,6\260b\270\001\330,6\260a\260q\330,6\260d\270!\330,6\260d\270!\200\001\360\014\000\005!\240\001\240\022\2406\250\021\250!\330 \"\240&\250\001\250\021\330 \"\240&\250\001\250\021\330 !\330 *\250/\270\021\330 *\250#\250Q\330 *\250\"\250A\330 *\250#\250Q\330 *\250#\250Q\200\001\360\014\000\005)\250\001\250\021\250&\260\001\260\021\330()\250\026\250q\260\001\330()\330(2\260/\300\021\330(2\260!\2601\330(2\260\"\260A\330(2\260%\260q\330(2\260%\260q\200\001\360\016\000\005)\250\001\250\023\250F\260!\2601\330(+\2506\260\021\260!""\330()\330()\330(/\250v\260Q\330(/\250v\260Q\330(2\260/\300\021\330(2\260!\2601\330(2\260#\260Q\200\001\360\020\000\005)\250\001\250\021\250&\260\001\260\021\330()\250\026\250q\260\001\330()\330(2\260/\300\021\330(2\260!\2601\330(2\260\"\260A\330(2\260\"\260A\330(2\260%\260q\330(2\260%\260q\330(2\260%\260q\200\001\360\020\000\0055\260A\260Q\260f\270A\270Q\33045\260V\2701\270A\33045\260V\2701\270A\3304>\270h\300a\3304>\270c\300\021\3304>\270b\300\001\3304>\270a\270q\3304>\270a\270q\3304>\270d\300!\3304>\270d\300!\3304>\270c\300\021\200\001\360\020\000\0058\260q\270\001\270\026\270q\300\001\33045\260V\2701\270A\33045\260V\2701\270A\3304>\270h\300a\3304>\270c\300\021\3304>\270b\300\001\3304>\270a\270q\3304>\270a\270q\3304>\270d\300!\3304>\270d\300!\3304>\270c\300\021\200\001\360\022\000\0051\260\001\260\021\260&\270\001\270\021\33001\260\026\260q\270\001\33001\260\026\260q\270\001\33001\3300:\270/\310\021\3300:\270#\270Q\3300:\270\"\270A\3300:\270!\2701\3300:\270!\2701\3300:\270$\270a\3300:\270$\270a\3300:\270#\270Q\200\001\360\022\000\0054\2601\260A\260V\2701\270A\33001\260\026\260q\270\001\33001\260\026\260q\270\001\33001\3300:\270/\310\021\3300:\270#\270Q\3300:\270\"\270A\3300:\270!\2701\3300:\270!\2701\3300:\270$\270a\3300:\270$\270a\3300:\270#\270Q\200\001\360\022\000\005C\001\300!\3001\300F\310!\3101\33045\260V\2701\270A\33045\260V\2701\270A\3304>\270h\300a\3304>\270c\300\021\3304>\270b\300\001\3304>\270a\270q\3304>\270a\270q\3304>\270b\300\001\3304>\270d\300!\3304>\270d\300!\3304>\270c\300\021\200\001\360\022\000\005F\001\300Q\300a\300v\310Q\310a\33045\260V\2701\270A\33045\260V\2701\270A\3304>\270h\300a\3304>\270c\300\021\3304>\270b\300\001\3304>\270a\270q\3304>\270a\270q\3304>\270b\300\001\3304>\270d\300!\3304>\270d\300!\3304>\270c\300\021\200\001\360\026\000\005+\250!\2502\250V\2601\260A\330(*\250&\260\001\260\021\330(*\250&\260\001\260\021\330(2\260(\270!\330(2\260#\260Q\330(2\260\"\260A\330(2\260!\2601\330(2\260\"\260A\330(2\260(\270!\330(2\260$\260a\330(2""\260\"\260A\330(2\260\"\260A\330(2\260#\260Q\330(2\260#\260Q\200\001\360\030\000\005#\240!\2402\240V\2501\250A\330$&\240f\250A\250Q\330$&\240f\250A\250Q\330#$\330#-\250_\270A\330#-\250S\260\001\330#-\250R\250q\330#-\250Q\250a\330#-\250R\250q\330#-\250X\260Q\330#-\250T\260\021\330#-\250R\250q\330#-\250R\250q\330#-\250S\260\001\330#-\250S\260\001\200\001\360\032\000\005.\250Q\250b\260\006\260a\260q\330(*\250&\260\001\260\021\330(*\250&\260\001\260\021\330(/\250v\260Q\330(/\250v\260Q\330(2\260(\270!\330(2\260#\260Q\330(2\260\"\260A\330(2\260!\2601\330(2\260\"\260A\330(2\260(\270!\330(2\260$\260a\330(2\260\"\260A\330(2\260\"\260A\330(2\260#\260Q\330(2\260#\260Q\200\001\360\034\000\005&\240Q\240b\250\006\250a\250q\330$&\240f\250A\250Q\330$&\240f\250A\250Q\330$+\2506\260\021\330$+\2506\260\021\330$%\330$.\250o\270Q\330$.\250c\260\021\330$.\250b\260\001\330$.\250a\250q\330$.\250b\260\001\330$.\250h\260a\330$.\250d\260!\330$.\250b\260\001\330$.\250b\260\001\330$.\250c\260\021\330$.\250c\260\021\200\001\360\034\000\005/\250a\250r\260\026\260q\270\001\330,.\250f\260A\260Q\330,.\250f\260A\260Q\330,3\2606\270\021\330,3\2606\270\021\330,6\260h\270a\330,6\260c\270\021\330,6\260b\270\001\330,6\260a\260q\330,6\260b\270\001\330,6\260h\270a\330,6\260d\270!\330,6\260b\270\001\330,6\260b\270\001\330,6\260c\270\021\330,6\260c\270\021\330,6\260l\300!\200\001\360\034\000\0050\250q\3200A\300\026\300q\310\001\3300A\300\026\300q\310\001\3300A\300\026\300q\310\001\33001\3300:\270/\310\021\3300:\270!\2701\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\200\001\360\034\000\0053\260!\3203D\300F\310!\3101\3300A\300\026\300q\310\001\3300A\300\026\300q\310\001\33001\3300:\270/\310\021\3300:\270!\2701\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101""\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\200\001\360(\000\005.\250Q\320.?\270v\300Q\300a\330,=\270V\3001\300A\330,=\270V\3001\300A\330,-\330,6\260d\270!\330,6\260d\270!\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\200\001\360(\000\0050\250q\3200A\300\026\300q\310\001\3300A\300\026\300q\310\001\3300A\300\026\300q\310\001\33001\3300:\270/\310\021\3300:\270!\2701\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\200\001\360(\000\0053\260!\3203D\300F\310!\3101\3300A\300\026\300q\310\001\3300A\300\026\300q\310\001\33001\3300:\270/\310\021\3300:\270!\2701\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270,\300a\3300:\320:J\310!\3300:\320:J\310!\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\3300:\270-\300q\3300:\320:K\3101\3300:\320:K\3101\200\001\360(\000\0059\270\001\3209J\310&\320PQ\320QR\3308I\310\026\310q\320PQ\3308I\310\026\310q\320PQ\33089\3308B\300/\320QR\3308B\300!\3001\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\200\001\360(\000\005<\2701\320<M\310V\320ST\320TU\3308I\310\026\310q\320PQ\3308I\310\026\310q\320PQ\33089\3308B\300/\320QR\3308B\300!\3001\3308B\300,\310a\3308B\320BR\320RS""\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\200\001\3600\000\0054\2601\3204E\300V\3101\310A\3304E\300V\3101\310A\3304E\300V\3101\310A\33045\3304>\270d\300!\3304>\270d\300!\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\200\001\3602\000\005%\240A\320%6\260f\270A\270Q\330$5\260V\2701\270A\330$5\260V\2701\270A\330$%\330$.\250o\270Q\330$.\250a\250q\330$.\250a\250q\330$.\250a\250q\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\200\001\3602\000\005(\240q\320(9\270\026\270q\300\001\330$5\260V\2701\270A\330$5\260V\2701\270A\330$%\330$.\250o\270Q\330$.\250a\250q\330$.\250a\250q\330$.\250a\250q\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250l\270!\330$.\320.>\270a\330$.\320.>\270a\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\330$.\250m\2701\330$.\320.?\270q\330$.\320.?\270q\330$.\320.?\270q\200\001\3608\000\005.\250Q\320.?\270v\300Q\300a\330,=\270V\3001\300A\330,=\270V\3001\300A\330,-\330,6\260d\270!\330,6\260d\270!\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\3206F\300a""\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260l\300!\330,6\3206F\300a\330,6\3206F\300a\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\330,6\3206G\300q\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\330,6\260m\3001\330,6\3206G\300q\330,6\3206G\300q\200\001\3608\000\0059\270\001\3209J\310&\320PQ\320QR\3308I\310\026\310q\320PQ\3308I\310\026\310q\320PQ\33089\3308B\300/\320QR\3308B\300!\3001\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\200\001\3608\000\005<\2701\320<M\310V\320ST\320TU\3308I\310\026\310q\320PQ\3308I\310\026\310q\320PQ\33089\3308B\300/\320QR\3308B\300!\3001\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300,\310a\3308B\320BR\320RS\3308B\320BR\320RS\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\3308B\300-\310q\3308B\320BS\320ST\3308B\320BS\320ST\200\001\360<\000\005?\270a\320?P\320PV\320VW\320WX\330<M\310V\320ST\320TU\330<M\310V\320ST\320TU\330<=\330<F\300o\320UV\330<F\300b\310\001\330<F\300a\300q\330<F\300a\300q\330<F\300l\320RS\330<F\320FV\320VW\330<F\320FV\320VW\330<F\320FV\320VW\330<F\300l\320RS\330<F\320FV\320VW\330<F\320FV\320VW\330<F\300l\320RS\330<F\320FV\320VW\330<F\320FV\320VW\330<F\300l\320RS\330<F\320FV\320VW\330<F\320FV\320VW\330<F\300m\320ST\330<F\320FW\320WX\330<F\320FW""\320WX\330<F\320FW\320WX\330<F\300m\320ST\330<F\320FW\320WX\330<F\320FW\320WX\330<F\300m\320ST\330<F\320FW\320WX\330<F\320FW\320WX\330<F\300m\320ST\330<F\320FW\320WX\330<F\320FW\320WX\200\001\360<\000\005B\001\300\021\320BS\320SY\320YZ\320Z[\330@Q\320QW\320WX\320XY\330@Q\320QW\320WX\320XY\330@A\330@J\310/\320YZ\330@J\310\"\310A\330@J\310!\3101\330@J\310!\3101\330@J\310,\320VW\330@J\320JZ\320Z[\330@J\320JZ\320Z[\330@J\320JZ\320Z[\330@J\310,\320VW\330@J\320JZ\320Z[\330@J\320JZ\320Z[\330@J\310,\320VW\330@J\320JZ\320Z[\330@J\320JZ\320Z[\330@J\310,\320VW\330@J\320JZ\320Z[\330@J\320JZ\320Z[\330@J\310-\320WX\330@J\320J[\320[\\\330@J\320J[\320[\\\330@J\320J[\320[\\\330@J\310-\320WX\330@J\320J[\320[\\\330@J\320J[\320[\\\330@J\310-\320WX\330@J\320J[\320[\\\330@J\320J[\320[\\\330@J\310-\320WX\330@J\320J[\320[\\\330@J\320J[\320[\\\200\001\360P\001\000\0054\2601\3204E\300V\3101\310A\3304E\300V\3101\310A\3304E\300V\3101\310A\33045\3304>\270d\300!\3304>\270d\300!\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270l\310!\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\320>N\310a\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\270m\3101\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q\3304>\320>O\310q";
16365 PyObject *data = NULL;
16366 #define __Pyx_DecompressString_UNUSED
16367 #define __Pyx_DecompressString_LZSS_UNUSED
16368 #endif
16369 PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
16370 Py_ssize_t pos = 0;
16371 for (int i = 0; i < 138; i++) {
16372 Py_ssize_t bytes_length = str_length_index[i].length;
16373 PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
16374 if (likely(string) && i >= 6) PyUnicode_InternInPlace(&string);
16375 if (unlikely(!string)) {
16376 Py_XDECREF(data);
16377 __PYX_ERR(0, 1, __pyx_L1_error)
16378 }
16379 stringtab[i] = string;
16380 pos += bytes_length;
16381 }
16382 for (int i = 138; i < 173; i++) {
16383 Py_ssize_t bytes_length = bytes_length_index[i-138].length;
16384 PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
16385 stringtab[i] = string;
16386 pos += bytes_length;
16387 if (unlikely(!string)) {
16388 Py_XDECREF(data);
16389 __PYX_ERR(0, 1, __pyx_L1_error)
16390 }
16391 }
16392 Py_XDECREF(data);
16393 for (Py_ssize_t i = 0; i < 173; i++) {
16394 if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
16395 __PYX_ERR(0, 1, __pyx_L1_error)
16396 }
16397 }
16398 #if CYTHON_IMMORTAL_CONSTANTS
16399 {
16400 PyObject **table = stringtab + 138;
16401 for (Py_ssize_t i=0; i<35; ++i) {
16402 #if PY_VERSION_HEX >= 0x030F0000
16403 PyUnstable_SetImmortal(table[i]);
16404 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
16405 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
16406 #if PY_VERSION_HEX < 0x030E0000
16407 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
16408 #else
16409 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
16410 #endif
16411 {
16412 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
16413 }
16414 #else
16415 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
16416 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
16417 #endif
16418 }
16419 }
16420 #endif
16421 }
16422 return 0;
16423 __pyx_L1_error:;
16424 return -1;
16425}
16426/* #### Code section: init_codeobjects ### */
16427#ifdef __cplusplus
16428namespace {
16429#endif
16430typedef struct {
16431 unsigned int argcount : 6;
16432 unsigned int num_posonly_args : 1;
16433 unsigned int num_kwonly_args : 1;
16434 unsigned int nlocals : 6;
16435 unsigned int flags : 10;
16436 unsigned int first_line : 11;
16437} __Pyx_PyCode_New_function_description;
16438#ifdef __cplusplus
16439} /* anonymous namespace */
16440#endif
16441/* NewCodeObj.proto */
16442static PyObject* __Pyx_PyCode_New(
16443 const __Pyx_PyCode_New_function_description descr,
16444 PyObject * const *varnames,
16445 PyObject *filename,
16446 PyObject *funcname,
16447 PyObject *line_table,
16448 PyObject *tuple_dedup_map
16449);
16450
16451
16452static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
16453 PyObject* tuple_dedup_map = PyDict_New();
16454 if (unlikely(!tuple_dedup_map)) return -1;
16455 {
16456 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 671};
16457 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau, __pyx_mstate->__pyx_n_u_pdeResidual, __pyx_mstate->__pyx_n_u_dpdeResidual, __pyx_mstate->__pyx_n_u_subgridError, __pyx_mstate->__pyx_n_u_dsubgridError};
16458 __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_tauRes, __pyx_mstate->__pyx_kp_b_iso88591_vQa_V1A_V1A_Q_Q_a_a_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
16459 }
16460 {
16461 const __Pyx_PyCode_New_function_description descr = {11, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 684};
16462 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_da, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_dphi, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_pe, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16463 __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_ADR_generi, __pyx_mstate->__pyx_kp_b_iso88591_2V1A_2_2_Q_2_A_2_1_2_A_2_2_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
16464 }
16465 {
16466 const __Pyx_PyCode_New_function_description descr = {13, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 709};
16467 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_da, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_dphi, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_pe, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16468 __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_ADR_generi_2, __pyx_mstate->__pyx_kp_b_iso88591_Qb_aq_vQ_vQ_2_2_Q_2_A_2_1_2_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
16469 }
16470 {
16471 const __Pyx_PyCode_New_function_description descr = {12, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 738};
16472 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_stabilization, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_da, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_dphi, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_pe, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16473 __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_ADR_tau, __pyx_mstate->__pyx_kp_b_iso88591_2V1A_fAQ_fAQ__A_S_Rq_Qa_Rq_XQ_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
16474 }
16475 {
16476 const __Pyx_PyCode_New_function_description descr = {14, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 765};
16477 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_stabilization, __pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_da, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_dphi, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_pe, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16478 __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_ADR_tau_sd, __pyx_mstate->__pyx_kp_b_iso88591_Qb_aq_fAQ_fAQ_6_6_oQ_c_b_aq_b_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
16479 }
16480 {
16481 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 796};
16482 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_stabilization, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16483 __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_A_tau, __pyx_mstate->__pyx_kp_b_iso88591_6_Q_A_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
16484 }
16485 {
16486 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 811};
16487 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_stabilization, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dH, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau};
16488 __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_HJ_tau, __pyx_mstate->__pyx_kp_b_iso88591_6_Q_A_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
16489 }
16490 {
16491 const __Pyx_PyCode_New_function_description descr = {14, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 827};
16492 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16493 __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_GL, __pyx_mstate->__pyx_kp_b_iso88591_0q0A_q_0A_q_0A_q_010_0_10_a0_J, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
16494 }
16495 {
16496 const __Pyx_PyCode_New_function_description descr = {14, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 859};
16497 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16498 __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_GL_2, __pyx_mstate->__pyx_kp_b_iso88591_3_3DF_10A_q_0A_q_010_0_10_a0_J, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
16499 }
16500 {
16501 const __Pyx_PyCode_New_function_description descr = {20, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 891};
16502 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16503 __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes3D_GL, __pyx_mstate->__pyx_kp_b_iso88591_0q0A_q_0A_q_0A_q_010_0_10_a0_J_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
16504 }
16505 {
16506 const __Pyx_PyCode_New_function_description descr = {20, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 935};
16507 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16508 __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes3D_GL_2, __pyx_mstate->__pyx_kp_b_iso88591_3_3DF_10A_q_0A_q_010_0_10_a0_J_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
16509 }
16510 {
16511 const __Pyx_PyCode_New_function_description descr = {20, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 979};
16512 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16513 __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_GL_3, __pyx_mstate->__pyx_kp_b_iso88591_9_9J_PQQR8I_qPQ8I_qPQ898B_QR8B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
16514 }
16515 {
16516 const __Pyx_PyCode_New_function_description descr = {20, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1023};
16517 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16518 __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_GL_4, __pyx_mstate->__pyx_kp_b_iso88591_1_MVSTTU8I_qPQ8I_qPQ898B_QR8B_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
16519 }
16520 {
16521 const __Pyx_PyCode_New_function_description descr = {28, 0, 0, 28, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1067};
16522 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16523 __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes3D_GL_3, __pyx_mstate->__pyx_kp_b_iso88591_8_9_9J_PQQR8I_qPQ8I_qPQ898B_QR8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
16524 }
16525 {
16526 const __Pyx_PyCode_New_function_description descr = {28, 0, 0, 28, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1127};
16527 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16528 __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes3D_GL_4, __pyx_mstate->__pyx_kp_b_iso88591_8_1_MVSTTU8I_qPQ8I_qPQ898B_QR8B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
16529 }
16530 {
16531 const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1187};
16532 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_hFactor, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16533 __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke, __pyx_mstate->__pyx_kp_b_iso88591_1_01_q_01_q_010_0_Q0_A0_10_10_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
16534 }
16535 {
16536 const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1208};
16537 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_hFactor, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16538 __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_2, __pyx_mstate->__pyx_kp_b_iso88591_41AV1A01_q_01_q_010_0_Q0_A0_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
16539 }
16540 {
16541 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1229};
16542 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16543 __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_3, __pyx_mstate->__pyx_kp_b_iso88591_5AQfAQ45V1A45V1A4_ha4_c_4_b_4_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
16544 }
16545 {
16546 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1248};
16547 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16548 __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_4, __pyx_mstate->__pyx_kp_b_iso88591_8q_q_45V1A45V1A4_ha4_c_4_b_4_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
16549 }
16550 {
16551 const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1267};
16552 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16553 __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_5, __pyx_mstate->__pyx_kp_b_iso88591_C_1F_145V1A45V1A4_ha4_c_4_b_4_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
16554 }
16555 {
16556 const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1288};
16557 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_cfl};
16558 __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_6, __pyx_mstate->__pyx_kp_b_iso88591_F_QavQa45V1A45V1A4_ha4_c_4_b_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
16559 }
16560 {
16561 const __Pyx_PyCode_New_function_description descr = {24, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1309};
16562 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_dpdeResidualU_dv, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_du, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dv, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_du, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16563 __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_7, __pyx_mstate->__pyx_kp_b_iso88591_0_414EV1A4EV1A4EV1A454_d_4_d_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
16564 }
16565 {
16566 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1361};
16567 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dH, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1};
16568 __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes_GLS, __pyx_mstate->__pyx_kp_b_iso88591_6_2_2_A_2_1_2_a_2_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
16569 }
16570 {
16571 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1374};
16572 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dH, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1};
16573 __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes_GLS_2, __pyx_mstate->__pyx_kp_b_iso88591_1BfAQ_fAQ_fAQ_6oQ_6b_6aq_6d_6d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
16574 }
16575 {
16576 const __Pyx_PyCode_New_function_description descr = {20, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1387};
16577 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16578 __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_GL_5, __pyx_mstate->__pyx_kp_b_iso88591_Q_vQa_V1A_V1A_6d_6d_6l_66Fa_66F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
16579 }
16580 {
16581 const __Pyx_PyCode_New_function_description descr = {28, 0, 0, 28, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1431};
16582 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16583 __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes3D_GL_5, __pyx_mstate->__pyx_kp_b_iso88591_8_Q_vQa_V1A_V1A_6d_6d_6l_66Fa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
16584 }
16585 {
16586 const __Pyx_PyCode_New_function_description descr = {40, 0, 0, 40, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1491};
16587 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau0, __pyx_mstate->__pyx_n_u_tau1, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_dpdeResidualU_dv, __pyx_mstate->__pyx_n_u_dpdeResidualU_dw, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_du, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_dpdeResidualV_dw, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_du, __pyx_mstate->__pyx_n_u_dpdeResidualW_dv, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dw, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_du, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dw, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_du, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16588 __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_8, __pyx_mstate->__pyx_kp_b_iso88591_P_414EV1A4EV1A4EV1A454_d_4_d_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
16589 }
16590 {
16591 const __Pyx_PyCode_New_function_description descr = {30, 0, 0, 30, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1575};
16592 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16593 __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_9, __pyx_mstate->__pyx_kp_b_iso88591_a_PPVVWWX_MVSTTU_MVSTTU_FoUV_Fb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
16594 }
16595 {
16596 const __Pyx_PyCode_New_function_description descr = {30, 0, 0, 30, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1639};
16597 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_dm, __pyx_mstate->__pyx_n_u_f, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_dpdeResidualP_dw, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_pdeResidualW, __pyx_mstate->__pyx_n_u_dpdeResidualW_dp, __pyx_mstate->__pyx_n_u_dpdeResidualW_dw, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dw, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv, __pyx_mstate->__pyx_n_u_subgridErrorW, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorW_dw};
16598 __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorNavierStoke_10, __pyx_mstate->__pyx_kp_b_iso88591_B_BSSYYZZ_QQWWXXY_QQWWXXY_A_J_Y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
16599 }
16600 {
16601 const __Pyx_PyCode_New_function_description descr = {25, 0, 0, 25, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1703};
16602 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_v, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dv, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_du, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16603 __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_1, __pyx_mstate->__pyx_kp_b_iso88591_2_A_6fAQ_5V1A_5V1A_oQ_aq_aq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
16604 }
16605 {
16606 const __Pyx_PyCode_New_function_description descr = {25, 0, 0, 25, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1757};
16607 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_v, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_pdeResidualP, __pyx_mstate->__pyx_n_u_dpdeResidualP_du, __pyx_mstate->__pyx_n_u_dpdeResidualP_dv, __pyx_mstate->__pyx_n_u_pdeResidualU, __pyx_mstate->__pyx_n_u_dpdeResidualU_dp, __pyx_mstate->__pyx_n_u_dpdeResidualU_du, __pyx_mstate->__pyx_n_u_pdeResidualV, __pyx_mstate->__pyx_n_u_dpdeResidualV_dp, __pyx_mstate->__pyx_n_u_dpdeResidualV_dv, __pyx_mstate->__pyx_n_u_subgridErrorP, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorP_du, __pyx_mstate->__pyx_n_u_dsubgridErrorP_dv, __pyx_mstate->__pyx_n_u_subgridErrorU, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorU_du, __pyx_mstate->__pyx_n_u_dsubgridErrorU_dv, __pyx_mstate->__pyx_n_u_subgridErrorV, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dp, __pyx_mstate->__pyx_n_u_dsubgridErrorV_du, __pyx_mstate->__pyx_n_u_dsubgridErrorV_dv};
16608 __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorStokes2D_1_2, __pyx_mstate->__pyx_kp_b_iso88591_2_q_9_q_5V1A_5V1A_oQ_aq_aq_aq_l, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
16609 }
16610 {
16611 const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1811};
16612 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_g, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_h, __pyx_mstate->__pyx_n_u_hu, __pyx_mstate->__pyx_n_u_cfl_1, __pyx_mstate->__pyx_n_u_cfl_2};
16613 __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorShallowWate, __pyx_mstate->__pyx_kp_b_iso88591_q_2_2_1_2_A_2_q_2_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
16614 }
16615 {
16616 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1825};
16617 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_g, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_h, __pyx_mstate->__pyx_n_u_hu, __pyx_mstate->__pyx_n_u_hv, __pyx_mstate->__pyx_n_u_cfl_1, __pyx_mstate->__pyx_n_u_cfl_2, __pyx_mstate->__pyx_n_u_cfl_3};
16618 __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorShallowWate_2, __pyx_mstate->__pyx_kp_b_iso88591_q_2_2_1_2_A_2_A_2_q_2_q_2_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
16619 }
16620 {
16621 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1843};
16622 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nSpace, __pyx_mstate->__pyx_n_u_dt, __pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_elementDiameter, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_tau};
16623 __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_Harari_tau, __pyx_mstate->__pyx_kp_b_iso88591_F_1_6_vQ_vQ_2_2_1_2_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
16624 }
16625 {
16626 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1859};
16627 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tau_gradient, __pyx_mstate->__pyx_n_u_grad_pdeResidual, __pyx_mstate->__pyx_n_u_grad_subgridError};
16628 __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridErrorGradient_ta, __pyx_mstate->__pyx_kp_b_iso88591_6_9_q_9_q_2_a_22B_22C1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
16629 }
16630 {
16631 const __Pyx_PyCode_New_function_description descr = {14, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1868};
16632 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rowptr, __pyx_mstate->__pyx_n_u_colind, __pyx_mstate->__pyx_n_u_inverseJ, __pyx_mstate->__pyx_n_u_dmt, __pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_a, __pyx_mstate->__pyx_n_u_da, __pyx_mstate->__pyx_n_u_grad_phi, __pyx_mstate->__pyx_n_u_dphi, __pyx_mstate->__pyx_n_u_dr, __pyx_mstate->__pyx_n_u_pe, __pyx_mstate->__pyx_n_u_cfl, __pyx_mstate->__pyx_n_u_tau, __pyx_mstate->__pyx_n_u_tau_gradient};
16633 __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_csubgridError_pyx, __pyx_mstate->__pyx_n_u_calculateSubgridError_ADR_Sangal, __pyx_mstate->__pyx_kp_b_iso88591_ar_q_fAQ_fAQ_36_36_6ha_6c_6b_6a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
16634 }
16635 Py_DECREF(tuple_dedup_map);
16636 return 0;
16637 bad:
16638 Py_DECREF(tuple_dedup_map);
16639 return -1;
16640}
16641/* #### Code section: init_globals ### */
16642
16643static int __Pyx_InitGlobals(void) {
16644 int __pyx_lineno = 0;
16645 const char *__pyx_filename = NULL;
16646 int __pyx_clineno = 0;
16647 /* PythonCompatibility.init */
16648 if (likely(__Pyx_init_co_variables() == 0 && __Pyx_init_tpflags_variables() == 0)); else
16649
16650 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16651
16652 /* NumpyImportArray.init */
16653 /*
16654 * Cython has automatically inserted a call to _import_array since
16655 * you didn't include one when you cimported numpy. To disable this
16656 * add the line
16657 * <void>numpy._import_array
16658 */
16659 #ifdef NPY_FEATURE_VERSION
16660 #ifndef NO_IMPORT_ARRAY
16661 if (unlikely(_import_array() == -1)) {
16662 PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import "
16663 "(auto-generated because you didn't call 'numpy.import_array()' after cimporting numpy; "
16664 "use '<void>numpy._import_array' to disable if you are certain you don't need it).");
16665 }
16666 #endif
16667 #endif
16668
16669 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16670
16671 /* CommonTypesMetaclass.init */
16672 if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
16673
16674 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16675
16676 /* CachedMethodType.init */
16677 #if CYTHON_COMPILING_IN_LIMITED_API
16678 {
16679 PyObject *typesModule=NULL;
16680 typesModule = PyImport_ImportModule("types");
16681 if (typesModule) {
16682 __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
16683 Py_DECREF(typesModule);
16684 }
16685 } // error handling follows
16686 #endif
16687
16688 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16689
16690 return 0;
16691 __pyx_L1_error:;
16692 return -1;
16693}
16694/* #### Code section: init_after_shared_utility ### */
16695
16696static int __Pyx_InitAfterSharedUtility(void) {
16697 int __pyx_lineno = 0;
16698 const char *__pyx_filename = NULL;
16699 int __pyx_clineno = 0;
16700 /* CythonFunctionPerModule.init */
16701 if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
16702
16703 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16704
16705 return 0;
16706 __pyx_L1_error:;
16707 return -1;
16708}
16709/* #### Code section: cleanup_globals ### */
16710/* #### Code section: cleanup_module ### */
16711/* #### Code section: main_method ### */
16712/* #### Code section: utility_code_pragmas ### */
16713#ifdef _MSC_VER
16714#pragma warning( push )
16715/* Warning 4127: conditional expression is constant
16716 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
16717 * compile-time, so this warning is not useful
16718 */
16719#pragma warning( disable : 4127 )
16720#endif
16721
16722
16723
16724/* #### Code section: utility_code_def ### */
16725
16726/* --- Runtime support code --- */
16727/* Refnanny */
16728#if CYTHON_REFNANNY
16729static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
16730 PyObject *m = NULL, *p = NULL;
16731 void *r = NULL;
16732 m = PyImport_ImportModule(modname);
16733 if (!m) goto end;
16734 p = PyObject_GetAttrString(m, "RefNannyAPI");
16735 if (!p) goto end;
16736 r = PyLong_AsVoidPtr(p);
16737end:
16738 Py_XDECREF(p);
16739 Py_XDECREF(m);
16740 return (__Pyx_RefNannyAPIStruct *)r;
16741}
16742#endif
16743
16744/* GetTopmostException (used by SaveResetException) */
16745#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
16746static _PyErr_StackItem *
16747__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
16748{
16749 _PyErr_StackItem *exc_info = tstate->exc_info;
16750 while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
16751 exc_info->previous_item != NULL)
16752 {
16753 exc_info = exc_info->previous_item;
16754 }
16755 return exc_info;
16756}
16757#endif
16758
16759/* SaveResetException */
16760#if CYTHON_FAST_THREAD_STATE
16761static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
16762 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
16763 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
16764 PyObject *exc_value = exc_info->exc_value;
16765 if (exc_value == NULL || exc_value == Py_None) {
16766 *value = NULL;
16767 *type = NULL;
16768 *tb = NULL;
16769 } else {
16770 *value = exc_value;
16771 Py_INCREF(*value);
16772 *type = (PyObject*) Py_TYPE(exc_value);
16773 Py_INCREF(*type);
16774 *tb = PyException_GetTraceback(exc_value);
16775 }
16776 #elif CYTHON_USE_EXC_INFO_STACK
16777 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
16778 *type = exc_info->exc_type;
16779 *value = exc_info->exc_value;
16780 *tb = exc_info->exc_traceback;
16781 Py_XINCREF(*type);
16782 Py_XINCREF(*value);
16783 Py_XINCREF(*tb);
16784 #else
16785 *type = tstate->exc_type;
16786 *value = tstate->exc_value;
16787 *tb = tstate->exc_traceback;
16788 Py_XINCREF(*type);
16789 Py_XINCREF(*value);
16790 Py_XINCREF(*tb);
16791 #endif
16792}
16793static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
16794 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
16795 _PyErr_StackItem *exc_info = tstate->exc_info;
16796 PyObject *tmp_value = exc_info->exc_value;
16797 exc_info->exc_value = value;
16798 Py_XDECREF(tmp_value);
16799 Py_XDECREF(type);
16800 Py_XDECREF(tb);
16801 #else
16802 PyObject *tmp_type, *tmp_value, *tmp_tb;
16803 #if CYTHON_USE_EXC_INFO_STACK
16804 _PyErr_StackItem *exc_info = tstate->exc_info;
16805 tmp_type = exc_info->exc_type;
16806 tmp_value = exc_info->exc_value;
16807 tmp_tb = exc_info->exc_traceback;
16808 exc_info->exc_type = type;
16809 exc_info->exc_value = value;
16810 exc_info->exc_traceback = tb;
16811 #else
16812 tmp_type = tstate->exc_type;
16813 tmp_value = tstate->exc_value;
16814 tmp_tb = tstate->exc_traceback;
16815 tstate->exc_type = type;
16816 tstate->exc_value = value;
16817 tstate->exc_traceback = tb;
16818 #endif
16819 Py_XDECREF(tmp_type);
16820 Py_XDECREF(tmp_value);
16821 Py_XDECREF(tmp_tb);
16822 #endif
16823}
16824#endif
16825
16826/* FastTypeChecks (used by PyException_Check) */
16827#if CYTHON_COMPILING_IN_CPYTHON
16828static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
16829 while (a) {
16830 a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
16831 if (a == b)
16832 return 1;
16833 }
16834 return b == &PyBaseObject_Type;
16835}
16836static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
16837 PyObject *mro;
16838 if (a == b) return 1;
16839 mro = a->tp_mro;
16840 if (likely(mro)) {
16841 Py_ssize_t i, n;
16842 n = PyTuple_GET_SIZE(mro);
16843 for (i = 0; i < n; i++) {
16844 if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
16845 return 1;
16846 }
16847 return 0;
16848 }
16849 return __Pyx_InBases(a, b);
16850}
16851static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
16852 PyObject *mro;
16853 if (cls == a || cls == b) return 1;
16854 mro = cls->tp_mro;
16855 if (likely(mro)) {
16856 Py_ssize_t i, n;
16857 n = PyTuple_GET_SIZE(mro);
16858 for (i = 0; i < n; i++) {
16859 PyObject *base = PyTuple_GET_ITEM(mro, i);
16860 if (base == (PyObject *)a || base == (PyObject *)b)
16861 return 1;
16862 }
16863 return 0;
16864 }
16865 return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
16866}
16867#endif
16868
16869/* PyErrFetchRestore (used by GivenExceptionMatches) */
16870#if CYTHON_FAST_THREAD_STATE
16871static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
16872#if PY_VERSION_HEX >= 0x030C00A6
16873 PyObject *tmp_value;
16874 assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
16875 if (value) {
16876 #if CYTHON_COMPILING_IN_CPYTHON
16877 if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
16878 #endif
16879 PyException_SetTraceback(value, tb);
16880 }
16881 tmp_value = tstate->current_exception;
16882 tstate->current_exception = value;
16883 Py_XDECREF(tmp_value);
16884 Py_XDECREF(type);
16885 Py_XDECREF(tb);
16886#else
16887 PyObject *tmp_type, *tmp_value, *tmp_tb;
16888 tmp_type = tstate->curexc_type;
16889 tmp_value = tstate->curexc_value;
16890 tmp_tb = tstate->curexc_traceback;
16891 tstate->curexc_type = type;
16892 tstate->curexc_value = value;
16893 tstate->curexc_traceback = tb;
16894 Py_XDECREF(tmp_type);
16895 Py_XDECREF(tmp_value);
16896 Py_XDECREF(tmp_tb);
16897#endif
16898}
16899static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
16900#if PY_VERSION_HEX >= 0x030C00A6
16901 PyObject* exc_value;
16902 exc_value = tstate->current_exception;
16903 tstate->current_exception = 0;
16904 *value = exc_value;
16905 *type = NULL;
16906 *tb = NULL;
16907 if (exc_value) {
16908 *type = (PyObject*) Py_TYPE(exc_value);
16909 Py_INCREF(*type);
16910 #if CYTHON_COMPILING_IN_CPYTHON
16911 *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
16912 Py_XINCREF(*tb);
16913 #else
16914 *tb = PyException_GetTraceback(exc_value);
16915 #endif
16916 }
16917#else
16918 *type = tstate->curexc_type;
16919 *value = tstate->curexc_value;
16920 *tb = tstate->curexc_traceback;
16921 tstate->curexc_type = 0;
16922 tstate->curexc_value = 0;
16923 tstate->curexc_traceback = 0;
16924#endif
16925}
16926#endif
16927
16928/* GivenExceptionMatches (used by PyErrExceptionMatches) */
16929#if CYTHON_COMPILING_IN_CPYTHON
16930static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
16931 if (exc_type1) {
16932 return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
16933 } else {
16934 return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
16935 }
16936}
16937static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
16938 Py_ssize_t i, n;
16939 assert(PyExceptionClass_Check(exc_type));
16940 n = PyTuple_GET_SIZE(tuple);
16941 for (i=0; i<n; i++) {
16942 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
16943 }
16944 for (i=0; i<n; i++) {
16945 PyObject *t = PyTuple_GET_ITEM(tuple, i);
16946 if (likely(PyExceptionClass_Check(t))) {
16947 if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
16948 } else {
16949 }
16950 }
16951 return 0;
16952}
16953static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
16954 if (likely(err == exc_type)) return 1;
16955 if (likely(PyExceptionClass_Check(err))) {
16956 if (likely(PyExceptionClass_Check(exc_type))) {
16957 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
16958 } else if (likely(PyTuple_Check(exc_type))) {
16959 return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
16960 } else {
16961 }
16962 }
16963 return PyErr_GivenExceptionMatches(err, exc_type);
16964}
16965static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
16966 assert(PyExceptionClass_Check(exc_type1));
16967 assert(PyExceptionClass_Check(exc_type2));
16968 if (likely(err == exc_type1 || err == exc_type2)) return 1;
16969 if (likely(PyExceptionClass_Check(err))) {
16970 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
16971 }
16972 return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
16973}
16974#endif
16975
16976/* PyErrExceptionMatches */
16977#if CYTHON_FAST_THREAD_STATE
16978static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
16979 Py_ssize_t i, n;
16980 n = PyTuple_GET_SIZE(tuple);
16981 for (i=0; i<n; i++) {
16982 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
16983 }
16984 for (i=0; i<n; i++) {
16985 if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
16986 }
16987 return 0;
16988}
16989static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
16990 int result;
16991 PyObject *exc_type;
16992#if PY_VERSION_HEX >= 0x030C00A6
16993 PyObject *current_exception = tstate->current_exception;
16994 if (unlikely(!current_exception)) return 0;
16995 exc_type = (PyObject*) Py_TYPE(current_exception);
16996 if (exc_type == err) return 1;
16997#else
16998 exc_type = tstate->curexc_type;
16999 if (exc_type == err) return 1;
17000 if (unlikely(!exc_type)) return 0;
17001#endif
17002 #if CYTHON_AVOID_BORROWED_REFS
17003 Py_INCREF(exc_type);
17004 #endif
17005 if (unlikely(PyTuple_Check(err))) {
17006 result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
17007 } else {
17008 result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
17009 }
17010 #if CYTHON_AVOID_BORROWED_REFS
17011 Py_DECREF(exc_type);
17012 #endif
17013 return result;
17014}
17015#endif
17016
17017/* GetException */
17018#if CYTHON_FAST_THREAD_STATE
17019static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
17020#else
17021static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
17022#endif
17023{
17024 PyObject *local_type = NULL, *local_value, *local_tb = NULL;
17025#if CYTHON_FAST_THREAD_STATE
17026 PyObject *tmp_type, *tmp_value, *tmp_tb;
17027 #if PY_VERSION_HEX >= 0x030C0000
17028 local_value = tstate->current_exception;
17029 tstate->current_exception = 0;
17030 #else
17031 local_type = tstate->curexc_type;
17032 local_value = tstate->curexc_value;
17033 local_tb = tstate->curexc_traceback;
17034 tstate->curexc_type = 0;
17035 tstate->curexc_value = 0;
17036 tstate->curexc_traceback = 0;
17037 #endif
17038#elif __PYX_LIMITED_VERSION_HEX >= 0x030C0000
17039 local_value = PyErr_GetRaisedException();
17040#else
17041 PyErr_Fetch(&local_type, &local_value, &local_tb);
17042#endif
17043#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
17044 if (likely(local_value)) {
17045 local_type = (PyObject*) Py_TYPE(local_value);
17046 Py_INCREF(local_type);
17047 local_tb = PyException_GetTraceback(local_value);
17048 }
17049#else
17050 PyErr_NormalizeException(&local_type, &local_value, &local_tb);
17051#if CYTHON_FAST_THREAD_STATE
17052 if (unlikely(tstate->curexc_type))
17053#else
17054 if (unlikely(PyErr_Occurred()))
17055#endif
17056 goto bad;
17057 if (local_tb) {
17058 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
17059 goto bad;
17060 }
17061#endif // __PYX_LIMITED_VERSION_HEX >= 0x030C0000
17062 Py_XINCREF(local_tb);
17063 Py_XINCREF(local_type);
17064 Py_XINCREF(local_value);
17065 *type = local_type;
17066 *value = local_value;
17067 *tb = local_tb;
17068#if CYTHON_FAST_THREAD_STATE
17069 #if CYTHON_USE_EXC_INFO_STACK
17070 {
17071 _PyErr_StackItem *exc_info = tstate->exc_info;
17072 #if PY_VERSION_HEX >= 0x030B00a4
17073 tmp_value = exc_info->exc_value;
17074 exc_info->exc_value = local_value;
17075 tmp_type = NULL;
17076 tmp_tb = NULL;
17077 Py_XDECREF(local_type);
17078 Py_XDECREF(local_tb);
17079 #else
17080 tmp_type = exc_info->exc_type;
17081 tmp_value = exc_info->exc_value;
17082 tmp_tb = exc_info->exc_traceback;
17083 exc_info->exc_type = local_type;
17084 exc_info->exc_value = local_value;
17085 exc_info->exc_traceback = local_tb;
17086 #endif
17087 }
17088 #else
17089 tmp_type = tstate->exc_type;
17090 tmp_value = tstate->exc_value;
17091 tmp_tb = tstate->exc_traceback;
17092 tstate->exc_type = local_type;
17093 tstate->exc_value = local_value;
17094 tstate->exc_traceback = local_tb;
17095 #endif
17096 Py_XDECREF(tmp_type);
17097 Py_XDECREF(tmp_value);
17098 Py_XDECREF(tmp_tb);
17099#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
17100 PyErr_SetHandledException(local_value);
17101 Py_XDECREF(local_value);
17102 Py_XDECREF(local_type);
17103 Py_XDECREF(local_tb);
17104#else
17105 PyErr_SetExcInfo(local_type, local_value, local_tb);
17106#endif
17107 return 0;
17108#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
17109bad:
17110 *type = 0;
17111 *value = 0;
17112 *tb = 0;
17113 Py_XDECREF(local_type);
17114 Py_XDECREF(local_value);
17115 Py_XDECREF(local_tb);
17116 return -1;
17117#endif
17118}
17119
17120/* PyObjectCall (used by PyObjectFastCall) */
17121#if CYTHON_COMPILING_IN_CPYTHON
17122static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
17123 PyObject *result;
17124 ternaryfunc call = Py_TYPE(func)->tp_call;
17125 if (unlikely(!call))
17126 return PyObject_Call(func, arg, kw);
17127 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
17128 return NULL;
17129 result = (*call)(func, arg, kw);
17130 Py_LeaveRecursiveCall();
17131 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
17132 PyErr_SetString(
17133 PyExc_SystemError,
17134 "NULL result without error in PyObject_Call");
17135 }
17136 return result;
17137}
17138#endif
17139
17140/* PyObjectCallMethO (used by PyObjectFastCall) */
17141#if CYTHON_COMPILING_IN_CPYTHON
17142static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
17143 PyObject *self, *result;
17144 PyCFunction cfunc;
17145 cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
17146 self = __Pyx_CyOrPyCFunction_GET_SELF(func);
17147 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
17148 return NULL;
17149 result = cfunc(self, arg);
17150 Py_LeaveRecursiveCall();
17151 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
17152 PyErr_SetString(
17153 PyExc_SystemError,
17154 "NULL result without error in PyObject_Call");
17155 }
17156 return result;
17157}
17158#endif
17159
17160/* PyObjectFastCall */
17161#if CYTHON_COMPILING_IN_LIMITED_API
17162static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
17163 PyObject *argstuple;
17164 PyObject *result = 0;
17165 size_t i;
17166 argstuple = PyTuple_New((Py_ssize_t)nargs);
17167 if (unlikely(!argstuple)) return NULL;
17168 for (i = 0; i < nargs; i++) {
17169 Py_INCREF(args[i]);
17170 if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
17171 }
17172 result = __Pyx_PyObject_Call(func, argstuple, kwargs);
17173 bad:
17174 Py_DECREF(argstuple);
17175 return result;
17176}
17177#endif
17178#if CYTHON_VECTORCALL && !(CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY)
17179 #if CYTHON_COMPILING_IN_CPYTHON
17180static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
17181 PyTypeObject *tp = Py_TYPE(callable);
17182 #if defined(__Pyx_CyFunction_USED)
17183 if (__Pyx_CyFunction_CheckExact(callable)) {
17184 return __Pyx_CyFunction_func_vectorcall(callable);
17185 }
17186 #endif
17187 if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
17188 return NULL;
17189 }
17190 assert(PyCallable_Check(callable));
17191 Py_ssize_t offset = tp->tp_vectorcall_offset;
17192 assert(offset > 0);
17193 vectorcallfunc ptr;
17194 memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
17195 return ptr;
17196}
17197 #else
17198 #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
17199 #endif
17200#endif
17201static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwargs) {
17202 Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(nargsf);
17203#if CYTHON_COMPILING_IN_CPYTHON
17204 if (nargs == 0 && kwargs == NULL) {
17205 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
17206 return __Pyx_PyObject_CallMethO(func, NULL);
17207 }
17208 else if (nargs == 1 && kwargs == NULL) {
17209 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
17210 return __Pyx_PyObject_CallMethO(func, args[0]);
17211 }
17212#endif
17213 if (kwargs == NULL) {
17214 #if CYTHON_VECTORCALL
17215 #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
17216 return PyObject_Vectorcall(func, args, nargsf, NULL);
17217 #else
17218 vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
17219 if (f) {
17220 return f(func, args, nargsf, NULL);
17221 }
17222 #endif
17223 #endif
17224 }
17225 if (nargs == 0) {
17226 return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
17227 }
17228 #if CYTHON_COMPILING_IN_LIMITED_API
17229 return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
17230 #elif CYTHON_COMPILING_IN_PYPY
17231 return PyObject_VectorcallDict(func, args, (size_t) nargs, kwargs);
17232 #else
17233 return PyObject_VectorcallDict(func, args, nargsf, kwargs);
17234 #endif
17235}
17236
17237/* RaiseException */
17238static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
17239 PyObject* owned_instance = NULL;
17240 if (tb == Py_None) {
17241 tb = 0;
17242 } else if (tb && !PyTraceBack_Check(tb)) {
17243 PyErr_SetString(PyExc_TypeError,
17244 "raise: arg 3 must be a traceback or None");
17245 goto bad;
17246 }
17247 if (value == Py_None)
17248 value = 0;
17249 if (PyExceptionInstance_Check(type)) {
17250 if (value) {
17251 PyErr_SetString(PyExc_TypeError,
17252 "instance exception may not have a separate value");
17253 goto bad;
17254 }
17255 value = type;
17256 type = (PyObject*) Py_TYPE(value);
17257 } else if (PyExceptionClass_Check(type)) {
17258 PyObject *instance_class = NULL;
17259 if (value && PyExceptionInstance_Check(value)) {
17260 instance_class = (PyObject*) Py_TYPE(value);
17261 if (instance_class != type) {
17262 int is_subclass = PyObject_IsSubclass(instance_class, type);
17263 if (!is_subclass) {
17264 instance_class = NULL;
17265 } else if (unlikely(is_subclass == -1)) {
17266 goto bad;
17267 } else {
17268 type = instance_class;
17269 }
17270 }
17271 }
17272 if (!instance_class) {
17273 PyObject *args;
17274 if (!value)
17275 args = PyTuple_New(0);
17276 else if (PyTuple_Check(value)) {
17277 Py_INCREF(value);
17278 args = value;
17279 } else
17280 args = PyTuple_Pack(1, value);
17281 if (!args)
17282 goto bad;
17283 owned_instance = PyObject_Call(type, args, NULL);
17284 Py_DECREF(args);
17285 if (!owned_instance)
17286 goto bad;
17287 value = owned_instance;
17288 if (!PyExceptionInstance_Check(value)) {
17289 PyErr_Format(PyExc_TypeError,
17290 "calling %R should have returned an instance of "
17291 "BaseException, not %R",
17292 type, Py_TYPE(value));
17293 goto bad;
17294 }
17295 }
17296 } else {
17297 PyErr_SetString(PyExc_TypeError,
17298 "raise: exception class must be a subclass of BaseException");
17299 goto bad;
17300 }
17301 if (cause) {
17302 PyObject *fixed_cause;
17303 if (cause == Py_None) {
17304 fixed_cause = NULL;
17305 } else if (PyExceptionClass_Check(cause)) {
17306 fixed_cause = PyObject_CallObject(cause, NULL);
17307 if (fixed_cause == NULL)
17308 goto bad;
17309 } else if (PyExceptionInstance_Check(cause)) {
17310 fixed_cause = cause;
17311 Py_INCREF(fixed_cause);
17312 } else {
17313 PyErr_SetString(PyExc_TypeError,
17314 "exception causes must derive from "
17315 "BaseException");
17316 goto bad;
17317 }
17318 PyException_SetCause(value, fixed_cause);
17319 }
17320 PyErr_SetObject(type, value);
17321 if (tb) {
17322#if PY_VERSION_HEX >= 0x030C00A6
17323 PyException_SetTraceback(value, tb);
17324#elif CYTHON_FAST_THREAD_STATE
17325 PyThreadState *tstate = __Pyx_PyThreadState_Current;
17326 PyObject* tmp_tb = tstate->curexc_traceback;
17327 if (tb != tmp_tb) {
17328 Py_INCREF(tb);
17329 tstate->curexc_traceback = tb;
17330 Py_XDECREF(tmp_tb);
17331 }
17332#else
17333 PyObject *tmp_type, *tmp_value, *tmp_tb;
17334 PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
17335 Py_INCREF(tb);
17336 PyErr_Restore(tmp_type, tmp_value, tb);
17337 Py_XDECREF(tmp_tb);
17338#endif
17339 }
17340bad:
17341 Py_XDECREF(owned_instance);
17342 return;
17343}
17344
17345/* CopyObjectArray (used by TupleOrListFromArrayImpl) */
17346#if CYTHON_COMPILING_IN_CPYTHON
17347static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
17348 PyObject *v;
17349 Py_ssize_t i;
17350 for (i = 0; i < length; i++) {
17351 v = dest[i] = src[i];
17352 Py_INCREF(v);
17353 }
17354}
17355#endif
17356
17357/* TupleOrListFromArrayImpl (used by TupleFromArray) */
17358#if !(PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API)
17359CYTHON_UNUSED static PyObject *
17360__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) {
17361 if (n <= 0) {
17362 return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
17363 }
17364 PyObject *res = PyTuple_New(n);
17365 if (unlikely(res == NULL)) return NULL;
17366 #if CYTHON_COMPILING_IN_CPYTHON
17367 __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
17368 #else
17369 Py_ssize_t i;
17370 for (i = 0; i < n; i++) {
17371 Py_INCREF(src[i]);
17372 if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
17373 Py_DECREF(res);
17374 return NULL;
17375 }
17376 }
17377 #endif
17378 return res;
17379}
17380#endif
17381
17382/* PyObjectCompare (used by UnicodeEquals) */
17383#ifndef __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
17384#define __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
17385static CYTHON_INLINE int __Pyx_PyObject_CompareStrStrBoolEq(PyObject* s1, PyObject* s2) {
17386 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
17387 int result = PyUnicode_Equal(s1, s2);
17388 #if !CYTHON_COMPILING_IN_CPYTHON
17389 if (unlikely(result == -1)) return -1;
17390 #endif
17391 if (result == 0) goto __pyx_return_false; else goto __pyx_return_true;
17392 #else
17393 int result = PyUnicode_Compare(s1, s2);
17394 if (unlikely((result == -1) && PyErr_Occurred())) return -1;
17395 if (result == 0) goto __pyx_return_true; else goto __pyx_return_false;
17396 #endif
17397__pyx_return_true:
17398 return 1;
17399__pyx_return_false:
17400 return 0;
17401}
17402#endif
17403static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop) {
17404 CYTHON_UNUSED_VAR(pyop);
17405 if (unlikely(op1 == Py_None)) {
17406 if (op2 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
17407 }
17408 if (unlikely(op2 == Py_None)) {
17409 if (op1 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
17410 }
17411
17412 if (likely(op1 != Py_None)) {
17413 if (op1 == op2) goto __pyx_return_true;
17414 if (likely(op2 != Py_None)) {
17415 return __Pyx_PyObject_CompareStrStrBoolEq(op1, op2);
17416 }
17417 goto __pyx_richcmp;
17418 }
17419
17420 if ((0)) goto __pyx_richcmp;
17421 if ((0)) goto __pyx_return_true;
17422 if ((0)) goto __pyx_return_false;
17423__pyx_richcmp:
17424 return __Pyx_PyObject_RichCompareBool(op1, op2, Py_EQ);
17425__pyx_return_true:
17426 return 1;
17427__pyx_return_false:
17428 return 0;
17429}
17430
17431/* fastcall */
17432#if CYTHON_VECTORCALL
17433static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
17434{
17435 Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
17436 #if !CYTHON_ASSUME_SAFE_SIZE
17437 if (unlikely(n == -1)) return NULL;
17438 #endif
17439 for (i = 0; i < n; i++)
17440 {
17441 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
17442 #if !CYTHON_ASSUME_SAFE_MACROS
17443 if (unlikely(!namei)) return NULL;
17444 #endif
17445 if (s == namei) return kwvalues[i];
17446 }
17447 for (i = 0; i < n; i++)
17448 {
17449 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
17450 #if !CYTHON_ASSUME_SAFE_MACROS
17451 if (unlikely(!namei)) return NULL;
17452 #endif
17453 int eq = __Pyx_PyUnicode_Equals(s, namei);
17454 if (unlikely(eq != 0)) {
17455 if (unlikely(eq < 0)) return NULL;
17456 return kwvalues[i];
17457 }
17458 }
17459 return NULL;
17460}
17461#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
17462CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
17463 Py_ssize_t i, nkwargs;
17464 PyObject *dict;
17465#if !CYTHON_ASSUME_SAFE_SIZE
17466 nkwargs = PyTuple_Size(kwnames);
17467 if (unlikely(nkwargs < 0)) return NULL;
17468#else
17469 nkwargs = PyTuple_GET_SIZE(kwnames);
17470#endif
17471 dict = PyDict_New();
17472 if (unlikely(!dict))
17473 return NULL;
17474 for (i=0; i<nkwargs; i++) {
17475#if !CYTHON_ASSUME_SAFE_MACROS
17476 PyObject *key = PyTuple_GetItem(kwnames, i);
17477 if (!key) goto bad;
17478#else
17479 PyObject *key = PyTuple_GET_ITEM(kwnames, i);
17480#endif
17481 if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
17482 goto bad;
17483 }
17484 return dict;
17485bad:
17486 Py_DECREF(dict);
17487 return NULL;
17488}
17489#endif
17490#endif
17491
17492/* PyObjectCallOneArg (used by CallUnboundCMethod0) */
17493static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
17494 PyObject *args[2] = {NULL, arg};
17495 return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
17496}
17497
17498/* IgnoreException (used by UnpackUnboundCMethod_impl) */
17499static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception) {
17500 if (PyErr_GivenExceptionMatches(given_exception ? given_exception : PyErr_Occurred(), ignorable_exception)) {
17501 PyErr_Clear();
17502 return 1;
17503 }
17504 return 0;
17505}
17506
17507/* PyObjectGetAttrStr (used by UnpackUnboundCMethod_impl) */
17508#if CYTHON_USE_TYPE_SLOTS
17509static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
17510 PyTypeObject* tp = Py_TYPE(obj);
17511 if (likely(tp->tp_getattro))
17512 return tp->tp_getattro(obj, attr_name);
17513 return PyObject_GetAttr(obj, attr_name);
17514}
17515#endif
17516
17517/* UnpackUnboundCMethod_impl (used by UnpackUnboundCMethod) */
17518#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
17519static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
17520 PyObject *result;
17521 PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
17522 if (unlikely(!selfless_args)) return NULL;
17523 result = PyObject_Call(method, selfless_args, kwargs);
17524 Py_DECREF(selfless_args);
17525 return result;
17526}
17527#else
17528static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
17529 return PyObject_Vectorcall(method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
17530}
17531#endif
17532static PyMethodDef __Pyx_UnboundCMethod_Def = {
17533 "CythonUnboundCMethod",
17534 __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
17535#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
17536 METH_VARARGS | METH_KEYWORDS,
17537#else
17538 METH_FASTCALL | METH_KEYWORDS,
17539#endif
17540 NULL
17541};
17542static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
17543 PyObject *method, *result=NULL;
17544 method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
17545 if (unlikely(!method))
17546 return -1;
17547 result = method;
17548#if CYTHON_COMPILING_IN_CPYTHON
17549 if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
17550 {
17551 PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
17552 target->func = descr->d_method->ml_meth;
17553 target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
17554 } else
17555#endif
17556#if CYTHON_COMPILING_IN_PYPY
17557#else
17558 if (PyCFunction_Check(method))
17559#endif
17560 {
17561 PyObject *self;
17562 int self_found;
17563#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
17564 self = PyObject_GetAttrString(method, "__self__");
17565 if (!self && !__Pyx_IgnoreException(PyExc_AttributeError)) {
17566 return -1;
17567 }
17568#else
17569 self = PyCFunction_GET_SELF(method);
17570#endif
17571 self_found = (self && self != Py_None);
17572#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
17573 Py_XDECREF(self);
17574#endif
17575 if (self_found) {
17576 PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
17577 if (unlikely(!unbound_method)) return -1;
17578 Py_DECREF(method);
17579 result = unbound_method;
17580 }
17581 }
17582#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
17583 if (unlikely(target->method)) {
17584 Py_DECREF(result);
17585 } else
17586#endif
17587 target->method = result;
17588 return 0;
17589}
17590
17591/* CallUnboundCMethod0 */
17592#if CYTHON_COMPILING_IN_CPYTHON
17593static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
17594 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
17595 if (likely(was_initialized == 2 && cfunc->func)) {
17596 if (likely(cfunc->flag == METH_NOARGS))
17597 return __Pyx_CallCFunction(cfunc, self, NULL);
17598 if (likely(cfunc->flag == METH_FASTCALL))
17599 return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
17600 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
17601 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
17602 if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
17603 return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
17604 if (cfunc->flag == METH_VARARGS)
17605 return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
17606 return __Pyx__CallUnboundCMethod0(cfunc, self);
17607 }
17608#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
17609 else if (unlikely(was_initialized == 1)) {
17610 __Pyx_CachedCFunction tmp_cfunc = {
17611#ifndef __cplusplus
17612 0
17613#endif
17614 };
17615 tmp_cfunc.type = cfunc->type;
17616 tmp_cfunc.method_name = cfunc->method_name;
17617 return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
17618 }
17619#endif
17620 PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
17621 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
17622 return result;
17623}
17624#endif
17625static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
17626 PyObject *result;
17627 if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
17628 result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
17629 return result;
17630}
17631
17632/* py_dict_items (used by OwnedDictNext) */
17633static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
17634 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
17635}
17636
17637/* py_dict_values (used by OwnedDictNext) */
17638static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
17639 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
17640}
17641
17642/* OwnedDictNext (used by ParseKeywordsImpl) */
17643#if CYTHON_AVOID_BORROWED_REFS
17644static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
17645 PyObject *next = NULL;
17646 if (!*ppos) {
17647 if (pvalue) {
17648 PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
17649 if (unlikely(!dictview)) goto bad;
17650 *ppos = PyObject_GetIter(dictview);
17651 Py_DECREF(dictview);
17652 } else {
17653 *ppos = PyObject_GetIter(p);
17654 }
17655 if (unlikely(!*ppos)) goto bad;
17656 }
17657 next = PyIter_Next(*ppos);
17658 if (!next) {
17659 if (PyErr_Occurred()) goto bad;
17660 return 0;
17661 }
17662 if (pkey && pvalue) {
17663 *pkey = __Pyx_PySequence_ITEM(next, 0);
17664 if (unlikely(*pkey)) goto bad;
17665 *pvalue = __Pyx_PySequence_ITEM(next, 1);
17666 if (unlikely(*pvalue)) goto bad;
17667 Py_DECREF(next);
17668 } else if (pkey) {
17669 *pkey = next;
17670 } else {
17671 assert(pvalue);
17672 *pvalue = next;
17673 }
17674 return 1;
17675 bad:
17676 Py_XDECREF(next);
17677#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
17678 PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
17679#else
17680 PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
17681#endif
17682 if (pkey) *pkey = NULL;
17683 if (pvalue) *pvalue = NULL;
17684 return 0;
17685}
17686#else // !CYTHON_AVOID_BORROWED_REFS
17687static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
17688 int result = PyDict_Next(p, ppos, pkey, pvalue);
17689 if (likely(result == 1)) {
17690 if (pkey) Py_INCREF(*pkey);
17691 if (pvalue) Py_INCREF(*pvalue);
17692 }
17693 return result;
17694}
17695#endif
17696
17697/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
17698static void __Pyx_RaiseDoubleKeywordsError(
17699 const char* func_name,
17700 PyObject* kw_name)
17701{
17702 PyErr_Format(PyExc_TypeError,
17703 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
17704}
17705
17706/* CallUnboundCMethod2 */
17707#if CYTHON_COMPILING_IN_CPYTHON
17708static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
17709 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
17710 if (likely(was_initialized == 2 && cfunc->func)) {
17711 PyObject *args[2] = {arg1, arg2};
17712 if (cfunc->flag == METH_FASTCALL) {
17713 return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
17714 }
17715 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
17716 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
17717 }
17718#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
17719 else if (unlikely(was_initialized == 1)) {
17720 __Pyx_CachedCFunction tmp_cfunc = {
17721#ifndef __cplusplus
17722 0
17723#endif
17724 };
17725 tmp_cfunc.type = cfunc->type;
17726 tmp_cfunc.method_name = cfunc->method_name;
17727 return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
17728 }
17729#endif
17730 PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
17731 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
17732 return result;
17733}
17734#endif
17735static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
17736 if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
17737#if CYTHON_COMPILING_IN_CPYTHON
17738 if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
17739 PyObject *result = NULL;
17740 PyObject *args = PyTuple_New(2);
17741 if (unlikely(!args)) return NULL;
17742 Py_INCREF(arg1);
17743 PyTuple_SET_ITEM(args, 0, arg1);
17744 Py_INCREF(arg2);
17745 PyTuple_SET_ITEM(args, 1, arg2);
17746 if (cfunc->flag & METH_KEYWORDS)
17747 result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
17748 else
17749 result = __Pyx_CallCFunction(cfunc, self, args);
17750 Py_DECREF(args);
17751 return result;
17752 }
17753#endif
17754 {
17755 PyObject *args[4] = {NULL, self, arg1, arg2};
17756 return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
17757 }
17758}
17759
17760/* ParseKeywordsImpl (used by ParseKeywords) */
17761static int __Pyx_ValidateDuplicatePosArgs(
17762 PyObject *kwds,
17763 PyObject ** const argnames[],
17764 PyObject ** const *first_kw_arg,
17765 const char* function_name)
17766{
17767 PyObject ** const *name = argnames;
17768 while (name != first_kw_arg) {
17769 PyObject *key = **name;
17770 int found = PyDict_Contains(kwds, key);
17771 if (unlikely(found)) {
17772 if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
17773 goto bad;
17774 }
17775 name++;
17776 }
17777 return 0;
17778bad:
17779 return -1;
17780}
17781#if CYTHON_USE_UNICODE_INTERNALS
17782static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
17783 int kind;
17784 Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
17785 if (len != PyUnicode_GET_LENGTH(s2)) return 0;
17786 kind = PyUnicode_KIND(s1);
17787 if (kind != PyUnicode_KIND(s2)) return 0;
17788 const void *data1 = PyUnicode_DATA(s1);
17789 const void *data2 = PyUnicode_DATA(s2);
17790 return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
17791}
17792#endif
17793static int __Pyx_MatchKeywordArg_str(
17794 PyObject *key,
17795 PyObject ** const argnames[],
17796 PyObject ** const *first_kw_arg,
17797 size_t *index_found,
17798 const char *function_name)
17799{
17800 PyObject ** const *name;
17801 #if CYTHON_USE_UNICODE_INTERNALS
17802 Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
17803 if (unlikely(key_hash == -1)) {
17804 key_hash = PyObject_Hash(key);
17805 if (unlikely(key_hash == -1))
17806 goto bad;
17807 }
17808 #endif
17809 name = first_kw_arg;
17810 while (*name) {
17811 PyObject *name_str = **name;
17812 #if CYTHON_USE_UNICODE_INTERNALS
17813 if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
17814 *index_found = (size_t) (name - argnames);
17815 return 1;
17816 }
17817 #else
17818 #if CYTHON_ASSUME_SAFE_SIZE
17819 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
17820 #endif
17821 {
17822 int cmp = PyUnicode_Compare(name_str, key);
17823 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
17824 if (cmp == 0) {
17825 *index_found = (size_t) (name - argnames);
17826 return 1;
17827 }
17828 }
17829 #endif
17830 name++;
17831 }
17832 name = argnames;
17833 while (name != first_kw_arg) {
17834 PyObject *name_str = **name;
17835 #if CYTHON_USE_UNICODE_INTERNALS
17836 if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
17837 if (__Pyx_UnicodeKeywordsEqual(name_str, key))
17838 goto arg_passed_twice;
17839 }
17840 #else
17841 #if CYTHON_ASSUME_SAFE_SIZE
17842 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
17843 #endif
17844 {
17845 if (unlikely(name_str == key)) goto arg_passed_twice;
17846 int cmp = PyUnicode_Compare(name_str, key);
17847 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
17848 if (cmp == 0) goto arg_passed_twice;
17849 }
17850 #endif
17851 name++;
17852 }
17853 return 0;
17854arg_passed_twice:
17855 __Pyx_RaiseDoubleKeywordsError(function_name, key);
17856 goto bad;
17857bad:
17858 return -1;
17859}
17860static int __Pyx_MatchKeywordArg_nostr(
17861 PyObject *key,
17862 PyObject ** const argnames[],
17863 PyObject ** const *first_kw_arg,
17864 size_t *index_found,
17865 const char *function_name)
17866{
17867 PyObject ** const *name;
17868 if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
17869 name = first_kw_arg;
17870 while (*name) {
17871 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
17872 if (cmp == 1) {
17873 *index_found = (size_t) (name - argnames);
17874 return 1;
17875 }
17876 if (unlikely(cmp == -1)) goto bad;
17877 name++;
17878 }
17879 name = argnames;
17880 while (name != first_kw_arg) {
17881 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
17882 if (unlikely(cmp != 0)) {
17883 if (cmp == 1) goto arg_passed_twice;
17884 else goto bad;
17885 }
17886 name++;
17887 }
17888 return 0;
17889arg_passed_twice:
17890 __Pyx_RaiseDoubleKeywordsError(function_name, key);
17891 goto bad;
17892invalid_keyword_type:
17893 PyErr_Format(PyExc_TypeError,
17894 "%.200s() keywords must be strings", function_name);
17895 goto bad;
17896bad:
17897 return -1;
17898}
17899static CYTHON_INLINE int __Pyx_MatchKeywordArg(
17900 PyObject *key,
17901 PyObject ** const argnames[],
17902 PyObject ** const *first_kw_arg,
17903 size_t *index_found,
17904 const char *function_name)
17905{
17906 return likely(PyUnicode_CheckExact(key)) ?
17907 __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
17908 __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
17909}
17910static void __Pyx_RejectUnknownKeyword(
17911 PyObject *kwds,
17912 PyObject ** const argnames[],
17913 PyObject ** const *first_kw_arg,
17914 const char *function_name)
17915{
17916 #if CYTHON_AVOID_BORROWED_REFS
17917 PyObject *pos = NULL;
17918 #else
17919 Py_ssize_t pos = 0;
17920 #endif
17921 PyObject *key = NULL;
17922 __Pyx_BEGIN_CRITICAL_SECTION(kwds);
17923 #if CYTHON_AVOID_BORROWED_REFS
17924 while (__Pyx_PyDict_NextRef(kwds, &pos, &key, NULL))
17925 #else
17926 (void) __Pyx_PyDict_NextRef;
17927 while (PyDict_Next(kwds, &pos, &key, NULL))
17928 #endif
17929 {
17930 PyObject** const *name = first_kw_arg;
17931 while (*name && (**name != key)) name++;
17932 if (!*name) {
17933 size_t index_found = 0;
17934 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
17935 if (cmp != 1) {
17936 if (cmp == 0) {
17937 PyErr_Format(PyExc_TypeError,
17938 "%s() got an unexpected keyword argument '%U'",
17939 function_name, key);
17940 }
17941 #if CYTHON_AVOID_BORROWED_REFS
17942 Py_DECREF(key);
17943 #endif
17944 break;
17945 }
17946 }
17947 #if CYTHON_AVOID_BORROWED_REFS
17948 Py_DECREF(key);
17949 #endif
17950 }
17951 __Pyx_END_CRITICAL_SECTION();
17952 #if CYTHON_AVOID_BORROWED_REFS
17953 Py_XDECREF(pos);
17954 #endif
17955 assert(PyErr_Occurred());
17956}
17957static int __Pyx_ParseKeywordDict(
17958 PyObject *kwds,
17959 PyObject ** const argnames[],
17960 PyObject *values[],
17961 Py_ssize_t num_pos_args,
17962 Py_ssize_t num_kwargs,
17963 const char* function_name,
17964 int ignore_unknown_kwargs)
17965{
17966 PyObject** const *name;
17967 PyObject** const *first_kw_arg = argnames + num_pos_args;
17968 Py_ssize_t extracted = 0;
17969#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
17970 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
17971#endif
17972 name = first_kw_arg;
17973 while (*name && num_kwargs > extracted) {
17974 PyObject * key = **name;
17975 PyObject *value;
17976 int found = 0;
17977 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
17978 found = PyDict_GetItemRef(kwds, key, &value);
17979 #else
17980 value = PyDict_GetItemWithError(kwds, key);
17981 if (value) {
17982 Py_INCREF(value);
17983 found = 1;
17984 } else {
17985 if (unlikely(PyErr_Occurred())) goto bad;
17986 }
17987 #endif
17988 if (found) {
17989 if (unlikely(found < 0)) goto bad;
17990 values[name-argnames] = value;
17991 extracted++;
17992 }
17993 name++;
17994 }
17995 if (num_kwargs > extracted) {
17996 if (ignore_unknown_kwargs) {
17997 if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
17998 goto bad;
17999 } else {
18000 __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
18001 goto bad;
18002 }
18003 }
18004 return 0;
18005bad:
18006 return -1;
18007}
18008static int __Pyx_ParseKeywordDictToDict(
18009 PyObject *kwds,
18010 PyObject ** const argnames[],
18011 PyObject *kwds2,
18012 PyObject *values[],
18013 Py_ssize_t num_pos_args,
18014 const char* function_name)
18015{
18016 PyObject** const *name;
18017 PyObject** const *first_kw_arg = argnames + num_pos_args;
18018 Py_ssize_t len;
18019#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
18020 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
18021#endif
18022 if (PyDict_Update(kwds2, kwds) < 0) goto bad;
18023 name = first_kw_arg;
18024 while (*name) {
18025 PyObject *key = **name;
18026 PyObject *value;
18027#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
18028 int found = PyDict_Pop(kwds2, key, &value);
18029 if (found) {
18030 if (unlikely(found < 0)) goto bad;
18031 values[name-argnames] = value;
18032 }
18033#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
18034 int found = PyDict_GetItemRef(kwds2, key, &value);
18035 if (found) {
18036 if (unlikely(found < 0)) goto bad;
18037 values[name-argnames] = value;
18038 if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
18039 }
18040#else
18041 #if CYTHON_COMPILING_IN_CPYTHON
18042 value = _PyDict_Pop(kwds2, key, kwds2);
18043 #else
18044 value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
18045 #endif
18046 if (value == kwds2) {
18047 Py_DECREF(value);
18048 } else {
18049 if (unlikely(!value)) goto bad;
18050 values[name-argnames] = value;
18051 }
18052#endif
18053 name++;
18054 }
18055 len = PyDict_Size(kwds2);
18056 if (len > 0) {
18057 return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
18058 } else if (unlikely(len == -1)) {
18059 goto bad;
18060 }
18061 return 0;
18062bad:
18063 return -1;
18064}
18065static int __Pyx_ParseKeywordsTuple(
18066 PyObject *kwds,
18067 PyObject * const *kwvalues,
18068 PyObject ** const argnames[],
18069 PyObject *kwds2,
18070 PyObject *values[],
18071 Py_ssize_t num_pos_args,
18072 Py_ssize_t num_kwargs,
18073 const char* function_name,
18074 int ignore_unknown_kwargs)
18075{
18076 PyObject *key = NULL;
18077 PyObject** const * name;
18078 PyObject** const *first_kw_arg = argnames + num_pos_args;
18079 for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
18080#if CYTHON_AVOID_BORROWED_REFS
18081 key = __Pyx_PySequence_ITEM(kwds, pos);
18082#else
18083 key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
18084#endif
18085#if !CYTHON_ASSUME_SAFE_MACROS
18086 if (unlikely(!key)) goto bad;
18087#endif
18088 name = first_kw_arg;
18089 while (*name && (**name != key)) name++;
18090 if (*name) {
18091 PyObject *value = kwvalues[pos];
18092 values[name-argnames] = __Pyx_NewRef(value);
18093 } else {
18094 size_t index_found = 0;
18095 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
18096 if (cmp == 1) {
18097 PyObject *value = kwvalues[pos];
18098 values[index_found] = __Pyx_NewRef(value);
18099 } else {
18100 if (unlikely(cmp == -1)) goto bad;
18101 if (kwds2) {
18102 PyObject *value = kwvalues[pos];
18103 if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
18104 } else if (!ignore_unknown_kwargs) {
18105 goto invalid_keyword;
18106 }
18107 }
18108 }
18109 #if CYTHON_AVOID_BORROWED_REFS
18110 Py_DECREF(key);
18111 key = NULL;
18112 #endif
18113 }
18114 return 0;
18115invalid_keyword:
18116 PyErr_Format(PyExc_TypeError,
18117 "%s() got an unexpected keyword argument '%U'",
18118 function_name, key);
18119 goto bad;
18120bad:
18121 #if CYTHON_AVOID_BORROWED_REFS
18122 Py_XDECREF(key);
18123 #endif
18124 return -1;
18125}
18126
18127/* ParseKeywords */
18128static int __Pyx_ParseKeywords(
18129 PyObject *kwds,
18130 PyObject * const *kwvalues,
18131 PyObject ** const argnames[],
18132 PyObject *kwds2,
18133 PyObject *values[],
18134 Py_ssize_t num_pos_args,
18135 Py_ssize_t num_kwargs,
18136 const char* function_name,
18137 int ignore_unknown_kwargs)
18138{
18139 if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds)))
18140 return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
18141 else if (kwds2)
18142 return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
18143 else
18144 return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
18145}
18146
18147/* RaiseArgTupleInvalid */
18148static void __Pyx_RaiseArgtupleInvalid(
18149 const char* func_name,
18150 int exact,
18151 Py_ssize_t num_min,
18152 Py_ssize_t num_max,
18153 Py_ssize_t num_found)
18154{
18155 Py_ssize_t num_expected;
18156 const char *more_or_less;
18157 if (num_found < num_min) {
18158 num_expected = num_min;
18159 more_or_less = "at least";
18160 } else {
18161 num_expected = num_max;
18162 more_or_less = "at most";
18163 }
18164 if (exact) {
18165 more_or_less = "exactly";
18166 }
18167 PyErr_Format(PyExc_TypeError,
18168 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
18169 func_name, more_or_less, num_expected,
18170 (num_expected == 1) ? "" : "s", num_found);
18171}
18172
18173/* ArgTypeTestError (used by ArgTypeTest) */
18174static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact)
18175{
18176 __Pyx_TypeName type_name;
18177 __Pyx_TypeName obj_type_name;
18178 PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
18179 int from_annotation_subclass = 0;
18180 if (unlikely(!type)) {
18181 PyErr_SetString(PyExc_SystemError, "Missing type object");
18182 return;
18183 } else if (exact == 2) {
18184 if (__Pyx_TypeCheck(obj, type)) {
18185 from_annotation_subclass = 1;
18186 extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
18187 }
18188 }
18189 type_name = __Pyx_PyType_GetFullyQualifiedName(type);
18190 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18191 if (unlikely(!type_name)) return;
18192 #endif
18193 obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
18194 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18195 if (unlikely(!obj_type_name)) goto obj_type_name_failed;
18196 #endif
18197 PyErr_Format(PyExc_TypeError,
18198 "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME ", got " __Pyx_FMT_TYPENAME ")"
18199#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
18200 "%s%U"
18201#endif
18202 , name, type_name, obj_type_name
18203#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
18204 , (from_annotation_subclass ? ". " : ""), extra_info
18205#endif
18206 );
18207#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
18208 if (exact == 2 && from_annotation_subclass) {
18209 PyObject *res;
18210 PyObject *vargs[2];
18211 vargs[0] = PyErr_GetRaisedException();
18212 vargs[1] = extra_info;
18213 res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
18214 Py_XDECREF(res);
18215 PyErr_SetRaisedException(vargs[0]);
18216 }
18217#endif
18218 __Pyx_DECREF_TypeName(obj_type_name);
18219#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18220obj_type_name_failed:
18221#endif
18222 __Pyx_DECREF_TypeName(type_name);
18223 return;
18224}
18225
18226/* ArgTypeTest */
18227static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) {
18228 if (likely(Py_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None))))
18229 return 1;
18230 if (!exact && likely(type) && likely(__Pyx_TypeCheck(obj, type)))
18231 return 1;
18232 __Pyx_ArgTypeError(obj, type, name, exact);
18233 return 0;
18234}
18235
18236/* TypeImport */
18237#ifndef __PYX_HAVE_RT_ImportType_3_3_0
18238#define __PYX_HAVE_RT_ImportType_3_3_0
18239static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject *module, const char *module_name, const char *class_name,
18240 size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size)
18241{
18242 PyObject *result = 0;
18243 Py_ssize_t basicsize;
18244 Py_ssize_t itemsize;
18245#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
18246 PyObject *py_basicsize;
18247 PyObject *py_itemsize;
18248#endif
18249 result = PyObject_GetAttrString(module, class_name);
18250 if (!result)
18251 goto bad;
18252 if (!PyType_Check(result)) {
18253 PyErr_Format(PyExc_TypeError,
18254 "%.200s.%.200s is not a type object",
18255 module_name, class_name);
18256 goto bad;
18257 }
18258#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
18259 basicsize = ((PyTypeObject *)result)->tp_basicsize;
18260 itemsize = ((PyTypeObject *)result)->tp_itemsize;
18261#else
18262 if (size == 0) {
18263 return (PyTypeObject *)result;
18264 }
18265 py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
18266 if (!py_basicsize)
18267 goto bad;
18268 basicsize = PyLong_AsSsize_t(py_basicsize);
18269 Py_DECREF(py_basicsize);
18270 py_basicsize = 0;
18271 if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
18272 goto bad;
18273 py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
18274 if (!py_itemsize)
18275 goto bad;
18276 itemsize = PyLong_AsSsize_t(py_itemsize);
18277 Py_DECREF(py_itemsize);
18278 py_itemsize = 0;
18279 if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
18280 goto bad;
18281#endif
18282 if (itemsize) {
18283 if (size % alignment) {
18284 alignment = size % alignment;
18285 }
18286 if (itemsize < (Py_ssize_t)alignment)
18287 itemsize = (Py_ssize_t)alignment;
18288 }
18289 if ((size_t)(basicsize + itemsize) < size) {
18290 PyErr_Format(PyExc_ValueError,
18291 "%.200s.%.200s size changed, may indicate binary incompatibility. "
18292 "Expected %zd from C header, got %zd from PyObject",
18293 module_name, class_name, size, basicsize+itemsize);
18294 goto bad;
18295 }
18296 if (check_size == __Pyx_ImportType_CheckSize_Error_3_3_0 &&
18297 ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
18298 PyErr_Format(PyExc_ValueError,
18299 "%.200s.%.200s size changed, may indicate binary incompatibility. "
18300 "Expected %zd from C header, got %zd-%zd from PyObject",
18301 module_name, class_name, size, basicsize, basicsize+itemsize);
18302 goto bad;
18303 }
18304 else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_3_0 && (size_t)basicsize > size) {
18305 if (PyErr_WarnFormat(NULL, 0,
18306 "%.200s.%.200s size changed, may indicate binary incompatibility. "
18307 "Expected %zd from C header, got %zd from PyObject",
18308 module_name, class_name, size, basicsize) < 0) {
18309 goto bad;
18310 }
18311 }
18312 return (PyTypeObject *)result;
18313bad:
18314 Py_XDECREF(result);
18315 return NULL;
18316}
18317#endif
18318
18319/* PyObjectGetAttrStrNoError (used by HasAttr) */
18320#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
18321static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
18322 __Pyx_PyThreadState_declare
18323 __Pyx_PyThreadState_assign
18324 if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
18325 __Pyx_PyErr_Clear();
18326}
18327#endif
18328static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
18329 PyObject *result;
18330#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
18331 (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
18332 return result;
18333#else
18334#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
18335 PyTypeObject* tp = Py_TYPE(obj);
18336 if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
18337 return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
18338 }
18339#endif
18340 result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
18341 if (unlikely(!result)) {
18342 __Pyx_PyObject_GetAttrStr_ClearAttributeError();
18343 }
18344 return result;
18345#endif
18346}
18347
18348/* HasAttr (used by ImportImpl) */
18349#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
18350static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
18351 PyObject *r;
18352 if (unlikely(!PyUnicode_Check(n))) {
18353 PyErr_SetString(PyExc_TypeError,
18354 "hasattr(): attribute name must be string");
18355 return -1;
18356 }
18357 r = __Pyx_PyObject_GetAttrStrNoError(o, n);
18358 if (!r) {
18359 return (unlikely(PyErr_Occurred())) ? -1 : 0;
18360 } else {
18361 Py_DECREF(r);
18362 return 1;
18363 }
18364}
18365#endif
18366
18367/* TupleOrListFromArrayImpl (used by ListFromArray) */
18368CYTHON_UNUSED static PyObject *
18369__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) {
18370 PyObject *res = PyList_New(n);
18371 if (unlikely(res == NULL)) return NULL;
18372 #if CYTHON_COMPILING_IN_CPYTHON
18373 __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
18374 #else
18375 Py_ssize_t i;
18376 for (i = 0; i < n; i++) {
18377 Py_INCREF(src[i]);
18378 if (unlikely(__Pyx_PyList_SET_ITEM(res, i, src[i]) < (0))) {
18379 Py_DECREF(res);
18380 return NULL;
18381 }
18382 }
18383 #endif
18384 return res;
18385}
18386
18387/* ImportImpl (used by Import) */
18388static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
18389 PyObject *imported_module = PyImport_GetModule(qualname);
18390 if (unlikely(!imported_module)) {
18391 *module = NULL;
18392 if (PyErr_Occurred()) {
18393 return -1;
18394 }
18395 return 0;
18396 }
18397 *module = imported_module;
18398 return 1;
18399}
18400static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
18401 PyObject *imported_module;
18402 PyObject *top_level_package_name;
18403 Py_ssize_t i;
18404 int status, module_found;
18405 Py_ssize_t dot_index;
18406 module_found = __Pyx__Import_GetModule(qualname, &imported_module);
18407 if (unlikely(!module_found || module_found == -1)) {
18408 *module = NULL;
18409 return module_found;
18410 }
18411 if (imported_names) {
18412 for (i = 0; i < len_imported_names; i++) {
18413 PyObject *imported_name = imported_names[i];
18414#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
18415 int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
18416#else
18417 int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
18418 if (unlikely(has_imported_attribute == -1)) goto error;
18419#endif
18420 if (!has_imported_attribute) {
18421 goto not_found;
18422 }
18423 }
18424 *module = imported_module;
18425 return 1;
18426 }
18427 dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
18428 if (dot_index == -1) {
18429 *module = imported_module;
18430 return 1;
18431 }
18432 if (unlikely(dot_index == -2)) goto error;
18433 top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
18434 if (unlikely(!top_level_package_name)) goto error;
18435 Py_DECREF(imported_module);
18436 status = __Pyx__Import_GetModule(top_level_package_name, module);
18437 Py_DECREF(top_level_package_name);
18438 return status;
18439error:
18440 Py_DECREF(imported_module);
18441 *module = NULL;
18442 return -1;
18443not_found:
18444 Py_DECREF(imported_module);
18445 *module = NULL;
18446 return 0;
18447}
18448static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
18449 PyObject *module = 0;
18450 PyObject *empty_dict = 0;
18451 PyObject *from_list = 0;
18452 int module_found;
18453 if (!qualname) {
18454 qualname = name;
18455 }
18456 module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
18457 if (likely(module_found == 1)) {
18458 return module;
18459 } else if (unlikely(module_found == -1)) {
18460 return NULL;
18461 }
18462 #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030f00a6
18463 empty_dict = PyFrozenDict_New(NULL);
18464 #else
18465 empty_dict = PyDict_New();
18466 #endif
18467 if (unlikely(!empty_dict))
18468 goto bad;
18469 if (imported_names) {
18470 from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
18471 if (unlikely(!from_list))
18472 goto bad;
18473 }
18474 if (level == -1) {
18475 const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
18476 if (package_sep != (0)) {
18477 module = PyImport_ImportModuleLevelObject(
18478 name, moddict, empty_dict, from_list, 1);
18479 if (unlikely(!module)) {
18480 if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
18481 goto bad;
18482 PyErr_Clear();
18483 }
18484 }
18485 level = 0;
18486 }
18487 if (!module) {
18488 module = PyImport_ImportModuleLevelObject(
18489 name, moddict, empty_dict, from_list, level);
18490 }
18491bad:
18492 Py_XDECREF(from_list);
18493 Py_XDECREF(empty_dict);
18494 return module;
18495}
18496
18497/* Import */
18498static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
18499 return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
18500}
18501
18502/* dict_setdefault (used by FetchCommonType) */
18503static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
18504 PyObject* value;
18505#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
18506 PyDict_SetDefaultRef(d, key, default_value, &value);
18507#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
18508 PyObject *args[] = {d, key, default_value};
18509 value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
18510#elif CYTHON_COMPILING_IN_LIMITED_API
18511 value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
18512#else
18513 value = PyDict_SetDefault(d, key, default_value);
18514 if (unlikely(!value)) return NULL;
18515 Py_INCREF(value);
18516#endif
18517 return value;
18518}
18519
18520/* AddModuleRef (used by FetchSharedCythonModule) */
18521#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3
18522 static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
18523 PyObject *module_dict = PyImport_GetModuleDict();
18524 PyObject *m;
18525 if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
18526 return NULL;
18527 }
18528 if (m != NULL && PyModule_Check(m)) {
18529 return m;
18530 }
18531 Py_XDECREF(m);
18532 m = PyModule_NewObject(name);
18533 if (m == NULL)
18534 return NULL;
18535 if (PyDict_CheckExact(module_dict)) {
18536 PyObject *new_m;
18537 (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
18538 Py_DECREF(m);
18539 return new_m;
18540 } else {
18541 if (PyObject_SetItem(module_dict, name, m) != 0) {
18542 Py_DECREF(m);
18543 return NULL;
18544 }
18545 return m;
18546 }
18547 }
18548 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
18549 if ((PY_VERSION_HEX >= 0x030E0000) && Py_Version >= 0x030E0100) {
18550 return PyImport_AddModuleRef(name);
18551 }
18552 PyObject *py_name = PyUnicode_FromString(name);
18553 if (!py_name) return NULL;
18554 PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
18555 Py_DECREF(py_name);
18556 return module;
18557 }
18558#elif __PYX_LIMITED_VERSION_HEX < 0x030d0000
18559 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
18560 PyObject *module = PyImport_AddModule(name);
18561 Py_XINCREF(module);
18562 return module;
18563 }
18564#endif
18565
18566/* FetchSharedCythonModule (used by FetchCommonType) */
18567static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
18568 return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
18569}
18570
18571/* VerifyCachedType (used by FetchCommonType) */
18572static int __Pyx_VerifyCachedType(PyObject *cached_type,
18573 const char *name,
18574 Py_ssize_t expected_basicsize) {
18575 Py_ssize_t basicsize;
18576 if (!PyType_Check(cached_type)) {
18577 PyErr_Format(PyExc_TypeError,
18578 "Shared Cython type %.200s is not a type object", name);
18579 return -1;
18580 }
18581 if (expected_basicsize == 0) {
18582 return 0; // size is inherited, nothing useful to check
18583 }
18584#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_OPAQUE_OBJECTS
18585 if (expected_basicsize < 0) {
18586 basicsize = PyType_GetTypeDataSize((PyTypeObject*)cached_type);
18587 } else
18588#endif
18589 {
18590 #if CYTHON_COMPILING_IN_LIMITED_API
18591 PyObject *py_basicsize;
18592 py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
18593 if (unlikely(!py_basicsize)) return -1;
18594 basicsize = PyLong_AsSsize_t(py_basicsize);
18595 Py_DECREF(py_basicsize);
18596 py_basicsize = NULL;
18597 if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
18598 #else
18599 basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
18600 #endif
18601 }
18602 if ((expected_basicsize >= 0) ?
18603 (basicsize != expected_basicsize) :
18604 (basicsize < -expected_basicsize)) {
18605 PyErr_Format(PyExc_TypeError,
18606 "Shared Cython type %.200s has the wrong size, try recompiling",
18607 name);
18608 return -1;
18609 }
18610 return 0;
18611}
18612
18613/* FetchCommonType (used by CommonTypesMetaclass) */
18614#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
18615static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
18616 PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
18617 if (result && metaclass) {
18618 PyObject *old_tp = (PyObject*)Py_TYPE(result);
18619 Py_INCREF((PyObject*)metaclass);
18620 Py_SET_TYPE(result, metaclass);
18621 Py_DECREF(old_tp);
18622 PyType_Modified((PyTypeObject*)result);
18623 }
18624 return result;
18625}
18626#else
18627#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
18628#endif
18629static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
18630 PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
18631 int get_item_ref_result;
18632 const char* object_name = strrchr(spec->name, '.');
18633 object_name = object_name ? object_name+1 : spec->name;
18634 py_object_name = PyUnicode_FromString(object_name);
18635 if (!py_object_name) return NULL;
18636 abi_module = __Pyx_FetchSharedCythonABIModule();
18637 if (!abi_module) goto done;
18638 abi_module_dict = PyModule_GetDict(abi_module);
18639 if (!abi_module_dict) goto done;
18640 get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
18641 if (get_item_ref_result == 1) {
18642 if (__Pyx_VerifyCachedType(
18643 cached_type,
18644 object_name,
18645 spec->basicsize) < 0) {
18646 goto bad;
18647 }
18648 goto done;
18649 } else if (unlikely(get_item_ref_result == -1)) {
18650 goto bad;
18651 }
18652 cached_type = __Pyx_PyType_FromMetaclass(
18653 metaclass,
18654 CYTHON_USE_MODULE_STATE ? module : abi_module,
18655 spec, bases);
18656 if (unlikely(!cached_type)) goto bad;
18657 new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
18658 if (unlikely(new_cached_type != cached_type)) {
18659 if (unlikely(!new_cached_type)) goto bad;
18660 Py_DECREF(cached_type);
18661 cached_type = new_cached_type;
18662 if (__Pyx_VerifyCachedType(
18663 cached_type,
18664 object_name,
18665 spec->basicsize) < 0) {
18666 goto bad;
18667 }
18668 goto done;
18669 } else {
18670 Py_DECREF(new_cached_type);
18671 }
18672done:
18673 Py_XDECREF(abi_module);
18674 Py_DECREF(py_object_name);
18675 assert(cached_type == NULL || PyType_Check(cached_type));
18676 return (PyTypeObject *) cached_type;
18677bad:
18678 Py_XDECREF(cached_type);
18679 cached_type = NULL;
18680 goto done;
18681}
18682
18683/* CommonTypesMetaclass (used by CythonFunctionShared) */
18684static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
18685 return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
18686}
18687#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
18688static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
18689 PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
18690 return NULL;
18691}
18692static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
18693 PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
18694 return -1;
18695}
18696#endif
18697static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
18698 {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
18699 {0, 0, 0, 0, 0}
18700};
18701static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
18702 {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
18703 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
18704 {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
18705 {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
18706 {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
18707 #endif
18708 {0, 0}
18709};
18710static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
18711 __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
18712 0,
18713 0,
18714 Py_TPFLAGS_IMMUTABLETYPE |
18715 Py_TPFLAGS_DISALLOW_INSTANTIATION |
18716 Py_TPFLAGS_DEFAULT,
18717 __pyx_CommonTypesMetaclass_slots
18718};
18719static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
18720 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
18721 PyObject *bases = PyTuple_Pack(1, &PyType_Type);
18722 if (unlikely(!bases)) {
18723 return -1;
18724 }
18725 mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
18726 Py_DECREF(bases);
18727 if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
18728 return -1;
18729 }
18730 return 0;
18731}
18732
18733/* CythonFunctionPerModule (used by CythonFunctionShared) */
18734#if CYTHON_COMPILING_IN_LIMITED_API
18735static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
18736 if (__Pyx_CyFunction_Check(func)) {
18737 return __Pyx_as_CyFunctionObject(func)->func_methoddef->ml_meth == (PyCFunction) cfunc;
18738 } else if (PyCFunction_Check(func)) {
18739 return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
18740 }
18741 return 0;
18742}
18743static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
18744 if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
18745 int result;
18746 PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);
18747 if (unlikely(!newFunc)) {
18748 PyErr_Clear(); // It's only an optimization, so don't throw an error
18749 return 0;
18750 }
18751 result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
18752 Py_DECREF(newFunc);
18753 return result;
18754 }
18755 return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
18756}
18757#else
18758static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
18759 if (PyMethod_Check(func)) {
18760 func = PyMethod_GET_FUNCTION(func);
18761 }
18762 return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
18763}
18764#endif
18765static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
18766#if CYTHON_COMPILING_IN_LIMITED_API
18767 __Pyx_Py_XDECREF_SET(
18768 __Pyx__CyFunction_GetClassObj(f),
18769 ((classobj) ? __Pyx_NewRef(classobj) : NULL));
18770#else
18771 __Pyx_Py_XDECREF_SET(
18772 ((PyCMethodObject *) (f))->mm_class,
18773 (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
18774#endif
18775}
18776static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
18777 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
18778 m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
18779 if (unlikely(!m->defaults))
18780 return NULL;
18781 return m->defaults;
18782}
18783static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
18784 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
18785 m->defaults_tuple = tuple;
18786 Py_INCREF(tuple);
18787}
18788static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
18789 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
18790 m->defaults_kwdict = dict;
18791 Py_INCREF(dict);
18792}
18793static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
18794 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
18795 m->func_annotations = dict;
18796 Py_INCREF(dict);
18797}
18798
18799/* CallTypeTraverse (used by CythonFunctionShared) */
18800#if !CYTHON_USE_TYPE_SPECS
18801#else
18802static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
18803 if (!always_call) {
18804 PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
18805 unsigned long flags = PyType_GetFlags(base);
18806 if (flags & Py_TPFLAGS_HEAPTYPE) {
18807 return 0;
18808 }
18809 }
18810 Py_VISIT((PyObject*)Py_TYPE(o));
18811 return 0;
18812}
18813#endif
18814
18815/* PyMethodNew (used by CythonFunctionShared) */
18816#if CYTHON_COMPILING_IN_LIMITED_API
18817static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
18818 PyObject *result;
18819 CYTHON_UNUSED_VAR(typ);
18820 if (!self)
18821 return __Pyx_NewRef(func);
18822 #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
18823 {
18824 PyObject *args[] = {func, self};
18825 result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
18826 }
18827 #else
18828 result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
18829 #endif
18830 return result;
18831}
18832#else
18833static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
18834 CYTHON_UNUSED_VAR(typ);
18835 if (!self)
18836 return __Pyx_NewRef(func);
18837 return PyMethod_New(func, self);
18838}
18839#endif
18840
18841/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
18842#if CYTHON_VECTORCALL
18843static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
18844{
18845 PyObject *res = NULL;
18846 PyObject *kwnames;
18847 PyObject **newargs;
18848 PyObject **kwvalues;
18849 Py_ssize_t i;
18850 #if CYTHON_AVOID_BORROWED_REFS
18851 PyObject *pos;
18852 #else
18853 Py_ssize_t pos;
18854 #endif
18855 size_t j;
18856 PyObject *key, *value;
18857 unsigned long keys_are_strings;
18858 #if !CYTHON_ASSUME_SAFE_SIZE
18859 Py_ssize_t nkw = PyDict_Size(kw);
18860 if (unlikely(nkw == -1)) return NULL;
18861 #else
18862 Py_ssize_t nkw = PyDict_GET_SIZE(kw);
18863 #endif
18864 newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
18865 if (unlikely(newargs == NULL)) {
18866 PyErr_NoMemory();
18867 return NULL;
18868 }
18869 for (j = 0; j < nargs; j++) newargs[j] = args[j];
18870 kwnames = PyTuple_New(nkw);
18871 if (unlikely(kwnames == NULL)) {
18872 PyMem_Free(newargs);
18873 return NULL;
18874 }
18875 kwvalues = newargs + nargs;
18876 pos = 0;
18877 i = 0;
18878 keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
18879 while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
18880 keys_are_strings &=
18881 #if CYTHON_COMPILING_IN_LIMITED_API
18882 PyType_GetFlags(Py_TYPE(key));
18883 #else
18884 Py_TYPE(key)->tp_flags;
18885 #endif
18886 #if !CYTHON_ASSUME_SAFE_MACROS
18887 if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
18888 #else
18889 PyTuple_SET_ITEM(kwnames, i, key);
18890 #endif
18891 kwvalues[i] = value;
18892 i++;
18893 }
18894 if (unlikely(!keys_are_strings)) {
18895 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
18896 goto cleanup;
18897 }
18898 res = vc(func, newargs, nargs, kwnames);
18899cleanup:
18900 #if CYTHON_AVOID_BORROWED_REFS
18901 Py_DECREF(pos);
18902 #endif
18903 Py_DECREF(kwnames);
18904 for (i = 0; i < nkw; i++)
18905 Py_DECREF(kwvalues[i]);
18906 PyMem_Free(newargs);
18907 return res;
18908}
18909static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
18910{
18911 Py_ssize_t kw_size =
18912 likely(kw == NULL) ?
18913 0 :
18914#if !CYTHON_ASSUME_SAFE_SIZE
18915 PyDict_Size(kw);
18916#else
18917 PyDict_GET_SIZE(kw);
18918#endif
18919 if (kw_size == 0) {
18920 return vc(func, args, nargs, NULL);
18921 }
18922#if !CYTHON_ASSUME_SAFE_SIZE
18923 else if (unlikely(kw_size == -1)) {
18924 return NULL;
18925 }
18926#endif
18927 return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
18928}
18929#endif
18930
18931/* CythonFunctionShared (used by CythonFunction) */
18932static PyObject *
18933__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
18934{
18935 if (unlikely(op->func_doc == NULL)) {
18936#if CYTHON_COMPILING_IN_LIMITED_API
18937 const char *doc = op->func_methoddef->ml_doc;
18938#else
18939 const char *doc = ((PyCFunctionObject*)op)->m_ml->ml_doc;
18940#endif
18941 if (doc) {
18942 op->func_doc = PyUnicode_FromString(doc);
18943 if (unlikely(op->func_doc == NULL))
18944 return NULL;
18945 } else {
18946 Py_INCREF(Py_None);
18947 return Py_None;
18948 }
18949 }
18950 Py_INCREF(op->func_doc);
18951 return op->func_doc;
18952}
18953static PyObject *
18954__Pyx_CyFunction_get_doc(PyObject *op_in, void *closure) {
18955 PyObject *result;
18956 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
18957 CYTHON_UNUSED_VAR(closure);
18958 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
18959 result = __Pyx_CyFunction_get_doc_locked(op);
18960 __Pyx_END_CRITICAL_SECTION();
18961 return result;
18962}
18963static int
18964__Pyx_CyFunction_set_doc(PyObject *op_in, PyObject *value, void *context)
18965{
18966 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
18967 CYTHON_UNUSED_VAR(context);
18968 if (value == NULL) {
18969 value = Py_None;
18970 }
18971 Py_INCREF(value);
18972 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
18973 __Pyx_Py_XDECREF_SET(op->func_doc, value);
18974 __Pyx_END_CRITICAL_SECTION();
18975 return 0;
18976}
18977static PyObject *
18978__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
18979{
18980 if (unlikely(op->func_name == NULL)) {
18981#if CYTHON_COMPILING_IN_LIMITED_API
18982 const char *name = op->func_methoddef->ml_name;
18983#else
18984 const char *name = ((PyCFunctionObject*)op)->m_ml->ml_name;
18985#endif
18986 op->func_name = PyUnicode_InternFromString(name);
18987 if (unlikely(op->func_name == NULL))
18988 return NULL;
18989 }
18990 Py_INCREF(op->func_name);
18991 return op->func_name;
18992}
18993static PyObject *
18994__Pyx_CyFunction_get_name(PyObject *op, void *context)
18995{
18996 PyObject *result = NULL;
18997 CYTHON_UNUSED_VAR(context);
18998 __Pyx_BEGIN_CRITICAL_SECTION(op);
18999 result = __Pyx_CyFunction_get_name_locked(__Pyx_as_CyFunctionObject(op));
19000 __Pyx_END_CRITICAL_SECTION();
19001 return result;
19002}
19003static int
19004__Pyx_CyFunction_set_name(PyObject *op_in, PyObject *value, void *context)
19005{
19006 CYTHON_UNUSED_VAR(context);
19007 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
19008 PyErr_SetString(PyExc_TypeError,
19009 "__name__ must be set to a string object");
19010 return -1;
19011 }
19012 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19013 Py_INCREF(value);
19014 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19015 __Pyx_Py_XDECREF_SET(op->func_name, value);
19016 __Pyx_END_CRITICAL_SECTION();
19017 return 0;
19018}
19019static PyObject *
19020__Pyx_CyFunction_get_qualname(PyObject *op_in, void *context)
19021{
19022 CYTHON_UNUSED_VAR(context);
19023 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19024 PyObject *result;
19025 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19026 Py_INCREF(op->func_qualname);
19027 result = op->func_qualname;
19028 __Pyx_END_CRITICAL_SECTION();
19029 return result;
19030}
19031static int
19032__Pyx_CyFunction_set_qualname(PyObject *op_in, PyObject *value, void *context)
19033{
19034 CYTHON_UNUSED_VAR(context);
19035 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
19036 PyErr_SetString(PyExc_TypeError,
19037 "__qualname__ must be set to a string object");
19038 return -1;
19039 }
19040 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19041 Py_INCREF(value);
19042 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19043 __Pyx_Py_XDECREF_SET(op->func_qualname, value);
19044 __Pyx_END_CRITICAL_SECTION();
19045 return 0;
19046}
19047#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
19048static PyObject *
19049__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
19050{
19051 CYTHON_UNUSED_VAR(context);
19052 if (unlikely(op->func_dict == NULL)) {
19053 op->func_dict = PyDict_New();
19054 if (unlikely(op->func_dict == NULL))
19055 return NULL;
19056 }
19057 Py_INCREF(op->func_dict);
19058 return op->func_dict;
19059}
19060#endif
19061static PyObject *
19062__Pyx_CyFunction_get_globals(PyObject *op_in, void *context)
19063{
19064 CYTHON_UNUSED_VAR(context);
19065 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19066 Py_INCREF(op->func_globals);
19067 return op->func_globals;
19068}
19069static PyObject *
19070__Pyx_CyFunction_get_closure(PyObject *op, void *context)
19071{
19072 CYTHON_UNUSED_VAR(op);
19073 CYTHON_UNUSED_VAR(context);
19074 Py_INCREF(Py_None);
19075 return Py_None;
19076}
19077static PyObject *
19078__Pyx_CyFunction_get_code(PyObject *op_in, void *context)
19079{
19080 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19081 PyObject* result = (op->func_code) ? op->func_code : Py_None;
19082 CYTHON_UNUSED_VAR(context);
19083 Py_INCREF(result);
19084 return result;
19085}
19086static int
19087__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op, PyObject *op_obj) {
19088 int result = 0;
19089 PyObject *res = op->defaults_getter(op_obj);
19090 if (unlikely(!res))
19091 return -1;
19092 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
19093 op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
19094 Py_INCREF(op->defaults_tuple);
19095 op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
19096 Py_INCREF(op->defaults_kwdict);
19097 #else
19098 op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
19099 if (unlikely(!op->defaults_tuple)) result = -1;
19100 else {
19101 op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
19102 if (unlikely(!op->defaults_kwdict)) result = -1;
19103 }
19104 #endif
19105 Py_DECREF(res);
19106 return result;
19107}
19108static int
19109__Pyx_CyFunction_set_defaults(PyObject *op_in, PyObject* value, void *context) {
19110 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19111 CYTHON_UNUSED_VAR(context);
19112 if (!value) {
19113 value = Py_None;
19114 } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
19115 PyErr_SetString(PyExc_TypeError,
19116 "__defaults__ must be set to a tuple object");
19117 return -1;
19118 }
19119 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
19120 "currently affect the values used in function calls", 1);
19121 Py_INCREF(value);
19122 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19123 __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
19124 __Pyx_END_CRITICAL_SECTION();
19125 return 0;
19126}
19127static PyObject *
19128__Pyx_CyFunction_get_defaults_locked(PyObject *op_in) {
19129 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19130 PyObject* result = op->defaults_tuple;
19131 if (unlikely(!result)) {
19132 if (op->defaults_getter) {
19133 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
19134 result = op->defaults_tuple;
19135 } else {
19136 result = Py_None;
19137 }
19138 }
19139 Py_INCREF(result);
19140 return result;
19141}
19142static PyObject *
19143__Pyx_CyFunction_get_defaults(PyObject *op, void *context) {
19144 PyObject* result = NULL;
19145 CYTHON_UNUSED_VAR(context);
19146 __Pyx_BEGIN_CRITICAL_SECTION(op);
19147 result = __Pyx_CyFunction_get_defaults_locked(op);
19148 __Pyx_END_CRITICAL_SECTION();
19149 return result;
19150}
19151static int
19152__Pyx_CyFunction_set_kwdefaults(PyObject *op_in, PyObject* value, void *context) {
19153 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19154 CYTHON_UNUSED_VAR(context);
19155 if (!value) {
19156 value = Py_None;
19157 } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
19158 PyErr_SetString(PyExc_TypeError,
19159 "__kwdefaults__ must be set to a dict object");
19160 return -1;
19161 }
19162 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
19163 "currently affect the values used in function calls", 1);
19164 Py_INCREF(value);
19165 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19166 __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
19167 __Pyx_END_CRITICAL_SECTION();
19168 return 0;
19169}
19170static PyObject *
19171__Pyx_CyFunction_get_kwdefaults_locked(PyObject *op_in) {
19172 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19173 PyObject* result = op->defaults_kwdict;
19174 if (unlikely(!result)) {
19175 if (op->defaults_getter) {
19176 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
19177 result = op->defaults_kwdict;
19178 } else {
19179 result = Py_None;
19180 }
19181 }
19182 Py_INCREF(result);
19183 return result;
19184}
19185static PyObject *
19186__Pyx_CyFunction_get_kwdefaults(PyObject *op, void *context) {
19187 PyObject* result;
19188 CYTHON_UNUSED_VAR(context);
19189 __Pyx_BEGIN_CRITICAL_SECTION(op);
19190 result = __Pyx_CyFunction_get_kwdefaults_locked(op);
19191 __Pyx_END_CRITICAL_SECTION();
19192 return result;
19193}
19194static int __Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value);
19195static int
19196__Pyx_CyFunction_set_annotations(PyObject *op_in, PyObject* value, void *context) {
19197 CYTHON_UNUSED_VAR(context);
19198 if (!value || value == Py_None) {
19199 value = NULL;
19200 } else if (unlikely(!PyDict_Check(value))) {
19201 PyErr_SetString(PyExc_TypeError,
19202 "__annotations__ must be set to a dict object");
19203 return -1;
19204 }
19205 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19206 Py_XINCREF(value);
19207 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19208 __Pyx_Py_XDECREF_SET(op->func_annotations, value);
19209 __Pyx_END_CRITICAL_SECTION();
19210 if (unlikely(__Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, Py_None) < 0)) return -1;
19211 return 0;
19212}
19213static int
19214__Pyx_CyFunction_get_dict_if_exists(PyObject *op_in, PyObject **dict) {
19215 /* Return 1 if the function dict exists, 0 otherwise. This cannot fail:
19216 * _PyObject_GetDictPtr() may clear errors internally, but never reports them. */
19217#if CYTHON_COMPILING_IN_PYPY
19218 *dict = PyObject_GenericGetDict(op_in, NULL);
19219#elif CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030C0000
19220 *dict = __Pyx_as_CyFunctionObject(op_in)->func_dict;
19221#else
19222 PyObject **dictptr = _PyObject_GetDictPtr(op_in);
19223 *dict = likely(dictptr) ? *dictptr : NULL;
19224#endif
19225 return *dict ? 1 : 0;
19226}
19227static int
19228__Pyx_CyFunction_get_annotate_from_dict_if_exists(PyObject *op_in, PyObject **annotate) {
19229 PyObject *dict;
19230 int dict_found;
19231 *annotate = NULL;
19232 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
19233 if (!dict_found) return 0;
19234 return __Pyx_PyDict_GetItemRef(dict, __pyx_mstate_global->__pyx_n_u_annotate, annotate);
19235}
19236static int
19237__Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value) {
19238 PyObject *dict;
19239 int dict_found;
19240 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
19241 if (!dict_found) return 0;
19242 if (value) {
19243 return PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
19244 } else {
19245#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
19246 return PyDict_Pop(dict, __pyx_mstate_global->__pyx_n_u_annotate, NULL);
19247#else
19248 int result = PyDict_Contains(dict, __pyx_mstate_global->__pyx_n_u_annotate);
19249 if (result == 1) {
19250 result = PyDict_DelItem(dict, __pyx_mstate_global->__pyx_n_u_annotate);
19251 }
19252 return result;
19253#endif
19254 }
19255}
19256static int
19257__Pyx_CyFunction_set_annotate_in_dict(PyObject *op_in, PyObject *value) {
19258 PyObject *dict;
19259 int result;
19260#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
19261 dict = __Pyx_CyFunction_get_dict(__Pyx_as_CyFunctionObject(op_in), NULL);
19262#else
19263 dict = PyObject_GenericGetDict(op_in, NULL);
19264#endif
19265 if (unlikely(!dict)) return -1;
19266 result = PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
19267 Py_DECREF(dict);
19268 return result;
19269}
19270static PyObject *
19271__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
19272 PyObject* result = op->func_annotations;
19273 if (unlikely(!result)) {
19274 result = PyDict_New();
19275 if (unlikely(!result)) return NULL;
19276 op->func_annotations = result;
19277 }
19278 Py_INCREF(result);
19279 return result;
19280}
19281static PyObject *
19282__Pyx_CyFunction_get_annotations(PyObject *op_in, void *context) {
19283 PyObject *annotate = NULL;
19284 PyObject *result = NULL;
19285 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19286 CYTHON_UNUSED_VAR(context);
19287 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19288 result = __Pyx_XNewRef(op->func_annotations);
19289 __Pyx_END_CRITICAL_SECTION();
19290 if (result) return result;
19291 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
19292 if (!annotate || annotate == Py_None) {
19293 Py_XDECREF(annotate);
19294 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19295 result = __Pyx_CyFunction_get_annotations_locked(op);
19296 __Pyx_END_CRITICAL_SECTION();
19297 return result;
19298 }
19299 PyObject *format = PyLong_FromLong(1L); // annotationlib.Format.VALUE
19300 if (likely(format)) {
19301 if (!Py_EnterRecursiveCall(" cyfunction __annotations__.__get__")) {
19302 result = __Pyx_PyObject_CallOneArg(annotate, format);
19303 Py_LeaveRecursiveCall();
19304 Py_DECREF(format);
19305 }
19306 }
19307 Py_DECREF(annotate);
19308 if (unlikely(!result)) return NULL;
19309 if (unlikely(!PyDict_Check(result))) {
19310 PyErr_SetString(PyExc_TypeError, "__annotate__ must return a dict");
19311 Py_DECREF(result);
19312 return NULL;
19313 }
19314 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19315 __Pyx_Py_XDECREF_SET(op->func_annotations, __Pyx_NewRef(result));
19316 __Pyx_END_CRITICAL_SECTION();
19317 return result;
19318}
19319static PyObject *__Pyx_CyFunction_annotate_impl(PyObject *self, PyObject *arg) {
19320 CYTHON_UNUSED_VAR(arg);
19321 if (unlikely(!self)) {
19322 PyErr_SetString(PyExc_SystemError, "cython __annotate__ called without 'self' argument");
19323 return NULL;
19324 }
19325 PyObject *result;
19326 if (Py_EnterRecursiveCall(" in cyfunction annotate")) {
19327 return NULL;
19328 }
19329 result = __Pyx_CyFunction_get_annotations(self, NULL);
19330 Py_LeaveRecursiveCall();
19331 return result;
19332}
19333static PyObject *
19334__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context);
19335static int
19336__Pyx_CyFunction_set_annotate(PyObject *op_in, PyObject* value, void *context) {
19337 CYTHON_UNUSED_VAR(context);
19338 if (value == NULL) {
19339 PyErr_SetString(PyExc_TypeError, "__annotate__ cannot be deleted");
19340 return -1;
19341 }
19342 if (unlikely(value != Py_None && !PyCallable_Check(value))) {
19343 PyErr_SetString(PyExc_TypeError, "__annotate__ must be callable or None");
19344 return -1;
19345 }
19346 if (unlikely(__Pyx_TypeCheck(value, &PyCFunction_Type))) {
19347#if !CYTHON_ASSUME_SAFE_MACROS && !CYTHON_COMPILING_IN_PYPY
19348 PyCFunction cfunction = PyCFunction_GetFunction(value);
19349 if (unlikely(!cfunction)) return -1;
19350 PyObject *value_self = PyCFunction_GetSelf(value);
19351 if (unlikely(!value_self && PyErr_Occurred())) return -1;
19352#else
19353 PyCFunction cfunction = PyCFunction_GET_FUNCTION(value);
19354 PyObject *value_self = PyCFunction_GET_SELF(value);
19355#endif
19356 if (cfunction == __Pyx_CyFunction_annotate_impl && value_self == op_in) {
19357 return __Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, NULL);
19358 }
19359 }
19360 if (value != Py_None) {
19361 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19362 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19363 Py_CLEAR(op->func_annotations);
19364 __Pyx_END_CRITICAL_SECTION();
19365 }
19366 return __Pyx_CyFunction_set_annotate_in_dict(op_in, value);
19367}
19368#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
19369static PyObject *
19370__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
19371 int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
19372 if (is_coroutine) {
19373 PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
19374 fromlist = PyList_New(1);
19375 if (unlikely(!fromlist)) return NULL;
19376 Py_INCREF(marker);
19377#if CYTHON_ASSUME_SAFE_MACROS
19378 PyList_SET_ITEM(fromlist, 0, marker);
19379#else
19380 if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
19381 Py_DECREF(fromlist);
19382 return NULL;
19383 }
19384#endif
19385 module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
19386 Py_DECREF(fromlist);
19387 if (unlikely(!module)) {
19388 goto ignore_or_error;
19389 }
19390 is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
19391 Py_DECREF(module);
19392 if (likely(is_coroutine_value)) {
19393 return is_coroutine_value;
19394 }
19395ignore_or_error:
19396 if (!__Pyx_IgnoreException(PyExc_Exception)) {
19397 return NULL;
19398 }
19399 }
19400 return __Pyx_PyBool_FromLong(is_coroutine);
19401}
19402static PyObject *
19403__Pyx_CyFunction_get_is_coroutine(PyObject *op_in, void *context) {
19404 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19405 PyObject *result;
19406 CYTHON_UNUSED_VAR(context);
19407 if (op->func_is_coroutine) {
19408 return __Pyx_NewRef(op->func_is_coroutine);
19409 }
19410 result = __Pyx_CyFunction_get_is_coroutine_value(op);
19411 if (unlikely(!result))
19412 return NULL;
19413 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19414 if (op->func_is_coroutine) {
19415 Py_DECREF(result);
19416 result = __Pyx_NewRef(op->func_is_coroutine);
19417 } else {
19418 op->func_is_coroutine = __Pyx_NewRef(result);
19419 }
19420 __Pyx_END_CRITICAL_SECTION();
19421 return result;
19422}
19423#endif
19424static void __Pyx_CyFunction_raise_argument_count_error(PyObject *func, const char* message, Py_ssize_t size) {
19425#if CYTHON_COMPILING_IN_LIMITED_API
19426 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
19427 if (!py_name) return;
19428 PyErr_Format(PyExc_TypeError,
19429 "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
19430 py_name, message, size);
19431 Py_DECREF(py_name);
19432#else
19433 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
19434 PyErr_Format(PyExc_TypeError,
19435 "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
19436 name, message, size);
19437#endif
19438}
19439static void __Pyx_CyFunction_raise_type_error(PyObject *func, const char* message) {
19440#if CYTHON_COMPILING_IN_LIMITED_API
19441 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
19442 if (!py_name) return;
19443 PyErr_Format(PyExc_TypeError,
19444 "%.200S() %s",
19445 py_name, message);
19446 Py_DECREF(py_name);
19447#else
19448 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
19449 PyErr_Format(PyExc_TypeError,
19450 "%.200s() %s",
19451 name, message);
19452#endif
19453}
19454#if CYTHON_COMPILING_IN_LIMITED_API
19455static PyObject *
19456__Pyx_CyFunction_get_module(PyObject *op_in, void *context) {
19457 CYTHON_UNUSED_VAR(context);
19458 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19459 Py_INCREF(op->func_module);
19460 return op->func_module;
19461}
19462static int
19463__Pyx_CyFunction_set_module(PyObject *op_in, PyObject* value, void *context) {
19464 CYTHON_UNUSED_VAR(context);
19465 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19466 if (value == NULL) {
19467 value = Py_None;
19468 }
19469 Py_INCREF(value);
19470 PyObject *old = op->func_module;
19471 op->func_module = value;
19472 Py_DECREF(old);
19473 return 0;
19474}
19475#endif
19476static PyGetSetDef __pyx_CyFunction_getsets[] = {
19477 {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
19478 {"__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
19479 {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
19480 {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
19481 {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
19482#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
19483 {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
19484 {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
19485#else
19486 {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
19487 {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
19488#endif
19489 {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
19490 {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
19491 {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
19492 {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
19493 {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
19494 {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
19495 {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
19496 {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
19497 {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
19498 {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
19499 {"__annotate__", (getter)__Pyx_CyFunction_get_annotate, (setter)__Pyx_CyFunction_set_annotate, 0, 0},
19500#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
19501 {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
19502#endif
19503#if CYTHON_COMPILING_IN_LIMITED_API
19504 {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
19505#endif
19506 {0, 0, 0, 0, 0}
19507};
19508static PyMemberDef __pyx_CyFunction_members[] = {
19509#if !CYTHON_COMPILING_IN_LIMITED_API
19510 {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
19511#endif
19512#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
19513 {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict),
19514 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
19515#endif
19516#if CYTHON_VECTORCALL
19517#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
19518 {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall),
19519 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
19520#else
19521 {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
19522#endif
19523#if CYTHON_COMPILING_IN_LIMITED_API
19524 {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist),
19525 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
19526#else
19527 {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
19528#endif
19529#endif
19530 {0, 0, 0, 0, 0}
19531};
19532static PyObject *
19533__Pyx_CyFunction_reduce(PyObject *m_in, PyObject *args)
19534{
19535 PyObject *result = NULL;
19536 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
19537 CYTHON_UNUSED_VAR(args);
19538 __Pyx_BEGIN_CRITICAL_SECTION(m_in);
19539 Py_INCREF(m->func_qualname);
19540 result = m->func_qualname;
19541 __Pyx_END_CRITICAL_SECTION();
19542 return result;
19543}
19544static PyMethodDef __pyx_CyFunction_methods[] = {
19545 {"__annotate_cython__", __Pyx_CyFunction_annotate_impl, METH_O,
19546 "Placeholder __annotate__ function to allow 'functools.wraps' to work "
19547 "on Cython functions."},
19548 {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_NOARGS, 0},
19549 {0, 0, 0, 0}
19550};
19551static PyObject *
19552__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context) {
19553 PyObject *annotate = NULL;
19554 CYTHON_UNUSED_VAR(context);
19555 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
19556 if (annotate) return annotate;
19557 PyObject *method = PyCFunction_New(
19558 &__pyx_CyFunction_methods[0],
19559 op_in);
19560 return method;
19561}
19562#if CYTHON_COMPILING_IN_LIMITED_API
19563#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
19564#else
19565#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
19566#endif
19567static PyObject *__Pyx_CyFunction_Init(PyObject *op_in,
19568 PyMethodDef *ml, int flags, PyObject* qualname,
19569 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
19570 __pyx_CyFunctionObject* op = __Pyx_as_CyFunctionObject(op_in);
19571#if !CYTHON_COMPILING_IN_LIMITED_API
19572 PyCFunctionObject *cf = (PyCFunctionObject*) op;
19573#endif
19574 if (unlikely(op == NULL))
19575 return NULL;
19576#if CYTHON_COMPILING_IN_LIMITED_API
19577 op->func_methoddef = ml;
19578 Py_INCREF(module);
19579 op->func_module = module;
19580#endif
19581 op->flags = flags;
19582 __Pyx_CyFunction_weakreflist(op) = NULL;
19583#if !CYTHON_COMPILING_IN_LIMITED_API
19584 cf->m_ml = ml;
19585 cf->m_self = (PyObject *) op;
19586#endif
19587 Py_XINCREF(closure);
19588 op->func_closure = closure;
19589#if !CYTHON_COMPILING_IN_LIMITED_API
19590 Py_XINCREF(module);
19591 cf->m_module = module;
19592#endif
19593#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
19594 op->func_dict = NULL;
19595#endif
19596 op->func_name = NULL;
19597 Py_INCREF(qualname);
19598 op->func_qualname = qualname;
19599 op->func_doc = NULL;
19600#if CYTHON_COMPILING_IN_LIMITED_API
19601 op->func_classobj = NULL;
19602#else
19603 ((PyCMethodObject*)op)->mm_class = NULL;
19604#endif
19605 op->func_globals = globals;
19606 Py_INCREF(op->func_globals);
19607 Py_XINCREF(code);
19608 op->func_code = code;
19609 op->defaults = NULL;
19610 op->defaults_tuple = NULL;
19611 op->defaults_kwdict = NULL;
19612 op->defaults_getter = NULL;
19613 op->func_annotations = NULL;
19614#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
19615 op->func_is_coroutine = NULL;
19616#endif
19617#if CYTHON_VECTORCALL
19618 switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
19619 case METH_NOARGS:
19620 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
19621 break;
19622 case METH_O:
19623 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
19624 break;
19625 case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
19626 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
19627 break;
19628 case METH_FASTCALL | METH_KEYWORDS:
19629 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
19630 break;
19631 case METH_VARARGS | METH_KEYWORDS:
19632 __Pyx_CyFunction_func_vectorcall(op) = NULL;
19633 break;
19634 default:
19635 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
19636 Py_DECREF(op_in);
19637 return NULL;
19638 }
19639#endif
19640 return op_in;
19641}
19642static int __Pyx__CyFunction_clear(__pyx_CyFunctionObject *m)
19643{
19644 Py_CLEAR(m->func_closure);
19645#if CYTHON_COMPILING_IN_LIMITED_API
19646 Py_CLEAR(m->func_module);
19647#else
19648 Py_CLEAR(((PyCFunctionObject*)m)->m_module);
19649#endif
19650#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
19651 Py_CLEAR(m->func_dict);
19652#elif PY_VERSION_HEX < 0x030d0000
19653 _PyObject_ClearManagedDict((PyObject*)m);
19654#else
19655 PyObject_ClearManagedDict((PyObject*)m);
19656#endif
19657 Py_CLEAR(m->func_name);
19658 Py_CLEAR(m->func_qualname);
19659 Py_CLEAR(m->func_doc);
19660 Py_CLEAR(m->func_globals);
19661 Py_CLEAR(m->func_code);
19662#if CYTHON_COMPILING_IN_LIMITED_API
19663 Py_CLEAR(m->func_classobj);
19664#else
19665 {
19666 PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
19667 ((PyCMethodObject *) (m))->mm_class = NULL;
19668 Py_XDECREF(cls);
19669 }
19670#endif
19671 Py_CLEAR(m->defaults_tuple);
19672 Py_CLEAR(m->defaults_kwdict);
19673 Py_CLEAR(m->func_annotations);
19674#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
19675 Py_CLEAR(m->func_is_coroutine);
19676#endif
19677 Py_CLEAR(m->defaults);
19678 return 0;
19679}
19680static int
19681__Pyx_CyFunction_clear(PyObject *m)
19682{
19683 return __Pyx__CyFunction_clear(__Pyx_as_CyFunctionObject(m));
19684}
19685static void __Pyx__CyFunction_dealloc(PyObject *m)
19686{
19687 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(m);
19688 if (__Pyx_CyFunction_weakreflist(cyfunc) != NULL)
19689 PyObject_ClearWeakRefs(m);
19690 __Pyx__CyFunction_clear(cyfunc);
19691 __Pyx_PyHeapTypeObject_GC_Del(m);
19692}
19693static void __Pyx_CyFunction_dealloc(PyObject *m)
19694{
19695 PyObject_GC_UnTrack(m);
19696 __Pyx__CyFunction_dealloc(m);
19697}
19698static int __Pyx_CyFunction_traverse(PyObject *m_in, visitproc visit, void *arg)
19699{
19700 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
19701 {
19702 int e = __Pyx_call_type_traverse(m_in, 1, visit, arg);
19703 if (e) return e;
19704 }
19705 Py_VISIT(m->func_closure);
19706#if CYTHON_COMPILING_IN_LIMITED_API
19707 Py_VISIT(m->func_module);
19708#else
19709 Py_VISIT(((PyCFunctionObject*)m)->m_module);
19710#endif
19711#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
19712 Py_VISIT(m->func_dict);
19713#else
19714 {
19715 int e =
19716#if PY_VERSION_HEX < 0x030d0000
19717 _PyObject_VisitManagedDict
19718#else
19719 PyObject_VisitManagedDict
19720#endif
19721 ((PyObject*)m, visit, arg);
19722 if (e != 0) return e;
19723 }
19724#endif
19725 __Pyx_VISIT_CONST(m->func_name);
19726 __Pyx_VISIT_CONST(m->func_qualname);
19727 Py_VISIT(m->func_doc);
19728 Py_VISIT(m->func_globals);
19729 __Pyx_VISIT_CONST(m->func_code);
19730 Py_VISIT(__Pyx__CyFunction_GetClassObj(m));
19731 Py_VISIT(m->defaults_tuple);
19732 Py_VISIT(m->defaults_kwdict);
19733 Py_VISIT(m->func_annotations);
19734#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
19735 Py_VISIT(m->func_is_coroutine);
19736#endif
19737 Py_VISIT(m->defaults);
19738 return 0;
19739}
19740static PyObject*
19741__Pyx_CyFunction_repr(PyObject *op_in)
19742{
19743 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19744 PyObject *repr;
19745 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19746 repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
19747 op->func_qualname, (void *)op);
19748 __Pyx_END_CRITICAL_SECTION();
19749 return repr;
19750}
19751static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
19752#if CYTHON_COMPILING_IN_LIMITED_API
19753 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19754 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
19755 int flags = cyfunc->func_methoddef->ml_flags;
19756#else
19757 PyCFunctionObject* f = (PyCFunctionObject*)func;
19758 PyCFunction meth = f->m_ml->ml_meth;
19759 int flags = f->m_ml->ml_flags;
19760#endif
19761 Py_ssize_t size;
19762 switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
19763 case METH_VARARGS:
19764 if (likely(kw == NULL || PyDict_Size(kw) == 0))
19765 return (*meth)(self, arg);
19766 break;
19767 case METH_VARARGS | METH_KEYWORDS:
19768 return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
19769 case METH_NOARGS:
19770 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
19771#if CYTHON_ASSUME_SAFE_SIZE
19772 size = PyTuple_GET_SIZE(arg);
19773#else
19774 size = PyTuple_Size(arg);
19775 if (unlikely(size < 0)) return NULL;
19776#endif
19777 if (likely(size == 0))
19778 return (*meth)(self, NULL);
19779 __Pyx_CyFunction_raise_argument_count_error(
19780 func,
19781 "takes no arguments", size);
19782 return NULL;
19783 }
19784 break;
19785 case METH_O:
19786 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
19787#if CYTHON_ASSUME_SAFE_SIZE
19788 size = PyTuple_GET_SIZE(arg);
19789#else
19790 size = PyTuple_Size(arg);
19791 if (unlikely(size < 0)) return NULL;
19792#endif
19793 if (likely(size == 1)) {
19794 PyObject *result, *arg0;
19795 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
19796 arg0 = PyTuple_GET_ITEM(arg, 0);
19797 #else
19798 arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
19799 #endif
19800 result = (*meth)(self, arg0);
19801 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
19802 Py_DECREF(arg0);
19803 #endif
19804 return result;
19805 }
19806 __Pyx_CyFunction_raise_argument_count_error(
19807 func,
19808 "takes exactly one argument", size);
19809 return NULL;
19810 }
19811 break;
19812 default:
19813 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
19814 return NULL;
19815 }
19816 __Pyx_CyFunction_raise_type_error(
19817 func, "takes no keyword arguments");
19818 return NULL;
19819}
19820static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
19821 PyObject *result;
19822 result = __Pyx_CyFunction_CallMethod(func, func, arg, kw);
19823 return result;
19824}
19825static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
19826 PyObject *result;
19827 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19828#if CYTHON_VECTORCALL
19829 __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
19830 if (vc) {
19831#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
19832 return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
19833#else
19834 (void) &__Pyx_PyVectorcall_FastCallDict;
19835 return PyVectorcall_Call(func, args, kw);
19836#endif
19837 }
19838#endif
19839 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
19840 Py_ssize_t argc;
19841 PyObject *new_args;
19842 PyObject *self;
19843#if CYTHON_ASSUME_SAFE_SIZE
19844 argc = PyTuple_GET_SIZE(args);
19845#else
19846 argc = PyTuple_Size(args);
19847 if (unlikely(argc < 0)) return NULL;
19848#endif
19849 new_args = PyTuple_GetSlice(args, 1, argc);
19850 if (unlikely(!new_args))
19851 return NULL;
19852 self = PyTuple_GetItem(args, 0);
19853 if (unlikely(!self)) {
19854 Py_DECREF(new_args);
19855 PyErr_Format(PyExc_TypeError,
19856 "unbound method %.200S() needs an argument",
19857 cyfunc->func_qualname);
19858 return NULL;
19859 }
19860 result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
19861 Py_DECREF(new_args);
19862 } else {
19863 result = __Pyx_CyFunction_Call(func, args, kw);
19864 }
19865 return result;
19866}
19867#if CYTHON_VECTORCALL
19868static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(PyObject *func, __pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
19869{
19870 int ret = 0;
19871 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
19872 if (unlikely(nargs < 1)) {
19873 __Pyx_CyFunction_raise_type_error(
19874 func, "needs an argument");
19875 return -1;
19876 }
19877 ret = 1;
19878 }
19879 if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
19880 __Pyx_CyFunction_raise_type_error(
19881 func, "takes no keyword arguments");
19882 return -1;
19883 }
19884 return ret;
19885}
19886static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
19887{
19888 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19889 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
19890 PyObject *self;
19891#if CYTHON_COMPILING_IN_LIMITED_API
19892 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
19893 if (unlikely(!meth)) return NULL;
19894#else
19895 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
19896#endif
19897 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
19898 case 1:
19899 self = args[0];
19900 args += 1;
19901 nargs -= 1;
19902 break;
19903 case 0:
19904 self = func;
19905 break;
19906 default:
19907 return NULL;
19908 }
19909 if (unlikely(nargs != 0)) {
19910 __Pyx_CyFunction_raise_argument_count_error(
19911 func, "takes no arguments", nargs);
19912 return NULL;
19913 }
19914 return meth(self, NULL);
19915}
19916static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
19917{
19918 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19919 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
19920 PyObject *self;
19921#if CYTHON_COMPILING_IN_LIMITED_API
19922 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
19923 if (unlikely(!meth)) return NULL;
19924#else
19925 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
19926#endif
19927 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
19928 case 1:
19929 self = args[0];
19930 args += 1;
19931 nargs -= 1;
19932 break;
19933 case 0:
19934 self = func;
19935 break;
19936 default:
19937 return NULL;
19938 }
19939 if (unlikely(nargs != 1)) {
19940 __Pyx_CyFunction_raise_argument_count_error(
19941 func, "takes exactly one argument", nargs);
19942 return NULL;
19943 }
19944 return meth(self, args[0]);
19945}
19946static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
19947{
19948 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19949 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
19950 PyObject *self;
19951#if CYTHON_COMPILING_IN_LIMITED_API
19952 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
19953 if (unlikely(!meth)) return NULL;
19954#else
19955 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
19956#endif
19957 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
19958 case 1:
19959 self = args[0];
19960 args += 1;
19961 nargs -= 1;
19962 break;
19963 case 0:
19964 self = func;
19965 break;
19966 default:
19967 return NULL;
19968 }
19969 return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
19970}
19971static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
19972{
19973 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
19974 PyTypeObject *cls = (PyTypeObject *) __Pyx__CyFunction_GetClassObj(cyfunc);
19975 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
19976 PyObject *self;
19977#if CYTHON_COMPILING_IN_LIMITED_API
19978 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
19979 if (unlikely(!meth)) return NULL;
19980#else
19981 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
19982#endif
19983 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
19984 case 1:
19985 self = args[0];
19986 args += 1;
19987 nargs -= 1;
19988 break;
19989 case 0:
19990 self = func;
19991 break;
19992 default:
19993 return NULL;
19994 }
19995 #if PY_VERSION_HEX < 0x030e00A6
19996 size_t nargs_value = (size_t) nargs;
19997 #else
19998 Py_ssize_t nargs_value = nargs;
19999 #endif
20000 return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
20001}
20002#endif
20003static PyType_Slot __pyx_CyFunctionType_slots[] = {
20004 {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
20005 {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
20006 {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
20007 {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
20008 {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
20009 {Py_tp_methods, (void *)__pyx_CyFunction_methods},
20010 {Py_tp_members, (void *)__pyx_CyFunction_members},
20011 {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
20012 {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
20013 {0, 0},
20014};
20015static PyType_Spec __pyx_CyFunctionType_spec = {
20016 __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
20017 __PYX_SHARED_SIZEOF(__pyx_CyFunctionObject),
20018 0,
20019#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
20020 Py_TPFLAGS_METHOD_DESCRIPTOR |
20021#endif
20022#if CYTHON_VECTORCALL
20023#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
20024 Py_TPFLAGS_HAVE_VECTORCALL |
20025#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
20026 _Py_TPFLAGS_HAVE_VECTORCALL |
20027#endif
20028#endif // CYTHON_VECTORCALL
20029#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
20030 Py_TPFLAGS_MANAGED_DICT |
20031#endif
20032 Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
20033 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
20034 __pyx_CyFunctionType_slots
20035};
20036static int __pyx_CyFunction_init(PyObject *module) {
20037 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
20038 mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
20039 mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
20040 if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
20041 return -1;
20042 }
20043 return 0;
20044}
20045
20046/* CythonFunction */
20047static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
20048 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
20049 (void)&__Pyx_Get_CyFunction_Type;
20050 PyObject *op = __Pyx_CyFunction_Init(
20051 PyObject_GC_New(PyObject, __pyx_mstate_global->__pyx_CyFunctionType),
20052 ml, flags, qualname, closure, module, globals, code
20053 );
20054 if (likely(op)) {
20055 PyObject_GC_Track(op);
20056 }
20057 return op;
20058}
20059static PyTypeObject *__Pyx_Get_CyFunction_Type(void) {
20060 PyTypeObject *tp = __pyx_mstate_global->__pyx_CyFunctionType;
20061 Py_INCREF((PyObject*)tp);
20062 return tp;
20063}
20064
20065/* PyDictVersioning (used by CLineInTraceback) */
20066#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
20067static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
20068 PyObject *dict = Py_TYPE(obj)->tp_dict;
20069 return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
20070}
20071static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
20072 PyObject **dictptr = NULL;
20073 Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
20074 if (offset) {
20075#if CYTHON_COMPILING_IN_CPYTHON
20076 dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
20077#else
20078 dictptr = _PyObject_GetDictPtr(obj);
20079#endif
20080 }
20081 return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
20082}
20083static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
20084 PyObject *dict = Py_TYPE(obj)->tp_dict;
20085 if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
20086 return 0;
20087 return obj_dict_version == __Pyx_get_object_dict_version(obj);
20088}
20089#endif
20090
20091/* CLineInTraceback (used by AddTraceback) */
20092#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
20093#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
20094#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
20095#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20096#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
20097#else
20098PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
20099 PyObject **dict_ptr = _PyObject_GetDictPtr(o);
20100 return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
20101}
20102#endif
20103static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
20104 PyObject *use_cline = NULL;
20105 PyObject *ptype, *pvalue, *ptraceback;
20106 PyObject *cython_runtime_dict;
20107 CYTHON_MAYBE_UNUSED_VAR(tstate);
20108 if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
20109 return c_line;
20110 }
20111 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
20112 cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
20113 if (likely(cython_runtime_dict)) {
20114 __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
20115 use_cline, cython_runtime_dict,
20116 __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
20117 }
20118 if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
20119 c_line = 0;
20120 }
20121 Py_XDECREF(use_cline);
20122 Py_XDECREF(cython_runtime_dict);
20123 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
20124 return c_line;
20125}
20126#endif
20127
20128/* CodeObjectCache (used by AddTraceback) */
20129static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
20130 int start = 0, mid = 0, end = count - 1;
20131 if (end >= 0 && code_line > entries[end].code_line) {
20132 return count;
20133 }
20134 while (start < end) {
20135 mid = start + (end - start) / 2;
20136 if (code_line < entries[mid].code_line) {
20137 end = mid;
20138 } else if (code_line > entries[mid].code_line) {
20139 start = mid + 1;
20140 } else {
20141 return mid;
20142 }
20143 }
20144 if (code_line <= entries[mid].code_line) {
20145 return mid;
20146 } else {
20147 return mid + 1;
20148 }
20149}
20150static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
20151 __Pyx_CachedCodeObjectType* code_object;
20152 int pos;
20153 if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
20154 return NULL;
20155 }
20156 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
20157 if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
20158 return NULL;
20159 }
20160 code_object = code_cache->entries[pos].code_object;
20161 Py_INCREF(code_object);
20162 return code_object;
20163}
20164static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
20165#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
20166 (void)__pyx__find_code_object;
20167 return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
20168#else
20169 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
20170#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20171 __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
20172 if (old_count < 0) {
20173 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
20174 return NULL;
20175 }
20176#endif
20177 __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
20178#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20179 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
20180#endif
20181 return result;
20182#endif
20183}
20184static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
20185{
20186 int pos, i;
20187 __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
20188 if (unlikely(!code_line)) {
20189 return;
20190 }
20191 if (unlikely(!entries)) {
20192 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
20193 if (likely(entries)) {
20194 code_cache->entries = entries;
20195 code_cache->max_count = 64;
20196 code_cache->count = 1;
20197 entries[0].code_line = code_line;
20198 entries[0].code_object = code_object;
20199 Py_INCREF(code_object);
20200 }
20201 return;
20202 }
20203 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
20204 if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
20205 __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
20206 entries[pos].code_object = code_object;
20207 Py_INCREF(code_object);
20208 Py_DECREF(tmp);
20209 return;
20210 }
20211 if (code_cache->count == code_cache->max_count) {
20212 int new_max = code_cache->max_count + 64;
20213 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
20214 code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
20215 if (unlikely(!entries)) {
20216 return;
20217 }
20218 code_cache->entries = entries;
20219 code_cache->max_count = new_max;
20220 }
20221 for (i=code_cache->count; i>pos; i--) {
20222 entries[i] = entries[i-1];
20223 }
20224 entries[pos].code_line = code_line;
20225 entries[pos].code_object = code_object;
20226 code_cache->count++;
20227 Py_INCREF(code_object);
20228}
20229static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
20230#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
20231 (void)__pyx__insert_code_object;
20232 return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
20233#else
20234 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
20235#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20236 __pyx_nonatomic_int_type expected = 0;
20237 if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
20238 return;
20239 }
20240#endif
20241 __pyx__insert_code_object(code_cache, code_line, code_object);
20242#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20243 __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
20244#endif
20245#endif
20246}
20247
20248/* AddTraceback */
20249#include "compile.h"
20250#include "frameobject.h"
20251#include "traceback.h"
20252#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
20253 #ifndef Py_BUILD_CORE
20254 #define Py_BUILD_CORE 1
20255 #endif
20256 #include "internal/pycore_frame.h"
20257#endif
20258#if CYTHON_COMPILING_IN_LIMITED_API
20259static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
20260 PyObject *firstlineno, PyObject *name) {
20261 PyObject *replace = NULL;
20262 if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
20263 if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
20264 replace = PyObject_GetAttrString(code, "replace");
20265 if (likely(replace)) {
20266 PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
20267 Py_DECREF(replace);
20268 return result;
20269 }
20270 return NULL;
20271}
20272static void __Pyx_AddTraceback(const char *funcname, int c_line,
20273 int py_line, const char *filename) {
20274 PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
20275 PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
20276 PyObject *exc_type, *exc_value, *exc_traceback;
20277 int success = 0;
20278 if (c_line) {
20279 c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
20280 }
20281 __Pyx_PyErr_FetchException(&exc_type, &exc_value, &exc_traceback);
20282 code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
20283 if (!code_object) {
20284 code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
20285 if (unlikely(!code_object)) goto bad;
20286 py_py_line = PyLong_FromLong(py_line);
20287 if (unlikely(!py_py_line)) goto bad;
20288 if (c_line) {
20289 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
20290 } else {
20291 py_funcname = PyUnicode_FromString(funcname);
20292 }
20293 if (unlikely(!py_funcname)) goto bad;
20294 dict = PyDict_New();
20295 if (unlikely(!dict)) goto bad;
20296 {
20297 PyObject *old_code_object = code_object;
20298 code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
20299 Py_DECREF(old_code_object);
20300 }
20301 if (unlikely(!code_object)) goto bad;
20302 __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
20303 } else {
20304 dict = PyDict_New();
20305 }
20306 getframe = PySys_GetObject("_getframe");
20307 if (unlikely(!getframe)) goto bad;
20308 if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
20309 frame = PyEval_EvalCode(code_object, dict, dict);
20310 if (unlikely(!frame) || frame == Py_None) goto bad;
20311 success = 1;
20312 bad:
20313 __Pyx_PyErr_RestoreException(exc_type, exc_value, exc_traceback);
20314 Py_XDECREF(code_object);
20315 Py_XDECREF(py_py_line);
20316 Py_XDECREF(py_funcname);
20317 Py_XDECREF(dict);
20318 Py_XDECREF(replace);
20319 if (success) {
20320 PyTraceBack_Here(
20321 (struct _frame*)frame);
20322 }
20323 Py_XDECREF(frame);
20324}
20325#else
20326static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
20327 const char *funcname, int c_line,
20328 int py_line, const char *filename) {
20329 PyCodeObject *py_code = NULL;
20330 PyObject *py_funcname = NULL;
20331 if (c_line) {
20332 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
20333 if (!py_funcname) goto bad;
20334 funcname = PyUnicode_AsUTF8(py_funcname);
20335 if (!funcname) goto bad;
20336 }
20337 py_code = PyCode_NewEmpty(filename, funcname, py_line);
20338 Py_XDECREF(py_funcname);
20339 return py_code;
20340bad:
20341 Py_XDECREF(py_funcname);
20342 return NULL;
20343}
20344static void __Pyx_AddTraceback(const char *funcname, int c_line,
20345 int py_line, const char *filename) {
20346 PyCodeObject *py_code = 0;
20347 PyFrameObject *py_frame = 0;
20348 PyThreadState *tstate = __Pyx_PyThreadState_Current;
20349 PyObject *ptype, *pvalue, *ptraceback;
20350 if (c_line) {
20351 c_line = __Pyx_CLineForTraceback(tstate, c_line);
20352 }
20353 py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
20354 if (!py_code) {
20355 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
20356 py_code = __Pyx_CreateCodeObjectForTraceback(
20357 funcname, c_line, py_line, filename);
20358 if (!py_code) {
20359 /* If the code object creation fails, then we should clear the
20360 fetched exception references and propagate the new exception */
20361 Py_XDECREF(ptype);
20362 Py_XDECREF(pvalue);
20363 Py_XDECREF(ptraceback);
20364 goto bad;
20365 }
20366 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
20367 __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
20368 }
20369 py_frame = PyFrame_New(
20370 tstate, /*PyThreadState *tstate,*/
20371 py_code, /*PyCodeObject *code,*/
20372 __pyx_mstate_global->__pyx_d, /*PyObject *globals,*/
20373 0 /*PyObject *locals*/
20374 );
20375 if (!py_frame) goto bad;
20376 __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
20377 PyTraceBack_Here(py_frame);
20378bad:
20379 Py_XDECREF(py_code);
20380 Py_XDECREF(py_frame);
20381}
20382#endif
20383
20384/* CIntFromPyVerify */
20385#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
20386 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
20387#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
20388 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
20389#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
20390 {\
20391 func_type value = func_value;\
20392 if (sizeof(target_type) < sizeof(func_type)) {\
20393 if (unlikely(value != (func_type) (target_type) value)) {\
20394 func_type zero = 0;\
20395 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
20396 return (target_type) -1;\
20397 if (is_unsigned && unlikely(value < zero))\
20398 goto raise_neg_overflow;\
20399 else\
20400 goto raise_overflow;\
20401 }\
20402 }\
20403 return (target_type) value;\
20404 }
20405
20406/* Declarations */
20407#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20408 #ifdef __cplusplus
20409 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
20410 return ::std::complex< float >(x, y);
20411 }
20412 #else
20413 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
20414 return x + y*(__pyx_t_float_complex)_Complex_I;
20415 }
20416 #endif
20417#else
20418 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
20419 __pyx_t_float_complex z;
20420 z.real = x;
20421 z.imag = y;
20422 return z;
20423 }
20424#endif
20425
20426/* Arithmetic */
20427#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20428#else
20429 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20430 return (a.real == b.real) && (a.imag == b.imag);
20431 }
20432 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20433 __pyx_t_float_complex z;
20434 z.real = a.real + b.real;
20435 z.imag = a.imag + b.imag;
20436 return z;
20437 }
20438 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20439 __pyx_t_float_complex z;
20440 z.real = a.real - b.real;
20441 z.imag = a.imag - b.imag;
20442 return z;
20443 }
20444 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20445 __pyx_t_float_complex z;
20446 z.real = a.real * b.real - a.imag * b.imag;
20447 z.imag = a.real * b.imag + a.imag * b.real;
20448 return z;
20449 }
20450 #if 1
20451 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20452 if (b.imag == 0) {
20453 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
20454 } else if (fabsf(b.real) >= fabsf(b.imag)) {
20455 if (b.real == 0 && b.imag == 0) {
20456 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
20457 } else {
20458 float r = b.imag / b.real;
20459 float s = (float)(1.0) / (b.real + b.imag * r);
20460 return __pyx_t_float_complex_from_parts(
20461 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
20462 }
20463 } else {
20464 float r = b.real / b.imag;
20465 float s = (float)(1.0) / (b.imag + b.real * r);
20466 return __pyx_t_float_complex_from_parts(
20467 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
20468 }
20469 }
20470 #else
20471 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20472 if (b.imag == 0) {
20473 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
20474 } else {
20475 float denom = b.real * b.real + b.imag * b.imag;
20476 return __pyx_t_float_complex_from_parts(
20477 (a.real * b.real + a.imag * b.imag) / denom,
20478 (a.imag * b.real - a.real * b.imag) / denom);
20479 }
20480 }
20481 #endif
20482 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
20483 __pyx_t_float_complex z;
20484 z.real = -a.real;
20485 z.imag = -a.imag;
20486 return z;
20487 }
20488 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
20489 return (a.real == 0) && (a.imag == 0);
20490 }
20491 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
20492 __pyx_t_float_complex z;
20493 z.real = a.real;
20494 z.imag = -a.imag;
20495 return z;
20496 }
20497 #if 1
20498 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
20499 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
20500 return sqrtf(z.real*z.real + z.imag*z.imag);
20501 #else
20502 return hypotf(z.real, z.imag);
20503 #endif
20504 }
20505 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
20506 __pyx_t_float_complex z;
20507 float r, lnr, theta, z_r, z_theta;
20508 if (b.imag == 0 && b.real == (int)b.real) {
20509 if (b.real < 0) {
20510 float denom = a.real * a.real + a.imag * a.imag;
20511 a.real = a.real / denom;
20512 a.imag = -a.imag / denom;
20513 b.real = -b.real;
20514 }
20515 switch ((int)b.real) {
20516 case 0:
20517 z.real = 1;
20518 z.imag = 0;
20519 return z;
20520 case 1:
20521 return a;
20522 case 2:
20523 return __Pyx_c_prod_float(a, a);
20524 case 3:
20525 z = __Pyx_c_prod_float(a, a);
20526 return __Pyx_c_prod_float(z, a);
20527 case 4:
20528 z = __Pyx_c_prod_float(a, a);
20529 return __Pyx_c_prod_float(z, z);
20530 }
20531 }
20532 if (a.imag == 0) {
20533 if (a.real == 0) {
20534 return a;
20535 } else if ((b.imag == 0) && (a.real >= 0)) {
20536 z.real = powf(a.real, b.real);
20537 z.imag = 0;
20538 return z;
20539 } else if (a.real > 0) {
20540 r = a.real;
20541 theta = 0;
20542 } else {
20543 r = -a.real;
20544 theta = atan2f(0.0, -1.0);
20545 }
20546 } else {
20547 r = __Pyx_c_abs_float(a);
20548 theta = atan2f(a.imag, a.real);
20549 }
20550 lnr = logf(r);
20551 z_r = expf(lnr * b.real - theta * b.imag);
20552 z_theta = theta * b.real + lnr * b.imag;
20553 z.real = z_r * cosf(z_theta);
20554 z.imag = z_r * sinf(z_theta);
20555 return z;
20556 }
20557 #endif
20558#endif
20559
20560/* Declarations */
20561#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20562 #ifdef __cplusplus
20563 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
20564 return ::std::complex< double >(x, y);
20565 }
20566 #else
20567 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
20568 return x + y*(__pyx_t_double_complex)_Complex_I;
20569 }
20570 #endif
20571#else
20572 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
20573 __pyx_t_double_complex z;
20574 z.real = x;
20575 z.imag = y;
20576 return z;
20577 }
20578#endif
20579
20580/* Arithmetic */
20581#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20582#else
20583 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20584 return (a.real == b.real) && (a.imag == b.imag);
20585 }
20586 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20587 __pyx_t_double_complex z;
20588 z.real = a.real + b.real;
20589 z.imag = a.imag + b.imag;
20590 return z;
20591 }
20592 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20593 __pyx_t_double_complex z;
20594 z.real = a.real - b.real;
20595 z.imag = a.imag - b.imag;
20596 return z;
20597 }
20598 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20599 __pyx_t_double_complex z;
20600 z.real = a.real * b.real - a.imag * b.imag;
20601 z.imag = a.real * b.imag + a.imag * b.real;
20602 return z;
20603 }
20604 #if 1
20605 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20606 if (b.imag == 0) {
20607 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
20608 } else if (fabs(b.real) >= fabs(b.imag)) {
20609 if (b.real == 0 && b.imag == 0) {
20610 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
20611 } else {
20612 double r = b.imag / b.real;
20613 double s = (double)(1.0) / (b.real + b.imag * r);
20614 return __pyx_t_double_complex_from_parts(
20615 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
20616 }
20617 } else {
20618 double r = b.real / b.imag;
20619 double s = (double)(1.0) / (b.imag + b.real * r);
20620 return __pyx_t_double_complex_from_parts(
20621 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
20622 }
20623 }
20624 #else
20625 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20626 if (b.imag == 0) {
20627 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
20628 } else {
20629 double denom = b.real * b.real + b.imag * b.imag;
20630 return __pyx_t_double_complex_from_parts(
20631 (a.real * b.real + a.imag * b.imag) / denom,
20632 (a.imag * b.real - a.real * b.imag) / denom);
20633 }
20634 }
20635 #endif
20636 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
20637 __pyx_t_double_complex z;
20638 z.real = -a.real;
20639 z.imag = -a.imag;
20640 return z;
20641 }
20642 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
20643 return (a.real == 0) && (a.imag == 0);
20644 }
20645 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
20646 __pyx_t_double_complex z;
20647 z.real = a.real;
20648 z.imag = -a.imag;
20649 return z;
20650 }
20651 #if 1
20652 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
20653 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
20654 return sqrt(z.real*z.real + z.imag*z.imag);
20655 #else
20656 return hypot(z.real, z.imag);
20657 #endif
20658 }
20659 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
20660 __pyx_t_double_complex z;
20661 double r, lnr, theta, z_r, z_theta;
20662 if (b.imag == 0 && b.real == (int)b.real) {
20663 if (b.real < 0) {
20664 double denom = a.real * a.real + a.imag * a.imag;
20665 a.real = a.real / denom;
20666 a.imag = -a.imag / denom;
20667 b.real = -b.real;
20668 }
20669 switch ((int)b.real) {
20670 case 0:
20671 z.real = 1;
20672 z.imag = 0;
20673 return z;
20674 case 1:
20675 return a;
20676 case 2:
20677 return __Pyx_c_prod_double(a, a);
20678 case 3:
20679 z = __Pyx_c_prod_double(a, a);
20680 return __Pyx_c_prod_double(z, a);
20681 case 4:
20682 z = __Pyx_c_prod_double(a, a);
20683 return __Pyx_c_prod_double(z, z);
20684 }
20685 }
20686 if (a.imag == 0) {
20687 if (a.real == 0) {
20688 return a;
20689 } else if ((b.imag == 0) && (a.real >= 0)) {
20690 z.real = pow(a.real, b.real);
20691 z.imag = 0;
20692 return z;
20693 } else if (a.real > 0) {
20694 r = a.real;
20695 theta = 0;
20696 } else {
20697 r = -a.real;
20698 theta = atan2(0.0, -1.0);
20699 }
20700 } else {
20701 r = __Pyx_c_abs_double(a);
20702 theta = atan2(a.imag, a.real);
20703 }
20704 lnr = log(r);
20705 z_r = exp(lnr * b.real - theta * b.imag);
20706 z_theta = theta * b.real + lnr * b.imag;
20707 z.real = z_r * cos(z_theta);
20708 z.imag = z_r * sin(z_theta);
20709 return z;
20710 }
20711 #endif
20712#endif
20713
20714/* Declarations */
20715#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20716 #ifdef __cplusplus
20717 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
20718 return ::std::complex< long double >(x, y);
20719 }
20720 #else
20721 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
20722 return x + y*(__pyx_t_long_double_complex)_Complex_I;
20723 }
20724 #endif
20725#else
20726 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
20727 __pyx_t_long_double_complex z;
20728 z.real = x;
20729 z.imag = y;
20730 return z;
20731 }
20732#endif
20733
20734/* Arithmetic */
20735#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
20736#else
20737 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
20738 return (a.real == b.real) && (a.imag == b.imag);
20739 }
20740 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) {
20741 __pyx_t_long_double_complex z;
20742 z.real = a.real + b.real;
20743 z.imag = a.imag + b.imag;
20744 return z;
20745 }
20746 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) {
20747 __pyx_t_long_double_complex z;
20748 z.real = a.real - b.real;
20749 z.imag = a.imag - b.imag;
20750 return z;
20751 }
20752 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) {
20753 __pyx_t_long_double_complex z;
20754 z.real = a.real * b.real - a.imag * b.imag;
20755 z.imag = a.real * b.imag + a.imag * b.real;
20756 return z;
20757 }
20758 #if 1
20759 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) {
20760 if (b.imag == 0) {
20761 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
20762 } else if (fabsl(b.real) >= fabsl(b.imag)) {
20763 if (b.real == 0 && b.imag == 0) {
20764 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
20765 } else {
20766 long double r = b.imag / b.real;
20767 long double s = (long double)(1.0) / (b.real + b.imag * r);
20768 return __pyx_t_long_double_complex_from_parts(
20769 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
20770 }
20771 } else {
20772 long double r = b.real / b.imag;
20773 long double s = (long double)(1.0) / (b.imag + b.real * r);
20774 return __pyx_t_long_double_complex_from_parts(
20775 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
20776 }
20777 }
20778 #else
20779 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) {
20780 if (b.imag == 0) {
20781 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
20782 } else {
20783 long double denom = b.real * b.real + b.imag * b.imag;
20784 return __pyx_t_long_double_complex_from_parts(
20785 (a.real * b.real + a.imag * b.imag) / denom,
20786 (a.imag * b.real - a.real * b.imag) / denom);
20787 }
20788 }
20789 #endif
20790 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
20791 __pyx_t_long_double_complex z;
20792 z.real = -a.real;
20793 z.imag = -a.imag;
20794 return z;
20795 }
20796 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
20797 return (a.real == 0) && (a.imag == 0);
20798 }
20799 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
20800 __pyx_t_long_double_complex z;
20801 z.real = a.real;
20802 z.imag = -a.imag;
20803 return z;
20804 }
20805 #if 1
20806 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
20807 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
20808 return sqrtl(z.real*z.real + z.imag*z.imag);
20809 #else
20810 return hypotl(z.real, z.imag);
20811 #endif
20812 }
20813 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) {
20814 __pyx_t_long_double_complex z;
20815 long double r, lnr, theta, z_r, z_theta;
20816 if (b.imag == 0 && b.real == (int)b.real) {
20817 if (b.real < 0) {
20818 long double denom = a.real * a.real + a.imag * a.imag;
20819 a.real = a.real / denom;
20820 a.imag = -a.imag / denom;
20821 b.real = -b.real;
20822 }
20823 switch ((int)b.real) {
20824 case 0:
20825 z.real = 1;
20826 z.imag = 0;
20827 return z;
20828 case 1:
20829 return a;
20830 case 2:
20831 return __Pyx_c_prod_long__double(a, a);
20832 case 3:
20833 z = __Pyx_c_prod_long__double(a, a);
20834 return __Pyx_c_prod_long__double(z, a);
20835 case 4:
20836 z = __Pyx_c_prod_long__double(a, a);
20837 return __Pyx_c_prod_long__double(z, z);
20838 }
20839 }
20840 if (a.imag == 0) {
20841 if (a.real == 0) {
20842 return a;
20843 } else if ((b.imag == 0) && (a.real >= 0)) {
20844 z.real = powl(a.real, b.real);
20845 z.imag = 0;
20846 return z;
20847 } else if (a.real > 0) {
20848 r = a.real;
20849 theta = 0;
20850 } else {
20851 r = -a.real;
20852 theta = atan2l(0.0, -1.0);
20853 }
20854 } else {
20855 r = __Pyx_c_abs_long__double(a);
20856 theta = atan2l(a.imag, a.real);
20857 }
20858 lnr = logl(r);
20859 z_r = expl(lnr * b.real - theta * b.imag);
20860 z_theta = theta * b.real + lnr * b.imag;
20861 z.real = z_r * cosl(z_theta);
20862 z.imag = z_r * sinl(z_theta);
20863 return z;
20864 }
20865 #endif
20866#endif
20867
20868/* CIntFromPy */
20869static char __Pyx_LargePyLong___Pyx_PyLong_As_char(PyObject *x);
20870static char __Pyx_raise_neg_overflow___Pyx_PyLong_As_char(void) {
20871 const char* type_name = "char";
20872 PyErr_Format(PyExc_OverflowError,
20873 "can't convert negative value to %.200s", type_name);
20874 return (char) -1;
20875}
20876static char __Pyx_raise_overflow___Pyx_PyLong_As_char(void) {
20877 const char* type_name = "char";
20878 PyErr_Format(PyExc_OverflowError,
20879 "value too large to convert to %.200s", type_name);
20880 return (char) -1;
20881}
20882static CYTHON_INLINE char __Pyx_PyULong___Pyx_PyLong_As_char(PyObject *x) {
20883 const int is_unsigned = 1;
20884#if CYTHON_USE_PYLONG_INTERNALS
20885 {
20886 const digit* digits = __Pyx_PyLong_Digits(x);
20887 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
20888 if (size == 2 && (8 * sizeof(char) > 1 * PyLong_SHIFT)) {
20889 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
20890 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20891 } else if ((8 * sizeof(char) >= 2 * PyLong_SHIFT)) {
20892 return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20893 }
20894 } else
20895 if (size == 3 && (8 * sizeof(char) > 2 * PyLong_SHIFT)) {
20896 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
20897 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20898 } else if ((8 * sizeof(char) >= 3 * PyLong_SHIFT)) {
20899 return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20900 }
20901 } else
20902 if (size == 4 && (8 * sizeof(char) > 3 * PyLong_SHIFT)) {
20903 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
20904 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20905 } else if ((8 * sizeof(char) >= 4 * PyLong_SHIFT)) {
20906 return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20907 }
20908 } else
20909 {}
20910 }
20911#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
20912 if (unlikely(Py_SIZE(x) < 0)) {
20913 goto raise_neg_overflow;
20914 }
20915#else
20916 {
20917 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
20918 if (unlikely(result < 0))
20919 return (char) -1;
20920 if (unlikely(result == 1))
20921 goto raise_neg_overflow;
20922 }
20923#endif
20924 if ((sizeof(char) <= sizeof(unsigned long))) {
20925 __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
20926 } else if ((sizeof(char) <= sizeof(unsigned PY_LONG_LONG))) {
20927 __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
20928 }
20929 return __Pyx_LargePyLong___Pyx_PyLong_As_char(x);
20930raise_neg_overflow:
20931 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_char();
20932raise_overflow:
20933 return __Pyx_raise_overflow___Pyx_PyLong_As_char();
20934}
20935static CYTHON_INLINE char __Pyx_PySLong___Pyx_PyLong_As_char(PyObject *x) {
20936 const int is_unsigned = 0;
20937#if CYTHON_USE_PYLONG_INTERNALS
20938 if (__Pyx_PyLong_IsNeg(x)) {
20939 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
20940 const digit* digits = __Pyx_PyLong_Digits(x);
20941 if (size == 2 && (8 * sizeof(char) > 1 * PyLong_SHIFT)) {
20942 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
20943 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
20944 __PYX_VERIFY_RETURN_INT(char, long, ival)
20945 } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
20946 return (char) (((char) -1) * (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
20947 }
20948 } else
20949 if (size == 3 && (8 * sizeof(char) > 2 * PyLong_SHIFT)) {
20950 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
20951 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
20952 __PYX_VERIFY_RETURN_INT(char, long, ival)
20953 } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
20954 return (char) (((char) -1) * (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
20955 }
20956 } else
20957 if (size == 4 && (8 * sizeof(char) > 3 * PyLong_SHIFT)) {
20958 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
20959 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]));
20960 __PYX_VERIFY_RETURN_INT(char, long, ival)
20961 } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
20962 return (char) (((char) -1) * (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
20963 }
20964 } else
20965 {}
20966 } else {
20967 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
20968 const digit* digits = __Pyx_PyLong_Digits(x);
20969 if (size == 2 && (8 * sizeof(char) > 1 * PyLong_SHIFT)) {
20970 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
20971 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20972 } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
20973 return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20974 }
20975 } else
20976 if (size == 3 && (8 * sizeof(char) > 2 * PyLong_SHIFT)) {
20977 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
20978 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20979 } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
20980 return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20981 }
20982 } else
20983 if (size == 4 && (8 * sizeof(char) > 3 * PyLong_SHIFT)) {
20984 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
20985 __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
20986 } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
20987 return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
20988 }
20989 } else
20990 {}
20991 }
20992#endif
20993 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
20994 if ((sizeof(char) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
20995 __PYX_VERIFY_RETURN_INT_EXC(char, int, PyLong_AsInt(x))
20996 } else
20997 #endif
20998 if ((sizeof(char) <= sizeof(long))) {
20999 __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
21000 } else if ((sizeof(char) <= sizeof(PY_LONG_LONG))) {
21001 __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
21002 }
21003 return __Pyx_LargePyLong___Pyx_PyLong_As_char(x);
21004raise_neg_overflow:
21005 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_char();
21006raise_overflow:
21007 return __Pyx_raise_overflow___Pyx_PyLong_As_char();
21008}
21009static char __Pyx_LargePyLong___Pyx_PyLong_As_char(PyObject *x) {
21010#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21011#pragma GCC diagnostic push
21012#pragma GCC diagnostic ignored "-Wconversion"
21013#endif
21014 const char neg_one = (char) -1, const_zero = (char) 0;
21015#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21016#pragma GCC diagnostic pop
21017#endif
21018 const int is_unsigned = neg_one > const_zero;
21019 char val;
21020 int ret = -1;
21021#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
21022 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
21023 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
21024 if (unlikely(bytes_copied == -1)) {
21025 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
21026 goto raise_overflow;
21027 } else {
21028 ret = 0;
21029 }
21030#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
21031 int one = 1; int is_little = (int)*(unsigned char *)&one;
21032 unsigned char *bytes = (unsigned char *)&val;
21033 ret = _PyLong_AsByteArray((PyLongObject *)x,
21034 bytes, sizeof(val),
21035 is_little, !is_unsigned);
21036 if ((0)) goto raise_overflow;
21037#else
21038 PyObject *v;
21039 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
21040 int bits, remaining_bits, is_negative = 0;
21041 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
21042 if (likely(PyLong_CheckExact(x))) {
21043 v = __Pyx_NewRef(x);
21044 } else {
21045 v = PyNumber_Long(x);
21046 if (unlikely(!v)) return (char) -1;
21047 assert(PyLong_CheckExact(v));
21048 }
21049 {
21050 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
21051 if (unlikely(result < 0)) {
21052 Py_DECREF(v);
21053 return (char) -1;
21054 }
21055 is_negative = result == 1;
21056 }
21057 if (is_unsigned && unlikely(is_negative)) {
21058 Py_DECREF(v);
21059 PyErr_SetString(PyExc_OverflowError,
21060 "can't convert negative value to char");
21061 return (char) -1;
21062 } else if (is_negative) {
21063 stepval = PyNumber_Invert(v);
21064 Py_DECREF(v);
21065 if (unlikely(!stepval))
21066 return (char) -1;
21067 } else {
21068 stepval = v;
21069 }
21070 v = NULL;
21071 val = (char) 0;
21072 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
21073 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
21074 for (bits = 0; bits < (int) sizeof(char) * 8 - chunk_size; bits += chunk_size) {
21075 PyObject *tmp, *digit;
21076 long idigit;
21077 digit = PyNumber_And(stepval, mask);
21078 if (unlikely(!digit)) goto done;
21079 idigit = PyLong_AsLong(digit);
21080 Py_DECREF(digit);
21081 if (unlikely(idigit < 0)) goto done;
21082 val |= ((char) idigit) << bits;
21083 tmp = PyNumber_Rshift(stepval, shift);
21084 if (unlikely(!tmp)) goto done;
21085 Py_DECREF(stepval); stepval = tmp;
21086 }
21087 Py_DECREF(shift); shift = NULL;
21088 Py_DECREF(mask); mask = NULL;
21089 {
21090 long idigit = PyLong_AsLong(stepval);
21091 if (unlikely(idigit < 0)) goto done;
21092 remaining_bits = ((int) sizeof(char) * 8) - bits - (is_unsigned ? 0 : 1);
21093 if (unlikely(idigit >= (1L << remaining_bits)))
21094 goto raise_overflow;
21095 val |= ((char) idigit) << bits;
21096 }
21097 if (!is_unsigned) {
21098 if (unlikely(val & (((char) 1) << (sizeof(char) * 8 - 1))))
21099 goto raise_overflow;
21100 if (is_negative)
21101 val = ~val;
21102 }
21103 ret = 0;
21104done:
21105 Py_XDECREF(shift);
21106 Py_XDECREF(mask);
21107 Py_XDECREF(stepval);
21108#endif
21109 if (unlikely(ret))
21110 return (char) -1;
21111 return val;
21112raise_overflow:
21113 return __Pyx_raise_overflow___Pyx_PyLong_As_char();
21114}
21115static CYTHON_INLINE char __Pyx_PyLong___Pyx_PyLong_As_char(PyObject *x) {
21116#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21117#pragma GCC diagnostic push
21118#pragma GCC diagnostic ignored "-Wconversion"
21119#endif
21120 const char neg_one = (char) -1, const_zero = (char) 0;
21121#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21122#pragma GCC diagnostic pop
21123#endif
21124 const int is_unsigned = neg_one > const_zero;
21125 if (is_unsigned) {
21126 #if CYTHON_USE_PYLONG_INTERNALS
21127 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
21128 goto raise_neg_overflow;
21129 } else if (__Pyx_PyLong_IsCompact(x)) {
21130 __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
21131 } else
21132 #endif
21133 {
21134 return __Pyx_PyULong___Pyx_PyLong_As_char(x);
21135 }
21136 } else {
21137 #if CYTHON_USE_PYLONG_INTERNALS
21138 if (__Pyx_PyLong_IsCompact(x)) {
21139 __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
21140 } else
21141 #endif
21142 {
21143 return __Pyx_PySLong___Pyx_PyLong_As_char(x);
21144 }
21145 }
21146#if CYTHON_USE_PYLONG_INTERNALS
21147raise_neg_overflow:
21148 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_char();
21149raise_overflow:
21150 return __Pyx_raise_overflow___Pyx_PyLong_As_char();
21151#endif
21152}
21153static char __Pyx_NonPyLong___Pyx_PyLong_As_char(PyObject *x) {
21154 char val;
21155 PyObject *tmp = __Pyx_PyNumber_Long(x);
21156 if (!tmp) return (char) -1;
21157 val = __Pyx_PyLong_As_char(tmp);
21158 Py_DECREF(tmp);
21159 return val;
21160}
21161static CYTHON_INLINE char __Pyx_PyLong_As_char(PyObject *x) {
21162 if (likely(PyLong_Check(x))) {
21163 return __Pyx_PyLong___Pyx_PyLong_As_char(x);
21164 } else {
21165 return __Pyx_NonPyLong___Pyx_PyLong_As_char(x);
21166 }
21167}
21168
21169/* CIntFromPy */
21170static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x);
21171static int __Pyx_raise_neg_overflow___Pyx_PyLong_As_int(void) {
21172 const char* type_name = "int";
21173 PyErr_Format(PyExc_OverflowError,
21174 "can't convert negative value to %.200s", type_name);
21175 return (int) -1;
21176}
21177static int __Pyx_raise_overflow___Pyx_PyLong_As_int(void) {
21178 const char* type_name = "int";
21179 PyErr_Format(PyExc_OverflowError,
21180 "value too large to convert to %.200s", type_name);
21181 return (int) -1;
21182}
21183static CYTHON_INLINE int __Pyx_PyULong___Pyx_PyLong_As_int(PyObject *x) {
21184 const int is_unsigned = 1;
21185#if CYTHON_USE_PYLONG_INTERNALS
21186 {
21187 const digit* digits = __Pyx_PyLong_Digits(x);
21188 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21189 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21190 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
21191 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21192 } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
21193 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21194 }
21195 } else
21196 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21197 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
21198 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21199 } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
21200 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21201 }
21202 } else
21203 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21204 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
21205 __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])))
21206 } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
21207 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21208 }
21209 } else
21210 {}
21211 }
21212#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
21213 if (unlikely(Py_SIZE(x) < 0)) {
21214 goto raise_neg_overflow;
21215 }
21216#else
21217 {
21218 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
21219 if (unlikely(result < 0))
21220 return (int) -1;
21221 if (unlikely(result == 1))
21222 goto raise_neg_overflow;
21223 }
21224#endif
21225 if ((sizeof(int) <= sizeof(unsigned long))) {
21226 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
21227 } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
21228 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
21229 }
21230 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
21231raise_neg_overflow:
21232 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
21233raise_overflow:
21234 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21235}
21236static CYTHON_INLINE int __Pyx_PySLong___Pyx_PyLong_As_int(PyObject *x) {
21237 const int is_unsigned = 0;
21238#if CYTHON_USE_PYLONG_INTERNALS
21239 if (__Pyx_PyLong_IsNeg(x)) {
21240 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21241 const digit* digits = __Pyx_PyLong_Digits(x);
21242 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21243 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21244 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21245 __PYX_VERIFY_RETURN_INT(int, long, ival)
21246 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
21247 return (int) (((int) -1) * (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21248 }
21249 } else
21250 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21251 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21252 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21253 __PYX_VERIFY_RETURN_INT(int, long, ival)
21254 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
21255 return (int) (((int) -1) * (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21256 }
21257 } else
21258 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21259 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21260 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]));
21261 __PYX_VERIFY_RETURN_INT(int, long, ival)
21262 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
21263 return (int) (((int) -1) * (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21264 }
21265 } else
21266 {}
21267 } else {
21268 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21269 const digit* digits = __Pyx_PyLong_Digits(x);
21270 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21271 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21272 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21273 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
21274 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21275 }
21276 } else
21277 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21278 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21279 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21280 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
21281 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21282 }
21283 } else
21284 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21285 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21286 __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])))
21287 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
21288 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21289 }
21290 } else
21291 {}
21292 }
21293#endif
21294 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
21295 if ((sizeof(int) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
21296 __PYX_VERIFY_RETURN_INT_EXC(int, int, PyLong_AsInt(x))
21297 } else
21298 #endif
21299 if ((sizeof(int) <= sizeof(long))) {
21300 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
21301 } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
21302 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
21303 }
21304 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
21305raise_neg_overflow:
21306 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
21307raise_overflow:
21308 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21309}
21310static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x) {
21311#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21312#pragma GCC diagnostic push
21313#pragma GCC diagnostic ignored "-Wconversion"
21314#endif
21315 const int neg_one = (int) -1, const_zero = (int) 0;
21316#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21317#pragma GCC diagnostic pop
21318#endif
21319 const int is_unsigned = neg_one > const_zero;
21320 int val;
21321 int ret = -1;
21322#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
21323 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
21324 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
21325 if (unlikely(bytes_copied == -1)) {
21326 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
21327 goto raise_overflow;
21328 } else {
21329 ret = 0;
21330 }
21331#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
21332 int one = 1; int is_little = (int)*(unsigned char *)&one;
21333 unsigned char *bytes = (unsigned char *)&val;
21334 ret = _PyLong_AsByteArray((PyLongObject *)x,
21335 bytes, sizeof(val),
21336 is_little, !is_unsigned);
21337 if ((0)) goto raise_overflow;
21338#else
21339 PyObject *v;
21340 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
21341 int bits, remaining_bits, is_negative = 0;
21342 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
21343 if (likely(PyLong_CheckExact(x))) {
21344 v = __Pyx_NewRef(x);
21345 } else {
21346 v = PyNumber_Long(x);
21347 if (unlikely(!v)) return (int) -1;
21348 assert(PyLong_CheckExact(v));
21349 }
21350 {
21351 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
21352 if (unlikely(result < 0)) {
21353 Py_DECREF(v);
21354 return (int) -1;
21355 }
21356 is_negative = result == 1;
21357 }
21358 if (is_unsigned && unlikely(is_negative)) {
21359 Py_DECREF(v);
21360 PyErr_SetString(PyExc_OverflowError,
21361 "can't convert negative value to int");
21362 return (int) -1;
21363 } else if (is_negative) {
21364 stepval = PyNumber_Invert(v);
21365 Py_DECREF(v);
21366 if (unlikely(!stepval))
21367 return (int) -1;
21368 } else {
21369 stepval = v;
21370 }
21371 v = NULL;
21372 val = (int) 0;
21373 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
21374 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
21375 for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
21376 PyObject *tmp, *digit;
21377 long idigit;
21378 digit = PyNumber_And(stepval, mask);
21379 if (unlikely(!digit)) goto done;
21380 idigit = PyLong_AsLong(digit);
21381 Py_DECREF(digit);
21382 if (unlikely(idigit < 0)) goto done;
21383 val |= ((int) idigit) << bits;
21384 tmp = PyNumber_Rshift(stepval, shift);
21385 if (unlikely(!tmp)) goto done;
21386 Py_DECREF(stepval); stepval = tmp;
21387 }
21388 Py_DECREF(shift); shift = NULL;
21389 Py_DECREF(mask); mask = NULL;
21390 {
21391 long idigit = PyLong_AsLong(stepval);
21392 if (unlikely(idigit < 0)) goto done;
21393 remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
21394 if (unlikely(idigit >= (1L << remaining_bits)))
21395 goto raise_overflow;
21396 val |= ((int) idigit) << bits;
21397 }
21398 if (!is_unsigned) {
21399 if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
21400 goto raise_overflow;
21401 if (is_negative)
21402 val = ~val;
21403 }
21404 ret = 0;
21405done:
21406 Py_XDECREF(shift);
21407 Py_XDECREF(mask);
21408 Py_XDECREF(stepval);
21409#endif
21410 if (unlikely(ret))
21411 return (int) -1;
21412 return val;
21413raise_overflow:
21414 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21415}
21416static CYTHON_INLINE int __Pyx_PyLong___Pyx_PyLong_As_int(PyObject *x) {
21417#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21418#pragma GCC diagnostic push
21419#pragma GCC diagnostic ignored "-Wconversion"
21420#endif
21421 const int neg_one = (int) -1, const_zero = (int) 0;
21422#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21423#pragma GCC diagnostic pop
21424#endif
21425 const int is_unsigned = neg_one > const_zero;
21426 if (is_unsigned) {
21427 #if CYTHON_USE_PYLONG_INTERNALS
21428 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
21429 goto raise_neg_overflow;
21430 } else if (__Pyx_PyLong_IsCompact(x)) {
21431 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
21432 } else
21433 #endif
21434 {
21435 return __Pyx_PyULong___Pyx_PyLong_As_int(x);
21436 }
21437 } else {
21438 #if CYTHON_USE_PYLONG_INTERNALS
21439 if (__Pyx_PyLong_IsCompact(x)) {
21440 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
21441 } else
21442 #endif
21443 {
21444 return __Pyx_PySLong___Pyx_PyLong_As_int(x);
21445 }
21446 }
21447#if CYTHON_USE_PYLONG_INTERNALS
21448raise_neg_overflow:
21449 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
21450raise_overflow:
21451 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21452#endif
21453}
21454static int __Pyx_NonPyLong___Pyx_PyLong_As_int(PyObject *x) {
21455 int val;
21456 PyObject *tmp = __Pyx_PyNumber_Long(x);
21457 if (!tmp) return (int) -1;
21458 val = __Pyx_PyLong_As_int(tmp);
21459 Py_DECREF(tmp);
21460 return val;
21461}
21462static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
21463 if (likely(PyLong_Check(x))) {
21464 return __Pyx_PyLong___Pyx_PyLong_As_int(x);
21465 } else {
21466 return __Pyx_NonPyLong___Pyx_PyLong_As_int(x);
21467 }
21468}
21469
21470/* FormatTypeName */
21471#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
21472static __Pyx_TypeName
21473__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
21474{
21475 PyObject *module = NULL, *name = NULL, *result = NULL;
21476 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
21477 name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
21478 __pyx_mstate_global->__pyx_n_u_qualname);
21479 #else
21480 name = PyType_GetQualName(tp);
21481 #endif
21482 if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
21483 module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
21484 __pyx_mstate_global->__pyx_n_u_module);
21485 if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
21486 if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
21487 result = name;
21488 name = NULL;
21489 goto done;
21490 }
21491 result = PyUnicode_FromFormat("%U.%U", module, name);
21492 if (unlikely(result == NULL)) goto bad;
21493 done:
21494 Py_XDECREF(name);
21495 Py_XDECREF(module);
21496 return result;
21497 bad:
21498 PyErr_Clear();
21499 if (name) {
21500 result = name;
21501 name = NULL;
21502 } else {
21503 result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u_);
21504 }
21505 goto done;
21506}
21507#endif
21508
21509/* PyObjectVectorcallKwds (used by PyObjectVectorcallMethodKwds) */
21510#if CYTHON_VECTORCALL
21511CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i) {
21512 PyObject *key = __Pyx_PyTuple_GET_ITEM(kwnames, i);
21513#if !CYTHON_ASSUME_SAFE_MACROS
21514 if (unlikely(!key)) return -1;
21515#endif
21516 if (unlikely(!PyUnicode_Check(key))) {
21517 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
21518 return -1;
21519 }
21520 return 0;
21521}
21522#else
21523CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n) {
21524 PyObject *out = PyDict_New();
21525 if (unlikely(!out)) return NULL;
21526 for (Py_ssize_t i=0; i<n; ++i) {
21527 if (unlikely(PyDict_SetItem(out, keys[i], values[i]) < 0)) {
21528 Py_DECREF(out);
21529 return NULL;
21530 }
21531 }
21532 return out;
21533}
21534CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i) {
21535 PyObject *key = kwnames[i];
21536 if (unlikely(!PyUnicode_Check(key))) {
21537 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
21538 return -1;
21539 }
21540 return 0;
21541}
21542#endif
21543
21544/* PyObjectVectorcallMethodKwds (used by CIntToPy) */
21545#if !CYTHON_VECTORCALL
21546static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
21547 PyObject *result;
21548 PyObject *obj = PyObject_GetAttr(args[0], name);
21549 if (unlikely(!obj))
21550 return NULL;
21551 result = __Pyx_Object_VectorcallKwds(obj, args+1, nargsf-1, kwnames);
21552 Py_DECREF(obj);
21553 return result;
21554}
21555#endif
21556
21557/* CIntToPy */
21558static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
21559#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21560#pragma GCC diagnostic push
21561#pragma GCC diagnostic ignored "-Wconversion"
21562#endif
21563 const long neg_one = (long) -1, const_zero = (long) 0;
21564#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21565#pragma GCC diagnostic pop
21566#endif
21567 const int is_unsigned = neg_one > const_zero;
21568 if (is_unsigned) {
21569 if (sizeof(long) < sizeof(long)) {
21570 return PyLong_FromLong((long) value);
21571 } else if (sizeof(long) <= sizeof(unsigned long)) {
21572 return PyLong_FromUnsignedLong((unsigned long) value);
21573#if !CYTHON_COMPILING_IN_PYPY
21574 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
21575 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
21576#endif
21577 }
21578 } else {
21579 if (sizeof(long) <= sizeof(long)) {
21580 return PyLong_FromLong((long) value);
21581 } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
21582 return PyLong_FromLongLong((PY_LONG_LONG) value);
21583 }
21584 }
21585 {
21586 unsigned char *bytes = (unsigned char *)&value;
21587#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
21588 if (is_unsigned) {
21589 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
21590 } else {
21591 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
21592 }
21593#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
21594 int one = 1; int little = (int)*(unsigned char *)&one;
21595 return _PyLong_FromByteArray(bytes, sizeof(long),
21596 little, !is_unsigned);
21597#else
21598 int one = 1; int little = (int)*(unsigned char *)&one;
21599 PyObject *result = NULL, *kwds = NULL;
21600 PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;;
21601 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
21602 if (!py_bytes) goto limited_bad;
21603 from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10);
21604 if (!from_bytes_str) goto limited_bad;
21605 order_str = PyUnicode_FromString(little ? "little" : "big");
21606 if (!order_str) goto limited_bad;
21607 {
21608 PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True };
21609 if (!is_unsigned) {
21610 PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6);
21611 if (!signed_str) goto limited_bad;
21612#if CYTHON_VECTORCALL
21613 kwds = PyTuple_Pack(1, signed_str);
21614#else
21615 {
21616 PyObject *keys[] = {signed_str};
21617 PyObject *values[] = {Py_True};
21618 kwds = __Pyx_MakeKwargDict(keys, values, 1);
21619 }
21620#endif
21621 Py_DECREF(signed_str);
21622 if (unlikely(!kwds)) goto limited_bad;
21623 }
21624 result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
21625 }
21626 limited_bad:
21627 Py_XDECREF(kwds);
21628 Py_XDECREF(order_str);
21629 Py_XDECREF(py_bytes);
21630 Py_XDECREF(from_bytes_str);
21631 return result;
21632#endif
21633 }
21634}
21635
21636/* CIntFromPy */
21637static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x);
21638static long __Pyx_raise_neg_overflow___Pyx_PyLong_As_long(void) {
21639 const char* type_name = "long";
21640 PyErr_Format(PyExc_OverflowError,
21641 "can't convert negative value to %.200s", type_name);
21642 return (long) -1;
21643}
21644static long __Pyx_raise_overflow___Pyx_PyLong_As_long(void) {
21645 const char* type_name = "long";
21646 PyErr_Format(PyExc_OverflowError,
21647 "value too large to convert to %.200s", type_name);
21648 return (long) -1;
21649}
21650static CYTHON_INLINE long __Pyx_PyULong___Pyx_PyLong_As_long(PyObject *x) {
21651 const int is_unsigned = 1;
21652#if CYTHON_USE_PYLONG_INTERNALS
21653 {
21654 const digit* digits = __Pyx_PyLong_Digits(x);
21655 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21656 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
21657 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
21658 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21659 } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
21660 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21661 }
21662 } else
21663 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21664 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
21665 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21666 } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
21667 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21668 }
21669 } else
21670 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21671 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
21672 __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])))
21673 } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
21674 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21675 }
21676 } else
21677 {}
21678 }
21679#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
21680 if (unlikely(Py_SIZE(x) < 0)) {
21681 goto raise_neg_overflow;
21682 }
21683#else
21684 {
21685 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
21686 if (unlikely(result < 0))
21687 return (long) -1;
21688 if (unlikely(result == 1))
21689 goto raise_neg_overflow;
21690 }
21691#endif
21692 if ((sizeof(long) <= sizeof(unsigned long))) {
21693 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
21694 } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
21695 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
21696 }
21697 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
21698raise_neg_overflow:
21699 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
21700raise_overflow:
21701 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
21702}
21703static CYTHON_INLINE long __Pyx_PySLong___Pyx_PyLong_As_long(PyObject *x) {
21704 const int is_unsigned = 0;
21705#if CYTHON_USE_PYLONG_INTERNALS
21706 if (__Pyx_PyLong_IsNeg(x)) {
21707 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21708 const digit* digits = __Pyx_PyLong_Digits(x);
21709 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
21710 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21711 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21712 __PYX_VERIFY_RETURN_INT(long, long, ival)
21713 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
21714 return (long) (((long) -1) * (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
21715 }
21716 } else
21717 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21718 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21719 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21720 __PYX_VERIFY_RETURN_INT(long, long, ival)
21721 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
21722 return (long) (((long) -1) * (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
21723 }
21724 } else
21725 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21726 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21727 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]));
21728 __PYX_VERIFY_RETURN_INT(long, long, ival)
21729 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
21730 return (long) (((long) -1) * (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
21731 }
21732 } else
21733 {}
21734 } else {
21735 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21736 const digit* digits = __Pyx_PyLong_Digits(x);
21737 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
21738 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21739 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21740 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
21741 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21742 }
21743 } else
21744 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21745 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21746 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21747 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
21748 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21749 }
21750 } else
21751 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21752 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21753 __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])))
21754 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
21755 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
21756 }
21757 } else
21758 {}
21759 }
21760#endif
21761 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
21762 if ((sizeof(long) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
21763 __PYX_VERIFY_RETURN_INT_EXC(long, int, PyLong_AsInt(x))
21764 } else
21765 #endif
21766 if ((sizeof(long) <= sizeof(long))) {
21767 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
21768 } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
21769 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
21770 }
21771 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
21772raise_neg_overflow:
21773 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
21774raise_overflow:
21775 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
21776}
21777static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x) {
21778#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21779#pragma GCC diagnostic push
21780#pragma GCC diagnostic ignored "-Wconversion"
21781#endif
21782 const long neg_one = (long) -1, const_zero = (long) 0;
21783#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21784#pragma GCC diagnostic pop
21785#endif
21786 const int is_unsigned = neg_one > const_zero;
21787 long val;
21788 int ret = -1;
21789#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
21790 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
21791 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
21792 if (unlikely(bytes_copied == -1)) {
21793 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
21794 goto raise_overflow;
21795 } else {
21796 ret = 0;
21797 }
21798#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
21799 int one = 1; int is_little = (int)*(unsigned char *)&one;
21800 unsigned char *bytes = (unsigned char *)&val;
21801 ret = _PyLong_AsByteArray((PyLongObject *)x,
21802 bytes, sizeof(val),
21803 is_little, !is_unsigned);
21804 if ((0)) goto raise_overflow;
21805#else
21806 PyObject *v;
21807 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
21808 int bits, remaining_bits, is_negative = 0;
21809 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
21810 if (likely(PyLong_CheckExact(x))) {
21811 v = __Pyx_NewRef(x);
21812 } else {
21813 v = PyNumber_Long(x);
21814 if (unlikely(!v)) return (long) -1;
21815 assert(PyLong_CheckExact(v));
21816 }
21817 {
21818 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
21819 if (unlikely(result < 0)) {
21820 Py_DECREF(v);
21821 return (long) -1;
21822 }
21823 is_negative = result == 1;
21824 }
21825 if (is_unsigned && unlikely(is_negative)) {
21826 Py_DECREF(v);
21827 PyErr_SetString(PyExc_OverflowError,
21828 "can't convert negative value to long");
21829 return (long) -1;
21830 } else if (is_negative) {
21831 stepval = PyNumber_Invert(v);
21832 Py_DECREF(v);
21833 if (unlikely(!stepval))
21834 return (long) -1;
21835 } else {
21836 stepval = v;
21837 }
21838 v = NULL;
21839 val = (long) 0;
21840 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
21841 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
21842 for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
21843 PyObject *tmp, *digit;
21844 long idigit;
21845 digit = PyNumber_And(stepval, mask);
21846 if (unlikely(!digit)) goto done;
21847 idigit = PyLong_AsLong(digit);
21848 Py_DECREF(digit);
21849 if (unlikely(idigit < 0)) goto done;
21850 val |= ((long) idigit) << bits;
21851 tmp = PyNumber_Rshift(stepval, shift);
21852 if (unlikely(!tmp)) goto done;
21853 Py_DECREF(stepval); stepval = tmp;
21854 }
21855 Py_DECREF(shift); shift = NULL;
21856 Py_DECREF(mask); mask = NULL;
21857 {
21858 long idigit = PyLong_AsLong(stepval);
21859 if (unlikely(idigit < 0)) goto done;
21860 remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
21861 if (unlikely(idigit >= (1L << remaining_bits)))
21862 goto raise_overflow;
21863 val |= ((long) idigit) << bits;
21864 }
21865 if (!is_unsigned) {
21866 if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
21867 goto raise_overflow;
21868 if (is_negative)
21869 val = ~val;
21870 }
21871 ret = 0;
21872done:
21873 Py_XDECREF(shift);
21874 Py_XDECREF(mask);
21875 Py_XDECREF(stepval);
21876#endif
21877 if (unlikely(ret))
21878 return (long) -1;
21879 return val;
21880raise_overflow:
21881 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
21882}
21883static CYTHON_INLINE long __Pyx_PyLong___Pyx_PyLong_As_long(PyObject *x) {
21884#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21885#pragma GCC diagnostic push
21886#pragma GCC diagnostic ignored "-Wconversion"
21887#endif
21888 const long neg_one = (long) -1, const_zero = (long) 0;
21889#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21890#pragma GCC diagnostic pop
21891#endif
21892 const int is_unsigned = neg_one > const_zero;
21893 if (is_unsigned) {
21894 #if CYTHON_USE_PYLONG_INTERNALS
21895 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
21896 goto raise_neg_overflow;
21897 } else if (__Pyx_PyLong_IsCompact(x)) {
21898 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
21899 } else
21900 #endif
21901 {
21902 return __Pyx_PyULong___Pyx_PyLong_As_long(x);
21903 }
21904 } else {
21905 #if CYTHON_USE_PYLONG_INTERNALS
21906 if (__Pyx_PyLong_IsCompact(x)) {
21907 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
21908 } else
21909 #endif
21910 {
21911 return __Pyx_PySLong___Pyx_PyLong_As_long(x);
21912 }
21913 }
21914#if CYTHON_USE_PYLONG_INTERNALS
21915raise_neg_overflow:
21916 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
21917raise_overflow:
21918 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
21919#endif
21920}
21921static long __Pyx_NonPyLong___Pyx_PyLong_As_long(PyObject *x) {
21922 long val;
21923 PyObject *tmp = __Pyx_PyNumber_Long(x);
21924 if (!tmp) return (long) -1;
21925 val = __Pyx_PyLong_As_long(tmp);
21926 Py_DECREF(tmp);
21927 return val;
21928}
21929static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
21930 if (likely(PyLong_Check(x))) {
21931 return __Pyx_PyLong___Pyx_PyLong_As_long(x);
21932 } else {
21933 return __Pyx_NonPyLong___Pyx_PyLong_As_long(x);
21934 }
21935}
21936
21937/* GetRuntimeVersion */
21938#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
21939void __Pyx_init_runtime_version(void) {
21940 if (__Pyx_cached_runtime_version == 0) {
21941 const char* rt_version = Py_GetVersion();
21942 unsigned long version = 0;
21943 unsigned long factor = 0x01000000UL;
21944 unsigned int digit = 0;
21945 int i = 0;
21946 while (factor) {
21947 while ('0' <= rt_version[i] && rt_version[i] <= '9') {
21948 digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
21949 ++i;
21950 }
21951 version += factor * digit;
21952 if (rt_version[i] != '.')
21953 break;
21954 digit = 0;
21955 factor >>= 8;
21956 ++i;
21957 }
21958 __Pyx_cached_runtime_version = version;
21959 }
21960}
21961#endif
21962static unsigned long __Pyx_get_runtime_version(void) {
21963#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
21964 return Py_Version & ~0xFFUL;
21965#else
21966 return __Pyx_cached_runtime_version;
21967#endif
21968}
21969
21970/* CheckBinaryVersion */
21971static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
21972 const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
21973 if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
21974 return 0;
21975 if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
21976 return 1;
21977 {
21978 char message[200];
21979 PyOS_snprintf(message, sizeof(message),
21980 "compile time Python version %d.%d "
21981 "of module '%.100s' "
21982 "%s "
21983 "runtime version %d.%d",
21984 (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
21985 __Pyx_MODULE_NAME,
21986 (allow_newer) ? "was newer than" : "does not match",
21987 (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
21988 );
21989 return PyErr_WarnEx(NULL, message, 1);
21990 }
21991}
21992
21993/* NewCodeObj */
21994#if CYTHON_COMPILING_IN_LIMITED_API
21995 static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
21996 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
21997 PyObject *fv, PyObject *cell, PyObject* fn,
21998 PyObject *name, int fline, PyObject *lnos) {
21999 PyObject *exception_table = NULL;
22000 PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
22001 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
22002 PyObject *version_info;
22003 PyObject *py_minor_version = NULL;
22004 #endif
22005 long minor_version = 0;
22006 #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
22007 minor_version = 11;
22008 #else
22009 if (!(version_info = PySys_GetObject("version_info"))) goto end;
22010 if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
22011 minor_version = PyLong_AsLong(py_minor_version);
22012 Py_DECREF(py_minor_version);
22013 if (minor_version == -1 && PyErr_Occurred()) goto end;
22014 #endif
22015 if (!(types_module = PyImport_ImportModule("types"))) goto end;
22016 if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
22017 if (minor_version <= 10) {
22018 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
22019 c, n, v, fn, name, fline, lnos, fv, cell);
22020 } else {
22021 if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
22022 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
22023 c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
22024 }
22025 end:
22026 Py_XDECREF(code_type);
22027 Py_XDECREF(exception_table);
22028 Py_XDECREF(types_module);
22029 if (!result) {
22030 PyObject *exc_type, *exc_value, *exc_tb;
22031 PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
22032 if (PyErr_WarnFormat(
22033 PyExc_RuntimeWarning, 1,
22034 "Code object creation failed in Cython module: %S\nTry recompiling with a more recent version of Cython.",
22035 exc_value ? exc_value : exc_type) == 0) {
22036 result = Py_None;
22037 Py_INCREF(result);
22038 }
22039 Py_DECREF(exc_type);
22040 Py_XDECREF(exc_value);
22041 Py_XDECREF(exc_tb);
22042 }
22043 return result;
22044 }
22045#elif PY_VERSION_HEX >= 0x030B0000
22046 static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
22047 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
22048 PyObject *fv, PyObject *cell, PyObject* fn,
22049 PyObject *name, int fline, PyObject *lnos) {
22050 PyCodeObject *result;
22051 result =
22052 #if PY_VERSION_HEX >= 0x030C0000
22053 PyUnstable_Code_NewWithPosOnlyArgs
22054 #else
22055 PyCode_NewWithPosOnlyArgs
22056 #endif
22057 (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
22058 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
22059 if (likely(result))
22060 result->_co_firsttraceable = 0;
22061 #endif
22062 return result;
22063 }
22064#elif !CYTHON_COMPILING_IN_PYPY
22065 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
22066 PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
22067#else
22068 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
22069 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
22070#endif
22071static PyObject* __Pyx_PyCode_New(
22072 const __Pyx_PyCode_New_function_description descr,
22073 PyObject * const *varnames,
22074 PyObject *filename,
22075 PyObject *funcname,
22076 PyObject *line_table,
22077 PyObject *tuple_dedup_map
22078) {
22079 PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
22080 Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
22081 PyObject *varnames_tuple = PyTuple_New(var_count);
22082 if (unlikely(!varnames_tuple)) return NULL;
22083 for (Py_ssize_t i=0; i < var_count; i++) {
22084 Py_INCREF(varnames[i]);
22085 if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
22086 }
22087 #if CYTHON_COMPILING_IN_LIMITED_API
22088 varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
22089 if (!varnames_tuple_dedup) {
22090 if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
22091 varnames_tuple_dedup = varnames_tuple;
22092 }
22093 #else
22094 varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
22095 if (unlikely(!varnames_tuple_dedup)) goto done;
22096 #endif
22097 #if CYTHON_AVOID_BORROWED_REFS
22098 Py_INCREF(varnames_tuple_dedup);
22099 #endif
22100 if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
22101 Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
22102 #if !CYTHON_ASSUME_SAFE_SIZE
22103 if (unlikely(line_table_length == -1)) goto done;
22104 #endif
22105 Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
22106 code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
22107 if (unlikely(!code_bytes)) goto done;
22108 char* c_code_bytes = PyBytes_AsString(code_bytes);
22109 if (unlikely(!c_code_bytes)) goto done;
22110 memset(c_code_bytes, 0, (size_t) code_len);
22111 }
22112 code_obj = (PyObject*) __Pyx__PyCode_New(
22113 (int) descr.argcount,
22114 (int) descr.num_posonly_args,
22115 (int) descr.num_kwonly_args,
22116 (int) descr.nlocals,
22117 0,
22118 (int) descr.flags,
22119 code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
22120 __pyx_mstate_global->__pyx_empty_tuple,
22121 __pyx_mstate_global->__pyx_empty_tuple,
22122 varnames_tuple_dedup,
22123 __pyx_mstate_global->__pyx_empty_tuple,
22124 __pyx_mstate_global->__pyx_empty_tuple,
22125 filename,
22126 funcname,
22127 (int) descr.first_line,
22128 (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
22129 );
22130done:
22131 Py_XDECREF(code_bytes);
22132 #if CYTHON_AVOID_BORROWED_REFS
22133 Py_XDECREF(varnames_tuple_dedup);
22134 #endif
22135 Py_DECREF(varnames_tuple);
22136 return code_obj;
22137}
22138
22139/* DecompressString */
22140CYTHON_UNUSED
22141static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
22142#ifdef __Pyx_DecompressString_UNUSED
22143 CYTHON_UNUSED_VAR(s);
22144 CYTHON_UNUSED_VAR(length);
22145 CYTHON_UNUSED_VAR(algo);
22146 return NULL;
22147#else
22148 PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
22149 const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
22150 PyObject *methodname = PyUnicode_FromString("decompress");
22151 if (unlikely(!methodname)) return NULL;
22152 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
22153 if (algo == 3) {
22154 PyObject *fromlist = Py_BuildValue("[O]", methodname);
22155 if (unlikely(!fromlist)) goto bad;
22156 module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
22157 Py_DECREF(fromlist);
22158 } else
22159 #endif
22160 module = PyImport_ImportModule(module_name);
22161 if (unlikely(!module)) goto import_failed;
22162 decompress = PyObject_GetAttr(module, methodname);
22163 if (unlikely(!decompress)) goto import_failed;
22164 {
22165 #ifdef __cplusplus
22166 char *memview_bytes = const_cast<char*>(s);
22167 #else
22168 #if defined(__clang__)
22169 #pragma clang diagnostic push
22170 #pragma clang diagnostic ignored "-Wcast-qual"
22171 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
22172 #pragma GCC diagnostic push
22173 #pragma GCC diagnostic ignored "-Wcast-qual"
22174 #endif
22175 char *memview_bytes = (char*) s;
22176 #if defined(__clang__)
22177 #pragma clang diagnostic pop
22178 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
22179 #pragma GCC diagnostic pop
22180 #endif
22181 #endif
22182 #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
22183 int memview_flags = 0x100;
22184 #else
22185 int memview_flags = PyBUF_READ;
22186 #endif
22187 compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
22188 }
22189 if (unlikely(!compressed_bytes)) {
22190 Py_DECREF(decompress);
22191 goto bad;
22192 }
22193 decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
22194 Py_DECREF(compressed_bytes);
22195 Py_DECREF(decompress);
22196 Py_DECREF(module);
22197 Py_DECREF(methodname);
22198 return decompressed;
22199import_failed:
22200 PyErr_Format(PyExc_ImportError,
22201 "Failed to import '%.20s.decompress' - cannot initialise module strings. "
22202 "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
22203 module_name, algo);
22204bad:
22205 Py_XDECREF(module);
22206 Py_DECREF(methodname);
22207 return NULL;
22208#endif
22209}
22210
22211/* DecompressString_LZSS */
22212#ifndef __Pyx_DecompressString_LZSS_UNUSED
22213CYTHON_UNUSED
22214static CYTHON_SMALL_CODE size_t __pyx_lzss_decompress(const uint8_t* src, uint8_t* dst, size_t dst_len) {
22215 size_t pos = 0, out_pos = 0;
22216 while (1) {
22217 uint32_t flags = src[pos++] | 0xFF00;
22218 while (flags & 0x100) {
22219 if (flags & 1) {
22220 dst[out_pos++] = src[pos++];
22221 } else {
22222 uint32_t lo = src[pos++], hi = src[pos++];
22223 uint32_t end_offset_of_last_occurrence, match_length;
22224 if (!(lo & 0x80)) {
22225 end_offset_of_last_occurrence = lo;
22226 match_length = hi;
22227 } else if (!(hi & 0x80)) {
22228 end_offset_of_last_occurrence = 0x80 + (((hi << 2) & 0x180) | (lo & 0x7F));
22229 match_length = hi & 0x1F;
22230 } else {
22231 end_offset_of_last_occurrence = 0x80 + ((hi & 0x7F) << 7 | (lo & 0x7F));
22232 match_length = src[pos++];
22233 }
22234 match_length += 3;
22235 size_t ref_pos = out_pos - end_offset_of_last_occurrence - match_length;
22236 memcpy(dst + out_pos, dst + ref_pos, match_length);
22237 out_pos += match_length;
22238 }
22239 if (out_pos >= dst_len) return pos;
22240 flags >>= 1;
22241 }
22242 }
22243}
22244#endif
22245static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length) {
22246#ifdef __Pyx_DecompressString_LZSS_UNUSED
22247 CYTHON_UNUSED_VAR(s);
22248 CYTHON_UNUSED_VAR(compressed_length);
22249 CYTHON_UNUSED_VAR(uncompressed_length);
22250 return NULL;
22251#else
22252 PyObject *result;
22253 unsigned char *result_data;
22254 size_t src_length;
22255 result = PyBytes_FromStringAndSize(NULL, (Py_ssize_t) uncompressed_length);
22256 if (unlikely(!result)) return NULL;
22257 result_data = __Pyx_PyBytes_AsWritableUString(result);
22258 if (unlikely(!result_data)) goto bad;
22259 src_length = __pyx_lzss_decompress((const uint8_t*) s, result_data, uncompressed_length);
22260 if (unlikely(src_length != compressed_length)) goto decompression_failed;
22261 return result;
22262decompression_failed:
22263 PyErr_SetString(PyExc_RuntimeError, "LZSS string data decompression failed");
22264bad:
22265 Py_DECREF(result);
22266 return NULL;
22267#endif
22268}
22269
22270#include <string.h>
22271static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
22272 size_t len = strlen(s);
22273 if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
22274 PyErr_SetString(PyExc_OverflowError, "byte string is too long");
22275 return -1;
22276 }
22277 return (Py_ssize_t) len;
22278}
22279static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
22280 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
22281 if (unlikely(len < 0)) return NULL;
22282 return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
22283}
22284static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
22285 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
22286 if (unlikely(len < 0)) return NULL;
22287 return PyByteArray_FromStringAndSize(c_str, len);
22288}
22289static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
22290 Py_ssize_t ignore;
22291 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
22292}
22293#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
22294static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
22295 if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
22296#if CYTHON_COMPILING_IN_LIMITED_API
22297 {
22298 const char* result;
22299 Py_ssize_t unicode_length;
22300 CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22301 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
22302 if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
22303 #else
22304 result = PyUnicode_AsUTF8AndSize(o, length);
22305 #endif
22306 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22307 unicode_length = PyUnicode_GetLength(o);
22308 if (unlikely(unicode_length < 0)) return NULL;
22309 if (unlikely(unicode_length != *length)) {
22310 PyUnicode_AsASCIIString(o);
22311 return NULL;
22312 }
22313 #endif
22314 return result;
22315 }
22316#else
22317#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22318 if (likely(PyUnicode_IS_ASCII(o))) {
22319 *length = PyUnicode_GET_LENGTH(o);
22320 return PyUnicode_AsUTF8(o);
22321 } else {
22322 PyUnicode_AsASCIIString(o);
22323 return NULL;
22324 }
22325#else
22326 return PyUnicode_AsUTF8AndSize(o, length);
22327#endif
22328#endif
22329}
22330#endif
22331static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
22332#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
22333 if (PyUnicode_Check(o)) {
22334 return __Pyx_PyUnicode_AsStringAndSize(o, length);
22335 } else
22336#endif
22337 if (PyByteArray_Check(o)) {
22338#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
22339 *length = PyByteArray_GET_SIZE(o);
22340 return PyByteArray_AS_STRING(o);
22341#else
22342 *length = PyByteArray_Size(o);
22343 if (*length == -1) return NULL;
22344 return PyByteArray_AsString(o);
22345#endif
22346 } else
22347 {
22348 char* result;
22349 int r = PyBytes_AsStringAndSize(o, &result, length);
22350 if (unlikely(r < 0)) {
22351 return NULL;
22352 } else {
22353 return result;
22354 }
22355 }
22356}
22357static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
22358 int is_true = x == Py_True;
22359 if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
22360 else return PyObject_IsTrue(x);
22361}
22362static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
22363 int retval;
22364 if (unlikely(!x)) return -1;
22365 retval = __Pyx_PyObject_IsTrue(x);
22366 Py_DECREF(x);
22367 return retval;
22368}
22369static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
22370 __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
22371 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
22372 if (unlikely(!result_type_name)) goto bad;
22373 #endif
22374 if (PyLong_Check(result)) {
22375 if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
22376 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). "
22377 "The ability to return an instance of a strict subclass of int is deprecated, "
22378 "and may be removed in a future version of Python.",
22379 result_type_name)) {
22380 __Pyx_DECREF_TypeName(result_type_name);
22381 goto bad;
22382 }
22383 __Pyx_DECREF_TypeName(result_type_name);
22384 return result;
22385 }
22386 PyErr_Format(PyExc_TypeError,
22387 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
22388 result_type_name);
22389 __Pyx_DECREF_TypeName(result_type_name);
22390bad:
22391 Py_DECREF(result);
22392 return NULL;
22393}
22394static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
22395#if CYTHON_USE_TYPE_SLOTS
22396 PyNumberMethods *m;
22397#endif
22398 PyObject *res = NULL;
22399 if (likely(PyLong_Check(x)))
22400 return __Pyx_NewRef(x);
22401#if CYTHON_USE_TYPE_SLOTS
22402 m = Py_TYPE(x)->tp_as_number;
22403 if (likely(m && m->nb_int)) {
22404 res = m->nb_int(x);
22405 }
22406#else
22407 if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
22408 res = PyNumber_Long(x);
22409 }
22410#endif
22411 if (likely(res)) {
22412 if (unlikely(!PyLong_CheckExact(res))) {
22413 return __Pyx_PyNumber_LongWrongResultType(res);
22414 }
22415 }
22416 else if (!PyErr_Occurred()) {
22417 PyErr_SetString(PyExc_TypeError,
22418 "an integer is required");
22419 }
22420 return res;
22421}
22422static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_AsSsize_t(PyObject* b) {
22423 #if CYTHON_USE_PYLONG_INTERNALS
22424 Py_ssize_t ival;
22425 const Py_ssize_t size = __Pyx_PyLong_DigitCount(b);
22426 const int is_neg = __Pyx_PyLong_IsNeg(b);
22427 const digit* digits = __Pyx_PyLong_Digits(b);
22428 if (size == 0) return 0;
22429 #if SIZEOF_SIZE_T * 8 > 1 * PyLong_SHIFT
22430 if (size == 1) {
22431 ival = (Py_ssize_t) (((size_t)digits[0]));
22432 } else
22433 #endif
22434 #if SIZEOF_SIZE_T * 8 > 2 * PyLong_SHIFT
22435 if (size == 2) {
22436 ival = (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
22437 } else
22438 #endif
22439 #if SIZEOF_SIZE_T * 8 > 3 * PyLong_SHIFT
22440 if (size == 3) {
22441 ival = (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
22442 } else
22443 #endif
22444 #if SIZEOF_SIZE_T * 8 > 4 * PyLong_SHIFT
22445 if (size == 4) {
22446 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]));
22447 } else
22448 #endif
22449 return PyLong_AsSsize_t(b);
22450 return is_neg ? -ival : ival;
22451 #else
22452 return PyLong_AsSsize_t(b);
22453 #endif
22454}
22455static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
22456 if (likely(PyLong_Check(b))) {
22457 return __Pyx_PyLong_AsSsize_t(b);
22458 } else {
22459 Py_ssize_t ival;
22460 PyObject *x = PyNumber_Index(b);
22461 if (unlikely(!x)) return -1;
22462 ival = __Pyx_PyLong_AsSsize_t(x);
22463 Py_DECREF(x);
22464 return ival;
22465 }
22466}
22467static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
22468 if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
22469 return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
22470 } else {
22471 Py_ssize_t ival;
22472 PyObject *x;
22473 x = PyNumber_Index(o);
22474 if (!x) return -1;
22475 ival = PyLong_AsLong(x);
22476 Py_DECREF(x);
22477 return ival;
22478 }
22479}
22480static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
22481 CYTHON_UNUSED_VAR(b);
22482 return __Pyx_NewRef(Py_None);
22483}
22484static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
22485 return __Pyx_NewRef(b ? Py_True: Py_False);
22486}
22487static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
22488 return PyLong_FromSize_t(ival);
22489}
22490
22491
22492/* MultiPhaseInitModuleState */
22493#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
22494#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22495#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
22496 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
22497#else
22498 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
22499#endif
22500#endif
22501#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
22502#error "Module state with PEP489 requires atomics. Currently that's one of\
22503 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
22504#endif
22505#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22506#define __Pyx_ModuleStateLookup_Lock()
22507#define __Pyx_ModuleStateLookup_Unlock()
22508#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
22509static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
22510#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
22511#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
22512#elif defined(__cplusplus) && __cplusplus >= 201103L
22513#include <mutex>
22514static std::mutex __Pyx_ModuleStateLookup_mutex;
22515#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
22516#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
22517#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
22518#include <threads.h>
22519static mtx_t __Pyx_ModuleStateLookup_mutex;
22520static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
22521static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
22522 mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
22523}
22524#define __Pyx_ModuleStateLookup_Lock()\
22525 call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
22526 mtx_lock(&__Pyx_ModuleStateLookup_mutex)
22527#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
22528#elif defined(HAVE_PTHREAD_H)
22529#include <pthread.h>
22530static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
22531#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
22532#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
22533#elif defined(_WIN32)
22534#include <Windows.h> // synchapi.h on its own doesn't work
22535static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
22536#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
22537#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
22538#else
22539#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
22540 Requires C standard >= C11, or C++ standard >= C++11,\
22541 or pthreads, or the Windows 32 API, or Python >= 3.13."
22542#endif
22543typedef struct {
22544 int64_t id;
22545 PyObject *module;
22546} __Pyx_InterpreterIdAndModule;
22547typedef struct {
22548 char interpreter_id_as_index;
22549 Py_ssize_t count;
22550 Py_ssize_t allocated;
22551 __Pyx_InterpreterIdAndModule table[1];
22552} __Pyx_ModuleStateLookupData;
22553#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
22554#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22555static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
22556#endif
22557#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22558static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
22559#else
22560static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
22561#endif
22562static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
22563 __Pyx_InterpreterIdAndModule* table,
22564 Py_ssize_t count,
22565 int64_t interpreterId) {
22566 __Pyx_InterpreterIdAndModule* begin = table;
22567 __Pyx_InterpreterIdAndModule* end = begin + count;
22568 if (begin->id == interpreterId) {
22569 return begin;
22570 }
22571 while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
22572 __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
22573 if (halfway->id == interpreterId) {
22574 return halfway;
22575 }
22576 if (halfway->id < interpreterId) {
22577 begin = halfway;
22578 } else {
22579 end = halfway;
22580 }
22581 }
22582 for (; begin < end; ++begin) {
22583 if (begin->id >= interpreterId) return begin;
22584 }
22585 return begin;
22586}
22587static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
22588 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
22589 if (interpreter_id == -1) return NULL;
22590#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22591 __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
22592 {
22593 __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
22594 if (likely(data)) {
22595 __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
22596 if (likely(data == new_data)) {
22597 goto read_finished;
22598 }
22599 }
22600 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
22601 __Pyx_ModuleStateLookup_Lock();
22602 __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
22603 data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
22604 __Pyx_ModuleStateLookup_Unlock();
22605 }
22606 read_finished:;
22607#else
22608 __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
22609#endif
22610 __Pyx_InterpreterIdAndModule* found = NULL;
22611 if (unlikely(!data)) goto end;
22612 if (data->interpreter_id_as_index) {
22613 if (interpreter_id < data->count) {
22614 found = data->table+interpreter_id;
22615 }
22616 } else {
22617 found = __Pyx_State_FindModuleStateLookupTableLowerBound(
22618 data->table, data->count, interpreter_id);
22619 }
22620 end:
22621 {
22622 PyObject *result=NULL;
22623 if (found && found->id == interpreter_id) {
22624 result = found->module;
22625 }
22626#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22627 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
22628#endif
22629 return result;
22630 }
22631}
22632#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22633static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
22634 while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
22635}
22636#else
22637#define __Pyx_ModuleStateLookup_wait_until_no_readers()
22638#endif
22639static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
22640 Py_ssize_t to_allocate = (*old_data)->allocated;
22641 while (to_allocate <= interpreter_id) {
22642 if (to_allocate == 0) to_allocate = 1;
22643 else to_allocate *= 2;
22644 }
22645 __Pyx_ModuleStateLookupData *new_data = *old_data;
22646 if (to_allocate != (*old_data)->allocated) {
22647 new_data = (__Pyx_ModuleStateLookupData *)realloc(
22648 *old_data,
22649 sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
22650 if (!new_data) {
22651 PyErr_NoMemory();
22652 return -1;
22653 }
22654 for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
22655 new_data->table[i].id = i;
22656 new_data->table[i].module = NULL;
22657 }
22658 new_data->allocated = to_allocate;
22659 }
22660 new_data->table[interpreter_id].module = module;
22661 if (new_data->count < interpreter_id+1) {
22662 new_data->count = interpreter_id+1;
22663 }
22664 *old_data = new_data;
22665 return 0;
22666}
22667static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
22668 __Pyx_InterpreterIdAndModule *read = data->table;
22669 __Pyx_InterpreterIdAndModule *write = data->table;
22670 __Pyx_InterpreterIdAndModule *end = read + data->count;
22671 for (; read<end; ++read) {
22672 if (read->module) {
22673 write->id = read->id;
22674 write->module = read->module;
22675 ++write;
22676 }
22677 }
22678 data->count = write - data->table;
22679 for (; write<end; ++write) {
22680 write->id = 0;
22681 write->module = NULL;
22682 }
22683 data->interpreter_id_as_index = 0;
22684}
22685static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
22686 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
22687 if (interpreter_id == -1) return -1;
22688 int result = 0;
22689 __Pyx_ModuleStateLookup_Lock();
22690#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22691 __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
22692 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
22693#else
22694 __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
22695#endif
22696 __Pyx_ModuleStateLookupData *new_data = old_data;
22697 if (!new_data) {
22698 new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
22699 if (!new_data) {
22700 result = -1;
22701 PyErr_NoMemory();
22702 goto end;
22703 }
22704 new_data->allocated = 1;
22705 new_data->interpreter_id_as_index = 1;
22706 }
22707 __Pyx_ModuleStateLookup_wait_until_no_readers();
22708 if (new_data->interpreter_id_as_index) {
22709 if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
22710 result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
22711 goto end;
22712 }
22713 __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
22714 }
22715 {
22716 Py_ssize_t insert_at = 0;
22717 {
22718 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
22719 new_data->table, new_data->count, interpreter_id);
22720 assert(lower_bound);
22721 insert_at = lower_bound - new_data->table;
22722 if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
22723 lower_bound->module = module;
22724 goto end; // already in table, nothing more to do
22725 }
22726 }
22727 if (new_data->count+1 >= new_data->allocated) {
22728 Py_ssize_t to_allocate = (new_data->count+1)*2;
22729 new_data =
22730 (__Pyx_ModuleStateLookupData*)realloc(
22731 new_data,
22732 sizeof(__Pyx_ModuleStateLookupData) +
22733 (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
22734 if (!new_data) {
22735 result = -1;
22736 new_data = old_data;
22737 PyErr_NoMemory();
22738 goto end;
22739 }
22740 new_data->allocated = to_allocate;
22741 }
22742 ++new_data->count;
22743 int64_t last_id = interpreter_id;
22744 PyObject *last_module = module;
22745 for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
22746 int64_t current_id = new_data->table[i].id;
22747 new_data->table[i].id = last_id;
22748 last_id = current_id;
22749 PyObject *current_module = new_data->table[i].module;
22750 new_data->table[i].module = last_module;
22751 last_module = current_module;
22752 }
22753 }
22754 end:
22755#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22756 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
22757#else
22758 __Pyx_ModuleStateLookup_data = new_data;
22759#endif
22760 __Pyx_ModuleStateLookup_Unlock();
22761 return result;
22762}
22763static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
22764 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
22765 if (interpreter_id == -1) return -1;
22766 __Pyx_ModuleStateLookup_Lock();
22767#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22768 __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
22769 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
22770#else
22771 __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
22772#endif
22773 if (data->interpreter_id_as_index) {
22774 if (interpreter_id < data->count) {
22775 data->table[interpreter_id].module = NULL;
22776 }
22777 goto done;
22778 }
22779 {
22780 __Pyx_ModuleStateLookup_wait_until_no_readers();
22781 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
22782 data->table, data->count, interpreter_id);
22783 if (!lower_bound) goto done;
22784 if (lower_bound->id != interpreter_id) goto done;
22785 __Pyx_InterpreterIdAndModule *end = data->table+data->count;
22786 for (;lower_bound<end-1; ++lower_bound) {
22787 lower_bound->id = (lower_bound+1)->id;
22788 lower_bound->module = (lower_bound+1)->module;
22789 }
22790 }
22791 --data->count;
22792 if (data->count == 0) {
22793 free(data);
22794 data = NULL;
22795 }
22796 done:
22797#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
22798 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
22799#else
22800 __Pyx_ModuleStateLookup_data = data;
22801#endif
22802 __Pyx_ModuleStateLookup_Unlock();
22803 return 0;
22804}
22805#endif
22806
22807/* #### Code section: utility_code_pragmas_end ### */
22808#ifdef _MSC_VER
22809#pragma warning( pop )
22810#endif
22811
22812
22813
22814/* #### Code section: end ### */
22815#endif /* Py_PYTHON_H */
Int n
Definition Headers.h:28
Double T
Definition Headers.h:87
Double r
Definition Headers.h:83
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 calculateSubgridErrorNavierStokes2D_generic_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, double *inverseJ, double *dmt, double *dm, double *f, double *a, double *tau0, double *tau1, double *cfl)
void calculateSubgridErrorShallowWater1D(int nElements_global, int nQuadraturePoints_element, double g, double *elementDiameter, double *h, double *hu, double *cfl_1, double *cfl_2)
void calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, double *inverseJ, double *dmt, double *dm, double *f, double *a, double *dr, double *tau0, double *tau1, double *cfl)
void calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *dm, double *f, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridError_ADR_generic_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *inverseJ, double *dmt, double *df, double *a, double *da, double *grad_phi, double *dphi, double *dr, double *pe, double *cfl, double *tau)
void calculateSubgridErrorStokes2D_1(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *u, double *v, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_dp, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *dsubgridErrorU_dv, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_du, double *dsubgridErrorV_dv)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridError_ADR_Sangalli_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, double *inverseJ, double *dmt, double *df, double *a, double *da, double *grad_phi, double *dphi, double *dr, double *pe, double *cfl, double *tau, double *tau_gradient)
void calculateSubgridErrorStokes3D_GLS_velocity(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
Calculate the subgrid error for velocity in 3D Stokes equation with a GLS-like formula.
void calculateSubgridErrorStokes3D_GLS_velocity_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
void calculateSubgridErrorNavierStokes2D_generic_withBodyForce_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, double *inverseJ, double *dmt, double *dm, double *f, double *a, double *dr, double *tau0, double *tau1, double *cfl)
void calculateSubgridError_ADR_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, int *rowptr, int *colind, char stabilization, double *elementDiameter, double *dmt, double *df, double *a, double *da, double *grad_phi, double *dphi, double *dr, double *pe, double *cfl, double *tau)
void calculateSubgridErrorNavierStokes3D_GLS_tauRes(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *tau0, double *tau1, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *dpdeResidualU_dv, double *dpdeResidualU_dw, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_du, double *dpdeResidualV_dv, double *dpdeResidualV_dw, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_du, double *dpdeResidualW_dv, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *dsubgridErrorU_dv, double *dsubgridErrorU_dw, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_du, double *dsubgridErrorV_dv, double *dsubgridErrorV_dw, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_du, double *dsubgridErrorW_dv, double *dsubgridErrorW_dw)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridErrorStokes2D_1_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *u, double *v, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_dp, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *dsubgridErrorU_dv, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_du, double *dsubgridErrorV_dv)
void calculateSubgridErrorNavierStokes2D_GLS_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, double hFactor, double *elementDiameter, double *dmt, double *dm, double *f, double *a, double *tau0, double *tau1, double *cfl)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridErrorStokes3D_GLS_velocity_pressure(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridErrorStokes2D_GLS_velocity_pressure_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv)
void calculateSubgridError_ADR_generic_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, double *inverseJ, double *dmt, double *df, double *a, double *da, double *grad_phi, double *dphi, double *dr, double *pe, double *cfl, double *tau)
void calculateSubgridErrorStokes2D_GLS_tauRes(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *tau0, double *tau1, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridError_tauRes(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, double *tau, double *pdeResidual, double *dpdeResidual, double *subgridError, double *dsubgridError)
Calculate the ASGS subgrid error given tau and the strong residual.
void calculateSubgridErrorStokes_GLS_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *pfac, double *a, double *tau0, double *tau1)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridErrorStokes3D_GLS_velocity_pressure_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
void calculateSubgridErrorStokes2D_GLS_velocity(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv)
Calculate the subgrid error for velocity in 2D Stokes equation with a GLS-like formula.
void calculateSubgridError_ADR_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, char stabilization, double *elementDiameter, double *dmt, double *df, double *a, double *da, double *grad_phi, double *dphi, double *dr, double *pe, double *cfl, double *tau)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation.
void calculateSubgridErrorNavierStokes2D_GLS_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, double hFactor, double *elementDiameter, double *dmt, double *dm, double *f, double *a, double *tau0, double *tau1, double *cfl)
void calculateSubgridErrorNavierStokes3D_GLS_velocity_pressure_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *dm, double *f, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
void calculateSubgridErrorShallowWater2D(int nElements_global, int nQuadraturePoints_element, double g, double *elementDiameter, double *h, double *hu, double *hv, double *cfl_1, double *cfl_2, double *cfl_3)
void calculateSubgridErrorNavierStokes2D_GLS_tauRes(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *tau0, double *tau1, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *dpdeResidualU_dv, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_du, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *dsubgridErrorU_dv, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_du, double *dsubgridErrorV_dv)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridError_A_tau(int nElements_global, int nQuadraturePoints_element, int nSpace, char stabilization, double *elementDiameter, double *dmt, double *df, double *cfl, double *tau)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation.
void calculateSubgridErrorStokes3D_GLS_tauRes(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *tau0, double *tau1, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *dpdeResidualP_dw, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *pdeResidualW, double *dpdeResidualW_dp, double *dpdeResidualW_dw, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *dsubgridErrorP_dw, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv, double *subgridErrorW, double *dsubgridErrorW_dp, double *dsubgridErrorW_dw)
3D version of Stokes GLS tau
void calculateSubgridErrorNavierStokes2D_generic_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, double *inverseJ, double *dmt, double *dm, double *f, double *a, double *tau0, double *tau1, double *cfl)
void calculateSubgridError_Harari_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, double dt, int *rowptr, int *colind, double *elementDiameter, double *a, double *tau)
void calculateSubgridErrorStokes_GLS_tau_sd(int nElements_global, int nQuadraturePoints_element, int nSpace, double *elementDiameter, double *pfac, double *a, double *tau0, double *tau1)
void calculateSubgridErrorStokes2D_GLS_velocity_pressure(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualP, double *dpdeResidualP_du, double *dpdeResidualP_dv, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorP, double *dsubgridErrorP_du, double *dsubgridErrorP_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv)
Calculate the stabilization parameter for the scalar advection-diffusion-reaction equation using the ...
void calculateSubgridErrorStokes2D_GLS_velocity_sd(int nElements_global, int nQuadraturePoints_element, int nDOF_trial_element, int nSpace, double *elementDiameter, double *a, double *pdeResidualU, double *dpdeResidualU_dp, double *dpdeResidualU_du, double *pdeResidualV, double *dpdeResidualV_dp, double *dpdeResidualV_dv, double *subgridErrorU, double *dsubgridErrorU_dp, double *dsubgridErrorU_du, double *subgridErrorV, double *dsubgridErrorV_dp, double *dsubgridErrorV_dv)
void calculateSubgridErrorGradient_tauRes(int nElements_global, int nQuadraturePoints_element, int nSpace, double *tau_gradient, double *grad_pdeResidual, double *grad_subgridError)
Calculate the ASGS subgrid error given tau and the strong residual.
#define c(i)
Definition jf.h:21
C implementations of subgrid error calculations.