proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
MeshAdapt.cpp
Go to the documentation of this file.
1/* Generated by Cython 3.3.0 */
2
3/* BEGIN: Cython Metadata
4{
5 "distutils": {
6 "define_macros": [
7 [
8 "PROTEUS_SUPERLU_H",
9 "\"slu_ddefs.h\""
10 ]
11 ],
12 "depends": [
13 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayobject.h",
14 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayscalars.h",
15 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarrayobject.h",
16 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarraytypes.h",
17 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include/numpy/ufuncobject.h",
18 "proteus/MeshAdaptPUMI/MeshAdaptPUMI.h",
19 "proteus/cmeshTools.pxd",
20 "proteus/cpartitioning.pyx",
21 "proteus/mesh.cpp",
22 "proteus/mesh.h",
23 "proteus/meshio.cpp",
24 "proteus/partitioning.cpp",
25 "proteus/partitioning.h"
26 ],
27 "extra_compile_args": [
28 "-std=c++20",
29 "-g",
30 "-DMESH_INFO",
31 "-Wall",
32 "-DF77_POST_UNDERSCORE",
33 "-DUSE_BLAS",
34 "-DCMRVEC_BOUNDS_CHECK",
35 "-DMV_VECTOR_BOUNDS_CHECK",
36 "-DPETSC_INCLUDE_AS_C",
37 "-DPETSC_SKIP_COMPLEX"
38 ],
39 "extra_link_args": [
40 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
41 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
42 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
43 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
44 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
45 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
46 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
47 "-Wl,-rpath,/work/cekees/miniforge3/envs/proteus-jupyterhub/lib"
48 ],
49 "include_dirs": [
50 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/_core/include",
51 "include",
52 "proteus",
53 "proteus/MeshAdaptPUMI",
54 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
55 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
56 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
57 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
58 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
59 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include",
60 "/work/cekees/miniforge3/envs/proteus-jupyterhub/include"
61 ],
62 "language": "c++",
63 "libraries": [
64 "spr",
65 "ma",
66 "parma",
67 "apf_zoltan",
68 "mds",
69 "apf",
70 "mth",
71 "gmi",
72 "pcu",
73 "lion",
74 "zoltan",
75 "parmetis",
76 "metis",
77 "sam",
78 "bz2",
79 "petsc"
80 ],
81 "library_dirs": [
82 "/work/cekees/miniforge3/envs/proteus-jupyterhub/lib",
83 "/usr/lib/x86_64-linux-gnu/"
84 ],
85 "name": "MeshAdaptPUMI.MeshAdapt",
86 "sources": [
87 "proteus/MeshAdaptPUMI/MeshAdapt.pyx",
88 "proteus/MeshAdaptPUMI/cMeshAdaptPUMI.cpp",
89 "proteus/MeshAdaptPUMI/MeshConverter.cpp",
90 "proteus/MeshAdaptPUMI/ParallelMeshConverter.cpp",
91 "proteus/MeshAdaptPUMI/MeshFields.cpp",
92 "proteus/MeshAdaptPUMI/SizeField.cpp",
93 "proteus/MeshAdaptPUMI/DumpMesh.cpp",
94 "proteus/MeshAdaptPUMI/ErrorResidualMethod.cpp",
95 "proteus/MeshAdaptPUMI/VMS.cpp",
96 "proteus/MeshAdaptPUMI/createAnalyticGeometry.cpp"
97 ]
98 },
99 "module_name": "MeshAdaptPUMI.MeshAdapt"
100}
101END: Cython Metadata */
102
103#ifndef PY_SSIZE_T_CLEAN
104#define PY_SSIZE_T_CLEAN
105#endif /* PY_SSIZE_T_CLEAN */
106/* InitLimitedAPI */
107#if defined(Py_LIMITED_API)
108 #if !defined(CYTHON_LIMITED_API)
109 #define CYTHON_LIMITED_API 1
110 #endif
111#elif defined(CYTHON_LIMITED_API)
112 #ifdef _MSC_VER
113 #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.")
114 #else
115 #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.
116 #endif
117#endif
118
119#include "Python.h"
120#ifndef Py_PYTHON_H
121 #error Python headers needed to compile C extensions, please install development version of Python.
122#elif PY_VERSION_HEX < 0x03090000
123 #error Cython requires Python 3.9+.
124#elif defined(Py_LIMITED_API) && (Py_LIMITED_API & 0xFFFF0000) > (PY_VERSION_HEX & 0xFFFF0000)
125 #error 'Py_LIMITED_API' can only select past Python X.Y versions, not future ones.
126#else
127#define __PYX_ABI_VERSION "3_3_0"
128#define CYTHON_HEX_VERSION 0x030300F0
129#define CYTHON_FUTURE_DIVISION 1
130/* CModulePreamble */
131#include <stddef.h>
132#ifndef offsetof
133 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
134#endif
135#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
136 #ifndef __stdcall
137 #define __stdcall
138 #endif
139 #ifndef __cdecl
140 #define __cdecl
141 #endif
142 #ifndef __fastcall
143 #define __fastcall
144 #endif
145#endif
146#ifdef __has_builtin
147 #define __Pyx_has_cbuiltin(name) __has_builtin(name)
148#else
149 #define __Pyx_has_cbuiltin(name) (0)
150#endif
151#ifndef DL_IMPORT
152 #define DL_IMPORT(t) t
153#endif
154#ifndef DL_EXPORT
155 #define DL_EXPORT(t) t
156#endif
157#define __PYX_COMMA ,
158#ifndef PY_LONG_LONG
159 #define PY_LONG_LONG LONG_LONG
160#endif
161#ifndef Py_HUGE_VAL
162 #define Py_HUGE_VAL HUGE_VAL
163#endif
164#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
165#if defined(CYTHON_LIMITED_API)
166 #ifdef Py_LIMITED_API
167 #undef __PYX_LIMITED_VERSION_HEX
168 #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
169 #if Py_LIMITED_API < 0x03090000
170 #error "Cython 3.3 requires the Python Limited API version to be 3.9 or greater."
171 #endif
172 #endif
173 #if defined(GRAALVM_PYTHON) || defined(PYPY_VERSION)
174 #ifdef _MSC_VER
175 #pragma message ("Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
176 code for PyPy and GraalPy and is unlikely to work.")
177 #else
178 #warning "Py_LIMITED_API is defined on PyPy or GraalPy. This takes precedence over Cython's specialized\
179 code for PyPy and GraalPy and is unlikely to work."
180 #endif
181 #endif
182 #define CYTHON_COMPILING_IN_PYPY 0
183 #define CYTHON_COMPILING_IN_CPYTHON 0
184 #define CYTHON_COMPILING_IN_LIMITED_API 1
185 #define CYTHON_COMPILING_IN_GRAAL 0
186 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
187 #undef CYTHON_USE_TYPE_SLOTS
188 #define CYTHON_USE_TYPE_SLOTS 0
189 #undef CYTHON_USE_TYPE_SPECS
190 #define CYTHON_USE_TYPE_SPECS 1
191 #undef CYTHON_USE_PYTYPE_LOOKUP
192 #define CYTHON_USE_PYTYPE_LOOKUP 0
193 #undef CYTHON_USE_PYLIST_INTERNALS
194 #define CYTHON_USE_PYLIST_INTERNALS 0
195 #undef CYTHON_USE_UNICODE_INTERNALS
196 #define CYTHON_USE_UNICODE_INTERNALS 0
197 #ifndef CYTHON_USE_UNICODE_WRITER
198 #define CYTHON_USE_UNICODE_WRITER 0
199 #endif
200 #undef CYTHON_USE_PYLONG_INTERNALS
201 #define CYTHON_USE_PYLONG_INTERNALS 0
202 #ifndef CYTHON_AVOID_BORROWED_REFS
203 #define CYTHON_AVOID_BORROWED_REFS 0
204 #endif
205 #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
206 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
207 #endif
208 #undef CYTHON_ASSUME_SAFE_MACROS
209 #define CYTHON_ASSUME_SAFE_MACROS 0
210 #undef CYTHON_ASSUME_SAFE_SIZE
211 #define CYTHON_ASSUME_SAFE_SIZE 0
212 #undef CYTHON_UNPACK_METHODS
213 #define CYTHON_UNPACK_METHODS 0
214 #undef CYTHON_FAST_THREAD_STATE
215 #define CYTHON_FAST_THREAD_STATE 0
216 #undef CYTHON_FAST_GIL
217 #define CYTHON_FAST_GIL 0
218 #undef CYTHON_VECTORCALL
219 #define CYTHON_VECTORCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
220 #ifndef CYTHON_VECTORCALL_TPNEW
221 #define CYTHON_VECTORCALL_TPNEW (CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
222 #endif
223 #ifndef CYTHON_PEP487_INIT_SUBCLASS
224 #define CYTHON_PEP487_INIT_SUBCLASS 1
225 #endif
226 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
227 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
228 #endif
229 #ifndef CYTHON_USE_MODULE_STATE
230 #define CYTHON_USE_MODULE_STATE 0
231 #endif
232 #undef CYTHON_USE_SYS_MONITORING
233 #define CYTHON_USE_SYS_MONITORING 0
234 #ifndef CYTHON_USE_TP_FINALIZE
235 #define CYTHON_USE_TP_FINALIZE (__PYX_LIMITED_VERSION_HEX >= 0x030F0000 && PY_VERSION_HEX > 0x030F00A8)
236 #endif
237 #ifndef CYTHON_USE_AM_SEND
238 #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
239 #endif
240 #undef CYTHON_USE_DICT_VERSIONS
241 #define CYTHON_USE_DICT_VERSIONS 0
242 #undef CYTHON_USE_EXC_INFO_STACK
243 #define CYTHON_USE_EXC_INFO_STACK 0
244 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
245 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
246 #endif
247 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
248 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
249 #endif
250 #ifndef CYTHON_USE_FREELISTS
251 #define CYTHON_USE_FREELISTS 1
252 #endif
253 #undef CYTHON_IMMORTAL_CONSTANTS
254 #define CYTHON_IMMORTAL_CONSTANTS 0
255 #if __PYX_LIMITED_VERSION_HEX < 0x030E0000
256 #undef CYTHON_OPAQUE_OBJECTS
257 #define CYTHON_OPAQUE_OBJECTS 0
258 #elif !defined(CYTHON_OPAQUE_OBJECTS)
259 #define CYTHON_OPAQUE_OBJECTS (__PYX_LIMITED_VERSION_HEX >= 0x030F0000)
260 #endif
261#elif defined(GRAALVM_PYTHON)
262 /* For very preliminary testing purposes. Most variables are set the same as PyPy.
263 The existence of this section does not imply that anything works or is even tested */
264 #define CYTHON_COMPILING_IN_PYPY 0
265 #define CYTHON_COMPILING_IN_CPYTHON 0
266 #define CYTHON_COMPILING_IN_LIMITED_API 0
267 #define CYTHON_COMPILING_IN_GRAAL 1
268 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
269 #ifndef CYTHON_USE_TYPE_SLOTS
270 #define CYTHON_USE_TYPE_SLOTS 0
271 #endif
272 #undef CYTHON_USE_TYPE_SPECS
273 #define CYTHON_USE_TYPE_SPECS 0
274 #undef CYTHON_USE_PYTYPE_LOOKUP
275 #define CYTHON_USE_PYTYPE_LOOKUP 0
276 #undef CYTHON_USE_PYLIST_INTERNALS
277 #define CYTHON_USE_PYLIST_INTERNALS 0
278 #undef CYTHON_USE_UNICODE_INTERNALS
279 #define CYTHON_USE_UNICODE_INTERNALS 0
280 #undef CYTHON_USE_UNICODE_WRITER
281 #define CYTHON_USE_UNICODE_WRITER 0
282 #undef CYTHON_USE_PYLONG_INTERNALS
283 #define CYTHON_USE_PYLONG_INTERNALS 0
284 #undef CYTHON_AVOID_BORROWED_REFS
285 #define CYTHON_AVOID_BORROWED_REFS 1
286 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
287 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
288 #undef CYTHON_ASSUME_SAFE_MACROS
289 #define CYTHON_ASSUME_SAFE_MACROS 0
290 #undef CYTHON_ASSUME_SAFE_SIZE
291 #define CYTHON_ASSUME_SAFE_SIZE 0
292 #undef CYTHON_UNPACK_METHODS
293 #define CYTHON_UNPACK_METHODS 0
294 #undef CYTHON_FAST_THREAD_STATE
295 #define CYTHON_FAST_THREAD_STATE 0
296 #undef CYTHON_FAST_GIL
297 #define CYTHON_FAST_GIL 0
298 #ifndef CYTHON_VECTORCALL
299 #define CYTHON_VECTORCALL 1
300 #endif
301 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
302 #undef CYTHON_VECTORCALL_TPNEW
303 #define CYTHON_VECTORCALL_TPNEW 0
304 #elif !defined(CYTHON_VECTORCALL_TPNEW)
305 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
306 #endif
307 #ifndef CYTHON_PEP487_INIT_SUBCLASS
308 #define CYTHON_PEP487_INIT_SUBCLASS 1
309 #endif
310 #undef CYTHON_PEP489_MULTI_PHASE_INIT
311 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
312 #undef CYTHON_USE_MODULE_STATE
313 #define CYTHON_USE_MODULE_STATE 0
314 #undef CYTHON_USE_SYS_MONITORING
315 #define CYTHON_USE_SYS_MONITORING 0
316 #undef CYTHON_USE_TP_FINALIZE
317 #define CYTHON_USE_TP_FINALIZE 0
318 #undef CYTHON_USE_AM_SEND
319 #define CYTHON_USE_AM_SEND 0
320 #undef CYTHON_USE_DICT_VERSIONS
321 #define CYTHON_USE_DICT_VERSIONS 0
322 #undef CYTHON_USE_EXC_INFO_STACK
323 #define CYTHON_USE_EXC_INFO_STACK 1
324 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
325 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
326 #endif
327 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
328 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
329 #endif
330 #undef CYTHON_USE_FREELISTS
331 #define CYTHON_USE_FREELISTS 0
332 #undef CYTHON_IMMORTAL_CONSTANTS
333 #define CYTHON_IMMORTAL_CONSTANTS 0
334 #undef CYTHON_OPAQUE_OBJECTS
335 #define CYTHON_OPAQUE_OBJECTS 0
336#elif defined(PYPY_VERSION)
337 #define CYTHON_COMPILING_IN_PYPY 1
338 #define CYTHON_COMPILING_IN_CPYTHON 0
339 #define CYTHON_COMPILING_IN_LIMITED_API 0
340 #define CYTHON_COMPILING_IN_GRAAL 0
341 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
342 #undef CYTHON_USE_TYPE_SLOTS
343 #define CYTHON_USE_TYPE_SLOTS 1
344 #ifndef CYTHON_USE_TYPE_SPECS
345 #define CYTHON_USE_TYPE_SPECS 0
346 #endif
347 #undef CYTHON_USE_PYTYPE_LOOKUP
348 #define CYTHON_USE_PYTYPE_LOOKUP 0
349 #undef CYTHON_USE_PYLIST_INTERNALS
350 #define CYTHON_USE_PYLIST_INTERNALS 0
351 #undef CYTHON_USE_UNICODE_INTERNALS
352 #define CYTHON_USE_UNICODE_INTERNALS 0
353 #undef CYTHON_USE_UNICODE_WRITER
354 #define CYTHON_USE_UNICODE_WRITER 0
355 #undef CYTHON_USE_PYLONG_INTERNALS
356 #define CYTHON_USE_PYLONG_INTERNALS 0
357 #undef CYTHON_AVOID_BORROWED_REFS
358 #define CYTHON_AVOID_BORROWED_REFS 1
359 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
360 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
361 #undef CYTHON_ASSUME_SAFE_MACROS
362 #define CYTHON_ASSUME_SAFE_MACROS 0
363 #ifndef CYTHON_ASSUME_SAFE_SIZE
364 #define CYTHON_ASSUME_SAFE_SIZE 1
365 #endif
366 #undef CYTHON_UNPACK_METHODS
367 #define CYTHON_UNPACK_METHODS 0
368 #undef CYTHON_FAST_THREAD_STATE
369 #define CYTHON_FAST_THREAD_STATE 0
370 #undef CYTHON_FAST_GIL
371 #define CYTHON_FAST_GIL 0
372 #ifndef CYTHON_VECTORCALL
373 #define CYTHON_VECTORCALL 1
374 #endif
375 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
376 #undef CYTHON_VECTORCALL_TPNEW
377 #define CYTHON_VECTORCALL_TPNEW 0
378 #elif !defined(CYTHON_VECTORCALL_TPNEW)
379 #define CYTHON_VECTORCALL_TPNEW (PYPY_VERSION_NUM >= 0x07030800 && CYTHON_VECTORCALL)
380 #endif
381 #ifndef CYTHON_PEP487_INIT_SUBCLASS
382 #define CYTHON_PEP487_INIT_SUBCLASS 1
383 #endif
384 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
385 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
386 #endif
387 #undef CYTHON_USE_MODULE_STATE
388 #define CYTHON_USE_MODULE_STATE 0
389 #undef CYTHON_USE_SYS_MONITORING
390 #define CYTHON_USE_SYS_MONITORING 0
391 #ifndef CYTHON_USE_TP_FINALIZE
392 #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
393 #endif
394 #undef CYTHON_USE_AM_SEND
395 #define CYTHON_USE_AM_SEND 0
396 #undef CYTHON_USE_DICT_VERSIONS
397 #define CYTHON_USE_DICT_VERSIONS 0
398 #undef CYTHON_USE_EXC_INFO_STACK
399 #define CYTHON_USE_EXC_INFO_STACK 0
400 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
401 #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
402 #endif
403 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
404 #define CYTHON_USE_OWN_PREP_RERAISE_STAR 1
405 #endif
406 #undef CYTHON_USE_FREELISTS
407 #define CYTHON_USE_FREELISTS 0
408 #undef CYTHON_IMMORTAL_CONSTANTS
409 #define CYTHON_IMMORTAL_CONSTANTS 0
410 #undef CYTHON_OPAQUE_OBJECTS
411 #define CYTHON_OPAQUE_OBJECTS 0
412#else
413 #define CYTHON_COMPILING_IN_PYPY 0
414 #define CYTHON_COMPILING_IN_CPYTHON 1
415 #define CYTHON_COMPILING_IN_LIMITED_API 0
416 #define CYTHON_COMPILING_IN_GRAAL 0
417 #ifdef Py_GIL_DISABLED
418 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
419 #else
420 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
421 #endif
422 #if PY_VERSION_HEX < 0x030A0000
423 #undef CYTHON_USE_TYPE_SLOTS
424 #define CYTHON_USE_TYPE_SLOTS 1
425 #elif !defined(CYTHON_USE_TYPE_SLOTS)
426 #define CYTHON_USE_TYPE_SLOTS 1
427 #endif
428 #ifndef CYTHON_USE_TYPE_SPECS
429 #define CYTHON_USE_TYPE_SPECS 0
430 #endif
431 #ifndef CYTHON_USE_PYTYPE_LOOKUP
432 #define CYTHON_USE_PYTYPE_LOOKUP 1
433 #endif
434 #ifndef CYTHON_USE_PYLONG_INTERNALS
435 #define CYTHON_USE_PYLONG_INTERNALS 1
436 #endif
437 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
438 #undef CYTHON_USE_PYLIST_INTERNALS
439 #define CYTHON_USE_PYLIST_INTERNALS 0
440 #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
441 #define CYTHON_USE_PYLIST_INTERNALS 1
442 #endif
443 #ifndef CYTHON_USE_UNICODE_INTERNALS
444 #define CYTHON_USE_UNICODE_INTERNALS 1
445 #endif
446 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
447 #undef CYTHON_USE_UNICODE_WRITER
448 #define CYTHON_USE_UNICODE_WRITER 0
449 #elif !defined(CYTHON_USE_UNICODE_WRITER)
450 #define CYTHON_USE_UNICODE_WRITER 1
451 #endif
452 #ifndef CYTHON_AVOID_BORROWED_REFS
453 #define CYTHON_AVOID_BORROWED_REFS 0
454 #endif
455 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
456 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
457 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
458 #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
459 #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
460 #endif
461 #ifndef CYTHON_ASSUME_SAFE_MACROS
462 #define CYTHON_ASSUME_SAFE_MACROS 1
463 #endif
464 #ifndef CYTHON_ASSUME_SAFE_SIZE
465 #define CYTHON_ASSUME_SAFE_SIZE 1
466 #endif
467 #ifndef CYTHON_UNPACK_METHODS
468 #define CYTHON_UNPACK_METHODS 1
469 #endif
470 #ifndef CYTHON_FAST_THREAD_STATE
471 #define CYTHON_FAST_THREAD_STATE 1
472 #endif
473 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
474 #undef CYTHON_FAST_GIL
475 #define CYTHON_FAST_GIL 0
476 #elif !defined(CYTHON_FAST_GIL)
477 #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
478 #endif
479 #ifndef CYTHON_VECTORCALL
480 #define CYTHON_VECTORCALL 1
481 #endif
482 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX < 0x030E0000
483 #undef CYTHON_VECTORCALL_TPNEW
484 #define CYTHON_VECTORCALL_TPNEW 0
485 #elif !defined(CYTHON_VECTORCALL_TPNEW)
486 #define CYTHON_VECTORCALL_TPNEW CYTHON_VECTORCALL
487 #endif
488 #ifndef CYTHON_PEP487_INIT_SUBCLASS
489 #define CYTHON_PEP487_INIT_SUBCLASS 1
490 #endif
491 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
492 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
493 #endif
494 #ifndef CYTHON_USE_MODULE_STATE
495 #define CYTHON_USE_MODULE_STATE 0
496 #endif
497 #ifndef CYTHON_USE_SYS_MONITORING
498 #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
499 #endif
500 #ifndef CYTHON_USE_TP_FINALIZE
501 #define CYTHON_USE_TP_FINALIZE 1
502 #endif
503 #ifndef CYTHON_USE_AM_SEND
504 #define CYTHON_USE_AM_SEND 1
505 #endif
506 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
507 #undef CYTHON_USE_DICT_VERSIONS
508 #define CYTHON_USE_DICT_VERSIONS 0
509 #elif !defined(CYTHON_USE_DICT_VERSIONS)
510 #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
511 #endif
512 #ifndef CYTHON_USE_EXC_INFO_STACK
513 #define CYTHON_USE_EXC_INFO_STACK 1
514 #endif
515 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
516 #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
517 #endif
518 #ifndef CYTHON_USE_OWN_PREP_RERAISE_STAR
519 #define CYTHON_USE_OWN_PREP_RERAISE_STAR (PY_VERSION_HEX < 0x030C00B2)
520 #endif
521 #ifndef CYTHON_USE_FREELISTS
522 #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
523 #endif
524 #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
525 #undef CYTHON_IMMORTAL_CONSTANTS
526 #define CYTHON_IMMORTAL_CONSTANTS 0 // definitely won't work
527 #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
528 #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
529 #endif
530 #ifndef CYTHON_OPAQUE_OBJECTS
531 #define CYTHON_OPAQUE_OBJECTS 0
532 #endif
533#endif
534#if CYTHON_USE_PYLONG_INTERNALS
535 #undef SHIFT
536 #undef BASE
537 #undef MASK
538 #ifdef SIZEOF_VOID_P
539 enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
540 #endif
541#endif
542#ifndef __has_attribute
543 #define __has_attribute(x) 0
544#endif
545#ifndef __has_cpp_attribute
546 #define __has_cpp_attribute(x) 0
547#endif
548#ifndef CYTHON_RESTRICT
549 #if defined(__GNUC__)
550 #define CYTHON_RESTRICT __restrict__
551 #elif defined(_MSC_VER) && _MSC_VER >= 1400
552 #define CYTHON_RESTRICT __restrict
553 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
554 #define CYTHON_RESTRICT restrict
555 #else
556 #define CYTHON_RESTRICT
557 #endif
558#endif
559#ifndef CYTHON_UNUSED
560 #if defined(__cplusplus)
561 /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
562 * but leads to warnings with -pedantic, since it is a C++17 feature */
563 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
564 #if __has_cpp_attribute(maybe_unused)
565 #define CYTHON_UNUSED [[maybe_unused]]
566 #endif
567 #endif
568 #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
569 #define CYTHON_UNUSED [[maybe_unused]]
570 #endif
571#endif
572#ifndef CYTHON_UNUSED
573# if defined(__GNUC__)
574# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
575# define CYTHON_UNUSED __attribute__ ((__unused__))
576# else
577# define CYTHON_UNUSED
578# endif
579# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
580# define CYTHON_UNUSED __attribute__ ((__unused__))
581# else
582# define CYTHON_UNUSED
583# endif
584#endif
585#ifndef CYTHON_UNUSED_VAR
586# if defined(__cplusplus)
587 template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
588# else
589# define CYTHON_UNUSED_VAR(x) (void)(x)
590# endif
591#endif
592#ifndef CYTHON_MAYBE_UNUSED_VAR
593 #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
594#endif
595#ifndef CYTHON_NCP_UNUSED
596# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
597# define CYTHON_NCP_UNUSED
598# else
599# define CYTHON_NCP_UNUSED CYTHON_UNUSED
600# endif
601#endif
602#ifndef CYTHON_USE_CPP_STD_MOVE
603 #if defined(__cplusplus) && (\
604 __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
605 #define CYTHON_USE_CPP_STD_MOVE 1
606 #else
607 #define CYTHON_USE_CPP_STD_MOVE 0
608 #endif
609#endif
610#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
611#include <stdint.h>
612typedef uintptr_t __pyx_uintptr_t;
613#ifndef CYTHON_FALLTHROUGH
614 #if defined(__cplusplus)
615 /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
616 * but leads to warnings with -pedantic, since it is a C++17 feature */
617 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
618 #if __has_cpp_attribute(fallthrough)
619 #define CYTHON_FALLTHROUGH [[fallthrough]]
620 #endif
621 #endif
622 #ifndef CYTHON_FALLTHROUGH
623 #if __has_cpp_attribute(clang::fallthrough)
624 #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
625 #elif __has_cpp_attribute(gnu::fallthrough)
626 #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
627 #endif
628 #endif
629 #endif
630 #ifndef CYTHON_FALLTHROUGH
631 #if __has_attribute(fallthrough)
632 #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
633 #else
634 #define CYTHON_FALLTHROUGH
635 #endif
636 #endif
637 #if defined(__clang__) && defined(__apple_build_version__)
638 #if __apple_build_version__ < 7000000
639 #undef CYTHON_FALLTHROUGH
640 #define CYTHON_FALLTHROUGH
641 #endif
642 #endif
643#endif
644#ifdef Py_UNREACHABLE
645 #define __Pyx_UNREACHABLE() Py_UNREACHABLE()
646#elif __Pyx_has_cbuiltin(__builtin_unreachable)
647 #define __Pyx_UNREACHABLE() __builtin_unreachable()
648#elif defined(__clang__) || defined(__INTEL_COMPILER) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)))
649 #define __Pyx_UNREACHABLE() __builtin_unreachable()
650#elif defined(_MSC_VER)
651 #define __Pyx_UNREACHABLE() __assume(0)
652#else
653 #define __Pyx_UNREACHABLE() Py_FatalError("Unreachable C code path reached")
654#endif
655#ifndef Py_UNREACHABLE
656 #define Py_UNREACHABLE() __Pyx_UNREACHABLE()
657#endif
658#ifdef __cplusplus
659 template <typename T>
660 struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
661 #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
662#else
663 #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
664#endif
665#if CYTHON_COMPILING_IN_PYPY == 1
666 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX < 0x030A0000)
667#else
668 #define __PYX_NEED_TP_PRINT_SLOT 0
669#endif
670#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
671#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
672#define __Pyx_PyErr_FetchException(petype, peval, petb) PyErr_Fetch(petype, peval, petb)
673#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_Restore(etype, eval, etb)
674#else
675#define __Pyx_PyErr_FetchException(petype, peval, petb) *(petype)=NULL; *(peval)=PyErr_GetRaisedException(); *(petb)=NULL
676#define __Pyx_PyErr_RestoreException(etype, eval, etb) PyErr_SetRaisedException(eval)
677#endif
678
679/* CppInitCode */
680#ifndef __cplusplus
681 #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
682#endif
683#ifndef CYTHON_INLINE
684 #if defined(__clang__)
685 #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
686 #else
687 #define CYTHON_INLINE inline
688 #endif
689#endif
690template<typename T>
691void __Pyx_call_destructor(T& x) {
692 x.~T();
693}
694template<typename T>
695class __Pyx_FakeReference {
696 public:
697 __Pyx_FakeReference() : ptr(NULL) { }
698 __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
699 T *operator->() { return ptr; }
700 T *operator&() { return ptr; }
701 operator T&() { return *ptr; }
702 template<typename U> bool operator ==(const U& other) const { return *ptr == other; }
703 template<typename U> bool operator !=(const U& other) const { return *ptr != other; }
704 template<typename U> bool operator==(const __Pyx_FakeReference<U>& other) const { return *ptr == *other.ptr; }
705 template<typename U> bool operator!=(const __Pyx_FakeReference<U>& other) const { return *ptr != *other.ptr; }
706 private:
707 T *ptr;
708};
709
710/* PythonCompatibility */
711#define __PYX_BUILD_PY_SSIZE_T "n"
712#define CYTHON_FORMAT_SSIZE_T "z"
713#define __Pyx_BUILTIN_MODULE_NAME "builtins"
714#define __Pyx_DefaultClassType PyType_Type
715#if CYTHON_COMPILING_IN_LIMITED_API
716 #ifndef CO_OPTIMIZED
717 static int CO_OPTIMIZED;
718 #endif
719 #ifndef CO_NEWLOCALS
720 static int CO_NEWLOCALS;
721 #endif
722 #ifndef CO_VARARGS
723 static int CO_VARARGS;
724 #endif
725 #ifndef CO_VARKEYWORDS
726 static int CO_VARKEYWORDS;
727 #endif
728 #ifndef CO_ASYNC_GENERATOR
729 static int CO_ASYNC_GENERATOR;
730 #endif
731 #ifndef CO_GENERATOR
732 static int CO_GENERATOR;
733 #endif
734 #ifndef CO_COROUTINE
735 static int CO_COROUTINE;
736 #endif
737#else
738 #ifndef CO_COROUTINE
739 #define CO_COROUTINE 0x80
740 #endif
741 #ifndef CO_ASYNC_GENERATOR
742 #define CO_ASYNC_GENERATOR 0x200
743 #endif
744#endif
745static int __Pyx_init_co_variables(void);
746#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
747 #define __Pyx_Py_Is(x, y) Py_Is(x, y)
748#else
749 #define __Pyx_Py_Is(x, y) ((x) == (y))
750#endif
751#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
752 #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
753#else
754 #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
755#endif
756#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
757 #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
758#else
759 #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
760#endif
761#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
762 #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
763#else
764 #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
765#endif
766#define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj))
767#if CYTHON_COMPILING_IN_PYPY
768 #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
769#else
770 #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
771#endif
772#if CYTHON_COMPILING_IN_LIMITED_API
773static unsigned long __Pyx_Runtime_TPFLAGS_SEQUENCE;
774static unsigned long __Pyx_Runtime_TPFLAGS_MAPPING;
775#else
776#define __Pyx_Runtime_TPFLAGS_SEQUENCE Py_TPFLAGS_SEQUENCE
777#define __Pyx_Runtime_TPFLAGS_MAPPING Py_TPFLAGS_MAPPING
778#endif
779static int __Pyx_init_tpflags_variables(void);
780#ifndef Py_TPFLAGS_HAVE_FINALIZE
781 #define Py_TPFLAGS_HAVE_FINALIZE 0
782#endif
783#ifndef Py_TPFLAGS_SEQUENCE
784 #define Py_TPFLAGS_SEQUENCE (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 5)
785#endif
786#ifndef Py_TPFLAGS_MAPPING
787 #define Py_TPFLAGS_MAPPING (CYTHON_COMPILING_IN_LIMITED_API ? 0 : 1 << 6)
788#endif
789#ifndef Py_TPFLAGS_IMMUTABLETYPE
790 #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
791#endif
792#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
793 #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
794#endif
795#ifndef METH_STACKLESS
796 #define METH_STACKLESS 0
797#endif
798#if !defined(METH_FASTCALL) || CYTHON_COMPILING_IN_PYPY
799 #ifndef METH_FASTCALL
800 #define METH_FASTCALL 0x80
801 #endif
802 typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
803 typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
804 Py_ssize_t nargs, PyObject *kwnames);
805#else
806 #if PY_VERSION_HEX >= 0x030d00A4
807 # define __Pyx_PyCFunctionFast PyCFunctionFast
808 # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
809 #else
810 # define __Pyx_PyCFunctionFast _PyCFunctionFast
811 # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
812 #endif
813#endif
814#if CYTHON_VECTORCALL
815 #define __Pyx_METH_FASTCALL METH_FASTCALL
816 #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
817 #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
818#else
819 #define __Pyx_METH_FASTCALL METH_VARARGS
820 #define __Pyx_PyCFunction_FastCall PyCFunction
821 #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
822#endif
823#if CYTHON_VECTORCALL
824 #define __pyx_vectorcallfunc vectorcallfunc
825 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET
826 #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n))
827#else
828 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0
829 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n))
830#endif
831#define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func)
832#define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func)
833#if CYTHON_COMPILING_IN_CPYTHON
834#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth)
835#elif !CYTHON_COMPILING_IN_LIMITED_API
836#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func)
837#endif
838#if CYTHON_COMPILING_IN_CPYTHON
839#define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags)
840static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
841 return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
842}
843#endif
844static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
845#if CYTHON_COMPILING_IN_LIMITED_API
846 return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
847#else
848 return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
849#endif
850}
851#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc)
852#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
853 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b))
854#else
855 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b)
856#endif
857#if CYTHON_COMPILING_IN_PYPY
858 typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
859#else
860 #define __Pyx_PyCMethod PyCMethod
861#endif
862#ifndef METH_METHOD
863 #define METH_METHOD 0x200
864#endif
865#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
866 #define PyObject_Malloc(s) PyMem_Malloc(s)
867 #define PyObject_Free(p) PyMem_Free(p)
868 #define PyObject_Realloc(p) PyMem_Realloc(p)
869#endif
870#if CYTHON_COMPILING_IN_LIMITED_API
871 #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
872#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
873 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
874 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
875#elif CYTHON_COMPILING_IN_GRAAL
876 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
877 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
878#else
879 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
880 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
881#endif
882#if CYTHON_COMPILING_IN_LIMITED_API
883 #define __Pyx_PyThreadState_Current PyThreadState_Get()
884#elif !CYTHON_FAST_THREAD_STATE
885 #define __Pyx_PyThreadState_Current PyThreadState_GET()
886#elif PY_VERSION_HEX >= 0x030d00A1
887 #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
888#else
889 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
890#endif
891#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
892 #define __PYX_SHARED_SIZEOF(T) -((int)sizeof(T))
893 #define __PYX_SHARED_RELATIVE_OFFSET Py_RELATIVE_OFFSET
894 #define CYTHON_OPAQUE_SHARED_TYPES 1
895#else
896 #define __PYX_SHARED_SIZEOF(T) sizeof(T)
897 #define __PYX_SHARED_RELATIVE_OFFSET 0
898 #define CYTHON_OPAQUE_SHARED_TYPES 0
899#endif
900#if CYTHON_USE_MODULE_STATE
901static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
902{
903 void *result;
904 result = PyModule_GetState(op);
905 if (!result)
906 Py_FatalError("Couldn't find the module state");
907 return result;
908}
909#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
910#else
911#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
912#endif
913#define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
914#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
915#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
916#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
917#if CYTHON_USE_TYPE_SLOTS
918 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name)
919 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
920 #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
921 #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
922#else
923 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name))
924 #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
925 ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
926 (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
927 __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
928 #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
929 #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
930#endif
931#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
932#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
933#else
934#define __Pyx_PyDict_NewPresized(n) PyDict_New()
935#endif
936#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
937#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
938#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
939#define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
940static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
941 PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
942 if (res == NULL && PyErr_Occurred()) {
943 PyErr_WriteUnraisable(NULL);
944 }
945 return res;
946}
947#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
948#define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError
949#define __Pyx_PyDict_GetItemStr PyDict_GetItem
950#else
951static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
952#if CYTHON_COMPILING_IN_PYPY
953 return PyDict_GetItem(dict, name);
954#else
955 PyDictEntry *ep;
956 PyDictObject *mp = (PyDictObject*) dict;
957 long hash = ((PyStringObject *) name)->ob_shash;
958 assert(hash != -1);
959 ep = (mp->ma_lookup)(mp, name, hash);
960 if (ep == NULL) {
961 return NULL;
962 }
963 return ep->me_value;
964#endif
965}
966#define __Pyx_PyDict_GetItemStr PyDict_GetItem
967#endif
968#if CYTHON_USE_TYPE_SLOTS
969 #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags)
970 #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
971#else
972 #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp))
973 #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature)
974#endif
975#define __Pyx_PyObject_GetIterNextFunc(iterator) __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
976#if CYTHON_USE_TYPE_SPECS
977#define __Pyx_PyHeapTypeObject_GC_Del(obj) {\
978 PyTypeObject *type = Py_TYPE((PyObject*)obj);\
979 assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
980 PyObject_GC_Del(obj);\
981 Py_DECREF(type);\
982}
983#else
984#define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj)
985#endif
986#if CYTHON_COMPILING_IN_LIMITED_API
987 #define __Pyx_PyUnicode_READY(op) (0)
988 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
989 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U)
990 #define __Pyx_PyUnicode_KIND(u) ((void)u, (0))
991 #define __Pyx_PyUnicode_KIND_04(u) __Pyx_PyUnicode_KIND(u)
992 #define __Pyx_PyUnicode_DATA(u) ((void*)u)
993 #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
994 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u))
995#else
996 #if PY_VERSION_HEX >= 0x030C0000
997 #define __Pyx_PyUnicode_READY(op) (0)
998 #else
999 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
1000 0 : _PyUnicode_Ready((PyObject *)(op)))
1001 #endif
1002 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
1003 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
1004 #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u))
1005 #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
1006 #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
1007 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
1008 #if PY_VERSION_HEX >= 0x030C0000
1009 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
1010 #else
1011 #if CYTHON_COMPILING_IN_CPYTHON
1012 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
1013 #else
1014 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
1015 #endif
1016 #endif
1017 static CYTHON_INLINE int __Pyx_PyUnicode_KIND_04(PyObject *o) {
1018 return __Pyx_PyUnicode_KIND(o) - (int) !!PyUnicode_IS_ASCII(o);
1019 }
1020#endif
1021#if CYTHON_COMPILING_IN_PYPY
1022 #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
1023 #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
1024#else
1025 #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
1026 #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
1027 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
1028#endif
1029#if CYTHON_COMPILING_IN_PYPY
1030 #if !defined(PyUnicode_DecodeUnicodeEscape)
1031 #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors)
1032 #endif
1033 #if !defined(PyUnicode_Contains)
1034 #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
1035 #endif
1036 #if !defined(PyByteArray_Check)
1037 #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
1038 #endif
1039 #if !defined(PyObject_Format)
1040 #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
1041 #endif
1042#endif
1043#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
1044#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
1045 #define __Pyx_PySequence_ListKeepNew(obj)\
1046 (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
1047#elif CYTHON_COMPILING_IN_CPYTHON
1048 #define __Pyx_PySequence_ListKeepNew(obj)\
1049 (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
1050#else
1051 #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj)
1052#endif
1053#ifndef PySet_CheckExact
1054 #define PySet_CheckExact(obj) Py_IS_TYPE(obj, &PySet_Type)
1055#endif
1056enum __Pyx_ReferenceSharing {
1057 __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
1058 __Pyx_ReferenceSharing_OwnStrongReference,
1059 __Pyx_ReferenceSharing_FunctionArgument,
1060 __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
1061};
1062#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
1063#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
1064 (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
1065 (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
1066 (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
1067#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
1068#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
1069#else
1070#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
1071#endif
1072#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1073 #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
1074#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1075 #if CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
1076 #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1077 #else
1078 #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
1079 #endif
1080#elif CYTHON_COMPILING_IN_LIMITED_API || !(CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE)
1081 #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
1082#else
1083 #define __Pyx_PyList_GetItemRef(o, i) (likely(__Pyx_is_valid_index(i, PyList_GET_SIZE(o))) ?\
1084 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1085#endif
1086#if CYTHON_AVOID_BORROWED_REFS || CYTHON_COMPILING_IN_LIMITED_API
1087 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1088 __Pyx_PyList_GetItemRef(o, i))
1089#elif CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1090 #if CYTHON_ASSUME_SAFE_MACROS
1091 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1092 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1093 __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1094 #else
1095 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) (\
1096 __Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
1097 __Pyx_XNewRef(PyList_GetItem(o, i)) : __Pyx_PyList_GetItemRef(o, i))
1098 #endif
1099#elif CYTHON_ASSUME_SAFE_MACROS
1100 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1101 __Pyx_NewRef(PyList_GET_ITEM(o, i)))
1102#else
1103 #define __Pyx_PyList_GET_ITEM_REF(o, i, unsafe_shared) ((void)(unsafe_shared),\
1104 __Pyx_XNewRef(PyList_GetItem(o, i)))
1105#endif
1106#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
1107#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
1108#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
1109static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1110 *result = PyObject_GetItem(dict, key);
1111 if (*result == NULL) {
1112 if (PyErr_ExceptionMatches(PyExc_KeyError)) {
1113 PyErr_Clear();
1114 return 0;
1115 }
1116 return -1;
1117 }
1118 return 1;
1119}
1120#else
1121static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
1122 *result = PyDict_GetItemWithError(dict, key);
1123 if (*result == NULL) {
1124 return PyErr_Occurred() ? -1 : 0;
1125 }
1126 Py_INCREF(*result);
1127 return 1;
1128}
1129#endif
1130#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
1131 #define __Pyx_VISIT_CONST(obj) Py_VISIT(obj)
1132#else
1133 #define __Pyx_VISIT_CONST(obj)
1134#endif
1135#if CYTHON_ASSUME_SAFE_MACROS
1136 #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
1137 #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
1138 #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
1139 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
1140 #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
1141 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
1142#else
1143 #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
1144 #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
1145 #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
1146 #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
1147 #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
1148 #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
1149#endif
1150#if CYTHON_ASSUME_SAFE_SIZE
1151 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
1152 #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
1153 #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
1154 #define __Pyx_PyDict_GET_SIZE(o) PyDict_GET_SIZE(o)
1155 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
1156 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
1157 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
1158#else
1159 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
1160 #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
1161 #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
1162 #define __Pyx_PyDict_GET_SIZE(o) PyDict_Size(o)
1163 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
1164 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
1165 #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
1166#endif
1167#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
1168 #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
1169#endif
1170#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
1171#define __Pyx_PyLong_AsHash_t __Pyx_PyIndex_AsSsize_t
1172#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1173 #define __Pyx_PySendResult PySendResult
1174#else
1175 typedef enum {
1176 PYGEN_RETURN = 0,
1177 PYGEN_ERROR = -1,
1178 PYGEN_NEXT = 1,
1179 } __Pyx_PySendResult;
1180#endif
1181#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
1182 typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
1183#else
1184 #define __Pyx_pyiter_sendfunc sendfunc
1185#endif
1186#if !CYTHON_USE_AM_SEND
1187#define __PYX_HAS_PY_AM_SEND 0
1188#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
1189#define __PYX_HAS_PY_AM_SEND 1
1190#else
1191#define __PYX_HAS_PY_AM_SEND 2 // our own backported implementation
1192#endif
1193#if __PYX_HAS_PY_AM_SEND < 2
1194 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
1195#else
1196 typedef struct {
1197 unaryfunc am_await;
1198 unaryfunc am_aiter;
1199 unaryfunc am_anext;
1200 __Pyx_pyiter_sendfunc am_send;
1201 } __Pyx_PyAsyncMethodsStruct;
1202 #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
1203#endif
1204#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
1205 #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
1206#else
1207 #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
1208#endif
1209#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
1210#ifdef __cplusplus
1211extern "C"
1212#endif
1213PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
1214#endif
1215#if CYTHON_COMPILING_IN_LIMITED_API
1216static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
1217 int value;
1218 PyObject *py_value = PyObject_GetAttrString(inspect, name);
1219 if (!py_value) return 0;
1220 value = (int) PyLong_AsLong(py_value);
1221 Py_DECREF(py_value);
1222 *write_to = value;
1223 return value != -1 || !PyErr_Occurred();
1224}
1225static int __Pyx_init_co_variables(void) {
1226 PyObject *inspect;
1227 int result;
1228 inspect = PyImport_ImportModule("inspect");
1229 result =
1230#if !defined(CO_OPTIMIZED)
1231 __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
1232#endif
1233#if !defined(CO_NEWLOCALS)
1234 __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
1235#endif
1236#if !defined(CO_VARARGS)
1237 __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
1238#endif
1239#if !defined(CO_VARKEYWORDS)
1240 __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
1241#endif
1242#if !defined(CO_ASYNC_GENERATOR)
1243 __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
1244#endif
1245#if !defined(CO_GENERATOR)
1246 __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
1247#endif
1248#if !defined(CO_COROUTINE)
1249 __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
1250#endif
1251 1;
1252 Py_DECREF(inspect);
1253 return result ? 0 : -1;
1254}
1255static int __Pyx_init_tpflags_bitcount(unsigned long flag) {
1256 int count = 0;
1257 while (flag) {
1258 count += (int) (flag & 1);
1259 flag >>= 1;
1260 }
1261 return count;
1262}
1263static int __Pyx_init_tpflags_variables(void) {
1264 if (__Pyx_Runtime_TPFLAGS_SEQUENCE != 0 && __Pyx_Runtime_TPFLAGS_MAPPING != 0) {
1265 return 0;
1266 }
1267 PyObject *collections_abc = PyImport_ImportModule("collections.abc");
1268 if (!collections_abc) return -1;
1269 int result = 0;
1270 PyObject *sequence = NULL, *mapping = NULL;
1271#if __PYX_LIMITED_VERSION_HEX >= 0x030D0000
1272 if (PyObject_GetOptionalAttrString(collections_abc, "Sequence", &sequence) != 1) goto fail;
1273 if (PyObject_GetOptionalAttrString(collections_abc, "Mapping", &mapping) != 1) goto fail;
1274#else
1275 sequence = PyObject_GetAttrString(collections_abc, "Sequence");
1276 if (!sequence) goto fail_attr_lookup;
1277 mapping = PyObject_GetAttrString(collections_abc, "Mapping");
1278 if (!mapping) goto fail_attr_lookup;
1279#endif
1280 if (!PyType_Check(sequence) || !PyType_Check(mapping)) goto fail;
1281 {
1282 unsigned long sequence_flags = PyType_GetFlags((PyTypeObject*)sequence);
1283 unsigned long mapping_flags = PyType_GetFlags((PyTypeObject*)mapping);
1284 unsigned long mutual_flags = sequence_flags & mapping_flags;
1285 sequence_flags = sequence_flags ^ mutual_flags;
1286 mapping_flags = mapping_flags ^ mutual_flags;
1287 if (__Pyx_Runtime_TPFLAGS_SEQUENCE == 0 && __Pyx_init_tpflags_bitcount(sequence_flags) == 1) {
1288 __Pyx_Runtime_TPFLAGS_SEQUENCE = sequence_flags;
1289 }
1290 if (__Pyx_Runtime_TPFLAGS_MAPPING == 0 && __Pyx_init_tpflags_bitcount(mapping_flags) == 1) {
1291 __Pyx_Runtime_TPFLAGS_MAPPING = mapping_flags;
1292 }
1293 }
1294 cleanup:
1295 Py_XDECREF(mapping);
1296 Py_XDECREF(sequence);
1297 Py_DECREF(collections_abc);
1298 return result;
1299#if __PYX_LIMITED_VERSION_HEX < 0x030D0000
1300 fail_attr_lookup:
1301 if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
1302 PyErr_Clear();
1303 }
1304#endif
1305 fail:
1306 result = PyErr_Occurred() ? -1 : 0;
1307 goto cleanup;
1308}
1309#else
1310static int __Pyx_init_co_variables(void) {
1311 return 0; // It's a limited API-only feature
1312}
1313static int __Pyx_init_tpflags_variables(void) {
1314 return 0; // It's a limited API-only feature
1315}
1316#endif
1317
1318/* MathInitCode */
1319#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
1320 #ifndef _USE_MATH_DEFINES
1321 #define _USE_MATH_DEFINES
1322 #endif
1323#endif
1324#include <math.h>
1325#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
1326#define __Pyx_truncl trunc
1327#else
1328#define __Pyx_truncl truncl
1329#endif
1330
1331#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1332#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 1
1333#endif
1334#ifndef CYTHON_CLINE_IN_TRACEBACK
1335#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
1336#endif
1337#if CYTHON_CLINE_IN_TRACEBACK
1338#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; }
1339#else
1340#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; }
1341#endif
1342#define __PYX_ERR(f_index, lineno, Ln_error) \
1343 { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
1344
1345#ifdef CYTHON_EXTERN_C
1346 #undef __PYX_EXTERN_C
1347 #define __PYX_EXTERN_C CYTHON_EXTERN_C
1348#elif defined(__PYX_EXTERN_C)
1349 #ifdef _MSC_VER
1350 #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
1351 #else
1352 #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
1353 #endif
1354#else
1355 #define __PYX_EXTERN_C extern "C++"
1356#endif
1357
1358#define __PYX_HAVE__MeshAdaptPUMI__MeshAdapt
1359#define __PYX_HAVE_API__MeshAdaptPUMI__MeshAdapt
1360/* Early includes */
1361#include <string.h>
1362#include <stdio.h>
1363
1364 /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
1365
1366#include "numpy/arrayobject.h"
1367#include "numpy/ndarrayobject.h"
1368#include "numpy/ndarraytypes.h"
1369#include "numpy/arrayscalars.h"
1370#include "numpy/ufuncobject.h"
1371#include "mesh.h"
1372#include <string_view>
1373#include "ios"
1374#include "new"
1375#include "stdexcept"
1376#include "typeinfo"
1377#include <string>
1378#include <vector>
1380#ifdef _OPENMP
1381#include <omp.h>
1382#endif /* _OPENMP */
1383
1384#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
1385#define CYTHON_WITHOUT_ASSERTIONS
1386#endif
1387
1388#ifdef CYTHON_FREETHREADING_COMPATIBLE
1389#if CYTHON_FREETHREADING_COMPATIBLE
1390#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
1391#else
1392#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1393#endif
1394#else
1395#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
1396#endif
1397#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
1398#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
1399#define __PYX_DEFAULT_STRING_ENCODING ""
1400#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
1401#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
1402#define __Pyx_uchar_cast(c) ((unsigned char)c)
1403#define __Pyx_long_cast(x) ((long)x)
1404#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
1405 (sizeof(type) < sizeof(Py_ssize_t)) ||\
1406 (sizeof(type) > sizeof(Py_ssize_t) &&\
1407 likely(v < (type)PY_SSIZE_T_MAX ||\
1408 v == (type)PY_SSIZE_T_MAX) &&\
1409 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
1410 v == (type)PY_SSIZE_T_MIN))) ||\
1411 (sizeof(type) == sizeof(Py_ssize_t) &&\
1412 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
1413 v == (type)PY_SSIZE_T_MAX))) )
1414static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
1415 return (size_t) i < (size_t) limit;
1416}
1417#if defined (__cplusplus) && __cplusplus >= 201103L
1418 #include <cstdlib>
1419 #define __Pyx_sst_abs(value) std::abs(value)
1420#elif SIZEOF_INT >= SIZEOF_SIZE_T
1421 #define __Pyx_sst_abs(value) abs(value)
1422#elif SIZEOF_LONG >= SIZEOF_SIZE_T
1423 #define __Pyx_sst_abs(value) labs(value)
1424#elif defined (_MSC_VER)
1425 #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
1426#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
1427 #define __Pyx_sst_abs(value) llabs(value)
1428#elif defined (__GNUC__)
1429 #define __Pyx_sst_abs(value) __builtin_llabs(value)
1430#else
1431 #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
1432#endif
1433static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
1434static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
1435static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
1436static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
1437#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
1438#define __Pyx_PyBytes_FromString PyBytes_FromString
1439#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
1440static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
1441#if CYTHON_ASSUME_SAFE_MACROS
1442 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
1443 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
1444 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
1445 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
1446 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
1447 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
1448 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
1449#else
1450 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AsString(s))
1451 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AsString(s))
1452 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AsString(s))
1453 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AsString(s))
1454 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AsString(s))
1455 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AsString(s))
1456 #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
1457#endif
1458#define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1459#define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1460#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1461#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
1462#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
1463#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
1464#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
1465#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
1466#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
1467#define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o)
1468#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
1469static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
1470#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
1471 return Py_NewRef(obj);
1472#else
1473 Py_INCREF(obj);
1474 return obj;
1475#endif
1476}
1477static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
1478#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
1479 return Py_XNewRef(obj);
1480#else
1481 Py_XINCREF(obj);
1482 return obj;
1483#endif
1484}
1485static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
1486static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
1487static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
1488static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
1489static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
1490#define __Pyx_PyObject_RichCompareBool(a,b,cmp) __Pyx_PyObject_IsTrueAndDecref(PyObject_RichCompare((a),(b),(cmp)))
1491#define __Pyx_PySequence_Tuple(obj)\
1492 (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
1493static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
1494static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
1495static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
1496#if CYTHON_ASSUME_SAFE_MACROS
1497#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
1498#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
1499#define __Pyx_PyFloat_IsNonZero(x) (PyFloat_AS_DOUBLE(x) != 0.0)
1500#else
1501#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
1502#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
1503#define __Pyx_PyFloat_IsNonZero(x) PyObject_IsTrue(x)
1504#endif
1505#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
1506#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
1507#if CYTHON_USE_PYLONG_INTERNALS
1508 #if PY_VERSION_HEX >= 0x030C00A7
1509 #ifndef _PyLong_SIGN_MASK
1510 #define _PyLong_SIGN_MASK 3
1511 #endif
1512 #ifndef _PyLong_NON_SIZE_BITS
1513 #define _PyLong_NON_SIZE_BITS 3
1514 #endif
1515 #define __Pyx_PyLong_SignBits(x) ((int) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK))
1516 #define __Pyx_PyLong_Sign(x) (1 - __Pyx_PyLong_SignBits(x))
1517 #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_SignBits(x) & 2) != 0)
1518 #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x))
1519 #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_SignBits(x) & 1)
1520 #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_SignBits(x) == 0)
1521 #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0])
1522 #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
1523 #define __Pyx_PyLong_SignedDigitCount(x)\
1524 (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
1525 #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
1526 #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
1527 #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
1528 #else
1529 #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
1530 #define __Pyx_PyLong_CompactValue(x) (((Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
1531 #endif
1532 static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_CompareSignAndSize(PyObject *a, PyObject *b) {
1533 uintptr_t tag_a = ((PyLongObject*)a)->long_value.lv_tag;
1534 uintptr_t tag_b = ((PyLongObject*)b)->long_value.lv_tag;
1535 if (tag_a == tag_b) return 0;
1536 int sign_a = (int) (tag_a & _PyLong_SIGN_MASK);
1537 int sign_b = (int) (tag_b & _PyLong_SIGN_MASK);
1538 if (sign_a > sign_b) return -1;
1539 if (sign_a < sign_b) return 1;
1540 Py_ssize_t size_a = (Py_ssize_t) (tag_a >> _PyLong_NON_SIZE_BITS);
1541 Py_ssize_t size_b = (Py_ssize_t) (tag_b >> _PyLong_NON_SIZE_BITS);
1542 return (1 - sign_a) * (size_a - size_b);
1543 }
1544 typedef Py_ssize_t __Pyx_compact_pylong;
1545 typedef size_t __Pyx_compact_upylong;
1546 #else
1547 #define __Pyx_PyLong_Sign(x) ((int) ((Py_SIZE(x) == 0) ? 0 : (Py_SIZE(x) < 0) ? -1 : 1))
1548 #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0)
1549 #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0)
1550 #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0)
1551 #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0)
1552 #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
1553 #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x))
1554 #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x)
1555 #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
1556 #define __Pyx_PyLong_CompactValue(x)\
1557 ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
1558 #define __Pyx_PyLong_CompareSignAndSize(a, b) (Py_SIZE(a) - Py_SIZE(b))
1559 typedef sdigit __Pyx_compact_pylong;
1560 typedef digit __Pyx_compact_upylong;
1561 #endif
1562 #if PY_VERSION_HEX >= 0x030C00A5
1563 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
1564 #else
1565 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit)
1566 #endif
1567 #define __Pyx_PyLong_IsNonZero(x) (!__Pyx_PyLong_IsZero(x))
1568#else
1569 #define __Pyx_PyLong_IsNonZero(x) PyObject_IsTrue(x)
1570#endif
1571#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
1572 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
1573#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
1574 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
1575#else
1576 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
1577#endif
1578
1579
1580/* Test for GCC > 2.95 */
1581#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
1582 #define likely(x) __builtin_expect(!!(x), 1)
1583 #define unlikely(x) __builtin_expect(!!(x), 0)
1584#else /* !__GNUC__ or GCC < 2.95 */
1585 #define likely(x) (x)
1586 #define unlikely(x) (x)
1587#endif /* __GNUC__ */
1588/* PretendToInitialize */
1589#ifdef __cplusplus
1590#if __cplusplus > 201103L
1591#include <type_traits>
1592#endif
1593template <typename T>
1594static void __Pyx_pretend_to_initialize(T* ptr) {
1595#if __cplusplus > 201103L
1596 if ((std::is_trivially_default_constructible<T>::value))
1597#endif
1598 *ptr = T();
1599 (void)ptr;
1600}
1601#else
1602static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
1603#endif
1604
1605
1606#if !CYTHON_USE_MODULE_STATE
1607static PyObject *__pyx_m = NULL;
1608#endif
1609static const char * const __pyx_cfilenm = __FILE__;
1610
1611/* Header.proto */
1612#if !defined(CYTHON_CCOMPLEX)
1613 #if defined(__cplusplus)
1614 #define CYTHON_CCOMPLEX 1
1615 #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
1616 #define CYTHON_CCOMPLEX 1
1617 #else
1618 #define CYTHON_CCOMPLEX 0
1619 #endif
1620#endif
1621#if CYTHON_CCOMPLEX
1622 #ifdef __cplusplus
1623 #include <complex>
1624 #else
1625 #include <complex.h>
1626 #endif
1627#endif
1628#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
1629 #undef _Complex_I
1630 #define _Complex_I 1.0fj
1631#endif
1632
1633/* #### Code section: filename_table ### */
1634
1635static const char* const __pyx_f[] = {
1636 "proteus/MeshAdaptPUMI/MeshAdapt.pyx",
1637 "string.to_py",
1638 "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd",
1639 "cpython/type.pxd",
1640 "proteus/cmeshTools.pxd",
1641};
1642/* #### Code section: utility_code_proto_before_types ### */
1643/* Atomics.proto (used by UnpackUnboundCMethod) */
1644#include <pythread.h>
1645#ifndef CYTHON_ATOMICS
1646 #define CYTHON_ATOMICS 1
1647#endif
1648#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
1649#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1650#define __pyx_atomic_int_type int
1651#define __pyx_nonatomic_int_type int
1652#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1653 (__STDC_VERSION__ >= 201112L) &&\
1654 !defined(__STDC_NO_ATOMICS__))
1655 #include <stdatomic.h>
1656#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1657 (__cplusplus >= 201103L) ||\
1658 (defined(_MSC_VER) && _MSC_VER >= 1700)))
1659 #include <atomic>
1660#endif
1661#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1662 (__STDC_VERSION__ >= 201112L) &&\
1663 !defined(__STDC_NO_ATOMICS__) &&\
1664 ATOMIC_INT_LOCK_FREE == 2)
1665 #undef __pyx_atomic_int_type
1666 #define __pyx_atomic_int_type atomic_int
1667 #define __pyx_atomic_ptr_type atomic_uintptr_t
1668 #define __pyx_nonatomic_ptr_type uintptr_t
1669 #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
1670 #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
1671 #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
1672 #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
1673 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1674 #define __pyx_atomic_load(value) atomic_load(value)
1675 #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
1676 #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
1677 #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
1678 #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1679 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
1680 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1681 #pragma message ("Using standard C atomics")
1682 #elif defined(__PYX_DEBUG_ATOMICS)
1683 #warning "Using standard C atomics"
1684 #endif
1685#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1686 (__cplusplus >= 201103L) ||\
1687\
1688 (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
1689 ATOMIC_INT_LOCK_FREE == 2)
1690 #undef __pyx_atomic_int_type
1691 #define __pyx_atomic_int_type std::atomic_int
1692 #define __pyx_atomic_ptr_type std::atomic_uintptr_t
1693 #define __pyx_nonatomic_ptr_type uintptr_t
1694 #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
1695 #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
1696 #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
1697 #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
1698 #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1699 #define __pyx_atomic_load(value) std::atomic_load(value)
1700 #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
1701 #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
1702 #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
1703 #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
1704 #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
1705 #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1706 #pragma message ("Using standard C++ atomics")
1707 #elif defined(__PYX_DEBUG_ATOMICS)
1708 #warning "Using standard C++ atomics"
1709 #endif
1710#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
1711 (__GNUC_MINOR__ > 1 ||\
1712 (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
1713 #define __pyx_atomic_ptr_type void*
1714 #define __pyx_nonatomic_ptr_type void*
1715 #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
1716 #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
1717 #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
1718 #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
1719 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1720 __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
1721 int result = old == *expected;
1722 *expected = old;
1723 return result;
1724 }
1725 #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
1726 #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
1727 #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
1728 #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
1729 #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
1730 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1731 __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
1732 int result = old == *expected;
1733 *expected = old;
1734 return result;
1735 }
1736 #ifdef __PYX_DEBUG_ATOMICS
1737 #warning "Using GNU atomics"
1738 #endif
1739#elif CYTHON_ATOMICS && defined(_MSC_VER)
1740 #include <intrin.h>
1741 #undef __pyx_atomic_int_type
1742 #define __pyx_atomic_int_type long
1743 #define __pyx_atomic_ptr_type void*
1744 #undef __pyx_nonatomic_int_type
1745 #define __pyx_nonatomic_int_type long
1746 #define __pyx_nonatomic_ptr_type void*
1747 #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
1748 #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
1749 #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
1750 #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
1751 #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
1752 static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
1753 __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
1754 int result = old == *expected;
1755 *expected = old;
1756 return result;
1757 }
1758 #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
1759 #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
1760 #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
1761 #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
1762 #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
1763 static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
1764 __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
1765 int result = old == *expected;
1766 *expected = old;
1767 return result;
1768 }
1769 #ifdef __PYX_DEBUG_ATOMICS
1770 #pragma message ("Using MSVC atomics")
1771 #endif
1772#else
1773 #undef CYTHON_ATOMICS
1774 #define CYTHON_ATOMICS 0
1775 #ifdef __PYX_DEBUG_ATOMICS
1776 #warning "Not using atomics"
1777 #endif
1778#endif
1779
1780/* CriticalSectionsDefinition.proto (used by CriticalSections) */
1781#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1782#define __Pyx_PyCriticalSection void*
1783#define __Pyx_PyCriticalSection2 void*
1784#define __Pyx_PyCriticalSection_End(cs)
1785#define __Pyx_PyCriticalSection2_End(cs)
1786#else
1787#define __Pyx_PyCriticalSection PyCriticalSection
1788#define __Pyx_PyCriticalSection2 PyCriticalSection2
1789#define __Pyx_PyCriticalSection_End PyCriticalSection_End
1790#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
1791#endif
1792
1793/* CriticalSections.proto (used by ParseKeywordsImpl) */
1794#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
1795#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
1796#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
1797#else
1798#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
1799#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
1800#endif
1801#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
1802#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
1803#define __Pyx_END_CRITICAL_SECTION() }
1804#else
1805#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
1806#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
1807#endif
1808
1809/* BufferFormatStructs.proto (used by BufferFormatCheck) */
1810struct __Pyx_StructField_;
1811#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
1812typedef struct {
1813 const char* name;
1814 const struct __Pyx_StructField_* fields;
1815 size_t size;
1816 size_t arraysize[8];
1817 int ndim;
1818 char typegroup;
1819 char is_unsigned;
1820 int flags;
1821} __Pyx_TypeInfo;
1822typedef struct __Pyx_StructField_ {
1823 const __Pyx_TypeInfo* type;
1824 const char* name;
1825 size_t offset;
1826} __Pyx_StructField;
1827typedef struct {
1828 const __Pyx_StructField* field;
1829 size_t parent_offset;
1830} __Pyx_BufFmt_StackElem;
1831typedef struct {
1832 __Pyx_StructField root;
1833 __Pyx_BufFmt_StackElem* head;
1834 size_t fmt_offset;
1835 size_t new_count, enc_count;
1836 size_t struct_alignment;
1837 int is_complex;
1838 char enc_type;
1839 char new_packmode;
1840 char enc_packmode;
1841 char is_valid_array;
1842} __Pyx_BufFmt_Context;
1843
1844/* IncludeStructmemberH.proto (used by CythonFunctionShared) */
1845#include <structmember.h>
1846
1847/* #### Code section: numeric_typedefs ### */
1848
1849/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":761
1850 * # in Cython to enable them only on the right systems.
1851 *
1852 * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
1853 * ctypedef npy_int16 int16_t
1854 * ctypedef npy_int32 int32_t
1855*/
1856typedef npy_int8 __pyx_t_5numpy_int8_t;
1857
1858/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":762
1859 *
1860 * ctypedef npy_int8 int8_t
1861 * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
1862 * ctypedef npy_int32 int32_t
1863 * ctypedef npy_int64 int64_t
1864*/
1865typedef npy_int16 __pyx_t_5numpy_int16_t;
1866
1867/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":763
1868 * ctypedef npy_int8 int8_t
1869 * ctypedef npy_int16 int16_t
1870 * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1871 * ctypedef npy_int64 int64_t
1872 *
1873*/
1874typedef npy_int32 __pyx_t_5numpy_int32_t;
1875
1876/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":764
1877 * ctypedef npy_int16 int16_t
1878 * ctypedef npy_int32 int32_t
1879 * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1880 *
1881 * ctypedef npy_uint8 uint8_t
1882*/
1883typedef npy_int64 __pyx_t_5numpy_int64_t;
1884
1885/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":766
1886 * ctypedef npy_int64 int64_t
1887 *
1888 * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1889 * ctypedef npy_uint16 uint16_t
1890 * ctypedef npy_uint32 uint32_t
1891*/
1892typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1893
1894/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":767
1895 *
1896 * ctypedef npy_uint8 uint8_t
1897 * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1898 * ctypedef npy_uint32 uint32_t
1899 * ctypedef npy_uint64 uint64_t
1900*/
1901typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1902
1903/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":768
1904 * ctypedef npy_uint8 uint8_t
1905 * ctypedef npy_uint16 uint16_t
1906 * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1907 * ctypedef npy_uint64 uint64_t
1908 *
1909*/
1910typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1911
1912/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":769
1913 * ctypedef npy_uint16 uint16_t
1914 * ctypedef npy_uint32 uint32_t
1915 * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1916 *
1917 * ctypedef npy_float32 float32_t
1918*/
1919typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1920
1921/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":771
1922 * ctypedef npy_uint64 uint64_t
1923 *
1924 * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1925 * ctypedef npy_float64 float64_t
1926 * #ctypedef npy_float80 float80_t
1927*/
1928typedef npy_float32 __pyx_t_5numpy_float32_t;
1929
1930/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":772
1931 *
1932 * ctypedef npy_float32 float32_t
1933 * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1934 * #ctypedef npy_float80 float80_t
1935 * #ctypedef npy_float128 float128_t
1936*/
1937typedef npy_float64 __pyx_t_5numpy_float64_t;
1938
1939/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":779
1940 * ctypedef double complex complex128_t
1941 *
1942 * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1943 * ctypedef npy_ulonglong ulonglong_t
1944 *
1945*/
1946typedef npy_longlong __pyx_t_5numpy_longlong_t;
1947
1948/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":780
1949 *
1950 * ctypedef npy_longlong longlong_t
1951 * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1952 *
1953 * ctypedef npy_intp intp_t
1954*/
1955typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1956
1957/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":782
1958 * ctypedef npy_ulonglong ulonglong_t
1959 *
1960 * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1961 * ctypedef npy_uintp uintp_t
1962 *
1963*/
1964typedef npy_intp __pyx_t_5numpy_intp_t;
1965
1966/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":783
1967 *
1968 * ctypedef npy_intp intp_t
1969 * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1970 *
1971 * ctypedef npy_double float_t
1972*/
1973typedef npy_uintp __pyx_t_5numpy_uintp_t;
1974
1975/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":785
1976 * ctypedef npy_uintp uintp_t
1977 *
1978 * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1979 * ctypedef npy_double double_t
1980 * ctypedef npy_longdouble longdouble_t
1981*/
1982typedef npy_double __pyx_t_5numpy_float_t;
1983
1984/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":786
1985 *
1986 * ctypedef npy_double float_t
1987 * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1988 * ctypedef npy_longdouble longdouble_t
1989 *
1990*/
1991typedef npy_double __pyx_t_5numpy_double_t;
1992
1993/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":787
1994 * ctypedef npy_double float_t
1995 * ctypedef npy_double double_t
1996 * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1997 *
1998 * ctypedef float complex cfloat_t
1999*/
2000typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
2001/* #### Code section: complex_type_declarations ### */
2002/* Declarations.proto */
2003#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2004 #ifdef __cplusplus
2005 typedef ::std::complex< float > __pyx_t_float_complex;
2006 #else
2007 typedef float _Complex __pyx_t_float_complex;
2008 #endif
2009#else
2010 typedef struct { float real, imag; } __pyx_t_float_complex;
2011#endif
2012static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
2013
2014/* Declarations.proto */
2015#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2016 #ifdef __cplusplus
2017 typedef ::std::complex< double > __pyx_t_double_complex;
2018 #else
2019 typedef double _Complex __pyx_t_double_complex;
2020 #endif
2021#else
2022 typedef struct { double real, imag; } __pyx_t_double_complex;
2023#endif
2024static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
2025
2026/* Declarations.proto */
2027#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
2028 #ifdef __cplusplus
2029 typedef ::std::complex< long double > __pyx_t_long_double_complex;
2030 #else
2031 typedef long double _Complex __pyx_t_long_double_complex;
2032 #endif
2033#else
2034 typedef struct { long double real, imag; } __pyx_t_long_double_complex;
2035#endif
2036static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);
2037
2038/* #### Code section: type_declarations ### */
2039
2040/*--- Type declarations ---*/
2041struct __pyx_obj_7proteus_10cmeshTools_CMesh;
2042struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt;
2043struct __pyx_defaults;
2044
2045/* "cmeshTools.pxd":6
2046 * cimport mesh as cppm
2047 *
2048 * cdef class CMesh: # <<<<<<<<<<<<<<
2049 * cdef cppm.Mesh mesh
2050 * cdef public:
2051*/
2052struct __pyx_obj_7proteus_10cmeshTools_CMesh {
2053 PyObject_HEAD
2054 struct Mesh mesh;
2055 int nElements_global;
2056 int nNodes_global;
2057 int nNodes_element;
2058 int nNodes_elementBoundary;
2059 int nElementBoundaries_element;
2060 int nElementBoundaries_global;
2061 int nInteriorElementBoundaries_global;
2062 int nExteriorElementBoundaries_global;
2063 int max_nElements_node;
2064 int nEdges_global;
2065 int max_nNodeNeighbors_node;
2066 PyArrayObject *elementNodesArray;
2067 PyArrayObject *nodeElementsArray;
2068 PyArrayObject *nodeElementOffsets;
2069 PyArrayObject *elementNeighborsArray;
2070 PyArrayObject *elementBoundariesArray;
2071 PyArrayObject *elementBoundaryNodesArray;
2072 PyArrayObject *elementBoundaryElementsArray;
2073 PyArrayObject *elementBoundaryLocalElementBoundariesArray;
2074 PyArrayObject *interiorElementBoundariesArray;
2075 PyArrayObject *exteriorElementBoundariesArray;
2076 PyArrayObject *edgeNodesArray;
2077 PyArrayObject *nodeStarArray;
2078 PyArrayObject *nodeStarOffsets;
2079 PyArrayObject *elementMaterialTypes;
2080 PyArrayObject *elementBoundaryMaterialTypes;
2081 PyArrayObject *nodeMaterialTypes;
2082 PyArrayObject *nodeArray;
2083 int nx;
2084 int ny;
2085 int nz;
2086 int px;
2087 int py;
2088 int pz;
2089 PyArrayObject *elementIJK;
2090 PyArrayObject *weights;
2091 PyArrayObject *U_KNOT;
2092 PyArrayObject *V_KNOT;
2093 PyArrayObject *W_KNOT;
2094 PyArrayObject *elementDiametersArray;
2095 PyArrayObject *elementInnerDiametersArray;
2096 PyArrayObject *elementBoundaryDiametersArray;
2097 PyArrayObject *elementBarycentersArray;
2098 PyArrayObject *elementBoundaryBarycentersArray;
2099 PyArrayObject *nodeDiametersArray;
2100 PyArrayObject *nodeSupportArray;
2101 double h;
2102 double hMin;
2103 double sigmaMax;
2104 double volume;
2105};
2106
2107
2108/* "MeshAdaptPUMI/MeshAdapt.pyx":56
2109 * void set_nAdapt(int)
2110 *
2111 * cdef class MeshAdapt: # <<<<<<<<<<<<<<
2112 * cdef MeshAdaptPUMIDrvr *thisptr
2113 * cdef double hmax, hmin, hPhi
2114*/
2115struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt {
2116 PyObject_HEAD
2117 MeshAdaptPUMIDrvr *thisptr;
2118 double hmax;
2119 double hmin;
2120 double hPhi;
2121 int numIter;
2122 int numAdaptSteps;
2123 int isReconstructed;
2124 int adaptMesh;
2125};
2126
2127
2128/* "MeshAdaptPUMI/MeshAdapt.pyx":193
2129 *
2130 * class AdaptManager():
2131 * def __init__(self,adapter=MeshAdapt()): # <<<<<<<<<<<<<<
2132 * self.modelDict = {}
2133 * self.sizeInputs = []
2134*/
2135struct __pyx_defaults {
2136 PyObject_HEAD
2137 PyObject *arg0;
2138};
2139
2140/* #### Code section: utility_code_proto ### */
2141
2142/* --- Runtime support code (head) --- */
2143/* Refnanny.proto */
2144#ifndef CYTHON_REFNANNY
2145 #define CYTHON_REFNANNY 0
2146#endif
2147#if CYTHON_REFNANNY
2148 typedef struct {
2149 void (*INCREF)(void*, PyObject*, Py_ssize_t);
2150 void (*DECREF)(void*, PyObject*, Py_ssize_t);
2151 void (*GOTREF)(void*, PyObject*, Py_ssize_t);
2152 void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
2153 void* (*SetupContext)(const char*, Py_ssize_t, const char*);
2154 void (*FinishContext)(void**);
2155 } __Pyx_RefNannyAPIStruct;
2156 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
2157 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
2158 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
2159 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2160 if (acquire_gil) {\
2161 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2162 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2163 PyGILState_Release(__pyx_gilstate_save);\
2164 } else {\
2165 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2166 }
2167 #define __Pyx_RefNannyFinishContextNogil() {\
2168 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2169 __Pyx_RefNannyFinishContext();\
2170 PyGILState_Release(__pyx_gilstate_save);\
2171 }
2172 #define __Pyx_RefNannyFinishContextNogil() {\
2173 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2174 __Pyx_RefNannyFinishContext();\
2175 PyGILState_Release(__pyx_gilstate_save);\
2176 }
2177 #define __Pyx_RefNannyFinishContext()\
2178 __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2179 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2180 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2181 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2182 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2183 #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
2184 #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
2185 #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
2186 #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
2187#else
2188 #define __Pyx_RefNannyDeclarations
2189 #define __Pyx_RefNannySetupContext(name, acquire_gil)
2190 #define __Pyx_RefNannyFinishContextNogil()
2191 #define __Pyx_RefNannyFinishContext()
2192 #define __Pyx_INCREF(r) Py_INCREF(r)
2193 #define __Pyx_DECREF(r) Py_DECREF(r)
2194 #define __Pyx_GOTREF(r)
2195 #define __Pyx_GIVEREF(r)
2196 #define __Pyx_XINCREF(r) Py_XINCREF(r)
2197 #define __Pyx_XDECREF(r) Py_XDECREF(r)
2198 #define __Pyx_XGOTREF(r)
2199 #define __Pyx_XGIVEREF(r)
2200#endif
2201#define __Pyx_Py_XDECREF_SET(r, v) do {\
2202 PyObject *tmp = (PyObject *) r;\
2203 r = v; Py_XDECREF(tmp);\
2204 } while (0)
2205#define __Pyx_XDECREF_SET(r, v) do {\
2206 PyObject *tmp = (PyObject *) r;\
2207 r = v; __Pyx_XDECREF(tmp);\
2208 } while (0)
2209#define __Pyx_DECREF_SET(r, v) do {\
2210 PyObject *tmp = (PyObject *) r;\
2211 r = v; __Pyx_DECREF(tmp);\
2212 } while (0)
2213#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
2214#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2215
2216/* GetTopmostException.proto (used by SaveResetException) */
2217#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
2218static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2219#endif
2220
2221/* PyThreadStateGet.proto (used by SaveResetException) */
2222#if CYTHON_FAST_THREAD_STATE
2223#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
2224#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
2225#if PY_VERSION_HEX >= 0x030C00A6
2226#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
2227#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
2228#else
2229#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
2230#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
2231#endif
2232#else
2233#define __Pyx_PyThreadState_declare
2234#define __Pyx_PyThreadState_assign
2235#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
2236#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
2237#endif
2238
2239/* SaveResetException.proto */
2240#if CYTHON_FAST_THREAD_STATE
2241#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2242static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2243#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2244static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2245#else
2246#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2247#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2248#endif
2249
2250/* FastTypeChecks.proto (used by PyException_Check) */
2251#if CYTHON_COMPILING_IN_CPYTHON
2252#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2253#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
2254static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2255static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
2256#define __Pyx_PyAnySet_Check(obj) __Pyx_TypeCheck2(obj, &PySet_Type, &PyFrozenSet_Type)
2257#else
2258#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2259#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
2260#define __Pyx_PyAnySet_Check(obj) PyAnySet_Check(obj)
2261#endif
2262
2263/* PyException_Check.proto */
2264#define __Pyx_PyExc_Exception_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2265
2266/* PyErrFetchRestore.proto (used by GivenExceptionMatches) */
2267#if CYTHON_FAST_THREAD_STATE
2268#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2269#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2270#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2271#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2272#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2273static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2274static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2275#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
2276#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2277#else
2278#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2279#endif
2280#else
2281#define __Pyx_PyErr_Clear() PyErr_Clear()
2282#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2283#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
2284#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
2285#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
2286#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
2287#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
2288#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
2289#endif
2290
2291/* GivenExceptionMatches.proto (used by PyErrExceptionMatches) */
2292#if CYTHON_COMPILING_IN_CPYTHON
2293static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2294static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2295#else
2296#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2297static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
2298 return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
2299}
2300#endif
2301#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
2302
2303/* PyErrExceptionMatches.proto */
2304#if CYTHON_FAST_THREAD_STATE
2305#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2306static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2307#else
2308#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2309#endif
2310
2311/* GetException.proto */
2312#if CYTHON_FAST_THREAD_STATE
2313#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2314static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2315#else
2316static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2317#endif
2318
2319/* PyImportError_Check.proto */
2320#define __Pyx_PyExc_ImportError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ImportError)
2321
2322/* PyObjectCall.proto (used by PyObjectFastCall) */
2323#if CYTHON_COMPILING_IN_CPYTHON
2324static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2325#else
2326#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2327#endif
2328
2329/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
2330#if CYTHON_COMPILING_IN_CPYTHON
2331static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2332#endif
2333
2334/* PyObjectFastCall.proto */
2335#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
2336static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargsf, PyObject *kwargs);
2337
2338/* RaiseException.export */
2339static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2340
2341/* CopyObjectArray.proto (used by TupleOrListFromArrayImpl) */
2342#if CYTHON_COMPILING_IN_CPYTHON
2343static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length);
2344#endif
2345
2346/* TupleOrListFromArrayImpl.proto (used by TupleFromArray) */
2347#if PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API
2348#define __Pyx_PyTuple_FromArray(src, n) PyTuple_FromArray(src, ((n)<0) ? 0 : (n))
2349#else
2350CYTHON_UNUSED static PyObject *
2351__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
2352#endif
2353
2354/* TupleFromArray.proto (used by fastcall) */
2355
2356
2357/* IncludeStringH.proto (used by PyObjectCompare) */
2358#include <string.h>
2359
2360/* PyObjectCompare.proto (used by UnicodeEquals) */
2361static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop);
2362
2363/* UnicodeEquals.proto (used by fastcall) */
2364#define __Pyx_PyUnicode_Equals(s1, s2) __Pyx_PyObject_CompareBoolEq_str_str(s1, s2, Py_EQ)
2365
2366/* fastcall.proto */
2367#if CYTHON_AVOID_BORROWED_REFS
2368 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
2369#elif CYTHON_ASSUME_SAFE_MACROS
2370 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
2371#else
2372 #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
2373#endif
2374#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
2375#define __Pyx_KwValues_VARARGS(args, nargs) NULL
2376#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
2377#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
2378#if CYTHON_VECTORCALL
2379 #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
2380 #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
2381 #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
2382 static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
2383 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
2384 CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
2385 #else
2386 #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
2387 #endif
2388#else
2389 #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
2390 #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
2391 #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
2392 #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
2393 #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
2394#endif
2395#if CYTHON_VECTORCALL_TPNEW
2396 #if !CYTHON_VECTORCALL
2397 #error Enabling CYTHON_VECTORCALL_TPNEW without CYTHON_VECTORCALL is not supported
2398 #endif
2399 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_FASTCALL
2400 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_FASTCALL
2401 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_FASTCALL
2402 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_FASTCALL
2403 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_FASTCALL
2404#else
2405 #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_VARARGS
2406 #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_VARARGS
2407 #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_VARARGS
2408 #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_VARARGS
2409 #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_VARARGS
2410#endif
2411#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
2412#if CYTHON_VECTORCALL
2413#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
2414#else
2415#define __Pyx_ArgsSlice_FASTCALL __Pyx_ArgsSlice_VARARGS
2416#endif
2417
2418/* RaiseArgTupleInvalid.export */
2419static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2420 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2421
2422/* py_dict_items.proto (used by OwnedDictNext) */
2423#define __Pyx_PyDict_items_TypePtr (&PyDictKeys_Type)
2424#define __Pyx_PyDict_items_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictItems_TypePtr)
2425#define __Pyx_PyDict_items_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictItems_TypePtr)
2426static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);
2427
2428/* CallCFunction.proto (used by CallUnboundCMethod0) */
2429#define __Pyx_CallCFunction(cfunc, self, args)\
2430 ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
2431#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
2432 ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
2433#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
2434 ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
2435#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
2436 ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)
2437
2438/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */
2439static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2440
2441/* UnpackUnboundCMethod_decl.proto (used by UnpackUnboundCMethod) */
2442typedef struct {
2443 PyObject *type;
2444 PyObject **method_name;
2445 PyCFunction func;
2446 PyObject *method;
2447 int flag;
2448#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
2449 __pyx_atomic_int_type initialized;
2450#endif
2451} __Pyx_CachedCFunction;
2452
2453/* IgnoreException.proto (used by UnpackUnboundCMethod_impl) */
2454static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception);
2455#define __Pyx_IgnoreException(ignorable_exception) __Pyx_IgnoreGivenException(NULL, ignorable_exception)
2456
2457/* PyObjectGetAttrStr.proto (used by UnpackUnboundCMethod_impl) */
2458#if CYTHON_USE_TYPE_SLOTS
2459static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
2460#else
2461#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
2462#endif
2463
2464/* UnpackUnboundCMethod_impl.export */
2465static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target);
2466
2467/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
2468#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2469static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
2470#if !CYTHON_ATOMICS
2471 return 1;
2472#else
2473 __pyx_nonatomic_int_type expected = 0;
2474 if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
2475 return 0;
2476 }
2477 return expected;
2478#endif
2479}
2480static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
2481#if CYTHON_ATOMICS
2482 __pyx_atomic_store(&cfunc->initialized, 2);
2483#endif
2484}
2485#else
2486#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
2487#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
2488#endif
2489
2490/* CallUnboundCMethod0.proto */
2491CYTHON_UNUSED
2492static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2493#if CYTHON_COMPILING_IN_CPYTHON
2494static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2495#else
2496#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
2497#endif
2498
2499/* py_dict_values.proto (used by OwnedDictNext) */
2500#define __Pyx_PyDict_values_TypePtr (&PyDictKeys_Type)
2501#define __Pyx_PyDict_values_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictValues_TypePtr)
2502#define __Pyx_PyDict_values_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictValues_TypePtr)
2503static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);
2504
2505/* OwnedDictNext.proto (used by RejectKeywords) */
2506#if CYTHON_AVOID_BORROWED_REFS
2507static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
2508#else
2509CYTHON_INLINE
2510static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
2511#endif
2512
2513/* RejectKeywords.export */
2514static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);
2515
2516/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
2517static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2518
2519/* ParseKeywordsImpl.export */
2520static int __Pyx_ParseKeywordsTuple(
2521 PyObject *kwds,
2522 PyObject * const *kwvalues,
2523 PyObject ** const argnames[],
2524 PyObject *kwds2,
2525 PyObject *values[],
2526 Py_ssize_t num_pos_args,
2527 Py_ssize_t num_kwargs,
2528 const char* function_name,
2529 int ignore_unknown_kwargs
2530);
2531static int __Pyx_ParseKeywordDictToDict(
2532 PyObject *kwds,
2533 PyObject ** const argnames[],
2534 PyObject *kwds2,
2535 PyObject *values[],
2536 Py_ssize_t num_pos_args,
2537 const char* function_name
2538);
2539static int __Pyx_ParseKeywordDict(
2540 PyObject *kwds,
2541 PyObject ** const argnames[],
2542 PyObject *values[],
2543 Py_ssize_t num_pos_args,
2544 Py_ssize_t num_kwargs,
2545 const char* function_name,
2546 int ignore_unknown_kwargs
2547);
2548
2549/* CallUnboundCMethod2.proto */
2550CYTHON_UNUSED
2551static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
2552#if CYTHON_COMPILING_IN_CPYTHON
2553static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
2554#else
2555#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
2556#endif
2557
2558/* ParseKeywords.proto */
2559static CYTHON_INLINE int __Pyx_ParseKeywords(
2560 PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
2561 PyObject *kwds2, PyObject *values[],
2562 Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
2563 const char* function_name,
2564 int ignore_unknown_kwargs
2565);
2566
2567/* ArgTypeTestError.export */
2568static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2569
2570/* ArgTypeTest.proto */
2571static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact);
2572
2573/* IsLittleEndian.proto (used by BufferFormatCheck) */
2574static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
2575
2576/* BufferFormatCheck.proto (used by BufferGetAndValidate) */
2577static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
2578static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
2579 __Pyx_BufFmt_StackElem* stack,
2580 const __Pyx_TypeInfo* type);
2581
2582/* BufferGetAndValidate.proto */
2583#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
2584 ((obj == Py_None || obj == NULL) ?\
2585 (__Pyx_ZeroBuffer(buf), 0) :\
2586 __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
2587static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
2588 const __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
2589static void __Pyx_ZeroBuffer(Py_buffer* buf);
2590static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
2591static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
2592static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
2593
2594/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */
2595static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2596
2597/* GetBuiltinName.proto (used by GetModuleGlobalName) */
2598static PyObject *__Pyx_GetBuiltinName(PyObject *name);
2599
2600/* PyDictVersioning.proto (used by GetModuleGlobalName) */
2601#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2602#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
2603#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
2604#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2605 (version_var) = __PYX_GET_DICT_VERSION(dict);\
2606 (cache_var) = (value);
2607#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2608 static PY_UINT64_T __pyx_dict_version = 0;\
2609 static PyObject *__pyx_dict_cached_value = NULL;\
2610 if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2611 (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
2612 } else {\
2613 (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2614 __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2615 }\
2616}
2617static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2618static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2619static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2620#else
2621#define __PYX_GET_DICT_VERSION(dict) (0)
2622#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2623#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
2624#endif
2625
2626/* GetModuleGlobalName.proto */
2627#if CYTHON_USE_DICT_VERSIONS
2628#define __Pyx_GetModuleGlobalName(var, name) do {\
2629 static PY_UINT64_T __pyx_dict_version = 0;\
2630 static PyObject *__pyx_dict_cached_value = NULL;\
2631 (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\
2632 (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
2633 __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2634} while(0)
2635#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\
2636 PY_UINT64_T __pyx_dict_version;\
2637 PyObject *__pyx_dict_cached_value;\
2638 (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2639} while(0)
2640static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
2641#else
2642#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2643#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2644static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
2645#endif
2646
2647/* FormatTypeName.proto (used by RaiseErrorWithObjectTypes) */
2648#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2649typedef PyObject *__Pyx_TypeName;
2650#define __Pyx_FMT_TYPENAME "%N"
2651#define __Pyx_PyType_GetFullyQualifiedName(tp) Py_NewRef((PyObject*)tp)
2652#define __Pyx_DECREF_TypeName(obj) Py_DECREF(obj)
2653#elif CYTHON_COMPILING_IN_LIMITED_API
2654typedef PyObject *__Pyx_TypeName;
2655#define __Pyx_FMT_TYPENAME "%U"
2656#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
2657static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
2658#else // !LIMITED_API
2659typedef const char *__Pyx_TypeName;
2660#define __Pyx_FMT_TYPENAME "%.200s"
2661#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
2662#define __Pyx_DECREF_TypeName(obj)
2663#endif
2664
2665/* RaiseErrorWithObjectTypes.proto (used by ExtTypeTest) */
2666#define __Pyx_RaiseErrorWithObjectTypes1(exc_type, message, arg, obj1, obj2) __Pyx_RaiseErrorWithTypes1(exc_type, message, arg, Py_TYPE(obj1), Py_TYPE(obj2))
2667#define __Pyx_RaiseTypeErrorWithObjectTypes(message, obj1, obj2) __Pyx_RaiseTypeErrorWithTypes(message, Py_TYPE(obj1), Py_TYPE(obj2))
2668#define __Pyx_RaiseTypeErrorWithTypes(message, type_obj1, type_obj2) __Pyx_RaiseErrorWithTypes1(PyExc_TypeError, "%.1s" message, "", type_obj1, type_obj2)
2669CYTHON_UNUSED
2670static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2);
2671
2672/* ExtTypeTest.proto */
2673static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
2674
2675/* BufferFallbackError.proto */
2676static void __Pyx_RaiseBufferFallbackError(void);
2677
2678/* BufferIndexError.proto */
2679static void __Pyx_RaiseBufferIndexError(int axis);
2680
2681#define __Pyx_BufPtrCContig1d(type, buf, i0, s0) ((type)buf + i0)
2682#define __Pyx_BufPtrCContig2d(type, buf, i0, s0, i1, s1) ((type)((char*)buf + i0 * s0) + i1)
2683/* PyTypeError_Check.proto */
2684#define __Pyx_PyExc_TypeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_TypeError)
2685
2686/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */
2687#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
2688#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)
2689#else
2690#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)
2691#endif
2692
2693/* PyObjectSetAttrStr.proto */
2694#if CYTHON_USE_TYPE_SLOTS
2695#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
2696static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
2697#else
2698#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_DelAttr(o,n)
2699#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
2700#endif
2701
2702/* AllocateExtensionType.proto */
2703static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final);
2704
2705/* CallSlotAsVectorcall.proto */
2706#if CYTHON_VECTORCALL_TPNEW
2707typedef PyObject * (*__Pyx_tpnewvectorcallfunc)(PyTypeObject* o, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames);
2708static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k);
2709#endif
2710
2711/* RaiseErrorWithObjectType.proto (used by CallNewInitFromVectorcall) */
2712#define __Pyx_RaiseTypeErrorWithObjectType(message, obj) __Pyx_RaiseErrorWithObjectType(PyExc_TypeError, message, obj)
2713#define __Pyx_RaiseErrorWithObjectType(exc_type, message, obj) __Pyx_RaiseErrorWithType(exc_type, message, Py_TYPE(obj))
2714CYTHON_UNUSED
2715static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj);
2716
2717/* CallNewInitFromVectorcall.proto */
2718#if CYTHON_VECTORCALL_TPNEW
2719static PyObject *__Pyx_CallNewInitFromVectorcall(PyTypeObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2720#endif
2721
2722/* DeallocKeepAlive.proto */
2723#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
2724#define __Pyx_DeallocKeepAliveBegin(o) do {\
2725 _Py_atomic_store_uintptr_relaxed(&(o)->ob_tid, _Py_ThreadId());\
2726 _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 1);\
2727 _Py_atomic_store_ssize_relaxed(&(o)->ob_ref_shared, 0);\
2728 } while (0)
2729#define __Pyx_DeallocKeepAliveEnd(o)\
2730 _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 0)
2731#else
2732#define __Pyx_DeallocKeepAliveBegin(o) Py_SET_REFCNT(o, Py_REFCNT(o) + 1)
2733#define __Pyx_DeallocKeepAliveEnd(o) Py_SET_REFCNT(o, Py_REFCNT(o) - 1)
2734#endif
2735
2736/* CallTypeTraverse.proto */
2737#if !CYTHON_USE_TYPE_SPECS
2738#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
2739#else
2740static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
2741#endif
2742
2743/* PyObjectCallMethod0.proto (used by PyType_Ready) */
2744static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);
2745
2746/* GetTypeDictOffset.proto (used by ValidateBasesTuple) */
2747#if !CYTHON_USE_TYPE_SLOTS
2748CYTHON_UNUSED static Py_ssize_t __Pyx_GetTypeDictOffset(PyObject *tp, int require_cython_valid_result);
2749#endif
2750
2751/* RaiseErrorWithObjectType1.proto (used by ValidateBasesTuple) */
2752#define __Pyx_RaiseTypeErrorWithObjectType1(message, arg, obj) __Pyx_RaiseErrorWithObjectType1(PyExc_TypeError, message, arg, obj)
2753#define __Pyx_RaiseErrorWithObjectType1(exc_type, message, arg, obj) __Pyx_RaiseErrorWithType1(exc_type, message, arg, Py_TYPE(obj))
2754CYTHON_UNUSED
2755static void __Pyx_RaiseErrorWithType1(PyObject* exc_type, const char* message, const char *arg, PyTypeObject *type_obj);
2756
2757/* ValidateBasesTuple.proto (used by PyType_Ready) */
2758#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
2759static int __Pyx_validate_bases_tuple(const char *type_name, int has_dictoffset, PyObject *bases);
2760#endif
2761
2762/* PyType_Ready.export */
2763CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);
2764
2765/* LimitedApiGetTypeTypeDict.proto (used by DelItemOnTypeDict) */
2766#if CYTHON_COMPILING_IN_LIMITED_API
2767static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp);
2768#endif
2769
2770/* DelItemOnTypeDict.proto (used by SetupReduce) */
2771#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)
2772
2773/* DelItemOnTypeDict.export */
2774static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
2775
2776/* SetItemOnTypeDict.proto (used by SetupReduce) */
2777#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)
2778
2779/* SetItemOnTypeDict.export */
2780static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
2781
2782/* SetupReduce.export */
2783static int __Pyx_setup_reduce(PyObject* type_obj);
2784
2785/* TypeImport.proto */
2786#ifndef __PYX_HAVE_RT_ImportType_proto_3_3_0
2787#define __PYX_HAVE_RT_ImportType_proto_3_3_0
2788#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
2789#include <stdalign.h>
2790#endif
2791#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
2792#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) alignof(s)
2793#else
2794#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) sizeof(void*)
2795#endif
2796enum __Pyx_ImportType_CheckSize_3_3_0 {
2797 __Pyx_ImportType_CheckSize_Error_3_3_0 = 0,
2798 __Pyx_ImportType_CheckSize_Warn_3_3_0 = 1,
2799 __Pyx_ImportType_CheckSize_Ignore_3_3_0 = 2
2800};
2801static 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);
2802#endif
2803
2804/* HasAttr.proto (used by ImportImpl) */
2805#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
2806#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n)
2807#else
2808static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2809#endif
2810
2811/* TupleOrListFromArrayImpl.proto (used by ListFromArray) */
2812CYTHON_UNUSED static PyObject *
2813__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
2814
2815/* ListFromArray.proto (used by ImportImpl) */
2816
2817
2818/* ImportImpl.export */
2819static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);
2820
2821/* Import.proto */
2822static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);
2823
2824/* ImportFrom.export */
2825static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
2826
2827/* dict_setdefault.proto (used by FetchCommonType) */
2828static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);
2829
2830/* AddModuleRef.proto (used by FetchSharedCythonModule) */
2831#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3) ||\
2832 __PYX_LIMITED_VERSION_HEX < 0x030d0000)
2833 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
2834#else
2835 #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
2836#endif
2837
2838/* FetchSharedCythonModule.proto (used by FetchCommonType) */
2839static PyObject *__Pyx_FetchSharedCythonABIModule(void);
2840
2841/* VerifyCachedType.proto (used by FetchCommonType) */
2842static int __Pyx_VerifyCachedType(PyObject *cached_type,
2843 const char *name,
2844 Py_ssize_t expected_basicsize);
2845
2846/* FetchCommonType.proto (used by CommonTypesMetaclass) */
2847static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);
2848
2849/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
2850static int __pyx_CommonTypesMetaclass_init(PyObject *module);
2851#define __Pyx_CommonTypesMetaclass_USED
2852
2853/* CythonFunctionPerModule.proto (used by CythonFunctionShared) */
2854#define __Pyx_CyFunction_USED
2855#if CYTHON_OPAQUE_SHARED_TYPES
2856#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)PyObject_GetTypeData((o), __pyx_mstate_global->__pyx_CyFunctionType))
2857#else
2858#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)o)
2859#endif
2860#define __Pyx_CYFUNCTION_STATICMETHOD 0x01
2861#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
2862#define __Pyx_CYFUNCTION_CCLASS 0x04
2863#define __Pyx_CYFUNCTION_COROUTINE 0x08
2864#define __Pyx_CyFunction_GetClosure(f)\
2865 ((__Pyx_as_CyFunctionObject(f))->func_closure)
2866#if CYTHON_COMPILING_IN_LIMITED_API
2867 #define __Pyx__CyFunction_GetClassObj(f)\
2868 ((f)->func_classobj)
2869#else
2870 #define __Pyx__CyFunction_GetClassObj(f)\
2871 ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
2872#endif
2873#define __Pyx_CyFunction_GetClassObj(f)\
2874 __Pyx__CyFunction_GetClassObj(__Pyx_as_CyFunctionObject(f))
2875#define __Pyx_CyFunction_SetClassObj(f, classobj)\
2876 __Pyx__CyFunction_SetClassObj(__Pyx_as_CyFunctionObject(f), (classobj))
2877#define __Pyx_CyFunction_Defaults(type, f)\
2878 ((type *)((__Pyx_as_CyFunctionObject(f))->defaults))
2879#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
2880 (__Pyx_as_CyFunctionObject(f))->defaults_getter = (g)
2881typedef struct {
2882#if CYTHON_COMPILING_IN_LIMITED_API
2883#if !CYTHON_OPAQUE_OBJECTS
2884 PyObject_HEAD
2885#endif
2886 PyMethodDef *func_methoddef;
2887 PyObject *func_module;
2888#else
2889 PyCMethodObject func;
2890#endif
2891#if (CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY) && CYTHON_VECTORCALL
2892 __pyx_vectorcallfunc func_vectorcall;
2893#endif
2894#if CYTHON_COMPILING_IN_LIMITED_API
2895 PyObject *func_weakreflist;
2896#endif
2897#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
2898 PyObject *func_dict;
2899#endif
2900 PyObject *func_name;
2901 PyObject *func_qualname;
2902 PyObject *func_doc;
2903 PyObject *func_globals;
2904 PyObject *func_code;
2905 PyObject *func_closure;
2906#if CYTHON_COMPILING_IN_LIMITED_API
2907 PyObject *func_classobj;
2908#endif
2909 PyObject *defaults;
2910 int flags;
2911 PyObject *defaults_tuple;
2912 PyObject *defaults_kwdict;
2913 PyObject *(*defaults_getter)(PyObject *);
2914 PyObject *func_annotations;
2915#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
2916 PyObject *func_is_coroutine;
2917#endif
2918} __pyx_CyFunctionObject;
2919#undef __Pyx_CyOrPyCFunction_Check
2920#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2921#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
2922#define __Pyx_CyFunction_CheckExact(obj) Py_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
2923static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
2924#undef __Pyx_IsSameCFunction
2925#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc)
2926static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
2927static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
2928 PyTypeObject *defaults_type);
2929static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
2930 PyObject *tuple);
2931static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
2932 PyObject *dict);
2933static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
2934 PyObject *dict);
2935static int __pyx_CyFunction_init(PyObject *module);
2936#if CYTHON_VECTORCALL
2937#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
2938#define __Pyx_CyFunction_func_vectorcall(f) ((f)->func_vectorcall)
2939#else
2940#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
2941#endif
2942#endif
2943
2944/* PyMethodNew.proto (used by CythonFunctionShared) */
2945static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);
2946
2947/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
2948#if CYTHON_VECTORCALL
2949static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
2950#endif
2951
2952/* CythonFunctionShared.proto (used by CythonFunction) */
2953static PyObject *__Pyx_CyFunction_Init(PyObject *op_in, PyMethodDef *ml,
2954 int flags, PyObject* qualname,
2955 PyObject *closure,
2956 PyObject *module, PyObject *globals,
2957 PyObject* code);
2958#if CYTHON_VECTORCALL
2959static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2960static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2961static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2962static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2963#endif
2964
2965/* CythonFunction.export */
2966static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
2967 int flags, PyObject* qualname,
2968 PyObject *closure,
2969 PyObject *module, PyObject *globals,
2970 PyObject* code);
2971static PyTypeObject *__Pyx_Get_CyFunction_Type(void);
2972
2973/* SetNameInClass.proto */
2974#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
2975#define __Pyx_SetNameInClass(ns, name, value)\
2976 (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
2977#elif CYTHON_COMPILING_IN_CPYTHON
2978#define __Pyx_SetNameInClass(ns, name, value)\
2979 (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
2980#else
2981#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value)
2982#endif
2983
2984/* CalculateMetaclass.proto (used by Py3ClassCreate) */
2985static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);
2986
2987/* PyObjectCall2Args.proto (used by Py3ClassCreate) */
2988static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
2989
2990/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */
2991#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
2992#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
2993#define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
2994static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
2995#else
2996#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
2997#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
2998#endif
2999
3000/* Py3ClassCreate.export */
3001static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
3002 PyObject *mkw, PyObject *modname, PyObject *doc);
3003static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
3004 PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);
3005
3006/* CLineInTraceback.proto (used by AddTraceback) */
3007#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
3008static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
3009#else
3010#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
3011#endif
3012
3013/* CodeObjectCache.proto (used by AddTraceback) */
3014#if CYTHON_COMPILING_IN_LIMITED_API
3015typedef PyObject __Pyx_CachedCodeObjectType;
3016#else
3017typedef PyCodeObject __Pyx_CachedCodeObjectType;
3018#endif
3019typedef struct {
3020 __Pyx_CachedCodeObjectType* code_object;
3021 int code_line;
3022} __Pyx_CodeObjectCacheEntry;
3023struct __Pyx_CodeObjectCache {
3024 int count;
3025 int max_count;
3026 __Pyx_CodeObjectCacheEntry* entries;
3027 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
3028 __pyx_atomic_int_type accessor_count;
3029 #endif
3030};
3031static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
3032static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
3033static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);
3034
3035/* AddTraceback.proto */
3036static void __Pyx_AddTraceback(const char *funcname, int c_line,
3037 int py_line, const char *filename);
3038
3039/* BufferStructDeclare.proto */
3040typedef struct {
3041 Py_ssize_t shape, strides, suboffsets;
3042} __Pyx_Buf_DimInfo;
3043typedef struct {
3044 size_t refcount;
3045 Py_buffer pybuffer;
3046} __Pyx_Buffer;
3047typedef struct {
3048 __Pyx_Buffer *rcbuffer;
3049 char *data;
3050 __Pyx_Buf_DimInfo diminfo[8];
3051} __Pyx_LocalBuf_ND;
3052
3053/* GCCDiagnostics.proto */
3054#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
3055#define __Pyx_HAS_GCC_DIAGNOSTIC
3056#endif
3057
3058/* CppExceptionConversion.proto */
3059#ifndef __Pyx_CppExn2PyErr
3060#include <new>
3061#include <typeinfo>
3062#include <stdexcept>
3063#include <ios>
3064static void __Pyx_CppExn2PyErr() {
3065 try {
3066 if (PyErr_Occurred())
3067 ; // let the latest Python exn pass through and ignore the current one
3068 else
3069 throw;
3070 } catch (const std::bad_alloc& exn) {
3071 PyErr_SetString(PyExc_MemoryError, exn.what());
3072 } catch (const std::bad_cast& exn) {
3073 PyErr_SetString(PyExc_TypeError, exn.what());
3074 } catch (const std::bad_typeid& exn) {
3075 PyErr_SetString(PyExc_TypeError, exn.what());
3076 } catch (const std::domain_error& exn) {
3077 PyErr_SetString(PyExc_ValueError, exn.what());
3078 } catch (const std::invalid_argument& exn) {
3079 PyErr_SetString(PyExc_ValueError, exn.what());
3080 } catch (const std::ios_base::failure& exn) {
3081 PyErr_SetString(PyExc_IOError, exn.what());
3082 } catch (const std::out_of_range& exn) {
3083 PyErr_SetString(PyExc_IndexError, exn.what());
3084 } catch (const std::overflow_error& exn) {
3085 PyErr_SetString(PyExc_OverflowError, exn.what());
3086 } catch (const std::range_error& exn) {
3087 PyErr_SetString(PyExc_ArithmeticError, exn.what());
3088 } catch (const std::underflow_error& exn) {
3089 PyErr_SetString(PyExc_ArithmeticError, exn.what());
3090 } catch (const std::exception& exn) {
3091 PyErr_SetString(PyExc_RuntimeError, exn.what());
3092 }
3093 catch (...)
3094 {
3095 PyErr_SetString(PyExc_RuntimeError, "Unknown exception");
3096 }
3097}
3098#endif
3099
3100/* RealImag.proto */
3101#if CYTHON_CCOMPLEX
3102 #ifdef __cplusplus
3103 #define __Pyx_CREAL(z) ((z).real())
3104 #define __Pyx_CIMAG(z) ((z).imag())
3105 #else
3106 #define __Pyx_CREAL(z) (__real__(z))
3107 #define __Pyx_CIMAG(z) (__imag__(z))
3108 #endif
3109#else
3110 #define __Pyx_CREAL(z) ((z).real)
3111 #define __Pyx_CIMAG(z) ((z).imag)
3112#endif
3113#if defined(__cplusplus) && CYTHON_CCOMPLEX\
3114 && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
3115 #define __Pyx_SET_CREAL(z,x) ((z).real(x))
3116 #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
3117#else
3118 #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
3119 #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
3120#endif
3121
3122/* Arithmetic.proto */
3123#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3124 #define __Pyx_c_eq_float(a, b) ((a)==(b))
3125 #define __Pyx_c_sum_float(a, b) ((a)+(b))
3126 #define __Pyx_c_diff_float(a, b) ((a)-(b))
3127 #define __Pyx_c_prod_float(a, b) ((a)*(b))
3128 #define __Pyx_c_quot_float(a, b) ((a)/(b))
3129 #define __Pyx_c_neg_float(a) (-(a))
3130 #ifdef __cplusplus
3131 #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
3132 #define __Pyx_c_conj_float(z) (::std::conj(z))
3133 #if 1
3134 #define __Pyx_c_abs_float(z) (::std::abs(z))
3135 #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
3136 #endif
3137 #else
3138 #define __Pyx_c_is_zero_float(z) ((z)==0)
3139 #define __Pyx_c_conj_float(z) (conjf(z))
3140 #if 1
3141 #define __Pyx_c_abs_float(z) (cabsf(z))
3142 #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
3143 #endif
3144 #endif
3145#else
3146 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
3147 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
3148 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
3149 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
3150 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
3151 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
3152 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
3153 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
3154 #if 1
3155 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
3156 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
3157 #endif
3158#endif
3159
3160/* Arithmetic.proto */
3161#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3162 #define __Pyx_c_eq_double(a, b) ((a)==(b))
3163 #define __Pyx_c_sum_double(a, b) ((a)+(b))
3164 #define __Pyx_c_diff_double(a, b) ((a)-(b))
3165 #define __Pyx_c_prod_double(a, b) ((a)*(b))
3166 #define __Pyx_c_quot_double(a, b) ((a)/(b))
3167 #define __Pyx_c_neg_double(a) (-(a))
3168 #ifdef __cplusplus
3169 #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
3170 #define __Pyx_c_conj_double(z) (::std::conj(z))
3171 #if 1
3172 #define __Pyx_c_abs_double(z) (::std::abs(z))
3173 #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
3174 #endif
3175 #else
3176 #define __Pyx_c_is_zero_double(z) ((z)==0)
3177 #define __Pyx_c_conj_double(z) (conj(z))
3178 #if 1
3179 #define __Pyx_c_abs_double(z) (cabs(z))
3180 #define __Pyx_c_pow_double(a, b) (cpow(a, b))
3181 #endif
3182 #endif
3183#else
3184 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
3185 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
3186 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
3187 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
3188 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
3189 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
3190 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
3191 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
3192 #if 1
3193 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
3194 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
3195 #endif
3196#endif
3197
3198/* Arithmetic.proto */
3199#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3200 #define __Pyx_c_eq_long__double(a, b) ((a)==(b))
3201 #define __Pyx_c_sum_long__double(a, b) ((a)+(b))
3202 #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
3203 #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
3204 #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
3205 #define __Pyx_c_neg_long__double(a) (-(a))
3206 #ifdef __cplusplus
3207 #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
3208 #define __Pyx_c_conj_long__double(z) (::std::conj(z))
3209 #if 1
3210 #define __Pyx_c_abs_long__double(z) (::std::abs(z))
3211 #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b))
3212 #endif
3213 #else
3214 #define __Pyx_c_is_zero_long__double(z) ((z)==0)
3215 #define __Pyx_c_conj_long__double(z) (conjl(z))
3216 #if 1
3217 #define __Pyx_c_abs_long__double(z) (cabsl(z))
3218 #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b))
3219 #endif
3220 #endif
3221#else
3222 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3223 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3224 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3225 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3226 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3227 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
3228 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
3229 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
3230 #if 1
3231 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
3232 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3233 #endif
3234#endif
3235
3236/* PyObjectVectorcallKwds.proto (used by PyObjectVectorcallMethodKwds) */
3237#if CYTHON_VECTORCALL
3238#define __Pyx_Object_VectorcallKwds PyObject_Vectorcall
3239CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i);
3240#else
3241#define __Pyx_Object_VectorcallKwds __Pyx_PyObject_FastCallDict
3242CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n);
3243CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i);
3244#endif
3245
3246/* PyObjectVectorcallMethodKwds.proto (used by CIntToPy) */
3247#if CYTHON_VECTORCALL
3248#define __Pyx_Object_VectorcallMethodKwds PyObject_VectorcallMethod
3249#else
3250static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
3251#endif
3252
3253/* CIntToPy.proto */
3254static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);
3255
3256/* CIntFromPy.proto */
3257static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);
3258
3259/* CIntToPy.proto */
3260static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);
3261
3262/* CIntFromPy.proto */
3263static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);
3264
3265/* GetRuntimeVersion.proto */
3266#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
3267static unsigned long __Pyx_cached_runtime_version = 0;
3268static void __Pyx_init_runtime_version(void);
3269#else
3270#define __Pyx_init_runtime_version()
3271#endif
3272static unsigned long __Pyx_get_runtime_version(void);
3273
3274/* CheckBinaryVersion.proto */
3275static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
3276
3277/* DecompressString.proto */
3278static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);
3279
3280/* DecompressString_LZSS.proto */
3281static PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length);
3282
3283/* MultiPhaseInitModuleState.proto */
3284#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
3285#include <stdlib.h>
3286static PyObject *__Pyx_State_FindModule(void*);
3287static int __Pyx_State_AddModule(PyObject* module, void*);
3288static int __Pyx_State_RemoveModule(void*);
3289#elif CYTHON_USE_MODULE_STATE
3290#define __Pyx_State_FindModule PyState_FindModule
3291#define __Pyx_State_AddModule PyState_AddModule
3292#define __Pyx_State_RemoveModule PyState_RemoveModule
3293#endif
3294
3295/* #### Code section: module_declarations ### */
3296/* CythonABIVersion.proto */
3297#if CYTHON_COMPILING_IN_LIMITED_API
3298 #if CYTHON_VECTORCALL
3299 #define __PYX_VECTORCALL_ABI_SUFFIX "_vectorcall"
3300 #else
3301 #define __PYX_VECTORCALL_ABI_SUFFIX
3302 #endif
3303 #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_VECTORCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
3304#else
3305 #define __PYX_LIMITED_ABI_SUFFIX
3306#endif
3307#if __PYX_HAS_PY_AM_SEND == 1
3308 #define __PYX_AM_SEND_ABI_SUFFIX
3309#elif __PYX_HAS_PY_AM_SEND == 2
3310 #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
3311#else
3312 #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
3313#endif
3314#ifndef __PYX_MONITORING_ABI_SUFFIX
3315 #define __PYX_MONITORING_ABI_SUFFIX
3316#endif
3317#if CYTHON_USE_TP_FINALIZE
3318 #define __PYX_TP_FINALIZE_ABI_SUFFIX
3319#else
3320 #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
3321#endif
3322#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
3323 #define __PYX_FREELISTS_ABI_SUFFIX
3324#else
3325 #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
3326#endif
3327#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API
3328 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX "opaque"
3329#else
3330 #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX
3331#endif
3332#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
3333#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
3334#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
3335
3336static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3337static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3338static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3339static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3340static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3341static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3342static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3343static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3344static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3345static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3346static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self); /* proto*/
3347static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3348static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3349static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3350static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3351static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3352static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3353static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self); /* proto*/
3354static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self); /* proto*/
3355static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self); /* proto*/
3356static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self); /* proto*/
3357static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self); /* proto*/
3358static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self); /* proto*/
3359static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self); /* proto*/
3360static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3361static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3362static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3363static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3364static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3365static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3366static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3367static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3368static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3369static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3370static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self); /* proto*/
3371
3372/* Module declarations from "libc.string" */
3373
3374/* Module declarations from "libc.stdio" */
3375
3376/* Module declarations from "__builtin__" */
3377
3378/* Module declarations from "cpython.type" */
3379
3380/* Module declarations from "cpython" */
3381
3382/* Module declarations from "cpython.object" */
3383
3384/* Module declarations from "cpython.ref" */
3385
3386/* Module declarations from "numpy" */
3387
3388/* Module declarations from "numpy" */
3389
3390/* Module declarations from "proteus" */
3391
3392/* Module declarations from "libcpp" */
3393
3394/* Module declarations from "mesh" */
3395
3396/* Module declarations from "proteus.cmeshTools" */
3397
3398/* Module declarations from "libcpp.string_view" */
3399
3400/* Module declarations from "libcpp.string" */
3401
3402/* Module declarations from "libcpp.vector" */
3403
3404/* Module declarations from "MeshAdaptPUMI.MeshAdapt" */
3405static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
3406static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
3407static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
3408static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
3409static std::string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(PyObject *); /*proto*/
3410/* #### Code section: typeinfo ### */
3411static const __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_double_t = { "double_t", NULL, sizeof(__pyx_t_5numpy_double_t), { 0 }, 0, 'R', 0, 0 };
3412static const __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, __PYX_IS_UNSIGNED(int) ? 'U' : 'I', __PYX_IS_UNSIGNED(int), 0 };
3413/* #### Code section: before_global_var ### */
3414#define __Pyx_MODULE_NAME "MeshAdaptPUMI.MeshAdapt"
3415extern int __pyx_module_is_main_MeshAdaptPUMI__MeshAdapt;
3416int __pyx_module_is_main_MeshAdaptPUMI__MeshAdapt = 0;
3417
3418/* Implementation of "MeshAdaptPUMI.MeshAdapt" */
3419/* #### Code section: global_var ### */
3420/* #### Code section: string_decls ### */
3421/* #### Code section: decls ### */
3422static int __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt___cinit__(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3423static void __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_2__dealloc__(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3424static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_4size_field_config(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3425static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_6adapt_type_config(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3426static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_8numIter(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3427static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_10adaptMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3428static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_12numAdaptSteps(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3429static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_14nAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3430static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_16set_nAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_numberAdapt); /* proto */
3431static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_18isReconstructed(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3432static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_20loadModelAndMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_geomName, PyObject *__pyx_v_meshName); /* proto */
3433static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_22loadMeshForAnalytic(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_meshName, PyArrayObject *__pyx_v_boxDim, PyArrayObject *__pyx_v_sphereCenter, double __pyx_v_sphereRadius); /* proto */
3434static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_24updateSphereCoordinates(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_sphereCenter); /* proto */
3435static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_26reconstructFromProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_global_cmesh, PyObject *__pyx_v_hasModel); /* proto */
3436static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_28reconstructFromProteus2(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, PyArrayObject *__pyx_v_isModelVert, PyArrayObject *__pyx_v_bFaces); /* proto */
3437static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_30constructFromSerialPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh); /* proto */
3438static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_32constructFromParallelPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_subdomain_cmesh); /* proto */
3439static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_34updateMaterialArrays(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, PyObject *__pyx_v_dim, PyObject *__pyx_v_bdryId, PyObject *__pyx_v_geomTag); /* proto */
3440static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_36updateMaterialArrays2(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh); /* proto */
3441static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_38transferFieldToPUMI(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_inArray); /* proto */
3442static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_40transferFieldToProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_outArray); /* proto */
3443static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_42transferElementFieldToProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_outArray); /* proto */
3444static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_44transferPropertiesToPUMI(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_rho, PyArrayObject *__pyx_v_nu, PyArrayObject *__pyx_v_g, double __pyx_v_deltaT, double __pyx_v_deltaT_next, double __pyx_v_T_simulation, double __pyx_v_interfaceBandSize); /* proto */
3445static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_46setAdaptProperties(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_manager); /* proto */
3446static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_48transferModelInfo(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_numModelEntities, PyArrayObject *__pyx_v_edges, PyArrayObject *__pyx_v_faces, PyArrayObject *__pyx_v_meshVertex2Model, PyArrayObject *__pyx_v_meshEdge2Model, PyArrayObject *__pyx_v_meshBoundary2Model); /* proto */
3447static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_50adaptPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_inputString); /* proto */
3448static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_52dumpMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh); /* proto */
3449static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_54getERMSizeField(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_err_total); /* proto */
3450static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_56getMPvalue(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_field_val, PyObject *__pyx_v_val_0, PyObject *__pyx_v_val_1); /* proto */
3451static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_58willAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3452static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_60willInterfaceAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3453static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_62get_local_error(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3454static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_64get_VMS_error(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3455static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_66getMinimumQuality(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3456static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_68writeMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_meshName); /* proto */
3457static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_70cleanMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3458static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_72__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self); /* proto */
3459static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_74__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3460static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt___defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
3461static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_adapter); /* proto */
3462static PyObject *__pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyObject *o,
3463#if CYTHON_VECTORCALL_TPNEW
3464 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3465#else
3466 PyObject *a, PyObject *k
3467#endif
3468); /*proto*/
3469static PyObject *__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyTypeObject *t,
3470#if CYTHON_VECTORCALL_TPNEW
3471 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3472#else
3473 PyObject *a, PyObject *k
3474#endif
3475); /*proto*/
3476#if CYTHON_VECTORCALL_TPNEW
3477static PyObject *__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3478#endif
3479#if !CYTHON_VECTORCALL_TPNEW
3480#define __pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt __pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt
3481#endif
3482#if CYTHON_VECTORCALL_TPNEW
3483static PyObject *__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/
3484#endif
3485static PyObject *__pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *o,
3486#if CYTHON_VECTORCALL_TPNEW
3487 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3488#else
3489 PyObject *a, PyObject *k
3490#endif
3491); /*proto*/
3492static PyObject *__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyTypeObject *t,
3493#if CYTHON_VECTORCALL_TPNEW
3494 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
3495#else
3496 PyObject *a, PyObject *k
3497#endif
3498); /*proto*/
3499#if CYTHON_VECTORCALL_TPNEW
3500static PyObject *__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3501#endif
3502#if !CYTHON_VECTORCALL_TPNEW
3503#define __pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults __pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults
3504#endif
3505#if CYTHON_VECTORCALL_TPNEW
3506static PyObject *__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/
3507#endif
3508/* #### Code section: late_includes ### */
3509/* #### Code section: module_state ### */
3510/* SmallCodeConfig */
3511#ifndef CYTHON_SMALL_CODE
3512#if defined(__clang__)
3513 #define CYTHON_SMALL_CODE
3514#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
3515 #define CYTHON_SMALL_CODE __attribute__((cold))
3516#else
3517 #define CYTHON_SMALL_CODE
3518#endif
3519#endif
3520
3521#ifdef __cplusplus
3522namespace {
3523 #endif
3524 typedef struct {
3525 PyObject *__pyx_d;
3526 PyObject *__pyx_b;
3527 PyObject *__pyx_cython_runtime;
3528 PyObject *__pyx_empty_tuple;
3529 PyObject *__pyx_empty_bytes;
3530 PyObject *__pyx_empty_unicode;
3531 PyTypeObject *__pyx_ptype_7cpython_4type_type;
3532 PyTypeObject *__pyx_ptype_5numpy_dtype;
3533 PyTypeObject *__pyx_ptype_5numpy_flatiter;
3534 PyTypeObject *__pyx_ptype_5numpy_broadcast;
3535 PyTypeObject *__pyx_ptype_5numpy_ndarray;
3536 PyTypeObject *__pyx_ptype_5numpy_generic;
3537 PyTypeObject *__pyx_ptype_5numpy_number;
3538 PyTypeObject *__pyx_ptype_5numpy_integer;
3539 PyTypeObject *__pyx_ptype_5numpy_signedinteger;
3540 PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
3541 PyTypeObject *__pyx_ptype_5numpy_inexact;
3542 PyTypeObject *__pyx_ptype_5numpy_floating;
3543 PyTypeObject *__pyx_ptype_5numpy_complexfloating;
3544 PyTypeObject *__pyx_ptype_5numpy_flexible;
3545 PyTypeObject *__pyx_ptype_5numpy_character;
3546 PyTypeObject *__pyx_ptype_5numpy_ufunc;
3547 PyTypeObject *__pyx_ptype_7proteus_10cmeshTools_CMesh;
3548 PyObject *__pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt;
3549 PyObject *__pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults;
3550 PyTypeObject *__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt;
3551 PyTypeObject *__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults;
3552 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
3553 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
3554 __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
3555 PyObject *__pyx_tuple[3];
3556 PyObject *__pyx_codeobj_tab[37];
3557 PyObject *__pyx_string_tab[206];
3558 PyObject *__pyx_number_tab[8];
3559/* #### Code section: module_state_contents ### */
3560/* CommonTypesMetaclass.module_state_decls */
3561PyTypeObject *__pyx_CommonTypesMetaclassType;
3562
3563/* CachedMethodType.module_state_decls */
3564#if CYTHON_COMPILING_IN_LIMITED_API
3565PyObject *__Pyx_CachedMethodType;
3566#endif
3567
3568/* CythonFunctionPerModule.module_state_decls */
3569PyTypeObject *__pyx_CyFunctionType;
3570
3571/* CodeObjectCache.module_state_decls */
3572struct __Pyx_CodeObjectCache __pyx_code_cache;
3573
3574/* #### Code section: module_state_end ### */
3575} __pyx_mstatetype;
3576#ifdef __cplusplus
3577} /* anonymous namespace */
3578#endif
3579
3580#if CYTHON_USE_MODULE_STATE
3581#ifdef __cplusplus
3582namespace {
3583extern struct PyModuleDef __pyx_moduledef;
3584} /* anonymous namespace */
3585#else
3586static struct PyModuleDef __pyx_moduledef;
3587#endif
3588
3589#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))
3590
3591#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
3592#else
3593static __pyx_mstatetype __pyx_mstate_global_static =
3594#ifdef __cplusplus
3595 {};
3596#else
3597 {0};
3598#endif
3599static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
3600#endif
3601/* #### Code section: constant_name_defines ### */
3602#define __pyx_kp_u__2 __pyx_string_tab[0]
3603#define __pyx_kp_u_tree_fragment __pyx_string_tab[1]
3604#define __pyx_kp_u__3 __pyx_string_tab[2]
3605#define __pyx_kp_u_Profiling_2 __pyx_string_tab[3]
3606#define __pyx_kp_u_ __pyx_string_tab[4]
3607#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[5]
3608#define __pyx_kp_u_add_note __pyx_string_tab[6]
3609#define __pyx_kp_u_disable __pyx_string_tab[7]
3610#define __pyx_kp_u_enable __pyx_string_tab[8]
3611#define __pyx_kp_u_gc __pyx_string_tab[9]
3612#define __pyx_kp_u_isenabled __pyx_string_tab[10]
3613#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[11]
3614#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[12]
3615#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[13]
3616#define __pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt __pyx_string_tab[14]
3617#define __pyx_n_u_AdaptManager __pyx_string_tab[15]
3618#define __pyx_n_u_AdaptManager___init __pyx_string_tab[16]
3619#define __pyx_n_u_MeshAdapt __pyx_string_tab[17]
3620#define __pyx_n_u_MeshAdapt___reduce_cython __pyx_string_tab[18]
3621#define __pyx_n_u_MeshAdapt___setstate_cython __pyx_string_tab[19]
3622#define __pyx_n_u_MeshAdapt_adaptMesh __pyx_string_tab[20]
3623#define __pyx_n_u_MeshAdapt_adaptPUMIMesh __pyx_string_tab[21]
3624#define __pyx_n_u_MeshAdapt_adapt_type_config __pyx_string_tab[22]
3625#define __pyx_n_u_MeshAdapt_cleanMesh __pyx_string_tab[23]
3626#define __pyx_n_u_MeshAdapt_constructFromParallelP __pyx_string_tab[24]
3627#define __pyx_n_u_MeshAdapt_constructFromSerialPUM __pyx_string_tab[25]
3628#define __pyx_n_u_MeshAdapt_dumpMesh __pyx_string_tab[26]
3629#define __pyx_n_u_MeshAdapt_getERMSizeField __pyx_string_tab[27]
3630#define __pyx_n_u_MeshAdapt_getMPvalue __pyx_string_tab[28]
3631#define __pyx_n_u_MeshAdapt_getMinimumQuality __pyx_string_tab[29]
3632#define __pyx_n_u_MeshAdapt_get_VMS_error __pyx_string_tab[30]
3633#define __pyx_n_u_MeshAdapt_get_local_error __pyx_string_tab[31]
3634#define __pyx_n_u_MeshAdapt_isReconstructed __pyx_string_tab[32]
3635#define __pyx_n_u_MeshAdapt_loadMeshForAnalytic __pyx_string_tab[33]
3636#define __pyx_n_u_MeshAdapt_loadModelAndMesh __pyx_string_tab[34]
3637#define __pyx_n_u_MeshAdapt_nAdapt __pyx_string_tab[35]
3638#define __pyx_n_u_MeshAdapt_numAdaptSteps __pyx_string_tab[36]
3639#define __pyx_n_u_MeshAdapt_numIter __pyx_string_tab[37]
3640#define __pyx_n_u_MeshAdapt_reconstructFromProteus __pyx_string_tab[38]
3641#define __pyx_n_u_MeshAdapt_reconstructFromProteus_2 __pyx_string_tab[39]
3642#define __pyx_n_u_MeshAdapt_setAdaptProperties __pyx_string_tab[40]
3643#define __pyx_n_u_MeshAdapt_set_nAdapt __pyx_string_tab[41]
3644#define __pyx_n_u_MeshAdapt_size_field_config __pyx_string_tab[42]
3645#define __pyx_n_u_MeshAdapt_transferElementFieldTo __pyx_string_tab[43]
3646#define __pyx_n_u_MeshAdapt_transferFieldToPUMI __pyx_string_tab[44]
3647#define __pyx_n_u_MeshAdapt_transferFieldToProteus __pyx_string_tab[45]
3648#define __pyx_n_u_MeshAdapt_transferModelInfo __pyx_string_tab[46]
3649#define __pyx_n_u_MeshAdapt_transferPropertiesToPU __pyx_string_tab[47]
3650#define __pyx_n_u_MeshAdapt_updateMaterialArrays __pyx_string_tab[48]
3651#define __pyx_n_u_MeshAdapt_updateMaterialArrays2 __pyx_string_tab[49]
3652#define __pyx_n_u_MeshAdapt_updateSphereCoordinate __pyx_string_tab[50]
3653#define __pyx_n_u_MeshAdapt_willAdapt __pyx_string_tab[51]
3654#define __pyx_n_u_MeshAdapt_willInterfaceAdapt __pyx_string_tab[52]
3655#define __pyx_n_u_MeshAdapt_writeMesh __pyx_string_tab[53]
3656#define __pyx_n_u_MeshAdaptPUMI_MeshAdapt __pyx_string_tab[54]
3657#define __pyx_n_u_PUMIAdapter __pyx_string_tab[55]
3658#define __pyx_n_u_Profiling __pyx_string_tab[56]
3659#define __pyx_n_u_T_simulation __pyx_string_tab[57]
3660#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[58]
3661#define __pyx_n_u_annotate __pyx_string_tab[59]
3662#define __pyx_n_u_doc __pyx_string_tab[60]
3663#define __pyx_n_u_func __pyx_string_tab[61]
3664#define __pyx_n_u_getstate __pyx_string_tab[62]
3665#define __pyx_n_u_init __pyx_string_tab[63]
3666#define __pyx_n_u_main __pyx_string_tab[64]
3667#define __pyx_n_u_metaclass __pyx_string_tab[65]
3668#define __pyx_n_u_module __pyx_string_tab[66]
3669#define __pyx_n_u_name_2 __pyx_string_tab[67]
3670#define __pyx_n_u_prepare __pyx_string_tab[68]
3671#define __pyx_n_u_pyx_state __pyx_string_tab[69]
3672#define __pyx_n_u_qualname __pyx_string_tab[70]
3673#define __pyx_n_u_reduce __pyx_string_tab[71]
3674#define __pyx_n_u_reduce_cython __pyx_string_tab[72]
3675#define __pyx_n_u_reduce_ex __pyx_string_tab[73]
3676#define __pyx_n_u_set_name __pyx_string_tab[74]
3677#define __pyx_n_u_setstate __pyx_string_tab[75]
3678#define __pyx_n_u_setstate_cython __pyx_string_tab[76]
3679#define __pyx_n_u_test __pyx_string_tab[77]
3680#define __pyx_n_u_is_coroutine __pyx_string_tab[78]
3681#define __pyx_n_u_adapt __pyx_string_tab[79]
3682#define __pyx_n_u_adaptMesh __pyx_string_tab[80]
3683#define __pyx_n_u_adaptPUMIMesh __pyx_string_tab[81]
3684#define __pyx_n_u_adapt_type_config __pyx_string_tab[82]
3685#define __pyx_n_u_adapter __pyx_string_tab[83]
3686#define __pyx_n_u_ascontiguousarray __pyx_string_tab[84]
3687#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[85]
3688#define __pyx_n_u_bFaces __pyx_string_tab[86]
3689#define __pyx_n_u_bdryId __pyx_string_tab[87]
3690#define __pyx_n_u_boxDim __pyx_string_tab[88]
3691#define __pyx_n_u_cleanMesh __pyx_string_tab[89]
3692#define __pyx_n_u_cline_in_traceback __pyx_string_tab[90]
3693#define __pyx_n_u_cmesh __pyx_string_tab[91]
3694#define __pyx_n_u_constructFromParallelPUMIMesh __pyx_string_tab[92]
3695#define __pyx_n_u_constructFromSerialPUMIMesh __pyx_string_tab[93]
3696#define __pyx_n_u_deltaT __pyx_string_tab[94]
3697#define __pyx_n_u_deltaT_next __pyx_string_tab[95]
3698#define __pyx_n_u_dim __pyx_string_tab[96]
3699#define __pyx_n_u_dumpMesh __pyx_string_tab[97]
3700#define __pyx_n_u_edges __pyx_string_tab[98]
3701#define __pyx_n_u_entry __pyx_string_tab[99]
3702#define __pyx_n_u_errTotal __pyx_string_tab[100]
3703#define __pyx_n_u_err_total __pyx_string_tab[101]
3704#define __pyx_n_u_faces __pyx_string_tab[102]
3705#define __pyx_n_u_field_val __pyx_string_tab[103]
3706#define __pyx_n_u_g __pyx_string_tab[104]
3707#define __pyx_n_u_geomName __pyx_string_tab[105]
3708#define __pyx_n_u_geomTag __pyx_string_tab[106]
3709#define __pyx_n_u_getERMSizeField __pyx_string_tab[107]
3710#define __pyx_n_u_getMPvalue __pyx_string_tab[108]
3711#define __pyx_n_u_getMinimumQuality __pyx_string_tab[109]
3712#define __pyx_n_u_get_VMS_error __pyx_string_tab[110]
3713#define __pyx_n_u_get_local_error __pyx_string_tab[111]
3714#define __pyx_n_u_global_cmesh __pyx_string_tab[112]
3715#define __pyx_n_u_gradingFactor __pyx_string_tab[113]
3716#define __pyx_n_u_hasModel __pyx_string_tab[114]
3717#define __pyx_n_u_hmax __pyx_string_tab[115]
3718#define __pyx_n_u_hmin __pyx_string_tab[116]
3719#define __pyx_n_u_hphi __pyx_string_tab[117]
3720#define __pyx_n_u_inArray __pyx_string_tab[118]
3721#define __pyx_n_u_inputString __pyx_string_tab[119]
3722#define __pyx_n_u_interfaceBandSize __pyx_string_tab[120]
3723#define __pyx_n_u_isModelVert __pyx_string_tab[121]
3724#define __pyx_n_u_isReconstructed __pyx_string_tab[122]
3725#define __pyx_n_u_items __pyx_string_tab[123]
3726#define __pyx_n_u_loadMeshForAnalytic __pyx_string_tab[124]
3727#define __pyx_n_u_loadModelAndMesh __pyx_string_tab[125]
3728#define __pyx_n_u_logEvent __pyx_string_tab[126]
3729#define __pyx_n_u_logging __pyx_string_tab[127]
3730#define __pyx_n_u_maType __pyx_string_tab[128]
3731#define __pyx_n_u_manager __pyx_string_tab[129]
3732#define __pyx_n_u_maxAspectRatio __pyx_string_tab[130]
3733#define __pyx_n_u_meshBoundary2Model __pyx_string_tab[131]
3734#define __pyx_n_u_meshEdge2Model __pyx_string_tab[132]
3735#define __pyx_n_u_meshName __pyx_string_tab[133]
3736#define __pyx_n_u_meshVertex2Model __pyx_string_tab[134]
3737#define __pyx_n_u_modelDict __pyx_string_tab[135]
3738#define __pyx_n_u_nAdapt __pyx_string_tab[136]
3739#define __pyx_n_u_nMaxSegments __pyx_string_tab[137]
3740#define __pyx_n_u_name __pyx_string_tab[138]
3741#define __pyx_n_u_np __pyx_string_tab[139]
3742#define __pyx_n_u_nu __pyx_string_tab[140]
3743#define __pyx_n_u_numAdaptSteps __pyx_string_tab[141]
3744#define __pyx_n_u_numIter __pyx_string_tab[142]
3745#define __pyx_n_u_numIterations __pyx_string_tab[143]
3746#define __pyx_n_u_numModelEntities __pyx_string_tab[144]
3747#define __pyx_n_u_numberAdapt __pyx_string_tab[145]
3748#define __pyx_n_u_numpy __pyx_string_tab[146]
3749#define __pyx_n_u_outArray __pyx_string_tab[147]
3750#define __pyx_n_u_pop __pyx_string_tab[148]
3751#define __pyx_n_u_reconstructFromProteus __pyx_string_tab[149]
3752#define __pyx_n_u_reconstructFromProteus2 __pyx_string_tab[150]
3753#define __pyx_n_u_reconstructedFlag __pyx_string_tab[151]
3754#define __pyx_n_u_rho __pyx_string_tab[152]
3755#define __pyx_n_u_self __pyx_string_tab[153]
3756#define __pyx_n_u_setAdaptProperties __pyx_string_tab[154]
3757#define __pyx_n_u_set_nAdapt __pyx_string_tab[155]
3758#define __pyx_n_u_setdefault __pyx_string_tab[156]
3759#define __pyx_n_u_sizeInputs __pyx_string_tab[157]
3760#define __pyx_n_u_size_field_config __pyx_string_tab[158]
3761#define __pyx_n_u_sphereCenter __pyx_string_tab[159]
3762#define __pyx_n_u_sphereRadius __pyx_string_tab[160]
3763#define __pyx_n_u_subdomain_cmesh __pyx_string_tab[161]
3764#define __pyx_n_u_targetError __pyx_string_tab[162]
3765#define __pyx_n_u_transferElementFieldToProteus __pyx_string_tab[163]
3766#define __pyx_n_u_transferFieldToPUMI __pyx_string_tab[164]
3767#define __pyx_n_u_transferFieldToProteus __pyx_string_tab[165]
3768#define __pyx_n_u_transferModelInfo __pyx_string_tab[166]
3769#define __pyx_n_u_transferPropertiesToPUMI __pyx_string_tab[167]
3770#define __pyx_n_u_updateMaterialArrays __pyx_string_tab[168]
3771#define __pyx_n_u_updateMaterialArrays2 __pyx_string_tab[169]
3772#define __pyx_n_u_updateSphereCoordinates __pyx_string_tab[170]
3773#define __pyx_n_u_val_0 __pyx_string_tab[171]
3774#define __pyx_n_u_val_1 __pyx_string_tab[172]
3775#define __pyx_n_u_values __pyx_string_tab[173]
3776#define __pyx_n_u_willAdapt __pyx_string_tab[174]
3777#define __pyx_n_u_willInterfaceAdapt __pyx_string_tab[175]
3778#define __pyx_n_u_writeMesh __pyx_string_tab[176]
3779#define __pyx_kp_b_iso88591_Q __pyx_string_tab[177]
3780#define __pyx_kp_b_iso88591_A_b_1_R_B_t8_4AZs_QSSYYbbcciipp __pyx_string_tab[178]
3781#define __pyx_kp_b_iso88591_A_t81 __pyx_string_tab[179]
3782#define __pyx_kp_b_iso88591_A_t89AU __pyx_string_tab[180]
3783#define __pyx_kp_b_iso88591_A_t8_Q __pyx_string_tab[181]
3784#define __pyx_kp_b_iso88591_A_t8_Qa __pyx_string_tab[182]
3785#define __pyx_kp_b_iso88591_A_t8_aq __pyx_string_tab[183]
3786#define __pyx_kp_b_iso88591_A_t8_az_q __pyx_string_tab[184]
3787#define __pyx_kp_b_iso88591_A_t8_1A __pyx_string_tab[185]
3788#define __pyx_kp_b_iso88591_A_t8_AZq __pyx_string_tab[186]
3789#define __pyx_kp_b_iso88591_A_t8_Q_2 __pyx_string_tab[187]
3790#define __pyx_kp_b_iso88591_A_t8_a __pyx_string_tab[188]
3791#define __pyx_kp_b_iso88591_A_t8_1_q __pyx_string_tab[189]
3792#define __pyx_kp_b_iso88591_A_t8_7q_Q __pyx_string_tab[190]
3793#define __pyx_kp_b_iso88591_A_t8_9_woUV __pyx_string_tab[191]
3794#define __pyx_kp_b_iso88591_A_HN_1_q __pyx_string_tab[192]
3795#define __pyx_kp_b_iso88591_A_H_AQ_q __pyx_string_tab[193]
3796#define __pyx_kp_b_iso88591_A_Qa_r_1A_r_1A_t8_q_A_QRRUUV __pyx_string_tab[194]
3797#define __pyx_kp_b_iso88591_A_aq_t8_q_awar_WFRSSWW_ddeef __pyx_string_tab[195]
3798#define __pyx_kp_b_iso88591_A_2_q_t8_2_6_2T_QWWXX_ddjjkkl __pyx_string_tab[196]
3799#define __pyx_kp_b_iso88591_A_2_q_t8_9_DPXX___cckkqqrrs __pyx_string_tab[197]
3800#define __pyx_kp_b_iso88591_A_r_1A_t8_31A __pyx_string_tab[198]
3801#define __pyx_kp_b_iso88591_A_IWA_j_t8_a_1_1_1_1_1_1_1_1_1 __pyx_string_tab[199]
3802#define __pyx_kp_b_iso88591_A_b_1_t8_31E_q_1DPXX __pyx_string_tab[200]
3803#define __pyx_kp_b_iso88591_A_2_q_AQ_uF_1_AQ_2_q_Qa_R_1_t8_Q __pyx_string_tab[201]
3804#define __pyx_kp_b_iso88591_Ya_9A_81_7_7_1_1_1_Q_1_Q __pyx_string_tab[202]
3805#define __pyx_kp_b_iso88591_q_t8 __pyx_string_tab[203]
3806#define __pyx_kp_b_iso88591_YZ_4s_4x_4AU_4x_4AU_XQ __pyx_string_tab[204]
3807#define __pyx_kp_b_iso88591_bbc_t8_2_5_l_PQ __pyx_string_tab[205]
3808#define __pyx_float_1_5 __pyx_number_tab[0]
3809#define __pyx_float_1eneg_2 __pyx_number_tab[1]
3810#define __pyx_float_1eneg_8 __pyx_number_tab[2]
3811#define __pyx_float_100_0 __pyx_number_tab[3]
3812#define __pyx_int_0 __pyx_number_tab[4]
3813#define __pyx_int_2 __pyx_number_tab[5]
3814#define __pyx_int_5 __pyx_number_tab[6]
3815#define __pyx_int_10 __pyx_number_tab[7]
3816/* #### Code section: module_state_clear ### */
3817#if CYTHON_USE_MODULE_STATE
3818static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
3819 __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
3820 if (!clear_module_state) return 0;
3821 Py_CLEAR(clear_module_state->__pyx_d);
3822 Py_CLEAR(clear_module_state->__pyx_b);
3823 Py_CLEAR(clear_module_state->__pyx_cython_runtime);
3824 Py_CLEAR(clear_module_state->__pyx_empty_tuple);
3825 Py_CLEAR(clear_module_state->__pyx_empty_bytes);
3826 Py_CLEAR(clear_module_state->__pyx_empty_unicode);
3827 #if CYTHON_PEP489_MULTI_PHASE_INIT
3828 __Pyx_State_RemoveModule(NULL);
3829 #endif
3830 Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
3831 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
3832 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
3833 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
3834 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
3835 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
3836 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
3837 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
3838 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
3839 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
3840 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
3841 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
3842 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
3843 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
3844 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
3845 Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
3846 Py_CLEAR(clear_module_state->__pyx_ptype_7proteus_10cmeshTools_CMesh);
3847 Py_CLEAR(clear_module_state->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt);
3848 Py_CLEAR(clear_module_state->__pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt);
3849 Py_CLEAR(clear_module_state->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults);
3850 Py_CLEAR(clear_module_state->__pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults);
3851 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method);
3852 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method);
3853 Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method);
3854 for (int i=0; i<3; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
3855 for (int i=0; i<37; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
3856 for (int i=0; i<206; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
3857 for (int i=0; i<8; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); }
3858/* #### Code section: module_state_clear_contents ### */
3859/* CommonTypesMetaclass.module_state_clear */
3860Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);
3861
3862/* CythonFunctionPerModule.module_state_clear */
3863Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
3864
3865/* #### Code section: module_state_clear_end ### */
3866return 0;
3867}
3868#endif
3869/* #### Code section: module_state_traverse ### */
3870#if CYTHON_USE_MODULE_STATE
3871static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3872 __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
3873 if (!traverse_module_state) return 0;
3874 Py_VISIT(traverse_module_state->__pyx_d);
3875 Py_VISIT(traverse_module_state->__pyx_b);
3876 Py_VISIT(traverse_module_state->__pyx_cython_runtime);
3877 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
3878 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
3879 __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
3880 Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
3881 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
3882 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
3883 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
3884 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
3885 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
3886 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
3887 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
3888 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
3889 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
3890 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
3891 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
3892 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
3893 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
3894 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
3895 Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
3896 Py_VISIT(traverse_module_state->__pyx_ptype_7proteus_10cmeshTools_CMesh);
3897 Py_VISIT(traverse_module_state->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt);
3898 Py_VISIT(traverse_module_state->__pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt);
3899 Py_VISIT(traverse_module_state->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults);
3900 Py_VISIT(traverse_module_state->__pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults);
3901 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method);
3902 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method);
3903 Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method);
3904 for (int i=0; i<3; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
3905 for (int i=0; i<37; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
3906 for (int i=0; i<206; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
3907 for (int i=0; i<8; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); }
3908/* #### Code section: module_state_traverse_contents ### */
3909/* CommonTypesMetaclass.module_state_traverse */
3910Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);
3911
3912/* CythonFunctionPerModule.module_state_traverse */
3913Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
3914
3915/* #### Code section: module_state_traverse_end ### */
3916return 0;
3917}
3918#endif
3919/* #### Code section: module_code ### */
3920
3921/* "string.to_py":31
3922 * cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
3923 *
3924 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
3925 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
3926 * if s.size() > <size_t> PY_SSIZE_T_MAX:
3927*/
3928
3929static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
3930 PyObject *__pyx_r = NULL;
3931 __Pyx_RefNannyDeclarations
3932 int __pyx_t_1;
3933 PyObject *__pyx_t_2 = NULL;
3934 int __pyx_lineno = 0;
3935 const char *__pyx_filename = NULL;
3936 int __pyx_clineno = 0;
3937 __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", 0);
3938
3939 /* "string.to_py":33
3940 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
3941 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
3942 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
3943 * raise MemoryError()
3944 * return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
3945*/
3946 __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
3947
3948 if (unlikely(__pyx_t_1)) {
3949
3950
3951 /* "string.to_py":34
3952 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
3953 * if s.size() > <size_t> PY_SSIZE_T_MAX:
3954 * raise MemoryError() # <<<<<<<<<<<<<<
3955 * return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
3956 * cdef extern from *:
3957*/
3958 PyErr_NoMemory(); __PYX_ERR(1, 34, __pyx_L1_error)
3959
3960 /* "string.to_py":33
3961 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
3962 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
3963 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
3964 * raise MemoryError()
3965 * return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
3966*/
3967 }
3968
3969 /* "string.to_py":35
3970 * if s.size() > <size_t> PY_SSIZE_T_MAX:
3971 * raise MemoryError()
3972 * return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size()) # <<<<<<<<<<<<<<
3973 * cdef extern from *:
3974 * cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
3975*/
3976 __pyx_t_2 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 35, __pyx_L1_error)
3977 __Pyx_GOTREF(__pyx_t_2);
3978 {
3979 PyObject *__pyx_temp;
3980 {
3981 __pyx_temp = __pyx_r;
3982 __pyx_r = __pyx_t_2;
3983 }
3984 __Pyx_XDECREF(__pyx_temp);
3985 }
3986 __pyx_t_2 = 0;
3987 goto __pyx_L0;
3988
3989 /* "string.to_py":31
3990 * cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
3991 *
3992 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
3993 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
3994 * if s.size() > <size_t> PY_SSIZE_T_MAX:
3995*/
3996
3997 /* function exit code */
3998 __pyx_L1_error:;
3999 __Pyx_XDECREF(__pyx_t_2);
4000 __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
4001 __pyx_r = 0;
4002 __pyx_L0:;
4003 __Pyx_XGIVEREF(__pyx_r);
4004 __Pyx_RefNannyFinishContext();
4005 return __pyx_r;
4006}
4007
4008/* "string.to_py":39
4009 * cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
4010 *
4011 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4012 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
4013 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4014*/
4015
4016static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
4017 PyObject *__pyx_r = NULL;
4018 __Pyx_RefNannyDeclarations
4019 int __pyx_t_1;
4020 PyObject *__pyx_t_2 = NULL;
4021 int __pyx_lineno = 0;
4022 const char *__pyx_filename = NULL;
4023 int __pyx_clineno = 0;
4024 __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", 0);
4025
4026 /* "string.to_py":41
4027 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
4028 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
4029 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4030 * raise MemoryError()
4031 * return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4032*/
4033 __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
4034
4035 if (unlikely(__pyx_t_1)) {
4036
4037
4038 /* "string.to_py":42
4039 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
4040 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4041 * raise MemoryError() # <<<<<<<<<<<<<<
4042 * return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4043 * cdef extern from *:
4044*/
4045 PyErr_NoMemory(); __PYX_ERR(1, 42, __pyx_L1_error)
4046
4047 /* "string.to_py":41
4048 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
4049 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
4050 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4051 * raise MemoryError()
4052 * return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4053*/
4054 }
4055
4056 /* "string.to_py":43
4057 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4058 * raise MemoryError()
4059 * return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size()) # <<<<<<<<<<<<<<
4060 * cdef extern from *:
4061 * cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
4062*/
4063 __pyx_t_2 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L1_error)
4064 __Pyx_GOTREF(__pyx_t_2);
4065 {
4066 PyObject *__pyx_temp;
4067 {
4068 __pyx_temp = __pyx_r;
4069 __pyx_r = __pyx_t_2;
4070 }
4071 __Pyx_XDECREF(__pyx_temp);
4072 }
4073 __pyx_t_2 = 0;
4074 goto __pyx_L0;
4075
4076 /* "string.to_py":39
4077 * cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
4078 *
4079 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4080 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
4081 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4082*/
4083
4084 /* function exit code */
4085 __pyx_L1_error:;
4086 __Pyx_XDECREF(__pyx_t_2);
4087 __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
4088 __pyx_r = 0;
4089 __pyx_L0:;
4090 __Pyx_XGIVEREF(__pyx_r);
4091 __Pyx_RefNannyFinishContext();
4092 return __pyx_r;
4093}
4094
4095/* "string.to_py":47
4096 * cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
4097 *
4098 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4099 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
4100 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4101*/
4102
4103static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
4104 PyObject *__pyx_r = NULL;
4105 __Pyx_RefNannyDeclarations
4106 int __pyx_t_1;
4107 PyObject *__pyx_t_2 = NULL;
4108 int __pyx_lineno = 0;
4109 const char *__pyx_filename = NULL;
4110 int __pyx_clineno = 0;
4111 __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", 0);
4112
4113 /* "string.to_py":49
4114 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
4115 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
4116 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4117 * raise MemoryError()
4118 * return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4119*/
4120 __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
4121
4122 if (unlikely(__pyx_t_1)) {
4123
4124
4125 /* "string.to_py":50
4126 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
4127 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4128 * raise MemoryError() # <<<<<<<<<<<<<<
4129 * return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4130 * cdef extern from *:
4131*/
4132 PyErr_NoMemory(); __PYX_ERR(1, 50, __pyx_L1_error)
4133
4134 /* "string.to_py":49
4135 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
4136 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
4137 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4138 * raise MemoryError()
4139 * return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4140*/
4141 }
4142
4143 /* "string.to_py":51
4144 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4145 * raise MemoryError()
4146 * return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size()) # <<<<<<<<<<<<<<
4147 * cdef extern from *:
4148 * cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
4149*/
4150 __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L1_error)
4151 __Pyx_GOTREF(__pyx_t_2);
4152 {
4153 PyObject *__pyx_temp;
4154 {
4155 __pyx_temp = __pyx_r;
4156 __pyx_r = __pyx_t_2;
4157 }
4158 __Pyx_XDECREF(__pyx_temp);
4159 }
4160 __pyx_t_2 = 0;
4161 goto __pyx_L0;
4162
4163 /* "string.to_py":47
4164 * cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
4165 *
4166 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4167 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
4168 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4169*/
4170
4171 /* function exit code */
4172 __pyx_L1_error:;
4173 __Pyx_XDECREF(__pyx_t_2);
4174 __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
4175 __pyx_r = 0;
4176 __pyx_L0:;
4177 __Pyx_XGIVEREF(__pyx_r);
4178 __Pyx_RefNannyFinishContext();
4179 return __pyx_r;
4180}
4181
4182/* "string.to_py":55
4183 * cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
4184 *
4185 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4186 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
4187 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4188*/
4189
4190static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
4191 PyObject *__pyx_r = NULL;
4192 __Pyx_RefNannyDeclarations
4193 int __pyx_t_1;
4194 PyObject *__pyx_t_2 = NULL;
4195 int __pyx_lineno = 0;
4196 const char *__pyx_filename = NULL;
4197 int __pyx_clineno = 0;
4198 __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", 0);
4199
4200 /* "string.to_py":57
4201 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
4202 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
4203 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4204 * raise MemoryError()
4205 * return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4206*/
4207 __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
4208
4209 if (unlikely(__pyx_t_1)) {
4210
4211
4212 /* "string.to_py":58
4213 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
4214 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4215 * raise MemoryError() # <<<<<<<<<<<<<<
4216 * return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4217*/
4218 PyErr_NoMemory(); __PYX_ERR(1, 58, __pyx_L1_error)
4219
4220 /* "string.to_py":57
4221 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
4222 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
4223 * if s.size() > <size_t> PY_SSIZE_T_MAX: # <<<<<<<<<<<<<<
4224 * raise MemoryError()
4225 * return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
4226*/
4227 }
4228
4229 /* "string.to_py":59
4230 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4231 * raise MemoryError()
4232 * return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size()) # <<<<<<<<<<<<<<
4233*/
4234 __pyx_t_2 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error)
4235 __Pyx_GOTREF(__pyx_t_2);
4236 {
4237 PyObject *__pyx_temp;
4238 {
4239 __pyx_temp = __pyx_r;
4240 __pyx_r = __pyx_t_2;
4241 }
4242 __Pyx_XDECREF(__pyx_temp);
4243 }
4244 __pyx_t_2 = 0;
4245 goto __pyx_L0;
4246
4247 /* "string.to_py":55
4248 * cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
4249 *
4250 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4251 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
4252 * if s.size() > <size_t> PY_SSIZE_T_MAX:
4253*/
4254
4255 /* function exit code */
4256 __pyx_L1_error:;
4257 __Pyx_XDECREF(__pyx_t_2);
4258 __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
4259 __pyx_r = 0;
4260 __pyx_L0:;
4261 __Pyx_XGIVEREF(__pyx_r);
4262 __Pyx_RefNannyFinishContext();
4263 return __pyx_r;
4264}
4265
4266/* "string.from_py":12
4267 * cdef const char* __Pyx_PyObject_AsStringAndSize(object, Py_ssize_t*) except NULL
4268 *
4269 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4270 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
4271 * cdef Py_ssize_t length = 0
4272*/
4273
4274static std::string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(PyObject *__pyx_v_o) {
4275 Py_ssize_t __pyx_v_length;
4276 char const *__pyx_v_data;
4277 std::string __pyx_r;
4278 char const *__pyx_t_1;
4279 std::string __pyx_t_2;
4280 int __pyx_lineno = 0;
4281 const char *__pyx_filename = NULL;
4282 int __pyx_clineno = 0;
4283
4284 /* "string.from_py":14
4285 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string")
4286 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
4287 * cdef Py_ssize_t length = 0 # <<<<<<<<<<<<<<
4288 * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
4289 * return string(data, <size_t> length)
4290*/
4291 __pyx_v_length = 0;
4292
4293 /* "string.from_py":15
4294 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
4295 * cdef Py_ssize_t length = 0
4296 * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length) # <<<<<<<<<<<<<<
4297 * return string(data, <size_t> length)
4298 *
4299*/
4300 __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((void *)NULL))) __PYX_ERR(1, 15, __pyx_L1_error)
4301 __pyx_v_data = __pyx_t_1;
4302
4303 /* "string.from_py":16
4304 * cdef Py_ssize_t length = 0
4305 * cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
4306 * return string(data, <size_t> length) # <<<<<<<<<<<<<<
4307 *
4308*/
4309 try {
4310 __pyx_t_2 = std::string(__pyx_v_data, ((size_t)__pyx_v_length));
4311 } catch(...) {
4312 __Pyx_CppExn2PyErr();
4313 __PYX_ERR(1, 16, __pyx_L1_error)
4314 }
4315 {
4316 __pyx_r = __pyx_t_2;
4317 }
4318 goto __pyx_L0;
4319
4320 /* "string.from_py":12
4321 * cdef const char* __Pyx_PyObject_AsStringAndSize(object, Py_ssize_t*) except NULL
4322 *
4323 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string") # <<<<<<<<<<<<<<
4324 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
4325 * cdef Py_ssize_t length = 0
4326*/
4327
4328 /* function exit code */
4329 __pyx_L1_error:;
4330 __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
4331 __Pyx_pretend_to_initialize(&__pyx_r);
4332 __pyx_L0:;
4333
4334
4335
4336 return __pyx_r;
4337}
4338
4339/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
4340 *
4341 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
4342 * @property # <<<<<<<<<<<<<<
4343 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
4344 * return PyDataType_TYPEOBJ(self)
4345*/
4346
4347static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj___get__(PyArray_Descr *__pyx_v_self) {
4348 PyTypeObject *__pyx_r;
4349
4350 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":232
4351 * @property
4352 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
4353 * return PyDataType_TYPEOBJ(self) # <<<<<<<<<<<<<<
4354 *
4355 * @property
4356*/
4357 {
4358
4359 __pyx_r = PyDataType_TYPEOBJ(__pyx_v_self);
4360 }
4361 goto __pyx_L0;
4362
4363 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":230
4364 *
4365 * ctypedef class numpy.dtype [object PyArray_Descr, check_size ignore]:
4366 * @property # <<<<<<<<<<<<<<
4367 * cdef inline PyTypeObject* typeobj(self) noexcept nogil:
4368 * return PyDataType_TYPEOBJ(self)
4369*/
4370
4371 /* function exit code */
4372 __pyx_L0:;
4373 return __pyx_r;
4374}
4375
4376/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
4377 * return PyDataType_TYPEOBJ(self)
4378 *
4379 * @property # <<<<<<<<<<<<<<
4380 * cdef inline char kind(self) noexcept nogil:
4381 * return PyDataType_KIND(self)
4382*/
4383
4384static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind___get__(PyArray_Descr *__pyx_v_self) {
4385 char __pyx_r;
4386
4387 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":236
4388 * @property
4389 * cdef inline char kind(self) noexcept nogil:
4390 * return PyDataType_KIND(self) # <<<<<<<<<<<<<<
4391 *
4392 * @property
4393*/
4394 {
4395
4396 __pyx_r = PyDataType_KIND(__pyx_v_self);
4397 }
4398 goto __pyx_L0;
4399
4400 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":234
4401 * return PyDataType_TYPEOBJ(self)
4402 *
4403 * @property # <<<<<<<<<<<<<<
4404 * cdef inline char kind(self) noexcept nogil:
4405 * return PyDataType_KIND(self)
4406*/
4407
4408 /* function exit code */
4409 __pyx_L0:;
4410 return __pyx_r;
4411}
4412
4413/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
4414 * return PyDataType_KIND(self)
4415 *
4416 * @property # <<<<<<<<<<<<<<
4417 * cdef inline char type(self) noexcept nogil:
4418 * return PyDataType_TYPE(self)
4419*/
4420
4421static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type___get__(PyArray_Descr *__pyx_v_self) {
4422 char __pyx_r;
4423
4424 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":240
4425 * @property
4426 * cdef inline char type(self) noexcept nogil:
4427 * return PyDataType_TYPE(self) # <<<<<<<<<<<<<<
4428 *
4429 * # Numpy sometimes mutates this without warning (e.g. it'll
4430*/
4431 {
4432
4433 __pyx_r = PyDataType_TYPE(__pyx_v_self);
4434 }
4435 goto __pyx_L0;
4436
4437 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":238
4438 * return PyDataType_KIND(self)
4439 *
4440 * @property # <<<<<<<<<<<<<<
4441 * cdef inline char type(self) noexcept nogil:
4442 * return PyDataType_TYPE(self)
4443*/
4444
4445 /* function exit code */
4446 __pyx_L0:;
4447 return __pyx_r;
4448}
4449
4450/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
4451 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
4452 * # directly accessing this field.
4453 * @property # <<<<<<<<<<<<<<
4454 * cdef inline char byteorder(self) noexcept nogil:
4455 * return PyDataType_BYTEORDER(self)
4456*/
4457
4458static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder___get__(PyArray_Descr *__pyx_v_self) {
4459 char __pyx_r;
4460
4461 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":249
4462 * @property
4463 * cdef inline char byteorder(self) noexcept nogil:
4464 * return PyDataType_BYTEORDER(self) # <<<<<<<<<<<<<<
4465 *
4466 * @property
4467*/
4468 {
4469
4470 __pyx_r = PyDataType_BYTEORDER(__pyx_v_self);
4471 }
4472 goto __pyx_L0;
4473
4474 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":247
4475 * # PyArray_IsNativeByteOrder(dtype.byteorder) instead of
4476 * # directly accessing this field.
4477 * @property # <<<<<<<<<<<<<<
4478 * cdef inline char byteorder(self) noexcept nogil:
4479 * return PyDataType_BYTEORDER(self)
4480*/
4481
4482 /* function exit code */
4483 __pyx_L0:;
4484 return __pyx_r;
4485}
4486
4487/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
4488 * return PyDataType_BYTEORDER(self)
4489 *
4490 * @property # <<<<<<<<<<<<<<
4491 * cdef inline int type_num(self) noexcept nogil:
4492 * return PyDataType_TYPENUM(self)
4493*/
4494
4495static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num___get__(PyArray_Descr *__pyx_v_self) {
4496 int __pyx_r;
4497
4498 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":253
4499 * @property
4500 * cdef inline int type_num(self) noexcept nogil:
4501 * return PyDataType_TYPENUM(self) # <<<<<<<<<<<<<<
4502 *
4503 * @property
4504*/
4505 {
4506
4507 __pyx_r = PyDataType_TYPENUM(__pyx_v_self);
4508 }
4509 goto __pyx_L0;
4510
4511 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":251
4512 * return PyDataType_BYTEORDER(self)
4513 *
4514 * @property # <<<<<<<<<<<<<<
4515 * cdef inline int type_num(self) noexcept nogil:
4516 * return PyDataType_TYPENUM(self)
4517*/
4518
4519 /* function exit code */
4520 __pyx_L0:;
4521 return __pyx_r;
4522}
4523
4524/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
4525 * return PyDataType_TYPENUM(self)
4526 *
4527 * @property # <<<<<<<<<<<<<<
4528 * cdef inline npy_intp itemsize(self) noexcept nogil:
4529 * return PyDataType_ELSIZE(self)
4530*/
4531
4532static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self) {
4533 npy_intp __pyx_r;
4534
4535 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":257
4536 * @property
4537 * cdef inline npy_intp itemsize(self) noexcept nogil:
4538 * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<<
4539 *
4540 * @property
4541*/
4542 {
4543
4544 __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
4545 }
4546 goto __pyx_L0;
4547
4548 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":255
4549 * return PyDataType_TYPENUM(self)
4550 *
4551 * @property # <<<<<<<<<<<<<<
4552 * cdef inline npy_intp itemsize(self) noexcept nogil:
4553 * return PyDataType_ELSIZE(self)
4554*/
4555
4556 /* function exit code */
4557 __pyx_L0:;
4558 return __pyx_r;
4559}
4560
4561/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
4562 * return PyDataType_ELSIZE(self)
4563 *
4564 * @property # <<<<<<<<<<<<<<
4565 * cdef inline npy_intp alignment(self) noexcept nogil:
4566 * return PyDataType_ALIGNMENT(self)
4567*/
4568
4569static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self) {
4570 npy_intp __pyx_r;
4571
4572 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":261
4573 * @property
4574 * cdef inline npy_intp alignment(self) noexcept nogil:
4575 * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<<
4576 *
4577 * # Use fields/names with care as they may be NULL. You must check
4578*/
4579 {
4580
4581 __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
4582 }
4583 goto __pyx_L0;
4584
4585 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":259
4586 * return PyDataType_ELSIZE(self)
4587 *
4588 * @property # <<<<<<<<<<<<<<
4589 * cdef inline npy_intp alignment(self) noexcept nogil:
4590 * return PyDataType_ALIGNMENT(self)
4591*/
4592
4593 /* function exit code */
4594 __pyx_L0:;
4595 return __pyx_r;
4596}
4597
4598/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
4599 * # Use fields/names with care as they may be NULL. You must check
4600 * # for this using PyDataType_HASFIELDS.
4601 * @property # <<<<<<<<<<<<<<
4602 * cdef inline object fields(self):
4603 * return <object>PyDataType_FIELDS(self)
4604*/
4605
4606static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self) {
4607 PyObject *__pyx_r = NULL;
4608 __Pyx_RefNannyDeclarations
4609 PyObject *__pyx_t_1;
4610 __Pyx_RefNannySetupContext("__get__", 0);
4611
4612 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":267
4613 * @property
4614 * cdef inline object fields(self):
4615 * return <object>PyDataType_FIELDS(self) # <<<<<<<<<<<<<<
4616 *
4617 * @property
4618*/
4619 __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
4620
4621 {
4622 PyObject *__pyx_temp;
4623 {
4624 __pyx_temp = __pyx_r;
4625 __Pyx_INCREF(((PyObject *)__pyx_t_1));
4626 __pyx_r = ((PyObject *)__pyx_t_1);
4627 }
4628 __Pyx_XDECREF(__pyx_temp);
4629 }
4630
4631 goto __pyx_L0;
4632
4633 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":265
4634 * # Use fields/names with care as they may be NULL. You must check
4635 * # for this using PyDataType_HASFIELDS.
4636 * @property # <<<<<<<<<<<<<<
4637 * cdef inline object fields(self):
4638 * return <object>PyDataType_FIELDS(self)
4639*/
4640
4641 /* function exit code */
4642 __pyx_L0:;
4643 __Pyx_XGIVEREF(__pyx_r);
4644 __Pyx_RefNannyFinishContext();
4645 return __pyx_r;
4646}
4647
4648/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
4649 * return <object>PyDataType_FIELDS(self)
4650 *
4651 * @property # <<<<<<<<<<<<<<
4652 * cdef inline tuple names(self):
4653 * return <tuple>PyDataType_NAMES(self)
4654*/
4655
4656static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self) {
4657 PyObject *__pyx_r = NULL;
4658 __Pyx_RefNannyDeclarations
4659 PyObject *__pyx_t_1;
4660 __Pyx_RefNannySetupContext("__get__", 0);
4661
4662 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":271
4663 * @property
4664 * cdef inline tuple names(self):
4665 * return <tuple>PyDataType_NAMES(self) # <<<<<<<<<<<<<<
4666 *
4667 * # Use PyDataType_HASSUBARRAY to test whether this field is
4668*/
4669 __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
4670
4671 {
4672 PyObject *__pyx_temp;
4673 {
4674 __pyx_temp = __pyx_r;
4675 __Pyx_INCREF(((PyObject*)__pyx_t_1));
4676 __pyx_r = ((PyObject*)__pyx_t_1);
4677 }
4678 __Pyx_XDECREF(__pyx_temp);
4679 }
4680
4681 goto __pyx_L0;
4682
4683 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":269
4684 * return <object>PyDataType_FIELDS(self)
4685 *
4686 * @property # <<<<<<<<<<<<<<
4687 * cdef inline tuple names(self):
4688 * return <tuple>PyDataType_NAMES(self)
4689*/
4690
4691 /* function exit code */
4692 __pyx_L0:;
4693 __Pyx_XGIVEREF(__pyx_r);
4694 __Pyx_RefNannyFinishContext();
4695 return __pyx_r;
4696}
4697
4698/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
4699 * # valid (the pointer can be NULL). Most users should access
4700 * # this field via the inline helper method PyDataType_SHAPE.
4701 * @property # <<<<<<<<<<<<<<
4702 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4703 * return PyDataType_SUBARRAY(self)
4704*/
4705
4706static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self) {
4707 PyArray_ArrayDescr *__pyx_r;
4708
4709 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":278
4710 * @property
4711 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4712 * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<<
4713 *
4714 * @property
4715*/
4716 {
4717
4718 __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
4719 }
4720 goto __pyx_L0;
4721
4722 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":276
4723 * # valid (the pointer can be NULL). Most users should access
4724 * # this field via the inline helper method PyDataType_SHAPE.
4725 * @property # <<<<<<<<<<<<<<
4726 * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
4727 * return PyDataType_SUBARRAY(self)
4728*/
4729
4730 /* function exit code */
4731 __pyx_L0:;
4732 return __pyx_r;
4733}
4734
4735/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
4736 * return PyDataType_SUBARRAY(self)
4737 *
4738 * @property # <<<<<<<<<<<<<<
4739 * cdef inline npy_uint64 flags(self) noexcept nogil:
4740 * """The data types flags."""
4741*/
4742
4743static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self) {
4744 npy_uint64 __pyx_r;
4745
4746 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":283
4747 * cdef inline npy_uint64 flags(self) noexcept nogil:
4748 * """The data types flags."""
4749 * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<<
4750 *
4751 *
4752*/
4753 {
4754
4755 __pyx_r = PyDataType_FLAGS(__pyx_v_self);
4756 }
4757 goto __pyx_L0;
4758
4759 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":280
4760 * return PyDataType_SUBARRAY(self)
4761 *
4762 * @property # <<<<<<<<<<<<<<
4763 * cdef inline npy_uint64 flags(self) noexcept nogil:
4764 * """The data types flags."""
4765*/
4766
4767 /* function exit code */
4768 __pyx_L0:;
4769 return __pyx_r;
4770}
4771
4772/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
4773 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
4774 *
4775 * @property # <<<<<<<<<<<<<<
4776 * cdef inline int numiter(self) noexcept nogil:
4777 * """The number of arrays that need to be broadcast to the same shape."""
4778*/
4779
4780static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self) {
4781 int __pyx_r;
4782
4783 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":295
4784 * cdef inline int numiter(self) noexcept nogil:
4785 * """The number of arrays that need to be broadcast to the same shape."""
4786 * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<<
4787 *
4788 * @property
4789*/
4790 {
4791
4792 __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
4793 }
4794 goto __pyx_L0;
4795
4796 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":292
4797 * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
4798 *
4799 * @property # <<<<<<<<<<<<<<
4800 * cdef inline int numiter(self) noexcept nogil:
4801 * """The number of arrays that need to be broadcast to the same shape."""
4802*/
4803
4804 /* function exit code */
4805 __pyx_L0:;
4806 return __pyx_r;
4807}
4808
4809/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
4810 * return PyArray_MultiIter_NUMITER(self)
4811 *
4812 * @property # <<<<<<<<<<<<<<
4813 * cdef inline npy_intp size(self) noexcept nogil:
4814 * """The total broadcasted size."""
4815*/
4816
4817static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self) {
4818 npy_intp __pyx_r;
4819
4820 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":300
4821 * cdef inline npy_intp size(self) noexcept nogil:
4822 * """The total broadcasted size."""
4823 * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<<
4824 *
4825 * @property
4826*/
4827 {
4828
4829 __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
4830 }
4831 goto __pyx_L0;
4832
4833 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":297
4834 * return PyArray_MultiIter_NUMITER(self)
4835 *
4836 * @property # <<<<<<<<<<<<<<
4837 * cdef inline npy_intp size(self) noexcept nogil:
4838 * """The total broadcasted size."""
4839*/
4840
4841 /* function exit code */
4842 __pyx_L0:;
4843 return __pyx_r;
4844}
4845
4846/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
4847 * return PyArray_MultiIter_SIZE(self)
4848 *
4849 * @property # <<<<<<<<<<<<<<
4850 * cdef inline npy_intp index(self) noexcept nogil:
4851 * """The current (1-d) index into the broadcasted result."""
4852*/
4853
4854static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self) {
4855 npy_intp __pyx_r;
4856
4857 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":305
4858 * cdef inline npy_intp index(self) noexcept nogil:
4859 * """The current (1-d) index into the broadcasted result."""
4860 * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<<
4861 *
4862 * @property
4863*/
4864 {
4865
4866 __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
4867 }
4868 goto __pyx_L0;
4869
4870 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":302
4871 * return PyArray_MultiIter_SIZE(self)
4872 *
4873 * @property # <<<<<<<<<<<<<<
4874 * cdef inline npy_intp index(self) noexcept nogil:
4875 * """The current (1-d) index into the broadcasted result."""
4876*/
4877
4878 /* function exit code */
4879 __pyx_L0:;
4880 return __pyx_r;
4881}
4882
4883/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
4884 * return PyArray_MultiIter_INDEX(self)
4885 *
4886 * @property # <<<<<<<<<<<<<<
4887 * cdef inline int nd(self) noexcept nogil:
4888 * """The number of dimensions in the broadcasted result."""
4889*/
4890
4891static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self) {
4892 int __pyx_r;
4893
4894 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":310
4895 * cdef inline int nd(self) noexcept nogil:
4896 * """The number of dimensions in the broadcasted result."""
4897 * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<<
4898 *
4899 * @property
4900*/
4901 {
4902
4903 __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
4904 }
4905 goto __pyx_L0;
4906
4907 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":307
4908 * return PyArray_MultiIter_INDEX(self)
4909 *
4910 * @property # <<<<<<<<<<<<<<
4911 * cdef inline int nd(self) noexcept nogil:
4912 * """The number of dimensions in the broadcasted result."""
4913*/
4914
4915 /* function exit code */
4916 __pyx_L0:;
4917 return __pyx_r;
4918}
4919
4920/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
4921 * return PyArray_MultiIter_NDIM(self)
4922 *
4923 * @property # <<<<<<<<<<<<<<
4924 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4925 * """The shape of the broadcasted result."""
4926*/
4927
4928static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self) {
4929 npy_intp *__pyx_r;
4930
4931 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":315
4932 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4933 * """The shape of the broadcasted result."""
4934 * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<<
4935 *
4936 * @property
4937*/
4938 {
4939
4940 __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
4941 }
4942 goto __pyx_L0;
4943
4944 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":312
4945 * return PyArray_MultiIter_NDIM(self)
4946 *
4947 * @property # <<<<<<<<<<<<<<
4948 * cdef inline npy_intp* dimensions(self) noexcept nogil:
4949 * """The shape of the broadcasted result."""
4950*/
4951
4952 /* function exit code */
4953 __pyx_L0:;
4954 return __pyx_r;
4955}
4956
4957/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
4958 * return PyArray_MultiIter_DIMS(self)
4959 *
4960 * @property # <<<<<<<<<<<<<<
4961 * cdef inline void** iters(self) noexcept nogil:
4962 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4963*/
4964
4965static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self) {
4966 void **__pyx_r;
4967
4968 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":321
4969 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4970 * On return, the iterators are adjusted for broadcasting."""
4971 * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<<
4972 *
4973 *
4974*/
4975 {
4976
4977 __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
4978 }
4979 goto __pyx_L0;
4980
4981 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":317
4982 * return PyArray_MultiIter_DIMS(self)
4983 *
4984 * @property # <<<<<<<<<<<<<<
4985 * cdef inline void** iters(self) noexcept nogil:
4986 * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
4987*/
4988
4989 /* function exit code */
4990 __pyx_L0:;
4991 return __pyx_r;
4992}
4993
4994/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
4995 * # Instead, we use properties that map to the corresponding C-API functions.
4996 *
4997 * @property # <<<<<<<<<<<<<<
4998 * cdef inline PyObject* base(self) noexcept nogil:
4999 * """Returns a borrowed reference to the object owning the data/memory.
5000*/
5001
5002static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self) {
5003 PyObject *__pyx_r;
5004
5005 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":339
5006 * """Returns a borrowed reference to the object owning the data/memory.
5007 * """
5008 * return PyArray_BASE(self) # <<<<<<<<<<<<<<
5009 *
5010 * @property
5011*/
5012 {
5013
5014 __pyx_r = PyArray_BASE(__pyx_v_self);
5015 }
5016 goto __pyx_L0;
5017
5018 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":335
5019 * # Instead, we use properties that map to the corresponding C-API functions.
5020 *
5021 * @property # <<<<<<<<<<<<<<
5022 * cdef inline PyObject* base(self) noexcept nogil:
5023 * """Returns a borrowed reference to the object owning the data/memory.
5024*/
5025
5026 /* function exit code */
5027 __pyx_L0:;
5028 return __pyx_r;
5029}
5030
5031/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
5032 * return PyArray_BASE(self)
5033 *
5034 * @property # <<<<<<<<<<<<<<
5035 * cdef inline dtype descr(self):
5036 * """Returns an owned reference to the dtype of the array.
5037*/
5038
5039static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self) {
5040 PyArray_Descr *__pyx_r = NULL;
5041 __Pyx_RefNannyDeclarations
5042 PyArray_Descr *__pyx_t_1;
5043 __Pyx_RefNannySetupContext("__get__", 0);
5044
5045 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":345
5046 * """Returns an owned reference to the dtype of the array.
5047 * """
5048 * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
5049 *
5050 * @property
5051*/
5052 __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
5053
5054 {
5055 PyArray_Descr *__pyx_temp;
5056 {
5057 __pyx_temp = __pyx_r;
5058 __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
5059 __pyx_r = ((PyArray_Descr *)__pyx_t_1);
5060 }
5061 __Pyx_XDECREF((PyObject *)__pyx_temp);
5062 }
5063
5064 goto __pyx_L0;
5065
5066 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":341
5067 * return PyArray_BASE(self)
5068 *
5069 * @property # <<<<<<<<<<<<<<
5070 * cdef inline dtype descr(self):
5071 * """Returns an owned reference to the dtype of the array.
5072*/
5073
5074 /* function exit code */
5075 __pyx_L0:;
5076 __Pyx_XGIVEREF((PyObject *)__pyx_r);
5077 __Pyx_RefNannyFinishContext();
5078 return __pyx_r;
5079}
5080
5081/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
5082 * return <dtype>PyArray_DESCR(self)
5083 *
5084 * @property # <<<<<<<<<<<<<<
5085 * cdef inline int ndim(self) noexcept nogil:
5086 * """Returns the number of dimensions in the array.
5087*/
5088
5089static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self) {
5090 int __pyx_r;
5091
5092 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":351
5093 * """Returns the number of dimensions in the array.
5094 * """
5095 * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
5096 *
5097 * @property
5098*/
5099 {
5100
5101 __pyx_r = PyArray_NDIM(__pyx_v_self);
5102 }
5103 goto __pyx_L0;
5104
5105 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":347
5106 * return <dtype>PyArray_DESCR(self)
5107 *
5108 * @property # <<<<<<<<<<<<<<
5109 * cdef inline int ndim(self) noexcept nogil:
5110 * """Returns the number of dimensions in the array.
5111*/
5112
5113 /* function exit code */
5114 __pyx_L0:;
5115 return __pyx_r;
5116}
5117
5118/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
5119 * return PyArray_NDIM(self)
5120 *
5121 * @property # <<<<<<<<<<<<<<
5122 * cdef inline npy_intp *shape(self) noexcept nogil:
5123 * """Returns a pointer to the dimensions/shape of the array.
5124*/
5125
5126static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self) {
5127 npy_intp *__pyx_r;
5128
5129 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":359
5130 * Can return NULL for 0-dimensional arrays.
5131 * """
5132 * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
5133 *
5134 * @property
5135*/
5136 {
5137
5138 __pyx_r = PyArray_DIMS(__pyx_v_self);
5139 }
5140 goto __pyx_L0;
5141
5142 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":353
5143 * return PyArray_NDIM(self)
5144 *
5145 * @property # <<<<<<<<<<<<<<
5146 * cdef inline npy_intp *shape(self) noexcept nogil:
5147 * """Returns a pointer to the dimensions/shape of the array.
5148*/
5149
5150 /* function exit code */
5151 __pyx_L0:;
5152 return __pyx_r;
5153}
5154
5155/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
5156 * return PyArray_DIMS(self)
5157 *
5158 * @property # <<<<<<<<<<<<<<
5159 * cdef inline npy_intp *strides(self) noexcept nogil:
5160 * """Returns a pointer to the strides of the array.
5161*/
5162
5163static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self) {
5164 npy_intp *__pyx_r;
5165
5166 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":366
5167 * The number of elements matches the number of dimensions of the array (ndim).
5168 * """
5169 * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
5170 *
5171 * @property
5172*/
5173 {
5174
5175 __pyx_r = PyArray_STRIDES(__pyx_v_self);
5176 }
5177 goto __pyx_L0;
5178
5179 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":361
5180 * return PyArray_DIMS(self)
5181 *
5182 * @property # <<<<<<<<<<<<<<
5183 * cdef inline npy_intp *strides(self) noexcept nogil:
5184 * """Returns a pointer to the strides of the array.
5185*/
5186
5187 /* function exit code */
5188 __pyx_L0:;
5189 return __pyx_r;
5190}
5191
5192/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
5193 * return PyArray_STRIDES(self)
5194 *
5195 * @property # <<<<<<<<<<<<<<
5196 * cdef inline npy_intp size(self) noexcept nogil:
5197 * """Returns the total size (in number of elements) of the array.
5198*/
5199
5200static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self) {
5201 npy_intp __pyx_r;
5202
5203 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":372
5204 * """Returns the total size (in number of elements) of the array.
5205 * """
5206 * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
5207 *
5208 * @property
5209*/
5210 {
5211
5212 __pyx_r = PyArray_SIZE(__pyx_v_self);
5213 }
5214 goto __pyx_L0;
5215
5216 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":368
5217 * return PyArray_STRIDES(self)
5218 *
5219 * @property # <<<<<<<<<<<<<<
5220 * cdef inline npy_intp size(self) noexcept nogil:
5221 * """Returns the total size (in number of elements) of the array.
5222*/
5223
5224 /* function exit code */
5225 __pyx_L0:;
5226 return __pyx_r;
5227}
5228
5229/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
5230 * return PyArray_SIZE(self)
5231 *
5232 * @property # <<<<<<<<<<<<<<
5233 * cdef inline char* data(self) noexcept nogil:
5234 * """The pointer to the data buffer as a char*.
5235*/
5236
5237static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self) {
5238 char *__pyx_r;
5239
5240 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":381
5241 * of `PyArray_DATA()` instead, which returns a 'void*'.
5242 * """
5243 * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
5244 *
5245 *
5246*/
5247 {
5248
5249 __pyx_r = PyArray_BYTES(__pyx_v_self);
5250 }
5251 goto __pyx_L0;
5252
5253 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":374
5254 * return PyArray_SIZE(self)
5255 *
5256 * @property # <<<<<<<<<<<<<<
5257 * cdef inline char* data(self) noexcept nogil:
5258 * """The pointer to the data buffer as a char*.
5259*/
5260
5261 /* function exit code */
5262 __pyx_L0:;
5263 return __pyx_r;
5264}
5265
5266/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
5267 * ctypedef long double complex clongdouble_t
5268 *
5269 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
5270 * return PyArray_MultiIterNew(1, <void*>a)
5271 *
5272*/
5273
5274static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
5275 PyObject *__pyx_r = NULL;
5276 __Pyx_RefNannyDeclarations
5277 PyObject *__pyx_t_1 = NULL;
5278 int __pyx_lineno = 0;
5279 const char *__pyx_filename = NULL;
5280 int __pyx_clineno = 0;
5281 __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
5282
5283 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":795
5284 *
5285 * cdef inline object PyArray_MultiIterNew1(a):
5286 * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
5287 *
5288 * cdef inline object PyArray_MultiIterNew2(a, b):
5289*/
5290 __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 795, __pyx_L1_error)
5291 __Pyx_GOTREF(__pyx_t_1);
5292 {
5293 PyObject *__pyx_temp;
5294 {
5295 __pyx_temp = __pyx_r;
5296 __pyx_r = __pyx_t_1;
5297 }
5298 __Pyx_XDECREF(__pyx_temp);
5299 }
5300 __pyx_t_1 = 0;
5301 goto __pyx_L0;
5302
5303 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":794
5304 * ctypedef long double complex clongdouble_t
5305 *
5306 * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
5307 * return PyArray_MultiIterNew(1, <void*>a)
5308 *
5309*/
5310
5311 /* function exit code */
5312 __pyx_L1_error:;
5313 __Pyx_XDECREF(__pyx_t_1);
5314 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
5315 __pyx_r = 0;
5316 __pyx_L0:;
5317 __Pyx_XGIVEREF(__pyx_r);
5318 __Pyx_RefNannyFinishContext();
5319 return __pyx_r;
5320}
5321
5322/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
5323 * return PyArray_MultiIterNew(1, <void*>a)
5324 *
5325 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
5326 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
5327 *
5328*/
5329
5330static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
5331 PyObject *__pyx_r = NULL;
5332 __Pyx_RefNannyDeclarations
5333 PyObject *__pyx_t_1 = NULL;
5334 int __pyx_lineno = 0;
5335 const char *__pyx_filename = NULL;
5336 int __pyx_clineno = 0;
5337 __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
5338
5339 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":798
5340 *
5341 * cdef inline object PyArray_MultiIterNew2(a, b):
5342 * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
5343 *
5344 * cdef inline object PyArray_MultiIterNew3(a, b, c):
5345*/
5346 __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 798, __pyx_L1_error)
5347 __Pyx_GOTREF(__pyx_t_1);
5348 {
5349 PyObject *__pyx_temp;
5350 {
5351 __pyx_temp = __pyx_r;
5352 __pyx_r = __pyx_t_1;
5353 }
5354 __Pyx_XDECREF(__pyx_temp);
5355 }
5356 __pyx_t_1 = 0;
5357 goto __pyx_L0;
5358
5359 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":797
5360 * return PyArray_MultiIterNew(1, <void*>a)
5361 *
5362 * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
5363 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
5364 *
5365*/
5366
5367 /* function exit code */
5368 __pyx_L1_error:;
5369 __Pyx_XDECREF(__pyx_t_1);
5370 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
5371 __pyx_r = 0;
5372 __pyx_L0:;
5373 __Pyx_XGIVEREF(__pyx_r);
5374 __Pyx_RefNannyFinishContext();
5375 return __pyx_r;
5376}
5377
5378/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
5379 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
5380 *
5381 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
5382 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
5383 *
5384*/
5385
5386static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
5387 PyObject *__pyx_r = NULL;
5388 __Pyx_RefNannyDeclarations
5389 PyObject *__pyx_t_1 = NULL;
5390 int __pyx_lineno = 0;
5391 const char *__pyx_filename = NULL;
5392 int __pyx_clineno = 0;
5393 __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
5394
5395 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":801
5396 *
5397 * cdef inline object PyArray_MultiIterNew3(a, b, c):
5398 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
5399 *
5400 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
5401*/
5402 __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(2, 801, __pyx_L1_error)
5403 __Pyx_GOTREF(__pyx_t_1);
5404 {
5405 PyObject *__pyx_temp;
5406 {
5407 __pyx_temp = __pyx_r;
5408 __pyx_r = __pyx_t_1;
5409 }
5410 __Pyx_XDECREF(__pyx_temp);
5411 }
5412 __pyx_t_1 = 0;
5413 goto __pyx_L0;
5414
5415 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":800
5416 * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
5417 *
5418 * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
5419 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
5420 *
5421*/
5422
5423 /* function exit code */
5424 __pyx_L1_error:;
5425 __Pyx_XDECREF(__pyx_t_1);
5426 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
5427 __pyx_r = 0;
5428 __pyx_L0:;
5429 __Pyx_XGIVEREF(__pyx_r);
5430 __Pyx_RefNannyFinishContext();
5431 return __pyx_r;
5432}
5433
5434/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
5435 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
5436 *
5437 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
5438 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
5439 *
5440*/
5441
5442static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
5443 PyObject *__pyx_r = NULL;
5444 __Pyx_RefNannyDeclarations
5445 PyObject *__pyx_t_1 = NULL;
5446 int __pyx_lineno = 0;
5447 const char *__pyx_filename = NULL;
5448 int __pyx_clineno = 0;
5449 __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
5450
5451 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":804
5452 *
5453 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
5454 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
5455 *
5456 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
5457*/
5458 __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(2, 804, __pyx_L1_error)
5459 __Pyx_GOTREF(__pyx_t_1);
5460 {
5461 PyObject *__pyx_temp;
5462 {
5463 __pyx_temp = __pyx_r;
5464 __pyx_r = __pyx_t_1;
5465 }
5466 __Pyx_XDECREF(__pyx_temp);
5467 }
5468 __pyx_t_1 = 0;
5469 goto __pyx_L0;
5470
5471 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":803
5472 * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
5473 *
5474 * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
5475 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
5476 *
5477*/
5478
5479 /* function exit code */
5480 __pyx_L1_error:;
5481 __Pyx_XDECREF(__pyx_t_1);
5482 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
5483 __pyx_r = 0;
5484 __pyx_L0:;
5485 __Pyx_XGIVEREF(__pyx_r);
5486 __Pyx_RefNannyFinishContext();
5487 return __pyx_r;
5488}
5489
5490/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
5491 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
5492 *
5493 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
5494 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5495 *
5496*/
5497
5498static 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) {
5499 PyObject *__pyx_r = NULL;
5500 __Pyx_RefNannyDeclarations
5501 PyObject *__pyx_t_1 = NULL;
5502 int __pyx_lineno = 0;
5503 const char *__pyx_filename = NULL;
5504 int __pyx_clineno = 0;
5505 __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
5506
5507 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":807
5508 *
5509 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
5510 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
5511 *
5512 * cdef inline tuple PyDataType_SHAPE(dtype d):
5513*/
5514 __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(2, 807, __pyx_L1_error)
5515 __Pyx_GOTREF(__pyx_t_1);
5516 {
5517 PyObject *__pyx_temp;
5518 {
5519 __pyx_temp = __pyx_r;
5520 __pyx_r = __pyx_t_1;
5521 }
5522 __Pyx_XDECREF(__pyx_temp);
5523 }
5524 __pyx_t_1 = 0;
5525 goto __pyx_L0;
5526
5527 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":806
5528 * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
5529 *
5530 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
5531 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5532 *
5533*/
5534
5535 /* function exit code */
5536 __pyx_L1_error:;
5537 __Pyx_XDECREF(__pyx_t_1);
5538 __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
5539 __pyx_r = 0;
5540 __pyx_L0:;
5541 __Pyx_XGIVEREF(__pyx_r);
5542 __Pyx_RefNannyFinishContext();
5543 return __pyx_r;
5544}
5545
5546/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
5547 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5548 *
5549 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
5550 * if PyDataType_HASSUBARRAY(d):
5551 * return <tuple>d.subarray.shape
5552*/
5553
5554static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
5555 PyObject *__pyx_r = NULL;
5556 __Pyx_RefNannyDeclarations
5557 int __pyx_t_1;
5558 PyObject *__pyx_t_2;
5559 __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
5560
5561 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
5562 *
5563 * cdef inline tuple PyDataType_SHAPE(dtype d):
5564 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
5565 * return <tuple>d.subarray.shape
5566 * else:
5567*/
5568 __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
5569
5570 if (__pyx_t_1) {
5571
5572
5573 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":811
5574 * cdef inline tuple PyDataType_SHAPE(dtype d):
5575 * if PyDataType_HASSUBARRAY(d):
5576 * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
5577 * else:
5578 * return ()
5579*/
5580 __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray___get__(__pyx_v_d)->shape;
5581
5582 {
5583 PyObject *__pyx_temp;
5584 {
5585 __pyx_temp = __pyx_r;
5586 __Pyx_INCREF(((PyObject*)__pyx_t_2));
5587 __pyx_r = ((PyObject*)__pyx_t_2);
5588 }
5589 __Pyx_XDECREF(__pyx_temp);
5590 }
5591
5592 goto __pyx_L0;
5593
5594 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":810
5595 *
5596 * cdef inline tuple PyDataType_SHAPE(dtype d):
5597 * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
5598 * return <tuple>d.subarray.shape
5599 * else:
5600*/
5601 }
5602
5603 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":813
5604 * return <tuple>d.subarray.shape
5605 * else:
5606 * return () # <<<<<<<<<<<<<<
5607 *
5608 *
5609*/
5610 /*else*/ {
5611 {
5612 PyObject *__pyx_temp;
5613 {
5614 __pyx_temp = __pyx_r;
5615 __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
5616 __pyx_r = __pyx_mstate_global->__pyx_empty_tuple;
5617 }
5618 __Pyx_XDECREF(__pyx_temp);
5619 }
5620 goto __pyx_L0;
5621 }
5622
5623 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":809
5624 * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
5625 *
5626 * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
5627 * if PyDataType_HASSUBARRAY(d):
5628 * return <tuple>d.subarray.shape
5629*/
5630
5631 /* function exit code */
5632 __pyx_L0:;
5633 __Pyx_XGIVEREF(__pyx_r);
5634 __Pyx_RefNannyFinishContext();
5635 return __pyx_r;
5636}
5637
5638/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
5639 *
5640 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
5641 * @property # <<<<<<<<<<<<<<
5642 * cdef inline int nin(self) noexcept nogil:
5643 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5644*/
5645
5646static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin___get__(PyUFuncObject *__pyx_v_self) {
5647 int __pyx_r;
5648
5649 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":949
5650 * @property
5651 * cdef inline int nin(self) noexcept nogil:
5652 * return _PyUFuncObject_GET_ITEM_DATA(self).nin # <<<<<<<<<<<<<<
5653 *
5654 * @property
5655*/
5656 {
5657
5658 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nin;
5659 }
5660 goto __pyx_L0;
5661
5662 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":947
5663 *
5664 * ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
5665 * @property # <<<<<<<<<<<<<<
5666 * cdef inline int nin(self) noexcept nogil:
5667 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5668*/
5669
5670 /* function exit code */
5671 __pyx_L0:;
5672 return __pyx_r;
5673}
5674
5675/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
5676 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5677 *
5678 * @property # <<<<<<<<<<<<<<
5679 * cdef inline int nout(self) noexcept nogil:
5680 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5681*/
5682
5683static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout___get__(PyUFuncObject *__pyx_v_self) {
5684 int __pyx_r;
5685
5686 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":953
5687 * @property
5688 * cdef inline int nout(self) noexcept nogil:
5689 * return _PyUFuncObject_GET_ITEM_DATA(self).nout # <<<<<<<<<<<<<<
5690 *
5691 * @property
5692*/
5693 {
5694
5695 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nout;
5696 }
5697 goto __pyx_L0;
5698
5699 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":951
5700 * return _PyUFuncObject_GET_ITEM_DATA(self).nin
5701 *
5702 * @property # <<<<<<<<<<<<<<
5703 * cdef inline int nout(self) noexcept nogil:
5704 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5705*/
5706
5707 /* function exit code */
5708 __pyx_L0:;
5709 return __pyx_r;
5710}
5711
5712/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
5713 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5714 *
5715 * @property # <<<<<<<<<<<<<<
5716 * cdef inline int nargs(self) noexcept nogil:
5717 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5718*/
5719
5720static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs___get__(PyUFuncObject *__pyx_v_self) {
5721 int __pyx_r;
5722
5723 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":957
5724 * @property
5725 * cdef inline int nargs(self) noexcept nogil:
5726 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs # <<<<<<<<<<<<<<
5727 *
5728 * @property
5729*/
5730 {
5731
5732 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nargs;
5733 }
5734 goto __pyx_L0;
5735
5736 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":955
5737 * return _PyUFuncObject_GET_ITEM_DATA(self).nout
5738 *
5739 * @property # <<<<<<<<<<<<<<
5740 * cdef inline int nargs(self) noexcept nogil:
5741 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5742*/
5743
5744 /* function exit code */
5745 __pyx_L0:;
5746 return __pyx_r;
5747}
5748
5749/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
5750 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5751 *
5752 * @property # <<<<<<<<<<<<<<
5753 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5754 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5755*/
5756
5757static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions___get__(PyUFuncObject *__pyx_v_self) {
5758 PyUFuncGenericFunction *__pyx_r;
5759
5760 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":961
5761 * @property
5762 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5763 * return _PyUFuncObject_GET_ITEM_DATA(self).functions # <<<<<<<<<<<<<<
5764 *
5765 * @property
5766*/
5767 {
5768
5769 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->functions;
5770 }
5771 goto __pyx_L0;
5772
5773 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":959
5774 * return _PyUFuncObject_GET_ITEM_DATA(self).nargs
5775 *
5776 * @property # <<<<<<<<<<<<<<
5777 * cdef inline PyUFuncGenericFunction* functions(self) noexcept nogil:
5778 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5779*/
5780
5781 /* function exit code */
5782 __pyx_L0:;
5783 return __pyx_r;
5784}
5785
5786/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
5787 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5788 *
5789 * @property # <<<<<<<<<<<<<<
5790 * cdef inline void ** data(self) noexcept nogil:
5791 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5792*/
5793
5794static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data___get__(PyUFuncObject *__pyx_v_self) {
5795 void **__pyx_r;
5796
5797 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":965
5798 * @property
5799 * cdef inline void ** data(self) noexcept nogil:
5800 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data # <<<<<<<<<<<<<<
5801 *
5802 * @property
5803*/
5804 {
5805
5806 __pyx_r = ((void **)_PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->data);
5807 }
5808 goto __pyx_L0;
5809
5810 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":963
5811 * return _PyUFuncObject_GET_ITEM_DATA(self).functions
5812 *
5813 * @property # <<<<<<<<<<<<<<
5814 * cdef inline void ** data(self) noexcept nogil:
5815 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5816*/
5817
5818 /* function exit code */
5819 __pyx_L0:;
5820 return __pyx_r;
5821}
5822
5823/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
5824 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5825 *
5826 * @property # <<<<<<<<<<<<<<
5827 * cdef inline int ntypes(self) noexcept nogil:
5828 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5829*/
5830
5831static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes___get__(PyUFuncObject *__pyx_v_self) {
5832 int __pyx_r;
5833
5834 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":969
5835 * @property
5836 * cdef inline int ntypes(self) noexcept nogil:
5837 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes # <<<<<<<<<<<<<<
5838 *
5839 * @property
5840*/
5841 {
5842
5843 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ntypes;
5844 }
5845 goto __pyx_L0;
5846
5847 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":967
5848 * return <void **>_PyUFuncObject_GET_ITEM_DATA(self).data
5849 *
5850 * @property # <<<<<<<<<<<<<<
5851 * cdef inline int ntypes(self) noexcept nogil:
5852 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5853*/
5854
5855 /* function exit code */
5856 __pyx_L0:;
5857 return __pyx_r;
5858}
5859
5860/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
5861 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5862 *
5863 * @property # <<<<<<<<<<<<<<
5864 * cdef inline const char* name(self) noexcept nogil:
5865 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5866*/
5867
5868static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name___get__(PyUFuncObject *__pyx_v_self) {
5869 char const *__pyx_r;
5870
5871 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":973
5872 * @property
5873 * cdef inline const char* name(self) noexcept nogil:
5874 * return _PyUFuncObject_GET_ITEM_DATA(self).name # <<<<<<<<<<<<<<
5875 *
5876 * @property
5877*/
5878 {
5879
5880 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->name;
5881 }
5882 goto __pyx_L0;
5883
5884 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":971
5885 * return _PyUFuncObject_GET_ITEM_DATA(self).ntypes
5886 *
5887 * @property # <<<<<<<<<<<<<<
5888 * cdef inline const char* name(self) noexcept nogil:
5889 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5890*/
5891
5892 /* function exit code */
5893 __pyx_L0:;
5894 return __pyx_r;
5895}
5896
5897/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
5898 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5899 *
5900 * @property # <<<<<<<<<<<<<<
5901 * cdef inline const char* doc(self) noexcept nogil:
5902 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5903*/
5904
5905static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc___get__(PyUFuncObject *__pyx_v_self) {
5906 char const *__pyx_r;
5907
5908 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":977
5909 * @property
5910 * cdef inline const char* doc(self) noexcept nogil:
5911 * return _PyUFuncObject_GET_ITEM_DATA(self).doc # <<<<<<<<<<<<<<
5912 *
5913 * @property
5914*/
5915 {
5916
5917 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->doc;
5918 }
5919 goto __pyx_L0;
5920
5921 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":975
5922 * return _PyUFuncObject_GET_ITEM_DATA(self).name
5923 *
5924 * @property # <<<<<<<<<<<<<<
5925 * cdef inline const char* doc(self) noexcept nogil:
5926 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5927*/
5928
5929 /* function exit code */
5930 __pyx_L0:;
5931 return __pyx_r;
5932}
5933
5934/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
5935 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5936 *
5937 * @property # <<<<<<<<<<<<<<
5938 * cdef inline void* ptr(self) noexcept nogil:
5939 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5940*/
5941
5942static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr___get__(PyUFuncObject *__pyx_v_self) {
5943 void *__pyx_r;
5944
5945 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":981
5946 * @property
5947 * cdef inline void* ptr(self) noexcept nogil:
5948 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr # <<<<<<<<<<<<<<
5949 *
5950 * @property
5951*/
5952 {
5953
5954 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ptr;
5955 }
5956 goto __pyx_L0;
5957
5958 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":979
5959 * return _PyUFuncObject_GET_ITEM_DATA(self).doc
5960 *
5961 * @property # <<<<<<<<<<<<<<
5962 * cdef inline void* ptr(self) noexcept nogil:
5963 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5964*/
5965
5966 /* function exit code */
5967 __pyx_L0:;
5968 return __pyx_r;
5969}
5970
5971/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
5972 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5973 *
5974 * @property # <<<<<<<<<<<<<<
5975 * cdef inline PyObject* obj(self) noexcept nogil:
5976 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
5977*/
5978
5979static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj___get__(PyUFuncObject *__pyx_v_self) {
5980 PyObject *__pyx_r;
5981
5982 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":985
5983 * @property
5984 * cdef inline PyObject* obj(self) noexcept nogil:
5985 * return _PyUFuncObject_GET_ITEM_DATA(self).obj # <<<<<<<<<<<<<<
5986 *
5987 * @property
5988*/
5989 {
5990
5991 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->obj;
5992 }
5993 goto __pyx_L0;
5994
5995 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":983
5996 * return _PyUFuncObject_GET_ITEM_DATA(self).ptr
5997 *
5998 * @property # <<<<<<<<<<<<<<
5999 * cdef inline PyObject* obj(self) noexcept nogil:
6000 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
6001*/
6002
6003 /* function exit code */
6004 __pyx_L0:;
6005 return __pyx_r;
6006}
6007
6008/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
6009 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
6010 *
6011 * @property # <<<<<<<<<<<<<<
6012 * cdef inline PyObject* userloops(self) noexcept nogil:
6013 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
6014*/
6015
6016static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops___get__(PyUFuncObject *__pyx_v_self) {
6017 PyObject *__pyx_r;
6018
6019 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":989
6020 * @property
6021 * cdef inline PyObject* userloops(self) noexcept nogil:
6022 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops # <<<<<<<<<<<<<<
6023 *
6024 * PyUFuncObject_fields *_PyUFuncObject_GET_ITEM_DATA(ufunc) nogil
6025*/
6026 {
6027
6028 __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->userloops;
6029 }
6030 goto __pyx_L0;
6031
6032 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":987
6033 * return _PyUFuncObject_GET_ITEM_DATA(self).obj
6034 *
6035 * @property # <<<<<<<<<<<<<<
6036 * cdef inline PyObject* userloops(self) noexcept nogil:
6037 * return _PyUFuncObject_GET_ITEM_DATA(self).userloops
6038*/
6039
6040 /* function exit code */
6041 __pyx_L0:;
6042 return __pyx_r;
6043}
6044
6045/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
6046 * int _import_umath() except -1
6047 *
6048 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
6049 * Py_INCREF(base) # important to do this before stealing the reference below!
6050 * PyArray_SetBaseObject(arr, base)
6051*/
6052
6053static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
6054 int __pyx_t_1;
6055 int __pyx_lineno = 0;
6056 const char *__pyx_filename = NULL;
6057 int __pyx_clineno = 0;
6058
6059 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1066
6060 *
6061 * cdef inline void set_array_base(ndarray arr, object base) except *:
6062 * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
6063 * PyArray_SetBaseObject(arr, base)
6064 *
6065*/
6066 Py_INCREF(__pyx_v_base);
6067
6068 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1067
6069 * cdef inline void set_array_base(ndarray arr, object base) except *:
6070 * Py_INCREF(base) # important to do this before stealing the reference below!
6071 * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
6072 *
6073 * cdef inline object get_array_base(ndarray arr):
6074*/
6075 __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 1067, __pyx_L1_error)
6076
6077
6078 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1065
6079 * int _import_umath() except -1
6080 *
6081 * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
6082 * Py_INCREF(base) # important to do this before stealing the reference below!
6083 * PyArray_SetBaseObject(arr, base)
6084*/
6085
6086 /* function exit code */
6087 goto __pyx_L0;
6088 __pyx_L1_error:;
6089 __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
6090 __pyx_L0:;
6091
6092}
6093
6094/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
6095 * PyArray_SetBaseObject(arr, base)
6096 *
6097 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
6098 * base = PyArray_BASE(arr)
6099 * if base is NULL:
6100*/
6101
6102static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
6103 PyObject *__pyx_v_base;
6104 PyObject *__pyx_r = NULL;
6105 __Pyx_RefNannyDeclarations
6106 int __pyx_t_1;
6107 __Pyx_RefNannySetupContext("get_array_base", 0);
6108
6109 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1070
6110 *
6111 * cdef inline object get_array_base(ndarray arr):
6112 * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
6113 * if base is NULL:
6114 * return None
6115*/
6116 __pyx_v_base = PyArray_BASE(__pyx_v_arr);
6117
6118 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
6119 * cdef inline object get_array_base(ndarray arr):
6120 * base = PyArray_BASE(arr)
6121 * if base is NULL: # <<<<<<<<<<<<<<
6122 * return None
6123 * return <object>base
6124*/
6125 __pyx_t_1 = (__pyx_v_base == NULL);
6126
6127 if (__pyx_t_1) {
6128
6129
6130 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1072
6131 * base = PyArray_BASE(arr)
6132 * if base is NULL:
6133 * return None # <<<<<<<<<<<<<<
6134 * return <object>base
6135 *
6136*/
6137 {
6138 PyObject *__pyx_temp;
6139 {
6140 __pyx_temp = __pyx_r;
6141 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6142 }
6143 __Pyx_XDECREF(__pyx_temp);
6144 }
6145 goto __pyx_L0;
6146
6147 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1071
6148 * cdef inline object get_array_base(ndarray arr):
6149 * base = PyArray_BASE(arr)
6150 * if base is NULL: # <<<<<<<<<<<<<<
6151 * return None
6152 * return <object>base
6153*/
6154 }
6155
6156 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1073
6157 * if base is NULL:
6158 * return None
6159 * return <object>base # <<<<<<<<<<<<<<
6160 *
6161 * # Versions of the import_* functions which are more suitable for
6162*/
6163 {
6164 PyObject *__pyx_temp;
6165 {
6166 __pyx_temp = __pyx_r;
6167 __Pyx_INCREF(((PyObject *)__pyx_v_base));
6168 __pyx_r = ((PyObject *)__pyx_v_base);
6169 }
6170 __Pyx_XDECREF(__pyx_temp);
6171 }
6172 goto __pyx_L0;
6173
6174 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1069
6175 * PyArray_SetBaseObject(arr, base)
6176 *
6177 * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
6178 * base = PyArray_BASE(arr)
6179 * if base is NULL:
6180*/
6181
6182 /* function exit code */
6183 __pyx_L0:;
6184
6185 __Pyx_XGIVEREF(__pyx_r);
6186 __Pyx_RefNannyFinishContext();
6187 return __pyx_r;
6188}
6189
6190/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
6191 * # Versions of the import_* functions which are more suitable for
6192 * # Cython code.
6193 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
6194 * try:
6195 * __pyx_import_array()
6196*/
6197
6198static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
6199 int __pyx_r;
6200 __Pyx_RefNannyDeclarations
6201 PyObject *__pyx_t_1 = NULL;
6202 PyObject *__pyx_t_2 = NULL;
6203 PyObject *__pyx_t_3 = NULL;
6204 int __pyx_t_4;
6205 PyObject *__pyx_t_5 = NULL;
6206 PyObject *__pyx_t_6 = NULL;
6207 PyObject *__pyx_t_7 = NULL;
6208 PyObject *__pyx_t_8 = NULL;
6209 PyObject *__pyx_t_9 = NULL;
6210 size_t __pyx_t_10;
6211 int __pyx_lineno = 0;
6212 const char *__pyx_filename = NULL;
6213 int __pyx_clineno = 0;
6214 __Pyx_RefNannySetupContext("import_array", 0);
6215
6216 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
6217 * # Cython code.
6218 * cdef inline int import_array() except -1:
6219 * try: # <<<<<<<<<<<<<<
6220 * __pyx_import_array()
6221 * except Exception:
6222*/
6223 {
6224 __Pyx_PyThreadState_declare
6225 __Pyx_PyThreadState_assign
6226 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
6227 __Pyx_XGOTREF(__pyx_t_1);
6228 __Pyx_XGOTREF(__pyx_t_2);
6229 __Pyx_XGOTREF(__pyx_t_3);
6230 /*try:*/ {
6231
6232 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1079
6233 * cdef inline int import_array() except -1:
6234 * try:
6235 * __pyx_import_array() # <<<<<<<<<<<<<<
6236 * except Exception:
6237 * raise ImportError("numpy._core.multiarray failed to import")
6238*/
6239 __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1079, __pyx_L3_error)
6240
6241
6242 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
6243 * # Cython code.
6244 * cdef inline int import_array() except -1:
6245 * try: # <<<<<<<<<<<<<<
6246 * __pyx_import_array()
6247 * except Exception:
6248*/
6249 }
6250 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6251 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6252 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6253 goto __pyx_L8_try_end;
6254 __pyx_L3_error:;
6255
6256 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1080
6257 * try:
6258 * __pyx_import_array()
6259 * except Exception: # <<<<<<<<<<<<<<
6260 * raise ImportError("numpy._core.multiarray failed to import")
6261 *
6262*/
6263 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
6264 if (__pyx_t_4) {
6265 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
6266 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1080, __pyx_L5_except_error)
6267 __Pyx_XGOTREF(__pyx_t_5);
6268 __Pyx_XGOTREF(__pyx_t_6);
6269 __Pyx_XGOTREF(__pyx_t_7);
6270
6271 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1081
6272 * __pyx_import_array()
6273 * except Exception:
6274 * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
6275 *
6276 * cdef inline int import_umath() except -1:
6277*/
6278 __pyx_t_9 = NULL;
6279 __pyx_t_10 = 1;
6280 {
6281 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to};
6282 __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));
6283 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
6284 if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1081, __pyx_L5_except_error)
6285 __Pyx_GOTREF(__pyx_t_8);
6286 }
6287 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
6288 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6289 __PYX_ERR(2, 1081, __pyx_L5_except_error)
6290 }
6291 goto __pyx_L5_except_error;
6292
6293 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1078
6294 * # Cython code.
6295 * cdef inline int import_array() except -1:
6296 * try: # <<<<<<<<<<<<<<
6297 * __pyx_import_array()
6298 * except Exception:
6299*/
6300 __pyx_L5_except_error:;
6301 __Pyx_XGIVEREF(__pyx_t_1);
6302 __Pyx_XGIVEREF(__pyx_t_2);
6303 __Pyx_XGIVEREF(__pyx_t_3);
6304 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
6305 goto __pyx_L1_error;
6306 __pyx_L8_try_end:;
6307 }
6308
6309 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1077
6310 * # Versions of the import_* functions which are more suitable for
6311 * # Cython code.
6312 * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
6313 * try:
6314 * __pyx_import_array()
6315*/
6316
6317 /* function exit code */
6318 __pyx_r = 0;
6319 goto __pyx_L0;
6320 __pyx_L1_error:;
6321 __Pyx_XDECREF(__pyx_t_5);
6322 __Pyx_XDECREF(__pyx_t_6);
6323 __Pyx_XDECREF(__pyx_t_7);
6324 __Pyx_XDECREF(__pyx_t_8);
6325 __Pyx_XDECREF(__pyx_t_9);
6326 __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
6327 __pyx_r = -1;
6328 __pyx_L0:;
6329
6330 __Pyx_RefNannyFinishContext();
6331 return __pyx_r;
6332}
6333
6334/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
6335 * raise ImportError("numpy._core.multiarray failed to import")
6336 *
6337 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
6338 * try:
6339 * _import_umath()
6340*/
6341
6342static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
6343 int __pyx_r;
6344 __Pyx_RefNannyDeclarations
6345 PyObject *__pyx_t_1 = NULL;
6346 PyObject *__pyx_t_2 = NULL;
6347 PyObject *__pyx_t_3 = NULL;
6348 int __pyx_t_4;
6349 PyObject *__pyx_t_5 = NULL;
6350 PyObject *__pyx_t_6 = NULL;
6351 PyObject *__pyx_t_7 = NULL;
6352 PyObject *__pyx_t_8 = NULL;
6353 PyObject *__pyx_t_9 = NULL;
6354 size_t __pyx_t_10;
6355 int __pyx_lineno = 0;
6356 const char *__pyx_filename = NULL;
6357 int __pyx_clineno = 0;
6358 __Pyx_RefNannySetupContext("import_umath", 0);
6359
6360 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
6361 *
6362 * cdef inline int import_umath() except -1:
6363 * try: # <<<<<<<<<<<<<<
6364 * _import_umath()
6365 * except Exception:
6366*/
6367 {
6368 __Pyx_PyThreadState_declare
6369 __Pyx_PyThreadState_assign
6370 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
6371 __Pyx_XGOTREF(__pyx_t_1);
6372 __Pyx_XGOTREF(__pyx_t_2);
6373 __Pyx_XGOTREF(__pyx_t_3);
6374 /*try:*/ {
6375
6376 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1085
6377 * cdef inline int import_umath() except -1:
6378 * try:
6379 * _import_umath() # <<<<<<<<<<<<<<
6380 * except Exception:
6381 * raise ImportError("numpy._core.umath failed to import")
6382*/
6383 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1085, __pyx_L3_error)
6384
6385
6386 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
6387 *
6388 * cdef inline int import_umath() except -1:
6389 * try: # <<<<<<<<<<<<<<
6390 * _import_umath()
6391 * except Exception:
6392*/
6393 }
6394 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6395 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6396 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6397 goto __pyx_L8_try_end;
6398 __pyx_L3_error:;
6399
6400 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1086
6401 * try:
6402 * _import_umath()
6403 * except Exception: # <<<<<<<<<<<<<<
6404 * raise ImportError("numpy._core.umath failed to import")
6405 *
6406*/
6407 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
6408 if (__pyx_t_4) {
6409 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
6410 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1086, __pyx_L5_except_error)
6411 __Pyx_XGOTREF(__pyx_t_5);
6412 __Pyx_XGOTREF(__pyx_t_6);
6413 __Pyx_XGOTREF(__pyx_t_7);
6414
6415 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1087
6416 * _import_umath()
6417 * except Exception:
6418 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
6419 *
6420 * cdef inline int import_ufunc() except -1:
6421*/
6422 __pyx_t_9 = NULL;
6423 __pyx_t_10 = 1;
6424 {
6425 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
6426 __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));
6427 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
6428 if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1087, __pyx_L5_except_error)
6429 __Pyx_GOTREF(__pyx_t_8);
6430 }
6431 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
6432 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6433 __PYX_ERR(2, 1087, __pyx_L5_except_error)
6434 }
6435 goto __pyx_L5_except_error;
6436
6437 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1084
6438 *
6439 * cdef inline int import_umath() except -1:
6440 * try: # <<<<<<<<<<<<<<
6441 * _import_umath()
6442 * except Exception:
6443*/
6444 __pyx_L5_except_error:;
6445 __Pyx_XGIVEREF(__pyx_t_1);
6446 __Pyx_XGIVEREF(__pyx_t_2);
6447 __Pyx_XGIVEREF(__pyx_t_3);
6448 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
6449 goto __pyx_L1_error;
6450 __pyx_L8_try_end:;
6451 }
6452
6453 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1083
6454 * raise ImportError("numpy._core.multiarray failed to import")
6455 *
6456 * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
6457 * try:
6458 * _import_umath()
6459*/
6460
6461 /* function exit code */
6462 __pyx_r = 0;
6463 goto __pyx_L0;
6464 __pyx_L1_error:;
6465 __Pyx_XDECREF(__pyx_t_5);
6466 __Pyx_XDECREF(__pyx_t_6);
6467 __Pyx_XDECREF(__pyx_t_7);
6468 __Pyx_XDECREF(__pyx_t_8);
6469 __Pyx_XDECREF(__pyx_t_9);
6470 __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
6471 __pyx_r = -1;
6472 __pyx_L0:;
6473
6474 __Pyx_RefNannyFinishContext();
6475 return __pyx_r;
6476}
6477
6478/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
6479 * raise ImportError("numpy._core.umath failed to import")
6480 *
6481 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
6482 * try:
6483 * _import_umath()
6484*/
6485
6486static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
6487 int __pyx_r;
6488 __Pyx_RefNannyDeclarations
6489 PyObject *__pyx_t_1 = NULL;
6490 PyObject *__pyx_t_2 = NULL;
6491 PyObject *__pyx_t_3 = NULL;
6492 int __pyx_t_4;
6493 PyObject *__pyx_t_5 = NULL;
6494 PyObject *__pyx_t_6 = NULL;
6495 PyObject *__pyx_t_7 = NULL;
6496 PyObject *__pyx_t_8 = NULL;
6497 PyObject *__pyx_t_9 = NULL;
6498 size_t __pyx_t_10;
6499 int __pyx_lineno = 0;
6500 const char *__pyx_filename = NULL;
6501 int __pyx_clineno = 0;
6502 __Pyx_RefNannySetupContext("import_ufunc", 0);
6503
6504 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
6505 *
6506 * cdef inline int import_ufunc() except -1:
6507 * try: # <<<<<<<<<<<<<<
6508 * _import_umath()
6509 * except Exception:
6510*/
6511 {
6512 __Pyx_PyThreadState_declare
6513 __Pyx_PyThreadState_assign
6514 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
6515 __Pyx_XGOTREF(__pyx_t_1);
6516 __Pyx_XGOTREF(__pyx_t_2);
6517 __Pyx_XGOTREF(__pyx_t_3);
6518 /*try:*/ {
6519
6520 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1091
6521 * cdef inline int import_ufunc() except -1:
6522 * try:
6523 * _import_umath() # <<<<<<<<<<<<<<
6524 * except Exception:
6525 * raise ImportError("numpy._core.umath failed to import")
6526*/
6527 __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1091, __pyx_L3_error)
6528
6529
6530 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
6531 *
6532 * cdef inline int import_ufunc() except -1:
6533 * try: # <<<<<<<<<<<<<<
6534 * _import_umath()
6535 * except Exception:
6536*/
6537 }
6538 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6539 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6540 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
6541 goto __pyx_L8_try_end;
6542 __pyx_L3_error:;
6543
6544 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1092
6545 * try:
6546 * _import_umath()
6547 * except Exception: # <<<<<<<<<<<<<<
6548 * raise ImportError("numpy._core.umath failed to import")
6549 *
6550*/
6551 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
6552 if (__pyx_t_4) {
6553 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
6554 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1092, __pyx_L5_except_error)
6555 __Pyx_XGOTREF(__pyx_t_5);
6556 __Pyx_XGOTREF(__pyx_t_6);
6557 __Pyx_XGOTREF(__pyx_t_7);
6558
6559 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1093
6560 * _import_umath()
6561 * except Exception:
6562 * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
6563 *
6564 *
6565*/
6566 __pyx_t_9 = NULL;
6567 __pyx_t_10 = 1;
6568 {
6569 PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo};
6570 __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));
6571 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
6572 if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1093, __pyx_L5_except_error)
6573 __Pyx_GOTREF(__pyx_t_8);
6574 }
6575 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
6576 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6577 __PYX_ERR(2, 1093, __pyx_L5_except_error)
6578 }
6579 goto __pyx_L5_except_error;
6580
6581 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1090
6582 *
6583 * cdef inline int import_ufunc() except -1:
6584 * try: # <<<<<<<<<<<<<<
6585 * _import_umath()
6586 * except Exception:
6587*/
6588 __pyx_L5_except_error:;
6589 __Pyx_XGIVEREF(__pyx_t_1);
6590 __Pyx_XGIVEREF(__pyx_t_2);
6591 __Pyx_XGIVEREF(__pyx_t_3);
6592 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
6593 goto __pyx_L1_error;
6594 __pyx_L8_try_end:;
6595 }
6596
6597 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1089
6598 * raise ImportError("numpy._core.umath failed to import")
6599 *
6600 * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
6601 * try:
6602 * _import_umath()
6603*/
6604
6605 /* function exit code */
6606 __pyx_r = 0;
6607 goto __pyx_L0;
6608 __pyx_L1_error:;
6609 __Pyx_XDECREF(__pyx_t_5);
6610 __Pyx_XDECREF(__pyx_t_6);
6611 __Pyx_XDECREF(__pyx_t_7);
6612 __Pyx_XDECREF(__pyx_t_8);
6613 __Pyx_XDECREF(__pyx_t_9);
6614 __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
6615 __pyx_r = -1;
6616 __pyx_L0:;
6617
6618 __Pyx_RefNannyFinishContext();
6619 return __pyx_r;
6620}
6621
6622/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
6623 *
6624 *
6625 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6626 * """
6627 * Cython equivalent of `isinstance(obj, np.timedelta64)`
6628*/
6629
6630static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
6631 int __pyx_r;
6632
6633 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1108
6634 * bool
6635 * """
6636 * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
6637 *
6638 *
6639*/
6640 {
6641
6642 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
6643 }
6644 goto __pyx_L0;
6645
6646 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1096
6647 *
6648 *
6649 * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6650 * """
6651 * Cython equivalent of `isinstance(obj, np.timedelta64)`
6652*/
6653
6654 /* function exit code */
6655 __pyx_L0:;
6656
6657 return __pyx_r;
6658}
6659
6660/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
6661 *
6662 *
6663 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6664 * """
6665 * Cython equivalent of `isinstance(obj, np.datetime64)`
6666*/
6667
6668static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
6669 int __pyx_r;
6670
6671 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1123
6672 * bool
6673 * """
6674 * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
6675 *
6676 *
6677*/
6678 {
6679
6680 __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
6681 }
6682 goto __pyx_L0;
6683
6684 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1111
6685 *
6686 *
6687 * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
6688 * """
6689 * Cython equivalent of `isinstance(obj, np.datetime64)`
6690*/
6691
6692 /* function exit code */
6693 __pyx_L0:;
6694
6695 return __pyx_r;
6696}
6697
6698/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
6699 *
6700 *
6701 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6702 * """
6703 * returns the int64 value underlying scalar numpy datetime64 object
6704*/
6705
6706static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
6707 npy_datetime __pyx_r;
6708
6709 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1133
6710 * also needed. That can be found using `get_datetime64_unit`.
6711 * """
6712 * return _PyDatetimeScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
6713 *
6714 *
6715*/
6716 {
6717
6718 __pyx_r = _PyDatetimeScalarObject_GetValue(__pyx_v_obj);
6719 }
6720 goto __pyx_L0;
6721
6722 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1126
6723 *
6724 *
6725 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6726 * """
6727 * returns the int64 value underlying scalar numpy datetime64 object
6728*/
6729
6730 /* function exit code */
6731 __pyx_L0:;
6732 return __pyx_r;
6733}
6734
6735/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
6736 *
6737 *
6738 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6739 * """
6740 * returns the int64 value underlying scalar numpy timedelta64 object
6741*/
6742
6743static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
6744 npy_timedelta __pyx_r;
6745
6746 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1140
6747 * returns the int64 value underlying scalar numpy timedelta64 object
6748 * """
6749 * return _PyTimedeltaScalarObject_GetValue(obj) # <<<<<<<<<<<<<<
6750 *
6751 *
6752*/
6753 {
6754
6755 __pyx_r = _PyTimedeltaScalarObject_GetValue(__pyx_v_obj);
6756 }
6757 goto __pyx_L0;
6758
6759 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1136
6760 *
6761 *
6762 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6763 * """
6764 * returns the int64 value underlying scalar numpy timedelta64 object
6765*/
6766
6767 /* function exit code */
6768 __pyx_L0:;
6769 return __pyx_r;
6770}
6771
6772/* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
6773 *
6774 *
6775 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6776 * """
6777 * returns the unit part of the dtype for a numpy datetime64 object.
6778*/
6779
6780static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
6781 NPY_DATETIMEUNIT __pyx_r;
6782
6783 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1147
6784 * returns the unit part of the dtype for a numpy datetime64 object.
6785 * """
6786 * return _PyDatetimeScalarObject_GetMetadata(obj).base # <<<<<<<<<<<<<<
6787 *
6788 *
6789*/
6790 {
6791
6792 __pyx_r = _PyDatetimeScalarObject_GetMetadata(__pyx_v_obj).base;
6793 }
6794 goto __pyx_L0;
6795
6796 /* "../miniforge3/envs/proteus-jupyterhub/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd":1143
6797 *
6798 *
6799 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
6800 * """
6801 * returns the unit part of the dtype for a numpy datetime64 object.
6802*/
6803
6804 /* function exit code */
6805 __pyx_L0:;
6806 return __pyx_r;
6807}
6808
6809/* "MeshAdaptPUMI/MeshAdapt.pyx":62
6810 * cdef int isReconstructed
6811 * cdef int adaptMesh
6812 * def __cinit__(self): # <<<<<<<<<<<<<<
6813 * self.thisptr = new MeshAdaptPUMIDrvr()
6814 * def __dealloc__(self):
6815*/
6816
6817/* Python wrapper */
6818static int __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_1__cinit__(PyObject *__pyx_v_self,
6819#if CYTHON_VECTORCALL_TPNEW
6820PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6821#else
6822PyObject *__pyx_args, PyObject *__pyx_kwds
6823#endif
6824); /*proto*/
6825static int __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_1__cinit__(PyObject *__pyx_v_self,
6826#if CYTHON_VECTORCALL_TPNEW
6827PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6828#else
6829PyObject *__pyx_args, PyObject *__pyx_kwds
6830#endif
6831) {
6832 #if !CYTHON_VECTORCALL_TPNEW
6833 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6834 #endif
6835 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6836 int __pyx_r;
6837 __Pyx_RefNannyDeclarations
6838 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
6839 #if !CYTHON_VECTORCALL_TPNEW
6840 #if CYTHON_ASSUME_SAFE_SIZE
6841 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6842 #else
6843 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
6844 #endif
6845 #endif
6846 __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs);
6847 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
6848 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0;
6849 if (unlikely(__pyx_kwds_len < 0)) return -1;
6850 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
6851 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt___cinit__(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
6852
6853 /* function exit code */
6854 __Pyx_RefNannyFinishContext();
6855 return __pyx_r;
6856}
6857
6858static int __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt___cinit__(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
6859 int __pyx_r;
6860
6861 /* "MeshAdaptPUMI/MeshAdapt.pyx":63
6862 * cdef int adaptMesh
6863 * def __cinit__(self):
6864 * self.thisptr = new MeshAdaptPUMIDrvr() # <<<<<<<<<<<<<<
6865 * def __dealloc__(self):
6866 * del self.thisptr
6867*/
6868 __pyx_v_self->thisptr = new MeshAdaptPUMIDrvr();
6869
6870 /* "MeshAdaptPUMI/MeshAdapt.pyx":62
6871 * cdef int isReconstructed
6872 * cdef int adaptMesh
6873 * def __cinit__(self): # <<<<<<<<<<<<<<
6874 * self.thisptr = new MeshAdaptPUMIDrvr()
6875 * def __dealloc__(self):
6876*/
6877
6878 /* function exit code */
6879 __pyx_r = 0;
6880
6881 return __pyx_r;
6882}
6883
6884/* "MeshAdaptPUMI/MeshAdapt.pyx":64
6885 * def __cinit__(self):
6886 * self.thisptr = new MeshAdaptPUMIDrvr()
6887 * def __dealloc__(self): # <<<<<<<<<<<<<<
6888 * del self.thisptr
6889 * def size_field_config(self):
6890*/
6891
6892/* Python wrapper */
6893static void __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
6894static void __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_3__dealloc__(PyObject *__pyx_v_self) {
6895 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6896 __Pyx_RefNannyDeclarations
6897 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
6898 __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6899 __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_2__dealloc__(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
6900
6901 /* function exit code */
6902 __Pyx_RefNannyFinishContext();
6903}
6904
6905static void __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_2__dealloc__(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
6906
6907 /* "MeshAdaptPUMI/MeshAdapt.pyx":65
6908 * self.thisptr = new MeshAdaptPUMIDrvr()
6909 * def __dealloc__(self):
6910 * del self.thisptr # <<<<<<<<<<<<<<
6911 * def size_field_config(self):
6912 * return self.thisptr.size_field_config
6913*/
6914 delete __pyx_v_self->thisptr;
6915
6916 /* "MeshAdaptPUMI/MeshAdapt.pyx":64
6917 * def __cinit__(self):
6918 * self.thisptr = new MeshAdaptPUMIDrvr()
6919 * def __dealloc__(self): # <<<<<<<<<<<<<<
6920 * del self.thisptr
6921 * def size_field_config(self):
6922*/
6923
6924 /* function exit code */
6925
6926}
6927
6928/* "MeshAdaptPUMI/MeshAdapt.pyx":66
6929 * def __dealloc__(self):
6930 * del self.thisptr
6931 * def size_field_config(self): # <<<<<<<<<<<<<<
6932 * return self.thisptr.size_field_config
6933 * def adapt_type_config(self):
6934*/
6935
6936/* Python wrapper */
6937static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config(PyObject *__pyx_v_self,
6938#if CYTHON_VECTORCALL
6939PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6940#else
6941PyObject *__pyx_args, PyObject *__pyx_kwds
6942#endif
6943); /*proto*/
6944static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config = {"size_field_config", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
6945static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config(PyObject *__pyx_v_self,
6946#if CYTHON_VECTORCALL
6947PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6948#else
6949PyObject *__pyx_args, PyObject *__pyx_kwds
6950#endif
6951) {
6952 #if !CYTHON_VECTORCALL
6953 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6954 #endif
6955 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6956 PyObject *__pyx_r = 0;
6957 __Pyx_RefNannyDeclarations
6958 __Pyx_RefNannySetupContext("size_field_config (wrapper)", 0);
6959 #if !CYTHON_VECTORCALL
6960 #if CYTHON_ASSUME_SAFE_SIZE
6961 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6962 #else
6963 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6964 #endif
6965 #endif
6966 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6967 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("size_field_config", 1, 0, 0, __pyx_nargs); return NULL; }
6968 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
6969 if (unlikely(__pyx_kwds_len < 0)) return NULL;
6970 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("size_field_config", __pyx_kwds); return NULL;}
6971 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_4size_field_config(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
6972
6973 /* function exit code */
6974 __Pyx_RefNannyFinishContext();
6975 return __pyx_r;
6976}
6977
6978static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_4size_field_config(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
6979 PyObject *__pyx_r = NULL;
6980 __Pyx_RefNannyDeclarations
6981 PyObject *__pyx_t_1 = NULL;
6982 int __pyx_lineno = 0;
6983 const char *__pyx_filename = NULL;
6984 int __pyx_clineno = 0;
6985 __Pyx_RefNannySetupContext("size_field_config", 0);
6986
6987 /* "MeshAdaptPUMI/MeshAdapt.pyx":67
6988 * del self.thisptr
6989 * def size_field_config(self):
6990 * return self.thisptr.size_field_config # <<<<<<<<<<<<<<
6991 * def adapt_type_config(self):
6992 * return self.thisptr.adapt_type_config
6993*/
6994 __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->thisptr->size_field_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error)
6995 __Pyx_GOTREF(__pyx_t_1);
6996 {
6997 PyObject *__pyx_temp;
6998 {
6999 __pyx_temp = __pyx_r;
7000 __pyx_r = __pyx_t_1;
7001 }
7002 __Pyx_XDECREF(__pyx_temp);
7003 }
7004 __pyx_t_1 = 0;
7005 goto __pyx_L0;
7006
7007 /* "MeshAdaptPUMI/MeshAdapt.pyx":66
7008 * def __dealloc__(self):
7009 * del self.thisptr
7010 * def size_field_config(self): # <<<<<<<<<<<<<<
7011 * return self.thisptr.size_field_config
7012 * def adapt_type_config(self):
7013*/
7014
7015 /* function exit code */
7016 __pyx_L1_error:;
7017 __Pyx_XDECREF(__pyx_t_1);
7018 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.size_field_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
7019 __pyx_r = NULL;
7020 __pyx_L0:;
7021 __Pyx_XGIVEREF(__pyx_r);
7022 __Pyx_RefNannyFinishContext();
7023 return __pyx_r;
7024}
7025
7026/* "MeshAdaptPUMI/MeshAdapt.pyx":68
7027 * def size_field_config(self):
7028 * return self.thisptr.size_field_config
7029 * def adapt_type_config(self): # <<<<<<<<<<<<<<
7030 * return self.thisptr.adapt_type_config
7031 * def numIter(self):
7032*/
7033
7034/* Python wrapper */
7035static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config(PyObject *__pyx_v_self,
7036#if CYTHON_VECTORCALL
7037PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7038#else
7039PyObject *__pyx_args, PyObject *__pyx_kwds
7040#endif
7041); /*proto*/
7042static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config = {"adapt_type_config", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7043static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config(PyObject *__pyx_v_self,
7044#if CYTHON_VECTORCALL
7045PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7046#else
7047PyObject *__pyx_args, PyObject *__pyx_kwds
7048#endif
7049) {
7050 #if !CYTHON_VECTORCALL
7051 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7052 #endif
7053 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7054 PyObject *__pyx_r = 0;
7055 __Pyx_RefNannyDeclarations
7056 __Pyx_RefNannySetupContext("adapt_type_config (wrapper)", 0);
7057 #if !CYTHON_VECTORCALL
7058 #if CYTHON_ASSUME_SAFE_SIZE
7059 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7060 #else
7061 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7062 #endif
7063 #endif
7064 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7065 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("adapt_type_config", 1, 0, 0, __pyx_nargs); return NULL; }
7066 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7067 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7068 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("adapt_type_config", __pyx_kwds); return NULL;}
7069 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_6adapt_type_config(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7070
7071 /* function exit code */
7072 __Pyx_RefNannyFinishContext();
7073 return __pyx_r;
7074}
7075
7076static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_6adapt_type_config(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7077 PyObject *__pyx_r = NULL;
7078 __Pyx_RefNannyDeclarations
7079 PyObject *__pyx_t_1 = NULL;
7080 int __pyx_lineno = 0;
7081 const char *__pyx_filename = NULL;
7082 int __pyx_clineno = 0;
7083 __Pyx_RefNannySetupContext("adapt_type_config", 0);
7084
7085 /* "MeshAdaptPUMI/MeshAdapt.pyx":69
7086 * return self.thisptr.size_field_config
7087 * def adapt_type_config(self):
7088 * return self.thisptr.adapt_type_config # <<<<<<<<<<<<<<
7089 * def numIter(self):
7090 * return self.thisptr.numIter
7091*/
7092 __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->thisptr->adapt_type_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error)
7093 __Pyx_GOTREF(__pyx_t_1);
7094 {
7095 PyObject *__pyx_temp;
7096 {
7097 __pyx_temp = __pyx_r;
7098 __pyx_r = __pyx_t_1;
7099 }
7100 __Pyx_XDECREF(__pyx_temp);
7101 }
7102 __pyx_t_1 = 0;
7103 goto __pyx_L0;
7104
7105 /* "MeshAdaptPUMI/MeshAdapt.pyx":68
7106 * def size_field_config(self):
7107 * return self.thisptr.size_field_config
7108 * def adapt_type_config(self): # <<<<<<<<<<<<<<
7109 * return self.thisptr.adapt_type_config
7110 * def numIter(self):
7111*/
7112
7113 /* function exit code */
7114 __pyx_L1_error:;
7115 __Pyx_XDECREF(__pyx_t_1);
7116 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.adapt_type_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
7117 __pyx_r = NULL;
7118 __pyx_L0:;
7119 __Pyx_XGIVEREF(__pyx_r);
7120 __Pyx_RefNannyFinishContext();
7121 return __pyx_r;
7122}
7123
7124/* "MeshAdaptPUMI/MeshAdapt.pyx":70
7125 * def adapt_type_config(self):
7126 * return self.thisptr.adapt_type_config
7127 * def numIter(self): # <<<<<<<<<<<<<<
7128 * return self.thisptr.numIter
7129 * def adaptMesh(self):
7130*/
7131
7132/* Python wrapper */
7133static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter(PyObject *__pyx_v_self,
7134#if CYTHON_VECTORCALL
7135PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7136#else
7137PyObject *__pyx_args, PyObject *__pyx_kwds
7138#endif
7139); /*proto*/
7140static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter = {"numIter", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7141static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter(PyObject *__pyx_v_self,
7142#if CYTHON_VECTORCALL
7143PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7144#else
7145PyObject *__pyx_args, PyObject *__pyx_kwds
7146#endif
7147) {
7148 #if !CYTHON_VECTORCALL
7149 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7150 #endif
7151 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7152 PyObject *__pyx_r = 0;
7153 __Pyx_RefNannyDeclarations
7154 __Pyx_RefNannySetupContext("numIter (wrapper)", 0);
7155 #if !CYTHON_VECTORCALL
7156 #if CYTHON_ASSUME_SAFE_SIZE
7157 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7158 #else
7159 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7160 #endif
7161 #endif
7162 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7163 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("numIter", 1, 0, 0, __pyx_nargs); return NULL; }
7164 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7165 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7166 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("numIter", __pyx_kwds); return NULL;}
7167 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_8numIter(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7168
7169 /* function exit code */
7170 __Pyx_RefNannyFinishContext();
7171 return __pyx_r;
7172}
7173
7174static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_8numIter(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7175 PyObject *__pyx_r = NULL;
7176 __Pyx_RefNannyDeclarations
7177 PyObject *__pyx_t_1 = NULL;
7178 int __pyx_lineno = 0;
7179 const char *__pyx_filename = NULL;
7180 int __pyx_clineno = 0;
7181 __Pyx_RefNannySetupContext("numIter", 0);
7182
7183 /* "MeshAdaptPUMI/MeshAdapt.pyx":71
7184 * return self.thisptr.adapt_type_config
7185 * def numIter(self):
7186 * return self.thisptr.numIter # <<<<<<<<<<<<<<
7187 * def adaptMesh(self):
7188 * return self.thisptr.adaptMesh
7189*/
7190 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->numIter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)
7191 __Pyx_GOTREF(__pyx_t_1);
7192 {
7193 PyObject *__pyx_temp;
7194 {
7195 __pyx_temp = __pyx_r;
7196 __pyx_r = __pyx_t_1;
7197 }
7198 __Pyx_XDECREF(__pyx_temp);
7199 }
7200 __pyx_t_1 = 0;
7201 goto __pyx_L0;
7202
7203 /* "MeshAdaptPUMI/MeshAdapt.pyx":70
7204 * def adapt_type_config(self):
7205 * return self.thisptr.adapt_type_config
7206 * def numIter(self): # <<<<<<<<<<<<<<
7207 * return self.thisptr.numIter
7208 * def adaptMesh(self):
7209*/
7210
7211 /* function exit code */
7212 __pyx_L1_error:;
7213 __Pyx_XDECREF(__pyx_t_1);
7214 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.numIter", __pyx_clineno, __pyx_lineno, __pyx_filename);
7215 __pyx_r = NULL;
7216 __pyx_L0:;
7217 __Pyx_XGIVEREF(__pyx_r);
7218 __Pyx_RefNannyFinishContext();
7219 return __pyx_r;
7220}
7221
7222/* "MeshAdaptPUMI/MeshAdapt.pyx":72
7223 * def numIter(self):
7224 * return self.thisptr.numIter
7225 * def adaptMesh(self): # <<<<<<<<<<<<<<
7226 * return self.thisptr.adaptMesh
7227 * def numAdaptSteps(self):
7228*/
7229
7230/* Python wrapper */
7231static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh(PyObject *__pyx_v_self,
7232#if CYTHON_VECTORCALL
7233PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7234#else
7235PyObject *__pyx_args, PyObject *__pyx_kwds
7236#endif
7237); /*proto*/
7238static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh = {"adaptMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7239static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh(PyObject *__pyx_v_self,
7240#if CYTHON_VECTORCALL
7241PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7242#else
7243PyObject *__pyx_args, PyObject *__pyx_kwds
7244#endif
7245) {
7246 #if !CYTHON_VECTORCALL
7247 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7248 #endif
7249 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7250 PyObject *__pyx_r = 0;
7251 __Pyx_RefNannyDeclarations
7252 __Pyx_RefNannySetupContext("adaptMesh (wrapper)", 0);
7253 #if !CYTHON_VECTORCALL
7254 #if CYTHON_ASSUME_SAFE_SIZE
7255 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7256 #else
7257 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7258 #endif
7259 #endif
7260 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7261 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("adaptMesh", 1, 0, 0, __pyx_nargs); return NULL; }
7262 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7263 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7264 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("adaptMesh", __pyx_kwds); return NULL;}
7265 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_10adaptMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7266
7267 /* function exit code */
7268 __Pyx_RefNannyFinishContext();
7269 return __pyx_r;
7270}
7271
7272static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_10adaptMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7273 PyObject *__pyx_r = NULL;
7274 __Pyx_RefNannyDeclarations
7275 PyObject *__pyx_t_1 = NULL;
7276 int __pyx_lineno = 0;
7277 const char *__pyx_filename = NULL;
7278 int __pyx_clineno = 0;
7279 __Pyx_RefNannySetupContext("adaptMesh", 0);
7280
7281 /* "MeshAdaptPUMI/MeshAdapt.pyx":73
7282 * return self.thisptr.numIter
7283 * def adaptMesh(self):
7284 * return self.thisptr.adaptMesh # <<<<<<<<<<<<<<
7285 * def numAdaptSteps(self):
7286 * return self.thisptr.numAdaptSteps
7287*/
7288 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->adaptMesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
7289 __Pyx_GOTREF(__pyx_t_1);
7290 {
7291 PyObject *__pyx_temp;
7292 {
7293 __pyx_temp = __pyx_r;
7294 __pyx_r = __pyx_t_1;
7295 }
7296 __Pyx_XDECREF(__pyx_temp);
7297 }
7298 __pyx_t_1 = 0;
7299 goto __pyx_L0;
7300
7301 /* "MeshAdaptPUMI/MeshAdapt.pyx":72
7302 * def numIter(self):
7303 * return self.thisptr.numIter
7304 * def adaptMesh(self): # <<<<<<<<<<<<<<
7305 * return self.thisptr.adaptMesh
7306 * def numAdaptSteps(self):
7307*/
7308
7309 /* function exit code */
7310 __pyx_L1_error:;
7311 __Pyx_XDECREF(__pyx_t_1);
7312 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.adaptMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
7313 __pyx_r = NULL;
7314 __pyx_L0:;
7315 __Pyx_XGIVEREF(__pyx_r);
7316 __Pyx_RefNannyFinishContext();
7317 return __pyx_r;
7318}
7319
7320/* "MeshAdaptPUMI/MeshAdapt.pyx":74
7321 * def adaptMesh(self):
7322 * return self.thisptr.adaptMesh
7323 * def numAdaptSteps(self): # <<<<<<<<<<<<<<
7324 * return self.thisptr.numAdaptSteps
7325 * def nAdapt(self):
7326*/
7327
7328/* Python wrapper */
7329static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps(PyObject *__pyx_v_self,
7330#if CYTHON_VECTORCALL
7331PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7332#else
7333PyObject *__pyx_args, PyObject *__pyx_kwds
7334#endif
7335); /*proto*/
7336static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps = {"numAdaptSteps", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7337static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps(PyObject *__pyx_v_self,
7338#if CYTHON_VECTORCALL
7339PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7340#else
7341PyObject *__pyx_args, PyObject *__pyx_kwds
7342#endif
7343) {
7344 #if !CYTHON_VECTORCALL
7345 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7346 #endif
7347 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7348 PyObject *__pyx_r = 0;
7349 __Pyx_RefNannyDeclarations
7350 __Pyx_RefNannySetupContext("numAdaptSteps (wrapper)", 0);
7351 #if !CYTHON_VECTORCALL
7352 #if CYTHON_ASSUME_SAFE_SIZE
7353 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7354 #else
7355 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7356 #endif
7357 #endif
7358 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7359 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("numAdaptSteps", 1, 0, 0, __pyx_nargs); return NULL; }
7360 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7361 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7362 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("numAdaptSteps", __pyx_kwds); return NULL;}
7363 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_12numAdaptSteps(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7364
7365 /* function exit code */
7366 __Pyx_RefNannyFinishContext();
7367 return __pyx_r;
7368}
7369
7370static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_12numAdaptSteps(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7371 PyObject *__pyx_r = NULL;
7372 __Pyx_RefNannyDeclarations
7373 PyObject *__pyx_t_1 = NULL;
7374 int __pyx_lineno = 0;
7375 const char *__pyx_filename = NULL;
7376 int __pyx_clineno = 0;
7377 __Pyx_RefNannySetupContext("numAdaptSteps", 0);
7378
7379 /* "MeshAdaptPUMI/MeshAdapt.pyx":75
7380 * return self.thisptr.adaptMesh
7381 * def numAdaptSteps(self):
7382 * return self.thisptr.numAdaptSteps # <<<<<<<<<<<<<<
7383 * def nAdapt(self):
7384 * return self.thisptr.nAdapt
7385*/
7386 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->numAdaptSteps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
7387 __Pyx_GOTREF(__pyx_t_1);
7388 {
7389 PyObject *__pyx_temp;
7390 {
7391 __pyx_temp = __pyx_r;
7392 __pyx_r = __pyx_t_1;
7393 }
7394 __Pyx_XDECREF(__pyx_temp);
7395 }
7396 __pyx_t_1 = 0;
7397 goto __pyx_L0;
7398
7399 /* "MeshAdaptPUMI/MeshAdapt.pyx":74
7400 * def adaptMesh(self):
7401 * return self.thisptr.adaptMesh
7402 * def numAdaptSteps(self): # <<<<<<<<<<<<<<
7403 * return self.thisptr.numAdaptSteps
7404 * def nAdapt(self):
7405*/
7406
7407 /* function exit code */
7408 __pyx_L1_error:;
7409 __Pyx_XDECREF(__pyx_t_1);
7410 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.numAdaptSteps", __pyx_clineno, __pyx_lineno, __pyx_filename);
7411 __pyx_r = NULL;
7412 __pyx_L0:;
7413 __Pyx_XGIVEREF(__pyx_r);
7414 __Pyx_RefNannyFinishContext();
7415 return __pyx_r;
7416}
7417
7418/* "MeshAdaptPUMI/MeshAdapt.pyx":76
7419 * def numAdaptSteps(self):
7420 * return self.thisptr.numAdaptSteps
7421 * def nAdapt(self): # <<<<<<<<<<<<<<
7422 * return self.thisptr.nAdapt
7423 * def set_nAdapt(self,numberAdapt):
7424*/
7425
7426/* Python wrapper */
7427static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt(PyObject *__pyx_v_self,
7428#if CYTHON_VECTORCALL
7429PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7430#else
7431PyObject *__pyx_args, PyObject *__pyx_kwds
7432#endif
7433); /*proto*/
7434static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt = {"nAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7435static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt(PyObject *__pyx_v_self,
7436#if CYTHON_VECTORCALL
7437PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7438#else
7439PyObject *__pyx_args, PyObject *__pyx_kwds
7440#endif
7441) {
7442 #if !CYTHON_VECTORCALL
7443 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7444 #endif
7445 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7446 PyObject *__pyx_r = 0;
7447 __Pyx_RefNannyDeclarations
7448 __Pyx_RefNannySetupContext("nAdapt (wrapper)", 0);
7449 #if !CYTHON_VECTORCALL
7450 #if CYTHON_ASSUME_SAFE_SIZE
7451 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7452 #else
7453 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7454 #endif
7455 #endif
7456 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7457 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("nAdapt", 1, 0, 0, __pyx_nargs); return NULL; }
7458 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7459 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7460 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("nAdapt", __pyx_kwds); return NULL;}
7461 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_14nAdapt(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7462
7463 /* function exit code */
7464 __Pyx_RefNannyFinishContext();
7465 return __pyx_r;
7466}
7467
7468static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_14nAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7469 PyObject *__pyx_r = NULL;
7470 __Pyx_RefNannyDeclarations
7471 PyObject *__pyx_t_1 = NULL;
7472 int __pyx_lineno = 0;
7473 const char *__pyx_filename = NULL;
7474 int __pyx_clineno = 0;
7475 __Pyx_RefNannySetupContext("nAdapt", 0);
7476
7477 /* "MeshAdaptPUMI/MeshAdapt.pyx":77
7478 * return self.thisptr.numAdaptSteps
7479 * def nAdapt(self):
7480 * return self.thisptr.nAdapt # <<<<<<<<<<<<<<
7481 * def set_nAdapt(self,numberAdapt):
7482 * return self.thisptr.set_nAdapt(numberAdapt)
7483*/
7484 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->nAdapt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
7485 __Pyx_GOTREF(__pyx_t_1);
7486 {
7487 PyObject *__pyx_temp;
7488 {
7489 __pyx_temp = __pyx_r;
7490 __pyx_r = __pyx_t_1;
7491 }
7492 __Pyx_XDECREF(__pyx_temp);
7493 }
7494 __pyx_t_1 = 0;
7495 goto __pyx_L0;
7496
7497 /* "MeshAdaptPUMI/MeshAdapt.pyx":76
7498 * def numAdaptSteps(self):
7499 * return self.thisptr.numAdaptSteps
7500 * def nAdapt(self): # <<<<<<<<<<<<<<
7501 * return self.thisptr.nAdapt
7502 * def set_nAdapt(self,numberAdapt):
7503*/
7504
7505 /* function exit code */
7506 __pyx_L1_error:;
7507 __Pyx_XDECREF(__pyx_t_1);
7508 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.nAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
7509 __pyx_r = NULL;
7510 __pyx_L0:;
7511 __Pyx_XGIVEREF(__pyx_r);
7512 __Pyx_RefNannyFinishContext();
7513 return __pyx_r;
7514}
7515
7516/* "MeshAdaptPUMI/MeshAdapt.pyx":78
7517 * def nAdapt(self):
7518 * return self.thisptr.nAdapt
7519 * def set_nAdapt(self,numberAdapt): # <<<<<<<<<<<<<<
7520 * return self.thisptr.set_nAdapt(numberAdapt)
7521 * def isReconstructed(self):
7522*/
7523
7524/* Python wrapper */
7525static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt(PyObject *__pyx_v_self,
7526#if CYTHON_VECTORCALL
7527PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7528#else
7529PyObject *__pyx_args, PyObject *__pyx_kwds
7530#endif
7531); /*proto*/
7532static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt = {"set_nAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7533static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt(PyObject *__pyx_v_self,
7534#if CYTHON_VECTORCALL
7535PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7536#else
7537PyObject *__pyx_args, PyObject *__pyx_kwds
7538#endif
7539) {
7540 PyObject *__pyx_v_numberAdapt = 0;
7541 #if !CYTHON_VECTORCALL
7542 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7543 #endif
7544 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7545 PyObject* values[1] = {0};
7546 int __pyx_lineno = 0;
7547 const char *__pyx_filename = NULL;
7548 int __pyx_clineno = 0;
7549 PyObject *__pyx_r = 0;
7550 __Pyx_RefNannyDeclarations
7551 __Pyx_RefNannySetupContext("set_nAdapt (wrapper)", 0);
7552 #if !CYTHON_VECTORCALL
7553 #if CYTHON_ASSUME_SAFE_SIZE
7554 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7555 #else
7556 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7557 #endif
7558 #endif
7559 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7560 {
7561 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_numberAdapt,0};
7562 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7563 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 78, __pyx_L3_error)
7564 if (__pyx_kwds_len > 0) {
7565 switch (__pyx_nargs) {
7566 case 1:
7567 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7568 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 78, __pyx_L3_error)
7569 CYTHON_FALLTHROUGH;
7570 case 0: break;
7571 default: goto __pyx_L5_argtuple_error;
7572 }
7573 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7574 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_nAdapt", 0) < (0)) __PYX_ERR(0, 78, __pyx_L3_error)
7575 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
7576 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_nAdapt", 1, 1, 1, i); __PYX_ERR(0, 78, __pyx_L3_error) }
7577 }
7578 } else if (unlikely(__pyx_nargs != 1)) {
7579 goto __pyx_L5_argtuple_error;
7580 } else {
7581 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7582 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 78, __pyx_L3_error)
7583 }
7584 __pyx_v_numberAdapt = values[0];
7585 }
7586 goto __pyx_L6_skip;
7587 __pyx_L5_argtuple_error:;
7588 __Pyx_RaiseArgtupleInvalid("set_nAdapt", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 78, __pyx_L3_error)
7589 __pyx_L6_skip:;
7590 goto __pyx_L4_argument_unpacking_done;
7591 __pyx_L3_error:;
7592 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7593 Py_XDECREF(values[__pyx_temp]);
7594 }
7595 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.set_nAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
7596 __Pyx_RefNannyFinishContext();
7597 return NULL;
7598 __pyx_L4_argument_unpacking_done:;
7599 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_16set_nAdapt(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_numberAdapt);
7600
7601 /* function exit code */
7602 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7603 Py_XDECREF(values[__pyx_temp]);
7604 }
7605 __Pyx_RefNannyFinishContext();
7606 return __pyx_r;
7607}
7608
7609static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_16set_nAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_numberAdapt) {
7610 PyObject *__pyx_r = NULL;
7611 __Pyx_RefNannyDeclarations
7612 int __pyx_t_1;
7613 PyObject *__pyx_t_2 = NULL;
7614 int __pyx_lineno = 0;
7615 const char *__pyx_filename = NULL;
7616 int __pyx_clineno = 0;
7617 __Pyx_RefNannySetupContext("set_nAdapt", 0);
7618
7619 /* "MeshAdaptPUMI/MeshAdapt.pyx":79
7620 * return self.thisptr.nAdapt
7621 * def set_nAdapt(self,numberAdapt):
7622 * return self.thisptr.set_nAdapt(numberAdapt) # <<<<<<<<<<<<<<
7623 * def isReconstructed(self):
7624 * return self.thisptr.isReconstructed
7625*/
7626 __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_numberAdapt); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L1_error)
7627 __pyx_t_2 = __Pyx_void_to_None(__pyx_v_self->thisptr->set_nAdapt(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error)
7628 __Pyx_GOTREF(__pyx_t_2);
7629
7630 {
7631 PyObject *__pyx_temp;
7632 {
7633 __pyx_temp = __pyx_r;
7634 __pyx_r = __pyx_t_2;
7635 }
7636 __Pyx_XDECREF(__pyx_temp);
7637 }
7638 __pyx_t_2 = 0;
7639 goto __pyx_L0;
7640
7641 /* "MeshAdaptPUMI/MeshAdapt.pyx":78
7642 * def nAdapt(self):
7643 * return self.thisptr.nAdapt
7644 * def set_nAdapt(self,numberAdapt): # <<<<<<<<<<<<<<
7645 * return self.thisptr.set_nAdapt(numberAdapt)
7646 * def isReconstructed(self):
7647*/
7648
7649 /* function exit code */
7650 __pyx_L1_error:;
7651 __Pyx_XDECREF(__pyx_t_2);
7652 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.set_nAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
7653 __pyx_r = NULL;
7654 __pyx_L0:;
7655 __Pyx_XGIVEREF(__pyx_r);
7656 __Pyx_RefNannyFinishContext();
7657 return __pyx_r;
7658}
7659
7660/* "MeshAdaptPUMI/MeshAdapt.pyx":80
7661 * def set_nAdapt(self,numberAdapt):
7662 * return self.thisptr.set_nAdapt(numberAdapt)
7663 * def isReconstructed(self): # <<<<<<<<<<<<<<
7664 * return self.thisptr.isReconstructed
7665 * def loadModelAndMesh(self, geomName, meshName):
7666*/
7667
7668/* Python wrapper */
7669static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed(PyObject *__pyx_v_self,
7670#if CYTHON_VECTORCALL
7671PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7672#else
7673PyObject *__pyx_args, PyObject *__pyx_kwds
7674#endif
7675); /*proto*/
7676static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed = {"isReconstructed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7677static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed(PyObject *__pyx_v_self,
7678#if CYTHON_VECTORCALL
7679PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7680#else
7681PyObject *__pyx_args, PyObject *__pyx_kwds
7682#endif
7683) {
7684 #if !CYTHON_VECTORCALL
7685 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7686 #endif
7687 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7688 PyObject *__pyx_r = 0;
7689 __Pyx_RefNannyDeclarations
7690 __Pyx_RefNannySetupContext("isReconstructed (wrapper)", 0);
7691 #if !CYTHON_VECTORCALL
7692 #if CYTHON_ASSUME_SAFE_SIZE
7693 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7694 #else
7695 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7696 #endif
7697 #endif
7698 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7699 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("isReconstructed", 1, 0, 0, __pyx_nargs); return NULL; }
7700 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7701 if (unlikely(__pyx_kwds_len < 0)) return NULL;
7702 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("isReconstructed", __pyx_kwds); return NULL;}
7703 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_18isReconstructed(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
7704
7705 /* function exit code */
7706 __Pyx_RefNannyFinishContext();
7707 return __pyx_r;
7708}
7709
7710static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_18isReconstructed(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
7711 PyObject *__pyx_r = NULL;
7712 __Pyx_RefNannyDeclarations
7713 PyObject *__pyx_t_1 = NULL;
7714 int __pyx_lineno = 0;
7715 const char *__pyx_filename = NULL;
7716 int __pyx_clineno = 0;
7717 __Pyx_RefNannySetupContext("isReconstructed", 0);
7718
7719 /* "MeshAdaptPUMI/MeshAdapt.pyx":81
7720 * return self.thisptr.set_nAdapt(numberAdapt)
7721 * def isReconstructed(self):
7722 * return self.thisptr.isReconstructed # <<<<<<<<<<<<<<
7723 * def loadModelAndMesh(self, geomName, meshName):
7724 * return self.thisptr.loadModelAndMesh(geomName, meshName)
7725*/
7726 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->isReconstructed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error)
7727 __Pyx_GOTREF(__pyx_t_1);
7728 {
7729 PyObject *__pyx_temp;
7730 {
7731 __pyx_temp = __pyx_r;
7732 __pyx_r = __pyx_t_1;
7733 }
7734 __Pyx_XDECREF(__pyx_temp);
7735 }
7736 __pyx_t_1 = 0;
7737 goto __pyx_L0;
7738
7739 /* "MeshAdaptPUMI/MeshAdapt.pyx":80
7740 * def set_nAdapt(self,numberAdapt):
7741 * return self.thisptr.set_nAdapt(numberAdapt)
7742 * def isReconstructed(self): # <<<<<<<<<<<<<<
7743 * return self.thisptr.isReconstructed
7744 * def loadModelAndMesh(self, geomName, meshName):
7745*/
7746
7747 /* function exit code */
7748 __pyx_L1_error:;
7749 __Pyx_XDECREF(__pyx_t_1);
7750 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.isReconstructed", __pyx_clineno, __pyx_lineno, __pyx_filename);
7751 __pyx_r = NULL;
7752 __pyx_L0:;
7753 __Pyx_XGIVEREF(__pyx_r);
7754 __Pyx_RefNannyFinishContext();
7755 return __pyx_r;
7756}
7757
7758/* "MeshAdaptPUMI/MeshAdapt.pyx":82
7759 * def isReconstructed(self):
7760 * return self.thisptr.isReconstructed
7761 * def loadModelAndMesh(self, geomName, meshName): # <<<<<<<<<<<<<<
7762 * return self.thisptr.loadModelAndMesh(geomName, meshName)
7763 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
7764*/
7765
7766/* Python wrapper */
7767static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh(PyObject *__pyx_v_self,
7768#if CYTHON_VECTORCALL
7769PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7770#else
7771PyObject *__pyx_args, PyObject *__pyx_kwds
7772#endif
7773); /*proto*/
7774static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh = {"loadModelAndMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7775static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh(PyObject *__pyx_v_self,
7776#if CYTHON_VECTORCALL
7777PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7778#else
7779PyObject *__pyx_args, PyObject *__pyx_kwds
7780#endif
7781) {
7782 PyObject *__pyx_v_geomName = 0;
7783 PyObject *__pyx_v_meshName = 0;
7784 #if !CYTHON_VECTORCALL
7785 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7786 #endif
7787 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7788 PyObject* values[2] = {0,0};
7789 int __pyx_lineno = 0;
7790 const char *__pyx_filename = NULL;
7791 int __pyx_clineno = 0;
7792 PyObject *__pyx_r = 0;
7793 __Pyx_RefNannyDeclarations
7794 __Pyx_RefNannySetupContext("loadModelAndMesh (wrapper)", 0);
7795 #if !CYTHON_VECTORCALL
7796 #if CYTHON_ASSUME_SAFE_SIZE
7797 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7798 #else
7799 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7800 #endif
7801 #endif
7802 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7803 {
7804 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_geomName,&__pyx_mstate_global->__pyx_n_u_meshName,0};
7805 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7806 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
7807 if (__pyx_kwds_len > 0) {
7808 switch (__pyx_nargs) {
7809 case 2:
7810 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7811 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 82, __pyx_L3_error)
7812 CYTHON_FALLTHROUGH;
7813 case 1:
7814 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7815 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 82, __pyx_L3_error)
7816 CYTHON_FALLTHROUGH;
7817 case 0: break;
7818 default: goto __pyx_L5_argtuple_error;
7819 }
7820 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7821 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "loadModelAndMesh", 0) < (0)) __PYX_ERR(0, 82, __pyx_L3_error)
7822 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
7823 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("loadModelAndMesh", 1, 2, 2, i); __PYX_ERR(0, 82, __pyx_L3_error) }
7824 }
7825 } else if (unlikely(__pyx_nargs != 2)) {
7826 goto __pyx_L5_argtuple_error;
7827 } else {
7828 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7829 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 82, __pyx_L3_error)
7830 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7831 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 82, __pyx_L3_error)
7832 }
7833 __pyx_v_geomName = values[0];
7834 __pyx_v_meshName = values[1];
7835 }
7836 goto __pyx_L6_skip;
7837 __pyx_L5_argtuple_error:;
7838 __Pyx_RaiseArgtupleInvalid("loadModelAndMesh", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
7839 __pyx_L6_skip:;
7840 goto __pyx_L4_argument_unpacking_done;
7841 __pyx_L3_error:;
7842 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7843 Py_XDECREF(values[__pyx_temp]);
7844 }
7845 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.loadModelAndMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
7846 __Pyx_RefNannyFinishContext();
7847 return NULL;
7848 __pyx_L4_argument_unpacking_done:;
7849 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_20loadModelAndMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_geomName, __pyx_v_meshName);
7850
7851 /* function exit code */
7852 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7853 Py_XDECREF(values[__pyx_temp]);
7854 }
7855 __Pyx_RefNannyFinishContext();
7856 return __pyx_r;
7857}
7858
7859static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_20loadModelAndMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_geomName, PyObject *__pyx_v_meshName) {
7860 PyObject *__pyx_r = NULL;
7861 __Pyx_RefNannyDeclarations
7862 char *__pyx_t_1;
7863 char *__pyx_t_2;
7864 PyObject *__pyx_t_3 = NULL;
7865 int __pyx_lineno = 0;
7866 const char *__pyx_filename = NULL;
7867 int __pyx_clineno = 0;
7868 __Pyx_RefNannySetupContext("loadModelAndMesh", 0);
7869
7870 /* "MeshAdaptPUMI/MeshAdapt.pyx":83
7871 * return self.thisptr.isReconstructed
7872 * def loadModelAndMesh(self, geomName, meshName):
7873 * return self.thisptr.loadModelAndMesh(geomName, meshName) # <<<<<<<<<<<<<<
7874 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
7875 * boxDim = np.ascontiguousarray(boxDim)
7876*/
7877 __pyx_t_1 = __Pyx_PyObject_AsWritableString(__pyx_v_geomName); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(0, 83, __pyx_L1_error)
7878 __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_v_meshName); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 83, __pyx_L1_error)
7879 __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->loadModelAndMesh(__pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 83, __pyx_L1_error)
7880 __Pyx_GOTREF(__pyx_t_3);
7881
7882
7883 {
7884 PyObject *__pyx_temp;
7885 {
7886 __pyx_temp = __pyx_r;
7887 __pyx_r = __pyx_t_3;
7888 }
7889 __Pyx_XDECREF(__pyx_temp);
7890 }
7891 __pyx_t_3 = 0;
7892 goto __pyx_L0;
7893
7894 /* "MeshAdaptPUMI/MeshAdapt.pyx":82
7895 * def isReconstructed(self):
7896 * return self.thisptr.isReconstructed
7897 * def loadModelAndMesh(self, geomName, meshName): # <<<<<<<<<<<<<<
7898 * return self.thisptr.loadModelAndMesh(geomName, meshName)
7899 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
7900*/
7901
7902 /* function exit code */
7903 __pyx_L1_error:;
7904 __Pyx_XDECREF(__pyx_t_3);
7905 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.loadModelAndMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
7906 __pyx_r = NULL;
7907 __pyx_L0:;
7908 __Pyx_XGIVEREF(__pyx_r);
7909 __Pyx_RefNannyFinishContext();
7910 return __pyx_r;
7911}
7912
7913/* "MeshAdaptPUMI/MeshAdapt.pyx":84
7914 * def loadModelAndMesh(self, geomName, meshName):
7915 * return self.thisptr.loadModelAndMesh(geomName, meshName)
7916 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius): # <<<<<<<<<<<<<<
7917 * boxDim = np.ascontiguousarray(boxDim)
7918 * sphereCenter = np.ascontiguousarray(sphereCenter)
7919*/
7920
7921/* Python wrapper */
7922static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic(PyObject *__pyx_v_self,
7923#if CYTHON_VECTORCALL
7924PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7925#else
7926PyObject *__pyx_args, PyObject *__pyx_kwds
7927#endif
7928); /*proto*/
7929static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic = {"loadMeshForAnalytic", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
7930static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic(PyObject *__pyx_v_self,
7931#if CYTHON_VECTORCALL
7932PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7933#else
7934PyObject *__pyx_args, PyObject *__pyx_kwds
7935#endif
7936) {
7937 PyObject *__pyx_v_meshName = 0;
7938 PyArrayObject *__pyx_v_boxDim = 0;
7939 PyArrayObject *__pyx_v_sphereCenter = 0;
7940 double __pyx_v_sphereRadius;
7941 #if !CYTHON_VECTORCALL
7942 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7943 #endif
7944 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7945 PyObject* values[4] = {0,0,0,0};
7946 int __pyx_lineno = 0;
7947 const char *__pyx_filename = NULL;
7948 int __pyx_clineno = 0;
7949 PyObject *__pyx_r = 0;
7950 __Pyx_RefNannyDeclarations
7951 __Pyx_RefNannySetupContext("loadMeshForAnalytic (wrapper)", 0);
7952 #if !CYTHON_VECTORCALL
7953 #if CYTHON_ASSUME_SAFE_SIZE
7954 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7955 #else
7956 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7957 #endif
7958 #endif
7959 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7960 {
7961 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_meshName,&__pyx_mstate_global->__pyx_n_u_boxDim,&__pyx_mstate_global->__pyx_n_u_sphereCenter,&__pyx_mstate_global->__pyx_n_u_sphereRadius,0};
7962 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
7963 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 84, __pyx_L3_error)
7964 if (__pyx_kwds_len > 0) {
7965 switch (__pyx_nargs) {
7966 case 4:
7967 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
7968 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 84, __pyx_L3_error)
7969 CYTHON_FALLTHROUGH;
7970 case 3:
7971 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7972 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 84, __pyx_L3_error)
7973 CYTHON_FALLTHROUGH;
7974 case 2:
7975 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7976 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 84, __pyx_L3_error)
7977 CYTHON_FALLTHROUGH;
7978 case 1:
7979 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7980 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 84, __pyx_L3_error)
7981 CYTHON_FALLTHROUGH;
7982 case 0: break;
7983 default: goto __pyx_L5_argtuple_error;
7984 }
7985 const Py_ssize_t kwd_pos_args = __pyx_nargs;
7986 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "loadMeshForAnalytic", 0) < (0)) __PYX_ERR(0, 84, __pyx_L3_error)
7987 for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
7988 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("loadMeshForAnalytic", 1, 4, 4, i); __PYX_ERR(0, 84, __pyx_L3_error) }
7989 }
7990 } else if (unlikely(__pyx_nargs != 4)) {
7991 goto __pyx_L5_argtuple_error;
7992 } else {
7993 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
7994 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 84, __pyx_L3_error)
7995 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
7996 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 84, __pyx_L3_error)
7997 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
7998 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 84, __pyx_L3_error)
7999 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
8000 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 84, __pyx_L3_error)
8001 }
8002 __pyx_v_meshName = values[0];
8003 __pyx_v_boxDim = ((PyArrayObject *)values[1]);
8004 __pyx_v_sphereCenter = ((PyArrayObject *)values[2]);
8005 __pyx_v_sphereRadius = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_sphereRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error)
8006 }
8007 goto __pyx_L6_skip;
8008 __pyx_L5_argtuple_error:;
8009 __Pyx_RaiseArgtupleInvalid("loadMeshForAnalytic", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 84, __pyx_L3_error)
8010 __pyx_L6_skip:;
8011 goto __pyx_L4_argument_unpacking_done;
8012 __pyx_L3_error:;
8013 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8014 Py_XDECREF(values[__pyx_temp]);
8015 }
8016 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.loadMeshForAnalytic", __pyx_clineno, __pyx_lineno, __pyx_filename);
8017 __Pyx_RefNannyFinishContext();
8018 return NULL;
8019 __pyx_L4_argument_unpacking_done:;
8020 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_boxDim), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "boxDim", 0))) __PYX_ERR(0, 84, __pyx_L1_error)
8021 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sphereCenter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "sphereCenter", 0))) __PYX_ERR(0, 84, __pyx_L1_error)
8022 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_22loadMeshForAnalytic(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_meshName, __pyx_v_boxDim, __pyx_v_sphereCenter, __pyx_v_sphereRadius);
8023
8024 /* function exit code */
8025 goto __pyx_L0;
8026 __pyx_L1_error:;
8027 __pyx_r = NULL;
8028 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8029 Py_XDECREF(values[__pyx_temp]);
8030 }
8031 goto __pyx_L7_cleaned_up;
8032 __pyx_L0:;
8033 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8034 Py_XDECREF(values[__pyx_temp]);
8035 }
8036 __pyx_L7_cleaned_up:;
8037
8038 __Pyx_RefNannyFinishContext();
8039 return __pyx_r;
8040}
8041
8042static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_22loadMeshForAnalytic(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_meshName, PyArrayObject *__pyx_v_boxDim, PyArrayObject *__pyx_v_sphereCenter, double __pyx_v_sphereRadius) {
8043 __Pyx_LocalBuf_ND __pyx_pybuffernd_boxDim;
8044 __Pyx_Buffer __pyx_pybuffer_boxDim;
8045 __Pyx_LocalBuf_ND __pyx_pybuffernd_sphereCenter;
8046 __Pyx_Buffer __pyx_pybuffer_sphereCenter;
8047 PyObject *__pyx_r = NULL;
8048 __Pyx_RefNannyDeclarations
8049 PyObject *__pyx_t_1 = NULL;
8050 PyObject *__pyx_t_2 = NULL;
8051 PyObject *__pyx_t_3 = NULL;
8052 PyObject *__pyx_t_4 = NULL;
8053 size_t __pyx_t_5;
8054 int __pyx_t_6;
8055 PyObject *__pyx_t_7 = NULL;
8056 PyObject *__pyx_t_8 = NULL;
8057 PyObject *__pyx_t_9 = NULL;
8058 double __pyx_t_10;
8059 char *__pyx_t_11;
8060 Py_ssize_t __pyx_t_12;
8061 Py_ssize_t __pyx_t_13;
8062 int __pyx_lineno = 0;
8063 const char *__pyx_filename = NULL;
8064 int __pyx_clineno = 0;
8065 __Pyx_RefNannySetupContext("loadMeshForAnalytic", 0);
8066 __Pyx_INCREF((PyObject *)__pyx_v_boxDim);
8067 __Pyx_INCREF((PyObject *)__pyx_v_sphereCenter);
8068
8069 __pyx_pybuffer_boxDim.pybuffer.buf = NULL;
8070 __pyx_pybuffer_boxDim.refcount = 0;
8071 __pyx_pybuffernd_boxDim.data = NULL;
8072 __pyx_pybuffernd_boxDim.rcbuffer = &__pyx_pybuffer_boxDim;
8073 __pyx_pybuffer_sphereCenter.pybuffer.buf = NULL;
8074 __pyx_pybuffer_sphereCenter.refcount = 0;
8075 __pyx_pybuffernd_sphereCenter.data = NULL;
8076 __pyx_pybuffernd_sphereCenter.rcbuffer = &__pyx_pybuffer_sphereCenter;
8077 {
8078 __Pyx_BufFmt_StackElem __pyx_stack[1];
8079 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer, (PyObject*)__pyx_v_boxDim, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 84, __pyx_L1_error)
8080 }
8081 __pyx_pybuffernd_boxDim.diminfo[0].strides = __pyx_pybuffernd_boxDim.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxDim.diminfo[0].shape = __pyx_pybuffernd_boxDim.rcbuffer->pybuffer.shape[0];
8082 {
8083 __Pyx_BufFmt_StackElem __pyx_stack[1];
8084 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)__pyx_v_sphereCenter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 84, __pyx_L1_error)
8085 }
8086 __pyx_pybuffernd_sphereCenter.diminfo[0].strides = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sphereCenter.diminfo[0].shape = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.shape[0];
8087
8088 /* "MeshAdaptPUMI/MeshAdapt.pyx":85
8089 * return self.thisptr.loadModelAndMesh(geomName, meshName)
8090 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
8091 * boxDim = np.ascontiguousarray(boxDim) # <<<<<<<<<<<<<<
8092 * sphereCenter = np.ascontiguousarray(sphereCenter)
8093 * sphereRadius = np.ascontiguousarray(sphereRadius)
8094*/
8095 __pyx_t_2 = NULL;
8096 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 85, __pyx_L1_error)
8097 __Pyx_GOTREF(__pyx_t_3);
8098 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 85, __pyx_L1_error)
8099 __Pyx_GOTREF(__pyx_t_4);
8100 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8101 __pyx_t_5 = 1;
8102 #if CYTHON_UNPACK_METHODS
8103 if (unlikely(PyMethod_Check(__pyx_t_4))) {
8104 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
8105 assert(__pyx_t_2);
8106 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
8107 __Pyx_INCREF(__pyx_t_2);
8108 __Pyx_INCREF(__pyx__function);
8109 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
8110 __pyx_t_5 = 0;
8111 }
8112 #endif
8113 {
8114 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_boxDim)};
8115 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
8116 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8117 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8118 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
8119 __Pyx_GOTREF(__pyx_t_1);
8120 }
8121 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 85, __pyx_L1_error)
8122 {
8123 __Pyx_BufFmt_StackElem __pyx_stack[1];
8124 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer);
8125 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
8126 if (unlikely(__pyx_t_6 < 0)) {
8127 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
8128 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer, (PyObject*)__pyx_v_boxDim, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
8129 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
8130 __Pyx_RaiseBufferFallbackError();
8131 } else {
8132 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
8133 }
8134 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
8135 }
8136 __pyx_pybuffernd_boxDim.diminfo[0].strides = __pyx_pybuffernd_boxDim.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxDim.diminfo[0].shape = __pyx_pybuffernd_boxDim.rcbuffer->pybuffer.shape[0];
8137 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 85, __pyx_L1_error)
8138 }
8139 __Pyx_DECREF_SET(__pyx_v_boxDim, ((PyArrayObject *)__pyx_t_1));
8140 __pyx_t_1 = 0;
8141
8142 /* "MeshAdaptPUMI/MeshAdapt.pyx":86
8143 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
8144 * boxDim = np.ascontiguousarray(boxDim)
8145 * sphereCenter = np.ascontiguousarray(sphereCenter) # <<<<<<<<<<<<<<
8146 * sphereRadius = np.ascontiguousarray(sphereRadius)
8147 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
8148*/
8149 __pyx_t_4 = NULL;
8150 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error)
8151 __Pyx_GOTREF(__pyx_t_2);
8152 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
8153 __Pyx_GOTREF(__pyx_t_3);
8154 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8155 __pyx_t_5 = 1;
8156 #if CYTHON_UNPACK_METHODS
8157 if (unlikely(PyMethod_Check(__pyx_t_3))) {
8158 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
8159 assert(__pyx_t_4);
8160 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
8161 __Pyx_INCREF(__pyx_t_4);
8162 __Pyx_INCREF(__pyx__function);
8163 __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
8164 __pyx_t_5 = 0;
8165 }
8166 #endif
8167 {
8168 PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_sphereCenter)};
8169 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
8170 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
8171 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8172 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
8173 __Pyx_GOTREF(__pyx_t_1);
8174 }
8175 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 86, __pyx_L1_error)
8176 {
8177 __Pyx_BufFmt_StackElem __pyx_stack[1];
8178 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8179 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
8180 if (unlikely(__pyx_t_6 < 0)) {
8181 __Pyx_PyErr_FetchException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
8182 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)__pyx_v_sphereCenter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
8183 Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7);
8184 __Pyx_RaiseBufferFallbackError();
8185 } else {
8186 __Pyx_PyErr_RestoreException(__pyx_t_9, __pyx_t_8, __pyx_t_7);
8187 }
8188 __pyx_t_9 = __pyx_t_8 = __pyx_t_7 = 0;
8189 }
8190 __pyx_pybuffernd_sphereCenter.diminfo[0].strides = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sphereCenter.diminfo[0].shape = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.shape[0];
8191 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 86, __pyx_L1_error)
8192 }
8193 __Pyx_DECREF_SET(__pyx_v_sphereCenter, ((PyArrayObject *)__pyx_t_1));
8194 __pyx_t_1 = 0;
8195
8196 /* "MeshAdaptPUMI/MeshAdapt.pyx":87
8197 * boxDim = np.ascontiguousarray(boxDim)
8198 * sphereCenter = np.ascontiguousarray(sphereCenter)
8199 * sphereRadius = np.ascontiguousarray(sphereRadius) # <<<<<<<<<<<<<<
8200 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
8201 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter):
8202*/
8203 __pyx_t_3 = NULL;
8204 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
8205 __Pyx_GOTREF(__pyx_t_4);
8206 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error)
8207 __Pyx_GOTREF(__pyx_t_2);
8208 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8209 __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sphereRadius); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
8210 __Pyx_GOTREF(__pyx_t_4);
8211 __pyx_t_5 = 1;
8212 #if CYTHON_UNPACK_METHODS
8213 if (unlikely(PyMethod_Check(__pyx_t_2))) {
8214 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8215 assert(__pyx_t_3);
8216 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
8217 __Pyx_INCREF(__pyx_t_3);
8218 __Pyx_INCREF(__pyx__function);
8219 __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
8220 __pyx_t_5 = 0;
8221 }
8222 #endif
8223 {
8224 PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
8225 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
8226 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8227 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8228 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8229 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error)
8230 __Pyx_GOTREF(__pyx_t_1);
8231 }
8232 __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error)
8233 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8234 __pyx_v_sphereRadius = __pyx_t_10;
8235
8236 /* "MeshAdaptPUMI/MeshAdapt.pyx":88
8237 * sphereCenter = np.ascontiguousarray(sphereCenter)
8238 * sphereRadius = np.ascontiguousarray(sphereRadius)
8239 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius) # <<<<<<<<<<<<<<
8240 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter):
8241 * sphereCenter = np.ascontiguousarray(sphereCenter)
8242*/
8243 __pyx_t_11 = __Pyx_PyObject_AsWritableString(__pyx_v_meshName); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(0, 88, __pyx_L1_error)
8244 __pyx_t_12 = 0;
8245 __pyx_t_6 = -1;
8246 if (__pyx_t_12 < 0) {
8247 __pyx_t_12 += __pyx_pybuffernd_boxDim.diminfo[0].shape;
8248 if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 0;
8249 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_boxDim.diminfo[0].shape)) __pyx_t_6 = 0;
8250 if (unlikely(__pyx_t_6 != -1)) {
8251 __Pyx_RaiseBufferIndexError(__pyx_t_6);
8252 __PYX_ERR(0, 88, __pyx_L1_error)
8253 }
8254 __pyx_t_13 = 0;
8255 __pyx_t_6 = -1;
8256 if (__pyx_t_13 < 0) {
8257 __pyx_t_13 += __pyx_pybuffernd_sphereCenter.diminfo[0].shape;
8258 if (unlikely(__pyx_t_13 < 0)) __pyx_t_6 = 0;
8259 } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_sphereCenter.diminfo[0].shape)) __pyx_t_6 = 0;
8260 if (unlikely(__pyx_t_6 != -1)) {
8261 __Pyx_RaiseBufferIndexError(__pyx_t_6);
8262 __PYX_ERR(0, 88, __pyx_L1_error)
8263 }
8264 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->loadMeshForAnalytic(__pyx_t_11, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_boxDim.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_boxDim.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_sphereCenter.diminfo[0].strides))), __pyx_v_sphereRadius)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
8265 __Pyx_GOTREF(__pyx_t_1);
8266
8267 {
8268 PyObject *__pyx_temp;
8269 {
8270 __pyx_temp = __pyx_r;
8271 __pyx_r = __pyx_t_1;
8272 }
8273 __Pyx_XDECREF(__pyx_temp);
8274 }
8275 __pyx_t_1 = 0;
8276 goto __pyx_L0;
8277
8278 /* "MeshAdaptPUMI/MeshAdapt.pyx":84
8279 * def loadModelAndMesh(self, geomName, meshName):
8280 * return self.thisptr.loadModelAndMesh(geomName, meshName)
8281 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius): # <<<<<<<<<<<<<<
8282 * boxDim = np.ascontiguousarray(boxDim)
8283 * sphereCenter = np.ascontiguousarray(sphereCenter)
8284*/
8285
8286 /* function exit code */
8287 __pyx_L1_error:;
8288 __Pyx_XDECREF(__pyx_t_1);
8289 __Pyx_XDECREF(__pyx_t_2);
8290 __Pyx_XDECREF(__pyx_t_3);
8291 __Pyx_XDECREF(__pyx_t_4);
8292 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
8293 __Pyx_PyThreadState_declare
8294 __Pyx_PyThreadState_assign
8295 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
8296 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer);
8297 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8298 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
8299 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.loadMeshForAnalytic", __pyx_clineno, __pyx_lineno, __pyx_filename);
8300 __pyx_r = NULL;
8301 goto __pyx_L2;
8302 __pyx_L0:;
8303 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxDim.rcbuffer->pybuffer);
8304 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8305 __pyx_L2:;
8306
8307
8308
8309
8310 __Pyx_XDECREF((PyObject *)__pyx_v_boxDim);
8311 __Pyx_XDECREF((PyObject *)__pyx_v_sphereCenter);
8312
8313 __Pyx_XGIVEREF(__pyx_r);
8314 __Pyx_RefNannyFinishContext();
8315 return __pyx_r;
8316}
8317
8318/* "MeshAdaptPUMI/MeshAdapt.pyx":89
8319 * sphereRadius = np.ascontiguousarray(sphereRadius)
8320 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
8321 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter): # <<<<<<<<<<<<<<
8322 * sphereCenter = np.ascontiguousarray(sphereCenter)
8323 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8324*/
8325
8326/* Python wrapper */
8327static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates(PyObject *__pyx_v_self,
8328#if CYTHON_VECTORCALL
8329PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8330#else
8331PyObject *__pyx_args, PyObject *__pyx_kwds
8332#endif
8333); /*proto*/
8334static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates = {"updateSphereCoordinates", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8335static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates(PyObject *__pyx_v_self,
8336#if CYTHON_VECTORCALL
8337PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8338#else
8339PyObject *__pyx_args, PyObject *__pyx_kwds
8340#endif
8341) {
8342 PyArrayObject *__pyx_v_sphereCenter = 0;
8343 #if !CYTHON_VECTORCALL
8344 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8345 #endif
8346 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8347 PyObject* values[1] = {0};
8348 int __pyx_lineno = 0;
8349 const char *__pyx_filename = NULL;
8350 int __pyx_clineno = 0;
8351 PyObject *__pyx_r = 0;
8352 __Pyx_RefNannyDeclarations
8353 __Pyx_RefNannySetupContext("updateSphereCoordinates (wrapper)", 0);
8354 #if !CYTHON_VECTORCALL
8355 #if CYTHON_ASSUME_SAFE_SIZE
8356 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8357 #else
8358 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8359 #endif
8360 #endif
8361 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8362 {
8363 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_sphereCenter,0};
8364 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8365 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 89, __pyx_L3_error)
8366 if (__pyx_kwds_len > 0) {
8367 switch (__pyx_nargs) {
8368 case 1:
8369 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8370 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 89, __pyx_L3_error)
8371 CYTHON_FALLTHROUGH;
8372 case 0: break;
8373 default: goto __pyx_L5_argtuple_error;
8374 }
8375 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8376 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateSphereCoordinates", 0) < (0)) __PYX_ERR(0, 89, __pyx_L3_error)
8377 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
8378 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateSphereCoordinates", 1, 1, 1, i); __PYX_ERR(0, 89, __pyx_L3_error) }
8379 }
8380 } else if (unlikely(__pyx_nargs != 1)) {
8381 goto __pyx_L5_argtuple_error;
8382 } else {
8383 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8384 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 89, __pyx_L3_error)
8385 }
8386 __pyx_v_sphereCenter = ((PyArrayObject *)values[0]);
8387 }
8388 goto __pyx_L6_skip;
8389 __pyx_L5_argtuple_error:;
8390 __Pyx_RaiseArgtupleInvalid("updateSphereCoordinates", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 89, __pyx_L3_error)
8391 __pyx_L6_skip:;
8392 goto __pyx_L4_argument_unpacking_done;
8393 __pyx_L3_error:;
8394 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8395 Py_XDECREF(values[__pyx_temp]);
8396 }
8397 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateSphereCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename);
8398 __Pyx_RefNannyFinishContext();
8399 return NULL;
8400 __pyx_L4_argument_unpacking_done:;
8401 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sphereCenter), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "sphereCenter", 0))) __PYX_ERR(0, 89, __pyx_L1_error)
8402 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_24updateSphereCoordinates(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_sphereCenter);
8403
8404 /* function exit code */
8405 goto __pyx_L0;
8406 __pyx_L1_error:;
8407 __pyx_r = NULL;
8408 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8409 Py_XDECREF(values[__pyx_temp]);
8410 }
8411 goto __pyx_L7_cleaned_up;
8412 __pyx_L0:;
8413 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8414 Py_XDECREF(values[__pyx_temp]);
8415 }
8416 __pyx_L7_cleaned_up:;
8417 __Pyx_RefNannyFinishContext();
8418 return __pyx_r;
8419}
8420
8421static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_24updateSphereCoordinates(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_sphereCenter) {
8422 __Pyx_LocalBuf_ND __pyx_pybuffernd_sphereCenter;
8423 __Pyx_Buffer __pyx_pybuffer_sphereCenter;
8424 PyObject *__pyx_r = NULL;
8425 __Pyx_RefNannyDeclarations
8426 PyObject *__pyx_t_1 = NULL;
8427 PyObject *__pyx_t_2 = NULL;
8428 PyObject *__pyx_t_3 = NULL;
8429 PyObject *__pyx_t_4 = NULL;
8430 size_t __pyx_t_5;
8431 int __pyx_t_6;
8432 PyObject *__pyx_t_7 = NULL;
8433 PyObject *__pyx_t_8 = NULL;
8434 PyObject *__pyx_t_9 = NULL;
8435 Py_ssize_t __pyx_t_10;
8436 int __pyx_lineno = 0;
8437 const char *__pyx_filename = NULL;
8438 int __pyx_clineno = 0;
8439 __Pyx_RefNannySetupContext("updateSphereCoordinates", 0);
8440 __Pyx_INCREF((PyObject *)__pyx_v_sphereCenter);
8441 __pyx_pybuffer_sphereCenter.pybuffer.buf = NULL;
8442 __pyx_pybuffer_sphereCenter.refcount = 0;
8443 __pyx_pybuffernd_sphereCenter.data = NULL;
8444 __pyx_pybuffernd_sphereCenter.rcbuffer = &__pyx_pybuffer_sphereCenter;
8445 {
8446 __Pyx_BufFmt_StackElem __pyx_stack[1];
8447 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)__pyx_v_sphereCenter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 89, __pyx_L1_error)
8448 }
8449 __pyx_pybuffernd_sphereCenter.diminfo[0].strides = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sphereCenter.diminfo[0].shape = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.shape[0];
8450
8451 /* "MeshAdaptPUMI/MeshAdapt.pyx":90
8452 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
8453 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter):
8454 * sphereCenter = np.ascontiguousarray(sphereCenter) # <<<<<<<<<<<<<<
8455 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8456 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
8457*/
8458 __pyx_t_2 = NULL;
8459 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
8460 __Pyx_GOTREF(__pyx_t_3);
8461 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error)
8462 __Pyx_GOTREF(__pyx_t_4);
8463 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8464 __pyx_t_5 = 1;
8465 #if CYTHON_UNPACK_METHODS
8466 if (unlikely(PyMethod_Check(__pyx_t_4))) {
8467 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
8468 assert(__pyx_t_2);
8469 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
8470 __Pyx_INCREF(__pyx_t_2);
8471 __Pyx_INCREF(__pyx__function);
8472 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
8473 __pyx_t_5 = 0;
8474 }
8475 #endif
8476 {
8477 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_sphereCenter)};
8478 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
8479 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8480 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8481 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
8482 __Pyx_GOTREF(__pyx_t_1);
8483 }
8484 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 90, __pyx_L1_error)
8485 {
8486 __Pyx_BufFmt_StackElem __pyx_stack[1];
8487 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8488 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
8489 if (unlikely(__pyx_t_6 < 0)) {
8490 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
8491 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer, (PyObject*)__pyx_v_sphereCenter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
8492 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
8493 __Pyx_RaiseBufferFallbackError();
8494 } else {
8495 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
8496 }
8497 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
8498 }
8499 __pyx_pybuffernd_sphereCenter.diminfo[0].strides = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sphereCenter.diminfo[0].shape = __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.shape[0];
8500 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 90, __pyx_L1_error)
8501 }
8502 __Pyx_DECREF_SET(__pyx_v_sphereCenter, ((PyArrayObject *)__pyx_t_1));
8503 __pyx_t_1 = 0;
8504
8505 /* "MeshAdaptPUMI/MeshAdapt.pyx":91
8506 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter):
8507 * sphereCenter = np.ascontiguousarray(sphereCenter)
8508 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0]) # <<<<<<<<<<<<<<
8509 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
8510 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
8511*/
8512 __pyx_t_10 = 0;
8513 __pyx_t_6 = -1;
8514 if (__pyx_t_10 < 0) {
8515 __pyx_t_10 += __pyx_pybuffernd_sphereCenter.diminfo[0].shape;
8516 if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
8517 } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_sphereCenter.diminfo[0].shape)) __pyx_t_6 = 0;
8518 if (unlikely(__pyx_t_6 != -1)) {
8519 __Pyx_RaiseBufferIndexError(__pyx_t_6);
8520 __PYX_ERR(0, 91, __pyx_L1_error)
8521 }
8522 __pyx_t_1 = __Pyx_void_to_None(__pyx_v_self->thisptr->updateSphereCoordinates((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_sphereCenter.diminfo[0].strides))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
8523 __Pyx_GOTREF(__pyx_t_1);
8524 {
8525 PyObject *__pyx_temp;
8526 {
8527 __pyx_temp = __pyx_r;
8528 __pyx_r = __pyx_t_1;
8529 }
8530 __Pyx_XDECREF(__pyx_temp);
8531 }
8532 __pyx_t_1 = 0;
8533 goto __pyx_L0;
8534
8535 /* "MeshAdaptPUMI/MeshAdapt.pyx":89
8536 * sphereRadius = np.ascontiguousarray(sphereRadius)
8537 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
8538 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter): # <<<<<<<<<<<<<<
8539 * sphereCenter = np.ascontiguousarray(sphereCenter)
8540 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8541*/
8542
8543 /* function exit code */
8544 __pyx_L1_error:;
8545 __Pyx_XDECREF(__pyx_t_1);
8546 __Pyx_XDECREF(__pyx_t_2);
8547 __Pyx_XDECREF(__pyx_t_3);
8548 __Pyx_XDECREF(__pyx_t_4);
8549 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
8550 __Pyx_PyThreadState_declare
8551 __Pyx_PyThreadState_assign
8552 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
8553 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8554 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
8555 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateSphereCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename);
8556 __pyx_r = NULL;
8557 goto __pyx_L2;
8558 __pyx_L0:;
8559 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sphereCenter.rcbuffer->pybuffer);
8560 __pyx_L2:;
8561
8562
8563 __Pyx_XDECREF((PyObject *)__pyx_v_sphereCenter);
8564 __Pyx_XGIVEREF(__pyx_r);
8565 __Pyx_RefNannyFinishContext();
8566 return __pyx_r;
8567}
8568
8569/* "MeshAdaptPUMI/MeshAdapt.pyx":92
8570 * sphereCenter = np.ascontiguousarray(sphereCenter)
8571 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8572 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0): # <<<<<<<<<<<<<<
8573 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
8574 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
8575*/
8576
8577/* Python wrapper */
8578static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus(PyObject *__pyx_v_self,
8579#if CYTHON_VECTORCALL
8580PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8581#else
8582PyObject *__pyx_args, PyObject *__pyx_kwds
8583#endif
8584); /*proto*/
8585static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus = {"reconstructFromProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8586static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus(PyObject *__pyx_v_self,
8587#if CYTHON_VECTORCALL
8588PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8589#else
8590PyObject *__pyx_args, PyObject *__pyx_kwds
8591#endif
8592) {
8593 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
8594 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_global_cmesh = 0;
8595 PyObject *__pyx_v_hasModel = 0;
8596 #if !CYTHON_VECTORCALL
8597 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8598 #endif
8599 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8600 PyObject* values[3] = {0,0,0};
8601 int __pyx_lineno = 0;
8602 const char *__pyx_filename = NULL;
8603 int __pyx_clineno = 0;
8604 PyObject *__pyx_r = 0;
8605 __Pyx_RefNannyDeclarations
8606 __Pyx_RefNannySetupContext("reconstructFromProteus (wrapper)", 0);
8607 #if !CYTHON_VECTORCALL
8608 #if CYTHON_ASSUME_SAFE_SIZE
8609 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8610 #else
8611 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8612 #endif
8613 #endif
8614 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8615 {
8616 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,&__pyx_mstate_global->__pyx_n_u_global_cmesh,&__pyx_mstate_global->__pyx_n_u_hasModel,0};
8617 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8618 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 92, __pyx_L3_error)
8619 if (__pyx_kwds_len > 0) {
8620 switch (__pyx_nargs) {
8621 case 3:
8622 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8623 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 92, __pyx_L3_error)
8624 CYTHON_FALLTHROUGH;
8625 case 2:
8626 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8627 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 92, __pyx_L3_error)
8628 CYTHON_FALLTHROUGH;
8629 case 1:
8630 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8631 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 92, __pyx_L3_error)
8632 CYTHON_FALLTHROUGH;
8633 case 0: break;
8634 default: goto __pyx_L5_argtuple_error;
8635 }
8636 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8637 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "reconstructFromProteus", 0) < (0)) __PYX_ERR(0, 92, __pyx_L3_error)
8638 if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0));
8639 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
8640 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("reconstructFromProteus", 0, 2, 3, i); __PYX_ERR(0, 92, __pyx_L3_error) }
8641 }
8642 } else {
8643 switch (__pyx_nargs) {
8644 case 3:
8645 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8646 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 92, __pyx_L3_error)
8647 CYTHON_FALLTHROUGH;
8648 case 2:
8649 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8650 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 92, __pyx_L3_error)
8651 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8652 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 92, __pyx_L3_error)
8653 break;
8654 default: goto __pyx_L5_argtuple_error;
8655 }
8656 if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0));
8657 }
8658 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
8659 __pyx_v_global_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[1]);
8660 __pyx_v_hasModel = values[2];
8661 }
8662 goto __pyx_L6_skip;
8663 __pyx_L5_argtuple_error:;
8664 __Pyx_RaiseArgtupleInvalid("reconstructFromProteus", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 92, __pyx_L3_error)
8665 __pyx_L6_skip:;
8666 goto __pyx_L4_argument_unpacking_done;
8667 __pyx_L3_error:;
8668 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8669 Py_XDECREF(values[__pyx_temp]);
8670 }
8671 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.reconstructFromProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
8672 __Pyx_RefNannyFinishContext();
8673 return NULL;
8674 __pyx_L4_argument_unpacking_done:;
8675 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 92, __pyx_L1_error)
8676 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_global_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "global_cmesh", 0))) __PYX_ERR(0, 92, __pyx_L1_error)
8677 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_26reconstructFromProteus(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh, __pyx_v_global_cmesh, __pyx_v_hasModel);
8678
8679 /* function exit code */
8680 goto __pyx_L0;
8681 __pyx_L1_error:;
8682 __pyx_r = NULL;
8683 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8684 Py_XDECREF(values[__pyx_temp]);
8685 }
8686 goto __pyx_L7_cleaned_up;
8687 __pyx_L0:;
8688 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8689 Py_XDECREF(values[__pyx_temp]);
8690 }
8691 __pyx_L7_cleaned_up:;
8692 __Pyx_RefNannyFinishContext();
8693 return __pyx_r;
8694}
8695
8696static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_26reconstructFromProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_global_cmesh, PyObject *__pyx_v_hasModel) {
8697 PyObject *__pyx_r = NULL;
8698 __Pyx_RefNannyDeclarations
8699 int __pyx_t_1;
8700 PyObject *__pyx_t_2 = NULL;
8701 int __pyx_lineno = 0;
8702 const char *__pyx_filename = NULL;
8703 int __pyx_clineno = 0;
8704 __Pyx_RefNannySetupContext("reconstructFromProteus", 0);
8705
8706 /* "MeshAdaptPUMI/MeshAdapt.pyx":93
8707 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8708 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
8709 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel) # <<<<<<<<<<<<<<
8710 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
8711 * np.ndarray[int,ndim=2,mode="c"] bFaces):
8712*/
8713 __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_hasModel); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error)
8714 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->reconstructFromProteus(__pyx_v_cmesh->mesh, __pyx_v_global_cmesh->mesh, __pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error)
8715 __Pyx_GOTREF(__pyx_t_2);
8716
8717 {
8718 PyObject *__pyx_temp;
8719 {
8720 __pyx_temp = __pyx_r;
8721 __pyx_r = __pyx_t_2;
8722 }
8723 __Pyx_XDECREF(__pyx_temp);
8724 }
8725 __pyx_t_2 = 0;
8726 goto __pyx_L0;
8727
8728 /* "MeshAdaptPUMI/MeshAdapt.pyx":92
8729 * sphereCenter = np.ascontiguousarray(sphereCenter)
8730 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
8731 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0): # <<<<<<<<<<<<<<
8732 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
8733 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
8734*/
8735
8736 /* function exit code */
8737 __pyx_L1_error:;
8738 __Pyx_XDECREF(__pyx_t_2);
8739 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.reconstructFromProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
8740 __pyx_r = NULL;
8741 __pyx_L0:;
8742 __Pyx_XGIVEREF(__pyx_r);
8743 __Pyx_RefNannyFinishContext();
8744 return __pyx_r;
8745}
8746
8747/* "MeshAdaptPUMI/MeshAdapt.pyx":94
8748 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
8749 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
8750 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert, # <<<<<<<<<<<<<<
8751 * np.ndarray[int,ndim=2,mode="c"] bFaces):
8752 * isModelVert = np.ascontiguousarray(isModelVert)
8753*/
8754
8755/* Python wrapper */
8756static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2(PyObject *__pyx_v_self,
8757#if CYTHON_VECTORCALL
8758PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8759#else
8760PyObject *__pyx_args, PyObject *__pyx_kwds
8761#endif
8762); /*proto*/
8763static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2 = {"reconstructFromProteus2", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
8764static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2(PyObject *__pyx_v_self,
8765#if CYTHON_VECTORCALL
8766PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
8767#else
8768PyObject *__pyx_args, PyObject *__pyx_kwds
8769#endif
8770) {
8771 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
8772 PyArrayObject *__pyx_v_isModelVert = 0;
8773 PyArrayObject *__pyx_v_bFaces = 0;
8774 #if !CYTHON_VECTORCALL
8775 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
8776 #endif
8777 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8778 PyObject* values[3] = {0,0,0};
8779 int __pyx_lineno = 0;
8780 const char *__pyx_filename = NULL;
8781 int __pyx_clineno = 0;
8782 PyObject *__pyx_r = 0;
8783 __Pyx_RefNannyDeclarations
8784 __Pyx_RefNannySetupContext("reconstructFromProteus2 (wrapper)", 0);
8785 #if !CYTHON_VECTORCALL
8786 #if CYTHON_ASSUME_SAFE_SIZE
8787 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
8788 #else
8789 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
8790 #endif
8791 #endif
8792 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
8793 {
8794 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,&__pyx_mstate_global->__pyx_n_u_isModelVert,&__pyx_mstate_global->__pyx_n_u_bFaces,0};
8795 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
8796 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 94, __pyx_L3_error)
8797 if (__pyx_kwds_len > 0) {
8798 switch (__pyx_nargs) {
8799 case 3:
8800 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8801 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 94, __pyx_L3_error)
8802 CYTHON_FALLTHROUGH;
8803 case 2:
8804 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8805 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 94, __pyx_L3_error)
8806 CYTHON_FALLTHROUGH;
8807 case 1:
8808 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8809 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 94, __pyx_L3_error)
8810 CYTHON_FALLTHROUGH;
8811 case 0: break;
8812 default: goto __pyx_L5_argtuple_error;
8813 }
8814 const Py_ssize_t kwd_pos_args = __pyx_nargs;
8815 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "reconstructFromProteus2", 0) < (0)) __PYX_ERR(0, 94, __pyx_L3_error)
8816 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
8817 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("reconstructFromProteus2", 1, 3, 3, i); __PYX_ERR(0, 94, __pyx_L3_error) }
8818 }
8819 } else if (unlikely(__pyx_nargs != 3)) {
8820 goto __pyx_L5_argtuple_error;
8821 } else {
8822 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
8823 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 94, __pyx_L3_error)
8824 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
8825 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 94, __pyx_L3_error)
8826 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
8827 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 94, __pyx_L3_error)
8828 }
8829 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
8830 __pyx_v_isModelVert = ((PyArrayObject *)values[1]);
8831 __pyx_v_bFaces = ((PyArrayObject *)values[2]);
8832 }
8833 goto __pyx_L6_skip;
8834 __pyx_L5_argtuple_error:;
8835 __Pyx_RaiseArgtupleInvalid("reconstructFromProteus2", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 94, __pyx_L3_error)
8836 __pyx_L6_skip:;
8837 goto __pyx_L4_argument_unpacking_done;
8838 __pyx_L3_error:;
8839 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8840 Py_XDECREF(values[__pyx_temp]);
8841 }
8842 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.reconstructFromProteus2", __pyx_clineno, __pyx_lineno, __pyx_filename);
8843 __Pyx_RefNannyFinishContext();
8844 return NULL;
8845 __pyx_L4_argument_unpacking_done:;
8846 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 94, __pyx_L1_error)
8847 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isModelVert), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "isModelVert", 0))) __PYX_ERR(0, 94, __pyx_L1_error)
8848 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bFaces), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "bFaces", 0))) __PYX_ERR(0, 95, __pyx_L1_error)
8849 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_28reconstructFromProteus2(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh, __pyx_v_isModelVert, __pyx_v_bFaces);
8850
8851 /* function exit code */
8852 goto __pyx_L0;
8853 __pyx_L1_error:;
8854 __pyx_r = NULL;
8855 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8856 Py_XDECREF(values[__pyx_temp]);
8857 }
8858 goto __pyx_L7_cleaned_up;
8859 __pyx_L0:;
8860 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
8861 Py_XDECREF(values[__pyx_temp]);
8862 }
8863 __pyx_L7_cleaned_up:;
8864 __Pyx_RefNannyFinishContext();
8865 return __pyx_r;
8866}
8867
8868static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_28reconstructFromProteus2(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, PyArrayObject *__pyx_v_isModelVert, PyArrayObject *__pyx_v_bFaces) {
8869 __Pyx_LocalBuf_ND __pyx_pybuffernd_bFaces;
8870 __Pyx_Buffer __pyx_pybuffer_bFaces;
8871 __Pyx_LocalBuf_ND __pyx_pybuffernd_isModelVert;
8872 __Pyx_Buffer __pyx_pybuffer_isModelVert;
8873 PyObject *__pyx_r = NULL;
8874 __Pyx_RefNannyDeclarations
8875 PyObject *__pyx_t_1 = NULL;
8876 PyObject *__pyx_t_2 = NULL;
8877 PyObject *__pyx_t_3 = NULL;
8878 PyObject *__pyx_t_4 = NULL;
8879 size_t __pyx_t_5;
8880 int __pyx_t_6;
8881 PyObject *__pyx_t_7 = NULL;
8882 PyObject *__pyx_t_8 = NULL;
8883 PyObject *__pyx_t_9 = NULL;
8884 Py_ssize_t __pyx_t_10;
8885 int __pyx_lineno = 0;
8886 const char *__pyx_filename = NULL;
8887 int __pyx_clineno = 0;
8888 __Pyx_RefNannySetupContext("reconstructFromProteus2", 0);
8889 __Pyx_INCREF((PyObject *)__pyx_v_isModelVert);
8890 __pyx_pybuffer_isModelVert.pybuffer.buf = NULL;
8891 __pyx_pybuffer_isModelVert.refcount = 0;
8892 __pyx_pybuffernd_isModelVert.data = NULL;
8893 __pyx_pybuffernd_isModelVert.rcbuffer = &__pyx_pybuffer_isModelVert;
8894 __pyx_pybuffer_bFaces.pybuffer.buf = NULL;
8895 __pyx_pybuffer_bFaces.refcount = 0;
8896 __pyx_pybuffernd_bFaces.data = NULL;
8897 __pyx_pybuffernd_bFaces.rcbuffer = &__pyx_pybuffer_bFaces;
8898 {
8899 __Pyx_BufFmt_StackElem __pyx_stack[1];
8900 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer, (PyObject*)__pyx_v_isModelVert, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 94, __pyx_L1_error)
8901 }
8902 __pyx_pybuffernd_isModelVert.diminfo[0].strides = __pyx_pybuffernd_isModelVert.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_isModelVert.diminfo[0].shape = __pyx_pybuffernd_isModelVert.rcbuffer->pybuffer.shape[0];
8903 {
8904 __Pyx_BufFmt_StackElem __pyx_stack[1];
8905 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bFaces.rcbuffer->pybuffer, (PyObject*)__pyx_v_bFaces, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 94, __pyx_L1_error)
8906 }
8907 __pyx_pybuffernd_bFaces.diminfo[0].strides = __pyx_pybuffernd_bFaces.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bFaces.diminfo[0].shape = __pyx_pybuffernd_bFaces.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_bFaces.diminfo[1].strides = __pyx_pybuffernd_bFaces.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_bFaces.diminfo[1].shape = __pyx_pybuffernd_bFaces.rcbuffer->pybuffer.shape[1];
8908
8909 /* "MeshAdaptPUMI/MeshAdapt.pyx":96
8910 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
8911 * np.ndarray[int,ndim=2,mode="c"] bFaces):
8912 * isModelVert = np.ascontiguousarray(isModelVert) # <<<<<<<<<<<<<<
8913 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data)
8914 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
8915*/
8916 __pyx_t_2 = NULL;
8917 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error)
8918 __Pyx_GOTREF(__pyx_t_3);
8919 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
8920 __Pyx_GOTREF(__pyx_t_4);
8921 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8922 __pyx_t_5 = 1;
8923 #if CYTHON_UNPACK_METHODS
8924 if (unlikely(PyMethod_Check(__pyx_t_4))) {
8925 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
8926 assert(__pyx_t_2);
8927 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
8928 __Pyx_INCREF(__pyx_t_2);
8929 __Pyx_INCREF(__pyx__function);
8930 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
8931 __pyx_t_5 = 0;
8932 }
8933 #endif
8934 {
8935 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_isModelVert)};
8936 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
8937 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
8938 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8939 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
8940 __Pyx_GOTREF(__pyx_t_1);
8941 }
8942 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 96, __pyx_L1_error)
8943 {
8944 __Pyx_BufFmt_StackElem __pyx_stack[1];
8945 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer);
8946 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
8947 if (unlikely(__pyx_t_6 < 0)) {
8948 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
8949 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer, (PyObject*)__pyx_v_isModelVert, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
8950 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
8951 __Pyx_RaiseBufferFallbackError();
8952 } else {
8953 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
8954 }
8955 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
8956 }
8957 __pyx_pybuffernd_isModelVert.diminfo[0].strides = __pyx_pybuffernd_isModelVert.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_isModelVert.diminfo[0].shape = __pyx_pybuffernd_isModelVert.rcbuffer->pybuffer.shape[0];
8958 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 96, __pyx_L1_error)
8959 }
8960 __Pyx_DECREF_SET(__pyx_v_isModelVert, ((PyArrayObject *)__pyx_t_1));
8961 __pyx_t_1 = 0;
8962
8963 /* "MeshAdaptPUMI/MeshAdapt.pyx":97
8964 * np.ndarray[int,ndim=2,mode="c"] bFaces):
8965 * isModelVert = np.ascontiguousarray(isModelVert)
8966 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data) # <<<<<<<<<<<<<<
8967 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
8968 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
8969*/
8970 __pyx_t_10 = 0;
8971 __pyx_t_6 = -1;
8972 if (__pyx_t_10 < 0) {
8973 __pyx_t_10 += __pyx_pybuffernd_isModelVert.diminfo[0].shape;
8974 if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
8975 } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_isModelVert.diminfo[0].shape)) __pyx_t_6 = 0;
8976 if (unlikely(__pyx_t_6 != -1)) {
8977 __Pyx_RaiseBufferIndexError(__pyx_t_6);
8978 __PYX_ERR(0, 97, __pyx_L1_error)
8979 }
8980 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->reconstructFromProteus2(__pyx_v_cmesh->mesh, (&(*__Pyx_BufPtrCContig1d(int *, __pyx_pybuffernd_isModelVert.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_isModelVert.diminfo[0].strides))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_bFaces))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)
8981 __Pyx_GOTREF(__pyx_t_1);
8982 {
8983 PyObject *__pyx_temp;
8984 {
8985 __pyx_temp = __pyx_r;
8986 __pyx_r = __pyx_t_1;
8987 }
8988 __Pyx_XDECREF(__pyx_temp);
8989 }
8990 __pyx_t_1 = 0;
8991 goto __pyx_L0;
8992
8993 /* "MeshAdaptPUMI/MeshAdapt.pyx":94
8994 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
8995 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
8996 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert, # <<<<<<<<<<<<<<
8997 * np.ndarray[int,ndim=2,mode="c"] bFaces):
8998 * isModelVert = np.ascontiguousarray(isModelVert)
8999*/
9000
9001 /* function exit code */
9002 __pyx_L1_error:;
9003 __Pyx_XDECREF(__pyx_t_1);
9004 __Pyx_XDECREF(__pyx_t_2);
9005 __Pyx_XDECREF(__pyx_t_3);
9006 __Pyx_XDECREF(__pyx_t_4);
9007 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
9008 __Pyx_PyThreadState_declare
9009 __Pyx_PyThreadState_assign
9010 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
9011 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bFaces.rcbuffer->pybuffer);
9012 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer);
9013 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
9014 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.reconstructFromProteus2", __pyx_clineno, __pyx_lineno, __pyx_filename);
9015 __pyx_r = NULL;
9016 goto __pyx_L2;
9017 __pyx_L0:;
9018 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bFaces.rcbuffer->pybuffer);
9019 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_isModelVert.rcbuffer->pybuffer);
9020 __pyx_L2:;
9021
9022
9023
9024
9025 __Pyx_XDECREF((PyObject *)__pyx_v_isModelVert);
9026 __Pyx_XGIVEREF(__pyx_r);
9027 __Pyx_RefNannyFinishContext();
9028 return __pyx_r;
9029}
9030
9031/* "MeshAdaptPUMI/MeshAdapt.pyx":98
9032 * isModelVert = np.ascontiguousarray(isModelVert)
9033 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data)
9034 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
9035 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
9036 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9037*/
9038
9039/* Python wrapper */
9040static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh(PyObject *__pyx_v_self,
9041#if CYTHON_VECTORCALL
9042PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9043#else
9044PyObject *__pyx_args, PyObject *__pyx_kwds
9045#endif
9046); /*proto*/
9047static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh = {"constructFromSerialPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9048static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh(PyObject *__pyx_v_self,
9049#if CYTHON_VECTORCALL
9050PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9051#else
9052PyObject *__pyx_args, PyObject *__pyx_kwds
9053#endif
9054) {
9055 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
9056 #if !CYTHON_VECTORCALL
9057 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9058 #endif
9059 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9060 PyObject* values[1] = {0};
9061 int __pyx_lineno = 0;
9062 const char *__pyx_filename = NULL;
9063 int __pyx_clineno = 0;
9064 PyObject *__pyx_r = 0;
9065 __Pyx_RefNannyDeclarations
9066 __Pyx_RefNannySetupContext("constructFromSerialPUMIMesh (wrapper)", 0);
9067 #if !CYTHON_VECTORCALL
9068 #if CYTHON_ASSUME_SAFE_SIZE
9069 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9070 #else
9071 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9072 #endif
9073 #endif
9074 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9075 {
9076 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,0};
9077 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9078 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 98, __pyx_L3_error)
9079 if (__pyx_kwds_len > 0) {
9080 switch (__pyx_nargs) {
9081 case 1:
9082 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9083 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 98, __pyx_L3_error)
9084 CYTHON_FALLTHROUGH;
9085 case 0: break;
9086 default: goto __pyx_L5_argtuple_error;
9087 }
9088 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9089 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "constructFromSerialPUMIMesh", 0) < (0)) __PYX_ERR(0, 98, __pyx_L3_error)
9090 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
9091 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("constructFromSerialPUMIMesh", 1, 1, 1, i); __PYX_ERR(0, 98, __pyx_L3_error) }
9092 }
9093 } else if (unlikely(__pyx_nargs != 1)) {
9094 goto __pyx_L5_argtuple_error;
9095 } else {
9096 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9097 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 98, __pyx_L3_error)
9098 }
9099 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
9100 }
9101 goto __pyx_L6_skip;
9102 __pyx_L5_argtuple_error:;
9103 __Pyx_RaiseArgtupleInvalid("constructFromSerialPUMIMesh", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 98, __pyx_L3_error)
9104 __pyx_L6_skip:;
9105 goto __pyx_L4_argument_unpacking_done;
9106 __pyx_L3_error:;
9107 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9108 Py_XDECREF(values[__pyx_temp]);
9109 }
9110 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.constructFromSerialPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
9111 __Pyx_RefNannyFinishContext();
9112 return NULL;
9113 __pyx_L4_argument_unpacking_done:;
9114 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 98, __pyx_L1_error)
9115 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_30constructFromSerialPUMIMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh);
9116
9117 /* function exit code */
9118 goto __pyx_L0;
9119 __pyx_L1_error:;
9120 __pyx_r = NULL;
9121 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9122 Py_XDECREF(values[__pyx_temp]);
9123 }
9124 goto __pyx_L7_cleaned_up;
9125 __pyx_L0:;
9126 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9127 Py_XDECREF(values[__pyx_temp]);
9128 }
9129 __pyx_L7_cleaned_up:;
9130 __Pyx_RefNannyFinishContext();
9131 return __pyx_r;
9132}
9133
9134static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_30constructFromSerialPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh) {
9135 PyObject *__pyx_r = NULL;
9136 __Pyx_RefNannyDeclarations
9137 PyObject *__pyx_t_1 = NULL;
9138 int __pyx_lineno = 0;
9139 const char *__pyx_filename = NULL;
9140 int __pyx_clineno = 0;
9141 __Pyx_RefNannySetupContext("constructFromSerialPUMIMesh", 0);
9142
9143 /* "MeshAdaptPUMI/MeshAdapt.pyx":99
9144 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data)
9145 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
9146 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh) # <<<<<<<<<<<<<<
9147 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9148 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9149*/
9150 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->constructFromSerialPUMIMesh(__pyx_v_cmesh->mesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error)
9151 __Pyx_GOTREF(__pyx_t_1);
9152 {
9153 PyObject *__pyx_temp;
9154 {
9155 __pyx_temp = __pyx_r;
9156 __pyx_r = __pyx_t_1;
9157 }
9158 __Pyx_XDECREF(__pyx_temp);
9159 }
9160 __pyx_t_1 = 0;
9161 goto __pyx_L0;
9162
9163 /* "MeshAdaptPUMI/MeshAdapt.pyx":98
9164 * isModelVert = np.ascontiguousarray(isModelVert)
9165 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data)
9166 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
9167 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
9168 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9169*/
9170
9171 /* function exit code */
9172 __pyx_L1_error:;
9173 __Pyx_XDECREF(__pyx_t_1);
9174 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.constructFromSerialPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
9175 __pyx_r = NULL;
9176 __pyx_L0:;
9177 __Pyx_XGIVEREF(__pyx_r);
9178 __Pyx_RefNannyFinishContext();
9179 return __pyx_r;
9180}
9181
9182/* "MeshAdaptPUMI/MeshAdapt.pyx":100
9183 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
9184 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
9185 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh): # <<<<<<<<<<<<<<
9186 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9187 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9188*/
9189
9190/* Python wrapper */
9191static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh(PyObject *__pyx_v_self,
9192#if CYTHON_VECTORCALL
9193PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9194#else
9195PyObject *__pyx_args, PyObject *__pyx_kwds
9196#endif
9197); /*proto*/
9198static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh = {"constructFromParallelPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9199static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh(PyObject *__pyx_v_self,
9200#if CYTHON_VECTORCALL
9201PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9202#else
9203PyObject *__pyx_args, PyObject *__pyx_kwds
9204#endif
9205) {
9206 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
9207 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_subdomain_cmesh = 0;
9208 #if !CYTHON_VECTORCALL
9209 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9210 #endif
9211 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9212 PyObject* values[2] = {0,0};
9213 int __pyx_lineno = 0;
9214 const char *__pyx_filename = NULL;
9215 int __pyx_clineno = 0;
9216 PyObject *__pyx_r = 0;
9217 __Pyx_RefNannyDeclarations
9218 __Pyx_RefNannySetupContext("constructFromParallelPUMIMesh (wrapper)", 0);
9219 #if !CYTHON_VECTORCALL
9220 #if CYTHON_ASSUME_SAFE_SIZE
9221 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9222 #else
9223 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9224 #endif
9225 #endif
9226 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9227 {
9228 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,&__pyx_mstate_global->__pyx_n_u_subdomain_cmesh,0};
9229 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9230 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 100, __pyx_L3_error)
9231 if (__pyx_kwds_len > 0) {
9232 switch (__pyx_nargs) {
9233 case 2:
9234 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9235 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 100, __pyx_L3_error)
9236 CYTHON_FALLTHROUGH;
9237 case 1:
9238 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9239 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 100, __pyx_L3_error)
9240 CYTHON_FALLTHROUGH;
9241 case 0: break;
9242 default: goto __pyx_L5_argtuple_error;
9243 }
9244 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9245 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "constructFromParallelPUMIMesh", 0) < (0)) __PYX_ERR(0, 100, __pyx_L3_error)
9246 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
9247 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("constructFromParallelPUMIMesh", 1, 2, 2, i); __PYX_ERR(0, 100, __pyx_L3_error) }
9248 }
9249 } else if (unlikely(__pyx_nargs != 2)) {
9250 goto __pyx_L5_argtuple_error;
9251 } else {
9252 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9253 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 100, __pyx_L3_error)
9254 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9255 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 100, __pyx_L3_error)
9256 }
9257 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
9258 __pyx_v_subdomain_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[1]);
9259 }
9260 goto __pyx_L6_skip;
9261 __pyx_L5_argtuple_error:;
9262 __Pyx_RaiseArgtupleInvalid("constructFromParallelPUMIMesh", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 100, __pyx_L3_error)
9263 __pyx_L6_skip:;
9264 goto __pyx_L4_argument_unpacking_done;
9265 __pyx_L3_error:;
9266 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9267 Py_XDECREF(values[__pyx_temp]);
9268 }
9269 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.constructFromParallelPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
9270 __Pyx_RefNannyFinishContext();
9271 return NULL;
9272 __pyx_L4_argument_unpacking_done:;
9273 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 100, __pyx_L1_error)
9274 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subdomain_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "subdomain_cmesh", 0))) __PYX_ERR(0, 100, __pyx_L1_error)
9275 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_32constructFromParallelPUMIMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh, __pyx_v_subdomain_cmesh);
9276
9277 /* function exit code */
9278 goto __pyx_L0;
9279 __pyx_L1_error:;
9280 __pyx_r = NULL;
9281 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9282 Py_XDECREF(values[__pyx_temp]);
9283 }
9284 goto __pyx_L7_cleaned_up;
9285 __pyx_L0:;
9286 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9287 Py_XDECREF(values[__pyx_temp]);
9288 }
9289 __pyx_L7_cleaned_up:;
9290 __Pyx_RefNannyFinishContext();
9291 return __pyx_r;
9292}
9293
9294static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_32constructFromParallelPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_subdomain_cmesh) {
9295 PyObject *__pyx_r = NULL;
9296 __Pyx_RefNannyDeclarations
9297 PyObject *__pyx_t_1 = NULL;
9298 int __pyx_lineno = 0;
9299 const char *__pyx_filename = NULL;
9300 int __pyx_clineno = 0;
9301 __Pyx_RefNannySetupContext("constructFromParallelPUMIMesh", 0);
9302
9303 /* "MeshAdaptPUMI/MeshAdapt.pyx":101
9304 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
9305 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9306 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh) # <<<<<<<<<<<<<<
9307 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9308 * if(dim is None):
9309*/
9310 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->constructFromParallelPUMIMesh(__pyx_v_cmesh->mesh, __pyx_v_subdomain_cmesh->mesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
9311 __Pyx_GOTREF(__pyx_t_1);
9312 {
9313 PyObject *__pyx_temp;
9314 {
9315 __pyx_temp = __pyx_r;
9316 __pyx_r = __pyx_t_1;
9317 }
9318 __Pyx_XDECREF(__pyx_temp);
9319 }
9320 __pyx_t_1 = 0;
9321 goto __pyx_L0;
9322
9323 /* "MeshAdaptPUMI/MeshAdapt.pyx":100
9324 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
9325 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
9326 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh): # <<<<<<<<<<<<<<
9327 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9328 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9329*/
9330
9331 /* function exit code */
9332 __pyx_L1_error:;
9333 __Pyx_XDECREF(__pyx_t_1);
9334 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.constructFromParallelPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
9335 __pyx_r = NULL;
9336 __pyx_L0:;
9337 __Pyx_XGIVEREF(__pyx_r);
9338 __Pyx_RefNannyFinishContext();
9339 return __pyx_r;
9340}
9341
9342/* "MeshAdaptPUMI/MeshAdapt.pyx":102
9343 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9344 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9345 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None): # <<<<<<<<<<<<<<
9346 * if(dim is None):
9347 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
9348*/
9349
9350/* Python wrapper */
9351static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays(PyObject *__pyx_v_self,
9352#if CYTHON_VECTORCALL
9353PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9354#else
9355PyObject *__pyx_args, PyObject *__pyx_kwds
9356#endif
9357); /*proto*/
9358static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays = {"updateMaterialArrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9359static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays(PyObject *__pyx_v_self,
9360#if CYTHON_VECTORCALL
9361PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9362#else
9363PyObject *__pyx_args, PyObject *__pyx_kwds
9364#endif
9365) {
9366 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
9367 PyObject *__pyx_v_dim = 0;
9368 PyObject *__pyx_v_bdryId = 0;
9369 PyObject *__pyx_v_geomTag = 0;
9370 #if !CYTHON_VECTORCALL
9371 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9372 #endif
9373 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9374 PyObject* values[4] = {0,0,0,0};
9375 int __pyx_lineno = 0;
9376 const char *__pyx_filename = NULL;
9377 int __pyx_clineno = 0;
9378 PyObject *__pyx_r = 0;
9379 __Pyx_RefNannyDeclarations
9380 __Pyx_RefNannySetupContext("updateMaterialArrays (wrapper)", 0);
9381 #if !CYTHON_VECTORCALL
9382 #if CYTHON_ASSUME_SAFE_SIZE
9383 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9384 #else
9385 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9386 #endif
9387 #endif
9388 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9389 {
9390 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,&__pyx_mstate_global->__pyx_n_u_dim,&__pyx_mstate_global->__pyx_n_u_bdryId,&__pyx_mstate_global->__pyx_n_u_geomTag,0};
9391 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9392 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 102, __pyx_L3_error)
9393 if (__pyx_kwds_len > 0) {
9394 switch (__pyx_nargs) {
9395 case 4:
9396 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9397 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 102, __pyx_L3_error)
9398 CYTHON_FALLTHROUGH;
9399 case 3:
9400 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9401 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 102, __pyx_L3_error)
9402 CYTHON_FALLTHROUGH;
9403 case 2:
9404 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9405 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 102, __pyx_L3_error)
9406 CYTHON_FALLTHROUGH;
9407 case 1:
9408 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9409 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 102, __pyx_L3_error)
9410 CYTHON_FALLTHROUGH;
9411 case 0: break;
9412 default: goto __pyx_L5_argtuple_error;
9413 }
9414 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9415 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateMaterialArrays", 0) < (0)) __PYX_ERR(0, 102, __pyx_L3_error)
9416 if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
9417 if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
9418 if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
9419 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
9420 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateMaterialArrays", 0, 1, 4, i); __PYX_ERR(0, 102, __pyx_L3_error) }
9421 }
9422 } else {
9423 switch (__pyx_nargs) {
9424 case 4:
9425 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
9426 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 102, __pyx_L3_error)
9427 CYTHON_FALLTHROUGH;
9428 case 3:
9429 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
9430 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 102, __pyx_L3_error)
9431 CYTHON_FALLTHROUGH;
9432 case 2:
9433 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9434 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 102, __pyx_L3_error)
9435 CYTHON_FALLTHROUGH;
9436 case 1:
9437 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9438 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 102, __pyx_L3_error)
9439 break;
9440 default: goto __pyx_L5_argtuple_error;
9441 }
9442 if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
9443 if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
9444 if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
9445 }
9446 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
9447 __pyx_v_dim = values[1];
9448 __pyx_v_bdryId = values[2];
9449 __pyx_v_geomTag = values[3];
9450 }
9451 goto __pyx_L6_skip;
9452 __pyx_L5_argtuple_error:;
9453 __Pyx_RaiseArgtupleInvalid("updateMaterialArrays", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 102, __pyx_L3_error)
9454 __pyx_L6_skip:;
9455 goto __pyx_L4_argument_unpacking_done;
9456 __pyx_L3_error:;
9457 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9458 Py_XDECREF(values[__pyx_temp]);
9459 }
9460 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateMaterialArrays", __pyx_clineno, __pyx_lineno, __pyx_filename);
9461 __Pyx_RefNannyFinishContext();
9462 return NULL;
9463 __pyx_L4_argument_unpacking_done:;
9464 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 102, __pyx_L1_error)
9465 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_34updateMaterialArrays(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh, __pyx_v_dim, __pyx_v_bdryId, __pyx_v_geomTag);
9466
9467 /* function exit code */
9468 goto __pyx_L0;
9469 __pyx_L1_error:;
9470 __pyx_r = NULL;
9471 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9472 Py_XDECREF(values[__pyx_temp]);
9473 }
9474 goto __pyx_L7_cleaned_up;
9475 __pyx_L0:;
9476 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9477 Py_XDECREF(values[__pyx_temp]);
9478 }
9479 __pyx_L7_cleaned_up:;
9480 __Pyx_RefNannyFinishContext();
9481 return __pyx_r;
9482}
9483
9484static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_34updateMaterialArrays(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh, PyObject *__pyx_v_dim, PyObject *__pyx_v_bdryId, PyObject *__pyx_v_geomTag) {
9485 PyObject *__pyx_r = NULL;
9486 __Pyx_RefNannyDeclarations
9487 int __pyx_t_1;
9488 PyObject *__pyx_t_2 = NULL;
9489 int __pyx_t_3;
9490 int __pyx_t_4;
9491 int __pyx_t_5;
9492 int __pyx_lineno = 0;
9493 const char *__pyx_filename = NULL;
9494 int __pyx_clineno = 0;
9495 __Pyx_RefNannySetupContext("updateMaterialArrays", 0);
9496
9497 /* "MeshAdaptPUMI/MeshAdapt.pyx":103
9498 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9499 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9500 * if(dim is None): # <<<<<<<<<<<<<<
9501 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
9502 * else:
9503*/
9504 __pyx_t_1 = (__pyx_v_dim == Py_None);
9505 if (__pyx_t_1) {
9506
9507
9508 /* "MeshAdaptPUMI/MeshAdapt.pyx":104
9509 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9510 * if(dim is None):
9511 * return self.thisptr.updateMaterialArrays(cmesh.mesh) # <<<<<<<<<<<<<<
9512 * else:
9513 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag)
9514*/
9515 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->updateMaterialArrays(__pyx_v_cmesh->mesh)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
9516 __Pyx_GOTREF(__pyx_t_2);
9517 {
9518 PyObject *__pyx_temp;
9519 {
9520 __pyx_temp = __pyx_r;
9521 __pyx_r = __pyx_t_2;
9522 }
9523 __Pyx_XDECREF(__pyx_temp);
9524 }
9525 __pyx_t_2 = 0;
9526 goto __pyx_L0;
9527
9528 /* "MeshAdaptPUMI/MeshAdapt.pyx":103
9529 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9530 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
9531 * if(dim is None): # <<<<<<<<<<<<<<
9532 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
9533 * else:
9534*/
9535 }
9536
9537 /* "MeshAdaptPUMI/MeshAdapt.pyx":106
9538 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
9539 * else:
9540 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag) # <<<<<<<<<<<<<<
9541 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh):
9542 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9543*/
9544 /*else*/ {
9545 __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_dim); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L1_error)
9546 __pyx_t_4 = __Pyx_PyLong_As_int(__pyx_v_bdryId); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L1_error)
9547 __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_v_geomTag); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L1_error)
9548 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->updateMaterialArrays(__pyx_v_cmesh->mesh, __pyx_t_3, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error)
9549 __Pyx_GOTREF(__pyx_t_2);
9550
9551
9552
9553 {
9554 PyObject *__pyx_temp;
9555 {
9556 __pyx_temp = __pyx_r;
9557 __pyx_r = __pyx_t_2;
9558 }
9559 __Pyx_XDECREF(__pyx_temp);
9560 }
9561 __pyx_t_2 = 0;
9562 goto __pyx_L0;
9563 }
9564
9565 /* "MeshAdaptPUMI/MeshAdapt.pyx":102
9566 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
9567 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
9568 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None): # <<<<<<<<<<<<<<
9569 * if(dim is None):
9570 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
9571*/
9572
9573 /* function exit code */
9574 __pyx_L1_error:;
9575 __Pyx_XDECREF(__pyx_t_2);
9576 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateMaterialArrays", __pyx_clineno, __pyx_lineno, __pyx_filename);
9577 __pyx_r = NULL;
9578 __pyx_L0:;
9579 __Pyx_XGIVEREF(__pyx_r);
9580 __Pyx_RefNannyFinishContext();
9581 return __pyx_r;
9582}
9583
9584/* "MeshAdaptPUMI/MeshAdapt.pyx":107
9585 * else:
9586 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag)
9587 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
9588 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9589 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
9590*/
9591
9592/* Python wrapper */
9593static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2(PyObject *__pyx_v_self,
9594#if CYTHON_VECTORCALL
9595PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9596#else
9597PyObject *__pyx_args, PyObject *__pyx_kwds
9598#endif
9599); /*proto*/
9600static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2 = {"updateMaterialArrays2", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9601static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2(PyObject *__pyx_v_self,
9602#if CYTHON_VECTORCALL
9603PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9604#else
9605PyObject *__pyx_args, PyObject *__pyx_kwds
9606#endif
9607) {
9608 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
9609 #if !CYTHON_VECTORCALL
9610 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9611 #endif
9612 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9613 PyObject* values[1] = {0};
9614 int __pyx_lineno = 0;
9615 const char *__pyx_filename = NULL;
9616 int __pyx_clineno = 0;
9617 PyObject *__pyx_r = 0;
9618 __Pyx_RefNannyDeclarations
9619 __Pyx_RefNannySetupContext("updateMaterialArrays2 (wrapper)", 0);
9620 #if !CYTHON_VECTORCALL
9621 #if CYTHON_ASSUME_SAFE_SIZE
9622 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9623 #else
9624 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9625 #endif
9626 #endif
9627 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9628 {
9629 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,0};
9630 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9631 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 107, __pyx_L3_error)
9632 if (__pyx_kwds_len > 0) {
9633 switch (__pyx_nargs) {
9634 case 1:
9635 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9636 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 107, __pyx_L3_error)
9637 CYTHON_FALLTHROUGH;
9638 case 0: break;
9639 default: goto __pyx_L5_argtuple_error;
9640 }
9641 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9642 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "updateMaterialArrays2", 0) < (0)) __PYX_ERR(0, 107, __pyx_L3_error)
9643 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
9644 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("updateMaterialArrays2", 1, 1, 1, i); __PYX_ERR(0, 107, __pyx_L3_error) }
9645 }
9646 } else if (unlikely(__pyx_nargs != 1)) {
9647 goto __pyx_L5_argtuple_error;
9648 } else {
9649 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9650 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 107, __pyx_L3_error)
9651 }
9652 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
9653 }
9654 goto __pyx_L6_skip;
9655 __pyx_L5_argtuple_error:;
9656 __Pyx_RaiseArgtupleInvalid("updateMaterialArrays2", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 107, __pyx_L3_error)
9657 __pyx_L6_skip:;
9658 goto __pyx_L4_argument_unpacking_done;
9659 __pyx_L3_error:;
9660 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9661 Py_XDECREF(values[__pyx_temp]);
9662 }
9663 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateMaterialArrays2", __pyx_clineno, __pyx_lineno, __pyx_filename);
9664 __Pyx_RefNannyFinishContext();
9665 return NULL;
9666 __pyx_L4_argument_unpacking_done:;
9667 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 107, __pyx_L1_error)
9668 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_36updateMaterialArrays2(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh);
9669
9670 /* function exit code */
9671 goto __pyx_L0;
9672 __pyx_L1_error:;
9673 __pyx_r = NULL;
9674 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9675 Py_XDECREF(values[__pyx_temp]);
9676 }
9677 goto __pyx_L7_cleaned_up;
9678 __pyx_L0:;
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 __pyx_L7_cleaned_up:;
9683 __Pyx_RefNannyFinishContext();
9684 return __pyx_r;
9685}
9686
9687static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_36updateMaterialArrays2(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh) {
9688 PyObject *__pyx_r = NULL;
9689 __Pyx_RefNannyDeclarations
9690 PyObject *__pyx_t_1 = NULL;
9691 int __pyx_lineno = 0;
9692 const char *__pyx_filename = NULL;
9693 int __pyx_clineno = 0;
9694 __Pyx_RefNannySetupContext("updateMaterialArrays2", 0);
9695
9696 /* "MeshAdaptPUMI/MeshAdapt.pyx":108
9697 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag)
9698 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh):
9699 * return self.thisptr.updateMaterialArrays2(cmesh.mesh) # <<<<<<<<<<<<<<
9700 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
9701 * inArray = np.ascontiguousarray(inArray)
9702*/
9703 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->updateMaterialArrays2(__pyx_v_cmesh->mesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
9704 __Pyx_GOTREF(__pyx_t_1);
9705 {
9706 PyObject *__pyx_temp;
9707 {
9708 __pyx_temp = __pyx_r;
9709 __pyx_r = __pyx_t_1;
9710 }
9711 __Pyx_XDECREF(__pyx_temp);
9712 }
9713 __pyx_t_1 = 0;
9714 goto __pyx_L0;
9715
9716 /* "MeshAdaptPUMI/MeshAdapt.pyx":107
9717 * else:
9718 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag)
9719 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
9720 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9721 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
9722*/
9723
9724 /* function exit code */
9725 __pyx_L1_error:;
9726 __Pyx_XDECREF(__pyx_t_1);
9727 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.updateMaterialArrays2", __pyx_clineno, __pyx_lineno, __pyx_filename);
9728 __pyx_r = NULL;
9729 __pyx_L0:;
9730 __Pyx_XGIVEREF(__pyx_r);
9731 __Pyx_RefNannyFinishContext();
9732 return __pyx_r;
9733}
9734
9735/* "MeshAdaptPUMI/MeshAdapt.pyx":109
9736 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh):
9737 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9738 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray): # <<<<<<<<<<<<<<
9739 * inArray = np.ascontiguousarray(inArray)
9740 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
9741*/
9742
9743/* Python wrapper */
9744static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI(PyObject *__pyx_v_self,
9745#if CYTHON_VECTORCALL
9746PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9747#else
9748PyObject *__pyx_args, PyObject *__pyx_kwds
9749#endif
9750); /*proto*/
9751static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI = {"transferFieldToPUMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
9752static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI(PyObject *__pyx_v_self,
9753#if CYTHON_VECTORCALL
9754PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
9755#else
9756PyObject *__pyx_args, PyObject *__pyx_kwds
9757#endif
9758) {
9759 PyObject *__pyx_v_name = 0;
9760 PyArrayObject *__pyx_v_inArray = 0;
9761 #if !CYTHON_VECTORCALL
9762 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
9763 #endif
9764 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9765 PyObject* values[2] = {0,0};
9766 int __pyx_lineno = 0;
9767 const char *__pyx_filename = NULL;
9768 int __pyx_clineno = 0;
9769 PyObject *__pyx_r = 0;
9770 __Pyx_RefNannyDeclarations
9771 __Pyx_RefNannySetupContext("transferFieldToPUMI (wrapper)", 0);
9772 #if !CYTHON_VECTORCALL
9773 #if CYTHON_ASSUME_SAFE_SIZE
9774 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
9775 #else
9776 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
9777 #endif
9778 #endif
9779 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
9780 {
9781 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_inArray,0};
9782 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
9783 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 109, __pyx_L3_error)
9784 if (__pyx_kwds_len > 0) {
9785 switch (__pyx_nargs) {
9786 case 2:
9787 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9788 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 109, __pyx_L3_error)
9789 CYTHON_FALLTHROUGH;
9790 case 1:
9791 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9792 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 109, __pyx_L3_error)
9793 CYTHON_FALLTHROUGH;
9794 case 0: break;
9795 default: goto __pyx_L5_argtuple_error;
9796 }
9797 const Py_ssize_t kwd_pos_args = __pyx_nargs;
9798 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "transferFieldToPUMI", 0) < (0)) __PYX_ERR(0, 109, __pyx_L3_error)
9799 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
9800 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("transferFieldToPUMI", 1, 2, 2, i); __PYX_ERR(0, 109, __pyx_L3_error) }
9801 }
9802 } else if (unlikely(__pyx_nargs != 2)) {
9803 goto __pyx_L5_argtuple_error;
9804 } else {
9805 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
9806 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 109, __pyx_L3_error)
9807 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
9808 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 109, __pyx_L3_error)
9809 }
9810 __pyx_v_name = values[0];
9811 __pyx_v_inArray = ((PyArrayObject *)values[1]);
9812 }
9813 goto __pyx_L6_skip;
9814 __pyx_L5_argtuple_error:;
9815 __Pyx_RaiseArgtupleInvalid("transferFieldToPUMI", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 109, __pyx_L3_error)
9816 __pyx_L6_skip:;
9817 goto __pyx_L4_argument_unpacking_done;
9818 __pyx_L3_error:;
9819 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9820 Py_XDECREF(values[__pyx_temp]);
9821 }
9822 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferFieldToPUMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
9823 __Pyx_RefNannyFinishContext();
9824 return NULL;
9825 __pyx_L4_argument_unpacking_done:;
9826 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "inArray", 0))) __PYX_ERR(0, 109, __pyx_L1_error)
9827 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_38transferFieldToPUMI(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_name, __pyx_v_inArray);
9828
9829 /* function exit code */
9830 goto __pyx_L0;
9831 __pyx_L1_error:;
9832 __pyx_r = NULL;
9833 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9834 Py_XDECREF(values[__pyx_temp]);
9835 }
9836 goto __pyx_L7_cleaned_up;
9837 __pyx_L0:;
9838 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
9839 Py_XDECREF(values[__pyx_temp]);
9840 }
9841 __pyx_L7_cleaned_up:;
9842 __Pyx_RefNannyFinishContext();
9843 return __pyx_r;
9844}
9845
9846static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_38transferFieldToPUMI(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_inArray) {
9847 __Pyx_LocalBuf_ND __pyx_pybuffernd_inArray;
9848 __Pyx_Buffer __pyx_pybuffer_inArray;
9849 PyObject *__pyx_r = NULL;
9850 __Pyx_RefNannyDeclarations
9851 PyObject *__pyx_t_1 = NULL;
9852 PyObject *__pyx_t_2 = NULL;
9853 PyObject *__pyx_t_3 = NULL;
9854 PyObject *__pyx_t_4 = NULL;
9855 size_t __pyx_t_5;
9856 int __pyx_t_6;
9857 PyObject *__pyx_t_7 = NULL;
9858 PyObject *__pyx_t_8 = NULL;
9859 PyObject *__pyx_t_9 = NULL;
9860 char *__pyx_t_10;
9861 Py_ssize_t __pyx_t_11;
9862 Py_ssize_t __pyx_t_12;
9863 int __pyx_lineno = 0;
9864 const char *__pyx_filename = NULL;
9865 int __pyx_clineno = 0;
9866 __Pyx_RefNannySetupContext("transferFieldToPUMI", 0);
9867 __Pyx_INCREF((PyObject *)__pyx_v_inArray);
9868 __pyx_pybuffer_inArray.pybuffer.buf = NULL;
9869 __pyx_pybuffer_inArray.refcount = 0;
9870 __pyx_pybuffernd_inArray.data = NULL;
9871 __pyx_pybuffernd_inArray.rcbuffer = &__pyx_pybuffer_inArray;
9872 {
9873 __Pyx_BufFmt_StackElem __pyx_stack[1];
9874 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_inArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 109, __pyx_L1_error)
9875 }
9876 __pyx_pybuffernd_inArray.diminfo[0].strides = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_inArray.diminfo[0].shape = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_inArray.diminfo[1].strides = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_inArray.diminfo[1].shape = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.shape[1];
9877
9878 /* "MeshAdaptPUMI/MeshAdapt.pyx":110
9879 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9880 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
9881 * inArray = np.ascontiguousarray(inArray) # <<<<<<<<<<<<<<
9882 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
9883 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
9884*/
9885 __pyx_t_2 = NULL;
9886 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error)
9887 __Pyx_GOTREF(__pyx_t_3);
9888 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 110, __pyx_L1_error)
9889 __Pyx_GOTREF(__pyx_t_4);
9890 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9891 __pyx_t_5 = 1;
9892 #if CYTHON_UNPACK_METHODS
9893 if (unlikely(PyMethod_Check(__pyx_t_4))) {
9894 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
9895 assert(__pyx_t_2);
9896 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
9897 __Pyx_INCREF(__pyx_t_2);
9898 __Pyx_INCREF(__pyx__function);
9899 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
9900 __pyx_t_5 = 0;
9901 }
9902 #endif
9903 {
9904 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_inArray)};
9905 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
9906 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9907 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9908 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
9909 __Pyx_GOTREF(__pyx_t_1);
9910 }
9911 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 110, __pyx_L1_error)
9912 {
9913 __Pyx_BufFmt_StackElem __pyx_stack[1];
9914 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer);
9915 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
9916 if (unlikely(__pyx_t_6 < 0)) {
9917 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
9918 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_inArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
9919 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
9920 __Pyx_RaiseBufferFallbackError();
9921 } else {
9922 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
9923 }
9924 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
9925 }
9926 __pyx_pybuffernd_inArray.diminfo[0].strides = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_inArray.diminfo[0].shape = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_inArray.diminfo[1].strides = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_inArray.diminfo[1].shape = __pyx_pybuffernd_inArray.rcbuffer->pybuffer.shape[1];
9927 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 110, __pyx_L1_error)
9928 }
9929 __Pyx_DECREF_SET(__pyx_v_inArray, ((PyArrayObject *)__pyx_t_1));
9930 __pyx_t_1 = 0;
9931
9932 /* "MeshAdaptPUMI/MeshAdapt.pyx":111
9933 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
9934 * inArray = np.ascontiguousarray(inArray)
9935 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0]) # <<<<<<<<<<<<<<
9936 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
9937 * outArray = np.ascontiguousarray(outArray)
9938*/
9939 __pyx_t_10 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 111, __pyx_L1_error)
9940 __pyx_t_11 = 0;
9941 __pyx_t_12 = 0;
9942 __pyx_t_6 = -1;
9943 if (__pyx_t_11 < 0) {
9944 __pyx_t_11 += __pyx_pybuffernd_inArray.diminfo[0].shape;
9945 if (unlikely(__pyx_t_11 < 0)) __pyx_t_6 = 0;
9946 } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_inArray.diminfo[0].shape)) __pyx_t_6 = 0;
9947 if (__pyx_t_12 < 0) {
9948 __pyx_t_12 += __pyx_pybuffernd_inArray.diminfo[1].shape;
9949 if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 1;
9950 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_inArray.diminfo[1].shape)) __pyx_t_6 = 1;
9951 if (unlikely(__pyx_t_6 != -1)) {
9952 __Pyx_RaiseBufferIndexError(__pyx_t_6);
9953 __PYX_ERR(0, 111, __pyx_L1_error)
9954 }
9955 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->transferFieldToPUMI(__pyx_t_10, (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_inArray.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_inArray.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_inArray.diminfo[1].strides))), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_inArray))[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_inArray))[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
9956 __Pyx_GOTREF(__pyx_t_1);
9957
9958 {
9959 PyObject *__pyx_temp;
9960 {
9961 __pyx_temp = __pyx_r;
9962 __pyx_r = __pyx_t_1;
9963 }
9964 __Pyx_XDECREF(__pyx_temp);
9965 }
9966 __pyx_t_1 = 0;
9967 goto __pyx_L0;
9968
9969 /* "MeshAdaptPUMI/MeshAdapt.pyx":109
9970 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh):
9971 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
9972 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray): # <<<<<<<<<<<<<<
9973 * inArray = np.ascontiguousarray(inArray)
9974 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
9975*/
9976
9977 /* function exit code */
9978 __pyx_L1_error:;
9979 __Pyx_XDECREF(__pyx_t_1);
9980 __Pyx_XDECREF(__pyx_t_2);
9981 __Pyx_XDECREF(__pyx_t_3);
9982 __Pyx_XDECREF(__pyx_t_4);
9983 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
9984 __Pyx_PyThreadState_declare
9985 __Pyx_PyThreadState_assign
9986 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
9987 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer);
9988 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
9989 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferFieldToPUMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
9990 __pyx_r = NULL;
9991 goto __pyx_L2;
9992 __pyx_L0:;
9993 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_inArray.rcbuffer->pybuffer);
9994 __pyx_L2:;
9995
9996
9997 __Pyx_XDECREF((PyObject *)__pyx_v_inArray);
9998 __Pyx_XGIVEREF(__pyx_r);
9999 __Pyx_RefNannyFinishContext();
10000 return __pyx_r;
10001}
10002
10003/* "MeshAdaptPUMI/MeshAdapt.pyx":112
10004 * inArray = np.ascontiguousarray(inArray)
10005 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
10006 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
10007 * outArray = np.ascontiguousarray(outArray)
10008 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10009*/
10010
10011/* Python wrapper */
10012static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus(PyObject *__pyx_v_self,
10013#if CYTHON_VECTORCALL
10014PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10015#else
10016PyObject *__pyx_args, PyObject *__pyx_kwds
10017#endif
10018); /*proto*/
10019static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus = {"transferFieldToProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10020static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus(PyObject *__pyx_v_self,
10021#if CYTHON_VECTORCALL
10022PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10023#else
10024PyObject *__pyx_args, PyObject *__pyx_kwds
10025#endif
10026) {
10027 PyObject *__pyx_v_name = 0;
10028 PyArrayObject *__pyx_v_outArray = 0;
10029 #if !CYTHON_VECTORCALL
10030 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10031 #endif
10032 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10033 PyObject* values[2] = {0,0};
10034 int __pyx_lineno = 0;
10035 const char *__pyx_filename = NULL;
10036 int __pyx_clineno = 0;
10037 PyObject *__pyx_r = 0;
10038 __Pyx_RefNannyDeclarations
10039 __Pyx_RefNannySetupContext("transferFieldToProteus (wrapper)", 0);
10040 #if !CYTHON_VECTORCALL
10041 #if CYTHON_ASSUME_SAFE_SIZE
10042 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10043 #else
10044 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10045 #endif
10046 #endif
10047 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10048 {
10049 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_outArray,0};
10050 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10051 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 112, __pyx_L3_error)
10052 if (__pyx_kwds_len > 0) {
10053 switch (__pyx_nargs) {
10054 case 2:
10055 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10056 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 112, __pyx_L3_error)
10057 CYTHON_FALLTHROUGH;
10058 case 1:
10059 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10060 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 112, __pyx_L3_error)
10061 CYTHON_FALLTHROUGH;
10062 case 0: break;
10063 default: goto __pyx_L5_argtuple_error;
10064 }
10065 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10066 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "transferFieldToProteus", 0) < (0)) __PYX_ERR(0, 112, __pyx_L3_error)
10067 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
10068 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("transferFieldToProteus", 1, 2, 2, i); __PYX_ERR(0, 112, __pyx_L3_error) }
10069 }
10070 } else if (unlikely(__pyx_nargs != 2)) {
10071 goto __pyx_L5_argtuple_error;
10072 } else {
10073 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10074 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 112, __pyx_L3_error)
10075 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10076 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 112, __pyx_L3_error)
10077 }
10078 __pyx_v_name = values[0];
10079 __pyx_v_outArray = ((PyArrayObject *)values[1]);
10080 }
10081 goto __pyx_L6_skip;
10082 __pyx_L5_argtuple_error:;
10083 __Pyx_RaiseArgtupleInvalid("transferFieldToProteus", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 112, __pyx_L3_error)
10084 __pyx_L6_skip:;
10085 goto __pyx_L4_argument_unpacking_done;
10086 __pyx_L3_error:;
10087 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10088 Py_XDECREF(values[__pyx_temp]);
10089 }
10090 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferFieldToProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
10091 __Pyx_RefNannyFinishContext();
10092 return NULL;
10093 __pyx_L4_argument_unpacking_done:;
10094 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "outArray", 0))) __PYX_ERR(0, 112, __pyx_L1_error)
10095 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_40transferFieldToProteus(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_name, __pyx_v_outArray);
10096
10097 /* function exit code */
10098 goto __pyx_L0;
10099 __pyx_L1_error:;
10100 __pyx_r = NULL;
10101 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10102 Py_XDECREF(values[__pyx_temp]);
10103 }
10104 goto __pyx_L7_cleaned_up;
10105 __pyx_L0:;
10106 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10107 Py_XDECREF(values[__pyx_temp]);
10108 }
10109 __pyx_L7_cleaned_up:;
10110 __Pyx_RefNannyFinishContext();
10111 return __pyx_r;
10112}
10113
10114static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_40transferFieldToProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_outArray) {
10115 __Pyx_LocalBuf_ND __pyx_pybuffernd_outArray;
10116 __Pyx_Buffer __pyx_pybuffer_outArray;
10117 PyObject *__pyx_r = NULL;
10118 __Pyx_RefNannyDeclarations
10119 PyObject *__pyx_t_1 = NULL;
10120 PyObject *__pyx_t_2 = NULL;
10121 PyObject *__pyx_t_3 = NULL;
10122 PyObject *__pyx_t_4 = NULL;
10123 size_t __pyx_t_5;
10124 int __pyx_t_6;
10125 PyObject *__pyx_t_7 = NULL;
10126 PyObject *__pyx_t_8 = NULL;
10127 PyObject *__pyx_t_9 = NULL;
10128 char *__pyx_t_10;
10129 Py_ssize_t __pyx_t_11;
10130 Py_ssize_t __pyx_t_12;
10131 int __pyx_lineno = 0;
10132 const char *__pyx_filename = NULL;
10133 int __pyx_clineno = 0;
10134 __Pyx_RefNannySetupContext("transferFieldToProteus", 0);
10135 __Pyx_INCREF((PyObject *)__pyx_v_outArray);
10136 __pyx_pybuffer_outArray.pybuffer.buf = NULL;
10137 __pyx_pybuffer_outArray.refcount = 0;
10138 __pyx_pybuffernd_outArray.data = NULL;
10139 __pyx_pybuffernd_outArray.rcbuffer = &__pyx_pybuffer_outArray;
10140 {
10141 __Pyx_BufFmt_StackElem __pyx_stack[1];
10142 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_outArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 112, __pyx_L1_error)
10143 }
10144 __pyx_pybuffernd_outArray.diminfo[0].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outArray.diminfo[0].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outArray.diminfo[1].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outArray.diminfo[1].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[1];
10145
10146 /* "MeshAdaptPUMI/MeshAdapt.pyx":113
10147 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
10148 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10149 * outArray = np.ascontiguousarray(outArray) # <<<<<<<<<<<<<<
10150 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10151 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10152*/
10153 __pyx_t_2 = NULL;
10154 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error)
10155 __Pyx_GOTREF(__pyx_t_3);
10156 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 113, __pyx_L1_error)
10157 __Pyx_GOTREF(__pyx_t_4);
10158 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10159 __pyx_t_5 = 1;
10160 #if CYTHON_UNPACK_METHODS
10161 if (unlikely(PyMethod_Check(__pyx_t_4))) {
10162 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
10163 assert(__pyx_t_2);
10164 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
10165 __Pyx_INCREF(__pyx_t_2);
10166 __Pyx_INCREF(__pyx__function);
10167 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
10168 __pyx_t_5 = 0;
10169 }
10170 #endif
10171 {
10172 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_outArray)};
10173 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10174 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
10175 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10176 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error)
10177 __Pyx_GOTREF(__pyx_t_1);
10178 }
10179 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 113, __pyx_L1_error)
10180 {
10181 __Pyx_BufFmt_StackElem __pyx_stack[1];
10182 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10183 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
10184 if (unlikely(__pyx_t_6 < 0)) {
10185 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
10186 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_outArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
10187 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
10188 __Pyx_RaiseBufferFallbackError();
10189 } else {
10190 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
10191 }
10192 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
10193 }
10194 __pyx_pybuffernd_outArray.diminfo[0].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outArray.diminfo[0].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outArray.diminfo[1].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outArray.diminfo[1].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[1];
10195 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 113, __pyx_L1_error)
10196 }
10197 __Pyx_DECREF_SET(__pyx_v_outArray, ((PyArrayObject *)__pyx_t_1));
10198 __pyx_t_1 = 0;
10199
10200 /* "MeshAdaptPUMI/MeshAdapt.pyx":114
10201 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10202 * outArray = np.ascontiguousarray(outArray)
10203 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0]) # <<<<<<<<<<<<<<
10204 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10205 * outArray = np.ascontiguousarray(outArray)
10206*/
10207 __pyx_t_10 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 114, __pyx_L1_error)
10208 __pyx_t_11 = 0;
10209 __pyx_t_12 = 0;
10210 __pyx_t_6 = -1;
10211 if (__pyx_t_11 < 0) {
10212 __pyx_t_11 += __pyx_pybuffernd_outArray.diminfo[0].shape;
10213 if (unlikely(__pyx_t_11 < 0)) __pyx_t_6 = 0;
10214 } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_outArray.diminfo[0].shape)) __pyx_t_6 = 0;
10215 if (__pyx_t_12 < 0) {
10216 __pyx_t_12 += __pyx_pybuffernd_outArray.diminfo[1].shape;
10217 if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 1;
10218 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_outArray.diminfo[1].shape)) __pyx_t_6 = 1;
10219 if (unlikely(__pyx_t_6 != -1)) {
10220 __Pyx_RaiseBufferIndexError(__pyx_t_6);
10221 __PYX_ERR(0, 114, __pyx_L1_error)
10222 }
10223 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->transferFieldToProteus(__pyx_t_10, (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_outArray.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_outArray.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_outArray.diminfo[1].strides))), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_outArray))[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_outArray))[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error)
10224 __Pyx_GOTREF(__pyx_t_1);
10225
10226 {
10227 PyObject *__pyx_temp;
10228 {
10229 __pyx_temp = __pyx_r;
10230 __pyx_r = __pyx_t_1;
10231 }
10232 __Pyx_XDECREF(__pyx_temp);
10233 }
10234 __pyx_t_1 = 0;
10235 goto __pyx_L0;
10236
10237 /* "MeshAdaptPUMI/MeshAdapt.pyx":112
10238 * inArray = np.ascontiguousarray(inArray)
10239 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
10240 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
10241 * outArray = np.ascontiguousarray(outArray)
10242 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10243*/
10244
10245 /* function exit code */
10246 __pyx_L1_error:;
10247 __Pyx_XDECREF(__pyx_t_1);
10248 __Pyx_XDECREF(__pyx_t_2);
10249 __Pyx_XDECREF(__pyx_t_3);
10250 __Pyx_XDECREF(__pyx_t_4);
10251 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
10252 __Pyx_PyThreadState_declare
10253 __Pyx_PyThreadState_assign
10254 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
10255 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10256 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
10257 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferFieldToProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
10258 __pyx_r = NULL;
10259 goto __pyx_L2;
10260 __pyx_L0:;
10261 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10262 __pyx_L2:;
10263
10264
10265 __Pyx_XDECREF((PyObject *)__pyx_v_outArray);
10266 __Pyx_XGIVEREF(__pyx_r);
10267 __Pyx_RefNannyFinishContext();
10268 return __pyx_r;
10269}
10270
10271/* "MeshAdaptPUMI/MeshAdapt.pyx":115
10272 * outArray = np.ascontiguousarray(outArray)
10273 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10274 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
10275 * outArray = np.ascontiguousarray(outArray)
10276 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10277*/
10278
10279/* Python wrapper */
10280static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus(PyObject *__pyx_v_self,
10281#if CYTHON_VECTORCALL
10282PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10283#else
10284PyObject *__pyx_args, PyObject *__pyx_kwds
10285#endif
10286); /*proto*/
10287static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus = {"transferElementFieldToProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10288static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus(PyObject *__pyx_v_self,
10289#if CYTHON_VECTORCALL
10290PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10291#else
10292PyObject *__pyx_args, PyObject *__pyx_kwds
10293#endif
10294) {
10295 PyObject *__pyx_v_name = 0;
10296 PyArrayObject *__pyx_v_outArray = 0;
10297 #if !CYTHON_VECTORCALL
10298 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10299 #endif
10300 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10301 PyObject* values[2] = {0,0};
10302 int __pyx_lineno = 0;
10303 const char *__pyx_filename = NULL;
10304 int __pyx_clineno = 0;
10305 PyObject *__pyx_r = 0;
10306 __Pyx_RefNannyDeclarations
10307 __Pyx_RefNannySetupContext("transferElementFieldToProteus (wrapper)", 0);
10308 #if !CYTHON_VECTORCALL
10309 #if CYTHON_ASSUME_SAFE_SIZE
10310 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10311 #else
10312 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10313 #endif
10314 #endif
10315 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10316 {
10317 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_outArray,0};
10318 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10319 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 115, __pyx_L3_error)
10320 if (__pyx_kwds_len > 0) {
10321 switch (__pyx_nargs) {
10322 case 2:
10323 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10324 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 115, __pyx_L3_error)
10325 CYTHON_FALLTHROUGH;
10326 case 1:
10327 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10328 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 115, __pyx_L3_error)
10329 CYTHON_FALLTHROUGH;
10330 case 0: break;
10331 default: goto __pyx_L5_argtuple_error;
10332 }
10333 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10334 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "transferElementFieldToProteus", 0) < (0)) __PYX_ERR(0, 115, __pyx_L3_error)
10335 for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
10336 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("transferElementFieldToProteus", 1, 2, 2, i); __PYX_ERR(0, 115, __pyx_L3_error) }
10337 }
10338 } else if (unlikely(__pyx_nargs != 2)) {
10339 goto __pyx_L5_argtuple_error;
10340 } else {
10341 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10342 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 115, __pyx_L3_error)
10343 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10344 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 115, __pyx_L3_error)
10345 }
10346 __pyx_v_name = values[0];
10347 __pyx_v_outArray = ((PyArrayObject *)values[1]);
10348 }
10349 goto __pyx_L6_skip;
10350 __pyx_L5_argtuple_error:;
10351 __Pyx_RaiseArgtupleInvalid("transferElementFieldToProteus", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 115, __pyx_L3_error)
10352 __pyx_L6_skip:;
10353 goto __pyx_L4_argument_unpacking_done;
10354 __pyx_L3_error:;
10355 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10356 Py_XDECREF(values[__pyx_temp]);
10357 }
10358 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferElementFieldToProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
10359 __Pyx_RefNannyFinishContext();
10360 return NULL;
10361 __pyx_L4_argument_unpacking_done:;
10362 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outArray), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "outArray", 0))) __PYX_ERR(0, 115, __pyx_L1_error)
10363 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_42transferElementFieldToProteus(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_name, __pyx_v_outArray);
10364
10365 /* function exit code */
10366 goto __pyx_L0;
10367 __pyx_L1_error:;
10368 __pyx_r = NULL;
10369 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10370 Py_XDECREF(values[__pyx_temp]);
10371 }
10372 goto __pyx_L7_cleaned_up;
10373 __pyx_L0:;
10374 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10375 Py_XDECREF(values[__pyx_temp]);
10376 }
10377 __pyx_L7_cleaned_up:;
10378 __Pyx_RefNannyFinishContext();
10379 return __pyx_r;
10380}
10381
10382static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_42transferElementFieldToProteus(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_outArray) {
10383 __Pyx_LocalBuf_ND __pyx_pybuffernd_outArray;
10384 __Pyx_Buffer __pyx_pybuffer_outArray;
10385 PyObject *__pyx_r = NULL;
10386 __Pyx_RefNannyDeclarations
10387 PyObject *__pyx_t_1 = NULL;
10388 PyObject *__pyx_t_2 = NULL;
10389 PyObject *__pyx_t_3 = NULL;
10390 PyObject *__pyx_t_4 = NULL;
10391 size_t __pyx_t_5;
10392 int __pyx_t_6;
10393 PyObject *__pyx_t_7 = NULL;
10394 PyObject *__pyx_t_8 = NULL;
10395 PyObject *__pyx_t_9 = NULL;
10396 char *__pyx_t_10;
10397 Py_ssize_t __pyx_t_11;
10398 Py_ssize_t __pyx_t_12;
10399 int __pyx_lineno = 0;
10400 const char *__pyx_filename = NULL;
10401 int __pyx_clineno = 0;
10402 __Pyx_RefNannySetupContext("transferElementFieldToProteus", 0);
10403 __Pyx_INCREF((PyObject *)__pyx_v_outArray);
10404 __pyx_pybuffer_outArray.pybuffer.buf = NULL;
10405 __pyx_pybuffer_outArray.refcount = 0;
10406 __pyx_pybuffernd_outArray.data = NULL;
10407 __pyx_pybuffernd_outArray.rcbuffer = &__pyx_pybuffer_outArray;
10408 {
10409 __Pyx_BufFmt_StackElem __pyx_stack[1];
10410 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_outArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 115, __pyx_L1_error)
10411 }
10412 __pyx_pybuffernd_outArray.diminfo[0].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outArray.diminfo[0].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outArray.diminfo[1].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outArray.diminfo[1].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[1];
10413
10414 /* "MeshAdaptPUMI/MeshAdapt.pyx":116
10415 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10416 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10417 * outArray = np.ascontiguousarray(outArray) # <<<<<<<<<<<<<<
10418 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10419 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize):
10420*/
10421 __pyx_t_2 = NULL;
10422 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error)
10423 __Pyx_GOTREF(__pyx_t_3);
10424 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error)
10425 __Pyx_GOTREF(__pyx_t_4);
10426 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10427 __pyx_t_5 = 1;
10428 #if CYTHON_UNPACK_METHODS
10429 if (unlikely(PyMethod_Check(__pyx_t_4))) {
10430 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
10431 assert(__pyx_t_2);
10432 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
10433 __Pyx_INCREF(__pyx_t_2);
10434 __Pyx_INCREF(__pyx__function);
10435 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
10436 __pyx_t_5 = 0;
10437 }
10438 #endif
10439 {
10440 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_outArray)};
10441 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10442 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
10443 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10444 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
10445 __Pyx_GOTREF(__pyx_t_1);
10446 }
10447 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 116, __pyx_L1_error)
10448 {
10449 __Pyx_BufFmt_StackElem __pyx_stack[1];
10450 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10451 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
10452 if (unlikely(__pyx_t_6 < 0)) {
10453 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
10454 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer, (PyObject*)__pyx_v_outArray, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
10455 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
10456 __Pyx_RaiseBufferFallbackError();
10457 } else {
10458 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
10459 }
10460 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
10461 }
10462 __pyx_pybuffernd_outArray.diminfo[0].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outArray.diminfo[0].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outArray.diminfo[1].strides = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outArray.diminfo[1].shape = __pyx_pybuffernd_outArray.rcbuffer->pybuffer.shape[1];
10463 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 116, __pyx_L1_error)
10464 }
10465 __Pyx_DECREF_SET(__pyx_v_outArray, ((PyArrayObject *)__pyx_t_1));
10466 __pyx_t_1 = 0;
10467
10468 /* "MeshAdaptPUMI/MeshAdapt.pyx":117
10469 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray):
10470 * outArray = np.ascontiguousarray(outArray)
10471 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0]) # <<<<<<<<<<<<<<
10472 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize):
10473 * rho = np.ascontiguousarray(rho)
10474*/
10475 __pyx_t_10 = __Pyx_PyObject_AsWritableString(__pyx_v_name); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 117, __pyx_L1_error)
10476 __pyx_t_11 = 0;
10477 __pyx_t_12 = 0;
10478 __pyx_t_6 = -1;
10479 if (__pyx_t_11 < 0) {
10480 __pyx_t_11 += __pyx_pybuffernd_outArray.diminfo[0].shape;
10481 if (unlikely(__pyx_t_11 < 0)) __pyx_t_6 = 0;
10482 } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_outArray.diminfo[0].shape)) __pyx_t_6 = 0;
10483 if (__pyx_t_12 < 0) {
10484 __pyx_t_12 += __pyx_pybuffernd_outArray.diminfo[1].shape;
10485 if (unlikely(__pyx_t_12 < 0)) __pyx_t_6 = 1;
10486 } else if (unlikely(__pyx_t_12 >= __pyx_pybuffernd_outArray.diminfo[1].shape)) __pyx_t_6 = 1;
10487 if (unlikely(__pyx_t_6 != -1)) {
10488 __Pyx_RaiseBufferIndexError(__pyx_t_6);
10489 __PYX_ERR(0, 117, __pyx_L1_error)
10490 }
10491 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->transferElementFieldToProteus(__pyx_t_10, (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_double_t *, __pyx_pybuffernd_outArray.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_outArray.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_outArray.diminfo[1].strides))), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_outArray))[1]), (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_outArray))[0]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
10492 __Pyx_GOTREF(__pyx_t_1);
10493
10494 {
10495 PyObject *__pyx_temp;
10496 {
10497 __pyx_temp = __pyx_r;
10498 __pyx_r = __pyx_t_1;
10499 }
10500 __Pyx_XDECREF(__pyx_temp);
10501 }
10502 __pyx_t_1 = 0;
10503 goto __pyx_L0;
10504
10505 /* "MeshAdaptPUMI/MeshAdapt.pyx":115
10506 * outArray = np.ascontiguousarray(outArray)
10507 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10508 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
10509 * outArray = np.ascontiguousarray(outArray)
10510 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10511*/
10512
10513 /* function exit code */
10514 __pyx_L1_error:;
10515 __Pyx_XDECREF(__pyx_t_1);
10516 __Pyx_XDECREF(__pyx_t_2);
10517 __Pyx_XDECREF(__pyx_t_3);
10518 __Pyx_XDECREF(__pyx_t_4);
10519 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
10520 __Pyx_PyThreadState_declare
10521 __Pyx_PyThreadState_assign
10522 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
10523 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10524 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
10525 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferElementFieldToProteus", __pyx_clineno, __pyx_lineno, __pyx_filename);
10526 __pyx_r = NULL;
10527 goto __pyx_L2;
10528 __pyx_L0:;
10529 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outArray.rcbuffer->pybuffer);
10530 __pyx_L2:;
10531
10532
10533 __Pyx_XDECREF((PyObject *)__pyx_v_outArray);
10534 __Pyx_XGIVEREF(__pyx_r);
10535 __Pyx_RefNannyFinishContext();
10536 return __pyx_r;
10537}
10538
10539/* "MeshAdaptPUMI/MeshAdapt.pyx":118
10540 * outArray = np.ascontiguousarray(outArray)
10541 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10542 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize): # <<<<<<<<<<<<<<
10543 * rho = np.ascontiguousarray(rho)
10544 * nu = np.ascontiguousarray(nu)
10545*/
10546
10547/* Python wrapper */
10548static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI(PyObject *__pyx_v_self,
10549#if CYTHON_VECTORCALL
10550PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10551#else
10552PyObject *__pyx_args, PyObject *__pyx_kwds
10553#endif
10554); /*proto*/
10555static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI = {"transferPropertiesToPUMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10556static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI(PyObject *__pyx_v_self,
10557#if CYTHON_VECTORCALL
10558PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10559#else
10560PyObject *__pyx_args, PyObject *__pyx_kwds
10561#endif
10562) {
10563 PyArrayObject *__pyx_v_rho = 0;
10564 PyArrayObject *__pyx_v_nu = 0;
10565 PyArrayObject *__pyx_v_g = 0;
10566 double __pyx_v_deltaT;
10567 double __pyx_v_deltaT_next;
10568 double __pyx_v_T_simulation;
10569 double __pyx_v_interfaceBandSize;
10570 #if !CYTHON_VECTORCALL
10571 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
10572 #endif
10573 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10574 PyObject* values[7] = {0,0,0,0,0,0,0};
10575 int __pyx_lineno = 0;
10576 const char *__pyx_filename = NULL;
10577 int __pyx_clineno = 0;
10578 PyObject *__pyx_r = 0;
10579 __Pyx_RefNannyDeclarations
10580 __Pyx_RefNannySetupContext("transferPropertiesToPUMI (wrapper)", 0);
10581 #if !CYTHON_VECTORCALL
10582 #if CYTHON_ASSUME_SAFE_SIZE
10583 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
10584 #else
10585 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
10586 #endif
10587 #endif
10588 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
10589 {
10590 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rho,&__pyx_mstate_global->__pyx_n_u_nu,&__pyx_mstate_global->__pyx_n_u_g,&__pyx_mstate_global->__pyx_n_u_deltaT,&__pyx_mstate_global->__pyx_n_u_deltaT_next,&__pyx_mstate_global->__pyx_n_u_T_simulation,&__pyx_mstate_global->__pyx_n_u_interfaceBandSize,0};
10591 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
10592 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 118, __pyx_L3_error)
10593 if (__pyx_kwds_len > 0) {
10594 switch (__pyx_nargs) {
10595 case 7:
10596 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10597 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 118, __pyx_L3_error)
10598 CYTHON_FALLTHROUGH;
10599 case 6:
10600 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10601 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 118, __pyx_L3_error)
10602 CYTHON_FALLTHROUGH;
10603 case 5:
10604 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10605 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 118, __pyx_L3_error)
10606 CYTHON_FALLTHROUGH;
10607 case 4:
10608 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10609 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 118, __pyx_L3_error)
10610 CYTHON_FALLTHROUGH;
10611 case 3:
10612 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10613 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 118, __pyx_L3_error)
10614 CYTHON_FALLTHROUGH;
10615 case 2:
10616 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10617 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 118, __pyx_L3_error)
10618 CYTHON_FALLTHROUGH;
10619 case 1:
10620 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10621 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 118, __pyx_L3_error)
10622 CYTHON_FALLTHROUGH;
10623 case 0: break;
10624 default: goto __pyx_L5_argtuple_error;
10625 }
10626 const Py_ssize_t kwd_pos_args = __pyx_nargs;
10627 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "transferPropertiesToPUMI", 0) < (0)) __PYX_ERR(0, 118, __pyx_L3_error)
10628 for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
10629 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("transferPropertiesToPUMI", 1, 7, 7, i); __PYX_ERR(0, 118, __pyx_L3_error) }
10630 }
10631 } else if (unlikely(__pyx_nargs != 7)) {
10632 goto __pyx_L5_argtuple_error;
10633 } else {
10634 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
10635 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 118, __pyx_L3_error)
10636 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
10637 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 118, __pyx_L3_error)
10638 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
10639 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 118, __pyx_L3_error)
10640 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
10641 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 118, __pyx_L3_error)
10642 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
10643 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 118, __pyx_L3_error)
10644 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
10645 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 118, __pyx_L3_error)
10646 values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
10647 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 118, __pyx_L3_error)
10648 }
10649 __pyx_v_rho = ((PyArrayObject *)values[0]);
10650 __pyx_v_nu = ((PyArrayObject *)values[1]);
10651 __pyx_v_g = ((PyArrayObject *)values[2]);
10652 __pyx_v_deltaT = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_deltaT == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
10653 __pyx_v_deltaT_next = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_deltaT_next == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
10654 __pyx_v_T_simulation = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_T_simulation == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
10655 __pyx_v_interfaceBandSize = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_interfaceBandSize == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
10656 }
10657 goto __pyx_L6_skip;
10658 __pyx_L5_argtuple_error:;
10659 __Pyx_RaiseArgtupleInvalid("transferPropertiesToPUMI", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 118, __pyx_L3_error)
10660 __pyx_L6_skip:;
10661 goto __pyx_L4_argument_unpacking_done;
10662 __pyx_L3_error:;
10663 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10664 Py_XDECREF(values[__pyx_temp]);
10665 }
10666 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferPropertiesToPUMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
10667 __Pyx_RefNannyFinishContext();
10668 return NULL;
10669 __pyx_L4_argument_unpacking_done:;
10670 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rho), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "rho", 0))) __PYX_ERR(0, 118, __pyx_L1_error)
10671 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "nu", 0))) __PYX_ERR(0, 118, __pyx_L1_error)
10672 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "g", 0))) __PYX_ERR(0, 118, __pyx_L1_error)
10673 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_44transferPropertiesToPUMI(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_rho, __pyx_v_nu, __pyx_v_g, __pyx_v_deltaT, __pyx_v_deltaT_next, __pyx_v_T_simulation, __pyx_v_interfaceBandSize);
10674
10675 /* function exit code */
10676 goto __pyx_L0;
10677 __pyx_L1_error:;
10678 __pyx_r = NULL;
10679 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10680 Py_XDECREF(values[__pyx_temp]);
10681 }
10682 goto __pyx_L7_cleaned_up;
10683 __pyx_L0:;
10684 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
10685 Py_XDECREF(values[__pyx_temp]);
10686 }
10687 __pyx_L7_cleaned_up:;
10688
10689
10690
10691
10692 __Pyx_RefNannyFinishContext();
10693 return __pyx_r;
10694}
10695
10696static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_44transferPropertiesToPUMI(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_rho, PyArrayObject *__pyx_v_nu, PyArrayObject *__pyx_v_g, double __pyx_v_deltaT, double __pyx_v_deltaT_next, double __pyx_v_T_simulation, double __pyx_v_interfaceBandSize) {
10697 __Pyx_LocalBuf_ND __pyx_pybuffernd_g;
10698 __Pyx_Buffer __pyx_pybuffer_g;
10699 __Pyx_LocalBuf_ND __pyx_pybuffernd_nu;
10700 __Pyx_Buffer __pyx_pybuffer_nu;
10701 __Pyx_LocalBuf_ND __pyx_pybuffernd_rho;
10702 __Pyx_Buffer __pyx_pybuffer_rho;
10703 PyObject *__pyx_r = NULL;
10704 __Pyx_RefNannyDeclarations
10705 PyObject *__pyx_t_1 = NULL;
10706 PyObject *__pyx_t_2 = NULL;
10707 PyObject *__pyx_t_3 = NULL;
10708 PyObject *__pyx_t_4 = NULL;
10709 size_t __pyx_t_5;
10710 int __pyx_t_6;
10711 PyObject *__pyx_t_7 = NULL;
10712 PyObject *__pyx_t_8 = NULL;
10713 PyObject *__pyx_t_9 = NULL;
10714 int __pyx_lineno = 0;
10715 const char *__pyx_filename = NULL;
10716 int __pyx_clineno = 0;
10717 __Pyx_RefNannySetupContext("transferPropertiesToPUMI", 0);
10718 __Pyx_INCREF((PyObject *)__pyx_v_rho);
10719 __Pyx_INCREF((PyObject *)__pyx_v_nu);
10720 __Pyx_INCREF((PyObject *)__pyx_v_g);
10721 __pyx_pybuffer_rho.pybuffer.buf = NULL;
10722 __pyx_pybuffer_rho.refcount = 0;
10723 __pyx_pybuffernd_rho.data = NULL;
10724 __pyx_pybuffernd_rho.rcbuffer = &__pyx_pybuffer_rho;
10725 __pyx_pybuffer_nu.pybuffer.buf = NULL;
10726 __pyx_pybuffer_nu.refcount = 0;
10727 __pyx_pybuffernd_nu.data = NULL;
10728 __pyx_pybuffernd_nu.rcbuffer = &__pyx_pybuffer_nu;
10729 __pyx_pybuffer_g.pybuffer.buf = NULL;
10730 __pyx_pybuffer_g.refcount = 0;
10731 __pyx_pybuffernd_g.data = NULL;
10732 __pyx_pybuffernd_g.rcbuffer = &__pyx_pybuffer_g;
10733 {
10734 __Pyx_BufFmt_StackElem __pyx_stack[1];
10735 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rho.rcbuffer->pybuffer, (PyObject*)__pyx_v_rho, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 118, __pyx_L1_error)
10736 }
10737 __pyx_pybuffernd_rho.diminfo[0].strides = __pyx_pybuffernd_rho.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rho.diminfo[0].shape = __pyx_pybuffernd_rho.rcbuffer->pybuffer.shape[0];
10738 {
10739 __Pyx_BufFmt_StackElem __pyx_stack[1];
10740 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_nu.rcbuffer->pybuffer, (PyObject*)__pyx_v_nu, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 118, __pyx_L1_error)
10741 }
10742 __pyx_pybuffernd_nu.diminfo[0].strides = __pyx_pybuffernd_nu.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_nu.diminfo[0].shape = __pyx_pybuffernd_nu.rcbuffer->pybuffer.shape[0];
10743 {
10744 __Pyx_BufFmt_StackElem __pyx_stack[1];
10745 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_g.rcbuffer->pybuffer, (PyObject*)__pyx_v_g, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 118, __pyx_L1_error)
10746 }
10747 __pyx_pybuffernd_g.diminfo[0].strides = __pyx_pybuffernd_g.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_g.diminfo[0].shape = __pyx_pybuffernd_g.rcbuffer->pybuffer.shape[0];
10748
10749 /* "MeshAdaptPUMI/MeshAdapt.pyx":119
10750 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10751 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize):
10752 * rho = np.ascontiguousarray(rho) # <<<<<<<<<<<<<<
10753 * nu = np.ascontiguousarray(nu)
10754 * g = np.ascontiguousarray(g)
10755*/
10756 __pyx_t_2 = NULL;
10757 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error)
10758 __Pyx_GOTREF(__pyx_t_3);
10759 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error)
10760 __Pyx_GOTREF(__pyx_t_4);
10761 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10762 __pyx_t_5 = 1;
10763 #if CYTHON_UNPACK_METHODS
10764 if (unlikely(PyMethod_Check(__pyx_t_4))) {
10765 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
10766 assert(__pyx_t_2);
10767 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
10768 __Pyx_INCREF(__pyx_t_2);
10769 __Pyx_INCREF(__pyx__function);
10770 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
10771 __pyx_t_5 = 0;
10772 }
10773 #endif
10774 {
10775 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_rho)};
10776 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10777 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
10778 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10779 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error)
10780 __Pyx_GOTREF(__pyx_t_1);
10781 }
10782 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 119, __pyx_L1_error)
10783 {
10784 __Pyx_BufFmt_StackElem __pyx_stack[1];
10785 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rho.rcbuffer->pybuffer);
10786 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rho.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
10787 if (unlikely(__pyx_t_6 < 0)) {
10788 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
10789 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rho.rcbuffer->pybuffer, (PyObject*)__pyx_v_rho, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
10790 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
10791 __Pyx_RaiseBufferFallbackError();
10792 } else {
10793 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
10794 }
10795 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
10796 }
10797 __pyx_pybuffernd_rho.diminfo[0].strides = __pyx_pybuffernd_rho.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rho.diminfo[0].shape = __pyx_pybuffernd_rho.rcbuffer->pybuffer.shape[0];
10798 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 119, __pyx_L1_error)
10799 }
10800 __Pyx_DECREF_SET(__pyx_v_rho, ((PyArrayObject *)__pyx_t_1));
10801 __pyx_t_1 = 0;
10802
10803 /* "MeshAdaptPUMI/MeshAdapt.pyx":120
10804 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize):
10805 * rho = np.ascontiguousarray(rho)
10806 * nu = np.ascontiguousarray(nu) # <<<<<<<<<<<<<<
10807 * g = np.ascontiguousarray(g)
10808 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize)
10809*/
10810 __pyx_t_4 = NULL;
10811 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 120, __pyx_L1_error)
10812 __Pyx_GOTREF(__pyx_t_2);
10813 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 120, __pyx_L1_error)
10814 __Pyx_GOTREF(__pyx_t_3);
10815 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10816 __pyx_t_5 = 1;
10817 #if CYTHON_UNPACK_METHODS
10818 if (unlikely(PyMethod_Check(__pyx_t_3))) {
10819 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
10820 assert(__pyx_t_4);
10821 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
10822 __Pyx_INCREF(__pyx_t_4);
10823 __Pyx_INCREF(__pyx__function);
10824 __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
10825 __pyx_t_5 = 0;
10826 }
10827 #endif
10828 {
10829 PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_nu)};
10830 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10831 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10832 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10833 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
10834 __Pyx_GOTREF(__pyx_t_1);
10835 }
10836 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 120, __pyx_L1_error)
10837 {
10838 __Pyx_BufFmt_StackElem __pyx_stack[1];
10839 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_nu.rcbuffer->pybuffer);
10840 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_nu.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
10841 if (unlikely(__pyx_t_6 < 0)) {
10842 __Pyx_PyErr_FetchException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
10843 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_nu.rcbuffer->pybuffer, (PyObject*)__pyx_v_nu, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
10844 Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7);
10845 __Pyx_RaiseBufferFallbackError();
10846 } else {
10847 __Pyx_PyErr_RestoreException(__pyx_t_9, __pyx_t_8, __pyx_t_7);
10848 }
10849 __pyx_t_9 = __pyx_t_8 = __pyx_t_7 = 0;
10850 }
10851 __pyx_pybuffernd_nu.diminfo[0].strides = __pyx_pybuffernd_nu.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_nu.diminfo[0].shape = __pyx_pybuffernd_nu.rcbuffer->pybuffer.shape[0];
10852 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 120, __pyx_L1_error)
10853 }
10854 __Pyx_DECREF_SET(__pyx_v_nu, ((PyArrayObject *)__pyx_t_1));
10855 __pyx_t_1 = 0;
10856
10857 /* "MeshAdaptPUMI/MeshAdapt.pyx":121
10858 * rho = np.ascontiguousarray(rho)
10859 * nu = np.ascontiguousarray(nu)
10860 * g = np.ascontiguousarray(g) # <<<<<<<<<<<<<<
10861 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize)
10862 *
10863*/
10864 __pyx_t_3 = NULL;
10865 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 121, __pyx_L1_error)
10866 __Pyx_GOTREF(__pyx_t_4);
10867 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
10868 __Pyx_GOTREF(__pyx_t_2);
10869 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10870 __pyx_t_5 = 1;
10871 #if CYTHON_UNPACK_METHODS
10872 if (unlikely(PyMethod_Check(__pyx_t_2))) {
10873 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
10874 assert(__pyx_t_3);
10875 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
10876 __Pyx_INCREF(__pyx_t_3);
10877 __Pyx_INCREF(__pyx__function);
10878 __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
10879 __pyx_t_5 = 0;
10880 }
10881 #endif
10882 {
10883 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_g)};
10884 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10885 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10886 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10887 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error)
10888 __Pyx_GOTREF(__pyx_t_1);
10889 }
10890 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 121, __pyx_L1_error)
10891 {
10892 __Pyx_BufFmt_StackElem __pyx_stack[1];
10893 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_g.rcbuffer->pybuffer);
10894 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_g.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
10895 if (unlikely(__pyx_t_6 < 0)) {
10896 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
10897 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_g.rcbuffer->pybuffer, (PyObject*)__pyx_v_g, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
10898 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
10899 __Pyx_RaiseBufferFallbackError();
10900 } else {
10901 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
10902 }
10903 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
10904 }
10905 __pyx_pybuffernd_g.diminfo[0].strides = __pyx_pybuffernd_g.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_g.diminfo[0].shape = __pyx_pybuffernd_g.rcbuffer->pybuffer.shape[0];
10906 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 121, __pyx_L1_error)
10907 }
10908 __Pyx_DECREF_SET(__pyx_v_g, ((PyArrayObject *)__pyx_t_1));
10909 __pyx_t_1 = 0;
10910
10911 /* "MeshAdaptPUMI/MeshAdapt.pyx":122
10912 * nu = np.ascontiguousarray(nu)
10913 * g = np.ascontiguousarray(g)
10914 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize) # <<<<<<<<<<<<<<
10915 *
10916 * def setAdaptProperties(self,manager):
10917*/
10918 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->transferPropertiesToPUMI(((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_rho))), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_nu))), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_g))), __pyx_v_deltaT, __pyx_v_deltaT_next, __pyx_v_T_simulation, __pyx_v_interfaceBandSize)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error)
10919 __Pyx_GOTREF(__pyx_t_1);
10920 {
10921 PyObject *__pyx_temp;
10922 {
10923 __pyx_temp = __pyx_r;
10924 __pyx_r = __pyx_t_1;
10925 }
10926 __Pyx_XDECREF(__pyx_temp);
10927 }
10928 __pyx_t_1 = 0;
10929 goto __pyx_L0;
10930
10931 /* "MeshAdaptPUMI/MeshAdapt.pyx":118
10932 * outArray = np.ascontiguousarray(outArray)
10933 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
10934 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize): # <<<<<<<<<<<<<<
10935 * rho = np.ascontiguousarray(rho)
10936 * nu = np.ascontiguousarray(nu)
10937*/
10938
10939 /* function exit code */
10940 __pyx_L1_error:;
10941 __Pyx_XDECREF(__pyx_t_1);
10942 __Pyx_XDECREF(__pyx_t_2);
10943 __Pyx_XDECREF(__pyx_t_3);
10944 __Pyx_XDECREF(__pyx_t_4);
10945 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
10946 __Pyx_PyThreadState_declare
10947 __Pyx_PyThreadState_assign
10948 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
10949 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_g.rcbuffer->pybuffer);
10950 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_nu.rcbuffer->pybuffer);
10951 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rho.rcbuffer->pybuffer);
10952 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
10953 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferPropertiesToPUMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
10954 __pyx_r = NULL;
10955 goto __pyx_L2;
10956 __pyx_L0:;
10957 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_g.rcbuffer->pybuffer);
10958 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_nu.rcbuffer->pybuffer);
10959 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rho.rcbuffer->pybuffer);
10960 __pyx_L2:;
10961
10962
10963
10964
10965
10966
10967 __Pyx_XDECREF((PyObject *)__pyx_v_rho);
10968 __Pyx_XDECREF((PyObject *)__pyx_v_nu);
10969 __Pyx_XDECREF((PyObject *)__pyx_v_g);
10970 __Pyx_XGIVEREF(__pyx_r);
10971 __Pyx_RefNannyFinishContext();
10972 return __pyx_r;
10973}
10974
10975/* "MeshAdaptPUMI/MeshAdapt.pyx":124
10976 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize)
10977 *
10978 * def setAdaptProperties(self,manager): # <<<<<<<<<<<<<<
10979 * cdef vector[string] sizeInputs
10980 * for entry in manager.sizeInputs:
10981*/
10982
10983/* Python wrapper */
10984static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties(PyObject *__pyx_v_self,
10985#if CYTHON_VECTORCALL
10986PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10987#else
10988PyObject *__pyx_args, PyObject *__pyx_kwds
10989#endif
10990); /*proto*/
10991static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties = {"setAdaptProperties", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
10992static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties(PyObject *__pyx_v_self,
10993#if CYTHON_VECTORCALL
10994PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
10995#else
10996PyObject *__pyx_args, PyObject *__pyx_kwds
10997#endif
10998) {
10999 PyObject *__pyx_v_manager = 0;
11000 #if !CYTHON_VECTORCALL
11001 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11002 #endif
11003 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11004 PyObject* values[1] = {0};
11005 int __pyx_lineno = 0;
11006 const char *__pyx_filename = NULL;
11007 int __pyx_clineno = 0;
11008 PyObject *__pyx_r = 0;
11009 __Pyx_RefNannyDeclarations
11010 __Pyx_RefNannySetupContext("setAdaptProperties (wrapper)", 0);
11011 #if !CYTHON_VECTORCALL
11012 #if CYTHON_ASSUME_SAFE_SIZE
11013 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11014 #else
11015 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11016 #endif
11017 #endif
11018 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11019 {
11020 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_manager,0};
11021 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11022 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 124, __pyx_L3_error)
11023 if (__pyx_kwds_len > 0) {
11024 switch (__pyx_nargs) {
11025 case 1:
11026 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11027 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 124, __pyx_L3_error)
11028 CYTHON_FALLTHROUGH;
11029 case 0: break;
11030 default: goto __pyx_L5_argtuple_error;
11031 }
11032 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11033 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "setAdaptProperties", 0) < (0)) __PYX_ERR(0, 124, __pyx_L3_error)
11034 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
11035 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("setAdaptProperties", 1, 1, 1, i); __PYX_ERR(0, 124, __pyx_L3_error) }
11036 }
11037 } else if (unlikely(__pyx_nargs != 1)) {
11038 goto __pyx_L5_argtuple_error;
11039 } else {
11040 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11041 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 124, __pyx_L3_error)
11042 }
11043 __pyx_v_manager = values[0];
11044 }
11045 goto __pyx_L6_skip;
11046 __pyx_L5_argtuple_error:;
11047 __Pyx_RaiseArgtupleInvalid("setAdaptProperties", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 124, __pyx_L3_error)
11048 __pyx_L6_skip:;
11049 goto __pyx_L4_argument_unpacking_done;
11050 __pyx_L3_error:;
11051 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11052 Py_XDECREF(values[__pyx_temp]);
11053 }
11054 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.setAdaptProperties", __pyx_clineno, __pyx_lineno, __pyx_filename);
11055 __Pyx_RefNannyFinishContext();
11056 return NULL;
11057 __pyx_L4_argument_unpacking_done:;
11058 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_46setAdaptProperties(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_manager);
11059
11060 /* function exit code */
11061 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11062 Py_XDECREF(values[__pyx_temp]);
11063 }
11064 __Pyx_RefNannyFinishContext();
11065 return __pyx_r;
11066}
11067
11068static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_46setAdaptProperties(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_manager) {
11069 std::vector<std::string> __pyx_v_sizeInputs;
11070 PyObject *__pyx_v_entry = NULL;
11071 PyObject *__pyx_r = NULL;
11072 __Pyx_RefNannyDeclarations
11073 PyObject *__pyx_t_1 = NULL;
11074 PyObject *__pyx_t_2 = NULL;
11075 Py_ssize_t __pyx_t_3;
11076 PyObject *(*__pyx_t_4)(PyObject *);
11077 std::string __pyx_t_5;
11078 int __pyx_t_6;
11079 double __pyx_t_7;
11080 double __pyx_t_8;
11081 double __pyx_t_9;
11082 int __pyx_t_10;
11083 double __pyx_t_11;
11084 double __pyx_t_12;
11085 int __pyx_t_13;
11086 int __pyx_t_14;
11087 int __pyx_lineno = 0;
11088 const char *__pyx_filename = NULL;
11089 int __pyx_clineno = 0;
11090 __Pyx_RefNannySetupContext("setAdaptProperties", 0);
11091
11092 /* "MeshAdaptPUMI/MeshAdapt.pyx":126
11093 * def setAdaptProperties(self,manager):
11094 * cdef vector[string] sizeInputs
11095 * for entry in manager.sizeInputs: # <<<<<<<<<<<<<<
11096 * sizeInputs.push_back(entry)
11097 * return self.thisptr.setAdaptProperties(
11098*/
11099 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_sizeInputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error)
11100 __Pyx_GOTREF(__pyx_t_1);
11101 if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
11102 __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
11103 __pyx_t_3 = 0;
11104 __pyx_t_4 = NULL;
11105 } else {
11106 __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 126, __pyx_L1_error)
11107 __Pyx_GOTREF(__pyx_t_2);
11108 __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 126, __pyx_L1_error)
11109 }
11110 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11111 for (;;) {
11112 if (likely(!__pyx_t_4)) {
11113 if (likely(PyList_CheckExact(__pyx_t_2))) {
11114 {
11115 Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
11116 #if !CYTHON_ASSUME_SAFE_SIZE
11117 if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 126, __pyx_L1_error)
11118 #endif
11119 if (__pyx_t_3 >= __pyx_temp) break;
11120 }
11121 __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
11122 ++__pyx_t_3;
11123 } else {
11124 {
11125 Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
11126 #if !CYTHON_ASSUME_SAFE_SIZE
11127 if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 126, __pyx_L1_error)
11128 #endif
11129 if (__pyx_t_3 >= __pyx_temp) break;
11130 }
11131 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
11132 __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3));
11133 #else
11134 __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3);
11135 #endif
11136 ++__pyx_t_3;
11137 }
11138 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error)
11139 } else {
11140 __pyx_t_1 = __pyx_t_4(__pyx_t_2);
11141 if (unlikely(!__pyx_t_1)) {
11142 PyObject* exc_type = PyErr_Occurred();
11143 if (exc_type) {
11144 if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 126, __pyx_L1_error)
11145 PyErr_Clear();
11146 }
11147 break;
11148 }
11149 }
11150 __Pyx_GOTREF(__pyx_t_1);
11151 __Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_1);
11152 __pyx_t_1 = 0;
11153
11154 /* "MeshAdaptPUMI/MeshAdapt.pyx":127
11155 * cdef vector[string] sizeInputs
11156 * for entry in manager.sizeInputs:
11157 * sizeInputs.push_back(entry) # <<<<<<<<<<<<<<
11158 * return self.thisptr.setAdaptProperties(
11159 * sizeInputs,
11160*/
11161 __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_v_entry); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 127, __pyx_L1_error)
11162 try {
11163 __pyx_v_sizeInputs.push_back(__pyx_t_5);
11164 } catch(...) {
11165 __Pyx_CppExn2PyErr();
11166 __PYX_ERR(0, 127, __pyx_L1_error)
11167 }
11168
11169
11170 /* "MeshAdaptPUMI/MeshAdapt.pyx":126
11171 * def setAdaptProperties(self,manager):
11172 * cdef vector[string] sizeInputs
11173 * for entry in manager.sizeInputs: # <<<<<<<<<<<<<<
11174 * sizeInputs.push_back(entry)
11175 * return self.thisptr.setAdaptProperties(
11176*/
11177 }
11178 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11179
11180 /* "MeshAdaptPUMI/MeshAdapt.pyx":130
11181 * return self.thisptr.setAdaptProperties(
11182 * sizeInputs,
11183 * manager.adapt, # <<<<<<<<<<<<<<
11184 * manager.hmax,
11185 * manager.hmin,
11186*/
11187 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_adapt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 130, __pyx_L1_error)
11188 __Pyx_GOTREF(__pyx_t_2);
11189 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L1_error)
11190 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11191
11192 /* "MeshAdaptPUMI/MeshAdapt.pyx":131
11193 * sizeInputs,
11194 * manager.adapt,
11195 * manager.hmax, # <<<<<<<<<<<<<<
11196 * manager.hmin,
11197 * manager.hphi,
11198*/
11199 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_hmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __pyx_L1_error)
11200 __Pyx_GOTREF(__pyx_t_2);
11201 __pyx_t_7 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error)
11202 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11203
11204 /* "MeshAdaptPUMI/MeshAdapt.pyx":132
11205 * manager.adapt,
11206 * manager.hmax,
11207 * manager.hmin, # <<<<<<<<<<<<<<
11208 * manager.hphi,
11209 * manager.numAdaptSteps,
11210*/
11211 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_hmin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error)
11212 __Pyx_GOTREF(__pyx_t_2);
11213 __pyx_t_8 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error)
11214 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11215
11216 /* "MeshAdaptPUMI/MeshAdapt.pyx":133
11217 * manager.hmax,
11218 * manager.hmin,
11219 * manager.hphi, # <<<<<<<<<<<<<<
11220 * manager.numAdaptSteps,
11221 * manager.targetError,
11222*/
11223 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_hphi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error)
11224 __Pyx_GOTREF(__pyx_t_2);
11225 __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error)
11226 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11227
11228 /* "MeshAdaptPUMI/MeshAdapt.pyx":134
11229 * manager.hmin,
11230 * manager.hphi,
11231 * manager.numAdaptSteps, # <<<<<<<<<<<<<<
11232 * manager.targetError,
11233 * manager.gradingFactor,
11234*/
11235 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_numAdaptSteps); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error)
11236 __Pyx_GOTREF(__pyx_t_2);
11237 __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error)
11238 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11239
11240 /* "MeshAdaptPUMI/MeshAdapt.pyx":135
11241 * manager.hphi,
11242 * manager.numAdaptSteps,
11243 * manager.targetError, # <<<<<<<<<<<<<<
11244 * manager.gradingFactor,
11245 * manager.logging,
11246*/
11247 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_targetError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error)
11248 __Pyx_GOTREF(__pyx_t_2);
11249 __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error)
11250 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11251
11252 /* "MeshAdaptPUMI/MeshAdapt.pyx":136
11253 * manager.numAdaptSteps,
11254 * manager.targetError,
11255 * manager.gradingFactor, # <<<<<<<<<<<<<<
11256 * manager.logging,
11257 * manager.numIterations
11258*/
11259 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_gradingFactor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error)
11260 __Pyx_GOTREF(__pyx_t_2);
11261 __pyx_t_12 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error)
11262 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11263
11264 /* "MeshAdaptPUMI/MeshAdapt.pyx":137
11265 * manager.targetError,
11266 * manager.gradingFactor,
11267 * manager.logging, # <<<<<<<<<<<<<<
11268 * manager.numIterations
11269 * )
11270*/
11271 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
11272 __Pyx_GOTREF(__pyx_t_2);
11273 __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error)
11274 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11275
11276 /* "MeshAdaptPUMI/MeshAdapt.pyx":138
11277 * manager.gradingFactor,
11278 * manager.logging,
11279 * manager.numIterations # <<<<<<<<<<<<<<
11280 * )
11281 *
11282*/
11283 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_manager, __pyx_mstate_global->__pyx_n_u_numIterations); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error)
11284 __Pyx_GOTREF(__pyx_t_2);
11285 __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error)
11286 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11287
11288 /* "MeshAdaptPUMI/MeshAdapt.pyx":128
11289 * for entry in manager.sizeInputs:
11290 * sizeInputs.push_back(entry)
11291 * return self.thisptr.setAdaptProperties( # <<<<<<<<<<<<<<
11292 * sizeInputs,
11293 * manager.adapt,
11294*/
11295 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->setAdaptProperties(__pyx_v_sizeInputs, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13, __pyx_t_14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 128, __pyx_L1_error)
11296 __Pyx_GOTREF(__pyx_t_2);
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306 {
11307 PyObject *__pyx_temp;
11308 {
11309 __pyx_temp = __pyx_r;
11310 __pyx_r = __pyx_t_2;
11311 }
11312 __Pyx_XDECREF(__pyx_temp);
11313 }
11314 __pyx_t_2 = 0;
11315 goto __pyx_L0;
11316
11317 /* "MeshAdaptPUMI/MeshAdapt.pyx":124
11318 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize)
11319 *
11320 * def setAdaptProperties(self,manager): # <<<<<<<<<<<<<<
11321 * cdef vector[string] sizeInputs
11322 * for entry in manager.sizeInputs:
11323*/
11324
11325 /* function exit code */
11326 __pyx_L1_error:;
11327 __Pyx_XDECREF(__pyx_t_1);
11328 __Pyx_XDECREF(__pyx_t_2);
11329 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.setAdaptProperties", __pyx_clineno, __pyx_lineno, __pyx_filename);
11330 __pyx_r = NULL;
11331 __pyx_L0:;
11332
11333 __Pyx_XDECREF(__pyx_v_entry);
11334 __Pyx_XGIVEREF(__pyx_r);
11335 __Pyx_RefNannyFinishContext();
11336 return __pyx_r;
11337}
11338
11339/* "MeshAdaptPUMI/MeshAdapt.pyx":142
11340 *
11341 *
11342 * def transferModelInfo(self, np.ndarray[int,ndim=1,mode="c"] numModelEntities, # <<<<<<<<<<<<<<
11343 * np.ndarray[int,ndim=2,mode="c"] edges,
11344 * np.ndarray[int,ndim=2,mode="c"] faces,
11345*/
11346
11347/* Python wrapper */
11348static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo(PyObject *__pyx_v_self,
11349#if CYTHON_VECTORCALL
11350PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11351#else
11352PyObject *__pyx_args, PyObject *__pyx_kwds
11353#endif
11354); /*proto*/
11355static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo = {"transferModelInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
11356static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo(PyObject *__pyx_v_self,
11357#if CYTHON_VECTORCALL
11358PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11359#else
11360PyObject *__pyx_args, PyObject *__pyx_kwds
11361#endif
11362) {
11363 PyArrayObject *__pyx_v_numModelEntities = 0;
11364 PyArrayObject *__pyx_v_edges = 0;
11365 PyArrayObject *__pyx_v_faces = 0;
11366 PyArrayObject *__pyx_v_meshVertex2Model = 0;
11367 PyArrayObject *__pyx_v_meshEdge2Model = 0;
11368 PyArrayObject *__pyx_v_meshBoundary2Model = 0;
11369 #if !CYTHON_VECTORCALL
11370 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11371 #endif
11372 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11373 PyObject* values[6] = {0,0,0,0,0,0};
11374 int __pyx_lineno = 0;
11375 const char *__pyx_filename = NULL;
11376 int __pyx_clineno = 0;
11377 PyObject *__pyx_r = 0;
11378 __Pyx_RefNannyDeclarations
11379 __Pyx_RefNannySetupContext("transferModelInfo (wrapper)", 0);
11380 #if !CYTHON_VECTORCALL
11381 #if CYTHON_ASSUME_SAFE_SIZE
11382 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11383 #else
11384 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11385 #endif
11386 #endif
11387 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11388 {
11389 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_numModelEntities,&__pyx_mstate_global->__pyx_n_u_edges,&__pyx_mstate_global->__pyx_n_u_faces,&__pyx_mstate_global->__pyx_n_u_meshVertex2Model,&__pyx_mstate_global->__pyx_n_u_meshEdge2Model,&__pyx_mstate_global->__pyx_n_u_meshBoundary2Model,0};
11390 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
11391 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 142, __pyx_L3_error)
11392 if (__pyx_kwds_len > 0) {
11393 switch (__pyx_nargs) {
11394 case 6:
11395 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11396 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 142, __pyx_L3_error)
11397 CYTHON_FALLTHROUGH;
11398 case 5:
11399 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11400 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 142, __pyx_L3_error)
11401 CYTHON_FALLTHROUGH;
11402 case 4:
11403 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11404 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 142, __pyx_L3_error)
11405 CYTHON_FALLTHROUGH;
11406 case 3:
11407 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11408 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 142, __pyx_L3_error)
11409 CYTHON_FALLTHROUGH;
11410 case 2:
11411 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11412 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 142, __pyx_L3_error)
11413 CYTHON_FALLTHROUGH;
11414 case 1:
11415 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11416 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 142, __pyx_L3_error)
11417 CYTHON_FALLTHROUGH;
11418 case 0: break;
11419 default: goto __pyx_L5_argtuple_error;
11420 }
11421 const Py_ssize_t kwd_pos_args = __pyx_nargs;
11422 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "transferModelInfo", 0) < (0)) __PYX_ERR(0, 142, __pyx_L3_error)
11423 for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
11424 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("transferModelInfo", 1, 6, 6, i); __PYX_ERR(0, 142, __pyx_L3_error) }
11425 }
11426 } else if (unlikely(__pyx_nargs != 6)) {
11427 goto __pyx_L5_argtuple_error;
11428 } else {
11429 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
11430 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 142, __pyx_L3_error)
11431 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
11432 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 142, __pyx_L3_error)
11433 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
11434 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 142, __pyx_L3_error)
11435 values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
11436 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 142, __pyx_L3_error)
11437 values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
11438 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 142, __pyx_L3_error)
11439 values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
11440 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 142, __pyx_L3_error)
11441 }
11442 __pyx_v_numModelEntities = ((PyArrayObject *)values[0]);
11443 __pyx_v_edges = ((PyArrayObject *)values[1]);
11444 __pyx_v_faces = ((PyArrayObject *)values[2]);
11445 __pyx_v_meshVertex2Model = ((PyArrayObject *)values[3]);
11446 __pyx_v_meshEdge2Model = ((PyArrayObject *)values[4]);
11447 __pyx_v_meshBoundary2Model = ((PyArrayObject *)values[5]);
11448 }
11449 goto __pyx_L6_skip;
11450 __pyx_L5_argtuple_error:;
11451 __Pyx_RaiseArgtupleInvalid("transferModelInfo", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 142, __pyx_L3_error)
11452 __pyx_L6_skip:;
11453 goto __pyx_L4_argument_unpacking_done;
11454 __pyx_L3_error:;
11455 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11456 Py_XDECREF(values[__pyx_temp]);
11457 }
11458 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferModelInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
11459 __Pyx_RefNannyFinishContext();
11460 return NULL;
11461 __pyx_L4_argument_unpacking_done:;
11462 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_numModelEntities), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "numModelEntities", 0))) __PYX_ERR(0, 142, __pyx_L1_error)
11463 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edges), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "edges", 0))) __PYX_ERR(0, 143, __pyx_L1_error)
11464 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_faces), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "faces", 0))) __PYX_ERR(0, 144, __pyx_L1_error)
11465 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_meshVertex2Model), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "meshVertex2Model", 0))) __PYX_ERR(0, 145, __pyx_L1_error)
11466 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_meshEdge2Model), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "meshEdge2Model", 0))) __PYX_ERR(0, 146, __pyx_L1_error)
11467 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_meshBoundary2Model), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 1, "meshBoundary2Model", 0))) __PYX_ERR(0, 147, __pyx_L1_error)
11468 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_48transferModelInfo(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_numModelEntities, __pyx_v_edges, __pyx_v_faces, __pyx_v_meshVertex2Model, __pyx_v_meshEdge2Model, __pyx_v_meshBoundary2Model);
11469
11470 /* function exit code */
11471 goto __pyx_L0;
11472 __pyx_L1_error:;
11473 __pyx_r = NULL;
11474 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11475 Py_XDECREF(values[__pyx_temp]);
11476 }
11477 goto __pyx_L7_cleaned_up;
11478 __pyx_L0:;
11479 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11480 Py_XDECREF(values[__pyx_temp]);
11481 }
11482 __pyx_L7_cleaned_up:;
11483 __Pyx_RefNannyFinishContext();
11484 return __pyx_r;
11485}
11486
11487static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_48transferModelInfo(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyArrayObject *__pyx_v_numModelEntities, PyArrayObject *__pyx_v_edges, PyArrayObject *__pyx_v_faces, PyArrayObject *__pyx_v_meshVertex2Model, PyArrayObject *__pyx_v_meshEdge2Model, PyArrayObject *__pyx_v_meshBoundary2Model) {
11488 npy_intp __pyx_v_nMaxSegments;
11489 __Pyx_LocalBuf_ND __pyx_pybuffernd_edges;
11490 __Pyx_Buffer __pyx_pybuffer_edges;
11491 __Pyx_LocalBuf_ND __pyx_pybuffernd_faces;
11492 __Pyx_Buffer __pyx_pybuffer_faces;
11493 __Pyx_LocalBuf_ND __pyx_pybuffernd_meshBoundary2Model;
11494 __Pyx_Buffer __pyx_pybuffer_meshBoundary2Model;
11495 __Pyx_LocalBuf_ND __pyx_pybuffernd_meshEdge2Model;
11496 __Pyx_Buffer __pyx_pybuffer_meshEdge2Model;
11497 __Pyx_LocalBuf_ND __pyx_pybuffernd_meshVertex2Model;
11498 __Pyx_Buffer __pyx_pybuffer_meshVertex2Model;
11499 __Pyx_LocalBuf_ND __pyx_pybuffernd_numModelEntities;
11500 __Pyx_Buffer __pyx_pybuffer_numModelEntities;
11501 PyObject *__pyx_r = NULL;
11502 __Pyx_RefNannyDeclarations
11503 PyObject *__pyx_t_1 = NULL;
11504 PyObject *__pyx_t_2 = NULL;
11505 PyObject *__pyx_t_3 = NULL;
11506 PyObject *__pyx_t_4 = NULL;
11507 size_t __pyx_t_5;
11508 int __pyx_t_6;
11509 PyObject *__pyx_t_7 = NULL;
11510 PyObject *__pyx_t_8 = NULL;
11511 PyObject *__pyx_t_9 = NULL;
11512 int __pyx_lineno = 0;
11513 const char *__pyx_filename = NULL;
11514 int __pyx_clineno = 0;
11515 __Pyx_RefNannySetupContext("transferModelInfo", 0);
11516 __Pyx_INCREF((PyObject *)__pyx_v_numModelEntities);
11517 __Pyx_INCREF((PyObject *)__pyx_v_edges);
11518 __Pyx_INCREF((PyObject *)__pyx_v_faces);
11519 __Pyx_INCREF((PyObject *)__pyx_v_meshVertex2Model);
11520 __Pyx_INCREF((PyObject *)__pyx_v_meshEdge2Model);
11521 __Pyx_INCREF((PyObject *)__pyx_v_meshBoundary2Model);
11522 __pyx_pybuffer_numModelEntities.pybuffer.buf = NULL;
11523 __pyx_pybuffer_numModelEntities.refcount = 0;
11524 __pyx_pybuffernd_numModelEntities.data = NULL;
11525 __pyx_pybuffernd_numModelEntities.rcbuffer = &__pyx_pybuffer_numModelEntities;
11526 __pyx_pybuffer_edges.pybuffer.buf = NULL;
11527 __pyx_pybuffer_edges.refcount = 0;
11528 __pyx_pybuffernd_edges.data = NULL;
11529 __pyx_pybuffernd_edges.rcbuffer = &__pyx_pybuffer_edges;
11530 __pyx_pybuffer_faces.pybuffer.buf = NULL;
11531 __pyx_pybuffer_faces.refcount = 0;
11532 __pyx_pybuffernd_faces.data = NULL;
11533 __pyx_pybuffernd_faces.rcbuffer = &__pyx_pybuffer_faces;
11534 __pyx_pybuffer_meshVertex2Model.pybuffer.buf = NULL;
11535 __pyx_pybuffer_meshVertex2Model.refcount = 0;
11536 __pyx_pybuffernd_meshVertex2Model.data = NULL;
11537 __pyx_pybuffernd_meshVertex2Model.rcbuffer = &__pyx_pybuffer_meshVertex2Model;
11538 __pyx_pybuffer_meshEdge2Model.pybuffer.buf = NULL;
11539 __pyx_pybuffer_meshEdge2Model.refcount = 0;
11540 __pyx_pybuffernd_meshEdge2Model.data = NULL;
11541 __pyx_pybuffernd_meshEdge2Model.rcbuffer = &__pyx_pybuffer_meshEdge2Model;
11542 __pyx_pybuffer_meshBoundary2Model.pybuffer.buf = NULL;
11543 __pyx_pybuffer_meshBoundary2Model.refcount = 0;
11544 __pyx_pybuffernd_meshBoundary2Model.data = NULL;
11545 __pyx_pybuffernd_meshBoundary2Model.rcbuffer = &__pyx_pybuffer_meshBoundary2Model;
11546 {
11547 __Pyx_BufFmt_StackElem __pyx_stack[1];
11548 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer, (PyObject*)__pyx_v_numModelEntities, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11549 }
11550 __pyx_pybuffernd_numModelEntities.diminfo[0].strides = __pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_numModelEntities.diminfo[0].shape = __pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer.shape[0];
11551 {
11552 __Pyx_BufFmt_StackElem __pyx_stack[1];
11553 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges.rcbuffer->pybuffer, (PyObject*)__pyx_v_edges, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11554 }
11555 __pyx_pybuffernd_edges.diminfo[0].strides = __pyx_pybuffernd_edges.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges.diminfo[0].shape = __pyx_pybuffernd_edges.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_edges.diminfo[1].strides = __pyx_pybuffernd_edges.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_edges.diminfo[1].shape = __pyx_pybuffernd_edges.rcbuffer->pybuffer.shape[1];
11556 {
11557 __Pyx_BufFmt_StackElem __pyx_stack[1];
11558 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_faces.rcbuffer->pybuffer, (PyObject*)__pyx_v_faces, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11559 }
11560 __pyx_pybuffernd_faces.diminfo[0].strides = __pyx_pybuffernd_faces.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_faces.diminfo[0].shape = __pyx_pybuffernd_faces.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_faces.diminfo[1].strides = __pyx_pybuffernd_faces.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_faces.diminfo[1].shape = __pyx_pybuffernd_faces.rcbuffer->pybuffer.shape[1];
11561 {
11562 __Pyx_BufFmt_StackElem __pyx_stack[1];
11563 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshVertex2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11564 }
11565 __pyx_pybuffernd_meshVertex2Model.diminfo[0].strides = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshVertex2Model.diminfo[0].shape = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshVertex2Model.diminfo[1].strides = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshVertex2Model.diminfo[1].shape = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.shape[1];
11566 {
11567 __Pyx_BufFmt_StackElem __pyx_stack[1];
11568 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshEdge2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11569 }
11570 __pyx_pybuffernd_meshEdge2Model.diminfo[0].strides = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshEdge2Model.diminfo[0].shape = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshEdge2Model.diminfo[1].strides = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshEdge2Model.diminfo[1].shape = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.shape[1];
11571 {
11572 __Pyx_BufFmt_StackElem __pyx_stack[1];
11573 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshBoundary2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 142, __pyx_L1_error)
11574 }
11575 __pyx_pybuffernd_meshBoundary2Model.diminfo[0].strides = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshBoundary2Model.diminfo[0].shape = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshBoundary2Model.diminfo[1].strides = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshBoundary2Model.diminfo[1].shape = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.shape[1];
11576
11577 /* "MeshAdaptPUMI/MeshAdapt.pyx":149
11578 * np.ndarray[int,ndim=2,mode="c"] meshBoundary2Model
11579 * ):
11580 * numModelEntities = np.ascontiguousarray(numModelEntities) # <<<<<<<<<<<<<<
11581 * edges = np.ascontiguousarray(edges)
11582 * nMaxSegments = faces.shape[1]
11583*/
11584 __pyx_t_2 = NULL;
11585 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error)
11586 __Pyx_GOTREF(__pyx_t_3);
11587 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 149, __pyx_L1_error)
11588 __Pyx_GOTREF(__pyx_t_4);
11589 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11590 __pyx_t_5 = 1;
11591 #if CYTHON_UNPACK_METHODS
11592 if (unlikely(PyMethod_Check(__pyx_t_4))) {
11593 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
11594 assert(__pyx_t_2);
11595 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
11596 __Pyx_INCREF(__pyx_t_2);
11597 __Pyx_INCREF(__pyx__function);
11598 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
11599 __pyx_t_5 = 0;
11600 }
11601 #endif
11602 {
11603 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_numModelEntities)};
11604 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11605 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
11606 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11607 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error)
11608 __Pyx_GOTREF(__pyx_t_1);
11609 }
11610 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 149, __pyx_L1_error)
11611 {
11612 __Pyx_BufFmt_StackElem __pyx_stack[1];
11613 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer);
11614 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
11615 if (unlikely(__pyx_t_6 < 0)) {
11616 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
11617 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer, (PyObject*)__pyx_v_numModelEntities, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
11618 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
11619 __Pyx_RaiseBufferFallbackError();
11620 } else {
11621 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
11622 }
11623 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
11624 }
11625 __pyx_pybuffernd_numModelEntities.diminfo[0].strides = __pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_numModelEntities.diminfo[0].shape = __pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer.shape[0];
11626 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 149, __pyx_L1_error)
11627 }
11628 __Pyx_DECREF_SET(__pyx_v_numModelEntities, ((PyArrayObject *)__pyx_t_1));
11629 __pyx_t_1 = 0;
11630
11631 /* "MeshAdaptPUMI/MeshAdapt.pyx":150
11632 * ):
11633 * numModelEntities = np.ascontiguousarray(numModelEntities)
11634 * edges = np.ascontiguousarray(edges) # <<<<<<<<<<<<<<
11635 * nMaxSegments = faces.shape[1]
11636 * faces = np.ascontiguousarray(faces)
11637*/
11638 __pyx_t_4 = NULL;
11639 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error)
11640 __Pyx_GOTREF(__pyx_t_2);
11641 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 150, __pyx_L1_error)
11642 __Pyx_GOTREF(__pyx_t_3);
11643 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11644 __pyx_t_5 = 1;
11645 #if CYTHON_UNPACK_METHODS
11646 if (unlikely(PyMethod_Check(__pyx_t_3))) {
11647 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
11648 assert(__pyx_t_4);
11649 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
11650 __Pyx_INCREF(__pyx_t_4);
11651 __Pyx_INCREF(__pyx__function);
11652 __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
11653 __pyx_t_5 = 0;
11654 }
11655 #endif
11656 {
11657 PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_edges)};
11658 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11659 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11660 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11661 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
11662 __Pyx_GOTREF(__pyx_t_1);
11663 }
11664 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 150, __pyx_L1_error)
11665 {
11666 __Pyx_BufFmt_StackElem __pyx_stack[1];
11667 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges.rcbuffer->pybuffer);
11668 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
11669 if (unlikely(__pyx_t_6 < 0)) {
11670 __Pyx_PyErr_FetchException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
11671 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges.rcbuffer->pybuffer, (PyObject*)__pyx_v_edges, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
11672 Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7);
11673 __Pyx_RaiseBufferFallbackError();
11674 } else {
11675 __Pyx_PyErr_RestoreException(__pyx_t_9, __pyx_t_8, __pyx_t_7);
11676 }
11677 __pyx_t_9 = __pyx_t_8 = __pyx_t_7 = 0;
11678 }
11679 __pyx_pybuffernd_edges.diminfo[0].strides = __pyx_pybuffernd_edges.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges.diminfo[0].shape = __pyx_pybuffernd_edges.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_edges.diminfo[1].strides = __pyx_pybuffernd_edges.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_edges.diminfo[1].shape = __pyx_pybuffernd_edges.rcbuffer->pybuffer.shape[1];
11680 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 150, __pyx_L1_error)
11681 }
11682 __Pyx_DECREF_SET(__pyx_v_edges, ((PyArrayObject *)__pyx_t_1));
11683 __pyx_t_1 = 0;
11684
11685 /* "MeshAdaptPUMI/MeshAdapt.pyx":151
11686 * numModelEntities = np.ascontiguousarray(numModelEntities)
11687 * edges = np.ascontiguousarray(edges)
11688 * nMaxSegments = faces.shape[1] # <<<<<<<<<<<<<<
11689 * faces = np.ascontiguousarray(faces)
11690 * meshVertex2Model = np.ascontiguousarray(meshVertex2Model)
11691*/
11692 __pyx_v_nMaxSegments = (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_faces))[1]);
11693
11694 /* "MeshAdaptPUMI/MeshAdapt.pyx":152
11695 * edges = np.ascontiguousarray(edges)
11696 * nMaxSegments = faces.shape[1]
11697 * faces = np.ascontiguousarray(faces) # <<<<<<<<<<<<<<
11698 * meshVertex2Model = np.ascontiguousarray(meshVertex2Model)
11699 * meshEdge2Model = np.ascontiguousarray(meshEdge2Model)
11700*/
11701 __pyx_t_3 = NULL;
11702 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 152, __pyx_L1_error)
11703 __Pyx_GOTREF(__pyx_t_4);
11704 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error)
11705 __Pyx_GOTREF(__pyx_t_2);
11706 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11707 __pyx_t_5 = 1;
11708 #if CYTHON_UNPACK_METHODS
11709 if (unlikely(PyMethod_Check(__pyx_t_2))) {
11710 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
11711 assert(__pyx_t_3);
11712 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
11713 __Pyx_INCREF(__pyx_t_3);
11714 __Pyx_INCREF(__pyx__function);
11715 __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
11716 __pyx_t_5 = 0;
11717 }
11718 #endif
11719 {
11720 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_faces)};
11721 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11722 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
11723 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11724 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
11725 __Pyx_GOTREF(__pyx_t_1);
11726 }
11727 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 152, __pyx_L1_error)
11728 {
11729 __Pyx_BufFmt_StackElem __pyx_stack[1];
11730 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_faces.rcbuffer->pybuffer);
11731 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_faces.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
11732 if (unlikely(__pyx_t_6 < 0)) {
11733 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
11734 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_faces.rcbuffer->pybuffer, (PyObject*)__pyx_v_faces, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
11735 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
11736 __Pyx_RaiseBufferFallbackError();
11737 } else {
11738 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
11739 }
11740 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
11741 }
11742 __pyx_pybuffernd_faces.diminfo[0].strides = __pyx_pybuffernd_faces.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_faces.diminfo[0].shape = __pyx_pybuffernd_faces.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_faces.diminfo[1].strides = __pyx_pybuffernd_faces.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_faces.diminfo[1].shape = __pyx_pybuffernd_faces.rcbuffer->pybuffer.shape[1];
11743 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 152, __pyx_L1_error)
11744 }
11745 __Pyx_DECREF_SET(__pyx_v_faces, ((PyArrayObject *)__pyx_t_1));
11746 __pyx_t_1 = 0;
11747
11748 /* "MeshAdaptPUMI/MeshAdapt.pyx":153
11749 * nMaxSegments = faces.shape[1]
11750 * faces = np.ascontiguousarray(faces)
11751 * meshVertex2Model = np.ascontiguousarray(meshVertex2Model) # <<<<<<<<<<<<<<
11752 * meshEdge2Model = np.ascontiguousarray(meshEdge2Model)
11753 * meshBoundary2Model = np.ascontiguousarray(meshBoundary2Model)
11754*/
11755 __pyx_t_2 = NULL;
11756 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 153, __pyx_L1_error)
11757 __Pyx_GOTREF(__pyx_t_3);
11758 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 153, __pyx_L1_error)
11759 __Pyx_GOTREF(__pyx_t_4);
11760 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11761 __pyx_t_5 = 1;
11762 #if CYTHON_UNPACK_METHODS
11763 if (unlikely(PyMethod_Check(__pyx_t_4))) {
11764 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
11765 assert(__pyx_t_2);
11766 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
11767 __Pyx_INCREF(__pyx_t_2);
11768 __Pyx_INCREF(__pyx__function);
11769 __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
11770 __pyx_t_5 = 0;
11771 }
11772 #endif
11773 {
11774 PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_meshVertex2Model)};
11775 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11776 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
11777 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11778 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 153, __pyx_L1_error)
11779 __Pyx_GOTREF(__pyx_t_1);
11780 }
11781 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 153, __pyx_L1_error)
11782 {
11783 __Pyx_BufFmt_StackElem __pyx_stack[1];
11784 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer);
11785 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
11786 if (unlikely(__pyx_t_6 < 0)) {
11787 __Pyx_PyErr_FetchException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
11788 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshVertex2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
11789 Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7);
11790 __Pyx_RaiseBufferFallbackError();
11791 } else {
11792 __Pyx_PyErr_RestoreException(__pyx_t_9, __pyx_t_8, __pyx_t_7);
11793 }
11794 __pyx_t_9 = __pyx_t_8 = __pyx_t_7 = 0;
11795 }
11796 __pyx_pybuffernd_meshVertex2Model.diminfo[0].strides = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshVertex2Model.diminfo[0].shape = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshVertex2Model.diminfo[1].strides = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshVertex2Model.diminfo[1].shape = __pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer.shape[1];
11797 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 153, __pyx_L1_error)
11798 }
11799 __Pyx_DECREF_SET(__pyx_v_meshVertex2Model, ((PyArrayObject *)__pyx_t_1));
11800 __pyx_t_1 = 0;
11801
11802 /* "MeshAdaptPUMI/MeshAdapt.pyx":154
11803 * faces = np.ascontiguousarray(faces)
11804 * meshVertex2Model = np.ascontiguousarray(meshVertex2Model)
11805 * meshEdge2Model = np.ascontiguousarray(meshEdge2Model) # <<<<<<<<<<<<<<
11806 * meshBoundary2Model = np.ascontiguousarray(meshBoundary2Model)
11807 * return self.thisptr.transferModelInfo(<int*> numModelEntities.data,<int*> edges.data,<int *> faces.data,<int*> meshVertex2Model.data,<int*> meshEdge2Model.data,<int*> meshBoundary2Model.data,nMaxSegments)
11808*/
11809 __pyx_t_4 = NULL;
11810 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error)
11811 __Pyx_GOTREF(__pyx_t_2);
11812 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 154, __pyx_L1_error)
11813 __Pyx_GOTREF(__pyx_t_3);
11814 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11815 __pyx_t_5 = 1;
11816 #if CYTHON_UNPACK_METHODS
11817 if (unlikely(PyMethod_Check(__pyx_t_3))) {
11818 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
11819 assert(__pyx_t_4);
11820 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
11821 __Pyx_INCREF(__pyx_t_4);
11822 __Pyx_INCREF(__pyx__function);
11823 __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
11824 __pyx_t_5 = 0;
11825 }
11826 #endif
11827 {
11828 PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_meshEdge2Model)};
11829 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11830 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11831 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11832 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error)
11833 __Pyx_GOTREF(__pyx_t_1);
11834 }
11835 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 154, __pyx_L1_error)
11836 {
11837 __Pyx_BufFmt_StackElem __pyx_stack[1];
11838 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer);
11839 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
11840 if (unlikely(__pyx_t_6 < 0)) {
11841 __Pyx_PyErr_FetchException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
11842 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshEdge2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
11843 Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9);
11844 __Pyx_RaiseBufferFallbackError();
11845 } else {
11846 __Pyx_PyErr_RestoreException(__pyx_t_7, __pyx_t_8, __pyx_t_9);
11847 }
11848 __pyx_t_7 = __pyx_t_8 = __pyx_t_9 = 0;
11849 }
11850 __pyx_pybuffernd_meshEdge2Model.diminfo[0].strides = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshEdge2Model.diminfo[0].shape = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshEdge2Model.diminfo[1].strides = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshEdge2Model.diminfo[1].shape = __pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer.shape[1];
11851 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 154, __pyx_L1_error)
11852 }
11853 __Pyx_DECREF_SET(__pyx_v_meshEdge2Model, ((PyArrayObject *)__pyx_t_1));
11854 __pyx_t_1 = 0;
11855
11856 /* "MeshAdaptPUMI/MeshAdapt.pyx":155
11857 * meshVertex2Model = np.ascontiguousarray(meshVertex2Model)
11858 * meshEdge2Model = np.ascontiguousarray(meshEdge2Model)
11859 * meshBoundary2Model = np.ascontiguousarray(meshBoundary2Model) # <<<<<<<<<<<<<<
11860 * return self.thisptr.transferModelInfo(<int*> numModelEntities.data,<int*> edges.data,<int *> faces.data,<int*> meshVertex2Model.data,<int*> meshEdge2Model.data,<int*> meshBoundary2Model.data,nMaxSegments)
11861 * #def transferBCtagsToProteus(self, np.ndarray[int,ndim=2,mode="c"] tagArray, int idx, np.ndarray[int,ndim=1,mode="c"] ebN, np.ndarray[int, ndim=2, mode="c"] eN_global, np.ndarray[np.double_t,ndim=2,mode="c"] fluxBC):
11862*/
11863 __pyx_t_3 = NULL;
11864 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 155, __pyx_L1_error)
11865 __Pyx_GOTREF(__pyx_t_4);
11866 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error)
11867 __Pyx_GOTREF(__pyx_t_2);
11868 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11869 __pyx_t_5 = 1;
11870 #if CYTHON_UNPACK_METHODS
11871 if (unlikely(PyMethod_Check(__pyx_t_2))) {
11872 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
11873 assert(__pyx_t_3);
11874 PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
11875 __Pyx_INCREF(__pyx_t_3);
11876 __Pyx_INCREF(__pyx__function);
11877 __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
11878 __pyx_t_5 = 0;
11879 }
11880 #endif
11881 {
11882 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_meshBoundary2Model)};
11883 __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
11884 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
11885 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11886 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error)
11887 __Pyx_GOTREF(__pyx_t_1);
11888 }
11889 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 155, __pyx_L1_error)
11890 {
11891 __Pyx_BufFmt_StackElem __pyx_stack[1];
11892 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer);
11893 __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack);
11894 if (unlikely(__pyx_t_6 < 0)) {
11895 __Pyx_PyErr_FetchException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
11896 if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer, (PyObject*)__pyx_v_meshBoundary2Model, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {
11897 Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7);
11898 __Pyx_RaiseBufferFallbackError();
11899 } else {
11900 __Pyx_PyErr_RestoreException(__pyx_t_9, __pyx_t_8, __pyx_t_7);
11901 }
11902 __pyx_t_9 = __pyx_t_8 = __pyx_t_7 = 0;
11903 }
11904 __pyx_pybuffernd_meshBoundary2Model.diminfo[0].strides = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_meshBoundary2Model.diminfo[0].shape = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_meshBoundary2Model.diminfo[1].strides = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_meshBoundary2Model.diminfo[1].shape = __pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer.shape[1];
11905 if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 155, __pyx_L1_error)
11906 }
11907 __Pyx_DECREF_SET(__pyx_v_meshBoundary2Model, ((PyArrayObject *)__pyx_t_1));
11908 __pyx_t_1 = 0;
11909
11910 /* "MeshAdaptPUMI/MeshAdapt.pyx":156
11911 * meshEdge2Model = np.ascontiguousarray(meshEdge2Model)
11912 * meshBoundary2Model = np.ascontiguousarray(meshBoundary2Model)
11913 * return self.thisptr.transferModelInfo(<int*> numModelEntities.data,<int*> edges.data,<int *> faces.data,<int*> meshVertex2Model.data,<int*> meshEdge2Model.data,<int*> meshBoundary2Model.data,nMaxSegments) # <<<<<<<<<<<<<<
11914 * #def transferBCtagsToProteus(self, np.ndarray[int,ndim=2,mode="c"] tagArray, int idx, np.ndarray[int,ndim=1,mode="c"] ebN, np.ndarray[int, ndim=2, mode="c"] eN_global, np.ndarray[np.double_t,ndim=2,mode="c"] fluxBC):
11915 * # tagArray = np.ascontiguousarray(tagArray)
11916*/
11917 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->transferModelInfo(((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_numModelEntities))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_edges))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_faces))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_meshVertex2Model))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_meshEdge2Model))), ((int *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_v_meshBoundary2Model))), __pyx_v_nMaxSegments)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error)
11918 __Pyx_GOTREF(__pyx_t_1);
11919 {
11920 PyObject *__pyx_temp;
11921 {
11922 __pyx_temp = __pyx_r;
11923 __pyx_r = __pyx_t_1;
11924 }
11925 __Pyx_XDECREF(__pyx_temp);
11926 }
11927 __pyx_t_1 = 0;
11928 goto __pyx_L0;
11929
11930 /* "MeshAdaptPUMI/MeshAdapt.pyx":142
11931 *
11932 *
11933 * def transferModelInfo(self, np.ndarray[int,ndim=1,mode="c"] numModelEntities, # <<<<<<<<<<<<<<
11934 * np.ndarray[int,ndim=2,mode="c"] edges,
11935 * np.ndarray[int,ndim=2,mode="c"] faces,
11936*/
11937
11938 /* function exit code */
11939 __pyx_L1_error:;
11940 __Pyx_XDECREF(__pyx_t_1);
11941 __Pyx_XDECREF(__pyx_t_2);
11942 __Pyx_XDECREF(__pyx_t_3);
11943 __Pyx_XDECREF(__pyx_t_4);
11944 { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
11945 __Pyx_PyThreadState_declare
11946 __Pyx_PyThreadState_assign
11947 __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
11948 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges.rcbuffer->pybuffer);
11949 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_faces.rcbuffer->pybuffer);
11950 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer);
11951 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer);
11952 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer);
11953 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer);
11954 __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
11955 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.transferModelInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
11956 __pyx_r = NULL;
11957 goto __pyx_L2;
11958 __pyx_L0:;
11959 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges.rcbuffer->pybuffer);
11960 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_faces.rcbuffer->pybuffer);
11961 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshBoundary2Model.rcbuffer->pybuffer);
11962 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshEdge2Model.rcbuffer->pybuffer);
11963 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_meshVertex2Model.rcbuffer->pybuffer);
11964 __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_numModelEntities.rcbuffer->pybuffer);
11965 __pyx_L2:;
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979 __Pyx_XDECREF((PyObject *)__pyx_v_numModelEntities);
11980 __Pyx_XDECREF((PyObject *)__pyx_v_edges);
11981 __Pyx_XDECREF((PyObject *)__pyx_v_faces);
11982 __Pyx_XDECREF((PyObject *)__pyx_v_meshVertex2Model);
11983 __Pyx_XDECREF((PyObject *)__pyx_v_meshEdge2Model);
11984 __Pyx_XDECREF((PyObject *)__pyx_v_meshBoundary2Model);
11985 __Pyx_XGIVEREF(__pyx_r);
11986 __Pyx_RefNannyFinishContext();
11987 return __pyx_r;
11988}
11989
11990/* "MeshAdaptPUMI/MeshAdapt.pyx":165
11991 * #def transferBCsToProteus(self):
11992 * # return self.thisptr.transferBCsToProteus()
11993 * def adaptPUMIMesh(self,inputString=""): # <<<<<<<<<<<<<<
11994 * return self.thisptr.adaptPUMIMesh(inputString)
11995 * def dumpMesh(self, cmeshTools.CMesh cmesh):
11996*/
11997
11998/* Python wrapper */
11999static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh(PyObject *__pyx_v_self,
12000#if CYTHON_VECTORCALL
12001PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12002#else
12003PyObject *__pyx_args, PyObject *__pyx_kwds
12004#endif
12005); /*proto*/
12006static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh = {"adaptPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12007static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh(PyObject *__pyx_v_self,
12008#if CYTHON_VECTORCALL
12009PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12010#else
12011PyObject *__pyx_args, PyObject *__pyx_kwds
12012#endif
12013) {
12014 PyObject *__pyx_v_inputString = 0;
12015 #if !CYTHON_VECTORCALL
12016 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12017 #endif
12018 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12019 PyObject* values[1] = {0};
12020 int __pyx_lineno = 0;
12021 const char *__pyx_filename = NULL;
12022 int __pyx_clineno = 0;
12023 PyObject *__pyx_r = 0;
12024 __Pyx_RefNannyDeclarations
12025 __Pyx_RefNannySetupContext("adaptPUMIMesh (wrapper)", 0);
12026 #if !CYTHON_VECTORCALL
12027 #if CYTHON_ASSUME_SAFE_SIZE
12028 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12029 #else
12030 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12031 #endif
12032 #endif
12033 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12034 {
12035 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inputString,0};
12036 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12037 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 165, __pyx_L3_error)
12038 if (__pyx_kwds_len > 0) {
12039 switch (__pyx_nargs) {
12040 case 1:
12041 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12042 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 165, __pyx_L3_error)
12043 CYTHON_FALLTHROUGH;
12044 case 0: break;
12045 default: goto __pyx_L5_argtuple_error;
12046 }
12047 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12048 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "adaptPUMIMesh", 0) < (0)) __PYX_ERR(0, 165, __pyx_L3_error)
12049 if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_kp_u__2));
12050 } else {
12051 switch (__pyx_nargs) {
12052 case 1:
12053 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12054 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 165, __pyx_L3_error)
12055 CYTHON_FALLTHROUGH;
12056 case 0: break;
12057 default: goto __pyx_L5_argtuple_error;
12058 }
12059 if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_kp_u__2));
12060 }
12061 __pyx_v_inputString = values[0];
12062 }
12063 goto __pyx_L6_skip;
12064 __pyx_L5_argtuple_error:;
12065 __Pyx_RaiseArgtupleInvalid("adaptPUMIMesh", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 165, __pyx_L3_error)
12066 __pyx_L6_skip:;
12067 goto __pyx_L4_argument_unpacking_done;
12068 __pyx_L3_error:;
12069 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12070 Py_XDECREF(values[__pyx_temp]);
12071 }
12072 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.adaptPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12073 __Pyx_RefNannyFinishContext();
12074 return NULL;
12075 __pyx_L4_argument_unpacking_done:;
12076 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_50adaptPUMIMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_inputString);
12077
12078 /* function exit code */
12079 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12080 Py_XDECREF(values[__pyx_temp]);
12081 }
12082 __Pyx_RefNannyFinishContext();
12083 return __pyx_r;
12084}
12085
12086static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_50adaptPUMIMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_inputString) {
12087 PyObject *__pyx_r = NULL;
12088 __Pyx_RefNannyDeclarations
12089 char *__pyx_t_1;
12090 PyObject *__pyx_t_2 = NULL;
12091 int __pyx_lineno = 0;
12092 const char *__pyx_filename = NULL;
12093 int __pyx_clineno = 0;
12094 __Pyx_RefNannySetupContext("adaptPUMIMesh", 0);
12095
12096 /* "MeshAdaptPUMI/MeshAdapt.pyx":166
12097 * # return self.thisptr.transferBCsToProteus()
12098 * def adaptPUMIMesh(self,inputString=""):
12099 * return self.thisptr.adaptPUMIMesh(inputString) # <<<<<<<<<<<<<<
12100 * def dumpMesh(self, cmeshTools.CMesh cmesh):
12101 * return self.thisptr.dumpMesh(cmesh.mesh)
12102*/
12103 __pyx_t_1 = __Pyx_PyObject_AsWritableString(__pyx_v_inputString); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L1_error)
12104 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->adaptPUMIMesh(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
12105 __Pyx_GOTREF(__pyx_t_2);
12106
12107 {
12108 PyObject *__pyx_temp;
12109 {
12110 __pyx_temp = __pyx_r;
12111 __pyx_r = __pyx_t_2;
12112 }
12113 __Pyx_XDECREF(__pyx_temp);
12114 }
12115 __pyx_t_2 = 0;
12116 goto __pyx_L0;
12117
12118 /* "MeshAdaptPUMI/MeshAdapt.pyx":165
12119 * #def transferBCsToProteus(self):
12120 * # return self.thisptr.transferBCsToProteus()
12121 * def adaptPUMIMesh(self,inputString=""): # <<<<<<<<<<<<<<
12122 * return self.thisptr.adaptPUMIMesh(inputString)
12123 * def dumpMesh(self, cmeshTools.CMesh cmesh):
12124*/
12125
12126 /* function exit code */
12127 __pyx_L1_error:;
12128 __Pyx_XDECREF(__pyx_t_2);
12129 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.adaptPUMIMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12130 __pyx_r = NULL;
12131 __pyx_L0:;
12132 __Pyx_XGIVEREF(__pyx_r);
12133 __Pyx_RefNannyFinishContext();
12134 return __pyx_r;
12135}
12136
12137/* "MeshAdaptPUMI/MeshAdapt.pyx":167
12138 * def adaptPUMIMesh(self,inputString=""):
12139 * return self.thisptr.adaptPUMIMesh(inputString)
12140 * def dumpMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
12141 * return self.thisptr.dumpMesh(cmesh.mesh)
12142 * def getERMSizeField(self, err_total):
12143*/
12144
12145/* Python wrapper */
12146static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh(PyObject *__pyx_v_self,
12147#if CYTHON_VECTORCALL
12148PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12149#else
12150PyObject *__pyx_args, PyObject *__pyx_kwds
12151#endif
12152); /*proto*/
12153static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh = {"dumpMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12154static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh(PyObject *__pyx_v_self,
12155#if CYTHON_VECTORCALL
12156PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12157#else
12158PyObject *__pyx_args, PyObject *__pyx_kwds
12159#endif
12160) {
12161 struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh = 0;
12162 #if !CYTHON_VECTORCALL
12163 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12164 #endif
12165 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12166 PyObject* values[1] = {0};
12167 int __pyx_lineno = 0;
12168 const char *__pyx_filename = NULL;
12169 int __pyx_clineno = 0;
12170 PyObject *__pyx_r = 0;
12171 __Pyx_RefNannyDeclarations
12172 __Pyx_RefNannySetupContext("dumpMesh (wrapper)", 0);
12173 #if !CYTHON_VECTORCALL
12174 #if CYTHON_ASSUME_SAFE_SIZE
12175 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12176 #else
12177 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12178 #endif
12179 #endif
12180 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12181 {
12182 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cmesh,0};
12183 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12184 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 167, __pyx_L3_error)
12185 if (__pyx_kwds_len > 0) {
12186 switch (__pyx_nargs) {
12187 case 1:
12188 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12189 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 167, __pyx_L3_error)
12190 CYTHON_FALLTHROUGH;
12191 case 0: break;
12192 default: goto __pyx_L5_argtuple_error;
12193 }
12194 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12195 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "dumpMesh", 0) < (0)) __PYX_ERR(0, 167, __pyx_L3_error)
12196 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
12197 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("dumpMesh", 1, 1, 1, i); __PYX_ERR(0, 167, __pyx_L3_error) }
12198 }
12199 } else if (unlikely(__pyx_nargs != 1)) {
12200 goto __pyx_L5_argtuple_error;
12201 } else {
12202 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12203 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 167, __pyx_L3_error)
12204 }
12205 __pyx_v_cmesh = ((struct __pyx_obj_7proteus_10cmeshTools_CMesh *)values[0]);
12206 }
12207 goto __pyx_L6_skip;
12208 __pyx_L5_argtuple_error:;
12209 __Pyx_RaiseArgtupleInvalid("dumpMesh", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 167, __pyx_L3_error)
12210 __pyx_L6_skip:;
12211 goto __pyx_L4_argument_unpacking_done;
12212 __pyx_L3_error:;
12213 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12214 Py_XDECREF(values[__pyx_temp]);
12215 }
12216 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.dumpMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12217 __Pyx_RefNannyFinishContext();
12218 return NULL;
12219 __pyx_L4_argument_unpacking_done:;
12220 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmesh), __pyx_mstate_global->__pyx_ptype_7proteus_10cmeshTools_CMesh, 1, "cmesh", 0))) __PYX_ERR(0, 167, __pyx_L1_error)
12221 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_52dumpMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_cmesh);
12222
12223 /* function exit code */
12224 goto __pyx_L0;
12225 __pyx_L1_error:;
12226 __pyx_r = NULL;
12227 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12228 Py_XDECREF(values[__pyx_temp]);
12229 }
12230 goto __pyx_L7_cleaned_up;
12231 __pyx_L0:;
12232 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12233 Py_XDECREF(values[__pyx_temp]);
12234 }
12235 __pyx_L7_cleaned_up:;
12236 __Pyx_RefNannyFinishContext();
12237 return __pyx_r;
12238}
12239
12240static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_52dumpMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, struct __pyx_obj_7proteus_10cmeshTools_CMesh *__pyx_v_cmesh) {
12241 PyObject *__pyx_r = NULL;
12242 __Pyx_RefNannyDeclarations
12243 PyObject *__pyx_t_1 = NULL;
12244 int __pyx_lineno = 0;
12245 const char *__pyx_filename = NULL;
12246 int __pyx_clineno = 0;
12247 __Pyx_RefNannySetupContext("dumpMesh", 0);
12248
12249 /* "MeshAdaptPUMI/MeshAdapt.pyx":168
12250 * return self.thisptr.adaptPUMIMesh(inputString)
12251 * def dumpMesh(self, cmeshTools.CMesh cmesh):
12252 * return self.thisptr.dumpMesh(cmesh.mesh) # <<<<<<<<<<<<<<
12253 * def getERMSizeField(self, err_total):
12254 * return self.thisptr.getERMSizeField(err_total);
12255*/
12256 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->dumpMesh(__pyx_v_cmesh->mesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 168, __pyx_L1_error)
12257 __Pyx_GOTREF(__pyx_t_1);
12258 {
12259 PyObject *__pyx_temp;
12260 {
12261 __pyx_temp = __pyx_r;
12262 __pyx_r = __pyx_t_1;
12263 }
12264 __Pyx_XDECREF(__pyx_temp);
12265 }
12266 __pyx_t_1 = 0;
12267 goto __pyx_L0;
12268
12269 /* "MeshAdaptPUMI/MeshAdapt.pyx":167
12270 * def adaptPUMIMesh(self,inputString=""):
12271 * return self.thisptr.adaptPUMIMesh(inputString)
12272 * def dumpMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
12273 * return self.thisptr.dumpMesh(cmesh.mesh)
12274 * def getERMSizeField(self, err_total):
12275*/
12276
12277 /* function exit code */
12278 __pyx_L1_error:;
12279 __Pyx_XDECREF(__pyx_t_1);
12280 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.dumpMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
12281 __pyx_r = NULL;
12282 __pyx_L0:;
12283 __Pyx_XGIVEREF(__pyx_r);
12284 __Pyx_RefNannyFinishContext();
12285 return __pyx_r;
12286}
12287
12288/* "MeshAdaptPUMI/MeshAdapt.pyx":169
12289 * def dumpMesh(self, cmeshTools.CMesh cmesh):
12290 * return self.thisptr.dumpMesh(cmesh.mesh)
12291 * def getERMSizeField(self, err_total): # <<<<<<<<<<<<<<
12292 * return self.thisptr.getERMSizeField(err_total);
12293 * def getMPvalue(self,field_val,val_0,val_1):
12294*/
12295
12296/* Python wrapper */
12297static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField(PyObject *__pyx_v_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); /*proto*/
12304static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField = {"getERMSizeField", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12305static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField(PyObject *__pyx_v_self,
12306#if CYTHON_VECTORCALL
12307PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12308#else
12309PyObject *__pyx_args, PyObject *__pyx_kwds
12310#endif
12311) {
12312 PyObject *__pyx_v_err_total = 0;
12313 #if !CYTHON_VECTORCALL
12314 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12315 #endif
12316 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12317 PyObject* values[1] = {0};
12318 int __pyx_lineno = 0;
12319 const char *__pyx_filename = NULL;
12320 int __pyx_clineno = 0;
12321 PyObject *__pyx_r = 0;
12322 __Pyx_RefNannyDeclarations
12323 __Pyx_RefNannySetupContext("getERMSizeField (wrapper)", 0);
12324 #if !CYTHON_VECTORCALL
12325 #if CYTHON_ASSUME_SAFE_SIZE
12326 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12327 #else
12328 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12329 #endif
12330 #endif
12331 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12332 {
12333 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_err_total,0};
12334 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12335 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 169, __pyx_L3_error)
12336 if (__pyx_kwds_len > 0) {
12337 switch (__pyx_nargs) {
12338 case 1:
12339 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12340 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 169, __pyx_L3_error)
12341 CYTHON_FALLTHROUGH;
12342 case 0: break;
12343 default: goto __pyx_L5_argtuple_error;
12344 }
12345 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12346 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getERMSizeField", 0) < (0)) __PYX_ERR(0, 169, __pyx_L3_error)
12347 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
12348 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getERMSizeField", 1, 1, 1, i); __PYX_ERR(0, 169, __pyx_L3_error) }
12349 }
12350 } else if (unlikely(__pyx_nargs != 1)) {
12351 goto __pyx_L5_argtuple_error;
12352 } else {
12353 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12354 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 169, __pyx_L3_error)
12355 }
12356 __pyx_v_err_total = values[0];
12357 }
12358 goto __pyx_L6_skip;
12359 __pyx_L5_argtuple_error:;
12360 __Pyx_RaiseArgtupleInvalid("getERMSizeField", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 169, __pyx_L3_error)
12361 __pyx_L6_skip:;
12362 goto __pyx_L4_argument_unpacking_done;
12363 __pyx_L3_error:;
12364 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12365 Py_XDECREF(values[__pyx_temp]);
12366 }
12367 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.getERMSizeField", __pyx_clineno, __pyx_lineno, __pyx_filename);
12368 __Pyx_RefNannyFinishContext();
12369 return NULL;
12370 __pyx_L4_argument_unpacking_done:;
12371 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_54getERMSizeField(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_err_total);
12372
12373 /* function exit code */
12374 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12375 Py_XDECREF(values[__pyx_temp]);
12376 }
12377 __Pyx_RefNannyFinishContext();
12378 return __pyx_r;
12379}
12380
12381static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_54getERMSizeField(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_err_total) {
12382 PyObject *__pyx_r = NULL;
12383 __Pyx_RefNannyDeclarations
12384 double __pyx_t_1;
12385 PyObject *__pyx_t_2 = NULL;
12386 int __pyx_lineno = 0;
12387 const char *__pyx_filename = NULL;
12388 int __pyx_clineno = 0;
12389 __Pyx_RefNannySetupContext("getERMSizeField", 0);
12390
12391 /* "MeshAdaptPUMI/MeshAdapt.pyx":170
12392 * return self.thisptr.dumpMesh(cmesh.mesh)
12393 * def getERMSizeField(self, err_total):
12394 * return self.thisptr.getERMSizeField(err_total); # <<<<<<<<<<<<<<
12395 * def getMPvalue(self,field_val,val_0,val_1):
12396 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12397*/
12398 __pyx_t_1 = __Pyx_PyFloat_AsDouble(__pyx_v_err_total); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error)
12399 __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->getERMSizeField(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error)
12400 __Pyx_GOTREF(__pyx_t_2);
12401
12402 {
12403 PyObject *__pyx_temp;
12404 {
12405 __pyx_temp = __pyx_r;
12406 __pyx_r = __pyx_t_2;
12407 }
12408 __Pyx_XDECREF(__pyx_temp);
12409 }
12410 __pyx_t_2 = 0;
12411 goto __pyx_L0;
12412
12413 /* "MeshAdaptPUMI/MeshAdapt.pyx":169
12414 * def dumpMesh(self, cmeshTools.CMesh cmesh):
12415 * return self.thisptr.dumpMesh(cmesh.mesh)
12416 * def getERMSizeField(self, err_total): # <<<<<<<<<<<<<<
12417 * return self.thisptr.getERMSizeField(err_total);
12418 * def getMPvalue(self,field_val,val_0,val_1):
12419*/
12420
12421 /* function exit code */
12422 __pyx_L1_error:;
12423 __Pyx_XDECREF(__pyx_t_2);
12424 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.getERMSizeField", __pyx_clineno, __pyx_lineno, __pyx_filename);
12425 __pyx_r = NULL;
12426 __pyx_L0:;
12427 __Pyx_XGIVEREF(__pyx_r);
12428 __Pyx_RefNannyFinishContext();
12429 return __pyx_r;
12430}
12431
12432/* "MeshAdaptPUMI/MeshAdapt.pyx":171
12433 * def getERMSizeField(self, err_total):
12434 * return self.thisptr.getERMSizeField(err_total);
12435 * def getMPvalue(self,field_val,val_0,val_1): # <<<<<<<<<<<<<<
12436 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12437 * def willAdapt(self):
12438*/
12439
12440/* Python wrapper */
12441static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue(PyObject *__pyx_v_self,
12442#if CYTHON_VECTORCALL
12443PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12444#else
12445PyObject *__pyx_args, PyObject *__pyx_kwds
12446#endif
12447); /*proto*/
12448static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue = {"getMPvalue", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12449static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue(PyObject *__pyx_v_self,
12450#if CYTHON_VECTORCALL
12451PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12452#else
12453PyObject *__pyx_args, PyObject *__pyx_kwds
12454#endif
12455) {
12456 PyObject *__pyx_v_field_val = 0;
12457 PyObject *__pyx_v_val_0 = 0;
12458 PyObject *__pyx_v_val_1 = 0;
12459 #if !CYTHON_VECTORCALL
12460 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12461 #endif
12462 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12463 PyObject* values[3] = {0,0,0};
12464 int __pyx_lineno = 0;
12465 const char *__pyx_filename = NULL;
12466 int __pyx_clineno = 0;
12467 PyObject *__pyx_r = 0;
12468 __Pyx_RefNannyDeclarations
12469 __Pyx_RefNannySetupContext("getMPvalue (wrapper)", 0);
12470 #if !CYTHON_VECTORCALL
12471 #if CYTHON_ASSUME_SAFE_SIZE
12472 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12473 #else
12474 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12475 #endif
12476 #endif
12477 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12478 {
12479 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_field_val,&__pyx_mstate_global->__pyx_n_u_val_0,&__pyx_mstate_global->__pyx_n_u_val_1,0};
12480 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12481 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 171, __pyx_L3_error)
12482 if (__pyx_kwds_len > 0) {
12483 switch (__pyx_nargs) {
12484 case 3:
12485 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12486 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 171, __pyx_L3_error)
12487 CYTHON_FALLTHROUGH;
12488 case 2:
12489 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12490 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 171, __pyx_L3_error)
12491 CYTHON_FALLTHROUGH;
12492 case 1:
12493 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12494 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 171, __pyx_L3_error)
12495 CYTHON_FALLTHROUGH;
12496 case 0: break;
12497 default: goto __pyx_L5_argtuple_error;
12498 }
12499 const Py_ssize_t kwd_pos_args = __pyx_nargs;
12500 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getMPvalue", 0) < (0)) __PYX_ERR(0, 171, __pyx_L3_error)
12501 for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
12502 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getMPvalue", 1, 3, 3, i); __PYX_ERR(0, 171, __pyx_L3_error) }
12503 }
12504 } else if (unlikely(__pyx_nargs != 3)) {
12505 goto __pyx_L5_argtuple_error;
12506 } else {
12507 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
12508 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 171, __pyx_L3_error)
12509 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
12510 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 171, __pyx_L3_error)
12511 values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
12512 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 171, __pyx_L3_error)
12513 }
12514 __pyx_v_field_val = values[0];
12515 __pyx_v_val_0 = values[1];
12516 __pyx_v_val_1 = values[2];
12517 }
12518 goto __pyx_L6_skip;
12519 __pyx_L5_argtuple_error:;
12520 __Pyx_RaiseArgtupleInvalid("getMPvalue", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 171, __pyx_L3_error)
12521 __pyx_L6_skip:;
12522 goto __pyx_L4_argument_unpacking_done;
12523 __pyx_L3_error:;
12524 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12525 Py_XDECREF(values[__pyx_temp]);
12526 }
12527 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.getMPvalue", __pyx_clineno, __pyx_lineno, __pyx_filename);
12528 __Pyx_RefNannyFinishContext();
12529 return NULL;
12530 __pyx_L4_argument_unpacking_done:;
12531 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_56getMPvalue(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_field_val, __pyx_v_val_0, __pyx_v_val_1);
12532
12533 /* function exit code */
12534 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
12535 Py_XDECREF(values[__pyx_temp]);
12536 }
12537 __Pyx_RefNannyFinishContext();
12538 return __pyx_r;
12539}
12540
12541static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_56getMPvalue(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_field_val, PyObject *__pyx_v_val_0, PyObject *__pyx_v_val_1) {
12542 PyObject *__pyx_r = NULL;
12543 __Pyx_RefNannyDeclarations
12544 double __pyx_t_1;
12545 double __pyx_t_2;
12546 double __pyx_t_3;
12547 PyObject *__pyx_t_4 = NULL;
12548 int __pyx_lineno = 0;
12549 const char *__pyx_filename = NULL;
12550 int __pyx_clineno = 0;
12551 __Pyx_RefNannySetupContext("getMPvalue", 0);
12552
12553 /* "MeshAdaptPUMI/MeshAdapt.pyx":172
12554 * return self.thisptr.getERMSizeField(err_total);
12555 * def getMPvalue(self,field_val,val_0,val_1):
12556 * return self.thisptr.getMPvalue(field_val,val_0,val_1) # <<<<<<<<<<<<<<
12557 * def willAdapt(self):
12558 * return self.thisptr.willAdapt()
12559*/
12560 __pyx_t_1 = __Pyx_PyFloat_AsDouble(__pyx_v_field_val); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error)
12561 __pyx_t_2 = __Pyx_PyFloat_AsDouble(__pyx_v_val_0); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error)
12562 __pyx_t_3 = __Pyx_PyFloat_AsDouble(__pyx_v_val_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error)
12563 __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->thisptr->getMPvalue(__pyx_t_1, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error)
12564 __Pyx_GOTREF(__pyx_t_4);
12565
12566
12567
12568 {
12569 PyObject *__pyx_temp;
12570 {
12571 __pyx_temp = __pyx_r;
12572 __pyx_r = __pyx_t_4;
12573 }
12574 __Pyx_XDECREF(__pyx_temp);
12575 }
12576 __pyx_t_4 = 0;
12577 goto __pyx_L0;
12578
12579 /* "MeshAdaptPUMI/MeshAdapt.pyx":171
12580 * def getERMSizeField(self, err_total):
12581 * return self.thisptr.getERMSizeField(err_total);
12582 * def getMPvalue(self,field_val,val_0,val_1): # <<<<<<<<<<<<<<
12583 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12584 * def willAdapt(self):
12585*/
12586
12587 /* function exit code */
12588 __pyx_L1_error:;
12589 __Pyx_XDECREF(__pyx_t_4);
12590 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.getMPvalue", __pyx_clineno, __pyx_lineno, __pyx_filename);
12591 __pyx_r = NULL;
12592 __pyx_L0:;
12593 __Pyx_XGIVEREF(__pyx_r);
12594 __Pyx_RefNannyFinishContext();
12595 return __pyx_r;
12596}
12597
12598/* "MeshAdaptPUMI/MeshAdapt.pyx":173
12599 * def getMPvalue(self,field_val,val_0,val_1):
12600 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12601 * def willAdapt(self): # <<<<<<<<<<<<<<
12602 * return self.thisptr.willAdapt()
12603 * def willInterfaceAdapt(self):
12604*/
12605
12606/* Python wrapper */
12607static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt(PyObject *__pyx_v_self,
12608#if CYTHON_VECTORCALL
12609PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12610#else
12611PyObject *__pyx_args, PyObject *__pyx_kwds
12612#endif
12613); /*proto*/
12614static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt = {"willAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12615static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt(PyObject *__pyx_v_self,
12616#if CYTHON_VECTORCALL
12617PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12618#else
12619PyObject *__pyx_args, PyObject *__pyx_kwds
12620#endif
12621) {
12622 #if !CYTHON_VECTORCALL
12623 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12624 #endif
12625 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12626 PyObject *__pyx_r = 0;
12627 __Pyx_RefNannyDeclarations
12628 __Pyx_RefNannySetupContext("willAdapt (wrapper)", 0);
12629 #if !CYTHON_VECTORCALL
12630 #if CYTHON_ASSUME_SAFE_SIZE
12631 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12632 #else
12633 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12634 #endif
12635 #endif
12636 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12637 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("willAdapt", 1, 0, 0, __pyx_nargs); return NULL; }
12638 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12639 if (unlikely(__pyx_kwds_len < 0)) return NULL;
12640 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("willAdapt", __pyx_kwds); return NULL;}
12641 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_58willAdapt(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
12642
12643 /* function exit code */
12644 __Pyx_RefNannyFinishContext();
12645 return __pyx_r;
12646}
12647
12648static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_58willAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
12649 PyObject *__pyx_r = NULL;
12650 __Pyx_RefNannyDeclarations
12651 PyObject *__pyx_t_1 = NULL;
12652 int __pyx_lineno = 0;
12653 const char *__pyx_filename = NULL;
12654 int __pyx_clineno = 0;
12655 __Pyx_RefNannySetupContext("willAdapt", 0);
12656
12657 /* "MeshAdaptPUMI/MeshAdapt.pyx":174
12658 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12659 * def willAdapt(self):
12660 * return self.thisptr.willAdapt() # <<<<<<<<<<<<<<
12661 * def willInterfaceAdapt(self):
12662 * return self.thisptr.willInterfaceAdapt()
12663*/
12664 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->willAdapt()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error)
12665 __Pyx_GOTREF(__pyx_t_1);
12666 {
12667 PyObject *__pyx_temp;
12668 {
12669 __pyx_temp = __pyx_r;
12670 __pyx_r = __pyx_t_1;
12671 }
12672 __Pyx_XDECREF(__pyx_temp);
12673 }
12674 __pyx_t_1 = 0;
12675 goto __pyx_L0;
12676
12677 /* "MeshAdaptPUMI/MeshAdapt.pyx":173
12678 * def getMPvalue(self,field_val,val_0,val_1):
12679 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
12680 * def willAdapt(self): # <<<<<<<<<<<<<<
12681 * return self.thisptr.willAdapt()
12682 * def willInterfaceAdapt(self):
12683*/
12684
12685 /* function exit code */
12686 __pyx_L1_error:;
12687 __Pyx_XDECREF(__pyx_t_1);
12688 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.willAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
12689 __pyx_r = NULL;
12690 __pyx_L0:;
12691 __Pyx_XGIVEREF(__pyx_r);
12692 __Pyx_RefNannyFinishContext();
12693 return __pyx_r;
12694}
12695
12696/* "MeshAdaptPUMI/MeshAdapt.pyx":175
12697 * def willAdapt(self):
12698 * return self.thisptr.willAdapt()
12699 * def willInterfaceAdapt(self): # <<<<<<<<<<<<<<
12700 * return self.thisptr.willInterfaceAdapt()
12701 * def get_local_error(self):
12702*/
12703
12704/* Python wrapper */
12705static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt(PyObject *__pyx_v_self,
12706#if CYTHON_VECTORCALL
12707PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12708#else
12709PyObject *__pyx_args, PyObject *__pyx_kwds
12710#endif
12711); /*proto*/
12712static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt = {"willInterfaceAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12713static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt(PyObject *__pyx_v_self,
12714#if CYTHON_VECTORCALL
12715PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12716#else
12717PyObject *__pyx_args, PyObject *__pyx_kwds
12718#endif
12719) {
12720 #if !CYTHON_VECTORCALL
12721 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12722 #endif
12723 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12724 PyObject *__pyx_r = 0;
12725 __Pyx_RefNannyDeclarations
12726 __Pyx_RefNannySetupContext("willInterfaceAdapt (wrapper)", 0);
12727 #if !CYTHON_VECTORCALL
12728 #if CYTHON_ASSUME_SAFE_SIZE
12729 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12730 #else
12731 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12732 #endif
12733 #endif
12734 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12735 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("willInterfaceAdapt", 1, 0, 0, __pyx_nargs); return NULL; }
12736 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12737 if (unlikely(__pyx_kwds_len < 0)) return NULL;
12738 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("willInterfaceAdapt", __pyx_kwds); return NULL;}
12739 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_60willInterfaceAdapt(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
12740
12741 /* function exit code */
12742 __Pyx_RefNannyFinishContext();
12743 return __pyx_r;
12744}
12745
12746static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_60willInterfaceAdapt(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
12747 PyObject *__pyx_r = NULL;
12748 __Pyx_RefNannyDeclarations
12749 PyObject *__pyx_t_1 = NULL;
12750 int __pyx_lineno = 0;
12751 const char *__pyx_filename = NULL;
12752 int __pyx_clineno = 0;
12753 __Pyx_RefNannySetupContext("willInterfaceAdapt", 0);
12754
12755 /* "MeshAdaptPUMI/MeshAdapt.pyx":176
12756 * return self.thisptr.willAdapt()
12757 * def willInterfaceAdapt(self):
12758 * return self.thisptr.willInterfaceAdapt() # <<<<<<<<<<<<<<
12759 * def get_local_error(self):
12760 * errTotal=0.0;
12761*/
12762 __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->thisptr->willInterfaceAdapt()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
12763 __Pyx_GOTREF(__pyx_t_1);
12764 {
12765 PyObject *__pyx_temp;
12766 {
12767 __pyx_temp = __pyx_r;
12768 __pyx_r = __pyx_t_1;
12769 }
12770 __Pyx_XDECREF(__pyx_temp);
12771 }
12772 __pyx_t_1 = 0;
12773 goto __pyx_L0;
12774
12775 /* "MeshAdaptPUMI/MeshAdapt.pyx":175
12776 * def willAdapt(self):
12777 * return self.thisptr.willAdapt()
12778 * def willInterfaceAdapt(self): # <<<<<<<<<<<<<<
12779 * return self.thisptr.willInterfaceAdapt()
12780 * def get_local_error(self):
12781*/
12782
12783 /* function exit code */
12784 __pyx_L1_error:;
12785 __Pyx_XDECREF(__pyx_t_1);
12786 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.willInterfaceAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
12787 __pyx_r = NULL;
12788 __pyx_L0:;
12789 __Pyx_XGIVEREF(__pyx_r);
12790 __Pyx_RefNannyFinishContext();
12791 return __pyx_r;
12792}
12793
12794/* "MeshAdaptPUMI/MeshAdapt.pyx":177
12795 * def willInterfaceAdapt(self):
12796 * return self.thisptr.willInterfaceAdapt()
12797 * def get_local_error(self): # <<<<<<<<<<<<<<
12798 * errTotal=0.0;
12799 * self.thisptr.get_local_error(errTotal)
12800*/
12801
12802/* Python wrapper */
12803static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error(PyObject *__pyx_v_self,
12804#if CYTHON_VECTORCALL
12805PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12806#else
12807PyObject *__pyx_args, PyObject *__pyx_kwds
12808#endif
12809); /*proto*/
12810static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error = {"get_local_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12811static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error(PyObject *__pyx_v_self,
12812#if CYTHON_VECTORCALL
12813PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12814#else
12815PyObject *__pyx_args, PyObject *__pyx_kwds
12816#endif
12817) {
12818 #if !CYTHON_VECTORCALL
12819 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12820 #endif
12821 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12822 PyObject *__pyx_r = 0;
12823 __Pyx_RefNannyDeclarations
12824 __Pyx_RefNannySetupContext("get_local_error (wrapper)", 0);
12825 #if !CYTHON_VECTORCALL
12826 #if CYTHON_ASSUME_SAFE_SIZE
12827 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12828 #else
12829 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12830 #endif
12831 #endif
12832 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12833 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("get_local_error", 1, 0, 0, __pyx_nargs); return NULL; }
12834 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12835 if (unlikely(__pyx_kwds_len < 0)) return NULL;
12836 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("get_local_error", __pyx_kwds); return NULL;}
12837 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_62get_local_error(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
12838
12839 /* function exit code */
12840 __Pyx_RefNannyFinishContext();
12841 return __pyx_r;
12842}
12843
12844static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_62get_local_error(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
12845 double __pyx_v_errTotal;
12846 PyObject *__pyx_r = NULL;
12847 __Pyx_RefNannyDeclarations
12848 PyObject *__pyx_t_1 = NULL;
12849 int __pyx_lineno = 0;
12850 const char *__pyx_filename = NULL;
12851 int __pyx_clineno = 0;
12852 __Pyx_RefNannySetupContext("get_local_error", 0);
12853
12854 /* "MeshAdaptPUMI/MeshAdapt.pyx":178
12855 * return self.thisptr.willInterfaceAdapt()
12856 * def get_local_error(self):
12857 * errTotal=0.0; # <<<<<<<<<<<<<<
12858 * self.thisptr.get_local_error(errTotal)
12859 * return errTotal
12860*/
12861 __pyx_v_errTotal = 0.0;
12862
12863 /* "MeshAdaptPUMI/MeshAdapt.pyx":179
12864 * def get_local_error(self):
12865 * errTotal=0.0;
12866 * self.thisptr.get_local_error(errTotal) # <<<<<<<<<<<<<<
12867 * return errTotal
12868 * def get_VMS_error(self):
12869*/
12870 __pyx_v_self->thisptr->get_local_error(__pyx_v_errTotal);
12871
12872 /* "MeshAdaptPUMI/MeshAdapt.pyx":180
12873 * errTotal=0.0;
12874 * self.thisptr.get_local_error(errTotal)
12875 * return errTotal # <<<<<<<<<<<<<<
12876 * def get_VMS_error(self):
12877 * errTotal=0.0;
12878*/
12879 __pyx_t_1 = PyFloat_FromDouble(__pyx_v_errTotal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error)
12880 __Pyx_GOTREF(__pyx_t_1);
12881 {
12882 PyObject *__pyx_temp;
12883 {
12884 __pyx_temp = __pyx_r;
12885 __pyx_r = __pyx_t_1;
12886 }
12887 __Pyx_XDECREF(__pyx_temp);
12888 }
12889 __pyx_t_1 = 0;
12890 goto __pyx_L0;
12891
12892 /* "MeshAdaptPUMI/MeshAdapt.pyx":177
12893 * def willInterfaceAdapt(self):
12894 * return self.thisptr.willInterfaceAdapt()
12895 * def get_local_error(self): # <<<<<<<<<<<<<<
12896 * errTotal=0.0;
12897 * self.thisptr.get_local_error(errTotal)
12898*/
12899
12900 /* function exit code */
12901 __pyx_L1_error:;
12902 __Pyx_XDECREF(__pyx_t_1);
12903 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.get_local_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
12904 __pyx_r = NULL;
12905 __pyx_L0:;
12906
12907 __Pyx_XGIVEREF(__pyx_r);
12908 __Pyx_RefNannyFinishContext();
12909 return __pyx_r;
12910}
12911
12912/* "MeshAdaptPUMI/MeshAdapt.pyx":181
12913 * self.thisptr.get_local_error(errTotal)
12914 * return errTotal
12915 * def get_VMS_error(self): # <<<<<<<<<<<<<<
12916 * errTotal=0.0;
12917 * self.thisptr.get_VMS_error(errTotal)
12918*/
12919
12920/* Python wrapper */
12921static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error(PyObject *__pyx_v_self,
12922#if CYTHON_VECTORCALL
12923PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12924#else
12925PyObject *__pyx_args, PyObject *__pyx_kwds
12926#endif
12927); /*proto*/
12928static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error = {"get_VMS_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
12929static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error(PyObject *__pyx_v_self,
12930#if CYTHON_VECTORCALL
12931PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
12932#else
12933PyObject *__pyx_args, PyObject *__pyx_kwds
12934#endif
12935) {
12936 #if !CYTHON_VECTORCALL
12937 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
12938 #endif
12939 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
12940 PyObject *__pyx_r = 0;
12941 __Pyx_RefNannyDeclarations
12942 __Pyx_RefNannySetupContext("get_VMS_error (wrapper)", 0);
12943 #if !CYTHON_VECTORCALL
12944 #if CYTHON_ASSUME_SAFE_SIZE
12945 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
12946 #else
12947 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
12948 #endif
12949 #endif
12950 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
12951 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("get_VMS_error", 1, 0, 0, __pyx_nargs); return NULL; }
12952 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
12953 if (unlikely(__pyx_kwds_len < 0)) return NULL;
12954 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("get_VMS_error", __pyx_kwds); return NULL;}
12955 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_64get_VMS_error(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
12956
12957 /* function exit code */
12958 __Pyx_RefNannyFinishContext();
12959 return __pyx_r;
12960}
12961
12962static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_64get_VMS_error(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
12963 double __pyx_v_errTotal;
12964 PyObject *__pyx_r = NULL;
12965 __Pyx_RefNannyDeclarations
12966 PyObject *__pyx_t_1 = NULL;
12967 int __pyx_lineno = 0;
12968 const char *__pyx_filename = NULL;
12969 int __pyx_clineno = 0;
12970 __Pyx_RefNannySetupContext("get_VMS_error", 0);
12971
12972 /* "MeshAdaptPUMI/MeshAdapt.pyx":182
12973 * return errTotal
12974 * def get_VMS_error(self):
12975 * errTotal=0.0; # <<<<<<<<<<<<<<
12976 * self.thisptr.get_VMS_error(errTotal)
12977 * return errTotal
12978*/
12979 __pyx_v_errTotal = 0.0;
12980
12981 /* "MeshAdaptPUMI/MeshAdapt.pyx":183
12982 * def get_VMS_error(self):
12983 * errTotal=0.0;
12984 * self.thisptr.get_VMS_error(errTotal) # <<<<<<<<<<<<<<
12985 * return errTotal
12986 * def getMinimumQuality(self):
12987*/
12988 __pyx_v_self->thisptr->get_VMS_error(__pyx_v_errTotal);
12989
12990 /* "MeshAdaptPUMI/MeshAdapt.pyx":184
12991 * errTotal=0.0;
12992 * self.thisptr.get_VMS_error(errTotal)
12993 * return errTotal # <<<<<<<<<<<<<<
12994 * def getMinimumQuality(self):
12995 * return self.thisptr.getMinimumQuality()
12996*/
12997 __pyx_t_1 = PyFloat_FromDouble(__pyx_v_errTotal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error)
12998 __Pyx_GOTREF(__pyx_t_1);
12999 {
13000 PyObject *__pyx_temp;
13001 {
13002 __pyx_temp = __pyx_r;
13003 __pyx_r = __pyx_t_1;
13004 }
13005 __Pyx_XDECREF(__pyx_temp);
13006 }
13007 __pyx_t_1 = 0;
13008 goto __pyx_L0;
13009
13010 /* "MeshAdaptPUMI/MeshAdapt.pyx":181
13011 * self.thisptr.get_local_error(errTotal)
13012 * return errTotal
13013 * def get_VMS_error(self): # <<<<<<<<<<<<<<
13014 * errTotal=0.0;
13015 * self.thisptr.get_VMS_error(errTotal)
13016*/
13017
13018 /* function exit code */
13019 __pyx_L1_error:;
13020 __Pyx_XDECREF(__pyx_t_1);
13021 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.get_VMS_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
13022 __pyx_r = NULL;
13023 __pyx_L0:;
13024
13025 __Pyx_XGIVEREF(__pyx_r);
13026 __Pyx_RefNannyFinishContext();
13027 return __pyx_r;
13028}
13029
13030/* "MeshAdaptPUMI/MeshAdapt.pyx":185
13031 * self.thisptr.get_VMS_error(errTotal)
13032 * return errTotal
13033 * def getMinimumQuality(self): # <<<<<<<<<<<<<<
13034 * return self.thisptr.getMinimumQuality()
13035 * def writeMesh(self,meshName):
13036*/
13037
13038/* Python wrapper */
13039static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality(PyObject *__pyx_v_self,
13040#if CYTHON_VECTORCALL
13041PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13042#else
13043PyObject *__pyx_args, PyObject *__pyx_kwds
13044#endif
13045); /*proto*/
13046static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality = {"getMinimumQuality", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13047static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality(PyObject *__pyx_v_self,
13048#if CYTHON_VECTORCALL
13049PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13050#else
13051PyObject *__pyx_args, PyObject *__pyx_kwds
13052#endif
13053) {
13054 #if !CYTHON_VECTORCALL
13055 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13056 #endif
13057 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13058 PyObject *__pyx_r = 0;
13059 __Pyx_RefNannyDeclarations
13060 __Pyx_RefNannySetupContext("getMinimumQuality (wrapper)", 0);
13061 #if !CYTHON_VECTORCALL
13062 #if CYTHON_ASSUME_SAFE_SIZE
13063 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13064 #else
13065 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13066 #endif
13067 #endif
13068 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13069 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("getMinimumQuality", 1, 0, 0, __pyx_nargs); return NULL; }
13070 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13071 if (unlikely(__pyx_kwds_len < 0)) return NULL;
13072 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("getMinimumQuality", __pyx_kwds); return NULL;}
13073 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_66getMinimumQuality(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
13074
13075 /* function exit code */
13076 __Pyx_RefNannyFinishContext();
13077 return __pyx_r;
13078}
13079
13080static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_66getMinimumQuality(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
13081 PyObject *__pyx_r = NULL;
13082 __Pyx_RefNannyDeclarations
13083 PyObject *__pyx_t_1 = NULL;
13084 int __pyx_lineno = 0;
13085 const char *__pyx_filename = NULL;
13086 int __pyx_clineno = 0;
13087 __Pyx_RefNannySetupContext("getMinimumQuality", 0);
13088
13089 /* "MeshAdaptPUMI/MeshAdapt.pyx":186
13090 * return errTotal
13091 * def getMinimumQuality(self):
13092 * return self.thisptr.getMinimumQuality() # <<<<<<<<<<<<<<
13093 * def writeMesh(self,meshName):
13094 * return self.thisptr.writeMesh(meshName)
13095*/
13096 __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->thisptr->getMinimumQuality()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error)
13097 __Pyx_GOTREF(__pyx_t_1);
13098 {
13099 PyObject *__pyx_temp;
13100 {
13101 __pyx_temp = __pyx_r;
13102 __pyx_r = __pyx_t_1;
13103 }
13104 __Pyx_XDECREF(__pyx_temp);
13105 }
13106 __pyx_t_1 = 0;
13107 goto __pyx_L0;
13108
13109 /* "MeshAdaptPUMI/MeshAdapt.pyx":185
13110 * self.thisptr.get_VMS_error(errTotal)
13111 * return errTotal
13112 * def getMinimumQuality(self): # <<<<<<<<<<<<<<
13113 * return self.thisptr.getMinimumQuality()
13114 * def writeMesh(self,meshName):
13115*/
13116
13117 /* function exit code */
13118 __pyx_L1_error:;
13119 __Pyx_XDECREF(__pyx_t_1);
13120 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.getMinimumQuality", __pyx_clineno, __pyx_lineno, __pyx_filename);
13121 __pyx_r = NULL;
13122 __pyx_L0:;
13123 __Pyx_XGIVEREF(__pyx_r);
13124 __Pyx_RefNannyFinishContext();
13125 return __pyx_r;
13126}
13127
13128/* "MeshAdaptPUMI/MeshAdapt.pyx":187
13129 * def getMinimumQuality(self):
13130 * return self.thisptr.getMinimumQuality()
13131 * def writeMesh(self,meshName): # <<<<<<<<<<<<<<
13132 * return self.thisptr.writeMesh(meshName)
13133 * def cleanMesh(self):
13134*/
13135
13136/* Python wrapper */
13137static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh(PyObject *__pyx_v_self,
13138#if CYTHON_VECTORCALL
13139PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13140#else
13141PyObject *__pyx_args, PyObject *__pyx_kwds
13142#endif
13143); /*proto*/
13144static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh = {"writeMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13145static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh(PyObject *__pyx_v_self,
13146#if CYTHON_VECTORCALL
13147PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13148#else
13149PyObject *__pyx_args, PyObject *__pyx_kwds
13150#endif
13151) {
13152 PyObject *__pyx_v_meshName = 0;
13153 #if !CYTHON_VECTORCALL
13154 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13155 #endif
13156 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13157 PyObject* values[1] = {0};
13158 int __pyx_lineno = 0;
13159 const char *__pyx_filename = NULL;
13160 int __pyx_clineno = 0;
13161 PyObject *__pyx_r = 0;
13162 __Pyx_RefNannyDeclarations
13163 __Pyx_RefNannySetupContext("writeMesh (wrapper)", 0);
13164 #if !CYTHON_VECTORCALL
13165 #if CYTHON_ASSUME_SAFE_SIZE
13166 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13167 #else
13168 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13169 #endif
13170 #endif
13171 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13172 {
13173 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_meshName,0};
13174 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13175 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 187, __pyx_L3_error)
13176 if (__pyx_kwds_len > 0) {
13177 switch (__pyx_nargs) {
13178 case 1:
13179 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13180 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 187, __pyx_L3_error)
13181 CYTHON_FALLTHROUGH;
13182 case 0: break;
13183 default: goto __pyx_L5_argtuple_error;
13184 }
13185 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13186 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writeMesh", 0) < (0)) __PYX_ERR(0, 187, __pyx_L3_error)
13187 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13188 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writeMesh", 1, 1, 1, i); __PYX_ERR(0, 187, __pyx_L3_error) }
13189 }
13190 } else if (unlikely(__pyx_nargs != 1)) {
13191 goto __pyx_L5_argtuple_error;
13192 } else {
13193 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13194 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 187, __pyx_L3_error)
13195 }
13196 __pyx_v_meshName = values[0];
13197 }
13198 goto __pyx_L6_skip;
13199 __pyx_L5_argtuple_error:;
13200 __Pyx_RaiseArgtupleInvalid("writeMesh", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 187, __pyx_L3_error)
13201 __pyx_L6_skip:;
13202 goto __pyx_L4_argument_unpacking_done;
13203 __pyx_L3_error:;
13204 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13205 Py_XDECREF(values[__pyx_temp]);
13206 }
13207 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.writeMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
13208 __Pyx_RefNannyFinishContext();
13209 return NULL;
13210 __pyx_L4_argument_unpacking_done:;
13211 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_68writeMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v_meshName);
13212
13213 /* function exit code */
13214 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13215 Py_XDECREF(values[__pyx_temp]);
13216 }
13217 __Pyx_RefNannyFinishContext();
13218 return __pyx_r;
13219}
13220
13221static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_68writeMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, PyObject *__pyx_v_meshName) {
13222 PyObject *__pyx_r = NULL;
13223 __Pyx_RefNannyDeclarations
13224 char *__pyx_t_1;
13225 PyObject *__pyx_t_2 = NULL;
13226 int __pyx_lineno = 0;
13227 const char *__pyx_filename = NULL;
13228 int __pyx_clineno = 0;
13229 __Pyx_RefNannySetupContext("writeMesh", 0);
13230
13231 /* "MeshAdaptPUMI/MeshAdapt.pyx":188
13232 * return self.thisptr.getMinimumQuality()
13233 * def writeMesh(self,meshName):
13234 * return self.thisptr.writeMesh(meshName) # <<<<<<<<<<<<<<
13235 * def cleanMesh(self):
13236 * return self.thisptr.cleanMesh()
13237*/
13238 __pyx_t_1 = __Pyx_PyObject_AsWritableString(__pyx_v_meshName); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L1_error)
13239 __pyx_t_2 = __Pyx_void_to_None(__pyx_v_self->thisptr->writeMesh(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 188, __pyx_L1_error)
13240 __Pyx_GOTREF(__pyx_t_2);
13241
13242 {
13243 PyObject *__pyx_temp;
13244 {
13245 __pyx_temp = __pyx_r;
13246 __pyx_r = __pyx_t_2;
13247 }
13248 __Pyx_XDECREF(__pyx_temp);
13249 }
13250 __pyx_t_2 = 0;
13251 goto __pyx_L0;
13252
13253 /* "MeshAdaptPUMI/MeshAdapt.pyx":187
13254 * def getMinimumQuality(self):
13255 * return self.thisptr.getMinimumQuality()
13256 * def writeMesh(self,meshName): # <<<<<<<<<<<<<<
13257 * return self.thisptr.writeMesh(meshName)
13258 * def cleanMesh(self):
13259*/
13260
13261 /* function exit code */
13262 __pyx_L1_error:;
13263 __Pyx_XDECREF(__pyx_t_2);
13264 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.writeMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
13265 __pyx_r = NULL;
13266 __pyx_L0:;
13267 __Pyx_XGIVEREF(__pyx_r);
13268 __Pyx_RefNannyFinishContext();
13269 return __pyx_r;
13270}
13271
13272/* "MeshAdaptPUMI/MeshAdapt.pyx":189
13273 * def writeMesh(self,meshName):
13274 * return self.thisptr.writeMesh(meshName)
13275 * def cleanMesh(self): # <<<<<<<<<<<<<<
13276 * return self.thisptr.cleanMesh()
13277 *
13278*/
13279
13280/* Python wrapper */
13281static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh(PyObject *__pyx_v_self,
13282#if CYTHON_VECTORCALL
13283PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13284#else
13285PyObject *__pyx_args, PyObject *__pyx_kwds
13286#endif
13287); /*proto*/
13288static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh = {"cleanMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13289static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh(PyObject *__pyx_v_self,
13290#if CYTHON_VECTORCALL
13291PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13292#else
13293PyObject *__pyx_args, PyObject *__pyx_kwds
13294#endif
13295) {
13296 #if !CYTHON_VECTORCALL
13297 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13298 #endif
13299 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13300 PyObject *__pyx_r = 0;
13301 __Pyx_RefNannyDeclarations
13302 __Pyx_RefNannySetupContext("cleanMesh (wrapper)", 0);
13303 #if !CYTHON_VECTORCALL
13304 #if CYTHON_ASSUME_SAFE_SIZE
13305 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13306 #else
13307 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13308 #endif
13309 #endif
13310 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13311 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("cleanMesh", 1, 0, 0, __pyx_nargs); return NULL; }
13312 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13313 if (unlikely(__pyx_kwds_len < 0)) return NULL;
13314 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("cleanMesh", __pyx_kwds); return NULL;}
13315 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_70cleanMesh(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
13316
13317 /* function exit code */
13318 __Pyx_RefNannyFinishContext();
13319 return __pyx_r;
13320}
13321
13322static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_70cleanMesh(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
13323 PyObject *__pyx_r = NULL;
13324 __Pyx_RefNannyDeclarations
13325 PyObject *__pyx_t_1 = NULL;
13326 int __pyx_lineno = 0;
13327 const char *__pyx_filename = NULL;
13328 int __pyx_clineno = 0;
13329 __Pyx_RefNannySetupContext("cleanMesh", 0);
13330
13331 /* "MeshAdaptPUMI/MeshAdapt.pyx":190
13332 * return self.thisptr.writeMesh(meshName)
13333 * def cleanMesh(self):
13334 * return self.thisptr.cleanMesh() # <<<<<<<<<<<<<<
13335 *
13336 * class AdaptManager():
13337*/
13338 __pyx_t_1 = __Pyx_void_to_None(__pyx_v_self->thisptr->cleanMesh()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error)
13339 __Pyx_GOTREF(__pyx_t_1);
13340 {
13341 PyObject *__pyx_temp;
13342 {
13343 __pyx_temp = __pyx_r;
13344 __pyx_r = __pyx_t_1;
13345 }
13346 __Pyx_XDECREF(__pyx_temp);
13347 }
13348 __pyx_t_1 = 0;
13349 goto __pyx_L0;
13350
13351 /* "MeshAdaptPUMI/MeshAdapt.pyx":189
13352 * def writeMesh(self,meshName):
13353 * return self.thisptr.writeMesh(meshName)
13354 * def cleanMesh(self): # <<<<<<<<<<<<<<
13355 * return self.thisptr.cleanMesh()
13356 *
13357*/
13358
13359 /* function exit code */
13360 __pyx_L1_error:;
13361 __Pyx_XDECREF(__pyx_t_1);
13362 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.cleanMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
13363 __pyx_r = NULL;
13364 __pyx_L0:;
13365 __Pyx_XGIVEREF(__pyx_r);
13366 __Pyx_RefNannyFinishContext();
13367 return __pyx_r;
13368}
13369
13370/* "(tree fragment)":1
13371 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
13372 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13373 * def __setstate_cython__(self, __pyx_state):
13374*/
13375
13376/* Python wrapper */
13377static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__(PyObject *__pyx_v_self,
13378#if CYTHON_VECTORCALL
13379PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13380#else
13381PyObject *__pyx_args, PyObject *__pyx_kwds
13382#endif
13383); /*proto*/
13384static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13385static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__(PyObject *__pyx_v_self,
13386#if CYTHON_VECTORCALL
13387PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13388#else
13389PyObject *__pyx_args, PyObject *__pyx_kwds
13390#endif
13391) {
13392 #if !CYTHON_VECTORCALL
13393 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13394 #endif
13395 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13396 PyObject *__pyx_r = 0;
13397 __Pyx_RefNannyDeclarations
13398 __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
13399 #if !CYTHON_VECTORCALL
13400 #if CYTHON_ASSUME_SAFE_SIZE
13401 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13402 #else
13403 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13404 #endif
13405 #endif
13406 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13407 if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
13408 const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13409 if (unlikely(__pyx_kwds_len < 0)) return NULL;
13410 if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
13411 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_72__reduce_cython__(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self));
13412
13413 /* function exit code */
13414 __Pyx_RefNannyFinishContext();
13415 return __pyx_r;
13416}
13417
13418static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_72__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self) {
13419 PyObject *__pyx_r = NULL;
13420 __Pyx_RefNannyDeclarations
13421 int __pyx_lineno = 0;
13422 const char *__pyx_filename = NULL;
13423 int __pyx_clineno = 0;
13424 __Pyx_RefNannySetupContext("__reduce_cython__", 0);
13425
13426 /* "(tree fragment)":2
13427 * def __reduce_cython__(self):
13428 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
13429 * def __setstate_cython__(self, __pyx_state):
13430 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13431*/
13432 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
13433 __PYX_ERR(1, 2, __pyx_L1_error)
13434
13435 /* "(tree fragment)":1
13436 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
13437 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13438 * def __setstate_cython__(self, __pyx_state):
13439*/
13440
13441 /* function exit code */
13442 __pyx_L1_error:;
13443 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13444 __pyx_r = NULL;
13445 __Pyx_XGIVEREF(__pyx_r);
13446 __Pyx_RefNannyFinishContext();
13447 return __pyx_r;
13448}
13449
13450/* "(tree fragment)":3
13451 * def __reduce_cython__(self):
13452 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13453 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
13454 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13455*/
13456
13457/* Python wrapper */
13458static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__(PyObject *__pyx_v_self,
13459#if CYTHON_VECTORCALL
13460PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13461#else
13462PyObject *__pyx_args, PyObject *__pyx_kwds
13463#endif
13464); /*proto*/
13465static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13466static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__(PyObject *__pyx_v_self,
13467#if CYTHON_VECTORCALL
13468PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13469#else
13470PyObject *__pyx_args, PyObject *__pyx_kwds
13471#endif
13472) {
13473 CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
13474 #if !CYTHON_VECTORCALL
13475 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13476 #endif
13477 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13478 PyObject* values[1] = {0};
13479 int __pyx_lineno = 0;
13480 const char *__pyx_filename = NULL;
13481 int __pyx_clineno = 0;
13482 PyObject *__pyx_r = 0;
13483 __Pyx_RefNannyDeclarations
13484 __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
13485 #if !CYTHON_VECTORCALL
13486 #if CYTHON_ASSUME_SAFE_SIZE
13487 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13488 #else
13489 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13490 #endif
13491 #endif
13492 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13493 {
13494 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
13495 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13496 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
13497 if (__pyx_kwds_len > 0) {
13498 switch (__pyx_nargs) {
13499 case 1:
13500 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13501 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
13502 CYTHON_FALLTHROUGH;
13503 case 0: break;
13504 default: goto __pyx_L5_argtuple_error;
13505 }
13506 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13507 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
13508 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13509 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
13510 }
13511 } else if (unlikely(__pyx_nargs != 1)) {
13512 goto __pyx_L5_argtuple_error;
13513 } else {
13514 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13515 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
13516 }
13517 __pyx_v___pyx_state = values[0];
13518 }
13519 goto __pyx_L6_skip;
13520 __pyx_L5_argtuple_error:;
13521 __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
13522 __pyx_L6_skip:;
13523 goto __pyx_L4_argument_unpacking_done;
13524 __pyx_L3_error:;
13525 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13526 Py_XDECREF(values[__pyx_temp]);
13527 }
13528 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13529 __Pyx_RefNannyFinishContext();
13530 return NULL;
13531 __pyx_L4_argument_unpacking_done:;
13532 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_74__setstate_cython__(((struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *)__pyx_v_self), __pyx_v___pyx_state);
13533
13534 /* function exit code */
13535 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13536 Py_XDECREF(values[__pyx_temp]);
13537 }
13538 __Pyx_RefNannyFinishContext();
13539 return __pyx_r;
13540}
13541
13542static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_74__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
13543 PyObject *__pyx_r = NULL;
13544 __Pyx_RefNannyDeclarations
13545 int __pyx_lineno = 0;
13546 const char *__pyx_filename = NULL;
13547 int __pyx_clineno = 0;
13548 __Pyx_RefNannySetupContext("__setstate_cython__", 0);
13549
13550 /* "(tree fragment)":4
13551 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13552 * def __setstate_cython__(self, __pyx_state):
13553 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
13554*/
13555 __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
13556 __PYX_ERR(1, 4, __pyx_L1_error)
13557
13558 /* "(tree fragment)":3
13559 * def __reduce_cython__(self):
13560 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13561 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
13562 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13563*/
13564
13565 /* function exit code */
13566 __pyx_L1_error:;
13567 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.MeshAdapt.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13568 __pyx_r = NULL;
13569 __Pyx_XGIVEREF(__pyx_r);
13570 __Pyx_RefNannyFinishContext();
13571 return __pyx_r;
13572}
13573
13574/* "MeshAdaptPUMI/MeshAdapt.pyx":193
13575 *
13576 * class AdaptManager():
13577 * def __init__(self,adapter=MeshAdapt()): # <<<<<<<<<<<<<<
13578 * self.modelDict = {}
13579 * self.sizeInputs = []
13580*/
13581
13582static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt___defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
13583 PyObject *__pyx_r = NULL;
13584 __Pyx_RefNannyDeclarations
13585 PyObject *__pyx_t_1 = NULL;
13586 PyObject *__pyx_t_2 = NULL;
13587 int __pyx_lineno = 0;
13588 const char *__pyx_filename = NULL;
13589 int __pyx_clineno = 0;
13590 __Pyx_RefNannySetupContext("__defaults__", 0);
13591 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error)
13592 __Pyx_GOTREF(__pyx_t_1);
13593 __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
13594 __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
13595 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(0, 193, __pyx_L1_error);
13596 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error)
13597 __Pyx_GOTREF(__pyx_t_2);
13598 __Pyx_GIVEREF(__pyx_t_1);
13599 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 193, __pyx_L1_error);
13600 __Pyx_INCREF(Py_None);
13601 __Pyx_GIVEREF(Py_None);
13602 if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(0, 193, __pyx_L1_error);
13603 __pyx_t_1 = 0;
13604 {
13605 PyObject *__pyx_temp;
13606 {
13607 __pyx_temp = __pyx_r;
13608 __pyx_r = __pyx_t_2;
13609 }
13610 __Pyx_XDECREF(__pyx_temp);
13611 }
13612 __pyx_t_2 = 0;
13613 goto __pyx_L0;
13614
13615 /* function exit code */
13616 __pyx_L1_error:;
13617 __Pyx_XDECREF(__pyx_t_1);
13618 __Pyx_XDECREF(__pyx_t_2);
13619 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13620 __pyx_r = NULL;
13621 __pyx_L0:;
13622 __Pyx_XGIVEREF(__pyx_r);
13623 __Pyx_RefNannyFinishContext();
13624 return __pyx_r;
13625}
13626
13627/* Python wrapper */
13628static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager_1__init__(PyObject *__pyx_self,
13629#if CYTHON_VECTORCALL
13630PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13631#else
13632PyObject *__pyx_args, PyObject *__pyx_kwds
13633#endif
13634); /*proto*/
13635static PyMethodDef __pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
13636static PyObject *__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager_1__init__(PyObject *__pyx_self,
13637#if CYTHON_VECTORCALL
13638PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
13639#else
13640PyObject *__pyx_args, PyObject *__pyx_kwds
13641#endif
13642) {
13643 PyObject *__pyx_v_self = 0;
13644 PyObject *__pyx_v_adapter = 0;
13645 #if !CYTHON_VECTORCALL
13646 CYTHON_UNUSED Py_ssize_t __pyx_nargs;
13647 #endif
13648 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
13649 PyObject* values[2] = {0,0};
13650 int __pyx_lineno = 0;
13651 const char *__pyx_filename = NULL;
13652 int __pyx_clineno = 0;
13653 PyObject *__pyx_r = 0;
13654 __Pyx_RefNannyDeclarations
13655 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
13656 #if !CYTHON_VECTORCALL
13657 #if CYTHON_ASSUME_SAFE_SIZE
13658 __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
13659 #else
13660 __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
13661 #endif
13662 #endif
13663 __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
13664 {
13665 PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_adapter,0};
13666 struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
13667 const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
13668 if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 193, __pyx_L3_error)
13669 if (__pyx_kwds_len > 0) {
13670 switch (__pyx_nargs) {
13671 case 2:
13672 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13673 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 193, __pyx_L3_error)
13674 CYTHON_FALLTHROUGH;
13675 case 1:
13676 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13677 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 193, __pyx_L3_error)
13678 CYTHON_FALLTHROUGH;
13679 case 0: break;
13680 default: goto __pyx_L5_argtuple_error;
13681 }
13682 const Py_ssize_t kwd_pos_args = __pyx_nargs;
13683 if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 193, __pyx_L3_error)
13684 if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
13685 for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13686 if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 193, __pyx_L3_error) }
13687 }
13688 } else {
13689 switch (__pyx_nargs) {
13690 case 2:
13691 values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
13692 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 193, __pyx_L3_error)
13693 CYTHON_FALLTHROUGH;
13694 case 1:
13695 values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
13696 if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 193, __pyx_L3_error)
13697 break;
13698 default: goto __pyx_L5_argtuple_error;
13699 }
13700 if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
13701 }
13702 __pyx_v_self = values[0];
13703 __pyx_v_adapter = values[1];
13704 }
13705 goto __pyx_L6_skip;
13706 __pyx_L5_argtuple_error:;
13707 __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 193, __pyx_L3_error)
13708 __pyx_L6_skip:;
13709 goto __pyx_L4_argument_unpacking_done;
13710 __pyx_L3_error:;
13711 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13712 Py_XDECREF(values[__pyx_temp]);
13713 }
13714 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.AdaptManager.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13715 __Pyx_RefNannyFinishContext();
13716 return NULL;
13717 __pyx_L4_argument_unpacking_done:;
13718 __pyx_r = __pyx_pf_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager___init__(__pyx_self, __pyx_v_self, __pyx_v_adapter);
13719
13720 /* function exit code */
13721 for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
13722 Py_XDECREF(values[__pyx_temp]);
13723 }
13724 __Pyx_RefNannyFinishContext();
13725 return __pyx_r;
13726}
13727
13728static PyObject *__pyx_pf_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_adapter) {
13729 PyObject *__pyx_r = NULL;
13730 __Pyx_RefNannyDeclarations
13731 PyObject *__pyx_t_1 = NULL;
13732 int __pyx_lineno = 0;
13733 const char *__pyx_filename = NULL;
13734 int __pyx_clineno = 0;
13735 __Pyx_RefNannySetupContext("__init__", 0);
13736
13737 /* "MeshAdaptPUMI/MeshAdapt.pyx":194
13738 * class AdaptManager():
13739 * def __init__(self,adapter=MeshAdapt()):
13740 * self.modelDict = {} # <<<<<<<<<<<<<<
13741 * self.sizeInputs = []
13742 * self.PUMIAdapter=adapter
13743*/
13744 __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error)
13745 __Pyx_GOTREF(__pyx_t_1);
13746 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_modelDict, __pyx_t_1) < (0)) __PYX_ERR(0, 194, __pyx_L1_error)
13747 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13748
13749 /* "MeshAdaptPUMI/MeshAdapt.pyx":195
13750 * def __init__(self,adapter=MeshAdapt()):
13751 * self.modelDict = {}
13752 * self.sizeInputs = [] # <<<<<<<<<<<<<<
13753 * self.PUMIAdapter=adapter
13754 * self.adapt = 0
13755*/
13756 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
13757 __Pyx_GOTREF(__pyx_t_1);
13758 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_sizeInputs, __pyx_t_1) < (0)) __PYX_ERR(0, 195, __pyx_L1_error)
13759 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13760
13761 /* "MeshAdaptPUMI/MeshAdapt.pyx":196
13762 * self.modelDict = {}
13763 * self.sizeInputs = []
13764 * self.PUMIAdapter=adapter # <<<<<<<<<<<<<<
13765 * self.adapt = 0
13766 * self.hmax = 100.0
13767*/
13768 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_PUMIAdapter, __pyx_v_adapter) < (0)) __PYX_ERR(0, 196, __pyx_L1_error)
13769
13770 /* "MeshAdaptPUMI/MeshAdapt.pyx":197
13771 * self.sizeInputs = []
13772 * self.PUMIAdapter=adapter
13773 * self.adapt = 0 # <<<<<<<<<<<<<<
13774 * self.hmax = 100.0
13775 * self.hmin= 1e-8
13776*/
13777 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_adapt, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 197, __pyx_L1_error)
13778
13779 /* "MeshAdaptPUMI/MeshAdapt.pyx":198
13780 * self.PUMIAdapter=adapter
13781 * self.adapt = 0
13782 * self.hmax = 100.0 # <<<<<<<<<<<<<<
13783 * self.hmin= 1e-8
13784 * self.hphi= 1e-2
13785*/
13786 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_hmax, __pyx_mstate_global->__pyx_float_100_0) < (0)) __PYX_ERR(0, 198, __pyx_L1_error)
13787
13788 /* "MeshAdaptPUMI/MeshAdapt.pyx":199
13789 * self.adapt = 0
13790 * self.hmax = 100.0
13791 * self.hmin= 1e-8 # <<<<<<<<<<<<<<
13792 * self.hphi= 1e-2
13793 * self.numAdaptSteps= 10
13794*/
13795 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_hmin, __pyx_mstate_global->__pyx_float_1eneg_8) < (0)) __PYX_ERR(0, 199, __pyx_L1_error)
13796
13797 /* "MeshAdaptPUMI/MeshAdapt.pyx":200
13798 * self.hmax = 100.0
13799 * self.hmin= 1e-8
13800 * self.hphi= 1e-2 # <<<<<<<<<<<<<<
13801 * self.numAdaptSteps= 10
13802 * self.numIterations= 5
13803*/
13804 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_hphi, __pyx_mstate_global->__pyx_float_1eneg_2) < (0)) __PYX_ERR(0, 200, __pyx_L1_error)
13805
13806 /* "MeshAdaptPUMI/MeshAdapt.pyx":201
13807 * self.hmin= 1e-8
13808 * self.hphi= 1e-2
13809 * self.numAdaptSteps= 10 # <<<<<<<<<<<<<<
13810 * self.numIterations= 5
13811 * self.targetError= 0
13812*/
13813 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_numAdaptSteps, __pyx_mstate_global->__pyx_int_10) < (0)) __PYX_ERR(0, 201, __pyx_L1_error)
13814
13815 /* "MeshAdaptPUMI/MeshAdapt.pyx":202
13816 * self.hphi= 1e-2
13817 * self.numAdaptSteps= 10
13818 * self.numIterations= 5 # <<<<<<<<<<<<<<
13819 * self.targetError= 0
13820 * self.gradingFactor= 1.5
13821*/
13822 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_numIterations, __pyx_mstate_global->__pyx_int_5) < (0)) __PYX_ERR(0, 202, __pyx_L1_error)
13823
13824 /* "MeshAdaptPUMI/MeshAdapt.pyx":203
13825 * self.numAdaptSteps= 10
13826 * self.numIterations= 5
13827 * self.targetError= 0 # <<<<<<<<<<<<<<
13828 * self.gradingFactor= 1.5
13829 * self.logging= 0
13830*/
13831 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_targetError, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 203, __pyx_L1_error)
13832
13833 /* "MeshAdaptPUMI/MeshAdapt.pyx":204
13834 * self.numIterations= 5
13835 * self.targetError= 0
13836 * self.gradingFactor= 1.5 # <<<<<<<<<<<<<<
13837 * self.logging= 0
13838 * self.maxAspectRatio=100.0
13839*/
13840 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_gradingFactor, __pyx_mstate_global->__pyx_float_1_5) < (0)) __PYX_ERR(0, 204, __pyx_L1_error)
13841
13842 /* "MeshAdaptPUMI/MeshAdapt.pyx":205
13843 * self.targetError= 0
13844 * self.gradingFactor= 1.5
13845 * self.logging= 0 # <<<<<<<<<<<<<<
13846 * self.maxAspectRatio=100.0
13847 * self.maType = ""
13848*/
13849 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_logging, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 205, __pyx_L1_error)
13850
13851 /* "MeshAdaptPUMI/MeshAdapt.pyx":206
13852 * self.gradingFactor= 1.5
13853 * self.logging= 0
13854 * self.maxAspectRatio=100.0 # <<<<<<<<<<<<<<
13855 * self.maType = ""
13856 * self.reconstructedFlag = 2
13857*/
13858 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_maxAspectRatio, __pyx_mstate_global->__pyx_float_100_0) < (0)) __PYX_ERR(0, 206, __pyx_L1_error)
13859
13860 /* "MeshAdaptPUMI/MeshAdapt.pyx":207
13861 * self.logging= 0
13862 * self.maxAspectRatio=100.0
13863 * self.maType = "" # <<<<<<<<<<<<<<
13864 * self.reconstructedFlag = 2
13865 *
13866*/
13867 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_maType, __pyx_mstate_global->__pyx_kp_u__2) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
13868
13869 /* "MeshAdaptPUMI/MeshAdapt.pyx":208
13870 * self.maxAspectRatio=100.0
13871 * self.maType = ""
13872 * self.reconstructedFlag = 2 # <<<<<<<<<<<<<<
13873 *
13874*/
13875 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_reconstructedFlag, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(0, 208, __pyx_L1_error)
13876
13877 /* "MeshAdaptPUMI/MeshAdapt.pyx":193
13878 *
13879 * class AdaptManager():
13880 * def __init__(self,adapter=MeshAdapt()): # <<<<<<<<<<<<<<
13881 * self.modelDict = {}
13882 * self.sizeInputs = []
13883*/
13884
13885 /* function exit code */
13886 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
13887 goto __pyx_L0;
13888 __pyx_L1_error:;
13889 __Pyx_XDECREF(__pyx_t_1);
13890 __Pyx_AddTraceback("MeshAdaptPUMI.MeshAdapt.AdaptManager.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
13891 __pyx_r = NULL;
13892 __pyx_L0:;
13893 __Pyx_XGIVEREF(__pyx_r);
13894 __Pyx_RefNannyFinishContext();
13895 return __pyx_r;
13896}
13897/* #### Code section: module_exttypes ### */
13898
13899static PyObject *__pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyObject *o,
13900#if CYTHON_VECTORCALL_TPNEW
13901 CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames
13902#else
13903 CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k
13904#endif
13905) {
13906 {
13907 int cinit_result = __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_1__cinit__(
13908 #if CYTHON_VECTORCALL_TPNEW
13909 o, NULL, 0, NULL);
13910 #else
13911 o, __pyx_mstate_global->__pyx_empty_tuple, NULL);
13912 #endif
13913 if (unlikely(cinit_result)) goto bad;
13914 }
13915 return o;
13916 bad:
13917 Py_DECREF(o); o = 0;
13918 return NULL;
13919}
13920
13921static PyObject *__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyTypeObject *t,
13922#if CYTHON_VECTORCALL_TPNEW
13923 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
13924#else
13925 PyObject *a, PyObject *k
13926#endif
13927) {
13928 PyObject *o;
13929 o = __Pyx_AllocateExtensionType(t, 0);
13930 if (unlikely(!o)) return 0;
13931 return __pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(o,
13932#if CYTHON_VECTORCALL_TPNEW
13933 args, nargs, kwnames
13934#else
13935 a, k
13936#endif
13937);
13938}
13939
13940#if CYTHON_VECTORCALL_TPNEW
13941static PyObject *__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyTypeObject *t, PyObject *a, PyObject *k) {
13942 return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, t, a, k);
13943}
13944#endif
13945
13946#if CYTHON_VECTORCALL_TPNEW
13947static PyObject *__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
13948 if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) {
13949 return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames);
13950 }
13951 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
13952 PyObject *o = __pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt((PyTypeObject*)t, args, nargs, kwnames);
13953 return o;
13954}
13955#endif
13956
13957static void __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(PyObject *o) {
13958 #if CYTHON_USE_TP_FINALIZE
13959 if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
13960 if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt) {
13961 if (PyObject_CallFinalizerFromDealloc(o)) return;
13962 }
13963 }
13964 #endif
13965 {
13966 PyObject *etype, *eval, *etb;
13967 __Pyx_PyErr_FetchException(&etype, &eval, &etb);
13968 __Pyx_DeallocKeepAliveBegin(o);
13969 __pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_3__dealloc__(o);
13970 __Pyx_DeallocKeepAliveEnd(o);
13971 __Pyx_PyErr_RestoreException(etype, eval, etb);
13972 }
13973 PyTypeObject *tp = Py_TYPE(o);
13974 #if CYTHON_USE_TYPE_SLOTS
13975 (*tp->tp_free)(o);
13976 #else
13977 {
13978 freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
13979 if (tp_free) tp_free(o);
13980 }
13981 #endif
13982 #if CYTHON_USE_TYPE_SPECS
13983 Py_DECREF(tp);
13984 #endif
13985}
13986
13987static PyMethodDef __pyx_methods_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt[] = {
13988 {"size_field_config", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13989 {"adapt_type_config", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13990 {"numIter", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13991 {"adaptMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13992 {"numAdaptSteps", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13993 {"nAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13994 {"set_nAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13995 {"isReconstructed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13996 {"loadModelAndMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13997 {"loadMeshForAnalytic", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13998 {"updateSphereCoordinates", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
13999 {"reconstructFromProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14000 {"reconstructFromProteus2", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14001 {"constructFromSerialPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14002 {"constructFromParallelPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14003 {"updateMaterialArrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14004 {"updateMaterialArrays2", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14005 {"transferFieldToPUMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14006 {"transferFieldToProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14007 {"transferElementFieldToProteus", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14008 {"transferPropertiesToPUMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14009 {"setAdaptProperties", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14010 {"transferModelInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14011 {"adaptPUMIMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14012 {"dumpMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14013 {"getERMSizeField", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14014 {"getMPvalue", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14015 {"willAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14016 {"willInterfaceAdapt", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14017 {"get_local_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14018 {"get_VMS_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14019 {"getMinimumQuality", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14020 {"writeMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14021 {"cleanMesh", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14022 {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14023 {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
14024 {0, 0, 0, 0}
14025};
14026#if CYTHON_USE_TYPE_SPECS
14027static PyType_Slot __pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt_slots[] = {
14028 {Py_tp_dealloc, (void *)__pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt},
14029 {Py_tp_methods, (void *)__pyx_methods_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt},
14030 {Py_tp_new, (void *)__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt},
14031 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
14032 #if CYTHON_VECTORCALL_TPNEW
14033 {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt},
14034 #endif
14035 #endif
14036 {0, 0},
14037};
14038static PyType_Spec __pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt_spec = {
14039 "MeshAdaptPUMI.MeshAdapt.MeshAdapt",
14040 sizeof(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt),
14041 0,
14042 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE,
14043 __pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt_slots,
14044};
14045#else
14046
14047static PyTypeObject __pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt = {
14048 PyVarObject_HEAD_INIT(0, 0)
14049 "MeshAdaptPUMI.MeshAdapt.""MeshAdapt", /*tp_name*/
14050 sizeof(struct __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt), /*tp_basicsize*/
14051 0, /*tp_itemsize*/
14052 __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, /*tp_dealloc*/
14053 0, /*tp_vectorcall_offset*/
14054 0, /*tp_getattr*/
14055 0, /*tp_setattr*/
14056 0, /*tp_as_async*/
14057 0, /*tp_repr*/
14058 0, /*tp_as_number*/
14059 0, /*tp_as_sequence*/
14060 0, /*tp_as_mapping*/
14061 0, /*tp_hash*/
14062 0, /*tp_call*/
14063 0, /*tp_str*/
14064 0, /*tp_getattro*/
14065 0, /*tp_setattro*/
14066 0, /*tp_as_buffer*/
14067 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/
14068 0, /*tp_doc*/
14069 0, /*tp_traverse*/
14070 0, /*tp_clear*/
14071 0, /*tp_richcompare*/
14072 0, /*tp_weaklistoffset*/
14073 0, /*tp_iter*/
14074 0, /*tp_iternext*/
14075 __pyx_methods_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, /*tp_methods*/
14076 0, /*tp_members*/
14077 0, /*tp_getset*/
14078 0, /*tp_base*/
14079 0, /*tp_dict*/
14080 0, /*tp_descr_get*/
14081 0, /*tp_descr_set*/
14082 #if !CYTHON_USE_TYPE_SPECS
14083 0, /*tp_dictoffset*/
14084 #endif
14085 0, /*tp_init*/
14086 0, /*tp_alloc*/
14087 __pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, /*tp_new*/
14088 0, /*tp_free*/
14089 0, /*tp_is_gc*/
14090 0, /*tp_bases*/
14091 0, /*tp_mro*/
14092 0, /*tp_cache*/
14093 0, /*tp_subclasses*/
14094 0, /*tp_weaklist*/
14095 0, /*tp_del*/
14096 0, /*tp_version_tag*/
14097 #if CYTHON_USE_TP_FINALIZE
14098 0, /*tp_finalize*/
14099 #else
14100 NULL, /*tp_finalize*/
14101 #endif
14102 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
14103 #if CYTHON_VECTORCALL_TPNEW
14104 __pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, /*tp_vectorcall*/
14105 #else
14106 NULL, /*tp_vectorcall*/
14107 #endif
14108 #endif
14109 #if __PYX_NEED_TP_PRINT_SLOT == 1
14110 0, /*tp_print*/
14111 #endif
14112 #if PY_VERSION_HEX >= 0x030C0000
14113 0, /*tp_watched*/
14114 #endif
14115 #if PY_VERSION_HEX >= 0x030d00A4
14116 0, /*tp_versions_used*/
14117 #endif
14118 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000
14119 0, /*tp_pypy_flags*/
14120 #endif
14121};
14122#endif
14123
14124static PyObject *__pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *o,
14125#if CYTHON_VECTORCALL_TPNEW
14126 CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames
14127#else
14128 CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k
14129#endif
14130) {
14131 return o;
14132}
14133
14134static PyObject *__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyTypeObject *t,
14135#if CYTHON_VECTORCALL_TPNEW
14136 PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames
14137#else
14138 PyObject *a, PyObject *k
14139#endif
14140) {
14141 PyObject *o;
14142 o = __Pyx_AllocateExtensionType(t, 1);
14143 if (unlikely(!o)) return 0;
14144 return __pyx_tp_new__initialisation_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(o,
14145#if CYTHON_VECTORCALL_TPNEW
14146 args, nargs, kwnames
14147#else
14148 a, k
14149#endif
14150);
14151}
14152
14153#if CYTHON_VECTORCALL_TPNEW
14154static PyObject *__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyTypeObject *t, PyObject *a, PyObject *k) {
14155 return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, t, a, k);
14156}
14157#endif
14158
14159#if CYTHON_VECTORCALL_TPNEW
14160static PyObject *__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
14161 if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) {
14162 return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames);
14163 }
14164 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
14165 PyObject *o = __pyx_tp_new_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults((PyTypeObject*)t, args, nargs, kwnames);
14166 return o;
14167}
14168#endif
14169
14170static void __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *o) {
14171 struct __pyx_defaults *p = (struct __pyx_defaults *)o;
14172 #if CYTHON_USE_TP_FINALIZE
14173 if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
14174 if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults) {
14175 if (PyObject_CallFinalizerFromDealloc(o)) return;
14176 }
14177 }
14178 #endif
14179 PyObject_GC_UnTrack(o);
14180 Py_CLEAR(p->arg0);
14181 PyTypeObject *tp = Py_TYPE(o);
14182 #if CYTHON_USE_TYPE_SLOTS
14183 (*tp->tp_free)(o);
14184 #else
14185 {
14186 freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
14187 if (tp_free) tp_free(o);
14188 }
14189 #endif
14190 #if CYTHON_USE_TYPE_SPECS
14191 Py_DECREF(tp);
14192 #endif
14193}
14194
14195static int __pyx_tp_traverse_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *o, visitproc v, void *a) {
14196 int e;
14197 struct __pyx_defaults *p = (struct __pyx_defaults *)o;
14198 {
14199 e = __Pyx_call_type_traverse(o, 1, v, a);
14200 if (e) return e;
14201 }
14202 if (p->arg0) {
14203 e = (*v)(p->arg0, a); if (e) return e;
14204 }
14205 return 0;
14206}
14207
14208static int __pyx_tp_clear_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults(PyObject *o) {
14209 PyObject* tmp;
14210 struct __pyx_defaults *p = (struct __pyx_defaults *)o;
14211 tmp = ((PyObject*)p->arg0);
14212 p->arg0 = Py_None; Py_INCREF(Py_None);
14213 Py_XDECREF(tmp);
14214 return 0;
14215}
14216#if CYTHON_USE_TYPE_SPECS
14217static PyType_Slot __pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults_slots[] = {
14218 {Py_tp_dealloc, (void *)__pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults},
14219 {Py_tp_traverse, (void *)__pyx_tp_traverse_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults},
14220 {Py_tp_clear, (void *)__pyx_tp_clear_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults},
14221 {Py_tp_new, (void *)__pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults},
14222 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
14223 #if CYTHON_VECTORCALL_TPNEW
14224 {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults},
14225 #endif
14226 #endif
14227 {0, 0},
14228};
14229static PyType_Spec __pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults_spec = {
14230 "MeshAdaptPUMI.MeshAdapt.__pyx_defaults",
14231 sizeof(struct __pyx_defaults),
14232 0,
14233 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_HAVE_GC,
14234 __pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults_slots,
14235};
14236#else
14237
14238static PyTypeObject __pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults = {
14239 PyVarObject_HEAD_INIT(0, 0)
14240 "MeshAdaptPUMI.MeshAdapt.""__pyx_defaults", /*tp_name*/
14241 sizeof(struct __pyx_defaults), /*tp_basicsize*/
14242 0, /*tp_itemsize*/
14243 __pyx_tp_dealloc_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, /*tp_dealloc*/
14244 0, /*tp_vectorcall_offset*/
14245 0, /*tp_getattr*/
14246 0, /*tp_setattr*/
14247 0, /*tp_as_async*/
14248 0, /*tp_repr*/
14249 0, /*tp_as_number*/
14250 0, /*tp_as_sequence*/
14251 0, /*tp_as_mapping*/
14252 0, /*tp_hash*/
14253 0, /*tp_call*/
14254 0, /*tp_str*/
14255 0, /*tp_getattro*/
14256 0, /*tp_setattro*/
14257 0, /*tp_as_buffer*/
14258 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
14259 0, /*tp_doc*/
14260 __pyx_tp_traverse_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, /*tp_traverse*/
14261 __pyx_tp_clear_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, /*tp_clear*/
14262 0, /*tp_richcompare*/
14263 0, /*tp_weaklistoffset*/
14264 0, /*tp_iter*/
14265 0, /*tp_iternext*/
14266 0, /*tp_methods*/
14267 0, /*tp_members*/
14268 0, /*tp_getset*/
14269 0, /*tp_base*/
14270 0, /*tp_dict*/
14271 0, /*tp_descr_get*/
14272 0, /*tp_descr_set*/
14273 #if !CYTHON_USE_TYPE_SPECS
14274 0, /*tp_dictoffset*/
14275 #endif
14276 0, /*tp_init*/
14277 0, /*tp_alloc*/
14278 __pyx_tp_new_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, /*tp_new*/
14279 0, /*tp_free*/
14280 0, /*tp_is_gc*/
14281 0, /*tp_bases*/
14282 0, /*tp_mro*/
14283 0, /*tp_cache*/
14284 0, /*tp_subclasses*/
14285 0, /*tp_weaklist*/
14286 0, /*tp_del*/
14287 0, /*tp_version_tag*/
14288 #if CYTHON_USE_TP_FINALIZE
14289 0, /*tp_finalize*/
14290 #else
14291 NULL, /*tp_finalize*/
14292 #endif
14293 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000)
14294 #if CYTHON_VECTORCALL_TPNEW
14295 __pyx_tp_vectorcall_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults, /*tp_vectorcall*/
14296 #else
14297 NULL, /*tp_vectorcall*/
14298 #endif
14299 #endif
14300 #if __PYX_NEED_TP_PRINT_SLOT == 1
14301 0, /*tp_print*/
14302 #endif
14303 #if PY_VERSION_HEX >= 0x030C0000
14304 0, /*tp_watched*/
14305 #endif
14306 #if PY_VERSION_HEX >= 0x030d00A4
14307 0, /*tp_versions_used*/
14308 #endif
14309 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000
14310 0, /*tp_pypy_flags*/
14311 #endif
14312};
14313#endif
14314
14315static PyMethodDef __pyx_methods[] = {
14316 {0, 0, 0, 0}
14317};
14318/* #### Code section: initfunc_declarations ### */
14319static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
14320static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
14321static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
14322static CYTHON_SMALL_CODE int __Pyx_InitAfterSharedUtility(void); /*proto*/
14323static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
14324static CYTHON_SMALL_CODE int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14325static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14326static CYTHON_SMALL_CODE int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14327static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(__pyx_mstatetype *__pyx_mstate); /*proto*/
14328static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_defaults(__pyx_mstatetype *__pyx_mstate); /*proto*/
14329static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14330static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14331static CYTHON_SMALL_CODE int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
14332static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
14333/* #### Code section: init_module ### */
14334
14335static int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate) {
14336 __Pyx_RefNannyDeclarations
14337 CYTHON_UNUSED_VAR(__pyx_mstate);
14338 __Pyx_RefNannySetupContext("__Pyx_modinit_Global_init_code", 0);
14339 /*--- Global init code ---*/
14340 __Pyx_RefNannyFinishContext();
14341 return 0;
14342}
14343
14344static int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate) {
14345 __Pyx_RefNannyDeclarations
14346 CYTHON_UNUSED_VAR(__pyx_mstate);
14347 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_export_code", 0);
14348 /*--- Variable export code ---*/
14349 __Pyx_RefNannyFinishContext();
14350 return 0;
14351}
14352
14353static int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate) {
14354 __Pyx_RefNannyDeclarations
14355 CYTHON_UNUSED_VAR(__pyx_mstate);
14356 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_export_code", 0);
14357 /*--- Function export code ---*/
14358 __Pyx_RefNannyFinishContext();
14359 return 0;
14360}
14361
14362static int __Pyx_modinit_Exttype___pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(__pyx_mstatetype *__pyx_mstate) {
14363 __Pyx_RefNannyDeclarations
14364 int __pyx_lineno = 0;
14365 const char *__pyx_filename = NULL;
14366 int __pyx_clineno = 0;
14367 CYTHON_UNUSED_VAR(__pyx_mstate);
14368 __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt", 0);
14369 /*--- Exttype __pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt ---*/
14370 #if CYTHON_USE_TYPE_SPECS
14371 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt)) __PYX_ERR(0, 56, __pyx_L1_error)
14372 #else
14373 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt = &__pyx_type_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt;
14374 #endif
14375 #if !CYTHON_COMPILING_IN_LIMITED_API
14376 #endif
14377 #if !CYTHON_USE_TYPE_SPECS
14378 if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt) < (0)) __PYX_ERR(0, 56, __pyx_L1_error)
14379 #endif
14380 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14381 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt);
14382 #endif
14383 #if !CYTHON_COMPILING_IN_LIMITED_API
14384 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt->tp_dictoffset && __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt->tp_getattro == PyObject_GenericGetAttr)) {
14385 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt->tp_getattro = PyObject_GenericGetAttr;
14386 }
14387 #endif
14388 if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MeshAdapt, (PyObject *) __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt) < (0)) __PYX_ERR(0, 56, __pyx_L1_error)
14389 if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt) < (0)) __PYX_ERR(0, 56, __pyx_L1_error)
14390 __Pyx_RefNannyFinishContext();
14391 return 0;
14392 __pyx_L1_error:;
14393 __Pyx_RefNannyFinishContext();
14394 return -1;
14395}
14396
14397static int __Pyx_modinit_Exttype___pyx_defaults(__pyx_mstatetype *__pyx_mstate) {
14398 __Pyx_RefNannyDeclarations
14399 int __pyx_lineno = 0;
14400 const char *__pyx_filename = NULL;
14401 int __pyx_clineno = 0;
14402 CYTHON_UNUSED_VAR(__pyx_mstate);
14403 __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_defaults", 0);
14404 /*--- Exttype __pyx_defaults ---*/
14405 #if CYTHON_USE_TYPE_SPECS
14406 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults)) __PYX_ERR(0, 193, __pyx_L1_error)
14407 #else
14408 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults = &__pyx_type_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults;
14409 #endif
14410 #if !CYTHON_COMPILING_IN_LIMITED_API
14411 #endif
14412 #if !CYTHON_USE_TYPE_SPECS
14413 if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults) < (0)) __PYX_ERR(0, 193, __pyx_L1_error)
14414 #endif
14415 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14416 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults);
14417 #endif
14418 #if !CYTHON_COMPILING_IN_LIMITED_API
14419 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults->tp_dictoffset && __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults->tp_getattro == PyObject_GenericGetAttr)) {
14420 __pyx_mstate->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults->tp_getattro = PyObject_GenericGetAttr;
14421 }
14422 #endif
14423 __Pyx_RefNannyFinishContext();
14424 return 0;
14425 __pyx_L1_error:;
14426 __Pyx_RefNannyFinishContext();
14427 return -1;
14428}
14429
14430static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) {
14431 __Pyx_RefNannyDeclarations
14432 PyObject *__pyx_t_1 = NULL;
14433 int __pyx_lineno = 0;
14434 const char *__pyx_filename = NULL;
14435 int __pyx_clineno = 0;
14436 CYTHON_UNUSED_VAR(__pyx_mstate);
14437 __Pyx_RefNannySetupContext("__Pyx_modinit_Type_import_code", 0);
14438 /*--- Type import code ---*/
14439 __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
14440 __Pyx_GOTREF(__pyx_t_1);
14441 __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_3_0(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
14442 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14443 sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyTypeObject),
14444 #elif CYTHON_COMPILING_IN_LIMITED_API
14445 0, 0,
14446 #else
14447 sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyHeapTypeObject),
14448 #endif
14449 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
14450 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14451 __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 229, __pyx_L1_error)
14452 __Pyx_GOTREF(__pyx_t_1);
14453 __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "dtype",
14454 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14455 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
14456 #elif CYTHON_COMPILING_IN_LIMITED_API
14457 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
14458 #else
14459 sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr),
14460 #endif
14461 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 229, __pyx_L1_error)
14462 __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flatiter",
14463 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14464 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
14465 #elif CYTHON_COMPILING_IN_LIMITED_API
14466 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
14467 #else
14468 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject),
14469 #endif
14470 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 286, __pyx_L1_error)
14471 __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "broadcast",
14472 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14473 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
14474 #elif CYTHON_COMPILING_IN_LIMITED_API
14475 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
14476 #else
14477 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject),
14478 #endif
14479 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 290, __pyx_L1_error)
14480 __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ndarray",
14481 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14482 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
14483 #elif CYTHON_COMPILING_IN_LIMITED_API
14484 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
14485 #else
14486 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject),
14487 #endif
14488 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 329, __pyx_L1_error)
14489 __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "generic",
14490 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14491 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14492 #elif CYTHON_COMPILING_IN_LIMITED_API
14493 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14494 #else
14495 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14496 #endif
14497 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error)
14498 __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "number",
14499 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14500 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14501 #elif CYTHON_COMPILING_IN_LIMITED_API
14502 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14503 #else
14504 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14505 #endif
14506 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error)
14507 __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "integer",
14508 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14509 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14510 #elif CYTHON_COMPILING_IN_LIMITED_API
14511 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14512 #else
14513 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14514 #endif
14515 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error)
14516 __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "signedinteger",
14517 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14518 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14519 #elif CYTHON_COMPILING_IN_LIMITED_API
14520 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14521 #else
14522 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14523 #endif
14524 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error)
14525 __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "unsignedinteger",
14526 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14527 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14528 #elif CYTHON_COMPILING_IN_LIMITED_API
14529 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14530 #else
14531 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14532 #endif
14533 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error)
14534 __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "inexact",
14535 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14536 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14537 #elif CYTHON_COMPILING_IN_LIMITED_API
14538 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14539 #else
14540 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14541 #endif
14542 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error)
14543 __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "floating",
14544 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14545 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14546 #elif CYTHON_COMPILING_IN_LIMITED_API
14547 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14548 #else
14549 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14550 #endif
14551 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error)
14552 __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "complexfloating",
14553 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14554 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14555 #elif CYTHON_COMPILING_IN_LIMITED_API
14556 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14557 #else
14558 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14559 #endif
14560 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error)
14561 __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flexible",
14562 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14563 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14564 #elif CYTHON_COMPILING_IN_LIMITED_API
14565 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14566 #else
14567 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14568 #endif
14569 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error)
14570 __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "character",
14571 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14572 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14573 #elif CYTHON_COMPILING_IN_LIMITED_API
14574 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14575 #else
14576 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject),
14577 #endif
14578 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error)
14579 __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ufunc",
14580 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14581 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
14582 #elif CYTHON_COMPILING_IN_LIMITED_API
14583 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
14584 #else
14585 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject),
14586 #endif
14587 __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 946, __pyx_L1_error)
14588 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14589 __pyx_t_1 = PyImport_ImportModule("proteus.cmeshTools"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6, __pyx_L1_error)
14590 __Pyx_GOTREF(__pyx_t_1);
14591 __pyx_mstate->__pyx_ptype_7proteus_10cmeshTools_CMesh = __Pyx_ImportType_3_3_0(__pyx_t_1, "proteus.cmeshTools", "CMesh",
14592 #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
14593 sizeof(struct __pyx_obj_7proteus_10cmeshTools_CMesh), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(struct __pyx_obj_7proteus_10cmeshTools_CMesh),
14594 #elif CYTHON_COMPILING_IN_LIMITED_API
14595 sizeof(struct __pyx_obj_7proteus_10cmeshTools_CMesh), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(struct __pyx_obj_7proteus_10cmeshTools_CMesh),
14596 #else
14597 sizeof(struct __pyx_obj_7proteus_10cmeshTools_CMesh), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(struct __pyx_obj_7proteus_10cmeshTools_CMesh),
14598 #endif
14599 __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_7proteus_10cmeshTools_CMesh) __PYX_ERR(4, 6, __pyx_L1_error)
14600 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14601 __Pyx_RefNannyFinishContext();
14602 return 0;
14603 __pyx_L1_error:;
14604 __Pyx_XDECREF(__pyx_t_1);
14605 __Pyx_RefNannyFinishContext();
14606 return -1;
14607}
14608
14609static int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate) {
14610 __Pyx_RefNannyDeclarations
14611 CYTHON_UNUSED_VAR(__pyx_mstate);
14612 __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_import_code", 0);
14613 /*--- Variable import code ---*/
14614 __Pyx_RefNannyFinishContext();
14615 return 0;
14616}
14617
14618static int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate) {
14619 __Pyx_RefNannyDeclarations
14620 CYTHON_UNUSED_VAR(__pyx_mstate);
14621 __Pyx_RefNannySetupContext("__Pyx_modinit_Function_import_code", 0);
14622 /*--- Function import code ---*/
14623 __Pyx_RefNannyFinishContext();
14624 return 0;
14625}
14626
14627#if CYTHON_PEP489_MULTI_PHASE_INIT
14628static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
14629static int __pyx_pymod_exec_MeshAdapt(PyObject* module); /*proto*/
14630static PyModuleDef_Slot __pyx_moduledef_slots[] = {
14631 {Py_mod_create, (void*)__pyx_pymod_create},
14632 {Py_mod_exec, (void*)__pyx_pymod_exec_MeshAdapt},
14633 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
14634 {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
14635 #endif
14636 #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
14637 {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
14638 #endif
14639 {0, NULL}
14640};
14641#endif
14642
14643#ifdef __cplusplus
14644namespace {
14645 struct PyModuleDef __pyx_moduledef =
14646 #else
14647 static struct PyModuleDef __pyx_moduledef =
14648 #endif
14649 {
14650 PyModuleDef_HEAD_INIT,
14651 "MeshAdapt",
14652 0, /* m_doc */
14653 #if CYTHON_USE_MODULE_STATE
14654 sizeof(__pyx_mstatetype), /* m_size */
14655 #else
14656 (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
14657 #endif
14658 __pyx_methods /* m_methods */,
14659 #if CYTHON_PEP489_MULTI_PHASE_INIT
14660 __pyx_moduledef_slots, /* m_slots */
14661 #else
14662 NULL, /* m_reload */
14663 #endif
14664 #if CYTHON_USE_MODULE_STATE
14665 __pyx_m_traverse, /* m_traverse */
14666 __pyx_m_clear, /* m_clear */
14667 NULL /* m_free */
14668 #else
14669 NULL, /* m_traverse */
14670 NULL, /* m_clear */
14671 NULL /* m_free */
14672 #endif
14673 };
14674 #ifdef __cplusplus
14675} /* anonymous namespace */
14676#endif
14677
14678/* PyModInitFuncType */
14679#ifndef CYTHON_NO_PYINIT_EXPORT
14680 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
14681#else
14682 #ifdef __cplusplus
14683 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
14684 #else
14685 #define __Pyx_PyMODINIT_FUNC PyObject *
14686 #endif
14687#endif
14688
14689__Pyx_PyMODINIT_FUNC PyInit_MeshAdapt(void) CYTHON_SMALL_CODE; /*proto*/
14690__Pyx_PyMODINIT_FUNC PyInit_MeshAdapt(void)
14691#if CYTHON_PEP489_MULTI_PHASE_INIT
14692{
14693 return PyModuleDef_Init(&__pyx_moduledef);
14694}
14695/* ModuleCreationPEP489 */
14696#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
14697 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
14698static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
14699 {
14700 PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
14701 if (!module) {
14702 if (!PyErr_ExceptionMatches(PyExc_Exception)) {
14703 goto bad; // BaseException
14704 }
14705 PyErr_Clear(); // just try the 3.8-3.12 version
14706 module = PyImport_ImportModule("_xxsubinterpreters");
14707 if (!module) goto bad;
14708 }
14709 PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
14710 Py_DECREF(module);
14711 if (!current) goto bad;
14712 if (PyTuple_Check(current)) {
14713 PyObject *new_current = PySequence_GetItem(current, 0);
14714 Py_DECREF(current);
14715 current = new_current;
14716 if (!new_current) goto bad;
14717 }
14718 long long as_c_int = PyLong_AsLongLong(current);
14719 Py_DECREF(current);
14720 return as_c_int;
14721 }
14722 bad:
14723 PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
14724 return -1;
14725}
14726#endif
14727#if !CYTHON_USE_MODULE_STATE
14728static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
14729 static PY_INT64_T main_interpreter_id = -1;
14730#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
14731 PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
14732#elif CYTHON_COMPILING_IN_GRAAL
14733 PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
14734#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x030A0000 &&\
14735 (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)))
14736 PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
14737#elif CYTHON_COMPILING_IN_LIMITED_API
14738 PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
14739#else
14740 PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
14741#endif
14742 if (unlikely(current_id == -1)) {
14743 return -1;
14744 }
14745 if (main_interpreter_id == -1) {
14746 main_interpreter_id = current_id;
14747 return 0;
14748 } else if (unlikely(main_interpreter_id != current_id)) {
14749 PyErr_SetString(
14750 PyExc_ImportError,
14751 "Interpreter change detected - this module can only be loaded into one interpreter per process.");
14752 return -1;
14753 }
14754 return 0;
14755}
14756#endif
14757static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
14758{
14759 PyObject *value = PyObject_GetAttrString(spec, from_name);
14760 int result = 0;
14761 if (likely(value)) {
14762 if (allow_none || value != Py_None) {
14763 result = PyDict_SetItemString(moddict, to_name, value);
14764 }
14765 Py_DECREF(value);
14766 } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
14767 PyErr_Clear();
14768 } else {
14769 result = -1;
14770 }
14771 return result;
14772}
14773static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
14774 PyObject *module = NULL, *moddict, *modname;
14775 CYTHON_UNUSED_VAR(def);
14776 #if !CYTHON_USE_MODULE_STATE
14777 if (__Pyx_check_single_interpreter())
14778 return NULL;
14779 #endif
14780 if (__pyx_m)
14781 return __Pyx_NewRef(__pyx_m);
14782 modname = PyObject_GetAttrString(spec, "name");
14783 if (unlikely(!modname)) goto bad;
14784 module = PyModule_NewObject(modname);
14785 Py_DECREF(modname);
14786 if (unlikely(!module)) goto bad;
14787 moddict = PyModule_GetDict(module);
14788 if (unlikely(!moddict)) goto bad;
14789 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
14790 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
14791 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
14792 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
14793 return module;
14794bad:
14795 Py_XDECREF(module);
14796 return NULL;
14797}
14798
14799
14800static CYTHON_SMALL_CODE int __pyx_pymod_exec_MeshAdapt(PyObject *__pyx_pyinit_module)
14801#endif
14802{
14803 int stringtab_initialized = 0;
14804 #if CYTHON_USE_MODULE_STATE
14805 int pystate_addmodule_run = 0;
14806 #endif
14807 __pyx_mstatetype *__pyx_mstate = NULL;
14808 PyObject *__pyx_t_1 = NULL;
14809 PyObject *__pyx_t_2 = NULL;
14810 Py_ssize_t __pyx_t_3;
14811 PyObject *__pyx_t_4 = NULL;
14812 PyObject *__pyx_t_5 = NULL;
14813 PyObject *__pyx_t_6 = NULL;
14814 size_t __pyx_t_7;
14815 int __pyx_lineno = 0;
14816 const char *__pyx_filename = NULL;
14817 int __pyx_clineno = 0;
14818 __Pyx_RefNannyDeclarations
14819 #if CYTHON_PEP489_MULTI_PHASE_INIT
14820 if (__pyx_m) {
14821 if (__pyx_m == __pyx_pyinit_module) return 0;
14822 PyErr_SetString(PyExc_RuntimeError, "Module 'MeshAdapt' has already been imported. Re-initialisation is not supported.");
14823 return -1;
14824 }
14825 #else
14826 if (__pyx_m) return __Pyx_NewRef(__pyx_m);
14827 #endif
14828 /*--- Module creation code ---*/
14829 #if CYTHON_PEP489_MULTI_PHASE_INIT
14830 __pyx_t_1 = __pyx_pyinit_module;
14831 Py_INCREF(__pyx_t_1);
14832 #else
14833 __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
14834 #endif
14835 #if CYTHON_USE_MODULE_STATE
14836 {
14837 int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
14838 __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "MeshAdapt" pseudovariable */
14839 if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
14840 pystate_addmodule_run = 1;
14841 }
14842 #else
14843 __pyx_m = __pyx_t_1;
14844 #endif
14845 #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
14846 PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
14847 #endif
14848 __pyx_mstate = __pyx_mstate_global;
14849 CYTHON_UNUSED_VAR(__pyx_t_1);
14850 __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
14851 Py_INCREF(__pyx_mstate->__pyx_d);
14852 __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
14853 __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
14854 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
14855 /* ImportRefnannyAPI */
14856 #if CYTHON_REFNANNY
14857 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
14858 if (!__Pyx_RefNanny) {
14859 if (PyErr_ExceptionMatches(PyExc_Exception)) {
14860 PyErr_Clear();
14861 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
14862 }
14863 if (!__Pyx_RefNanny)
14864 Py_FatalError("failed to import 'refnanny' module");
14865 }
14866 #endif
14867
14868__Pyx_RefNannySetupContext("PyInit_MeshAdapt", 0);
14869 __Pyx_init_runtime_version();
14870 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)
14871 __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
14872 __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
14873 __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
14874 /*--- Library function declarations ---*/
14875 /*--- Initialize various global constants etc. ---*/
14876 if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14877 stringtab_initialized = 1;
14878 if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14879 if (__pyx_module_is_main_MeshAdaptPUMI__MeshAdapt) {
14880 if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14881 }
14882 {
14883 PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
14884 if (!PyDict_GetItemString(modules, "MeshAdaptPUMI.MeshAdapt")) {
14885 if (unlikely((PyDict_SetItemString(modules, "MeshAdaptPUMI.MeshAdapt", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
14886 }
14887 }
14888 /*--- Builtin init code ---*/
14889 if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14890 /*--- Constants init code ---*/
14891 if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14892 if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14893 /*--- Global type/function init code ---*/
14894 (void)__Pyx_modinit_Global_init_code(__pyx_mstate);
14895 (void)__Pyx_modinit_Variable_export_code(__pyx_mstate);
14896 (void)__Pyx_modinit_Function_export_code(__pyx_mstate);
14897 /*--- Type init code ---*/
14898 if (unlikely((__Pyx_modinit_Exttype___pyx_obj_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
14899 if (unlikely((__Pyx_modinit_Exttype___pyx_defaults(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
14900 if (unlikely((__Pyx_modinit_Type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
14901 (void)__Pyx_modinit_Variable_import_code(__pyx_mstate);
14902 (void)__Pyx_modinit_Function_import_code(__pyx_mstate);
14903 if (__Pyx_InitAfterSharedUtility() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
14904 /*--- Execution code ---*/
14905
14906 /* "MeshAdaptPUMI/MeshAdapt.pyx":5
14907 * from cpython.ref cimport PyObject
14908 * cimport numpy as np
14909 * import numpy as np # <<<<<<<<<<<<<<
14910 * from ..Profiling import logEvent
14911 * from proteus cimport cmeshTools
14912*/
14913 __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error)
14914 __pyx_t_2 = __pyx_t_1;
14915 __Pyx_GOTREF(__pyx_t_2);
14916 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_np, __pyx_t_2) < (0)) __PYX_ERR(0, 5, __pyx_L1_error)
14917 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14918
14919 /* "MeshAdaptPUMI/MeshAdapt.pyx":6
14920 * cimport numpy as np
14921 * import numpy as np
14922 * from ..Profiling import logEvent # <<<<<<<<<<<<<<
14923 * from proteus cimport cmeshTools
14924 * from libcpp.string cimport string
14925*/
14926 {
14927 PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_logEvent};
14928 __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_Profiling, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_Profiling_2, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error)
14929 }
14930 __pyx_t_2 = __pyx_t_1;
14931 __Pyx_GOTREF(__pyx_t_2);
14932 {
14933 PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_logEvent};
14934 __pyx_t_3 = 0; {
14935 __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6, __pyx_L1_error)
14936 __Pyx_GOTREF(__pyx_t_4);
14937 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 6, __pyx_L1_error)
14938 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14939 }
14940 }
14941 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14942
14943 /* "MeshAdaptPUMI/MeshAdapt.pyx":66
14944 * def __dealloc__(self):
14945 * del self.thisptr
14946 * def size_field_config(self): # <<<<<<<<<<<<<<
14947 * return self.thisptr.size_field_config
14948 * def adapt_type_config(self):
14949*/
14950 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_5size_field_config, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_size_field_config, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error)
14951 __Pyx_GOTREF(__pyx_t_2);
14952 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14953 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
14954 #endif
14955 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_size_field_config, __pyx_t_2) < (0)) __PYX_ERR(0, 66, __pyx_L1_error)
14956 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14957
14958 /* "MeshAdaptPUMI/MeshAdapt.pyx":68
14959 * def size_field_config(self):
14960 * return self.thisptr.size_field_config
14961 * def adapt_type_config(self): # <<<<<<<<<<<<<<
14962 * return self.thisptr.adapt_type_config
14963 * def numIter(self):
14964*/
14965 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_7adapt_type_config, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_adapt_type_config, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error)
14966 __Pyx_GOTREF(__pyx_t_2);
14967 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14968 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
14969 #endif
14970 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_adapt_type_config, __pyx_t_2) < (0)) __PYX_ERR(0, 68, __pyx_L1_error)
14971 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14972
14973 /* "MeshAdaptPUMI/MeshAdapt.pyx":70
14974 * def adapt_type_config(self):
14975 * return self.thisptr.adapt_type_config
14976 * def numIter(self): # <<<<<<<<<<<<<<
14977 * return self.thisptr.numIter
14978 * def adaptMesh(self):
14979*/
14980 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_9numIter, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_numIter, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error)
14981 __Pyx_GOTREF(__pyx_t_2);
14982 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14983 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
14984 #endif
14985 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_numIter, __pyx_t_2) < (0)) __PYX_ERR(0, 70, __pyx_L1_error)
14986 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14987
14988 /* "MeshAdaptPUMI/MeshAdapt.pyx":72
14989 * def numIter(self):
14990 * return self.thisptr.numIter
14991 * def adaptMesh(self): # <<<<<<<<<<<<<<
14992 * return self.thisptr.adaptMesh
14993 * def numAdaptSteps(self):
14994*/
14995 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_11adaptMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_adaptMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error)
14996 __Pyx_GOTREF(__pyx_t_2);
14997 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
14998 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
14999 #endif
15000 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_adaptMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 72, __pyx_L1_error)
15001 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15002
15003 /* "MeshAdaptPUMI/MeshAdapt.pyx":74
15004 * def adaptMesh(self):
15005 * return self.thisptr.adaptMesh
15006 * def numAdaptSteps(self): # <<<<<<<<<<<<<<
15007 * return self.thisptr.numAdaptSteps
15008 * def nAdapt(self):
15009*/
15010 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_13numAdaptSteps, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_numAdaptSteps, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error)
15011 __Pyx_GOTREF(__pyx_t_2);
15012 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15013 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15014 #endif
15015 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_numAdaptSteps, __pyx_t_2) < (0)) __PYX_ERR(0, 74, __pyx_L1_error)
15016 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15017
15018 /* "MeshAdaptPUMI/MeshAdapt.pyx":76
15019 * def numAdaptSteps(self):
15020 * return self.thisptr.numAdaptSteps
15021 * def nAdapt(self): # <<<<<<<<<<<<<<
15022 * return self.thisptr.nAdapt
15023 * def set_nAdapt(self,numberAdapt):
15024*/
15025 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_15nAdapt, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_nAdapt, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error)
15026 __Pyx_GOTREF(__pyx_t_2);
15027 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15028 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15029 #endif
15030 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_nAdapt, __pyx_t_2) < (0)) __PYX_ERR(0, 76, __pyx_L1_error)
15031 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15032
15033 /* "MeshAdaptPUMI/MeshAdapt.pyx":78
15034 * def nAdapt(self):
15035 * return self.thisptr.nAdapt
15036 * def set_nAdapt(self,numberAdapt): # <<<<<<<<<<<<<<
15037 * return self.thisptr.set_nAdapt(numberAdapt)
15038 * def isReconstructed(self):
15039*/
15040 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_17set_nAdapt, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_set_nAdapt, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error)
15041 __Pyx_GOTREF(__pyx_t_2);
15042 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15043 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15044 #endif
15045 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_set_nAdapt, __pyx_t_2) < (0)) __PYX_ERR(0, 78, __pyx_L1_error)
15046 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15047
15048 /* "MeshAdaptPUMI/MeshAdapt.pyx":80
15049 * def set_nAdapt(self,numberAdapt):
15050 * return self.thisptr.set_nAdapt(numberAdapt)
15051 * def isReconstructed(self): # <<<<<<<<<<<<<<
15052 * return self.thisptr.isReconstructed
15053 * def loadModelAndMesh(self, geomName, meshName):
15054*/
15055 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_19isReconstructed, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_isReconstructed, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error)
15056 __Pyx_GOTREF(__pyx_t_2);
15057 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15058 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15059 #endif
15060 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_isReconstructed, __pyx_t_2) < (0)) __PYX_ERR(0, 80, __pyx_L1_error)
15061 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15062
15063 /* "MeshAdaptPUMI/MeshAdapt.pyx":82
15064 * def isReconstructed(self):
15065 * return self.thisptr.isReconstructed
15066 * def loadModelAndMesh(self, geomName, meshName): # <<<<<<<<<<<<<<
15067 * return self.thisptr.loadModelAndMesh(geomName, meshName)
15068 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius):
15069*/
15070 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_21loadModelAndMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_loadModelAndMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error)
15071 __Pyx_GOTREF(__pyx_t_2);
15072 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15073 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15074 #endif
15075 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_loadModelAndMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 82, __pyx_L1_error)
15076 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15077
15078 /* "MeshAdaptPUMI/MeshAdapt.pyx":84
15079 * def loadModelAndMesh(self, geomName, meshName):
15080 * return self.thisptr.loadModelAndMesh(geomName, meshName)
15081 * def loadMeshForAnalytic(self, meshName, np.ndarray[np.double_t,ndim=1,mode="c"] boxDim, np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter, double sphereRadius): # <<<<<<<<<<<<<<
15082 * boxDim = np.ascontiguousarray(boxDim)
15083 * sphereCenter = np.ascontiguousarray(sphereCenter)
15084*/
15085 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_23loadMeshForAnalytic, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_loadMeshForAnalytic, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error)
15086 __Pyx_GOTREF(__pyx_t_2);
15087 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15088 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15089 #endif
15090 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_loadMeshForAnalytic, __pyx_t_2) < (0)) __PYX_ERR(0, 84, __pyx_L1_error)
15091 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15092
15093 /* "MeshAdaptPUMI/MeshAdapt.pyx":89
15094 * sphereRadius = np.ascontiguousarray(sphereRadius)
15095 * return self.thisptr.loadMeshForAnalytic(meshName,&boxDim[0],&sphereCenter[0],sphereRadius)
15096 * def updateSphereCoordinates(self,np.ndarray[np.double_t,ndim=1,mode="c"] sphereCenter): # <<<<<<<<<<<<<<
15097 * sphereCenter = np.ascontiguousarray(sphereCenter)
15098 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
15099*/
15100 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_25updateSphereCoordinates, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_updateSphereCoordinate, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error)
15101 __Pyx_GOTREF(__pyx_t_2);
15102 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15103 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15104 #endif
15105 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_updateSphereCoordinates, __pyx_t_2) < (0)) __PYX_ERR(0, 89, __pyx_L1_error)
15106 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15107
15108 /* "MeshAdaptPUMI/MeshAdapt.pyx":92
15109 * sphereCenter = np.ascontiguousarray(sphereCenter)
15110 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
15111 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0): # <<<<<<<<<<<<<<
15112 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
15113 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
15114*/
15115 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_27reconstructFromProteus, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_reconstructFromProteus, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
15116 __Pyx_GOTREF(__pyx_t_2);
15117 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15118 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15119 #endif
15120 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0]);
15121 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_reconstructFromProteus, __pyx_t_2) < (0)) __PYX_ERR(0, 92, __pyx_L1_error)
15122 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15123
15124 /* "MeshAdaptPUMI/MeshAdapt.pyx":94
15125 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0):
15126 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
15127 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert, # <<<<<<<<<<<<<<
15128 * np.ndarray[int,ndim=2,mode="c"] bFaces):
15129 * isModelVert = np.ascontiguousarray(isModelVert)
15130*/
15131 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_29reconstructFromProteus2, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_reconstructFromProteus_2, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
15132 __Pyx_GOTREF(__pyx_t_2);
15133 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15134 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15135 #endif
15136 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_reconstructFromProteus2, __pyx_t_2) < (0)) __PYX_ERR(0, 94, __pyx_L1_error)
15137 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15138
15139 /* "MeshAdaptPUMI/MeshAdapt.pyx":98
15140 * isModelVert = np.ascontiguousarray(isModelVert)
15141 * return self.thisptr.reconstructFromProteus2(cmesh.mesh,&isModelVert[0], <int *> bFaces.data)
15142 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
15143 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
15144 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
15145*/
15146 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_31constructFromSerialPUMIMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_constructFromSerialPUM, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error)
15147 __Pyx_GOTREF(__pyx_t_2);
15148 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15149 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15150 #endif
15151 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_constructFromSerialPUMIMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 98, __pyx_L1_error)
15152 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15153
15154 /* "MeshAdaptPUMI/MeshAdapt.pyx":100
15155 * def constructFromSerialPUMIMesh(self, cmeshTools.CMesh cmesh):
15156 * return self.thisptr.constructFromSerialPUMIMesh(cmesh.mesh)
15157 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh): # <<<<<<<<<<<<<<
15158 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
15159 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None):
15160*/
15161 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_33constructFromParallelPUMIMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_constructFromParallelP, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error)
15162 __Pyx_GOTREF(__pyx_t_2);
15163 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15164 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15165 #endif
15166 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_constructFromParallelPUMIMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 100, __pyx_L1_error)
15167 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15168
15169 /* "MeshAdaptPUMI/MeshAdapt.pyx":102
15170 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
15171 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
15172 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None): # <<<<<<<<<<<<<<
15173 * if(dim is None):
15174 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
15175*/
15176 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_35updateMaterialArrays, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_updateMaterialArrays, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
15177 __Pyx_GOTREF(__pyx_t_2);
15178 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15179 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15180 #endif
15181 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[1]);
15182 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_updateMaterialArrays, __pyx_t_2) < (0)) __PYX_ERR(0, 102, __pyx_L1_error)
15183 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15184
15185 /* "MeshAdaptPUMI/MeshAdapt.pyx":107
15186 * else:
15187 * return self.thisptr.updateMaterialArrays(cmesh.mesh,dim, bdryId, geomTag)
15188 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
15189 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
15190 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray):
15191*/
15192 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_37updateMaterialArrays2, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_updateMaterialArrays2, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 107, __pyx_L1_error)
15193 __Pyx_GOTREF(__pyx_t_2);
15194 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15195 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15196 #endif
15197 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_updateMaterialArrays2, __pyx_t_2) < (0)) __PYX_ERR(0, 107, __pyx_L1_error)
15198 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15199
15200 /* "MeshAdaptPUMI/MeshAdapt.pyx":109
15201 * def updateMaterialArrays2(self, cmeshTools.CMesh cmesh):
15202 * return self.thisptr.updateMaterialArrays2(cmesh.mesh)
15203 * def transferFieldToPUMI(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] inArray): # <<<<<<<<<<<<<<
15204 * inArray = np.ascontiguousarray(inArray)
15205 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
15206*/
15207 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_39transferFieldToPUMI, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_transferFieldToPUMI, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error)
15208 __Pyx_GOTREF(__pyx_t_2);
15209 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15210 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15211 #endif
15212 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_transferFieldToPUMI, __pyx_t_2) < (0)) __PYX_ERR(0, 109, __pyx_L1_error)
15213 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15214
15215 /* "MeshAdaptPUMI/MeshAdapt.pyx":112
15216 * inArray = np.ascontiguousarray(inArray)
15217 * return self.thisptr.transferFieldToPUMI(name, &inArray[0,0], inArray.shape[1], inArray.shape[0])
15218 * def transferFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
15219 * outArray = np.ascontiguousarray(outArray)
15220 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
15221*/
15222 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_41transferFieldToProteus, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_transferFieldToProteus, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error)
15223 __Pyx_GOTREF(__pyx_t_2);
15224 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15225 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15226 #endif
15227 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_transferFieldToProteus, __pyx_t_2) < (0)) __PYX_ERR(0, 112, __pyx_L1_error)
15228 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15229
15230 /* "MeshAdaptPUMI/MeshAdapt.pyx":115
15231 * outArray = np.ascontiguousarray(outArray)
15232 * return self.thisptr.transferFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
15233 * def transferElementFieldToProteus(self, name, np.ndarray[np.double_t,ndim=2,mode="c"] outArray): # <<<<<<<<<<<<<<
15234 * outArray = np.ascontiguousarray(outArray)
15235 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
15236*/
15237 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_43transferElementFieldToProteus, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_transferElementFieldTo, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
15238 __Pyx_GOTREF(__pyx_t_2);
15239 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15240 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15241 #endif
15242 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_transferElementFieldToProteus, __pyx_t_2) < (0)) __PYX_ERR(0, 115, __pyx_L1_error)
15243 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15244
15245 /* "MeshAdaptPUMI/MeshAdapt.pyx":118
15246 * outArray = np.ascontiguousarray(outArray)
15247 * return self.thisptr.transferElementFieldToProteus(name, &outArray[0,0], outArray.shape[1], outArray.shape[0])
15248 * def transferPropertiesToPUMI(self, np.ndarray[np.double_t,ndim=1,mode="c"] rho, np.ndarray[np.double_t,ndim=1,mode="c"] nu, np.ndarray[np.double_t,ndim=1,mode="c"] g, double deltaT,double deltaT_next, double T_simulation,double interfaceBandSize): # <<<<<<<<<<<<<<
15249 * rho = np.ascontiguousarray(rho)
15250 * nu = np.ascontiguousarray(nu)
15251*/
15252 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_45transferPropertiesToPUMI, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_transferPropertiesToPU, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error)
15253 __Pyx_GOTREF(__pyx_t_2);
15254 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15255 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15256 #endif
15257 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_transferPropertiesToPUMI, __pyx_t_2) < (0)) __PYX_ERR(0, 118, __pyx_L1_error)
15258 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15259
15260 /* "MeshAdaptPUMI/MeshAdapt.pyx":124
15261 * return self.thisptr.transferPropertiesToPUMI(<double*> rho.data,<double*>nu.data,<double*>g.data,deltaT,deltaT_next,T_simulation,interfaceBandSize)
15262 *
15263 * def setAdaptProperties(self,manager): # <<<<<<<<<<<<<<
15264 * cdef vector[string] sizeInputs
15265 * for entry in manager.sizeInputs:
15266*/
15267 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_47setAdaptProperties, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_setAdaptProperties, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
15268 __Pyx_GOTREF(__pyx_t_2);
15269 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15270 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15271 #endif
15272 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_setAdaptProperties, __pyx_t_2) < (0)) __PYX_ERR(0, 124, __pyx_L1_error)
15273 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15274
15275 /* "MeshAdaptPUMI/MeshAdapt.pyx":142
15276 *
15277 *
15278 * def transferModelInfo(self, np.ndarray[int,ndim=1,mode="c"] numModelEntities, # <<<<<<<<<<<<<<
15279 * np.ndarray[int,ndim=2,mode="c"] edges,
15280 * np.ndarray[int,ndim=2,mode="c"] faces,
15281*/
15282 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_49transferModelInfo, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_transferModelInfo, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error)
15283 __Pyx_GOTREF(__pyx_t_2);
15284 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15285 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15286 #endif
15287 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_transferModelInfo, __pyx_t_2) < (0)) __PYX_ERR(0, 142, __pyx_L1_error)
15288 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15289
15290 /* "MeshAdaptPUMI/MeshAdapt.pyx":165
15291 * #def transferBCsToProteus(self):
15292 * # return self.thisptr.transferBCsToProteus()
15293 * def adaptPUMIMesh(self,inputString=""): # <<<<<<<<<<<<<<
15294 * return self.thisptr.adaptPUMIMesh(inputString)
15295 * def dumpMesh(self, cmeshTools.CMesh cmesh):
15296*/
15297 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_51adaptPUMIMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_adaptPUMIMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
15298 __Pyx_GOTREF(__pyx_t_2);
15299 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15300 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15301 #endif
15302 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[2]);
15303 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_adaptPUMIMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 165, __pyx_L1_error)
15304 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15305
15306 /* "MeshAdaptPUMI/MeshAdapt.pyx":167
15307 * def adaptPUMIMesh(self,inputString=""):
15308 * return self.thisptr.adaptPUMIMesh(inputString)
15309 * def dumpMesh(self, cmeshTools.CMesh cmesh): # <<<<<<<<<<<<<<
15310 * return self.thisptr.dumpMesh(cmesh.mesh)
15311 * def getERMSizeField(self, err_total):
15312*/
15313 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_53dumpMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_dumpMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error)
15314 __Pyx_GOTREF(__pyx_t_2);
15315 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15316 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15317 #endif
15318 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_dumpMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 167, __pyx_L1_error)
15319 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15320
15321 /* "MeshAdaptPUMI/MeshAdapt.pyx":169
15322 * def dumpMesh(self, cmeshTools.CMesh cmesh):
15323 * return self.thisptr.dumpMesh(cmesh.mesh)
15324 * def getERMSizeField(self, err_total): # <<<<<<<<<<<<<<
15325 * return self.thisptr.getERMSizeField(err_total);
15326 * def getMPvalue(self,field_val,val_0,val_1):
15327*/
15328 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_55getERMSizeField, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_getERMSizeField, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error)
15329 __Pyx_GOTREF(__pyx_t_2);
15330 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15331 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15332 #endif
15333 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_getERMSizeField, __pyx_t_2) < (0)) __PYX_ERR(0, 169, __pyx_L1_error)
15334 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15335
15336 /* "MeshAdaptPUMI/MeshAdapt.pyx":171
15337 * def getERMSizeField(self, err_total):
15338 * return self.thisptr.getERMSizeField(err_total);
15339 * def getMPvalue(self,field_val,val_0,val_1): # <<<<<<<<<<<<<<
15340 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
15341 * def willAdapt(self):
15342*/
15343 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_57getMPvalue, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_getMPvalue, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error)
15344 __Pyx_GOTREF(__pyx_t_2);
15345 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15346 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15347 #endif
15348 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_getMPvalue, __pyx_t_2) < (0)) __PYX_ERR(0, 171, __pyx_L1_error)
15349 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15350
15351 /* "MeshAdaptPUMI/MeshAdapt.pyx":173
15352 * def getMPvalue(self,field_val,val_0,val_1):
15353 * return self.thisptr.getMPvalue(field_val,val_0,val_1)
15354 * def willAdapt(self): # <<<<<<<<<<<<<<
15355 * return self.thisptr.willAdapt()
15356 * def willInterfaceAdapt(self):
15357*/
15358 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_59willAdapt, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_willAdapt, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 173, __pyx_L1_error)
15359 __Pyx_GOTREF(__pyx_t_2);
15360 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15361 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15362 #endif
15363 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_willAdapt, __pyx_t_2) < (0)) __PYX_ERR(0, 173, __pyx_L1_error)
15364 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15365
15366 /* "MeshAdaptPUMI/MeshAdapt.pyx":175
15367 * def willAdapt(self):
15368 * return self.thisptr.willAdapt()
15369 * def willInterfaceAdapt(self): # <<<<<<<<<<<<<<
15370 * return self.thisptr.willInterfaceAdapt()
15371 * def get_local_error(self):
15372*/
15373 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_61willInterfaceAdapt, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_willInterfaceAdapt, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error)
15374 __Pyx_GOTREF(__pyx_t_2);
15375 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15376 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15377 #endif
15378 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_willInterfaceAdapt, __pyx_t_2) < (0)) __PYX_ERR(0, 175, __pyx_L1_error)
15379 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15380
15381 /* "MeshAdaptPUMI/MeshAdapt.pyx":177
15382 * def willInterfaceAdapt(self):
15383 * return self.thisptr.willInterfaceAdapt()
15384 * def get_local_error(self): # <<<<<<<<<<<<<<
15385 * errTotal=0.0;
15386 * self.thisptr.get_local_error(errTotal)
15387*/
15388 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_63get_local_error, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_get_local_error, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 177, __pyx_L1_error)
15389 __Pyx_GOTREF(__pyx_t_2);
15390 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15391 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15392 #endif
15393 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_get_local_error, __pyx_t_2) < (0)) __PYX_ERR(0, 177, __pyx_L1_error)
15394 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15395
15396 /* "MeshAdaptPUMI/MeshAdapt.pyx":181
15397 * self.thisptr.get_local_error(errTotal)
15398 * return errTotal
15399 * def get_VMS_error(self): # <<<<<<<<<<<<<<
15400 * errTotal=0.0;
15401 * self.thisptr.get_VMS_error(errTotal)
15402*/
15403 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_65get_VMS_error, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_get_VMS_error, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
15404 __Pyx_GOTREF(__pyx_t_2);
15405 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15406 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15407 #endif
15408 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_get_VMS_error, __pyx_t_2) < (0)) __PYX_ERR(0, 181, __pyx_L1_error)
15409 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15410
15411 /* "MeshAdaptPUMI/MeshAdapt.pyx":185
15412 * self.thisptr.get_VMS_error(errTotal)
15413 * return errTotal
15414 * def getMinimumQuality(self): # <<<<<<<<<<<<<<
15415 * return self.thisptr.getMinimumQuality()
15416 * def writeMesh(self,meshName):
15417*/
15418 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_67getMinimumQuality, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_getMinimumQuality, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error)
15419 __Pyx_GOTREF(__pyx_t_2);
15420 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15421 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15422 #endif
15423 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_getMinimumQuality, __pyx_t_2) < (0)) __PYX_ERR(0, 185, __pyx_L1_error)
15424 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15425
15426 /* "MeshAdaptPUMI/MeshAdapt.pyx":187
15427 * def getMinimumQuality(self):
15428 * return self.thisptr.getMinimumQuality()
15429 * def writeMesh(self,meshName): # <<<<<<<<<<<<<<
15430 * return self.thisptr.writeMesh(meshName)
15431 * def cleanMesh(self):
15432*/
15433 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_69writeMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_writeMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error)
15434 __Pyx_GOTREF(__pyx_t_2);
15435 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15436 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15437 #endif
15438 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_writeMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 187, __pyx_L1_error)
15439 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15440
15441 /* "MeshAdaptPUMI/MeshAdapt.pyx":189
15442 * def writeMesh(self,meshName):
15443 * return self.thisptr.writeMesh(meshName)
15444 * def cleanMesh(self): # <<<<<<<<<<<<<<
15445 * return self.thisptr.cleanMesh()
15446 *
15447*/
15448 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_71cleanMesh, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt_cleanMesh, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error)
15449 __Pyx_GOTREF(__pyx_t_2);
15450 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15451 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15452 #endif
15453 if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_mstate_global->__pyx_n_u_cleanMesh, __pyx_t_2) < (0)) __PYX_ERR(0, 189, __pyx_L1_error)
15454 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15455
15456 /* "(tree fragment)":1
15457 * def __reduce_cython__(self): # <<<<<<<<<<<<<<
15458 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
15459 * def __setstate_cython__(self, __pyx_state):
15460*/
15461 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_73__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
15462 __Pyx_GOTREF(__pyx_t_2);
15463 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15464 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15465 #endif
15466 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
15467 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15468
15469 /* "(tree fragment)":3
15470 * def __reduce_cython__(self):
15471 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
15472 * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
15473 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
15474*/
15475 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_9MeshAdapt_75__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MeshAdapt___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
15476 __Pyx_GOTREF(__pyx_t_2);
15477 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15478 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
15479 #endif
15480 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
15481 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15482
15483 /* "MeshAdaptPUMI/MeshAdapt.pyx":192
15484 * return self.thisptr.cleanMesh()
15485 *
15486 * class AdaptManager(): # <<<<<<<<<<<<<<
15487 * def __init__(self,adapter=MeshAdapt()):
15488 * self.modelDict = {}
15489*/
15490 __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_AdaptManager, __pyx_mstate_global->__pyx_n_u_AdaptManager, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error)
15491 __Pyx_GOTREF(__pyx_t_2);
15492
15493 /* "MeshAdaptPUMI/MeshAdapt.pyx":193
15494 *
15495 * class AdaptManager():
15496 * def __init__(self,adapter=MeshAdapt()): # <<<<<<<<<<<<<<
15497 * self.modelDict = {}
15498 * self.sizeInputs = []
15499*/
15500 __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_13MeshAdaptPUMI_9MeshAdapt_12AdaptManager_1__init__, 0, __pyx_mstate_global->__pyx_n_u_AdaptManager___init, NULL, __pyx_mstate_global->__pyx_n_u_MeshAdaptPUMI_MeshAdapt, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error)
15501 __Pyx_GOTREF(__pyx_t_4);
15502 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15503 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
15504 #endif
15505 if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt___pyx_defaults)) __PYX_ERR(0, 193, __pyx_L1_error)
15506 __pyx_t_6 = NULL;
15507 __pyx_t_7 = 1;
15508 {
15509 PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
15510 __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_13MeshAdaptPUMI_9MeshAdapt_MeshAdapt, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
15511 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
15512 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error)
15513 __Pyx_GOTREF((PyObject *)__pyx_t_5);
15514 }
15515 __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_4)->arg0 = ((PyObject *)__pyx_t_5);
15516 __Pyx_GIVEREF(__pyx_t_5);
15517 __pyx_t_5 = 0;
15518 __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_13MeshAdaptPUMI_9MeshAdapt___defaults__);
15519 if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 193, __pyx_L1_error)
15520 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15521
15522 /* "MeshAdaptPUMI/MeshAdapt.pyx":192
15523 * return self.thisptr.cleanMesh()
15524 *
15525 * class AdaptManager(): # <<<<<<<<<<<<<<
15526 * def __init__(self,adapter=MeshAdapt()):
15527 * self.modelDict = {}
15528*/
15529 __pyx_t_4 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_AdaptManager, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error)
15530 __Pyx_GOTREF(__pyx_t_4);
15531 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
15532 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
15533 #endif
15534 if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AdaptManager, __pyx_t_4) < (0)) __PYX_ERR(0, 192, __pyx_L1_error)
15535 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15536 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15537
15538 /* "MeshAdaptPUMI/MeshAdapt.pyx":1
15539 * # distutils: language = c++ # <<<<<<<<<<<<<<
15540 * # cython: language_level=3
15541 * from cpython.ref cimport PyObject
15542*/
15543 __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
15544 __Pyx_GOTREF(__pyx_t_2);
15545 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)
15546 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15547
15548 /*--- Wrapped vars code ---*/
15549
15550 goto __pyx_L0;
15551 __pyx_L1_error:;
15552 __Pyx_XDECREF(__pyx_t_2);
15553 __Pyx_XDECREF(__pyx_t_4);
15554 __Pyx_XDECREF(__pyx_t_5);
15555 __Pyx_XDECREF(__pyx_t_6);
15556 if (__pyx_m) {
15557 if (__pyx_mstate->__pyx_d && stringtab_initialized) {
15558 __Pyx_AddTraceback("init MeshAdaptPUMI.MeshAdapt", __pyx_clineno, __pyx_lineno, __pyx_filename);
15559 }
15560 #if !CYTHON_USE_MODULE_STATE
15561 Py_CLEAR(__pyx_m);
15562 #else
15563 Py_DECREF(__pyx_m);
15564 if (pystate_addmodule_run) {
15565 PyObject *tp, *value, *tb;
15566 __Pyx_PyErr_FetchException(&tp, &value, &tb);
15567 __Pyx_State_RemoveModule(&__pyx_moduledef);
15568 __Pyx_PyErr_RestoreException(tp, value, tb);
15569 }
15570 #endif
15571 } else if (!PyErr_Occurred()) {
15572 PyErr_SetString(PyExc_ImportError, "init MeshAdaptPUMI.MeshAdapt");
15573 }
15574 __pyx_L0:;
15575 __Pyx_RefNannyFinishContext();
15576 #if CYTHON_PEP489_MULTI_PHASE_INIT
15577 return (__pyx_m != NULL) ? 0 : -1;
15578 #else
15579 return __pyx_m;
15580 #endif
15581}
15582/* #### Code section: pystring_table ### */
15583/* #### Code section: cached_builtins ### */
15584
15585static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
15586 CYTHON_UNUSED_VAR(__pyx_mstate);
15587
15588 /* Cached unbound methods */
15589 __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
15590 __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
15591 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
15592 __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
15593 __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
15594 __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
15595 return 0;
15596}
15597/* #### Code section: cached_constants ### */
15598
15599static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
15600 __Pyx_RefNannyDeclarations
15601 int __pyx_lineno = 0;
15602 const char *__pyx_filename = NULL;
15603 int __pyx_clineno = 0;
15604 CYTHON_UNUSED_VAR(__pyx_mstate);
15605 __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
15606
15607 /* "MeshAdaptPUMI/MeshAdapt.pyx":92
15608 * sphereCenter = np.ascontiguousarray(sphereCenter)
15609 * return self.thisptr.updateSphereCoordinates(&sphereCenter[0])
15610 * def reconstructFromProteus(self,cmeshTools.CMesh cmesh,cmeshTools.CMesh global_cmesh,hasModel=0): # <<<<<<<<<<<<<<
15611 * return self.thisptr.reconstructFromProteus(cmesh.mesh,global_cmesh.mesh,hasModel)
15612 * def reconstructFromProteus2(self,cmeshTools.CMesh cmesh,np.ndarray[int,ndim=1,mode="c"] isModelVert,
15613*/
15614 {
15615 PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_int_0};
15616 __pyx_mstate_global->__pyx_tuple[0] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 92, __pyx_L1_error)
15617 __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
15618 }
15619 __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);
15620
15621 /* "MeshAdaptPUMI/MeshAdapt.pyx":102
15622 * def constructFromParallelPUMIMesh(self, cmeshTools.CMesh cmesh, cmeshTools.CMesh subdomain_cmesh):
15623 * return self.thisptr.constructFromParallelPUMIMesh(cmesh.mesh, subdomain_cmesh.mesh)
15624 * def updateMaterialArrays(self, cmeshTools.CMesh cmesh, dim=None,bdryId=None, geomTag=None): # <<<<<<<<<<<<<<
15625 * if(dim is None):
15626 * return self.thisptr.updateMaterialArrays(cmesh.mesh)
15627*/
15628 {
15629 PyObject* __pyx_temp[3] = {Py_None, Py_None, Py_None};
15630 __pyx_mstate_global->__pyx_tuple[1] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 102, __pyx_L1_error)
15631 __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
15632 }
15633 __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);
15634
15635 /* "MeshAdaptPUMI/MeshAdapt.pyx":165
15636 * #def transferBCsToProteus(self):
15637 * # return self.thisptr.transferBCsToProteus()
15638 * def adaptPUMIMesh(self,inputString=""): # <<<<<<<<<<<<<<
15639 * return self.thisptr.adaptPUMIMesh(inputString)
15640 * def dumpMesh(self, cmeshTools.CMesh cmesh):
15641*/
15642 {
15643 PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_kp_u__2};
15644 __pyx_mstate_global->__pyx_tuple[2] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(0, 165, __pyx_L1_error)
15645 __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
15646 }
15647 __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);
15648 #if CYTHON_IMMORTAL_CONSTANTS
15649 {
15650 PyObject **table = __pyx_mstate->__pyx_tuple;
15651 for (Py_ssize_t i=0; i<3; ++i) {
15652 #if PY_VERSION_HEX >= 0x030F0000
15653 PyUnstable_SetImmortal(table[i]);
15654 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
15655 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
15656 #if PY_VERSION_HEX < 0x030E0000
15657 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
15658 #else
15659 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
15660 #endif
15661 {
15662 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
15663 }
15664 #else
15665 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
15666 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
15667 #endif
15668 }
15669 }
15670 #endif
15671 __Pyx_RefNannyFinishContext();
15672 return 0;
15673 __pyx_L1_error:;
15674 __Pyx_RefNannyFinishContext();
15675 return -1;
15676}
15677/* #### Code section: init_constants ### */
15678
15679static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
15680 int __pyx_lineno = 0;
15681 const char *__pyx_filename = NULL;
15682 int __pyx_clineno = 0;
15683 CYTHON_UNUSED_VAR(__pyx_mstate);
15684 {
15685 const struct { const unsigned int length: 8; } str_length_index[] = {{0},{15},{1},{10},{1},{179},{8},{7},{6},{2},{9},{50},{39},{34},{35},{12},{21},{9},{27},{29},{19},{23},{27},{19},{39},{37},{18},{25},{20},{27},{23},{25},{25},{29},{26},{16},{23},{17},{32},{33},{28},{20},{27},{39},{29},{32},{27},{34},{30},{31},{33},{19},{28},{19},{23},{11},{9},{12},{20},{12},{7},{8},{12},{8},{8},{13},{10},{8},{11},{11},{12},{10},{17},{13},{12},{12},{19},{8},{13},{5},{9},{13},{17},{7},{17},{18},{6},{6},{6},{9},{18},{5},{29},{27},{6},{11},{3},{8},{5},{5},{8},{9},{5},{9},{1},{8},{7},{15},{10},{17},{13},{15},{12},{13},{8},{4},{4},{4},{7},{11},{17},{11},{15},{5},{19},{16},{8},{7},{6},{7},{14},{18},{14},{8},{16},{9},{6},{12},{4},{2},{2},{13},{7},{13},{16},{11},{5},{8},{3},{22},{23},{17},{3},{4},{18},{10},{10},{10},{17},{12},{12},{15},{11},{29},{19},{22},{17},{24},{20},{21},{23},{5},{5},{6},{9},{18},{9}};
15686 const struct { const unsigned int length: 8; } bytes_length_index[] = {{9},{93},{11},{17},{13},{15},{15},{19},{16},{18},{14},{14},{18},{18},{23},{23},{24},{73},{60},{61},{62},{34},{80},{47},{189},{117},{18},{57},{29}};
15687 #ifndef CYTHON_COMPRESS_STRINGS
15688 #define CYTHON_COMPRESS_STRINGS 90
15689 #endif
15690 #if (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (1796 bytes) */
15691static const char cstring[] = "x\332\215V\317s\3336\026\216\345\264u6\331\244J\3344\235l\246Tf\343t\267\215Zy\335M\322\235MGn\344\261\332\261G\222\355\374\232\264\034\210\204($$@\001`\"u\27239\352\250\243\216:\352\250\243\216:\352\210\243\216\375\023\372\047\354\003)K\244$g\367@>\274\207\367\200\207\367>|\344\027\222cl\3248r<L\345\337\262\331\022g5\342\022\352|\177\310$6d\035I\343\207\226\2543j\020a\330\330%U\314\221\304n\313\020\222\023Kb\256\235\250Q*\224\356\355<\3301\020\265\r\216_aK\nC\004U\313EB`a\260\232Q\r\210+\t5d\313\307\"k\024kF\213\005\006\305\3306$3|\360\213\007\310:\246\206\300R\017\214\273\210R&\221$\214\232\020\016\351\3355l\302a\023\362\006\353\350=\344\n\234E\266m\202\037\266\211@U\027c\252\337\216ED4\262)\203\023\324P\340J\30349\266\003\013\233\246a\007\341\022\224\321{p\2427\004\2710k\021J\244i\322\300\363[Y\323b\034g=\210#\210s\3242j\210\270Q\332\304\363\031\227q\267\300C\262\276\344\341s\310+\020_\037`Q\317\333\310\227\245\223\203\342\\\313\372\255f88@\0249\230\307\307Y\323\214\222\231y\317\303f\307\260\302\036\305|`\n\252\047\240h\253&\321\3512\013&\235\325\n\263.:,\303h\2158\363)\313\305\210&\275\301\005`\021Xr\2173\257\2048r]\354./\232p;\302\034j\276\354dCQ\223\026\007\313B\345\340\210\374\212\367\010v\355\304\304A\351\rr\003\234\264A\335\274\300+\007\310%\262\225\2302\237\034\034\231\230s\306\223f\227Y\310]\234 \242\202g)\343\330\276.C\241\266\307x\236\"\267%\211\2650\311\340\312\344\251\235<\007]\350\"\300\047\034\034I\354\213\204\271\010\367kn\3408Y\337\010S\377k~{\356\000\210\210\300\307\231\217\271$X$\346\314\305\304\004\224\332\254\351Z/5_rDE\r\363\202\2135u\204\r9fK)\235\272\235\316O\273\274z\362\254\340\260\212EZc\313S\363\223,.\036\3706`\377\000\036\r\257\274\276\267\342\375\263\333\213\323G~\035s\374\003c\334&\024\364X\374[\342\272\013\305\322\246\"\205\005k\310\302\213s\234H\234\000\201N6\233\320\302Ax\242\210\201\217M\001\350u#\3263K\255&<\217\201q\315C\334\224\025\\3\315)+\002\211\231\246\315,-j\001\r\245sz\367\315S\3660M\017\021\032J,QH\263\241\302\354\300""\r\335(\362B\351s\354#\036\ra\323\3512\r\270D\247\036\247\324\271\304>3\003nj%\204\3244F\304\022Z\"&\323\204\342\352\034\211\320$\312\002\370N\340\220yfD\225\240\247%RBQ\355\220\000U\022\047`\201\010\231\032\211\026\265\010\313\316\026\025\325=\350\216\250\332\274U\264\253\254\371\230x3\032\263\240\352\030\252e\002\270,\\E\326k\313\323\346\367q\332{\230\0140+\321q\3646)\364\314&\336)\247a\333\301\360U\222\274\005Ts\014MtA\232R\0174zDt\347\200\321\034\0073\357\020j\250\3451r\026(pN|Kt\227 \271\005js\\V\205qx<\207#@\267\003e\221\214\327\221\010/[\335C\315\272Gh\335\257\023B\303\353A\250\037\000Cq\360%\247(\337\205\257\275\316\205DQO\364MLr%\300\336\023+hr\221\034]\346\024\336@A@\302\362\216\207\216\241\271^\364\001\204\\\362\302\207\217}E\337\005\235\363.\013\250\215xk;\\B[\nP\212\271\246\013\246\245N\0107\247v\375\322\367\047\"9z\200\232G8\374\355\021\032\243\324\247A\202\207\247\354;\025\341-\324\266p\255\002\200Ls\016\350\325\351\307:\374\005\000\214\205\265\362\231\277\232\213\317`h\036/\331\236\213\034^g\002\273\265e\276\236\2634\214\246?3\232\245\213\272;b\211\257E\304`X7,\032W\240\333\201\200\037-\233\205|\020b@\"\215\220\202\206\306{y}\005\233\257\346\360%\346>\213\257W\361\360Jn>\203\221\001\373\3467\372\225\013o\201\230\361\3622\033\3178\370\335\332\344\374\237\332_v\312\357\362\223\215\313\355\252\372\370v/\323\313M6\376\334\256\250+\231^\272\227\231l\\j\357\252\313Fo\255\227\236l\\i\313\316\003usg\220\037\274\030\212\321\326\370\202*\037\251\243\347\352yUU-e\021E|\345\377\366\307\271s\377Y\3731\005\342\307\324O)\275x\030\330\315\315\207\017{\371\336I?37|\327+\047\224\036\232\253\377\352\241^#\251\376:\270>\230\233\324\315/\373\271~>\246\177\325\317\367_$<\356\365\3131-\333G1-7H\017\356$\274\357\017\032\303\017\206\361\210\207\303\364\360\316\360\355\210\251\223\047\332\234\356\244uq\366;\207Q\315\256\264\033q\263\332\374+\034\261\034\263_U\327\356\350sM6>\355p\365Y\230qr<\335\351\353~cp\001v\333\032\255\215\256\215\362\243\227\252\\Q\225\223\351\276W;\267""\325\346\226\256H\"\340\303\001\032\274\035\242!\037m\216\236\216\367T\005\372\362T=\375E\375b+\033+\\\323\261\327:\333\352\223\273\275F\177m\026\273=\310\014\376\t\233}1\312\214\266G\307\343\033\252\014a\317\324\263\227\352%D\276R\257^\253\327\356\031\301\017\247Y\336\030\247\307\267\307\217U\t\342`GS\231\000\006\210k\250\006W\\\274[}\316\177\014r\000\244\227\243\364\010p\360;\024\255\330y\332\315O.]\357\274J\300\rz5\331\374d\262y\263\233\373\177_z\275\353\235\252\272\361\367~\246\237K\354X\030^\0376F\027\307\271X\276\357\362\177\\>w\341/\335muK\327\022\016\370q\047\245\256N;\370i\047\350\356EM\216\233o\306\334?\353^\r\021\006\231n\334\352V\324\347\032Q\2318\366\372\216\372\2660z2\276\257*P\337\237\325\317\320\023(.\\\227\267pO\232k\373\372\272\354\247\016\2658L\235hq\222\262\264\260RD\013\222\362\265\360S\273\353 v\327\367\265\330_/\256\253\365[\335\347\000\253\217.\266\377\335]\323\342Q7\035\323\036v\362Z<\350\344\264\270\337\311\314\205\272\250\0136\227\323\310\231\372]\247\274J\0056P\347\357\316\000\330}\324O\3673\352\374\367\303\337\306\217\324\363\027\223\215\213\355\235\266\200\035.]\353\354t\232\352sM\030\047\303\314\357I}k\364\301\350\331\270\254\316k\362H\000\362\333\341\207Cw\274\245J\345\377\002\036\212\047\220";
15692 PyObject *data = __Pyx_DecompressString(cstring, 1796, 1);
15693 #define __Pyx_DecompressString_LZSS_UNUSED
15694 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
15695 const char* const bytes = __Pyx_PyBytes_AsString(data);
15696 #if !CYTHON_ASSUME_SAFE_MACROS
15697 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
15698 #endif
15699 #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (2383 bytes) */
15700static const char cstring[] = "\377(tree fr\377agment).\377.Profili\377ng?Note \377that Cyt\377hon is d\377eliberat\377ely stri\357cter!\001n P\377EP-484 a\377nd rejec\377ts subcl\377asses of\377 builtin\377 types. \377If you n\377eed to p\374%\000%\tthen s\373et\200\000e \047an\377notation\371_<\000\234\000\047 dir\366b\000iv\242\000o Fa\377lse.add_\376%\000edisabl\367een\002\001gcis\356\004\003dno\277\000fau\377lt __red\377uce__ du\336>\002non-\317\000vi\373al\033\000cinit\377__numpy.\177_core.m5\000\377iarray f\367ail\261\003impo\373rt\033\tumath\366\021\016pr\314 us/M\377eshAdapt\357PUMI\004\007.py\375x\022\002Manage\035r\000\t.__\207\0033\006<\0065.\276\006c\237B__\017\t\273 -s\262 e_\013\017a\177\001\210\001\302A\007a\216\005\004\020\361!D\000on\367figs\007clea\335n7\013con\224`uc\377tFromPar\237allel\347\001\014\030S\223er\361 \023\017d\371 \225\013g\377etERMSiz?eField\375\007\026\000\177MPvalue\006\013\376\302@mumQual\367ity\"\n_VMS\277_error\t\013l\357ocal\t\risRue\321\006em\010loa\201\002\377ForAnaly\347tic\222G\030\002odeolAnd\335+nA\367%\362\206b.\343`\217bStep\271s\323G\372`Ite\226\010r\241e\322+\316c\204g\n\0232\245gs\373et\367croper\257ties\017\n_\211\rs\266\350 _f\350!_c\356Lt\377ransferEsle\267\207\001\214BToP\203\r\034\037\005\030\005UMI\264\204\007\r\r%\025\275M\302!Info)\017P\370\301\006z\000P\nupdat/eMat\332bA\264\206\001\321(\370\n\021\236(7\003Spher\377eCoordin{at\242)will\267L\376\017\001Interfa{ce\014\rrite\343\205\n\262\374\206\001.\201\207\n\222\207\002er\371\211\006T\277_simul\360\210\003_\367Pyx\001\000Dict\377_NextRef\373__\217\211\004e____wdoc\003\001fun\003\002\327get\366\206\003_\266\207\005__\357main\047\001metya\223\212\002\010\002odul=\002\367namE\002prep\343ar\005\003r\000@\004quaal\032\005\263\211\005\355\207\016\315\211\006ex\220\001/set_N\005s\206\010\210\210\016\253__\332 t\247\001s\350\211\001o\037utine\237\210\002\240\210\006\222\210\n\370\272\210\002\211\210\t\313\210\002erasc\377ontiguou\375s\245\212\002asynci\337o.corO\003sb\375F\233@sbdryI\177dboxDim""\276\210\006kcls\000_\241 tr\277@\377backcmes\361h\267\210\032\344\210\n\274\210\013delt\333aT\000\003_n\261@di\375m\314\210\005edgese\377ntryerrT\377otalerr_\351t\005\001\272as\356\205\003val?ggeomN\227@\004\001\207Tag\364\210\014\357\210\007\377\210\001\342\210\ng\360\372 \334\210\006\t\001\320\210\010glob\367al_\332\002grad\367ing\224 torh\373as\350\205\002hmaxh\377minhphii\375n\270\205\002inputS\277tringi\336\204\005BWand\213\212\001i0\003V\320\207\001>\236\211\013items\224\211\020\215\211\r\377logEvent\374\005\000\\\000gmaTyp\363em\207\215\003\211\000Aspe\347ctR\376\216\001\217ABou?ndary2\225\207\002\241A\301E\316 \004\007\255!\267A\215\001ex\360\037\004\207\212\001\274\205\001\370\211\003nMax\353Se\362\220\002s\366\204\001npn\341u\373\211\n\367\211\004\376\211\004\367\217\002snu\345m\207\210\002E\342`\272\211\001num\271b\246\216\004\245\217\002out\344\207\002p\343op\226\212\023\213\212\024\316\212\010edF\377lagrhose\343lf\236\212\017\316\205\002\274\217\002setSde\310\220\002\242\212\001I\232As\237\212\016\245s\274\210\003e\223\210\001\006\003R\353@u?ssubdo\213\207\002\336\204\002\007tar\330\215\001\213\215\001\273\212\032\273\212\020\256\212\023\200\226\213\005\261\212\006\247\213\005\240\212\r\222\212\021\207\212\022\373\211\024v\257al_0\001\0011\372\216\002s\364\217\212\006\374\211\017w\374\211\005\200\001\330\004\377\n\210+\220Q\200A\330\377\010\016\210b\320\020\"\240\377!\2401\330\010\r\210R\377\320\017!\240\021\240!\330\377\010\014\210B\320\016 \240\377\001\240\021\330\010\017\210t\377\2208\320\0334\260A\260\377Z\270s\300&\310\t\320\377QS\320SY\320Yb\377\320bc\320ci\320i\377p\320p|\360\000\000}\367\001J\002\004\000J\002K\002\354Y\0014\002\2301\001\0079\240A\357\240U\250!\022\007:\240Q\366\000\n\240a.\007;\240a\240\275q\001\013z\260\026\260\t\007\320\277\033+\2501\250Aa\006\320\277\033,\250A\250Z\025\n-\275\250W\007\320\033.\250V\007\320\277\0331\260\021\260%C\n7\337\260q\270\005\270&\t9\270\377\021\270%\270w\300o\320\333UV\254!\021\220\216 \014\210wH\220N""\256#\017\210q\013\t\227\320\024$\340\000Q\260!\021\004\022\377\320\023%\240Q\240a\330?\010\027\220r\320\031\255\002\000\t\276\326&/\250q\260\tk\000&\377\300\001\300\023\300A\300\\\277\320QR\320RUq\004\022\237\220\"\320\024&\216!$\n\006\377\260a\260w\270a\270r\377\300\024\300W\310F\320R\376\225@W\320W^\320^d\277\320de\320ef\340A\023\377\2202\320\025\047\240q\250}\001\303F2\260!\2606\330\000\377(\300!\3002\300T\310\367\030\320Q4\000X\320X\\\373\320\\7\000j\320jk\320\353kl&\0249\237\004\030\310\021?\310\"\310D\320P5\000o\000\347_\320_\212`5\000q\320q\217r\320rs\333a\350\t\300d3{\2601\306`\\\300\021\300\205`\375\340\346`I\220W\230A\330\317\014\026\220j\342j\251@\330\024?\025\330\024\033\2301\000\002\000\007\374\000\021#\002\200A\340\010\026\220\377b\320\030*\250!\2501\374\260\204\006n\001E\270\026\270q\300\367\013\3101\245\010\200A\360\016\177\000\t\034\2302\320\035\371!\276\233 \020\220\002\320\022\273D\027O\220u\230F\223\205\003\013\t\033$\010_\031\230\022\320\033\337`\250\333@_\035\230R\320\037\316a!\250\205\006\376\026\001g\3205E\300V\310w7\320R\224@]\320]\221@\376\332 p\320pw\360\000\000wx\001H\253\205\001H\002N\262\205\001wN\002U\271\205\001U\002c\300\205\001wc\002i\307\205\001i\002p\316\205\001\377p\002B\003\360\000\000B\373\003H\003\001H\003I\003\320\357\003\035\230Y\324`\007\013\210\357=\230\001\330\004\000>\230\021\335\330\004\0079\220A\021\0018\220\2351\030\0017\220!\000\004\047\000\320-\013\320!\007\013\000\005\2104\003\006\006\327:\220Q\033\010\210\007\005 \240\347\001\320\004\304`\212\207\004\230>\250\377\021\250!\320\004?\270|\377\310>\320YZ\330\010\013\357\2104\210sf\000\014\023\220\3374\220x\320\037\255\207\001U\270\373!\340\002\013&\300\005\300X\317\310Q\320\004\271\207\001\204\204\n5\270\377\006\270l\310&\320PQ";
15701 PyObject *data = __Pyx_DecompressString_LZSS(cstring, 2383, 3992);
15702 #define __Pyx_DecompressString_UNUSED
15703 if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
15704 const char* const bytes = __Pyx_PyBytes_AsString(data);
15705 #if !CYTHON_ASSUME_SAFE_MACROS
15706 if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
15707 #endif
15708 #else /* compression: none (3992 bytes) */
15709static const char bytes[] = "(tree fragment)..Profiling?Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.add_notedisableenablegcisenabledno default __reduce__ due to non-trivial __cinit__numpy._core.multiarray failed to importnumpy._core.umath failed to importproteus/MeshAdaptPUMI/MeshAdapt.pyxAdaptManagerAdaptManager.__init__MeshAdaptMeshAdapt.__reduce_cython__MeshAdapt.__setstate_cython__MeshAdapt.adaptMeshMeshAdapt.adaptPUMIMeshMeshAdapt.adapt_type_configMeshAdapt.cleanMeshMeshAdapt.constructFromParallelPUMIMeshMeshAdapt.constructFromSerialPUMIMeshMeshAdapt.dumpMeshMeshAdapt.getERMSizeFieldMeshAdapt.getMPvalueMeshAdapt.getMinimumQualityMeshAdapt.get_VMS_errorMeshAdapt.get_local_errorMeshAdapt.isReconstructedMeshAdapt.loadMeshForAnalyticMeshAdapt.loadModelAndMeshMeshAdapt.nAdaptMeshAdapt.numAdaptStepsMeshAdapt.numIterMeshAdapt.reconstructFromProteusMeshAdapt.reconstructFromProteus2MeshAdapt.setAdaptPropertiesMeshAdapt.set_nAdaptMeshAdapt.size_field_configMeshAdapt.transferElementFieldToProteusMeshAdapt.transferFieldToPUMIMeshAdapt.transferFieldToProteusMeshAdapt.transferModelInfoMeshAdapt.transferPropertiesToPUMIMeshAdapt.updateMaterialArraysMeshAdapt.updateMaterialArrays2MeshAdapt.updateSphereCoordinatesMeshAdapt.willAdaptMeshAdapt.willInterfaceAdaptMeshAdapt.writeMeshMeshAdaptPUMI.MeshAdaptPUMIAdapterProfilingT_simulation__Pyx_PyDict_NextRef__annotate____doc____func____getstate____init____main____metaclass____module____name____prepare____pyx_state__qualname____reduce____reduce_cython____reduce_ex____set_name____setstate____setstate_cython____test___is_coroutineadaptadaptMeshadaptPUMIMeshadapt_type_configadapterascontiguousarrayasyncio.coroutinesbFacesbdryIdboxDimcleanMeshcline_in_tracebackcmeshconstructFromParallelPUMIMeshconstructFromSerialPUMIMeshdeltaTdeltaT_nextdimdumpMeshedgesentryerrTotalerr_totalfacesfield_valggeomNamegeomTaggetERMSizeFieldgetMPvalue""getMinimumQualityget_VMS_errorget_local_errorglobal_cmeshgradingFactorhasModelhmaxhminhphiinArrayinputStringinterfaceBandSizeisModelVertisReconstructeditemsloadMeshForAnalyticloadModelAndMeshlogEventloggingmaTypemanagermaxAspectRatiomeshBoundary2ModelmeshEdge2ModelmeshNamemeshVertex2ModelmodelDictnAdaptnMaxSegmentsnamenpnunumAdaptStepsnumIternumIterationsnumModelEntitiesnumberAdaptnumpyoutArraypopreconstructFromProteusreconstructFromProteus2reconstructedFlagrhoselfsetAdaptPropertiesset_nAdaptsetdefaultsizeInputssize_field_configsphereCentersphereRadiussubdomain_cmeshtargetErrortransferElementFieldToProteustransferFieldToPUMItransferFieldToProteustransferModelInfotransferPropertiesToPUMIupdateMaterialArraysupdateMaterialArrays2updateSphereCoordinatesval_0val_1valueswillAdaptwillInterfaceAdaptwriteMesh\200\001\330\004\n\210+\220Q\200A\330\010\016\210b\320\020\"\240!\2401\330\010\r\210R\320\017!\240\021\240!\330\010\014\210B\320\016 \240\001\240\021\330\010\017\210t\2208\320\0334\260A\260Z\270s\300&\310\t\320QS\320SY\320Yb\320bc\320ci\320ip\320p|\360\000\000}\001J\002\360\000\000J\002K\002\200A\330\010\017\210t\2208\2301\200A\330\010\017\210t\2208\2309\240A\240U\250!\200A\330\010\017\210t\2208\230:\240Q\200A\330\010\017\210t\2208\230:\240Q\240a\200A\330\010\017\210t\2208\230;\240a\240q\200A\330\010\017\210t\2208\230;\240a\240z\260\026\260q\200A\330\010\017\210t\2208\320\033+\2501\250A\200A\330\010\017\210t\2208\320\033,\250A\250Z\260q\200A\330\010\017\210t\2208\320\033-\250Q\200A\330\010\017\210t\2208\320\033.\250a\200A\330\010\017\210t\2208\320\0331\260\021\260%\260q\200A\330\010\017\210t\2208\320\0337\260q\270\005\270Q\200A\330\010\017\210t\2208\320\0339\270\021\270%\270w\300o\320UV\200A\330\010\021\220\021\330\010\014\210H\220N\240!\2401\330\010\017\210q\200A\330\010\021\220\021\330\010\014\210H\320\024$\240A\240Q\330\010\017\210q\200A\330\010\021\220\022\320\023%\240Q\240a\330\010\027\220r\320\031+\2501\250A\330\010\027\220r\320\031+\2501\250A\330\010\017\210t\2208""\320\033/\250q\260\t\270\021\270&\300\001\300\023\300A\300\\\320QR\320RU\320UV\200A\330\010\022\220\"\320\024&\240a\240q\330\010\017\210t\2208\320\033/\250q\260\006\260a\260w\270a\270r\300\024\300W\310F\320RS\320SW\320W^\320^d\320de\320ef\200A\330\010\023\2202\320\025\047\240q\250\001\330\010\017\210t\2208\320\0332\260!\2606\270\021\270(\300!\3002\300T\310\030\320QW\320WX\320X\\\320\\d\320dj\320jk\320kl\200A\330\010\023\2202\320\025\047\240q\250\001\330\010\017\210t\2208\320\0339\270\021\270&\300\001\300\030\310\021\310\"\310D\320PX\320X^\320^_\320_c\320ck\320kq\320qr\320rs\200A\330\010\027\220r\320\031+\2501\250A\330\010\017\210t\2208\320\0333\2601\260A\260\\\300\021\300!\200A\340\010\014\210I\220W\230A\330\014\026\220j\240\001\240\021\330\010\017\210t\2208\320\033.\250a\330\024\025\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\330\024\033\2301\200A\340\010\026\220b\320\030*\250!\2501\330\010\017\210t\2208\320\0333\2601\260E\270\026\270q\300\013\3101\310D\320PX\320X^\320^_\200A\360\016\000\t\034\2302\320\035/\250q\260\001\330\010\020\220\002\320\022$\240A\240Q\330\010\027\220u\230F\240!\2401\330\010\020\220\002\320\022$\240A\240Q\330\010\033\2302\320\035/\250q\260\001\330\010\031\230\022\320\033-\250Q\250a\330\010\035\230R\320\0371\260\021\260!\330\010\017\210t\2208\320\033-\250Q\250g\3205E\300V\3107\320RW\320W]\320]e\320ej\320jp\320pw\360\000\000x\001H\002\360\000\000H\002N\002\360\000\000N\002U\002\360\000\000U\002c\002\360\000\000c\002i\002\360\000\000i\002p\002\360\000\000p\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\320\003\035\230Y\240a\330\007\013\210=\230\001\330\007\013\210>\230\021\330\007\013\210=\230\001\330\007\013\2109\220A\330\007\013\2108\2201\330\007\013\2107\220!\330\007\013\2107\220!\330\007\013\320\013\033\2301\330\007\013\320\013\033\2301\330\007\013\210>\230\021\330\007\013\320\013\033\2301\330\007\013\210:\220Q\330\007\013\320\013\033\2301\330""\007\013\210:\220Q\330\007\013\320\013 \240\001\320\004\047\240q\330\010\017\210t\2208\230>\250\021\250!\320\004?\270|\310>\320YZ\330\010\013\2104\210s\220!\330\014\023\2204\220x\320\0374\260A\260U\270!\340\014\023\2204\220x\320\0374\260A\260U\270&\300\005\300X\310Q\320\004b\320bc\330\010\017\210t\2208\320\0332\260!\2605\270\006\270l\310&\320PQ";
15710 PyObject *data = NULL;
15711 #define __Pyx_DecompressString_UNUSED
15712 #define __Pyx_DecompressString_LZSS_UNUSED
15713 #endif
15714 PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
15715 Py_ssize_t pos = 0;
15716 for (int i = 0; i < 177; i++) {
15717 Py_ssize_t bytes_length = str_length_index[i].length;
15718 PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
15719 if (likely(string) && i >= 15) PyUnicode_InternInPlace(&string);
15720 if (unlikely(!string)) {
15721 Py_XDECREF(data);
15722 __PYX_ERR(0, 1, __pyx_L1_error)
15723 }
15724 stringtab[i] = string;
15725 pos += bytes_length;
15726 }
15727 for (int i = 177; i < 206; i++) {
15728 Py_ssize_t bytes_length = bytes_length_index[i-177].length;
15729 PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
15730 stringtab[i] = string;
15731 pos += bytes_length;
15732 if (unlikely(!string)) {
15733 Py_XDECREF(data);
15734 __PYX_ERR(0, 1, __pyx_L1_error)
15735 }
15736 }
15737 Py_XDECREF(data);
15738 for (Py_ssize_t i = 0; i < 206; i++) {
15739 if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
15740 __PYX_ERR(0, 1, __pyx_L1_error)
15741 }
15742 }
15743 #if CYTHON_IMMORTAL_CONSTANTS
15744 {
15745 PyObject **table = stringtab + 177;
15746 for (Py_ssize_t i=0; i<29; ++i) {
15747 #if PY_VERSION_HEX >= 0x030F0000
15748 PyUnstable_SetImmortal(table[i]);
15749 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
15750 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
15751 #if PY_VERSION_HEX < 0x030E0000
15752 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
15753 #else
15754 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
15755 #endif
15756 {
15757 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
15758 }
15759 #else
15760 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
15761 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
15762 #endif
15763 }
15764 }
15765 #endif
15766 }
15767 {
15768 PyObject **numbertab = __pyx_mstate->__pyx_number_tab;
15769 double const c_constants[] = {1.5,1e-2,1e-8,100.0};
15770 for (int i = 0; i < 4; i++) {
15771 numbertab[i] = PyFloat_FromDouble(c_constants[i]);
15772 if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
15773 }
15774 }
15775 {
15776 PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 4;
15777 int8_t const cint_constants_1[] = {0,2,5,10};
15778 for (int i = 0; i < 4; i++) {
15779 numbertab[i] = PyLong_FromLong(cint_constants_1[i - 0]);
15780 if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
15781 }
15782 }
15783 #if CYTHON_IMMORTAL_CONSTANTS
15784 {
15785 PyObject **table = __pyx_mstate->__pyx_number_tab;
15786 for (Py_ssize_t i=0; i<8; ++i) {
15787 #if PY_VERSION_HEX >= 0x030F0000
15788 PyUnstable_SetImmortal(table[i]);
15789 #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
15790 if ((PY_SSIZE_T_MAX <= _Py_IMMORTAL_REFCNT_LOCAL)) break;
15791 #if PY_VERSION_HEX < 0x030E0000
15792 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
15793 #else
15794 if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
15795 #endif
15796 {
15797 Py_SET_REFCNT(table[i], ((Py_ssize_t)_Py_IMMORTAL_REFCNT_LOCAL + 1));
15798 }
15799 #else
15800 if ((PY_SSIZE_T_MAX < _Py_IMMORTAL_INITIAL_REFCNT)) break;
15801 Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
15802 #endif
15803 }
15804 }
15805 #endif
15806 return 0;
15807 __pyx_L1_error:;
15808 return -1;
15809}
15810/* #### Code section: init_codeobjects ### */
15811#ifdef __cplusplus
15812namespace {
15813#endif
15814typedef struct {
15815 unsigned int argcount : 4;
15816 unsigned int num_posonly_args : 1;
15817 unsigned int num_kwonly_args : 1;
15818 unsigned int nlocals : 4;
15819 unsigned int flags : 10;
15820 unsigned int first_line : 8;
15821} __Pyx_PyCode_New_function_description;
15822#ifdef __cplusplus
15823} /* anonymous namespace */
15824#endif
15825/* NewCodeObj.proto */
15826static PyObject* __Pyx_PyCode_New(
15827 const __Pyx_PyCode_New_function_description descr,
15828 PyObject * const *varnames,
15829 PyObject *filename,
15830 PyObject *funcname,
15831 PyObject *line_table,
15832 PyObject *tuple_dedup_map
15833);
15834
15835
15836static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
15837 PyObject* tuple_dedup_map = PyDict_New();
15838 if (unlikely(!tuple_dedup_map)) return -1;
15839 {
15840 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 66};
15841 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15842 __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_size_field_config, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
15843 }
15844 {
15845 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 68};
15846 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15847 __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_adapt_type_config, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
15848 }
15849 {
15850 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 70};
15851 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15852 __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_numIter, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
15853 }
15854 {
15855 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 72};
15856 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15857 __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_adaptMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
15858 }
15859 {
15860 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 74};
15861 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15862 __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_numAdaptSteps, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
15863 }
15864 {
15865 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76};
15866 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15867 __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_nAdapt, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
15868 }
15869 {
15870 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 78};
15871 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_numberAdapt};
15872 __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_set_nAdapt, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
15873 }
15874 {
15875 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 80};
15876 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15877 __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_isReconstructed, __pyx_mstate->__pyx_kp_b_iso88591_A_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
15878 }
15879 {
15880 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 82};
15881 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_geomName, __pyx_mstate->__pyx_n_u_meshName};
15882 __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_loadModelAndMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_AZq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
15883 }
15884 {
15885 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84};
15886 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_meshName, __pyx_mstate->__pyx_n_u_boxDim, __pyx_mstate->__pyx_n_u_sphereCenter, __pyx_mstate->__pyx_n_u_sphereRadius};
15887 __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_loadMeshForAnalytic, __pyx_mstate->__pyx_kp_b_iso88591_A_Qa_r_1A_r_1A_t8_q_A_QRRUUV, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
15888 }
15889 {
15890 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 89};
15891 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sphereCenter};
15892 __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_updateSphereCoordinates, __pyx_mstate->__pyx_kp_b_iso88591_A_r_1A_t8_31A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
15893 }
15894 {
15895 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 92};
15896 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh, __pyx_mstate->__pyx_n_u_global_cmesh, __pyx_mstate->__pyx_n_u_hasModel};
15897 __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_reconstructFromProteus, __pyx_mstate->__pyx_kp_b_iso88591_bbc_t8_2_5_l_PQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
15898 }
15899 {
15900 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 94};
15901 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh, __pyx_mstate->__pyx_n_u_isModelVert, __pyx_mstate->__pyx_n_u_bFaces};
15902 __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_reconstructFromProteus2, __pyx_mstate->__pyx_kp_b_iso88591_A_b_1_t8_31E_q_1DPXX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
15903 }
15904 {
15905 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 98};
15906 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh};
15907 __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_constructFromSerialPUMIMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_7q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
15908 }
15909 {
15910 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 100};
15911 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh, __pyx_mstate->__pyx_n_u_subdomain_cmesh};
15912 __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_constructFromParallelPUMIMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_9_woUV, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
15913 }
15914 {
15915 const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 102};
15916 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh, __pyx_mstate->__pyx_n_u_dim, __pyx_mstate->__pyx_n_u_bdryId, __pyx_mstate->__pyx_n_u_geomTag};
15917 __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_updateMaterialArrays, __pyx_mstate->__pyx_kp_b_iso88591_YZ_4s_4x_4AU_4x_4AU_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
15918 }
15919 {
15920 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 107};
15921 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh};
15922 __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_updateMaterialArrays2, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
15923 }
15924 {
15925 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 109};
15926 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_inArray};
15927 __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_transferFieldToPUMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_t8_q_awar_WFRSSWW_ddeef, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
15928 }
15929 {
15930 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 112};
15931 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_outArray};
15932 __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_transferFieldToProteus, __pyx_mstate->__pyx_kp_b_iso88591_A_2_q_t8_2_6_2T_QWWXX_ddjjkkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
15933 }
15934 {
15935 const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 115};
15936 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_outArray};
15937 __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_transferElementFieldToProteus, __pyx_mstate->__pyx_kp_b_iso88591_A_2_q_t8_9_DPXX___cckkqqrrs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
15938 }
15939 {
15940 const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 118};
15941 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_rho, __pyx_mstate->__pyx_n_u_nu, __pyx_mstate->__pyx_n_u_g, __pyx_mstate->__pyx_n_u_deltaT, __pyx_mstate->__pyx_n_u_deltaT_next, __pyx_mstate->__pyx_n_u_T_simulation, __pyx_mstate->__pyx_n_u_interfaceBandSize};
15942 __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_transferPropertiesToPUMI, __pyx_mstate->__pyx_kp_b_iso88591_A_b_1_R_B_t8_4AZs_QSSYYbbcciipp, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
15943 }
15944 {
15945 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124};
15946 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_manager, __pyx_mstate->__pyx_n_u_sizeInputs, __pyx_mstate->__pyx_n_u_entry};
15947 __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_setAdaptProperties, __pyx_mstate->__pyx_kp_b_iso88591_A_IWA_j_t8_a_1_1_1_1_1_1_1_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
15948 }
15949 {
15950 const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142};
15951 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_numModelEntities, __pyx_mstate->__pyx_n_u_edges, __pyx_mstate->__pyx_n_u_faces, __pyx_mstate->__pyx_n_u_meshVertex2Model, __pyx_mstate->__pyx_n_u_meshEdge2Model, __pyx_mstate->__pyx_n_u_meshBoundary2Model, __pyx_mstate->__pyx_n_u_nMaxSegments};
15952 __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_transferModelInfo, __pyx_mstate->__pyx_kp_b_iso88591_A_2_q_AQ_uF_1_AQ_2_q_Qa_R_1_t8_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
15953 }
15954 {
15955 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 165};
15956 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_inputString};
15957 __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_adaptPUMIMesh, __pyx_mstate->__pyx_kp_b_iso88591_q_t8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
15958 }
15959 {
15960 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 167};
15961 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_cmesh};
15962 __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_dumpMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t89AU, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
15963 }
15964 {
15965 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 169};
15966 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_err_total};
15967 __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_getERMSizeField, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
15968 }
15969 {
15970 const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 171};
15971 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_field_val, __pyx_mstate->__pyx_n_u_val_0, __pyx_mstate->__pyx_n_u_val_1};
15972 __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_getMPvalue, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_az_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
15973 }
15974 {
15975 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 173};
15976 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15977 __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_willAdapt, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
15978 }
15979 {
15980 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 175};
15981 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15982 __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_willInterfaceAdapt, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
15983 }
15984 {
15985 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 177};
15986 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_errTotal};
15987 __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_get_local_error, __pyx_mstate->__pyx_kp_b_iso88591_A_H_AQ_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
15988 }
15989 {
15990 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 181};
15991 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_errTotal};
15992 __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_get_VMS_error, __pyx_mstate->__pyx_kp_b_iso88591_A_HN_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
15993 }
15994 {
15995 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 185};
15996 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
15997 __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_getMinimumQuality, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
15998 }
15999 {
16000 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 187};
16001 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_meshName};
16002 __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_writeMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
16003 }
16004 {
16005 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 189};
16006 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
16007 __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_cleanMesh, __pyx_mstate->__pyx_kp_b_iso88591_A_t8_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
16008 }
16009 {
16010 const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
16011 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
16012 __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
16013 }
16014 {
16015 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
16016 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
16017 __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
16018 }
16019 {
16020 const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 193};
16021 PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_adapter};
16022 __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_proteus_MeshAdaptPUMI_MeshAdapt, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Ya_9A_81_7_7_1_1_1_Q_1_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
16023 }
16024 Py_DECREF(tuple_dedup_map);
16025 return 0;
16026 bad:
16027 Py_DECREF(tuple_dedup_map);
16028 return -1;
16029}
16030/* #### Code section: init_globals ### */
16031
16032static int __Pyx_InitGlobals(void) {
16033 int __pyx_lineno = 0;
16034 const char *__pyx_filename = NULL;
16035 int __pyx_clineno = 0;
16036 /* PythonCompatibility.init */
16037 if (likely(__Pyx_init_co_variables() == 0 && __Pyx_init_tpflags_variables() == 0)); else
16038
16039 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16040
16041 /* NumpyImportArray.init */
16042 /*
16043 * Cython has automatically inserted a call to _import_array since
16044 * you didn't include one when you cimported numpy. To disable this
16045 * add the line
16046 * <void>numpy._import_array
16047 */
16048 #ifdef NPY_FEATURE_VERSION
16049 #ifndef NO_IMPORT_ARRAY
16050 if (unlikely(_import_array() == -1)) {
16051 PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import "
16052 "(auto-generated because you didn't call 'numpy.import_array()' after cimporting numpy; "
16053 "use '<void>numpy._import_array' to disable if you are certain you don't need it).");
16054 }
16055 #endif
16056 #endif
16057
16058 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16059
16060 /* CommonTypesMetaclass.init */
16061 if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
16062
16063 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16064
16065 /* CachedMethodType.init */
16066 #if CYTHON_COMPILING_IN_LIMITED_API
16067 {
16068 PyObject *typesModule=NULL;
16069 typesModule = PyImport_ImportModule("types");
16070 if (typesModule) {
16071 __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
16072 Py_DECREF(typesModule);
16073 }
16074 } // error handling follows
16075 #endif
16076
16077 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16078
16079 return 0;
16080 __pyx_L1_error:;
16081 return -1;
16082}
16083/* #### Code section: init_after_shared_utility ### */
16084
16085static int __Pyx_InitAfterSharedUtility(void) {
16086 int __pyx_lineno = 0;
16087 const char *__pyx_filename = NULL;
16088 int __pyx_clineno = 0;
16089 /* CythonFunctionPerModule.init */
16090 if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
16091
16092 if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
16093
16094 return 0;
16095 __pyx_L1_error:;
16096 return -1;
16097}
16098/* #### Code section: cleanup_globals ### */
16099/* #### Code section: cleanup_module ### */
16100/* #### Code section: main_method ### */
16101/* #### Code section: utility_code_pragmas ### */
16102#ifdef _MSC_VER
16103#pragma warning( push )
16104/* Warning 4127: conditional expression is constant
16105 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
16106 * compile-time, so this warning is not useful
16107 */
16108#pragma warning( disable : 4127 )
16109#endif
16110
16111
16112
16113/* #### Code section: utility_code_def ### */
16114
16115/* --- Runtime support code --- */
16116/* Refnanny */
16117#if CYTHON_REFNANNY
16118static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
16119 PyObject *m = NULL, *p = NULL;
16120 void *r = NULL;
16121 m = PyImport_ImportModule(modname);
16122 if (!m) goto end;
16123 p = PyObject_GetAttrString(m, "RefNannyAPI");
16124 if (!p) goto end;
16125 r = PyLong_AsVoidPtr(p);
16126end:
16127 Py_XDECREF(p);
16128 Py_XDECREF(m);
16129 return (__Pyx_RefNannyAPIStruct *)r;
16130}
16131#endif
16132
16133/* GetTopmostException (used by SaveResetException) */
16134#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
16135static _PyErr_StackItem *
16136__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
16137{
16138 _PyErr_StackItem *exc_info = tstate->exc_info;
16139 while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
16140 exc_info->previous_item != NULL)
16141 {
16142 exc_info = exc_info->previous_item;
16143 }
16144 return exc_info;
16145}
16146#endif
16147
16148/* SaveResetException */
16149#if CYTHON_FAST_THREAD_STATE
16150static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
16151 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
16152 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
16153 PyObject *exc_value = exc_info->exc_value;
16154 if (exc_value == NULL || exc_value == Py_None) {
16155 *value = NULL;
16156 *type = NULL;
16157 *tb = NULL;
16158 } else {
16159 *value = exc_value;
16160 Py_INCREF(*value);
16161 *type = (PyObject*) Py_TYPE(exc_value);
16162 Py_INCREF(*type);
16163 *tb = PyException_GetTraceback(exc_value);
16164 }
16165 #elif CYTHON_USE_EXC_INFO_STACK
16166 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
16167 *type = exc_info->exc_type;
16168 *value = exc_info->exc_value;
16169 *tb = exc_info->exc_traceback;
16170 Py_XINCREF(*type);
16171 Py_XINCREF(*value);
16172 Py_XINCREF(*tb);
16173 #else
16174 *type = tstate->exc_type;
16175 *value = tstate->exc_value;
16176 *tb = tstate->exc_traceback;
16177 Py_XINCREF(*type);
16178 Py_XINCREF(*value);
16179 Py_XINCREF(*tb);
16180 #endif
16181}
16182static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
16183 #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
16184 _PyErr_StackItem *exc_info = tstate->exc_info;
16185 PyObject *tmp_value = exc_info->exc_value;
16186 exc_info->exc_value = value;
16187 Py_XDECREF(tmp_value);
16188 Py_XDECREF(type);
16189 Py_XDECREF(tb);
16190 #else
16191 PyObject *tmp_type, *tmp_value, *tmp_tb;
16192 #if CYTHON_USE_EXC_INFO_STACK
16193 _PyErr_StackItem *exc_info = tstate->exc_info;
16194 tmp_type = exc_info->exc_type;
16195 tmp_value = exc_info->exc_value;
16196 tmp_tb = exc_info->exc_traceback;
16197 exc_info->exc_type = type;
16198 exc_info->exc_value = value;
16199 exc_info->exc_traceback = tb;
16200 #else
16201 tmp_type = tstate->exc_type;
16202 tmp_value = tstate->exc_value;
16203 tmp_tb = tstate->exc_traceback;
16204 tstate->exc_type = type;
16205 tstate->exc_value = value;
16206 tstate->exc_traceback = tb;
16207 #endif
16208 Py_XDECREF(tmp_type);
16209 Py_XDECREF(tmp_value);
16210 Py_XDECREF(tmp_tb);
16211 #endif
16212}
16213#endif
16214
16215/* FastTypeChecks (used by PyException_Check) */
16216#if CYTHON_COMPILING_IN_CPYTHON
16217static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
16218 while (a) {
16219 a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
16220 if (a == b)
16221 return 1;
16222 }
16223 return b == &PyBaseObject_Type;
16224}
16225static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
16226 PyObject *mro;
16227 if (a == b) return 1;
16228 mro = a->tp_mro;
16229 if (likely(mro)) {
16230 Py_ssize_t i, n;
16231 n = PyTuple_GET_SIZE(mro);
16232 for (i = 0; i < n; i++) {
16233 if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
16234 return 1;
16235 }
16236 return 0;
16237 }
16238 return __Pyx_InBases(a, b);
16239}
16240static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
16241 PyObject *mro;
16242 if (cls == a || cls == b) return 1;
16243 mro = cls->tp_mro;
16244 if (likely(mro)) {
16245 Py_ssize_t i, n;
16246 n = PyTuple_GET_SIZE(mro);
16247 for (i = 0; i < n; i++) {
16248 PyObject *base = PyTuple_GET_ITEM(mro, i);
16249 if (base == (PyObject *)a || base == (PyObject *)b)
16250 return 1;
16251 }
16252 return 0;
16253 }
16254 return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
16255}
16256#endif
16257
16258/* PyErrFetchRestore (used by GivenExceptionMatches) */
16259#if CYTHON_FAST_THREAD_STATE
16260static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
16261#if PY_VERSION_HEX >= 0x030C00A6
16262 PyObject *tmp_value;
16263 assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
16264 if (value) {
16265 #if CYTHON_COMPILING_IN_CPYTHON
16266 if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
16267 #endif
16268 PyException_SetTraceback(value, tb);
16269 }
16270 tmp_value = tstate->current_exception;
16271 tstate->current_exception = value;
16272 Py_XDECREF(tmp_value);
16273 Py_XDECREF(type);
16274 Py_XDECREF(tb);
16275#else
16276 PyObject *tmp_type, *tmp_value, *tmp_tb;
16277 tmp_type = tstate->curexc_type;
16278 tmp_value = tstate->curexc_value;
16279 tmp_tb = tstate->curexc_traceback;
16280 tstate->curexc_type = type;
16281 tstate->curexc_value = value;
16282 tstate->curexc_traceback = tb;
16283 Py_XDECREF(tmp_type);
16284 Py_XDECREF(tmp_value);
16285 Py_XDECREF(tmp_tb);
16286#endif
16287}
16288static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
16289#if PY_VERSION_HEX >= 0x030C00A6
16290 PyObject* exc_value;
16291 exc_value = tstate->current_exception;
16292 tstate->current_exception = 0;
16293 *value = exc_value;
16294 *type = NULL;
16295 *tb = NULL;
16296 if (exc_value) {
16297 *type = (PyObject*) Py_TYPE(exc_value);
16298 Py_INCREF(*type);
16299 #if CYTHON_COMPILING_IN_CPYTHON
16300 *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
16301 Py_XINCREF(*tb);
16302 #else
16303 *tb = PyException_GetTraceback(exc_value);
16304 #endif
16305 }
16306#else
16307 *type = tstate->curexc_type;
16308 *value = tstate->curexc_value;
16309 *tb = tstate->curexc_traceback;
16310 tstate->curexc_type = 0;
16311 tstate->curexc_value = 0;
16312 tstate->curexc_traceback = 0;
16313#endif
16314}
16315#endif
16316
16317/* GivenExceptionMatches (used by PyErrExceptionMatches) */
16318#if CYTHON_COMPILING_IN_CPYTHON
16319static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
16320 if (exc_type1) {
16321 return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
16322 } else {
16323 return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
16324 }
16325}
16326static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
16327 Py_ssize_t i, n;
16328 assert(PyExceptionClass_Check(exc_type));
16329 n = PyTuple_GET_SIZE(tuple);
16330 for (i=0; i<n; i++) {
16331 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
16332 }
16333 for (i=0; i<n; i++) {
16334 PyObject *t = PyTuple_GET_ITEM(tuple, i);
16335 if (likely(PyExceptionClass_Check(t))) {
16336 if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
16337 } else {
16338 }
16339 }
16340 return 0;
16341}
16342static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
16343 if (likely(err == exc_type)) return 1;
16344 if (likely(PyExceptionClass_Check(err))) {
16345 if (likely(PyExceptionClass_Check(exc_type))) {
16346 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
16347 } else if (likely(PyTuple_Check(exc_type))) {
16348 return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
16349 } else {
16350 }
16351 }
16352 return PyErr_GivenExceptionMatches(err, exc_type);
16353}
16354static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
16355 assert(PyExceptionClass_Check(exc_type1));
16356 assert(PyExceptionClass_Check(exc_type2));
16357 if (likely(err == exc_type1 || err == exc_type2)) return 1;
16358 if (likely(PyExceptionClass_Check(err))) {
16359 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
16360 }
16361 return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
16362}
16363#endif
16364
16365/* PyErrExceptionMatches */
16366#if CYTHON_FAST_THREAD_STATE
16367static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
16368 Py_ssize_t i, n;
16369 n = PyTuple_GET_SIZE(tuple);
16370 for (i=0; i<n; i++) {
16371 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
16372 }
16373 for (i=0; i<n; i++) {
16374 if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
16375 }
16376 return 0;
16377}
16378static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
16379 int result;
16380 PyObject *exc_type;
16381#if PY_VERSION_HEX >= 0x030C00A6
16382 PyObject *current_exception = tstate->current_exception;
16383 if (unlikely(!current_exception)) return 0;
16384 exc_type = (PyObject*) Py_TYPE(current_exception);
16385 if (exc_type == err) return 1;
16386#else
16387 exc_type = tstate->curexc_type;
16388 if (exc_type == err) return 1;
16389 if (unlikely(!exc_type)) return 0;
16390#endif
16391 #if CYTHON_AVOID_BORROWED_REFS
16392 Py_INCREF(exc_type);
16393 #endif
16394 if (unlikely(PyTuple_Check(err))) {
16395 result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
16396 } else {
16397 result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
16398 }
16399 #if CYTHON_AVOID_BORROWED_REFS
16400 Py_DECREF(exc_type);
16401 #endif
16402 return result;
16403}
16404#endif
16405
16406/* GetException */
16407#if CYTHON_FAST_THREAD_STATE
16408static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
16409#else
16410static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
16411#endif
16412{
16413 PyObject *local_type = NULL, *local_value, *local_tb = NULL;
16414#if CYTHON_FAST_THREAD_STATE
16415 PyObject *tmp_type, *tmp_value, *tmp_tb;
16416 #if PY_VERSION_HEX >= 0x030C0000
16417 local_value = tstate->current_exception;
16418 tstate->current_exception = 0;
16419 #else
16420 local_type = tstate->curexc_type;
16421 local_value = tstate->curexc_value;
16422 local_tb = tstate->curexc_traceback;
16423 tstate->curexc_type = 0;
16424 tstate->curexc_value = 0;
16425 tstate->curexc_traceback = 0;
16426 #endif
16427#elif __PYX_LIMITED_VERSION_HEX >= 0x030C0000
16428 local_value = PyErr_GetRaisedException();
16429#else
16430 PyErr_Fetch(&local_type, &local_value, &local_tb);
16431#endif
16432#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
16433 if (likely(local_value)) {
16434 local_type = (PyObject*) Py_TYPE(local_value);
16435 Py_INCREF(local_type);
16436 local_tb = PyException_GetTraceback(local_value);
16437 }
16438#else
16439 PyErr_NormalizeException(&local_type, &local_value, &local_tb);
16440#if CYTHON_FAST_THREAD_STATE
16441 if (unlikely(tstate->curexc_type))
16442#else
16443 if (unlikely(PyErr_Occurred()))
16444#endif
16445 goto bad;
16446 if (local_tb) {
16447 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
16448 goto bad;
16449 }
16450#endif // __PYX_LIMITED_VERSION_HEX >= 0x030C0000
16451 Py_XINCREF(local_tb);
16452 Py_XINCREF(local_type);
16453 Py_XINCREF(local_value);
16454 *type = local_type;
16455 *value = local_value;
16456 *tb = local_tb;
16457#if CYTHON_FAST_THREAD_STATE
16458 #if CYTHON_USE_EXC_INFO_STACK
16459 {
16460 _PyErr_StackItem *exc_info = tstate->exc_info;
16461 #if PY_VERSION_HEX >= 0x030B00a4
16462 tmp_value = exc_info->exc_value;
16463 exc_info->exc_value = local_value;
16464 tmp_type = NULL;
16465 tmp_tb = NULL;
16466 Py_XDECREF(local_type);
16467 Py_XDECREF(local_tb);
16468 #else
16469 tmp_type = exc_info->exc_type;
16470 tmp_value = exc_info->exc_value;
16471 tmp_tb = exc_info->exc_traceback;
16472 exc_info->exc_type = local_type;
16473 exc_info->exc_value = local_value;
16474 exc_info->exc_traceback = local_tb;
16475 #endif
16476 }
16477 #else
16478 tmp_type = tstate->exc_type;
16479 tmp_value = tstate->exc_value;
16480 tmp_tb = tstate->exc_traceback;
16481 tstate->exc_type = local_type;
16482 tstate->exc_value = local_value;
16483 tstate->exc_traceback = local_tb;
16484 #endif
16485 Py_XDECREF(tmp_type);
16486 Py_XDECREF(tmp_value);
16487 Py_XDECREF(tmp_tb);
16488#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
16489 PyErr_SetHandledException(local_value);
16490 Py_XDECREF(local_value);
16491 Py_XDECREF(local_type);
16492 Py_XDECREF(local_tb);
16493#else
16494 PyErr_SetExcInfo(local_type, local_value, local_tb);
16495#endif
16496 return 0;
16497#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
16498bad:
16499 *type = 0;
16500 *value = 0;
16501 *tb = 0;
16502 Py_XDECREF(local_type);
16503 Py_XDECREF(local_value);
16504 Py_XDECREF(local_tb);
16505 return -1;
16506#endif
16507}
16508
16509/* PyObjectCall (used by PyObjectFastCall) */
16510#if CYTHON_COMPILING_IN_CPYTHON
16511static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
16512 PyObject *result;
16513 ternaryfunc call = Py_TYPE(func)->tp_call;
16514 if (unlikely(!call))
16515 return PyObject_Call(func, arg, kw);
16516 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
16517 return NULL;
16518 result = (*call)(func, arg, kw);
16519 Py_LeaveRecursiveCall();
16520 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
16521 PyErr_SetString(
16522 PyExc_SystemError,
16523 "NULL result without error in PyObject_Call");
16524 }
16525 return result;
16526}
16527#endif
16528
16529/* PyObjectCallMethO (used by PyObjectFastCall) */
16530#if CYTHON_COMPILING_IN_CPYTHON
16531static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
16532 PyObject *self, *result;
16533 PyCFunction cfunc;
16534 cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
16535 self = __Pyx_CyOrPyCFunction_GET_SELF(func);
16536 if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
16537 return NULL;
16538 result = cfunc(self, arg);
16539 Py_LeaveRecursiveCall();
16540 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
16541 PyErr_SetString(
16542 PyExc_SystemError,
16543 "NULL result without error in PyObject_Call");
16544 }
16545 return result;
16546}
16547#endif
16548
16549/* PyObjectFastCall */
16550#if CYTHON_COMPILING_IN_LIMITED_API
16551static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
16552 PyObject *argstuple;
16553 PyObject *result = 0;
16554 size_t i;
16555 argstuple = PyTuple_New((Py_ssize_t)nargs);
16556 if (unlikely(!argstuple)) return NULL;
16557 for (i = 0; i < nargs; i++) {
16558 Py_INCREF(args[i]);
16559 if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
16560 }
16561 result = __Pyx_PyObject_Call(func, argstuple, kwargs);
16562 bad:
16563 Py_DECREF(argstuple);
16564 return result;
16565}
16566#endif
16567#if CYTHON_VECTORCALL && !(CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY)
16568 #if CYTHON_COMPILING_IN_CPYTHON
16569static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
16570 PyTypeObject *tp = Py_TYPE(callable);
16571 #if defined(__Pyx_CyFunction_USED)
16572 if (__Pyx_CyFunction_CheckExact(callable)) {
16573 return __Pyx_CyFunction_func_vectorcall(callable);
16574 }
16575 #endif
16576 if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
16577 return NULL;
16578 }
16579 assert(PyCallable_Check(callable));
16580 Py_ssize_t offset = tp->tp_vectorcall_offset;
16581 assert(offset > 0);
16582 vectorcallfunc ptr;
16583 memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
16584 return ptr;
16585}
16586 #else
16587 #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
16588 #endif
16589#endif
16590static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwargs) {
16591 Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(nargsf);
16592#if CYTHON_COMPILING_IN_CPYTHON
16593 if (nargs == 0 && kwargs == NULL) {
16594 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
16595 return __Pyx_PyObject_CallMethO(func, NULL);
16596 }
16597 else if (nargs == 1 && kwargs == NULL) {
16598 if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
16599 return __Pyx_PyObject_CallMethO(func, args[0]);
16600 }
16601#endif
16602 if (kwargs == NULL) {
16603 #if CYTHON_VECTORCALL
16604 #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
16605 return PyObject_Vectorcall(func, args, nargsf, NULL);
16606 #else
16607 vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
16608 if (f) {
16609 return f(func, args, nargsf, NULL);
16610 }
16611 #endif
16612 #endif
16613 }
16614 if (nargs == 0) {
16615 return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
16616 }
16617 #if CYTHON_COMPILING_IN_LIMITED_API
16618 return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
16619 #elif CYTHON_COMPILING_IN_PYPY
16620 return PyObject_VectorcallDict(func, args, (size_t) nargs, kwargs);
16621 #else
16622 return PyObject_VectorcallDict(func, args, nargsf, kwargs);
16623 #endif
16624}
16625
16626/* RaiseException */
16627static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
16628 PyObject* owned_instance = NULL;
16629 if (tb == Py_None) {
16630 tb = 0;
16631 } else if (tb && !PyTraceBack_Check(tb)) {
16632 PyErr_SetString(PyExc_TypeError,
16633 "raise: arg 3 must be a traceback or None");
16634 goto bad;
16635 }
16636 if (value == Py_None)
16637 value = 0;
16638 if (PyExceptionInstance_Check(type)) {
16639 if (value) {
16640 PyErr_SetString(PyExc_TypeError,
16641 "instance exception may not have a separate value");
16642 goto bad;
16643 }
16644 value = type;
16645 type = (PyObject*) Py_TYPE(value);
16646 } else if (PyExceptionClass_Check(type)) {
16647 PyObject *instance_class = NULL;
16648 if (value && PyExceptionInstance_Check(value)) {
16649 instance_class = (PyObject*) Py_TYPE(value);
16650 if (instance_class != type) {
16651 int is_subclass = PyObject_IsSubclass(instance_class, type);
16652 if (!is_subclass) {
16653 instance_class = NULL;
16654 } else if (unlikely(is_subclass == -1)) {
16655 goto bad;
16656 } else {
16657 type = instance_class;
16658 }
16659 }
16660 }
16661 if (!instance_class) {
16662 PyObject *args;
16663 if (!value)
16664 args = PyTuple_New(0);
16665 else if (PyTuple_Check(value)) {
16666 Py_INCREF(value);
16667 args = value;
16668 } else
16669 args = PyTuple_Pack(1, value);
16670 if (!args)
16671 goto bad;
16672 owned_instance = PyObject_Call(type, args, NULL);
16673 Py_DECREF(args);
16674 if (!owned_instance)
16675 goto bad;
16676 value = owned_instance;
16677 if (!PyExceptionInstance_Check(value)) {
16678 PyErr_Format(PyExc_TypeError,
16679 "calling %R should have returned an instance of "
16680 "BaseException, not %R",
16681 type, Py_TYPE(value));
16682 goto bad;
16683 }
16684 }
16685 } else {
16686 PyErr_SetString(PyExc_TypeError,
16687 "raise: exception class must be a subclass of BaseException");
16688 goto bad;
16689 }
16690 if (cause) {
16691 PyObject *fixed_cause;
16692 if (cause == Py_None) {
16693 fixed_cause = NULL;
16694 } else if (PyExceptionClass_Check(cause)) {
16695 fixed_cause = PyObject_CallObject(cause, NULL);
16696 if (fixed_cause == NULL)
16697 goto bad;
16698 } else if (PyExceptionInstance_Check(cause)) {
16699 fixed_cause = cause;
16700 Py_INCREF(fixed_cause);
16701 } else {
16702 PyErr_SetString(PyExc_TypeError,
16703 "exception causes must derive from "
16704 "BaseException");
16705 goto bad;
16706 }
16707 PyException_SetCause(value, fixed_cause);
16708 }
16709 PyErr_SetObject(type, value);
16710 if (tb) {
16711#if PY_VERSION_HEX >= 0x030C00A6
16712 PyException_SetTraceback(value, tb);
16713#elif CYTHON_FAST_THREAD_STATE
16714 PyThreadState *tstate = __Pyx_PyThreadState_Current;
16715 PyObject* tmp_tb = tstate->curexc_traceback;
16716 if (tb != tmp_tb) {
16717 Py_INCREF(tb);
16718 tstate->curexc_traceback = tb;
16719 Py_XDECREF(tmp_tb);
16720 }
16721#else
16722 PyObject *tmp_type, *tmp_value, *tmp_tb;
16723 PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
16724 Py_INCREF(tb);
16725 PyErr_Restore(tmp_type, tmp_value, tb);
16726 Py_XDECREF(tmp_tb);
16727#endif
16728 }
16729bad:
16730 Py_XDECREF(owned_instance);
16731 return;
16732}
16733
16734/* CopyObjectArray (used by TupleOrListFromArrayImpl) */
16735#if CYTHON_COMPILING_IN_CPYTHON
16736static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
16737 PyObject *v;
16738 Py_ssize_t i;
16739 for (i = 0; i < length; i++) {
16740 v = dest[i] = src[i];
16741 Py_INCREF(v);
16742 }
16743}
16744#endif
16745
16746/* TupleOrListFromArrayImpl (used by TupleFromArray) */
16747#if !(PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API)
16748CYTHON_UNUSED static PyObject *
16749__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) {
16750 if (n <= 0) {
16751 return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
16752 }
16753 PyObject *res = PyTuple_New(n);
16754 if (unlikely(res == NULL)) return NULL;
16755 #if CYTHON_COMPILING_IN_CPYTHON
16756 __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
16757 #else
16758 Py_ssize_t i;
16759 for (i = 0; i < n; i++) {
16760 Py_INCREF(src[i]);
16761 if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
16762 Py_DECREF(res);
16763 return NULL;
16764 }
16765 }
16766 #endif
16767 return res;
16768}
16769#endif
16770
16771/* PyObjectCompare (used by UnicodeEquals) */
16772#ifndef __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
16773#define __Pyx_DEFINED_PyObject_CompareStrStrBoolEq
16774static CYTHON_INLINE int __Pyx_PyObject_CompareStrStrBoolEq(PyObject* s1, PyObject* s2) {
16775 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
16776 int result = PyUnicode_Equal(s1, s2);
16777 #if !CYTHON_COMPILING_IN_CPYTHON
16778 if (unlikely(result == -1)) return -1;
16779 #endif
16780 if (result == 0) goto __pyx_return_false; else goto __pyx_return_true;
16781 #else
16782 int result = PyUnicode_Compare(s1, s2);
16783 if (unlikely((result == -1) && PyErr_Occurred())) return -1;
16784 if (result == 0) goto __pyx_return_true; else goto __pyx_return_false;
16785 #endif
16786__pyx_return_true:
16787 return 1;
16788__pyx_return_false:
16789 return 0;
16790}
16791#endif
16792static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop) {
16793 CYTHON_UNUSED_VAR(pyop);
16794 if (unlikely(op1 == Py_None)) {
16795 if (op2 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
16796 }
16797 if (unlikely(op2 == Py_None)) {
16798 if (op1 == Py_None) goto __pyx_return_true; else goto __pyx_return_false;
16799 }
16800
16801 if (likely(op1 != Py_None)) {
16802 if (op1 == op2) goto __pyx_return_true;
16803 if (likely(op2 != Py_None)) {
16804 return __Pyx_PyObject_CompareStrStrBoolEq(op1, op2);
16805 }
16806 goto __pyx_richcmp;
16807 }
16808
16809 if ((0)) goto __pyx_richcmp;
16810 if ((0)) goto __pyx_return_true;
16811 if ((0)) goto __pyx_return_false;
16812__pyx_richcmp:
16813 return __Pyx_PyObject_RichCompareBool(op1, op2, Py_EQ);
16814__pyx_return_true:
16815 return 1;
16816__pyx_return_false:
16817 return 0;
16818}
16819
16820/* fastcall */
16821#if CYTHON_VECTORCALL
16822static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
16823{
16824 Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
16825 #if !CYTHON_ASSUME_SAFE_SIZE
16826 if (unlikely(n == -1)) return NULL;
16827 #endif
16828 for (i = 0; i < n; i++)
16829 {
16830 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
16831 #if !CYTHON_ASSUME_SAFE_MACROS
16832 if (unlikely(!namei)) return NULL;
16833 #endif
16834 if (s == namei) return kwvalues[i];
16835 }
16836 for (i = 0; i < n; i++)
16837 {
16838 PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
16839 #if !CYTHON_ASSUME_SAFE_MACROS
16840 if (unlikely(!namei)) return NULL;
16841 #endif
16842 int eq = __Pyx_PyUnicode_Equals(s, namei);
16843 if (unlikely(eq != 0)) {
16844 if (unlikely(eq < 0)) return NULL;
16845 return kwvalues[i];
16846 }
16847 }
16848 return NULL;
16849}
16850#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL
16851CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
16852 Py_ssize_t i, nkwargs;
16853 PyObject *dict;
16854#if !CYTHON_ASSUME_SAFE_SIZE
16855 nkwargs = PyTuple_Size(kwnames);
16856 if (unlikely(nkwargs < 0)) return NULL;
16857#else
16858 nkwargs = PyTuple_GET_SIZE(kwnames);
16859#endif
16860 dict = PyDict_New();
16861 if (unlikely(!dict))
16862 return NULL;
16863 for (i=0; i<nkwargs; i++) {
16864#if !CYTHON_ASSUME_SAFE_MACROS
16865 PyObject *key = PyTuple_GetItem(kwnames, i);
16866 if (!key) goto bad;
16867#else
16868 PyObject *key = PyTuple_GET_ITEM(kwnames, i);
16869#endif
16870 if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
16871 goto bad;
16872 }
16873 return dict;
16874bad:
16875 Py_DECREF(dict);
16876 return NULL;
16877}
16878#endif
16879#endif
16880
16881/* RaiseArgTupleInvalid */
16882static void __Pyx_RaiseArgtupleInvalid(
16883 const char* func_name,
16884 int exact,
16885 Py_ssize_t num_min,
16886 Py_ssize_t num_max,
16887 Py_ssize_t num_found)
16888{
16889 Py_ssize_t num_expected;
16890 const char *more_or_less;
16891 if (num_found < num_min) {
16892 num_expected = num_min;
16893 more_or_less = "at least";
16894 } else {
16895 num_expected = num_max;
16896 more_or_less = "at most";
16897 }
16898 if (exact) {
16899 more_or_less = "exactly";
16900 }
16901 PyErr_Format(PyExc_TypeError,
16902 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
16903 func_name, more_or_less, num_expected,
16904 (num_expected == 1) ? "" : "s", num_found);
16905}
16906
16907/* PyObjectCallOneArg (used by CallUnboundCMethod0) */
16908static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
16909 PyObject *args[2] = {NULL, arg};
16910 return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
16911}
16912
16913/* IgnoreException (used by UnpackUnboundCMethod_impl) */
16914static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception) {
16915 if (PyErr_GivenExceptionMatches(given_exception ? given_exception : PyErr_Occurred(), ignorable_exception)) {
16916 PyErr_Clear();
16917 return 1;
16918 }
16919 return 0;
16920}
16921
16922/* PyObjectGetAttrStr (used by UnpackUnboundCMethod_impl) */
16923#if CYTHON_USE_TYPE_SLOTS
16924static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
16925 PyTypeObject* tp = Py_TYPE(obj);
16926 if (likely(tp->tp_getattro))
16927 return tp->tp_getattro(obj, attr_name);
16928 return PyObject_GetAttr(obj, attr_name);
16929}
16930#endif
16931
16932/* UnpackUnboundCMethod_impl (used by UnpackUnboundCMethod) */
16933#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
16934static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
16935 PyObject *result;
16936 PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
16937 if (unlikely(!selfless_args)) return NULL;
16938 result = PyObject_Call(method, selfless_args, kwargs);
16939 Py_DECREF(selfless_args);
16940 return result;
16941}
16942#else
16943static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
16944 return PyObject_Vectorcall(method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
16945}
16946#endif
16947static PyMethodDef __Pyx_UnboundCMethod_Def = {
16948 "CythonUnboundCMethod",
16949 __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
16950#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
16951 METH_VARARGS | METH_KEYWORDS,
16952#else
16953 METH_FASTCALL | METH_KEYWORDS,
16954#endif
16955 NULL
16956};
16957static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
16958 PyObject *method, *result=NULL;
16959 method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
16960 if (unlikely(!method))
16961 return -1;
16962 result = method;
16963#if CYTHON_COMPILING_IN_CPYTHON
16964 if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
16965 {
16966 PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
16967 target->func = descr->d_method->ml_meth;
16968 target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
16969 } else
16970#endif
16971#if CYTHON_COMPILING_IN_PYPY
16972#else
16973 if (PyCFunction_Check(method))
16974#endif
16975 {
16976 PyObject *self;
16977 int self_found;
16978#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
16979 self = PyObject_GetAttrString(method, "__self__");
16980 if (!self && !__Pyx_IgnoreException(PyExc_AttributeError)) {
16981 return -1;
16982 }
16983#else
16984 self = PyCFunction_GET_SELF(method);
16985#endif
16986 self_found = (self && self != Py_None);
16987#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
16988 Py_XDECREF(self);
16989#endif
16990 if (self_found) {
16991 PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
16992 if (unlikely(!unbound_method)) return -1;
16993 Py_DECREF(method);
16994 result = unbound_method;
16995 }
16996 }
16997#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
16998 if (unlikely(target->method)) {
16999 Py_DECREF(result);
17000 } else
17001#endif
17002 target->method = result;
17003 return 0;
17004}
17005
17006/* CallUnboundCMethod0 */
17007#if CYTHON_COMPILING_IN_CPYTHON
17008static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
17009 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
17010 if (likely(was_initialized == 2 && cfunc->func)) {
17011 if (likely(cfunc->flag == METH_NOARGS))
17012 return __Pyx_CallCFunction(cfunc, self, NULL);
17013 if (likely(cfunc->flag == METH_FASTCALL))
17014 return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
17015 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
17016 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
17017 if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
17018 return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
17019 if (cfunc->flag == METH_VARARGS)
17020 return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
17021 return __Pyx__CallUnboundCMethod0(cfunc, self);
17022 }
17023#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
17024 else if (unlikely(was_initialized == 1)) {
17025 __Pyx_CachedCFunction tmp_cfunc = {
17026#ifndef __cplusplus
17027 0
17028#endif
17029 };
17030 tmp_cfunc.type = cfunc->type;
17031 tmp_cfunc.method_name = cfunc->method_name;
17032 return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
17033 }
17034#endif
17035 PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
17036 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
17037 return result;
17038}
17039#endif
17040static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
17041 PyObject *result;
17042 if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
17043 result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
17044 return result;
17045}
17046
17047/* py_dict_items (used by OwnedDictNext) */
17048static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
17049 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
17050}
17051
17052/* py_dict_values (used by OwnedDictNext) */
17053static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
17054 return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
17055}
17056
17057/* OwnedDictNext (used by RejectKeywords) */
17058#if CYTHON_AVOID_BORROWED_REFS
17059static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
17060 PyObject *next = NULL;
17061 if (!*ppos) {
17062 if (pvalue) {
17063 PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
17064 if (unlikely(!dictview)) goto bad;
17065 *ppos = PyObject_GetIter(dictview);
17066 Py_DECREF(dictview);
17067 } else {
17068 *ppos = PyObject_GetIter(p);
17069 }
17070 if (unlikely(!*ppos)) goto bad;
17071 }
17072 next = PyIter_Next(*ppos);
17073 if (!next) {
17074 if (PyErr_Occurred()) goto bad;
17075 return 0;
17076 }
17077 if (pkey && pvalue) {
17078 *pkey = __Pyx_PySequence_ITEM(next, 0);
17079 if (unlikely(*pkey)) goto bad;
17080 *pvalue = __Pyx_PySequence_ITEM(next, 1);
17081 if (unlikely(*pvalue)) goto bad;
17082 Py_DECREF(next);
17083 } else if (pkey) {
17084 *pkey = next;
17085 } else {
17086 assert(pvalue);
17087 *pvalue = next;
17088 }
17089 return 1;
17090 bad:
17091 Py_XDECREF(next);
17092#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
17093 PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
17094#else
17095 PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
17096#endif
17097 if (pkey) *pkey = NULL;
17098 if (pvalue) *pvalue = NULL;
17099 return 0;
17100}
17101#else // !CYTHON_AVOID_BORROWED_REFS
17102static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
17103 int result = PyDict_Next(p, ppos, pkey, pvalue);
17104 if (likely(result == 1)) {
17105 if (pkey) Py_INCREF(*pkey);
17106 if (pvalue) Py_INCREF(*pvalue);
17107 }
17108 return result;
17109}
17110#endif
17111
17112/* RejectKeywords */
17113static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
17114 PyObject *key = NULL;
17115 if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds))) {
17116 key = __Pyx_PySequence_ITEM(kwds, 0);
17117 } else {
17118#if CYTHON_AVOID_BORROWED_REFS
17119 PyObject *pos = NULL;
17120#else
17121 Py_ssize_t pos = 0;
17122#endif
17123#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
17124 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
17125#endif
17126 __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL);
17127#if CYTHON_AVOID_BORROWED_REFS
17128 Py_XDECREF(pos);
17129#endif
17130 }
17131 if (likely(key)) {
17132 PyErr_Format(PyExc_TypeError,
17133 "%s() got an unexpected keyword argument '%U'",
17134 function_name, key);
17135 Py_DECREF(key);
17136 }
17137}
17138
17139/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
17140static void __Pyx_RaiseDoubleKeywordsError(
17141 const char* func_name,
17142 PyObject* kw_name)
17143{
17144 PyErr_Format(PyExc_TypeError,
17145 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
17146}
17147
17148/* CallUnboundCMethod2 */
17149#if CYTHON_COMPILING_IN_CPYTHON
17150static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
17151 int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
17152 if (likely(was_initialized == 2 && cfunc->func)) {
17153 PyObject *args[2] = {arg1, arg2};
17154 if (cfunc->flag == METH_FASTCALL) {
17155 return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
17156 }
17157 if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
17158 return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
17159 }
17160#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
17161 else if (unlikely(was_initialized == 1)) {
17162 __Pyx_CachedCFunction tmp_cfunc = {
17163#ifndef __cplusplus
17164 0
17165#endif
17166 };
17167 tmp_cfunc.type = cfunc->type;
17168 tmp_cfunc.method_name = cfunc->method_name;
17169 return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
17170 }
17171#endif
17172 PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
17173 __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
17174 return result;
17175}
17176#endif
17177static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
17178 if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
17179#if CYTHON_COMPILING_IN_CPYTHON
17180 if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
17181 PyObject *result = NULL;
17182 PyObject *args = PyTuple_New(2);
17183 if (unlikely(!args)) return NULL;
17184 Py_INCREF(arg1);
17185 PyTuple_SET_ITEM(args, 0, arg1);
17186 Py_INCREF(arg2);
17187 PyTuple_SET_ITEM(args, 1, arg2);
17188 if (cfunc->flag & METH_KEYWORDS)
17189 result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
17190 else
17191 result = __Pyx_CallCFunction(cfunc, self, args);
17192 Py_DECREF(args);
17193 return result;
17194 }
17195#endif
17196 {
17197 PyObject *args[4] = {NULL, self, arg1, arg2};
17198 return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
17199 }
17200}
17201
17202/* ParseKeywordsImpl (used by ParseKeywords) */
17203static int __Pyx_ValidateDuplicatePosArgs(
17204 PyObject *kwds,
17205 PyObject ** const argnames[],
17206 PyObject ** const *first_kw_arg,
17207 const char* function_name)
17208{
17209 PyObject ** const *name = argnames;
17210 while (name != first_kw_arg) {
17211 PyObject *key = **name;
17212 int found = PyDict_Contains(kwds, key);
17213 if (unlikely(found)) {
17214 if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
17215 goto bad;
17216 }
17217 name++;
17218 }
17219 return 0;
17220bad:
17221 return -1;
17222}
17223#if CYTHON_USE_UNICODE_INTERNALS
17224static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
17225 int kind;
17226 Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
17227 if (len != PyUnicode_GET_LENGTH(s2)) return 0;
17228 kind = PyUnicode_KIND(s1);
17229 if (kind != PyUnicode_KIND(s2)) return 0;
17230 const void *data1 = PyUnicode_DATA(s1);
17231 const void *data2 = PyUnicode_DATA(s2);
17232 return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
17233}
17234#endif
17235static int __Pyx_MatchKeywordArg_str(
17236 PyObject *key,
17237 PyObject ** const argnames[],
17238 PyObject ** const *first_kw_arg,
17239 size_t *index_found,
17240 const char *function_name)
17241{
17242 PyObject ** const *name;
17243 #if CYTHON_USE_UNICODE_INTERNALS
17244 Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
17245 if (unlikely(key_hash == -1)) {
17246 key_hash = PyObject_Hash(key);
17247 if (unlikely(key_hash == -1))
17248 goto bad;
17249 }
17250 #endif
17251 name = first_kw_arg;
17252 while (*name) {
17253 PyObject *name_str = **name;
17254 #if CYTHON_USE_UNICODE_INTERNALS
17255 if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
17256 *index_found = (size_t) (name - argnames);
17257 return 1;
17258 }
17259 #else
17260 #if CYTHON_ASSUME_SAFE_SIZE
17261 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
17262 #endif
17263 {
17264 int cmp = PyUnicode_Compare(name_str, key);
17265 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
17266 if (cmp == 0) {
17267 *index_found = (size_t) (name - argnames);
17268 return 1;
17269 }
17270 }
17271 #endif
17272 name++;
17273 }
17274 name = argnames;
17275 while (name != first_kw_arg) {
17276 PyObject *name_str = **name;
17277 #if CYTHON_USE_UNICODE_INTERNALS
17278 if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
17279 if (__Pyx_UnicodeKeywordsEqual(name_str, key))
17280 goto arg_passed_twice;
17281 }
17282 #else
17283 #if CYTHON_ASSUME_SAFE_SIZE
17284 if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
17285 #endif
17286 {
17287 if (unlikely(name_str == key)) goto arg_passed_twice;
17288 int cmp = PyUnicode_Compare(name_str, key);
17289 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
17290 if (cmp == 0) goto arg_passed_twice;
17291 }
17292 #endif
17293 name++;
17294 }
17295 return 0;
17296arg_passed_twice:
17297 __Pyx_RaiseDoubleKeywordsError(function_name, key);
17298 goto bad;
17299bad:
17300 return -1;
17301}
17302static int __Pyx_MatchKeywordArg_nostr(
17303 PyObject *key,
17304 PyObject ** const argnames[],
17305 PyObject ** const *first_kw_arg,
17306 size_t *index_found,
17307 const char *function_name)
17308{
17309 PyObject ** const *name;
17310 if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
17311 name = first_kw_arg;
17312 while (*name) {
17313 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
17314 if (cmp == 1) {
17315 *index_found = (size_t) (name - argnames);
17316 return 1;
17317 }
17318 if (unlikely(cmp == -1)) goto bad;
17319 name++;
17320 }
17321 name = argnames;
17322 while (name != first_kw_arg) {
17323 int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
17324 if (unlikely(cmp != 0)) {
17325 if (cmp == 1) goto arg_passed_twice;
17326 else goto bad;
17327 }
17328 name++;
17329 }
17330 return 0;
17331arg_passed_twice:
17332 __Pyx_RaiseDoubleKeywordsError(function_name, key);
17333 goto bad;
17334invalid_keyword_type:
17335 PyErr_Format(PyExc_TypeError,
17336 "%.200s() keywords must be strings", function_name);
17337 goto bad;
17338bad:
17339 return -1;
17340}
17341static CYTHON_INLINE int __Pyx_MatchKeywordArg(
17342 PyObject *key,
17343 PyObject ** const argnames[],
17344 PyObject ** const *first_kw_arg,
17345 size_t *index_found,
17346 const char *function_name)
17347{
17348 return likely(PyUnicode_CheckExact(key)) ?
17349 __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
17350 __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
17351}
17352static void __Pyx_RejectUnknownKeyword(
17353 PyObject *kwds,
17354 PyObject ** const argnames[],
17355 PyObject ** const *first_kw_arg,
17356 const char *function_name)
17357{
17358 #if CYTHON_AVOID_BORROWED_REFS
17359 PyObject *pos = NULL;
17360 #else
17361 Py_ssize_t pos = 0;
17362 #endif
17363 PyObject *key = NULL;
17364 __Pyx_BEGIN_CRITICAL_SECTION(kwds);
17365 #if CYTHON_AVOID_BORROWED_REFS
17366 while (__Pyx_PyDict_NextRef(kwds, &pos, &key, NULL))
17367 #else
17368 (void) __Pyx_PyDict_NextRef;
17369 while (PyDict_Next(kwds, &pos, &key, NULL))
17370 #endif
17371 {
17372 PyObject** const *name = first_kw_arg;
17373 while (*name && (**name != key)) name++;
17374 if (!*name) {
17375 size_t index_found = 0;
17376 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
17377 if (cmp != 1) {
17378 if (cmp == 0) {
17379 PyErr_Format(PyExc_TypeError,
17380 "%s() got an unexpected keyword argument '%U'",
17381 function_name, key);
17382 }
17383 #if CYTHON_AVOID_BORROWED_REFS
17384 Py_DECREF(key);
17385 #endif
17386 break;
17387 }
17388 }
17389 #if CYTHON_AVOID_BORROWED_REFS
17390 Py_DECREF(key);
17391 #endif
17392 }
17393 __Pyx_END_CRITICAL_SECTION();
17394 #if CYTHON_AVOID_BORROWED_REFS
17395 Py_XDECREF(pos);
17396 #endif
17397 assert(PyErr_Occurred());
17398}
17399static int __Pyx_ParseKeywordDict(
17400 PyObject *kwds,
17401 PyObject ** const argnames[],
17402 PyObject *values[],
17403 Py_ssize_t num_pos_args,
17404 Py_ssize_t num_kwargs,
17405 const char* function_name,
17406 int ignore_unknown_kwargs)
17407{
17408 PyObject** const *name;
17409 PyObject** const *first_kw_arg = argnames + num_pos_args;
17410 Py_ssize_t extracted = 0;
17411#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
17412 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
17413#endif
17414 name = first_kw_arg;
17415 while (*name && num_kwargs > extracted) {
17416 PyObject * key = **name;
17417 PyObject *value;
17418 int found = 0;
17419 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
17420 found = PyDict_GetItemRef(kwds, key, &value);
17421 #else
17422 value = PyDict_GetItemWithError(kwds, key);
17423 if (value) {
17424 Py_INCREF(value);
17425 found = 1;
17426 } else {
17427 if (unlikely(PyErr_Occurred())) goto bad;
17428 }
17429 #endif
17430 if (found) {
17431 if (unlikely(found < 0)) goto bad;
17432 values[name-argnames] = value;
17433 extracted++;
17434 }
17435 name++;
17436 }
17437 if (num_kwargs > extracted) {
17438 if (ignore_unknown_kwargs) {
17439 if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
17440 goto bad;
17441 } else {
17442 __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
17443 goto bad;
17444 }
17445 }
17446 return 0;
17447bad:
17448 return -1;
17449}
17450static int __Pyx_ParseKeywordDictToDict(
17451 PyObject *kwds,
17452 PyObject ** const argnames[],
17453 PyObject *kwds2,
17454 PyObject *values[],
17455 Py_ssize_t num_pos_args,
17456 const char* function_name)
17457{
17458 PyObject** const *name;
17459 PyObject** const *first_kw_arg = argnames + num_pos_args;
17460 Py_ssize_t len;
17461#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
17462 if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
17463#endif
17464 if (PyDict_Update(kwds2, kwds) < 0) goto bad;
17465 name = first_kw_arg;
17466 while (*name) {
17467 PyObject *key = **name;
17468 PyObject *value;
17469#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
17470 int found = PyDict_Pop(kwds2, key, &value);
17471 if (found) {
17472 if (unlikely(found < 0)) goto bad;
17473 values[name-argnames] = value;
17474 }
17475#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
17476 int found = PyDict_GetItemRef(kwds2, key, &value);
17477 if (found) {
17478 if (unlikely(found < 0)) goto bad;
17479 values[name-argnames] = value;
17480 if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
17481 }
17482#else
17483 #if CYTHON_COMPILING_IN_CPYTHON
17484 value = _PyDict_Pop(kwds2, key, kwds2);
17485 #else
17486 value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
17487 #endif
17488 if (value == kwds2) {
17489 Py_DECREF(value);
17490 } else {
17491 if (unlikely(!value)) goto bad;
17492 values[name-argnames] = value;
17493 }
17494#endif
17495 name++;
17496 }
17497 len = PyDict_Size(kwds2);
17498 if (len > 0) {
17499 return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
17500 } else if (unlikely(len == -1)) {
17501 goto bad;
17502 }
17503 return 0;
17504bad:
17505 return -1;
17506}
17507static int __Pyx_ParseKeywordsTuple(
17508 PyObject *kwds,
17509 PyObject * const *kwvalues,
17510 PyObject ** const argnames[],
17511 PyObject *kwds2,
17512 PyObject *values[],
17513 Py_ssize_t num_pos_args,
17514 Py_ssize_t num_kwargs,
17515 const char* function_name,
17516 int ignore_unknown_kwargs)
17517{
17518 PyObject *key = NULL;
17519 PyObject** const * name;
17520 PyObject** const *first_kw_arg = argnames + num_pos_args;
17521 for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
17522#if CYTHON_AVOID_BORROWED_REFS
17523 key = __Pyx_PySequence_ITEM(kwds, pos);
17524#else
17525 key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
17526#endif
17527#if !CYTHON_ASSUME_SAFE_MACROS
17528 if (unlikely(!key)) goto bad;
17529#endif
17530 name = first_kw_arg;
17531 while (*name && (**name != key)) name++;
17532 if (*name) {
17533 PyObject *value = kwvalues[pos];
17534 values[name-argnames] = __Pyx_NewRef(value);
17535 } else {
17536 size_t index_found = 0;
17537 int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
17538 if (cmp == 1) {
17539 PyObject *value = kwvalues[pos];
17540 values[index_found] = __Pyx_NewRef(value);
17541 } else {
17542 if (unlikely(cmp == -1)) goto bad;
17543 if (kwds2) {
17544 PyObject *value = kwvalues[pos];
17545 if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
17546 } else if (!ignore_unknown_kwargs) {
17547 goto invalid_keyword;
17548 }
17549 }
17550 }
17551 #if CYTHON_AVOID_BORROWED_REFS
17552 Py_DECREF(key);
17553 key = NULL;
17554 #endif
17555 }
17556 return 0;
17557invalid_keyword:
17558 PyErr_Format(PyExc_TypeError,
17559 "%s() got an unexpected keyword argument '%U'",
17560 function_name, key);
17561 goto bad;
17562bad:
17563 #if CYTHON_AVOID_BORROWED_REFS
17564 Py_XDECREF(key);
17565 #endif
17566 return -1;
17567}
17568
17569/* ParseKeywords */
17570static int __Pyx_ParseKeywords(
17571 PyObject *kwds,
17572 PyObject * const *kwvalues,
17573 PyObject ** const argnames[],
17574 PyObject *kwds2,
17575 PyObject *values[],
17576 Py_ssize_t num_pos_args,
17577 Py_ssize_t num_kwargs,
17578 const char* function_name,
17579 int ignore_unknown_kwargs)
17580{
17581 if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds)))
17582 return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
17583 else if (kwds2)
17584 return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
17585 else
17586 return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
17587}
17588
17589/* ArgTypeTestError (used by ArgTypeTest) */
17590static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact)
17591{
17592 __Pyx_TypeName type_name;
17593 __Pyx_TypeName obj_type_name;
17594 PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
17595 int from_annotation_subclass = 0;
17596 if (unlikely(!type)) {
17597 PyErr_SetString(PyExc_SystemError, "Missing type object");
17598 return;
17599 } else if (exact == 2) {
17600 if (__Pyx_TypeCheck(obj, type)) {
17601 from_annotation_subclass = 1;
17602 extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
17603 }
17604 }
17605 type_name = __Pyx_PyType_GetFullyQualifiedName(type);
17606 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
17607 if (unlikely(!type_name)) return;
17608 #endif
17609 obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
17610 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
17611 if (unlikely(!obj_type_name)) goto obj_type_name_failed;
17612 #endif
17613 PyErr_Format(PyExc_TypeError,
17614 "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME ", got " __Pyx_FMT_TYPENAME ")"
17615#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
17616 "%s%U"
17617#endif
17618 , name, type_name, obj_type_name
17619#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
17620 , (from_annotation_subclass ? ". " : ""), extra_info
17621#endif
17622 );
17623#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
17624 if (exact == 2 && from_annotation_subclass) {
17625 PyObject *res;
17626 PyObject *vargs[2];
17627 vargs[0] = PyErr_GetRaisedException();
17628 vargs[1] = extra_info;
17629 res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
17630 Py_XDECREF(res);
17631 PyErr_SetRaisedException(vargs[0]);
17632 }
17633#endif
17634 __Pyx_DECREF_TypeName(obj_type_name);
17635#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
17636obj_type_name_failed:
17637#endif
17638 __Pyx_DECREF_TypeName(type_name);
17639 return;
17640}
17641
17642/* ArgTypeTest */
17643static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) {
17644 if (likely(Py_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None))))
17645 return 1;
17646 if (!exact && likely(type) && likely(__Pyx_TypeCheck(obj, type)))
17647 return 1;
17648 __Pyx_ArgTypeError(obj, type, name, exact);
17649 return 0;
17650}
17651
17652/* IsLittleEndian (used by BufferFormatCheck) */
17653static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
17654{
17655 union {
17656 uint32_t u32;
17657 uint8_t u8[4];
17658 } S;
17659 S.u32 = 0x01020304;
17660 return S.u8[0] == 4;
17661}
17662
17663/* BufferFormatCheck (used by BufferGetAndValidate) */
17664static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
17665 __Pyx_BufFmt_StackElem* stack,
17666 const __Pyx_TypeInfo* type) {
17667 stack[0].field = &ctx->root;
17668 stack[0].parent_offset = 0;
17669 ctx->root.type = type;
17670 ctx->root.name = "buffer dtype";
17671 ctx->root.offset = 0;
17672 ctx->head = stack;
17673 ctx->head->field = &ctx->root;
17674 ctx->fmt_offset = 0;
17675 ctx->head->parent_offset = 0;
17676 ctx->new_packmode = '@';
17677 ctx->enc_packmode = '@';
17678 ctx->new_count = 1;
17679 ctx->enc_count = 0;
17680 ctx->enc_type = 0;
17681 ctx->is_complex = 0;
17682 ctx->is_valid_array = 0;
17683 ctx->struct_alignment = 0;
17684 while (type->typegroup == 'S') {
17685 ++ctx->head;
17686 ctx->head->field = type->fields;
17687 ctx->head->parent_offset = 0;
17688 type = type->fields->type;
17689 }
17690}
17691static int __Pyx_BufFmt_ParseNumber(const char** ts) {
17692 int count;
17693 const char* t = *ts;
17694 if (*t < '0' || *t > '9') {
17695 return -1;
17696 } else {
17697 count = *t++ - '0';
17698 while (*t >= '0' && *t <= '9') {
17699 count *= 10;
17700 count += *t++ - '0';
17701 }
17702 }
17703 *ts = t;
17704 return count;
17705}
17706static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
17707 int number = __Pyx_BufFmt_ParseNumber(ts);
17708 if (number == -1)
17709 PyErr_Format(PyExc_ValueError,\
17710 "Does not understand character buffer dtype format string ('%c')", **ts);
17711 return number;
17712}
17713static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
17714 PyErr_Format(PyExc_ValueError,
17715 "Unexpected format string character: '%c'", ch);
17716}
17717static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
17718 switch (ch) {
17719 case '?': return "'bool'";
17720 case 'c': return "'char'";
17721 case 'b': return "'signed char'";
17722 case 'B': return "'unsigned char'";
17723 case 'h': return "'short'";
17724 case 'H': return "'unsigned short'";
17725 case 'i': return "'int'";
17726 case 'I': return "'unsigned int'";
17727 case 'l': return "'long'";
17728 case 'L': return "'unsigned long'";
17729 case 'q': return "'long long'";
17730 case 'Q': return "'unsigned long long'";
17731 case 'f': return (is_complex ? "'complex float'" : "'float'");
17732 case 'd': return (is_complex ? "'complex double'" : "'double'");
17733 case 'g': return (is_complex ? "'complex long double'" : "'long double'");
17734 case 'T': return "a struct";
17735 case 'O': return "Python object";
17736 case 'P': return "a pointer";
17737 case 's': case 'p': return "a string";
17738 case 0: return "end";
17739 default: return "unparsable format string";
17740 }
17741}
17742static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
17743 switch (ch) {
17744 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
17745 case 'h': case 'H': return 2;
17746 case 'i': case 'I': case 'l': case 'L': return 4;
17747 case 'q': case 'Q': return 8;
17748 case 'f': return (is_complex ? 8 : 4);
17749 case 'd': return (is_complex ? 16 : 8);
17750 case 'g': {
17751 PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
17752 return 0;
17753 }
17754 case 'O': case 'P': return sizeof(void*);
17755 default:
17756 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
17757 return 0;
17758 }
17759}
17760static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
17761 switch (ch) {
17762 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
17763 case 'h': case 'H': return sizeof(short);
17764 case 'i': case 'I': return sizeof(int);
17765 case 'l': case 'L': return sizeof(long);
17766 case 'q': case 'Q': return sizeof(PY_LONG_LONG);
17767 case 'f': return sizeof(float) * (is_complex ? 2 : 1);
17768 case 'd': return sizeof(double) * (is_complex ? 2 : 1);
17769 case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
17770 case 'O': case 'P': return sizeof(void*);
17771 default: {
17772 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
17773 return 0;
17774 }
17775 }
17776}
17777typedef struct { char c; short x; } __Pyx_st_short;
17778typedef struct { char c; int x; } __Pyx_st_int;
17779typedef struct { char c; long x; } __Pyx_st_long;
17780typedef struct { char c; float x; } __Pyx_st_float;
17781typedef struct { char c; double x; } __Pyx_st_double;
17782typedef struct { char c; long double x; } __Pyx_st_longdouble;
17783typedef struct { char c; void *x; } __Pyx_st_void_p;
17784typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
17785static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
17786 CYTHON_UNUSED_VAR(is_complex);
17787 switch (ch) {
17788 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
17789 case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
17790 case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
17791 case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
17792 case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
17793 case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
17794 case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
17795 case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
17796 case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
17797 default:
17798 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
17799 return 0;
17800 }
17801}
17802/* These are for computing the padding at the end of the struct to align
17803 on the first member of the struct. This will probably the same as above,
17804 but we don't have any guarantees.
17805 */
17806typedef struct { short x; char c; } __Pyx_pad_short;
17807typedef struct { int x; char c; } __Pyx_pad_int;
17808typedef struct { long x; char c; } __Pyx_pad_long;
17809typedef struct { float x; char c; } __Pyx_pad_float;
17810typedef struct { double x; char c; } __Pyx_pad_double;
17811typedef struct { long double x; char c; } __Pyx_pad_longdouble;
17812typedef struct { void *x; char c; } __Pyx_pad_void_p;
17813typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
17814static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
17815 CYTHON_UNUSED_VAR(is_complex);
17816 switch (ch) {
17817 case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
17818 case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
17819 case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
17820 case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
17821 case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
17822 case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
17823 case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
17824 case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
17825 case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
17826 default:
17827 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
17828 return 0;
17829 }
17830}
17831static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
17832 switch (ch) {
17833 case 'c':
17834 return 'H';
17835 case 'b': case 'h': case 'i':
17836 case 'l': case 'q': case 's': case 'p':
17837 return 'I';
17838 case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
17839 return 'U';
17840 case 'f': case 'd': case 'g':
17841 return (is_complex ? 'C' : 'R');
17842 case 'O':
17843 return 'O';
17844 case 'P':
17845 return 'P';
17846 default: {
17847 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
17848 return 0;
17849 }
17850 }
17851}
17852static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
17853 if (ctx->head == NULL || ctx->head->field == &ctx->root) {
17854 const char* expected;
17855 const char* quote;
17856 if (ctx->head == NULL) {
17857 expected = "end";
17858 quote = "";
17859 } else {
17860 expected = ctx->head->field->type->name;
17861 quote = "'";
17862 }
17863 PyErr_Format(PyExc_ValueError,
17864 "Buffer dtype mismatch, expected %s%s%s but got %s",
17865 quote, expected, quote,
17866 __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
17867 } else {
17868 const __Pyx_StructField* field = ctx->head->field;
17869 const __Pyx_StructField* parent = (ctx->head - 1)->field;
17870 PyErr_Format(PyExc_ValueError,
17871 "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
17872 field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
17873 parent->type->name, field->name);
17874 }
17875}
17876static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
17877 char group;
17878 size_t size, offset, arraysize = 1;
17879 if (ctx->enc_type == 0) return 0;
17880 if (ctx->head->field->type->arraysize[0]) {
17881 int i, ndim = 0;
17882 if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
17883 ctx->is_valid_array = ctx->head->field->type->ndim == 1;
17884 ndim = 1;
17885 if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
17886 PyErr_Format(PyExc_ValueError,
17887 "Expected a dimension of size %zu, got %zu",
17888 ctx->head->field->type->arraysize[0], ctx->enc_count);
17889 return -1;
17890 }
17891 }
17892 if (!ctx->is_valid_array) {
17893 PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
17894 ctx->head->field->type->ndim, ndim);
17895 return -1;
17896 }
17897 for (i = 0; i < ctx->head->field->type->ndim; i++) {
17898 arraysize *= ctx->head->field->type->arraysize[i];
17899 }
17900 ctx->is_valid_array = 0;
17901 ctx->enc_count = 1;
17902 }
17903 group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
17904 do {
17905 const __Pyx_StructField* field = ctx->head->field;
17906 const __Pyx_TypeInfo* type = field->type;
17907 if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
17908 size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
17909 } else {
17910 size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
17911 }
17912 if (ctx->enc_packmode == '@') {
17913 size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
17914 size_t align_mod_offset;
17915 if (align_at == 0) return -1;
17916 align_mod_offset = ctx->fmt_offset % align_at;
17917 if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
17918 if (ctx->struct_alignment == 0)
17919 ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
17920 ctx->is_complex);
17921 }
17922 if (type->size != size || type->typegroup != group) {
17923 if (type->typegroup == 'C' && type->fields != NULL) {
17924 size_t parent_offset = ctx->head->parent_offset + field->offset;
17925 ++ctx->head;
17926 ctx->head->field = type->fields;
17927 ctx->head->parent_offset = parent_offset;
17928 continue;
17929 }
17930 if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
17931 } else {
17932 __Pyx_BufFmt_RaiseExpected(ctx);
17933 return -1;
17934 }
17935 }
17936 offset = ctx->head->parent_offset + field->offset;
17937 if (ctx->fmt_offset != offset) {
17938 PyErr_Format(PyExc_ValueError,
17939 "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
17940 (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
17941 return -1;
17942 }
17943 ctx->fmt_offset += size;
17944 if (arraysize)
17945 ctx->fmt_offset += (arraysize - 1) * size;
17946 --ctx->enc_count;
17947 while (1) {
17948 if (field == &ctx->root) {
17949 ctx->head = NULL;
17950 if (ctx->enc_count != 0) {
17951 __Pyx_BufFmt_RaiseExpected(ctx);
17952 return -1;
17953 }
17954 break;
17955 }
17956 ctx->head->field = ++field;
17957 if (field->type == NULL) {
17958 --ctx->head;
17959 field = ctx->head->field;
17960 continue;
17961 } else if (field->type->typegroup == 'S') {
17962 size_t parent_offset = ctx->head->parent_offset + field->offset;
17963 if (field->type->fields->type == NULL) continue;
17964 field = field->type->fields;
17965 ++ctx->head;
17966 ctx->head->field = field;
17967 ctx->head->parent_offset = parent_offset;
17968 break;
17969 } else {
17970 break;
17971 }
17972 }
17973 } while (ctx->enc_count);
17974 ctx->enc_type = 0;
17975 ctx->is_complex = 0;
17976 return 0;
17977}
17978static int
17979__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
17980{
17981 const char *ts = *tsp;
17982 int i = 0, number, ndim;
17983 ++ts;
17984 if (ctx->new_count != 1) {
17985 PyErr_SetString(PyExc_ValueError,
17986 "Cannot handle repeated arrays in format string");
17987 return -1;
17988 }
17989 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return -1;
17990 ndim = ctx->head->field->type->ndim;
17991 while (*ts && *ts != ')') {
17992 switch (*ts) {
17993 case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue;
17994 default: break;
17995 }
17996 number = __Pyx_BufFmt_ExpectNumber(&ts);
17997 if (number == -1) return -1;
17998 if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) {
17999 PyErr_Format(PyExc_ValueError,
18000 "Expected a dimension of size %zu, got %d",
18001 ctx->head->field->type->arraysize[i], number);
18002 return -1;
18003 }
18004 if (*ts != ',' && *ts != ')') {
18005 PyErr_Format(PyExc_ValueError,
18006 "Expected a comma in format string, got '%c'", *ts);
18007 return -1;
18008 }
18009 if (*ts == ',') ts++;
18010 i++;
18011 }
18012 if (i != ndim) {
18013 PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
18014 ctx->head->field->type->ndim, i);
18015 return -1;
18016 }
18017 if (!*ts) {
18018 PyErr_SetString(PyExc_ValueError,
18019 "Unexpected end of format string, expected ')'");
18020 return -1;
18021 }
18022 ctx->is_valid_array = 1;
18023 ctx->new_count = 1;
18024 *tsp = ++ts;
18025 return 0;
18026}
18027static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
18028 int got_Z = 0;
18029 while (1) {
18030 switch(*ts) {
18031 case 0:
18032 if (ctx->enc_type != 0 && ctx->head == NULL) {
18033 __Pyx_BufFmt_RaiseExpected(ctx);
18034 return NULL;
18035 }
18036 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
18037 if (ctx->head != NULL) {
18038 __Pyx_BufFmt_RaiseExpected(ctx);
18039 return NULL;
18040 }
18041 return ts;
18042 case ' ':
18043 case '\r':
18044 case '\n':
18045 ++ts;
18046 break;
18047 case '<':
18048 if (!__Pyx_Is_Little_Endian()) {
18049 PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
18050 return NULL;
18051 }
18052 ctx->new_packmode = '=';
18053 ++ts;
18054 break;
18055 case '>':
18056 case '!':
18057 if (__Pyx_Is_Little_Endian()) {
18058 PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
18059 return NULL;
18060 }
18061 ctx->new_packmode = '=';
18062 ++ts;
18063 break;
18064 case '=':
18065 case '@':
18066 case '^':
18067 ctx->new_packmode = *ts++;
18068 break;
18069 case 'T':
18070 {
18071 const char* ts_after_sub;
18072 size_t i, struct_count = ctx->new_count;
18073 size_t struct_alignment = ctx->struct_alignment;
18074 ctx->new_count = 1;
18075 ++ts;
18076 if (*ts != '\x7B') {
18077 PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '\x7B' after 'T'");
18078 return NULL;
18079 }
18080 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
18081 ctx->enc_type = 0;
18082 ctx->enc_count = 0;
18083 ctx->struct_alignment = 0;
18084 ++ts;
18085 ts_after_sub = ts;
18086 for (i = 0; i != struct_count; ++i) {
18087 ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
18088 if (!ts_after_sub) return NULL;
18089 }
18090 ts = ts_after_sub;
18091 if (struct_alignment) ctx->struct_alignment = struct_alignment;
18092 }
18093 break;
18094 case '\x7D':
18095 {
18096 size_t alignment = ctx->struct_alignment;
18097 ++ts;
18098 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
18099 ctx->enc_type = 0;
18100 if (alignment && ctx->fmt_offset % alignment) {
18101 ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
18102 }
18103 }
18104 return ts;
18105 case 'x':
18106 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
18107 ctx->fmt_offset += ctx->new_count;
18108 ctx->new_count = 1;
18109 ctx->enc_count = 0;
18110 ctx->enc_type = 0;
18111 ctx->enc_packmode = ctx->new_packmode;
18112 ++ts;
18113 break;
18114 case 'Z':
18115 got_Z = 1;
18116 ++ts;
18117 if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
18118 __Pyx_BufFmt_RaiseUnexpectedChar('Z');
18119 return NULL;
18120 }
18121 CYTHON_FALLTHROUGH;
18122 case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
18123 case 'l': case 'L': case 'q': case 'Q':
18124 case 'f': case 'd': case 'g':
18125 case 'O': case 'p':
18126 if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
18127 (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
18128 ctx->enc_count += ctx->new_count;
18129 ctx->new_count = 1;
18130 got_Z = 0;
18131 ++ts;
18132 break;
18133 }
18134 CYTHON_FALLTHROUGH;
18135 case 's':
18136 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
18137 ctx->enc_count = ctx->new_count;
18138 ctx->enc_packmode = ctx->new_packmode;
18139 ctx->enc_type = *ts;
18140 ctx->is_complex = got_Z;
18141 ++ts;
18142 ctx->new_count = 1;
18143 got_Z = 0;
18144 break;
18145 case ':':
18146 ++ts;
18147 while(*ts != ':') ++ts;
18148 ++ts;
18149 break;
18150 case '(':
18151 if (__pyx_buffmt_parse_array(ctx, &ts) < 0) return NULL;
18152 break;
18153 default:
18154 {
18155 int number = __Pyx_BufFmt_ExpectNumber(&ts);
18156 if (number == -1) return NULL;
18157 ctx->new_count = (size_t)number;
18158 }
18159 }
18160 }
18161}
18162
18163/* BufferGetAndValidate */
18164static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
18165 if (unlikely(info->buf == NULL)) return;
18166 if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
18167 PyBuffer_Release(info);
18168}
18169static void __Pyx_ZeroBuffer(Py_buffer* buf) {
18170 buf->buf = NULL;
18171 buf->obj = NULL;
18172 buf->strides = __Pyx_zeros;
18173 buf->shape = __Pyx_zeros;
18174 buf->suboffsets = __Pyx_minusones;
18175}
18176static int __Pyx__GetBufferAndValidate(
18177 Py_buffer* buf, PyObject* obj, const __Pyx_TypeInfo* dtype, int flags,
18178 int nd, int cast, __Pyx_BufFmt_StackElem* stack)
18179{
18180 buf->buf = NULL;
18181 if (unlikely(PyObject_GetBuffer(obj, buf, flags) == -1)) {
18182 __Pyx_ZeroBuffer(buf);
18183 return -1;
18184 }
18185 if (unlikely(buf->ndim != nd)) {
18186 PyErr_Format(PyExc_ValueError,
18187 "Buffer has wrong number of dimensions (expected %d, got %d)",
18188 nd, buf->ndim);
18189 goto fail;
18190 }
18191 if (!cast) {
18192 __Pyx_BufFmt_Context ctx;
18193 __Pyx_BufFmt_Init(&ctx, stack, dtype);
18194 if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
18195 }
18196 if (unlikely((size_t)buf->itemsize != dtype->size)) {
18197 PyErr_Format(PyExc_ValueError,
18198 "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
18199 buf->itemsize, (buf->itemsize > 1) ? "s" : "",
18200 dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
18201 goto fail;
18202 }
18203 if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
18204 return 0;
18205fail:;
18206 __Pyx_SafeReleaseBuffer(buf);
18207 return -1;
18208}
18209
18210/* PyObjectGetAttrStrNoError (used by GetBuiltinName) */
18211#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
18212static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
18213 __Pyx_PyThreadState_declare
18214 __Pyx_PyThreadState_assign
18215 if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
18216 __Pyx_PyErr_Clear();
18217}
18218#endif
18219static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
18220 PyObject *result;
18221#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
18222 (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
18223 return result;
18224#else
18225#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
18226 PyTypeObject* tp = Py_TYPE(obj);
18227 if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
18228 return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
18229 }
18230#endif
18231 result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
18232 if (unlikely(!result)) {
18233 __Pyx_PyObject_GetAttrStr_ClearAttributeError();
18234 }
18235 return result;
18236#endif
18237}
18238
18239/* GetBuiltinName (used by GetModuleGlobalName) */
18240static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
18241 PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);
18242 if (unlikely(!result) && !PyErr_Occurred()) {
18243 PyErr_Format(PyExc_NameError,
18244 "name '%U' is not defined", name);
18245 }
18246 return result;
18247}
18248
18249/* PyDictVersioning (used by GetModuleGlobalName) */
18250#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
18251static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
18252 PyObject *dict = Py_TYPE(obj)->tp_dict;
18253 return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
18254}
18255static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
18256 PyObject **dictptr = NULL;
18257 Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
18258 if (offset) {
18259#if CYTHON_COMPILING_IN_CPYTHON
18260 dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
18261#else
18262 dictptr = _PyObject_GetDictPtr(obj);
18263#endif
18264 }
18265 return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
18266}
18267static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
18268 PyObject *dict = Py_TYPE(obj)->tp_dict;
18269 if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
18270 return 0;
18271 return obj_dict_version == __Pyx_get_object_dict_version(obj);
18272}
18273#endif
18274
18275/* GetModuleGlobalName */
18276#if CYTHON_USE_DICT_VERSIONS
18277static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
18278#else
18279static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
18280#endif
18281{
18282 PyObject *result;
18283#if CYTHON_COMPILING_IN_LIMITED_API
18284 if (unlikely(!__pyx_m)) {
18285 if (!PyErr_Occurred())
18286 PyErr_SetNone(PyExc_NameError);
18287 return NULL;
18288 }
18289 result = PyObject_GetAttr(__pyx_m, name);
18290 if (likely(result)) {
18291 return result;
18292 }
18293 if (!__Pyx_IgnoreException(PyExc_Exception)) {
18294 return NULL; // BaseException
18295 }
18296#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
18297 if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) {
18298 if (!__Pyx_IgnoreException(PyExc_Exception)) {
18299 return NULL; // BaseException
18300 }
18301 }
18302 __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
18303 if (likely(result)) {
18304 return result;
18305 }
18306#else
18307 result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);
18308 __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
18309 if (likely(result)) {
18310 return __Pyx_NewRef(result);
18311 }
18312 PyObject *exc = PyErr_Occurred();
18313 if (unlikely(exc) && !__Pyx_IgnoreGivenException(exc, PyExc_Exception)) {
18314 return NULL; // BaseException
18315 }
18316#endif
18317 return __Pyx_GetBuiltinName(name);
18318}
18319
18320/* FormatTypeName (used by RaiseErrorWithObjectTypes) */
18321#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18322static __Pyx_TypeName
18323__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
18324{
18325 PyObject *module = NULL, *name = NULL, *result = NULL;
18326 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
18327 name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
18328 __pyx_mstate_global->__pyx_n_u_qualname);
18329 #else
18330 name = PyType_GetQualName(tp);
18331 #endif
18332 if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
18333 module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
18334 __pyx_mstate_global->__pyx_n_u_module);
18335 if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
18336 if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
18337 result = name;
18338 name = NULL;
18339 goto done;
18340 }
18341 result = PyUnicode_FromFormat("%U.%U", module, name);
18342 if (unlikely(result == NULL)) goto bad;
18343 done:
18344 Py_XDECREF(name);
18345 Py_XDECREF(module);
18346 return result;
18347 bad:
18348 PyErr_Clear();
18349 if (name) {
18350 result = name;
18351 name = NULL;
18352 } else {
18353 result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u_);
18354 }
18355 goto done;
18356}
18357#endif
18358
18359/* RaiseErrorWithObjectTypes (used by ExtTypeTest) */
18360static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2) {
18361 __Pyx_TypeName type_name1 = __Pyx_PyType_GetFullyQualifiedName(type_obj1);
18362 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18363 if (unlikely(!type_name1)) return;
18364 #endif
18365 __Pyx_TypeName type_name2 = __Pyx_PyType_GetFullyQualifiedName(type_obj2);
18366 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18367 if (unlikely(!type_name2)) goto type2_failed;
18368 #endif
18369 PyErr_Format(exc_type, message, arg, type_name1, type_name2);
18370 __Pyx_DECREF_TypeName(type_name2);
18371#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18372type2_failed:
18373#endif
18374 __Pyx_DECREF_TypeName(type_name1);
18375}
18376
18377/* ExtTypeTest */
18378static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
18379 if (unlikely(!type)) {
18380 PyErr_SetString(PyExc_SystemError, "Missing type object");
18381 return 0;
18382 }
18383 if (likely(__Pyx_TypeCheck(obj, type)))
18384 return 1;
18385 __Pyx_RaiseTypeErrorWithTypes(
18386 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
18387 Py_TYPE(obj), type);
18388 return 0;
18389}
18390
18391/* BufferFallbackError */
18392static void __Pyx_RaiseBufferFallbackError(void) {
18393 PyErr_SetString(PyExc_ValueError,
18394 "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!");
18395}
18396
18397/* BufferIndexError */
18398static void __Pyx_RaiseBufferIndexError(int axis) {
18399 PyErr_Format(PyExc_IndexError,
18400 "Out of bounds on buffer access (axis %d)", axis);
18401}
18402
18403/* PyObjectSetAttrStr */
18404#if CYTHON_USE_TYPE_SLOTS
18405static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
18406 PyTypeObject* tp = Py_TYPE(obj);
18407 if (likely(tp->tp_setattro))
18408 return tp->tp_setattro(obj, attr_name, value);
18409 return PyObject_SetAttr(obj, attr_name, value);
18410}
18411#endif
18412
18413/* AllocateExtensionType */
18414static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) {
18415 if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
18416 allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc);
18417 return alloc_func(t, 0);
18418 } else {
18419 newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc);
18420 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
18421 if (!tp_new) {
18422 PyObject *new_str = PyUnicode_FromString("__new__");
18423 if (likely(new_str)) {
18424 PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL);
18425 Py_DECREF(new_str);
18426 return o;
18427 } else
18428 return NULL;
18429 } else
18430 #endif
18431 return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
18432 }
18433}
18434
18435/* CallSlotAsVectorcallUnpackDict (used by CallSlotAsVectorcall) */
18436static CYTHON_INLINE int __Pyx_CallSlotAsVectorcallUnpackDict(Py_ssize_t args_size, PyObject *keys_dict, PyObject **args, PyObject *kwnames) {
18437 Py_ssize_t pos = 0, i = 0;
18438 PyObject *key, *value;
18439 while (PyDict_Next(keys_dict, &pos, &key, &value)) {
18440 Py_INCREF(value);
18441 args[args_size+i] = value;
18442 Py_INCREF(key);
18443 if (unlikely(__Pyx_PyTuple_SET_ITEM(kwnames, i, key) == -1)) {
18444 return -1;
18445 }
18446 ++i;
18447 }
18448 return 0;
18449}
18450
18451/* CallSlotAsVectorcall */
18452#if CYTHON_VECTORCALL_TPNEW
18453static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k) {
18454 Py_ssize_t k_size = k ? __Pyx_PyDict_GET_SIZE(k) : 0;
18455#if !CYTHON_ASSUME_SAFE_SIZE
18456 if (unlikely(k_size < 0)) return NULL;
18457#endif
18458 Py_ssize_t a_size = __Pyx_PyTuple_GET_SIZE(a);
18459#if !CYTHON_ASSUME_SAFE_SIZE
18460 if (unlikely(a_size < 0)) return NULL;
18461#endif
18462#if CYTHON_ASSUME_SAFE_MACROS
18463 if (k_size == 0) {
18464 return f(o, &PyTuple_GET_ITEM(a, 0), a_size, NULL);
18465 }
18466#else
18467 if (k_size == 0 && a_size == 0) {
18468 return f(o, NULL, 0, NULL);
18469 }
18470#endif
18471 PyObject *stack_args[5];
18472 PyObject **args = stack_args;
18473 Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(PyObject*) - 1;
18474 if (a_size > maxnargs - k_size) {
18475 PyErr_NoMemory();
18476 return NULL;
18477 }
18478 Py_ssize_t total_size = a_size + k_size;
18479 if (total_size > 5) {
18480 args = (PyObject**)PyMem_Malloc(((size_t)total_size)*sizeof(PyObject*));
18481 if (unlikely(!args)) {
18482 PyErr_NoMemory();
18483 return NULL;
18484 }
18485 }
18486 PyObject * result = NULL;
18487 PyObject *kwnames = NULL;
18488 int unpack_dict_result;
18489 Py_ssize_t i = 0;
18490 for (; i < a_size; ++i) {
18491 args[i] = __Pyx_PyTuple_GET_ITEM(a, i);
18492#if !CYTHON_ASSUME_SAFE_MACROS
18493 if (unlikely(!args[i])) goto cleanup;
18494#endif
18495 }
18496#if !CYTHON_ASSUME_SAFE_MACROS
18497 if (k) // There's a specific shortcut earlier for ASSUME_SAFE_MACROS with no keywords
18498#endif
18499 {
18500 kwnames = PyTuple_New(k_size);
18501 if (unlikely(!kwnames)) goto cleanup;
18502 __Pyx_BEGIN_CRITICAL_SECTION(k);
18503 unpack_dict_result = __Pyx_CallSlotAsVectorcallUnpackDict(a_size, k, args, kwnames);
18504 __Pyx_END_CRITICAL_SECTION();
18505 if (unlikely(unpack_dict_result == -1)) goto cleanup;
18506 }
18507 result = f(o, args, a_size, kwnames);
18508 cleanup:
18509 Py_XDECREF(kwnames);
18510 for (i=a_size; i<total_size; ++i) {
18511 Py_XDECREF(args[i]);
18512 }
18513 if (args != stack_args) {
18514 PyMem_Free(args);
18515 }
18516 return result;
18517}
18518#endif
18519
18520/* RaiseErrorWithObjectType (used by CallNewInitFromVectorcall) */
18521static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj) {
18522 __Pyx_TypeName type_name = __Pyx_PyType_GetFullyQualifiedName(type_obj);
18523 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18524 if (unlikely(!type_name)) return;
18525 #endif
18526 PyErr_Format(exc_type, message, type_name);
18527 __Pyx_DECREF_TypeName(type_name);
18528}
18529
18530/* CallNewInitFromVectorcall */
18531#if CYTHON_VECTORCALL_TPNEW
18532static PyObject *__Pyx_CallNewInitFromVectorcall(PyTypeObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
18533 newfunc tp_new = __Pyx_PyType_GetSlot(t, tp_new, newfunc);
18534 if (unlikely(!tp_new)) {
18535 __Pyx_RaiseErrorWithType(PyExc_TypeError, "cannot create " __Pyx_FMT_TYPENAME " instances", t);
18536 return NULL;
18537 }
18538 Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(nargsf);
18539 PyObject *result = NULL, *args_tuple = NULL, *kwds_dict = NULL;
18540 Py_ssize_t kw_size = kwnames ? __Pyx_PyTuple_GET_SIZE(kwnames) : 0;
18541#if !CYTHON_ASSUME_SAFE_SIZE
18542 if (unlikely(kw_size == -1)) {
18543 return NULL;
18544 }
18545#endif
18546 if (kw_size) {
18547 kwds_dict = __Pyx_PyDict_NewPresized(kw_size);
18548 if (unlikely(!kwds_dict)) {
18549 return NULL;
18550 }
18551 for (Py_ssize_t i=0; i<kw_size; ++i) {
18552 PyObject *v = args[nargs + i];
18553 PyObject *k = __Pyx_PyTuple_GET_ITEM(kwnames, i);
18554#if !CYTHON_ASSUME_SAFE_MACROS
18555 if (unlikely(!k)) {
18556 goto end;
18557 }
18558#endif
18559 if (unlikely(PyDict_SetItem(kwds_dict, k, v) < 0)) {
18560 goto end;
18561 }
18562 }
18563 }
18564 if (nargs) {
18565 args_tuple = __Pyx_PyTuple_FromArray(args, nargs);
18566 if (unlikely(!args_tuple)) {
18567 goto end;
18568 }
18569 } else {
18570 args_tuple = __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
18571 }
18572 result = tp_new(t, args_tuple, kwds_dict);
18573 if (unlikely(!result)) {
18574 goto end;
18575 }
18576 if (PyObject_TypeCheck(result, t)) {
18577 initproc tp_init = __Pyx_PyObject_GetSlot(result, tp_init, initproc);
18578 if (tp_init && unlikely(tp_init(result, args_tuple, kwds_dict) < 0)) {
18579 Py_CLEAR(result);
18580 }
18581 }
18582 end:
18583 Py_XDECREF(args_tuple);
18584 Py_XDECREF(kwds_dict);
18585 return result;
18586}
18587#endif
18588
18589/* CallTypeTraverse */
18590#if !CYTHON_USE_TYPE_SPECS
18591#else
18592static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
18593 if (!always_call) {
18594 PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
18595 unsigned long flags = PyType_GetFlags(base);
18596 if (flags & Py_TPFLAGS_HEAPTYPE) {
18597 return 0;
18598 }
18599 }
18600 Py_VISIT((PyObject*)Py_TYPE(o));
18601 return 0;
18602}
18603#endif
18604
18605/* PyObjectCallMethod0 (used by PyType_Ready) */
18606static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
18607#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || !CYTHON_COMPILING_IN_LIMITED_API)
18608 return PyObject_VectorcallMethod(method_name, &obj, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
18609#elif CYTHON_COMPILING_IN_LIMITED_API
18610 return PyObject_CallMethodObjArgs(obj, method_name, NULL);
18611#else
18612 return PyObject_CallMethodNoArgs(obj, method_name);
18613#endif
18614}
18615
18616/* GetTypeDictOffset (used by ValidateBasesTuple) */
18617#if !CYTHON_USE_TYPE_SLOTS
18618CYTHON_UNUSED static Py_ssize_t __Pyx_GetTypeDictOffset(PyObject *tp, int require_cython_valid_result) {
18619 PyObject *tp_dictoffset_o;
18620 Py_ssize_t tp_dictoffset;
18621 tp_dictoffset_o = PyObject_GetAttrString(tp, "__dictoffset__");
18622 if (unlikely(!tp_dictoffset_o)) return -1;
18623 tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
18624 Py_DECREF(tp_dictoffset_o);
18625 if (unlikely(require_cython_valid_result && tp_dictoffset == 0)) {
18626 PyErr_SetString(
18627 PyExc_TypeError,
18628 "'type' doesn't have a dictoffset");
18629 return -1;
18630 } else if (unlikely(require_cython_valid_result && tp_dictoffset < 0)) {
18631 PyErr_SetString(
18632 PyExc_TypeError,
18633 "'type' has an unexpected negative dictoffset. "
18634 "Please report this as Cython bug");
18635 return -1;
18636 }
18637 return tp_dictoffset;
18638}
18639#endif
18640
18641/* RaiseErrorWithObjectType1 (used by ValidateBasesTuple) */
18642static void __Pyx_RaiseErrorWithType1(PyObject* exc_type, const char* message, const char *arg, PyTypeObject *type_obj) {
18643 __Pyx_TypeName type_name = __Pyx_PyType_GetFullyQualifiedName(type_obj);
18644 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
18645 if (unlikely(!type_name)) return;
18646 #endif
18647 PyErr_Format(exc_type, message, arg, type_name);
18648 __Pyx_DECREF_TypeName(type_name);
18649}
18650
18651/* ValidateBasesTuple (used by PyType_Ready) */
18652#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
18653static int __Pyx_validate_bases_tuple(const char *type_name, int has_dictoffset, PyObject *bases) {
18654 Py_ssize_t i, n;
18655#if CYTHON_ASSUME_SAFE_SIZE
18656 n = PyTuple_GET_SIZE(bases);
18657#else
18658 n = PyTuple_Size(bases);
18659 if (unlikely(n < 0)) return -1;
18660#endif
18661 if (!has_dictoffset) {
18662 PyObject *b;
18663#if CYTHON_AVOID_BORROWED_REFS
18664 b = PySequence_GetItem(bases, 0);
18665 if (!b) return -1;
18666#elif CYTHON_ASSUME_SAFE_MACROS
18667 b = PyTuple_GET_ITEM(bases, 0);
18668#else
18669 b = PyTuple_GetItem(bases, 0);
18670 if (!b) return -1;
18671#endif
18672#if CYTHON_USE_TYPE_SLOTS
18673 has_dictoffset = ((PyTypeObject*)b)->tp_dictoffset != 0;
18674#else
18675 Py_ssize_t dictoffset = __Pyx_GetTypeDictOffset(b, 0);
18676 has_dictoffset = dictoffset != 0;
18677#endif
18678#if CYTHON_AVOID_BORROWED_REFS
18679 Py_DECREF(b);
18680#endif
18681#if !CYTHON_USE_TYPE_SLOTS
18682 if (dictoffset == -1 && PyErr_Occurred()) return -1;
18683#endif
18684 }
18685 for (i = 1; i < n; i++)
18686 {
18687 PyTypeObject *b;
18688#if CYTHON_AVOID_BORROWED_REFS
18689 PyObject *b0 = PySequence_GetItem(bases, i);
18690 if (!b0) return -1;
18691#elif CYTHON_ASSUME_SAFE_MACROS
18692 PyObject *b0 = PyTuple_GET_ITEM(bases, i);
18693#else
18694 PyObject *b0 = PyTuple_GetItem(bases, i);
18695 if (!b0) return -1;
18696#endif
18697 b = (PyTypeObject*) b0;
18698 if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
18699 {
18700 __Pyx_RaiseErrorWithType(
18701 PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b);
18702#if CYTHON_AVOID_BORROWED_REFS
18703 Py_DECREF(b0);
18704#endif
18705 return -1;
18706 }
18707 if (!has_dictoffset)
18708 {
18709 Py_ssize_t b_dictoffset = 0;
18710#if CYTHON_USE_TYPE_SLOTS
18711 b_dictoffset = b->tp_dictoffset;
18712#else
18713 b_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)b, 0);
18714 if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
18715#endif
18716 if (b_dictoffset) {
18717 __Pyx_RaiseErrorWithType1(
18718 PyExc_TypeError,
18719 "extension type '%.200s' has no __dict__ slot, "
18720 "but base type '" __Pyx_FMT_TYPENAME "' has: "
18721 "either add 'cdef dict __dict__' to the extension type "
18722 "or add '__slots__ = [...]' to the base type",
18723 type_name, b);
18724#if !CYTHON_USE_TYPE_SLOTS
18725 dictoffset_return:
18726#endif
18727#if CYTHON_AVOID_BORROWED_REFS
18728 Py_DECREF(b0);
18729#endif
18730 return -1;
18731 }
18732 }
18733#if CYTHON_AVOID_BORROWED_REFS
18734 Py_DECREF(b0);
18735#endif
18736 }
18737 return 0;
18738}
18739#endif
18740
18741/* PyType_Ready */
18742CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
18743 while (t) {
18744 PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
18745 if (bases) {
18746 return 1;
18747 }
18748 t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
18749 }
18750 return 0;
18751}
18752static int __Pyx_PyType_Ready(PyTypeObject *t) {
18753#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON
18754 (void)__Pyx_PyObject_CallMethod0;
18755#if CYTHON_USE_TYPE_SPECS
18756 (void)__Pyx_validate_bases_tuple;
18757#endif
18758 return PyType_Ready(t);
18759#else
18760 int r;
18761 if (!__Pyx_PyType_HasMultipleInheritance(t)) {
18762 return PyType_Ready(t);
18763 }
18764 PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
18765 if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset != 0, bases) == -1))
18766 return -1;
18767 {
18768 int gc_was_enabled;
18769 #if PY_VERSION_HEX >= 0x030A00b1
18770 gc_was_enabled = PyGC_Disable();
18771 (void)__Pyx_PyObject_CallMethod0;
18772 #else
18773 PyObject *ret, *py_status;
18774 PyObject *gc = NULL;
18775 #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
18776 !CYTHON_COMPILING_IN_GRAAL
18777 gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
18778 #endif
18779 if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
18780 if (unlikely(!gc)) return -1;
18781 py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
18782 if (unlikely(!py_status)) {
18783 Py_DECREF(gc);
18784 return -1;
18785 }
18786 gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
18787 Py_DECREF(py_status);
18788 if (gc_was_enabled > 0) {
18789 ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
18790 if (unlikely(!ret)) {
18791 Py_DECREF(gc);
18792 return -1;
18793 }
18794 Py_DECREF(ret);
18795 } else if (unlikely(gc_was_enabled == -1)) {
18796 Py_DECREF(gc);
18797 return -1;
18798 }
18799 #endif
18800 t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
18801#if PY_VERSION_HEX >= 0x030A0000
18802 t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
18803#endif
18804 r = PyType_Ready(t);
18805 t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
18806 #if PY_VERSION_HEX >= 0x030A00b1
18807 if (gc_was_enabled)
18808 PyGC_Enable();
18809 #else
18810 if (gc_was_enabled) {
18811 PyObject *tp, *v, *tb;
18812 PyErr_Fetch(&tp, &v, &tb);
18813 ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
18814 if (likely(ret || r == -1)) {
18815 Py_XDECREF(ret);
18816 PyErr_Restore(tp, v, tb);
18817 } else {
18818 Py_XDECREF(tp);
18819 Py_XDECREF(v);
18820 Py_XDECREF(tb);
18821 r = -1;
18822 }
18823 }
18824 Py_DECREF(gc);
18825 #endif
18826 }
18827 return r;
18828#endif
18829}
18830
18831/* LimitedApiGetTypeTypeDict (used by DelItemOnTypeDict) */
18832#if CYTHON_COMPILING_IN_LIMITED_API
18833static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp) {
18834 static Py_ssize_t tp_dictoffset = 0;
18835 if (unlikely(tp_dictoffset == 0)) {
18836 tp_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)(&PyType_Type), 1);
18837 if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
18838 tp_dictoffset = 0; // try again next time?
18839 return NULL;
18840 }
18841 }
18842 return *(PyObject**)((char*)tp + tp_dictoffset);
18843}
18844#endif
18845
18846/* DelItemOnTypeDict (used by SetupReduce) */
18847static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
18848 int result;
18849 PyObject *tp_dict;
18850#if CYTHON_COMPILING_IN_LIMITED_API
18851 tp_dict = __Pyx_GetTypeTypeDict(tp);
18852 if (unlikely(!tp_dict)) return -1;
18853#else
18854 tp_dict = tp->tp_dict;
18855#endif
18856 result = PyDict_DelItem(tp_dict, k);
18857 if (likely(!result)) PyType_Modified(tp);
18858 return result;
18859}
18860
18861/* SetItemOnTypeDict (used by SetupReduce) */
18862static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
18863 int result;
18864 PyObject *tp_dict;
18865#if CYTHON_COMPILING_IN_LIMITED_API
18866 tp_dict = __Pyx_GetTypeTypeDict(tp);
18867 if (unlikely(!tp_dict)) return -1;
18868#else
18869 tp_dict = tp->tp_dict;
18870#endif
18871 result = PyDict_SetItem(tp_dict, k, v);
18872 if (likely(!result)) {
18873 PyType_Modified(tp);
18874 if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
18875 PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name, (PyObject *) tp, k, NULL);
18876 if (!setNameResult) return -1;
18877 Py_DECREF(setNameResult);
18878 }
18879 }
18880 return result;
18881}
18882
18883/* SetupReduce */
18884static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
18885 int ret;
18886 PyObject *name_attr;
18887 name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name_2);
18888 if (likely(name_attr)) {
18889 ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
18890 } else {
18891 ret = -1;
18892 }
18893 if (unlikely(ret < 0) && __Pyx_IgnoreException(PyExc_Exception)) {
18894 ret = 0; // But BaseException is still propagated.
18895 }
18896 Py_XDECREF(name_attr);
18897 return ret;
18898}
18899static PyObject *__Pyx_setup_reduce_get_reduce_attribute(PyObject *type_obj, PyObject *name, int allow_not_present) {
18900#if CYTHON_USE_PYTYPE_LOOKUP
18901 CYTHON_UNUSED_VAR(allow_not_present);
18902 return _PyType_Lookup((PyTypeObject*)type_obj, name);
18903#else
18904 if (allow_not_present) {
18905 return __Pyx_PyObject_GetAttrStrNoError(type_obj, name);
18906 } else {
18907 return __Pyx_PyObject_GetAttrStr(type_obj, name);
18908 }
18909#endif
18910}
18911static int __Pyx_setup_reduce(PyObject* type_obj) {
18912 int ret = 0;
18913 PyObject *object_reduce = NULL;
18914 PyObject *object_getstate = NULL;
18915 PyObject *object_reduce_ex = NULL;
18916 PyObject *reduce = NULL;
18917 PyObject *reduce_ex = NULL;
18918 PyObject *reduce_cython = NULL;
18919 PyObject *setstate = NULL;
18920 PyObject *setstate_cython = NULL;
18921 PyObject *getstate = NULL;
18922 getstate = __Pyx_setup_reduce_get_reduce_attribute(type_obj, __pyx_mstate_global->__pyx_n_u_getstate, 1);
18923 if (!getstate && PyErr_Occurred()) {
18924 goto __PYX_BAD;
18925 }
18926 if (getstate) {
18927 object_getstate = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate, 1);
18928 if (!object_getstate && PyErr_Occurred()) {
18929 goto __PYX_BAD;
18930 }
18931 if (object_getstate != getstate) {
18932 goto __PYX_GOOD;
18933 }
18934 }
18935 object_reduce_ex = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex, 0);
18936 if (unlikely(!object_reduce_ex)) goto __PYX_BAD;
18937 reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
18938 if (reduce_ex == object_reduce_ex) {
18939 object_reduce = __Pyx_setup_reduce_get_reduce_attribute((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce, 0);
18940 if (!object_reduce) goto __PYX_BAD;
18941 reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
18942 int try_to_replace_reduce = (reduce == object_reduce);
18943 if (!try_to_replace_reduce) {
18944 try_to_replace_reduce = __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython);
18945 if (unlikely(try_to_replace_reduce < 0)) {
18946 goto __PYX_BAD;
18947 }
18948 }
18949 if (try_to_replace_reduce) {
18950 reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
18951 if (likely(reduce_cython)) {
18952 ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
18953 ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
18954 } else if (reduce == object_reduce || PyErr_Occurred()) {
18955 goto __PYX_BAD;
18956 }
18957 setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
18958 int try_to_replace_setstate;
18959 if (!setstate) {
18960 PyObject *exc = PyErr_Occurred();
18961 if (exc && !__Pyx_IgnoreGivenException(exc, PyExc_Exception)) {
18962 goto __PYX_BAD;
18963 }
18964 try_to_replace_setstate = 1;
18965 } else {
18966 try_to_replace_setstate = __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython);
18967 if (unlikely(try_to_replace_setstate < 0)) {
18968 goto __PYX_BAD;
18969 }
18970 }
18971 if (try_to_replace_setstate) {
18972 setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
18973 if (likely(setstate_cython)) {
18974 ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
18975 ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
18976 } else if (!setstate || PyErr_Occurred()) {
18977 goto __PYX_BAD;
18978 }
18979 }
18980 PyType_Modified((PyTypeObject*)type_obj);
18981 }
18982 }
18983 goto __PYX_GOOD;
18984__PYX_BAD:
18985 if (!PyErr_Occurred()) {
18986 __Pyx_RaiseErrorWithType(
18987 PyExc_RuntimeError,
18988 "Unable to initialize pickling for " __Pyx_FMT_TYPENAME,
18989 (PyTypeObject*)type_obj);
18990 }
18991 ret = -1;
18992__PYX_GOOD:
18993#if !CYTHON_USE_PYTYPE_LOOKUP
18994 Py_XDECREF(object_reduce);
18995 Py_XDECREF(object_reduce_ex);
18996 Py_XDECREF(object_getstate);
18997 Py_XDECREF(getstate);
18998#endif
18999 Py_XDECREF(reduce);
19000 Py_XDECREF(reduce_ex);
19001 Py_XDECREF(reduce_cython);
19002 Py_XDECREF(setstate);
19003 Py_XDECREF(setstate_cython);
19004 return ret;
19005}
19006
19007/* TypeImport */
19008#ifndef __PYX_HAVE_RT_ImportType_3_3_0
19009#define __PYX_HAVE_RT_ImportType_3_3_0
19010static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject *module, const char *module_name, const char *class_name,
19011 size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size)
19012{
19013 PyObject *result = 0;
19014 Py_ssize_t basicsize;
19015 Py_ssize_t itemsize;
19016#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
19017 PyObject *py_basicsize;
19018 PyObject *py_itemsize;
19019#endif
19020 result = PyObject_GetAttrString(module, class_name);
19021 if (!result)
19022 goto bad;
19023 if (!PyType_Check(result)) {
19024 PyErr_Format(PyExc_TypeError,
19025 "%.200s.%.200s is not a type object",
19026 module_name, class_name);
19027 goto bad;
19028 }
19029#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
19030 basicsize = ((PyTypeObject *)result)->tp_basicsize;
19031 itemsize = ((PyTypeObject *)result)->tp_itemsize;
19032#else
19033 if (size == 0) {
19034 return (PyTypeObject *)result;
19035 }
19036 py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
19037 if (!py_basicsize)
19038 goto bad;
19039 basicsize = PyLong_AsSsize_t(py_basicsize);
19040 Py_DECREF(py_basicsize);
19041 py_basicsize = 0;
19042 if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
19043 goto bad;
19044 py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
19045 if (!py_itemsize)
19046 goto bad;
19047 itemsize = PyLong_AsSsize_t(py_itemsize);
19048 Py_DECREF(py_itemsize);
19049 py_itemsize = 0;
19050 if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
19051 goto bad;
19052#endif
19053 if (itemsize) {
19054 if (size % alignment) {
19055 alignment = size % alignment;
19056 }
19057 if (itemsize < (Py_ssize_t)alignment)
19058 itemsize = (Py_ssize_t)alignment;
19059 }
19060 if ((size_t)(basicsize + itemsize) < size) {
19061 PyErr_Format(PyExc_ValueError,
19062 "%.200s.%.200s size changed, may indicate binary incompatibility. "
19063 "Expected %zd from C header, got %zd from PyObject",
19064 module_name, class_name, size, basicsize+itemsize);
19065 goto bad;
19066 }
19067 if (check_size == __Pyx_ImportType_CheckSize_Error_3_3_0 &&
19068 ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
19069 PyErr_Format(PyExc_ValueError,
19070 "%.200s.%.200s size changed, may indicate binary incompatibility. "
19071 "Expected %zd from C header, got %zd-%zd from PyObject",
19072 module_name, class_name, size, basicsize, basicsize+itemsize);
19073 goto bad;
19074 }
19075 else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_3_0 && (size_t)basicsize > size) {
19076 if (PyErr_WarnFormat(NULL, 0,
19077 "%.200s.%.200s size changed, may indicate binary incompatibility. "
19078 "Expected %zd from C header, got %zd from PyObject",
19079 module_name, class_name, size, basicsize) < 0) {
19080 goto bad;
19081 }
19082 }
19083 return (PyTypeObject *)result;
19084bad:
19085 Py_XDECREF(result);
19086 return NULL;
19087}
19088#endif
19089
19090/* HasAttr (used by ImportImpl) */
19091#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
19092static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
19093 PyObject *r;
19094 if (unlikely(!PyUnicode_Check(n))) {
19095 PyErr_SetString(PyExc_TypeError,
19096 "hasattr(): attribute name must be string");
19097 return -1;
19098 }
19099 r = __Pyx_PyObject_GetAttrStrNoError(o, n);
19100 if (!r) {
19101 return (unlikely(PyErr_Occurred())) ? -1 : 0;
19102 } else {
19103 Py_DECREF(r);
19104 return 1;
19105 }
19106}
19107#endif
19108
19109/* TupleOrListFromArrayImpl (used by ListFromArray) */
19110CYTHON_UNUSED static PyObject *
19111__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) {
19112 PyObject *res = PyList_New(n);
19113 if (unlikely(res == NULL)) return NULL;
19114 #if CYTHON_COMPILING_IN_CPYTHON
19115 __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
19116 #else
19117 Py_ssize_t i;
19118 for (i = 0; i < n; i++) {
19119 Py_INCREF(src[i]);
19120 if (unlikely(__Pyx_PyList_SET_ITEM(res, i, src[i]) < (0))) {
19121 Py_DECREF(res);
19122 return NULL;
19123 }
19124 }
19125 #endif
19126 return res;
19127}
19128
19129/* ImportImpl (used by Import) */
19130static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
19131 PyObject *imported_module = PyImport_GetModule(qualname);
19132 if (unlikely(!imported_module)) {
19133 *module = NULL;
19134 if (PyErr_Occurred()) {
19135 return -1;
19136 }
19137 return 0;
19138 }
19139 *module = imported_module;
19140 return 1;
19141}
19142static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
19143 PyObject *imported_module;
19144 PyObject *top_level_package_name;
19145 Py_ssize_t i;
19146 int status, module_found;
19147 Py_ssize_t dot_index;
19148 module_found = __Pyx__Import_GetModule(qualname, &imported_module);
19149 if (unlikely(!module_found || module_found == -1)) {
19150 *module = NULL;
19151 return module_found;
19152 }
19153 if (imported_names) {
19154 for (i = 0; i < len_imported_names; i++) {
19155 PyObject *imported_name = imported_names[i];
19156#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
19157 int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
19158#else
19159 int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
19160 if (unlikely(has_imported_attribute == -1)) goto error;
19161#endif
19162 if (!has_imported_attribute) {
19163 goto not_found;
19164 }
19165 }
19166 *module = imported_module;
19167 return 1;
19168 }
19169 dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
19170 if (dot_index == -1) {
19171 *module = imported_module;
19172 return 1;
19173 }
19174 if (unlikely(dot_index == -2)) goto error;
19175 top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
19176 if (unlikely(!top_level_package_name)) goto error;
19177 Py_DECREF(imported_module);
19178 status = __Pyx__Import_GetModule(top_level_package_name, module);
19179 Py_DECREF(top_level_package_name);
19180 return status;
19181error:
19182 Py_DECREF(imported_module);
19183 *module = NULL;
19184 return -1;
19185not_found:
19186 Py_DECREF(imported_module);
19187 *module = NULL;
19188 return 0;
19189}
19190static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
19191 PyObject *module = 0;
19192 PyObject *empty_dict = 0;
19193 PyObject *from_list = 0;
19194 int module_found;
19195 if (!qualname) {
19196 qualname = name;
19197 }
19198 module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
19199 if (likely(module_found == 1)) {
19200 return module;
19201 } else if (unlikely(module_found == -1)) {
19202 return NULL;
19203 }
19204 #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030f00a6
19205 empty_dict = PyFrozenDict_New(NULL);
19206 #else
19207 empty_dict = PyDict_New();
19208 #endif
19209 if (unlikely(!empty_dict))
19210 goto bad;
19211 if (imported_names) {
19212 from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
19213 if (unlikely(!from_list))
19214 goto bad;
19215 }
19216 if (level == -1) {
19217 const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
19218 if (package_sep != (0)) {
19219 module = PyImport_ImportModuleLevelObject(
19220 name, moddict, empty_dict, from_list, 1);
19221 if (unlikely(!module)) {
19222 if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
19223 goto bad;
19224 PyErr_Clear();
19225 }
19226 }
19227 level = 0;
19228 }
19229 if (!module) {
19230 module = PyImport_ImportModuleLevelObject(
19231 name, moddict, empty_dict, from_list, level);
19232 }
19233bad:
19234 Py_XDECREF(from_list);
19235 Py_XDECREF(empty_dict);
19236 return module;
19237}
19238
19239/* Import */
19240static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
19241 return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
19242}
19243
19244/* ImportFrom */
19245static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
19246 PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
19247 if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
19248 const char* module_name_str = 0;
19249 PyObject* module_name = 0;
19250 PyObject* module_dot = 0;
19251 PyObject* full_name = 0;
19252 PyErr_Clear();
19253 module_name_str = PyModule_GetName(module);
19254 if (unlikely(!module_name_str)) { goto modbad; }
19255 module_name = PyUnicode_FromString(module_name_str);
19256 if (unlikely(!module_name)) { goto modbad; }
19257 module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__3);
19258 if (unlikely(!module_dot)) { goto modbad; }
19259 full_name = PyUnicode_Concat(module_dot, name);
19260 if (unlikely(!full_name)) { goto modbad; }
19261 #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) ||\
19262 CYTHON_COMPILING_IN_GRAAL
19263 {
19264 PyObject *modules = PyImport_GetModuleDict();
19265 if (unlikely(!modules))
19266 goto modbad;
19267 value = PyObject_GetItem(modules, full_name);
19268 }
19269 #else
19270 value = PyImport_GetModule(full_name);
19271 #endif
19272 modbad:
19273 Py_XDECREF(full_name);
19274 Py_XDECREF(module_dot);
19275 Py_XDECREF(module_name);
19276 }
19277 if (unlikely(!value)) {
19278 PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
19279 }
19280 return value;
19281}
19282
19283/* dict_setdefault (used by FetchCommonType) */
19284static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
19285 PyObject* value;
19286#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
19287 PyDict_SetDefaultRef(d, key, default_value, &value);
19288#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
19289 PyObject *args[] = {d, key, default_value};
19290 value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
19291#elif CYTHON_COMPILING_IN_LIMITED_API
19292 value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
19293#else
19294 value = PyDict_SetDefault(d, key, default_value);
19295 if (unlikely(!value)) return NULL;
19296 Py_INCREF(value);
19297#endif
19298 return value;
19299}
19300
19301/* AddModuleRef (used by FetchSharedCythonModule) */
19302#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3
19303 static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
19304 PyObject *module_dict = PyImport_GetModuleDict();
19305 PyObject *m;
19306 if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
19307 return NULL;
19308 }
19309 if (m != NULL && PyModule_Check(m)) {
19310 return m;
19311 }
19312 Py_XDECREF(m);
19313 m = PyModule_NewObject(name);
19314 if (m == NULL)
19315 return NULL;
19316 if (PyDict_CheckExact(module_dict)) {
19317 PyObject *new_m;
19318 (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
19319 Py_DECREF(m);
19320 return new_m;
19321 } else {
19322 if (PyObject_SetItem(module_dict, name, m) != 0) {
19323 Py_DECREF(m);
19324 return NULL;
19325 }
19326 return m;
19327 }
19328 }
19329 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
19330 if ((PY_VERSION_HEX >= 0x030E0000) && Py_Version >= 0x030E0100) {
19331 return PyImport_AddModuleRef(name);
19332 }
19333 PyObject *py_name = PyUnicode_FromString(name);
19334 if (!py_name) return NULL;
19335 PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
19336 Py_DECREF(py_name);
19337 return module;
19338 }
19339#elif __PYX_LIMITED_VERSION_HEX < 0x030d0000
19340 static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
19341 PyObject *module = PyImport_AddModule(name);
19342 Py_XINCREF(module);
19343 return module;
19344 }
19345#endif
19346
19347/* FetchSharedCythonModule (used by FetchCommonType) */
19348static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
19349 return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
19350}
19351
19352/* VerifyCachedType (used by FetchCommonType) */
19353static int __Pyx_VerifyCachedType(PyObject *cached_type,
19354 const char *name,
19355 Py_ssize_t expected_basicsize) {
19356 Py_ssize_t basicsize;
19357 if (!PyType_Check(cached_type)) {
19358 PyErr_Format(PyExc_TypeError,
19359 "Shared Cython type %.200s is not a type object", name);
19360 return -1;
19361 }
19362 if (expected_basicsize == 0) {
19363 return 0; // size is inherited, nothing useful to check
19364 }
19365#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_OPAQUE_OBJECTS
19366 if (expected_basicsize < 0) {
19367 basicsize = PyType_GetTypeDataSize((PyTypeObject*)cached_type);
19368 } else
19369#endif
19370 {
19371 #if CYTHON_COMPILING_IN_LIMITED_API
19372 PyObject *py_basicsize;
19373 py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
19374 if (unlikely(!py_basicsize)) return -1;
19375 basicsize = PyLong_AsSsize_t(py_basicsize);
19376 Py_DECREF(py_basicsize);
19377 py_basicsize = NULL;
19378 if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
19379 #else
19380 basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
19381 #endif
19382 }
19383 if ((expected_basicsize >= 0) ?
19384 (basicsize != expected_basicsize) :
19385 (basicsize < -expected_basicsize)) {
19386 PyErr_Format(PyExc_TypeError,
19387 "Shared Cython type %.200s has the wrong size, try recompiling",
19388 name);
19389 return -1;
19390 }
19391 return 0;
19392}
19393
19394/* FetchCommonType (used by CommonTypesMetaclass) */
19395#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
19396static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
19397 PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
19398 if (result && metaclass) {
19399 PyObject *old_tp = (PyObject*)Py_TYPE(result);
19400 Py_INCREF((PyObject*)metaclass);
19401 Py_SET_TYPE(result, metaclass);
19402 Py_DECREF(old_tp);
19403 PyType_Modified((PyTypeObject*)result);
19404 }
19405 return result;
19406}
19407#else
19408#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
19409#endif
19410static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
19411 PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
19412 int get_item_ref_result;
19413 const char* object_name = strrchr(spec->name, '.');
19414 object_name = object_name ? object_name+1 : spec->name;
19415 py_object_name = PyUnicode_FromString(object_name);
19416 if (!py_object_name) return NULL;
19417 abi_module = __Pyx_FetchSharedCythonABIModule();
19418 if (!abi_module) goto done;
19419 abi_module_dict = PyModule_GetDict(abi_module);
19420 if (!abi_module_dict) goto done;
19421 get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
19422 if (get_item_ref_result == 1) {
19423 if (__Pyx_VerifyCachedType(
19424 cached_type,
19425 object_name,
19426 spec->basicsize) < 0) {
19427 goto bad;
19428 }
19429 goto done;
19430 } else if (unlikely(get_item_ref_result == -1)) {
19431 goto bad;
19432 }
19433 cached_type = __Pyx_PyType_FromMetaclass(
19434 metaclass,
19435 CYTHON_USE_MODULE_STATE ? module : abi_module,
19436 spec, bases);
19437 if (unlikely(!cached_type)) goto bad;
19438 new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
19439 if (unlikely(new_cached_type != cached_type)) {
19440 if (unlikely(!new_cached_type)) goto bad;
19441 Py_DECREF(cached_type);
19442 cached_type = new_cached_type;
19443 if (__Pyx_VerifyCachedType(
19444 cached_type,
19445 object_name,
19446 spec->basicsize) < 0) {
19447 goto bad;
19448 }
19449 goto done;
19450 } else {
19451 Py_DECREF(new_cached_type);
19452 }
19453done:
19454 Py_XDECREF(abi_module);
19455 Py_DECREF(py_object_name);
19456 assert(cached_type == NULL || PyType_Check(cached_type));
19457 return (PyTypeObject *) cached_type;
19458bad:
19459 Py_XDECREF(cached_type);
19460 cached_type = NULL;
19461 goto done;
19462}
19463
19464/* CommonTypesMetaclass (used by CythonFunctionShared) */
19465static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
19466 return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
19467}
19468#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
19469static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
19470 PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
19471 return NULL;
19472}
19473static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
19474 PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
19475 return -1;
19476}
19477#endif
19478static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
19479 {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
19480 {0, 0, 0, 0, 0}
19481};
19482static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
19483 {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
19484 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
19485 {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
19486 {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
19487 {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
19488 #endif
19489 {0, 0}
19490};
19491static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
19492 __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
19493 0,
19494 0,
19495 Py_TPFLAGS_IMMUTABLETYPE |
19496 Py_TPFLAGS_DISALLOW_INSTANTIATION |
19497 Py_TPFLAGS_DEFAULT,
19498 __pyx_CommonTypesMetaclass_slots
19499};
19500static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
19501 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
19502 PyObject *bases = PyTuple_Pack(1, &PyType_Type);
19503 if (unlikely(!bases)) {
19504 return -1;
19505 }
19506 mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
19507 Py_DECREF(bases);
19508 if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
19509 return -1;
19510 }
19511 return 0;
19512}
19513
19514/* CythonFunctionPerModule (used by CythonFunctionShared) */
19515#if CYTHON_COMPILING_IN_LIMITED_API
19516static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
19517 if (__Pyx_CyFunction_Check(func)) {
19518 return __Pyx_as_CyFunctionObject(func)->func_methoddef->ml_meth == (PyCFunction) cfunc;
19519 } else if (PyCFunction_Check(func)) {
19520 return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
19521 }
19522 return 0;
19523}
19524static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
19525 if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
19526 int result;
19527 PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);
19528 if (unlikely(!newFunc)) {
19529 PyErr_Clear(); // It's only an optimization, so don't throw an error
19530 return 0;
19531 }
19532 result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
19533 Py_DECREF(newFunc);
19534 return result;
19535 }
19536 return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
19537}
19538#else
19539static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
19540 if (PyMethod_Check(func)) {
19541 func = PyMethod_GET_FUNCTION(func);
19542 }
19543 return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
19544}
19545#endif
19546static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
19547#if CYTHON_COMPILING_IN_LIMITED_API
19548 __Pyx_Py_XDECREF_SET(
19549 __Pyx__CyFunction_GetClassObj(f),
19550 ((classobj) ? __Pyx_NewRef(classobj) : NULL));
19551#else
19552 __Pyx_Py_XDECREF_SET(
19553 ((PyCMethodObject *) (f))->mm_class,
19554 (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
19555#endif
19556}
19557static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
19558 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
19559 m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
19560 if (unlikely(!m->defaults))
19561 return NULL;
19562 return m->defaults;
19563}
19564static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
19565 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
19566 m->defaults_tuple = tuple;
19567 Py_INCREF(tuple);
19568}
19569static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
19570 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
19571 m->defaults_kwdict = dict;
19572 Py_INCREF(dict);
19573}
19574static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
19575 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(func);
19576 m->func_annotations = dict;
19577 Py_INCREF(dict);
19578}
19579
19580/* PyMethodNew (used by CythonFunctionShared) */
19581#if CYTHON_COMPILING_IN_LIMITED_API
19582static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
19583 PyObject *result;
19584 CYTHON_UNUSED_VAR(typ);
19585 if (!self)
19586 return __Pyx_NewRef(func);
19587 #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
19588 {
19589 PyObject *args[] = {func, self};
19590 result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
19591 }
19592 #else
19593 result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
19594 #endif
19595 return result;
19596}
19597#else
19598static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
19599 CYTHON_UNUSED_VAR(typ);
19600 if (!self)
19601 return __Pyx_NewRef(func);
19602 return PyMethod_New(func, self);
19603}
19604#endif
19605
19606/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
19607#if CYTHON_VECTORCALL
19608static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
19609{
19610 PyObject *res = NULL;
19611 PyObject *kwnames;
19612 PyObject **newargs;
19613 PyObject **kwvalues;
19614 Py_ssize_t i;
19615 #if CYTHON_AVOID_BORROWED_REFS
19616 PyObject *pos;
19617 #else
19618 Py_ssize_t pos;
19619 #endif
19620 size_t j;
19621 PyObject *key, *value;
19622 unsigned long keys_are_strings;
19623 #if !CYTHON_ASSUME_SAFE_SIZE
19624 Py_ssize_t nkw = PyDict_Size(kw);
19625 if (unlikely(nkw == -1)) return NULL;
19626 #else
19627 Py_ssize_t nkw = PyDict_GET_SIZE(kw);
19628 #endif
19629 newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
19630 if (unlikely(newargs == NULL)) {
19631 PyErr_NoMemory();
19632 return NULL;
19633 }
19634 for (j = 0; j < nargs; j++) newargs[j] = args[j];
19635 kwnames = PyTuple_New(nkw);
19636 if (unlikely(kwnames == NULL)) {
19637 PyMem_Free(newargs);
19638 return NULL;
19639 }
19640 kwvalues = newargs + nargs;
19641 pos = 0;
19642 i = 0;
19643 keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
19644 while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
19645 keys_are_strings &=
19646 #if CYTHON_COMPILING_IN_LIMITED_API
19647 PyType_GetFlags(Py_TYPE(key));
19648 #else
19649 Py_TYPE(key)->tp_flags;
19650 #endif
19651 #if !CYTHON_ASSUME_SAFE_MACROS
19652 if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
19653 #else
19654 PyTuple_SET_ITEM(kwnames, i, key);
19655 #endif
19656 kwvalues[i] = value;
19657 i++;
19658 }
19659 if (unlikely(!keys_are_strings)) {
19660 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
19661 goto cleanup;
19662 }
19663 res = vc(func, newargs, nargs, kwnames);
19664cleanup:
19665 #if CYTHON_AVOID_BORROWED_REFS
19666 Py_DECREF(pos);
19667 #endif
19668 Py_DECREF(kwnames);
19669 for (i = 0; i < nkw; i++)
19670 Py_DECREF(kwvalues[i]);
19671 PyMem_Free(newargs);
19672 return res;
19673}
19674static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
19675{
19676 Py_ssize_t kw_size =
19677 likely(kw == NULL) ?
19678 0 :
19679#if !CYTHON_ASSUME_SAFE_SIZE
19680 PyDict_Size(kw);
19681#else
19682 PyDict_GET_SIZE(kw);
19683#endif
19684 if (kw_size == 0) {
19685 return vc(func, args, nargs, NULL);
19686 }
19687#if !CYTHON_ASSUME_SAFE_SIZE
19688 else if (unlikely(kw_size == -1)) {
19689 return NULL;
19690 }
19691#endif
19692 return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
19693}
19694#endif
19695
19696/* CythonFunctionShared (used by CythonFunction) */
19697static PyObject *
19698__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
19699{
19700 if (unlikely(op->func_doc == NULL)) {
19701#if CYTHON_COMPILING_IN_LIMITED_API
19702 const char *doc = op->func_methoddef->ml_doc;
19703#else
19704 const char *doc = ((PyCFunctionObject*)op)->m_ml->ml_doc;
19705#endif
19706 if (doc) {
19707 op->func_doc = PyUnicode_FromString(doc);
19708 if (unlikely(op->func_doc == NULL))
19709 return NULL;
19710 } else {
19711 Py_INCREF(Py_None);
19712 return Py_None;
19713 }
19714 }
19715 Py_INCREF(op->func_doc);
19716 return op->func_doc;
19717}
19718static PyObject *
19719__Pyx_CyFunction_get_doc(PyObject *op_in, void *closure) {
19720 PyObject *result;
19721 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19722 CYTHON_UNUSED_VAR(closure);
19723 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19724 result = __Pyx_CyFunction_get_doc_locked(op);
19725 __Pyx_END_CRITICAL_SECTION();
19726 return result;
19727}
19728static int
19729__Pyx_CyFunction_set_doc(PyObject *op_in, PyObject *value, void *context)
19730{
19731 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19732 CYTHON_UNUSED_VAR(context);
19733 if (value == NULL) {
19734 value = Py_None;
19735 }
19736 Py_INCREF(value);
19737 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19738 __Pyx_Py_XDECREF_SET(op->func_doc, value);
19739 __Pyx_END_CRITICAL_SECTION();
19740 return 0;
19741}
19742static PyObject *
19743__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
19744{
19745 if (unlikely(op->func_name == NULL)) {
19746#if CYTHON_COMPILING_IN_LIMITED_API
19747 const char *name = op->func_methoddef->ml_name;
19748#else
19749 const char *name = ((PyCFunctionObject*)op)->m_ml->ml_name;
19750#endif
19751 op->func_name = PyUnicode_InternFromString(name);
19752 if (unlikely(op->func_name == NULL))
19753 return NULL;
19754 }
19755 Py_INCREF(op->func_name);
19756 return op->func_name;
19757}
19758static PyObject *
19759__Pyx_CyFunction_get_name(PyObject *op, void *context)
19760{
19761 PyObject *result = NULL;
19762 CYTHON_UNUSED_VAR(context);
19763 __Pyx_BEGIN_CRITICAL_SECTION(op);
19764 result = __Pyx_CyFunction_get_name_locked(__Pyx_as_CyFunctionObject(op));
19765 __Pyx_END_CRITICAL_SECTION();
19766 return result;
19767}
19768static int
19769__Pyx_CyFunction_set_name(PyObject *op_in, PyObject *value, void *context)
19770{
19771 CYTHON_UNUSED_VAR(context);
19772 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
19773 PyErr_SetString(PyExc_TypeError,
19774 "__name__ must be set to a string object");
19775 return -1;
19776 }
19777 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19778 Py_INCREF(value);
19779 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19780 __Pyx_Py_XDECREF_SET(op->func_name, value);
19781 __Pyx_END_CRITICAL_SECTION();
19782 return 0;
19783}
19784static PyObject *
19785__Pyx_CyFunction_get_qualname(PyObject *op_in, void *context)
19786{
19787 CYTHON_UNUSED_VAR(context);
19788 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19789 PyObject *result;
19790 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19791 Py_INCREF(op->func_qualname);
19792 result = op->func_qualname;
19793 __Pyx_END_CRITICAL_SECTION();
19794 return result;
19795}
19796static int
19797__Pyx_CyFunction_set_qualname(PyObject *op_in, PyObject *value, void *context)
19798{
19799 CYTHON_UNUSED_VAR(context);
19800 if (unlikely(value == NULL || !PyUnicode_Check(value))) {
19801 PyErr_SetString(PyExc_TypeError,
19802 "__qualname__ must be set to a string object");
19803 return -1;
19804 }
19805 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19806 Py_INCREF(value);
19807 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19808 __Pyx_Py_XDECREF_SET(op->func_qualname, value);
19809 __Pyx_END_CRITICAL_SECTION();
19810 return 0;
19811}
19812#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
19813static PyObject *
19814__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
19815{
19816 CYTHON_UNUSED_VAR(context);
19817 if (unlikely(op->func_dict == NULL)) {
19818 op->func_dict = PyDict_New();
19819 if (unlikely(op->func_dict == NULL))
19820 return NULL;
19821 }
19822 Py_INCREF(op->func_dict);
19823 return op->func_dict;
19824}
19825#endif
19826static PyObject *
19827__Pyx_CyFunction_get_globals(PyObject *op_in, void *context)
19828{
19829 CYTHON_UNUSED_VAR(context);
19830 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19831 Py_INCREF(op->func_globals);
19832 return op->func_globals;
19833}
19834static PyObject *
19835__Pyx_CyFunction_get_closure(PyObject *op, void *context)
19836{
19837 CYTHON_UNUSED_VAR(op);
19838 CYTHON_UNUSED_VAR(context);
19839 Py_INCREF(Py_None);
19840 return Py_None;
19841}
19842static PyObject *
19843__Pyx_CyFunction_get_code(PyObject *op_in, void *context)
19844{
19845 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19846 PyObject* result = (op->func_code) ? op->func_code : Py_None;
19847 CYTHON_UNUSED_VAR(context);
19848 Py_INCREF(result);
19849 return result;
19850}
19851static int
19852__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op, PyObject *op_obj) {
19853 int result = 0;
19854 PyObject *res = op->defaults_getter(op_obj);
19855 if (unlikely(!res))
19856 return -1;
19857 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
19858 op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
19859 Py_INCREF(op->defaults_tuple);
19860 op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
19861 Py_INCREF(op->defaults_kwdict);
19862 #else
19863 op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
19864 if (unlikely(!op->defaults_tuple)) result = -1;
19865 else {
19866 op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
19867 if (unlikely(!op->defaults_kwdict)) result = -1;
19868 }
19869 #endif
19870 Py_DECREF(res);
19871 return result;
19872}
19873static int
19874__Pyx_CyFunction_set_defaults(PyObject *op_in, PyObject* value, void *context) {
19875 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19876 CYTHON_UNUSED_VAR(context);
19877 if (!value) {
19878 value = Py_None;
19879 } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
19880 PyErr_SetString(PyExc_TypeError,
19881 "__defaults__ must be set to a tuple object");
19882 return -1;
19883 }
19884 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
19885 "currently affect the values used in function calls", 1);
19886 Py_INCREF(value);
19887 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19888 __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
19889 __Pyx_END_CRITICAL_SECTION();
19890 return 0;
19891}
19892static PyObject *
19893__Pyx_CyFunction_get_defaults_locked(PyObject *op_in) {
19894 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19895 PyObject* result = op->defaults_tuple;
19896 if (unlikely(!result)) {
19897 if (op->defaults_getter) {
19898 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
19899 result = op->defaults_tuple;
19900 } else {
19901 result = Py_None;
19902 }
19903 }
19904 Py_INCREF(result);
19905 return result;
19906}
19907static PyObject *
19908__Pyx_CyFunction_get_defaults(PyObject *op, void *context) {
19909 PyObject* result = NULL;
19910 CYTHON_UNUSED_VAR(context);
19911 __Pyx_BEGIN_CRITICAL_SECTION(op);
19912 result = __Pyx_CyFunction_get_defaults_locked(op);
19913 __Pyx_END_CRITICAL_SECTION();
19914 return result;
19915}
19916static int
19917__Pyx_CyFunction_set_kwdefaults(PyObject *op_in, PyObject* value, void *context) {
19918 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19919 CYTHON_UNUSED_VAR(context);
19920 if (!value) {
19921 value = Py_None;
19922 } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
19923 PyErr_SetString(PyExc_TypeError,
19924 "__kwdefaults__ must be set to a dict object");
19925 return -1;
19926 }
19927 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
19928 "currently affect the values used in function calls", 1);
19929 Py_INCREF(value);
19930 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19931 __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
19932 __Pyx_END_CRITICAL_SECTION();
19933 return 0;
19934}
19935static PyObject *
19936__Pyx_CyFunction_get_kwdefaults_locked(PyObject *op_in) {
19937 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19938 PyObject* result = op->defaults_kwdict;
19939 if (unlikely(!result)) {
19940 if (op->defaults_getter) {
19941 if (unlikely(__Pyx_CyFunction_init_defaults(op, op_in) < 0)) return NULL;
19942 result = op->defaults_kwdict;
19943 } else {
19944 result = Py_None;
19945 }
19946 }
19947 Py_INCREF(result);
19948 return result;
19949}
19950static PyObject *
19951__Pyx_CyFunction_get_kwdefaults(PyObject *op, void *context) {
19952 PyObject* result;
19953 CYTHON_UNUSED_VAR(context);
19954 __Pyx_BEGIN_CRITICAL_SECTION(op);
19955 result = __Pyx_CyFunction_get_kwdefaults_locked(op);
19956 __Pyx_END_CRITICAL_SECTION();
19957 return result;
19958}
19959static int __Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value);
19960static int
19961__Pyx_CyFunction_set_annotations(PyObject *op_in, PyObject* value, void *context) {
19962 CYTHON_UNUSED_VAR(context);
19963 if (!value || value == Py_None) {
19964 value = NULL;
19965 } else if (unlikely(!PyDict_Check(value))) {
19966 PyErr_SetString(PyExc_TypeError,
19967 "__annotations__ must be set to a dict object");
19968 return -1;
19969 }
19970 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
19971 Py_XINCREF(value);
19972 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
19973 __Pyx_Py_XDECREF_SET(op->func_annotations, value);
19974 __Pyx_END_CRITICAL_SECTION();
19975 if (unlikely(__Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, Py_None) < 0)) return -1;
19976 return 0;
19977}
19978static int
19979__Pyx_CyFunction_get_dict_if_exists(PyObject *op_in, PyObject **dict) {
19980 /* Return 1 if the function dict exists, 0 otherwise. This cannot fail:
19981 * _PyObject_GetDictPtr() may clear errors internally, but never reports them. */
19982#if CYTHON_COMPILING_IN_PYPY
19983 *dict = PyObject_GenericGetDict(op_in, NULL);
19984#elif CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030C0000
19985 *dict = __Pyx_as_CyFunctionObject(op_in)->func_dict;
19986#else
19987 PyObject **dictptr = _PyObject_GetDictPtr(op_in);
19988 *dict = likely(dictptr) ? *dictptr : NULL;
19989#endif
19990 return *dict ? 1 : 0;
19991}
19992static int
19993__Pyx_CyFunction_get_annotate_from_dict_if_exists(PyObject *op_in, PyObject **annotate) {
19994 PyObject *dict;
19995 int dict_found;
19996 *annotate = NULL;
19997 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
19998 if (!dict_found) return 0;
19999 return __Pyx_PyDict_GetItemRef(dict, __pyx_mstate_global->__pyx_n_u_annotate, annotate);
20000}
20001static int
20002__Pyx_CyFunction_set_annotate_in_dict_if_exists(PyObject *op_in, PyObject *value) {
20003 PyObject *dict;
20004 int dict_found;
20005 dict_found = __Pyx_CyFunction_get_dict_if_exists(op_in, &dict);
20006 if (!dict_found) return 0;
20007 if (value) {
20008 return PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
20009 } else {
20010#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
20011 return PyDict_Pop(dict, __pyx_mstate_global->__pyx_n_u_annotate, NULL);
20012#else
20013 int result = PyDict_Contains(dict, __pyx_mstate_global->__pyx_n_u_annotate);
20014 if (result == 1) {
20015 result = PyDict_DelItem(dict, __pyx_mstate_global->__pyx_n_u_annotate);
20016 }
20017 return result;
20018#endif
20019 }
20020}
20021static int
20022__Pyx_CyFunction_set_annotate_in_dict(PyObject *op_in, PyObject *value) {
20023 PyObject *dict;
20024 int result;
20025#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
20026 dict = __Pyx_CyFunction_get_dict(__Pyx_as_CyFunctionObject(op_in), NULL);
20027#else
20028 dict = PyObject_GenericGetDict(op_in, NULL);
20029#endif
20030 if (unlikely(!dict)) return -1;
20031 result = PyDict_SetItem(dict, __pyx_mstate_global->__pyx_n_u_annotate, value);
20032 Py_DECREF(dict);
20033 return result;
20034}
20035static PyObject *
20036__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
20037 PyObject* result = op->func_annotations;
20038 if (unlikely(!result)) {
20039 result = PyDict_New();
20040 if (unlikely(!result)) return NULL;
20041 op->func_annotations = result;
20042 }
20043 Py_INCREF(result);
20044 return result;
20045}
20046static PyObject *
20047__Pyx_CyFunction_get_annotations(PyObject *op_in, void *context) {
20048 PyObject *annotate = NULL;
20049 PyObject *result = NULL;
20050 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20051 CYTHON_UNUSED_VAR(context);
20052 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20053 result = __Pyx_XNewRef(op->func_annotations);
20054 __Pyx_END_CRITICAL_SECTION();
20055 if (result) return result;
20056 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
20057 if (!annotate || annotate == Py_None) {
20058 Py_XDECREF(annotate);
20059 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20060 result = __Pyx_CyFunction_get_annotations_locked(op);
20061 __Pyx_END_CRITICAL_SECTION();
20062 return result;
20063 }
20064 PyObject *format = PyLong_FromLong(1L); // annotationlib.Format.VALUE
20065 if (likely(format)) {
20066 if (!Py_EnterRecursiveCall(" cyfunction __annotations__.__get__")) {
20067 result = __Pyx_PyObject_CallOneArg(annotate, format);
20068 Py_LeaveRecursiveCall();
20069 Py_DECREF(format);
20070 }
20071 }
20072 Py_DECREF(annotate);
20073 if (unlikely(!result)) return NULL;
20074 if (unlikely(!PyDict_Check(result))) {
20075 PyErr_SetString(PyExc_TypeError, "__annotate__ must return a dict");
20076 Py_DECREF(result);
20077 return NULL;
20078 }
20079 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20080 __Pyx_Py_XDECREF_SET(op->func_annotations, __Pyx_NewRef(result));
20081 __Pyx_END_CRITICAL_SECTION();
20082 return result;
20083}
20084static PyObject *__Pyx_CyFunction_annotate_impl(PyObject *self, PyObject *arg) {
20085 CYTHON_UNUSED_VAR(arg);
20086 if (unlikely(!self)) {
20087 PyErr_SetString(PyExc_SystemError, "cython __annotate__ called without 'self' argument");
20088 return NULL;
20089 }
20090 PyObject *result;
20091 if (Py_EnterRecursiveCall(" in cyfunction annotate")) {
20092 return NULL;
20093 }
20094 result = __Pyx_CyFunction_get_annotations(self, NULL);
20095 Py_LeaveRecursiveCall();
20096 return result;
20097}
20098static PyObject *
20099__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context);
20100static int
20101__Pyx_CyFunction_set_annotate(PyObject *op_in, PyObject* value, void *context) {
20102 CYTHON_UNUSED_VAR(context);
20103 if (value == NULL) {
20104 PyErr_SetString(PyExc_TypeError, "__annotate__ cannot be deleted");
20105 return -1;
20106 }
20107 if (unlikely(value != Py_None && !PyCallable_Check(value))) {
20108 PyErr_SetString(PyExc_TypeError, "__annotate__ must be callable or None");
20109 return -1;
20110 }
20111 if (unlikely(__Pyx_TypeCheck(value, &PyCFunction_Type))) {
20112#if !CYTHON_ASSUME_SAFE_MACROS && !CYTHON_COMPILING_IN_PYPY
20113 PyCFunction cfunction = PyCFunction_GetFunction(value);
20114 if (unlikely(!cfunction)) return -1;
20115 PyObject *value_self = PyCFunction_GetSelf(value);
20116 if (unlikely(!value_self && PyErr_Occurred())) return -1;
20117#else
20118 PyCFunction cfunction = PyCFunction_GET_FUNCTION(value);
20119 PyObject *value_self = PyCFunction_GET_SELF(value);
20120#endif
20121 if (cfunction == __Pyx_CyFunction_annotate_impl && value_self == op_in) {
20122 return __Pyx_CyFunction_set_annotate_in_dict_if_exists(op_in, NULL);
20123 }
20124 }
20125 if (value != Py_None) {
20126 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20127 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20128 Py_CLEAR(op->func_annotations);
20129 __Pyx_END_CRITICAL_SECTION();
20130 }
20131 return __Pyx_CyFunction_set_annotate_in_dict(op_in, value);
20132}
20133#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
20134static PyObject *
20135__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
20136 int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
20137 if (is_coroutine) {
20138 PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
20139 fromlist = PyList_New(1);
20140 if (unlikely(!fromlist)) return NULL;
20141 Py_INCREF(marker);
20142#if CYTHON_ASSUME_SAFE_MACROS
20143 PyList_SET_ITEM(fromlist, 0, marker);
20144#else
20145 if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
20146 Py_DECREF(fromlist);
20147 return NULL;
20148 }
20149#endif
20150 module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
20151 Py_DECREF(fromlist);
20152 if (unlikely(!module)) {
20153 goto ignore_or_error;
20154 }
20155 is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
20156 Py_DECREF(module);
20157 if (likely(is_coroutine_value)) {
20158 return is_coroutine_value;
20159 }
20160ignore_or_error:
20161 if (!__Pyx_IgnoreException(PyExc_Exception)) {
20162 return NULL;
20163 }
20164 }
20165 return __Pyx_PyBool_FromLong(is_coroutine);
20166}
20167static PyObject *
20168__Pyx_CyFunction_get_is_coroutine(PyObject *op_in, void *context) {
20169 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20170 PyObject *result;
20171 CYTHON_UNUSED_VAR(context);
20172 if (op->func_is_coroutine) {
20173 return __Pyx_NewRef(op->func_is_coroutine);
20174 }
20175 result = __Pyx_CyFunction_get_is_coroutine_value(op);
20176 if (unlikely(!result))
20177 return NULL;
20178 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20179 if (op->func_is_coroutine) {
20180 Py_DECREF(result);
20181 result = __Pyx_NewRef(op->func_is_coroutine);
20182 } else {
20183 op->func_is_coroutine = __Pyx_NewRef(result);
20184 }
20185 __Pyx_END_CRITICAL_SECTION();
20186 return result;
20187}
20188#endif
20189static void __Pyx_CyFunction_raise_argument_count_error(PyObject *func, const char* message, Py_ssize_t size) {
20190#if CYTHON_COMPILING_IN_LIMITED_API
20191 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
20192 if (!py_name) return;
20193 PyErr_Format(PyExc_TypeError,
20194 "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
20195 py_name, message, size);
20196 Py_DECREF(py_name);
20197#else
20198 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
20199 PyErr_Format(PyExc_TypeError,
20200 "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
20201 name, message, size);
20202#endif
20203}
20204static void __Pyx_CyFunction_raise_type_error(PyObject *func, const char* message) {
20205#if CYTHON_COMPILING_IN_LIMITED_API
20206 PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
20207 if (!py_name) return;
20208 PyErr_Format(PyExc_TypeError,
20209 "%.200S() %s",
20210 py_name, message);
20211 Py_DECREF(py_name);
20212#else
20213 const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
20214 PyErr_Format(PyExc_TypeError,
20215 "%.200s() %s",
20216 name, message);
20217#endif
20218}
20219#if CYTHON_COMPILING_IN_LIMITED_API
20220static PyObject *
20221__Pyx_CyFunction_get_module(PyObject *op_in, void *context) {
20222 CYTHON_UNUSED_VAR(context);
20223 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20224 Py_INCREF(op->func_module);
20225 return op->func_module;
20226}
20227static int
20228__Pyx_CyFunction_set_module(PyObject *op_in, PyObject* value, void *context) {
20229 CYTHON_UNUSED_VAR(context);
20230 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20231 if (value == NULL) {
20232 value = Py_None;
20233 }
20234 Py_INCREF(value);
20235 PyObject *old = op->func_module;
20236 op->func_module = value;
20237 Py_DECREF(old);
20238 return 0;
20239}
20240#endif
20241static PyGetSetDef __pyx_CyFunction_getsets[] = {
20242 {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
20243 {"__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
20244 {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
20245 {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
20246 {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
20247#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
20248 {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
20249 {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
20250#else
20251 {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
20252 {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
20253#endif
20254 {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
20255 {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
20256 {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
20257 {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
20258 {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
20259 {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
20260 {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
20261 {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
20262 {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
20263 {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
20264 {"__annotate__", (getter)__Pyx_CyFunction_get_annotate, (setter)__Pyx_CyFunction_set_annotate, 0, 0},
20265#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
20266 {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
20267#endif
20268#if CYTHON_COMPILING_IN_LIMITED_API
20269 {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
20270#endif
20271 {0, 0, 0, 0, 0}
20272};
20273static PyMemberDef __pyx_CyFunction_members[] = {
20274#if !CYTHON_COMPILING_IN_LIMITED_API
20275 {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
20276#endif
20277#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
20278 {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict),
20279 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
20280#endif
20281#if CYTHON_VECTORCALL
20282#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
20283 {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall),
20284 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
20285#else
20286 {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
20287#endif
20288#if CYTHON_COMPILING_IN_LIMITED_API
20289 {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist),
20290 __PYX_SHARED_RELATIVE_OFFSET | READONLY, 0},
20291#else
20292 {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
20293#endif
20294#endif
20295 {0, 0, 0, 0, 0}
20296};
20297static PyObject *
20298__Pyx_CyFunction_reduce(PyObject *m_in, PyObject *args)
20299{
20300 PyObject *result = NULL;
20301 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
20302 CYTHON_UNUSED_VAR(args);
20303 __Pyx_BEGIN_CRITICAL_SECTION(m_in);
20304 Py_INCREF(m->func_qualname);
20305 result = m->func_qualname;
20306 __Pyx_END_CRITICAL_SECTION();
20307 return result;
20308}
20309static PyMethodDef __pyx_CyFunction_methods[] = {
20310 {"__annotate_cython__", __Pyx_CyFunction_annotate_impl, METH_O,
20311 "Placeholder __annotate__ function to allow 'functools.wraps' to work "
20312 "on Cython functions."},
20313 {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_NOARGS, 0},
20314 {0, 0, 0, 0}
20315};
20316static PyObject *
20317__Pyx_CyFunction_get_annotate(PyObject *op_in, void *context) {
20318 PyObject *annotate = NULL;
20319 CYTHON_UNUSED_VAR(context);
20320 if (unlikely(__Pyx_CyFunction_get_annotate_from_dict_if_exists(op_in, &annotate) < 0)) return NULL;
20321 if (annotate) return annotate;
20322 PyObject *method = PyCFunction_New(
20323 &__pyx_CyFunction_methods[0],
20324 op_in);
20325 return method;
20326}
20327#if CYTHON_COMPILING_IN_LIMITED_API
20328#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
20329#else
20330#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
20331#endif
20332static PyObject *__Pyx_CyFunction_Init(PyObject *op_in,
20333 PyMethodDef *ml, int flags, PyObject* qualname,
20334 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
20335 __pyx_CyFunctionObject* op = __Pyx_as_CyFunctionObject(op_in);
20336#if !CYTHON_COMPILING_IN_LIMITED_API
20337 PyCFunctionObject *cf = (PyCFunctionObject*) op;
20338#endif
20339 if (unlikely(op == NULL))
20340 return NULL;
20341#if CYTHON_COMPILING_IN_LIMITED_API
20342 op->func_methoddef = ml;
20343 Py_INCREF(module);
20344 op->func_module = module;
20345#endif
20346 op->flags = flags;
20347 __Pyx_CyFunction_weakreflist(op) = NULL;
20348#if !CYTHON_COMPILING_IN_LIMITED_API
20349 cf->m_ml = ml;
20350 cf->m_self = (PyObject *) op;
20351#endif
20352 Py_XINCREF(closure);
20353 op->func_closure = closure;
20354#if !CYTHON_COMPILING_IN_LIMITED_API
20355 Py_XINCREF(module);
20356 cf->m_module = module;
20357#endif
20358#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
20359 op->func_dict = NULL;
20360#endif
20361 op->func_name = NULL;
20362 Py_INCREF(qualname);
20363 op->func_qualname = qualname;
20364 op->func_doc = NULL;
20365#if CYTHON_COMPILING_IN_LIMITED_API
20366 op->func_classobj = NULL;
20367#else
20368 ((PyCMethodObject*)op)->mm_class = NULL;
20369#endif
20370 op->func_globals = globals;
20371 Py_INCREF(op->func_globals);
20372 Py_XINCREF(code);
20373 op->func_code = code;
20374 op->defaults = NULL;
20375 op->defaults_tuple = NULL;
20376 op->defaults_kwdict = NULL;
20377 op->defaults_getter = NULL;
20378 op->func_annotations = NULL;
20379#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
20380 op->func_is_coroutine = NULL;
20381#endif
20382#if CYTHON_VECTORCALL
20383 switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
20384 case METH_NOARGS:
20385 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
20386 break;
20387 case METH_O:
20388 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
20389 break;
20390 case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
20391 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
20392 break;
20393 case METH_FASTCALL | METH_KEYWORDS:
20394 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
20395 break;
20396 case METH_VARARGS | METH_KEYWORDS:
20397 __Pyx_CyFunction_func_vectorcall(op) = NULL;
20398 break;
20399 default:
20400 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
20401 Py_DECREF(op_in);
20402 return NULL;
20403 }
20404#endif
20405 return op_in;
20406}
20407static int __Pyx__CyFunction_clear(__pyx_CyFunctionObject *m)
20408{
20409 Py_CLEAR(m->func_closure);
20410#if CYTHON_COMPILING_IN_LIMITED_API
20411 Py_CLEAR(m->func_module);
20412#else
20413 Py_CLEAR(((PyCFunctionObject*)m)->m_module);
20414#endif
20415#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
20416 Py_CLEAR(m->func_dict);
20417#elif PY_VERSION_HEX < 0x030d0000
20418 _PyObject_ClearManagedDict((PyObject*)m);
20419#else
20420 PyObject_ClearManagedDict((PyObject*)m);
20421#endif
20422 Py_CLEAR(m->func_name);
20423 Py_CLEAR(m->func_qualname);
20424 Py_CLEAR(m->func_doc);
20425 Py_CLEAR(m->func_globals);
20426 Py_CLEAR(m->func_code);
20427#if CYTHON_COMPILING_IN_LIMITED_API
20428 Py_CLEAR(m->func_classobj);
20429#else
20430 {
20431 PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
20432 ((PyCMethodObject *) (m))->mm_class = NULL;
20433 Py_XDECREF(cls);
20434 }
20435#endif
20436 Py_CLEAR(m->defaults_tuple);
20437 Py_CLEAR(m->defaults_kwdict);
20438 Py_CLEAR(m->func_annotations);
20439#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
20440 Py_CLEAR(m->func_is_coroutine);
20441#endif
20442 Py_CLEAR(m->defaults);
20443 return 0;
20444}
20445static int
20446__Pyx_CyFunction_clear(PyObject *m)
20447{
20448 return __Pyx__CyFunction_clear(__Pyx_as_CyFunctionObject(m));
20449}
20450static void __Pyx__CyFunction_dealloc(PyObject *m)
20451{
20452 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(m);
20453 if (__Pyx_CyFunction_weakreflist(cyfunc) != NULL)
20454 PyObject_ClearWeakRefs(m);
20455 __Pyx__CyFunction_clear(cyfunc);
20456 __Pyx_PyHeapTypeObject_GC_Del(m);
20457}
20458static void __Pyx_CyFunction_dealloc(PyObject *m)
20459{
20460 PyObject_GC_UnTrack(m);
20461 __Pyx__CyFunction_dealloc(m);
20462}
20463static int __Pyx_CyFunction_traverse(PyObject *m_in, visitproc visit, void *arg)
20464{
20465 __pyx_CyFunctionObject *m = __Pyx_as_CyFunctionObject(m_in);
20466 {
20467 int e = __Pyx_call_type_traverse(m_in, 1, visit, arg);
20468 if (e) return e;
20469 }
20470 Py_VISIT(m->func_closure);
20471#if CYTHON_COMPILING_IN_LIMITED_API
20472 Py_VISIT(m->func_module);
20473#else
20474 Py_VISIT(((PyCFunctionObject*)m)->m_module);
20475#endif
20476#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
20477 Py_VISIT(m->func_dict);
20478#else
20479 {
20480 int e =
20481#if PY_VERSION_HEX < 0x030d0000
20482 _PyObject_VisitManagedDict
20483#else
20484 PyObject_VisitManagedDict
20485#endif
20486 ((PyObject*)m, visit, arg);
20487 if (e != 0) return e;
20488 }
20489#endif
20490 __Pyx_VISIT_CONST(m->func_name);
20491 __Pyx_VISIT_CONST(m->func_qualname);
20492 Py_VISIT(m->func_doc);
20493 Py_VISIT(m->func_globals);
20494 __Pyx_VISIT_CONST(m->func_code);
20495 Py_VISIT(__Pyx__CyFunction_GetClassObj(m));
20496 Py_VISIT(m->defaults_tuple);
20497 Py_VISIT(m->defaults_kwdict);
20498 Py_VISIT(m->func_annotations);
20499#if __PYX_LIMITED_VERSION_HEX < 0x030B0000
20500 Py_VISIT(m->func_is_coroutine);
20501#endif
20502 Py_VISIT(m->defaults);
20503 return 0;
20504}
20505static PyObject*
20506__Pyx_CyFunction_repr(PyObject *op_in)
20507{
20508 __pyx_CyFunctionObject *op = __Pyx_as_CyFunctionObject(op_in);
20509 PyObject *repr;
20510 __Pyx_BEGIN_CRITICAL_SECTION(op_in);
20511 repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
20512 op->func_qualname, (void *)op);
20513 __Pyx_END_CRITICAL_SECTION();
20514 return repr;
20515}
20516static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
20517#if CYTHON_COMPILING_IN_LIMITED_API
20518 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20519 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
20520 int flags = cyfunc->func_methoddef->ml_flags;
20521#else
20522 PyCFunctionObject* f = (PyCFunctionObject*)func;
20523 PyCFunction meth = f->m_ml->ml_meth;
20524 int flags = f->m_ml->ml_flags;
20525#endif
20526 Py_ssize_t size;
20527 switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
20528 case METH_VARARGS:
20529 if (likely(kw == NULL || PyDict_Size(kw) == 0))
20530 return (*meth)(self, arg);
20531 break;
20532 case METH_VARARGS | METH_KEYWORDS:
20533 return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
20534 case METH_NOARGS:
20535 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
20536#if CYTHON_ASSUME_SAFE_SIZE
20537 size = PyTuple_GET_SIZE(arg);
20538#else
20539 size = PyTuple_Size(arg);
20540 if (unlikely(size < 0)) return NULL;
20541#endif
20542 if (likely(size == 0))
20543 return (*meth)(self, NULL);
20544 __Pyx_CyFunction_raise_argument_count_error(
20545 func,
20546 "takes no arguments", size);
20547 return NULL;
20548 }
20549 break;
20550 case METH_O:
20551 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
20552#if CYTHON_ASSUME_SAFE_SIZE
20553 size = PyTuple_GET_SIZE(arg);
20554#else
20555 size = PyTuple_Size(arg);
20556 if (unlikely(size < 0)) return NULL;
20557#endif
20558 if (likely(size == 1)) {
20559 PyObject *result, *arg0;
20560 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20561 arg0 = PyTuple_GET_ITEM(arg, 0);
20562 #else
20563 arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
20564 #endif
20565 result = (*meth)(self, arg0);
20566 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
20567 Py_DECREF(arg0);
20568 #endif
20569 return result;
20570 }
20571 __Pyx_CyFunction_raise_argument_count_error(
20572 func,
20573 "takes exactly one argument", size);
20574 return NULL;
20575 }
20576 break;
20577 default:
20578 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
20579 return NULL;
20580 }
20581 __Pyx_CyFunction_raise_type_error(
20582 func, "takes no keyword arguments");
20583 return NULL;
20584}
20585static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
20586 PyObject *result;
20587 result = __Pyx_CyFunction_CallMethod(func, func, arg, kw);
20588 return result;
20589}
20590static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
20591 PyObject *result;
20592 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20593#if CYTHON_VECTORCALL
20594 __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
20595 if (vc) {
20596#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
20597 return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
20598#else
20599 (void) &__Pyx_PyVectorcall_FastCallDict;
20600 return PyVectorcall_Call(func, args, kw);
20601#endif
20602 }
20603#endif
20604 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
20605 Py_ssize_t argc;
20606 PyObject *new_args;
20607 PyObject *self;
20608#if CYTHON_ASSUME_SAFE_SIZE
20609 argc = PyTuple_GET_SIZE(args);
20610#else
20611 argc = PyTuple_Size(args);
20612 if (unlikely(argc < 0)) return NULL;
20613#endif
20614 new_args = PyTuple_GetSlice(args, 1, argc);
20615 if (unlikely(!new_args))
20616 return NULL;
20617 self = PyTuple_GetItem(args, 0);
20618 if (unlikely(!self)) {
20619 Py_DECREF(new_args);
20620 PyErr_Format(PyExc_TypeError,
20621 "unbound method %.200S() needs an argument",
20622 cyfunc->func_qualname);
20623 return NULL;
20624 }
20625 result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
20626 Py_DECREF(new_args);
20627 } else {
20628 result = __Pyx_CyFunction_Call(func, args, kw);
20629 }
20630 return result;
20631}
20632#if CYTHON_VECTORCALL
20633static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(PyObject *func, __pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
20634{
20635 int ret = 0;
20636 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
20637 if (unlikely(nargs < 1)) {
20638 __Pyx_CyFunction_raise_type_error(
20639 func, "needs an argument");
20640 return -1;
20641 }
20642 ret = 1;
20643 }
20644 if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
20645 __Pyx_CyFunction_raise_type_error(
20646 func, "takes no keyword arguments");
20647 return -1;
20648 }
20649 return ret;
20650}
20651static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
20652{
20653 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20654 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
20655 PyObject *self;
20656#if CYTHON_COMPILING_IN_LIMITED_API
20657 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
20658 if (unlikely(!meth)) return NULL;
20659#else
20660 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
20661#endif
20662 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
20663 case 1:
20664 self = args[0];
20665 args += 1;
20666 nargs -= 1;
20667 break;
20668 case 0:
20669 self = func;
20670 break;
20671 default:
20672 return NULL;
20673 }
20674 if (unlikely(nargs != 0)) {
20675 __Pyx_CyFunction_raise_argument_count_error(
20676 func, "takes no arguments", nargs);
20677 return NULL;
20678 }
20679 return meth(self, NULL);
20680}
20681static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
20682{
20683 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20684 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
20685 PyObject *self;
20686#if CYTHON_COMPILING_IN_LIMITED_API
20687 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
20688 if (unlikely(!meth)) return NULL;
20689#else
20690 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
20691#endif
20692 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, kwnames)) {
20693 case 1:
20694 self = args[0];
20695 args += 1;
20696 nargs -= 1;
20697 break;
20698 case 0:
20699 self = func;
20700 break;
20701 default:
20702 return NULL;
20703 }
20704 if (unlikely(nargs != 1)) {
20705 __Pyx_CyFunction_raise_argument_count_error(
20706 func, "takes exactly one argument", nargs);
20707 return NULL;
20708 }
20709 return meth(self, args[0]);
20710}
20711static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
20712{
20713 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20714 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
20715 PyObject *self;
20716#if CYTHON_COMPILING_IN_LIMITED_API
20717 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
20718 if (unlikely(!meth)) return NULL;
20719#else
20720 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
20721#endif
20722 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
20723 case 1:
20724 self = args[0];
20725 args += 1;
20726 nargs -= 1;
20727 break;
20728 case 0:
20729 self = func;
20730 break;
20731 default:
20732 return NULL;
20733 }
20734 return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
20735}
20736static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
20737{
20738 __pyx_CyFunctionObject *cyfunc = __Pyx_as_CyFunctionObject(func);
20739 PyTypeObject *cls = (PyTypeObject *) __Pyx__CyFunction_GetClassObj(cyfunc);
20740 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
20741 PyObject *self;
20742#if CYTHON_COMPILING_IN_LIMITED_API
20743 PyCFunction meth = cyfunc->func_methoddef->ml_meth;
20744 if (unlikely(!meth)) return NULL;
20745#else
20746 PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
20747#endif
20748 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(func, cyfunc, nargs, NULL)) {
20749 case 1:
20750 self = args[0];
20751 args += 1;
20752 nargs -= 1;
20753 break;
20754 case 0:
20755 self = func;
20756 break;
20757 default:
20758 return NULL;
20759 }
20760 #if PY_VERSION_HEX < 0x030e00A6
20761 size_t nargs_value = (size_t) nargs;
20762 #else
20763 Py_ssize_t nargs_value = nargs;
20764 #endif
20765 return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
20766}
20767#endif
20768static PyType_Slot __pyx_CyFunctionType_slots[] = {
20769 {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
20770 {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
20771 {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
20772 {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
20773 {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
20774 {Py_tp_methods, (void *)__pyx_CyFunction_methods},
20775 {Py_tp_members, (void *)__pyx_CyFunction_members},
20776 {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
20777 {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
20778 {0, 0},
20779};
20780static PyType_Spec __pyx_CyFunctionType_spec = {
20781 __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
20782 __PYX_SHARED_SIZEOF(__pyx_CyFunctionObject),
20783 0,
20784#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
20785 Py_TPFLAGS_METHOD_DESCRIPTOR |
20786#endif
20787#if CYTHON_VECTORCALL
20788#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
20789 Py_TPFLAGS_HAVE_VECTORCALL |
20790#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
20791 _Py_TPFLAGS_HAVE_VECTORCALL |
20792#endif
20793#endif // CYTHON_VECTORCALL
20794#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
20795 Py_TPFLAGS_MANAGED_DICT |
20796#endif
20797 Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
20798 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
20799 __pyx_CyFunctionType_slots
20800};
20801static int __pyx_CyFunction_init(PyObject *module) {
20802 __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
20803 mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
20804 mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
20805 if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
20806 return -1;
20807 }
20808 return 0;
20809}
20810
20811/* CythonFunction */
20812static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
20813 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
20814 (void)&__Pyx_Get_CyFunction_Type;
20815 PyObject *op = __Pyx_CyFunction_Init(
20816 PyObject_GC_New(PyObject, __pyx_mstate_global->__pyx_CyFunctionType),
20817 ml, flags, qualname, closure, module, globals, code
20818 );
20819 if (likely(op)) {
20820 PyObject_GC_Track(op);
20821 }
20822 return op;
20823}
20824static PyTypeObject *__Pyx_Get_CyFunction_Type(void) {
20825 PyTypeObject *tp = __pyx_mstate_global->__pyx_CyFunctionType;
20826 Py_INCREF((PyObject*)tp);
20827 return tp;
20828}
20829
20830/* CalculateMetaclass (used by Py3ClassCreate) */
20831static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
20832 Py_ssize_t i, nbases;
20833#if CYTHON_ASSUME_SAFE_SIZE
20834 nbases = PyTuple_GET_SIZE(bases);
20835#else
20836 nbases = PyTuple_Size(bases);
20837 if (nbases < 0) return NULL;
20838#endif
20839 for (i=0; i < nbases; i++) {
20840 PyTypeObject *tmptype;
20841#if CYTHON_ASSUME_SAFE_MACROS
20842 PyObject *tmp = PyTuple_GET_ITEM(bases, i);
20843#else
20844 PyObject *tmp = PyTuple_GetItem(bases, i);
20845 if (!tmp) return NULL;
20846#endif
20847 tmptype = Py_TYPE(tmp);
20848 if (!metaclass) {
20849 metaclass = tmptype;
20850 continue;
20851 }
20852 if (PyType_IsSubtype(metaclass, tmptype))
20853 continue;
20854 if (PyType_IsSubtype(tmptype, metaclass)) {
20855 metaclass = tmptype;
20856 continue;
20857 }
20858 PyErr_SetString(PyExc_TypeError,
20859 "metaclass conflict: "
20860 "the metaclass of a derived class "
20861 "must be a (non-strict) subclass "
20862 "of the metaclasses of all its bases");
20863 return NULL;
20864 }
20865 if (!metaclass) {
20866 metaclass = &PyType_Type;
20867 }
20868 Py_INCREF((PyObject*) metaclass);
20869 return (PyObject*) metaclass;
20870}
20871
20872/* PyObjectCall2Args (used by Py3ClassCreate) */
20873static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
20874 PyObject *args[3] = {NULL, arg1, arg2};
20875 return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
20876}
20877
20878/* PyObjectLookupSpecial (used by Py3ClassCreate) */
20879#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
20880static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
20881 PyObject *res;
20882 PyTypeObject *tp = Py_TYPE(obj);
20883 res = _PyType_Lookup(tp, attr_name);
20884 if (likely(res)) {
20885 descrgetfunc f = Py_TYPE(res)->tp_descr_get;
20886 if (!f) {
20887 Py_INCREF(res);
20888 } else {
20889 res = f(res, obj, (PyObject *)tp);
20890 }
20891 } else if (with_error) {
20892 PyErr_SetObject(PyExc_AttributeError, attr_name);
20893 }
20894 return res;
20895}
20896#endif
20897
20898/* Py3ClassCreate */
20899static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
20900 PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
20901 PyObject *ns;
20902 if (metaclass) {
20903 PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);
20904 if (prep) {
20905 PyObject *pargs[3] = {NULL, name, bases};
20906 ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
20907 Py_DECREF(prep);
20908 } else {
20909 if (unlikely(PyErr_Occurred()))
20910 return NULL;
20911 ns = PyDict_New();
20912 }
20913 } else {
20914 ns = PyDict_New();
20915 }
20916 if (unlikely(!ns))
20917 return NULL;
20918 if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;
20919 if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;
20920 if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;
20921 return ns;
20922bad:
20923 Py_DECREF(ns);
20924 return NULL;
20925}
20926static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
20927 PyObject *dict, PyObject *mkw,
20928 int calculate_metaclass, int allow_py2_metaclass) {
20929 PyObject *result;
20930 PyObject *owned_metaclass = NULL;
20931 PyObject *margs[4] = {NULL, name, bases, dict};
20932 if (allow_py2_metaclass) {
20933 owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);
20934 if (owned_metaclass) {
20935 metaclass = owned_metaclass;
20936 } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
20937 PyErr_Clear();
20938 } else {
20939 return NULL;
20940 }
20941 }
20942 if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
20943 metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
20944 Py_XDECREF(owned_metaclass);
20945 if (unlikely(!metaclass))
20946 return NULL;
20947 owned_metaclass = metaclass;
20948 }
20949 result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
20950 Py_XDECREF(owned_metaclass);
20951 return result;
20952}
20953
20954/* CLineInTraceback (used by AddTraceback) */
20955#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
20956#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
20957#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
20958#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
20959#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
20960#else
20961PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
20962 PyObject **dict_ptr = _PyObject_GetDictPtr(o);
20963 return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
20964}
20965#endif
20966static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
20967 PyObject *use_cline = NULL;
20968 PyObject *ptype, *pvalue, *ptraceback;
20969 PyObject *cython_runtime_dict;
20970 CYTHON_MAYBE_UNUSED_VAR(tstate);
20971 if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
20972 return c_line;
20973 }
20974 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
20975 cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
20976 if (likely(cython_runtime_dict)) {
20977 __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
20978 use_cline, cython_runtime_dict,
20979 __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
20980 }
20981 if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
20982 c_line = 0;
20983 }
20984 Py_XDECREF(use_cline);
20985 Py_XDECREF(cython_runtime_dict);
20986 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
20987 return c_line;
20988}
20989#endif
20990
20991/* CodeObjectCache (used by AddTraceback) */
20992static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
20993 int start = 0, mid = 0, end = count - 1;
20994 if (end >= 0 && code_line > entries[end].code_line) {
20995 return count;
20996 }
20997 while (start < end) {
20998 mid = start + (end - start) / 2;
20999 if (code_line < entries[mid].code_line) {
21000 end = mid;
21001 } else if (code_line > entries[mid].code_line) {
21002 start = mid + 1;
21003 } else {
21004 return mid;
21005 }
21006 }
21007 if (code_line <= entries[mid].code_line) {
21008 return mid;
21009 } else {
21010 return mid + 1;
21011 }
21012}
21013static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
21014 __Pyx_CachedCodeObjectType* code_object;
21015 int pos;
21016 if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
21017 return NULL;
21018 }
21019 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
21020 if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
21021 return NULL;
21022 }
21023 code_object = code_cache->entries[pos].code_object;
21024 Py_INCREF(code_object);
21025 return code_object;
21026}
21027static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
21028#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
21029 (void)__pyx__find_code_object;
21030 return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
21031#else
21032 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
21033#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
21034 __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
21035 if (old_count < 0) {
21036 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
21037 return NULL;
21038 }
21039#endif
21040 __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
21041#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
21042 __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
21043#endif
21044 return result;
21045#endif
21046}
21047static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
21048{
21049 int pos, i;
21050 __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
21051 if (unlikely(!code_line)) {
21052 return;
21053 }
21054 if (unlikely(!entries)) {
21055 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
21056 if (likely(entries)) {
21057 code_cache->entries = entries;
21058 code_cache->max_count = 64;
21059 code_cache->count = 1;
21060 entries[0].code_line = code_line;
21061 entries[0].code_object = code_object;
21062 Py_INCREF(code_object);
21063 }
21064 return;
21065 }
21066 pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
21067 if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
21068 __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
21069 entries[pos].code_object = code_object;
21070 Py_INCREF(code_object);
21071 Py_DECREF(tmp);
21072 return;
21073 }
21074 if (code_cache->count == code_cache->max_count) {
21075 int new_max = code_cache->max_count + 64;
21076 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
21077 code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
21078 if (unlikely(!entries)) {
21079 return;
21080 }
21081 code_cache->entries = entries;
21082 code_cache->max_count = new_max;
21083 }
21084 for (i=code_cache->count; i>pos; i--) {
21085 entries[i] = entries[i-1];
21086 }
21087 entries[pos].code_line = code_line;
21088 entries[pos].code_object = code_object;
21089 code_cache->count++;
21090 Py_INCREF(code_object);
21091}
21092static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
21093#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
21094 (void)__pyx__insert_code_object;
21095 return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
21096#else
21097 struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
21098#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
21099 __pyx_nonatomic_int_type expected = 0;
21100 if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
21101 return;
21102 }
21103#endif
21104 __pyx__insert_code_object(code_cache, code_line, code_object);
21105#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
21106 __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
21107#endif
21108#endif
21109}
21110
21111/* AddTraceback */
21112#include "compile.h"
21113#include "frameobject.h"
21114#include "traceback.h"
21115#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
21116 #ifndef Py_BUILD_CORE
21117 #define Py_BUILD_CORE 1
21118 #endif
21119 #include "internal/pycore_frame.h"
21120#endif
21121#if CYTHON_COMPILING_IN_LIMITED_API
21122static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
21123 PyObject *firstlineno, PyObject *name) {
21124 PyObject *replace = NULL;
21125 if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
21126 if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
21127 replace = PyObject_GetAttrString(code, "replace");
21128 if (likely(replace)) {
21129 PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
21130 Py_DECREF(replace);
21131 return result;
21132 }
21133 return NULL;
21134}
21135static void __Pyx_AddTraceback(const char *funcname, int c_line,
21136 int py_line, const char *filename) {
21137 PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
21138 PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
21139 PyObject *exc_type, *exc_value, *exc_traceback;
21140 int success = 0;
21141 if (c_line) {
21142 c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
21143 }
21144 __Pyx_PyErr_FetchException(&exc_type, &exc_value, &exc_traceback);
21145 code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
21146 if (!code_object) {
21147 code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
21148 if (unlikely(!code_object)) goto bad;
21149 py_py_line = PyLong_FromLong(py_line);
21150 if (unlikely(!py_py_line)) goto bad;
21151 if (c_line) {
21152 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
21153 } else {
21154 py_funcname = PyUnicode_FromString(funcname);
21155 }
21156 if (unlikely(!py_funcname)) goto bad;
21157 dict = PyDict_New();
21158 if (unlikely(!dict)) goto bad;
21159 {
21160 PyObject *old_code_object = code_object;
21161 code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
21162 Py_DECREF(old_code_object);
21163 }
21164 if (unlikely(!code_object)) goto bad;
21165 __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
21166 } else {
21167 dict = PyDict_New();
21168 }
21169 getframe = PySys_GetObject("_getframe");
21170 if (unlikely(!getframe)) goto bad;
21171 if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
21172 frame = PyEval_EvalCode(code_object, dict, dict);
21173 if (unlikely(!frame) || frame == Py_None) goto bad;
21174 success = 1;
21175 bad:
21176 __Pyx_PyErr_RestoreException(exc_type, exc_value, exc_traceback);
21177 Py_XDECREF(code_object);
21178 Py_XDECREF(py_py_line);
21179 Py_XDECREF(py_funcname);
21180 Py_XDECREF(dict);
21181 Py_XDECREF(replace);
21182 if (success) {
21183 PyTraceBack_Here(
21184 (struct _frame*)frame);
21185 }
21186 Py_XDECREF(frame);
21187}
21188#else
21189static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
21190 const char *funcname, int c_line,
21191 int py_line, const char *filename) {
21192 PyCodeObject *py_code = NULL;
21193 PyObject *py_funcname = NULL;
21194 if (c_line) {
21195 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
21196 if (!py_funcname) goto bad;
21197 funcname = PyUnicode_AsUTF8(py_funcname);
21198 if (!funcname) goto bad;
21199 }
21200 py_code = PyCode_NewEmpty(filename, funcname, py_line);
21201 Py_XDECREF(py_funcname);
21202 return py_code;
21203bad:
21204 Py_XDECREF(py_funcname);
21205 return NULL;
21206}
21207static void __Pyx_AddTraceback(const char *funcname, int c_line,
21208 int py_line, const char *filename) {
21209 PyCodeObject *py_code = 0;
21210 PyFrameObject *py_frame = 0;
21211 PyThreadState *tstate = __Pyx_PyThreadState_Current;
21212 PyObject *ptype, *pvalue, *ptraceback;
21213 if (c_line) {
21214 c_line = __Pyx_CLineForTraceback(tstate, c_line);
21215 }
21216 py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
21217 if (!py_code) {
21218 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
21219 py_code = __Pyx_CreateCodeObjectForTraceback(
21220 funcname, c_line, py_line, filename);
21221 if (!py_code) {
21222 /* If the code object creation fails, then we should clear the
21223 fetched exception references and propagate the new exception */
21224 Py_XDECREF(ptype);
21225 Py_XDECREF(pvalue);
21226 Py_XDECREF(ptraceback);
21227 goto bad;
21228 }
21229 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
21230 __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
21231 }
21232 py_frame = PyFrame_New(
21233 tstate, /*PyThreadState *tstate,*/
21234 py_code, /*PyCodeObject *code,*/
21235 __pyx_mstate_global->__pyx_d, /*PyObject *globals,*/
21236 0 /*PyObject *locals*/
21237 );
21238 if (!py_frame) goto bad;
21239 __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
21240 PyTraceBack_Here(py_frame);
21241bad:
21242 Py_XDECREF(py_code);
21243 Py_XDECREF(py_frame);
21244}
21245#endif
21246
21247/* CIntFromPyVerify */
21248#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
21249 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
21250#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
21251 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
21252#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
21253 {\
21254 func_type value = func_value;\
21255 if (sizeof(target_type) < sizeof(func_type)) {\
21256 if (unlikely(value != (func_type) (target_type) value)) {\
21257 func_type zero = 0;\
21258 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
21259 return (target_type) -1;\
21260 if (is_unsigned && unlikely(value < zero))\
21261 goto raise_neg_overflow;\
21262 else\
21263 goto raise_overflow;\
21264 }\
21265 }\
21266 return (target_type) value;\
21267 }
21268
21269/* Declarations */
21270#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21271 #ifdef __cplusplus
21272 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
21273 return ::std::complex< float >(x, y);
21274 }
21275 #else
21276 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
21277 return x + y*(__pyx_t_float_complex)_Complex_I;
21278 }
21279 #endif
21280#else
21281 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
21282 __pyx_t_float_complex z;
21283 z.real = x;
21284 z.imag = y;
21285 return z;
21286 }
21287#endif
21288
21289/* Arithmetic */
21290#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21291#else
21292 static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21293 return (a.real == b.real) && (a.imag == b.imag);
21294 }
21295 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21296 __pyx_t_float_complex z;
21297 z.real = a.real + b.real;
21298 z.imag = a.imag + b.imag;
21299 return z;
21300 }
21301 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21302 __pyx_t_float_complex z;
21303 z.real = a.real - b.real;
21304 z.imag = a.imag - b.imag;
21305 return z;
21306 }
21307 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21308 __pyx_t_float_complex z;
21309 z.real = a.real * b.real - a.imag * b.imag;
21310 z.imag = a.real * b.imag + a.imag * b.real;
21311 return z;
21312 }
21313 #if 1
21314 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21315 if (b.imag == 0) {
21316 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
21317 } else if (fabsf(b.real) >= fabsf(b.imag)) {
21318 if (b.real == 0 && b.imag == 0) {
21319 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
21320 } else {
21321 float r = b.imag / b.real;
21322 float s = (float)(1.0) / (b.real + b.imag * r);
21323 return __pyx_t_float_complex_from_parts(
21324 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
21325 }
21326 } else {
21327 float r = b.real / b.imag;
21328 float s = (float)(1.0) / (b.imag + b.real * r);
21329 return __pyx_t_float_complex_from_parts(
21330 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
21331 }
21332 }
21333 #else
21334 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21335 if (b.imag == 0) {
21336 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
21337 } else {
21338 float denom = b.real * b.real + b.imag * b.imag;
21339 return __pyx_t_float_complex_from_parts(
21340 (a.real * b.real + a.imag * b.imag) / denom,
21341 (a.imag * b.real - a.real * b.imag) / denom);
21342 }
21343 }
21344 #endif
21345 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
21346 __pyx_t_float_complex z;
21347 z.real = -a.real;
21348 z.imag = -a.imag;
21349 return z;
21350 }
21351 static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
21352 return (a.real == 0) && (a.imag == 0);
21353 }
21354 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
21355 __pyx_t_float_complex z;
21356 z.real = a.real;
21357 z.imag = -a.imag;
21358 return z;
21359 }
21360 #if 1
21361 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
21362 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
21363 return sqrtf(z.real*z.real + z.imag*z.imag);
21364 #else
21365 return hypotf(z.real, z.imag);
21366 #endif
21367 }
21368 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
21369 __pyx_t_float_complex z;
21370 float r, lnr, theta, z_r, z_theta;
21371 if (b.imag == 0 && b.real == (int)b.real) {
21372 if (b.real < 0) {
21373 float denom = a.real * a.real + a.imag * a.imag;
21374 a.real = a.real / denom;
21375 a.imag = -a.imag / denom;
21376 b.real = -b.real;
21377 }
21378 switch ((int)b.real) {
21379 case 0:
21380 z.real = 1;
21381 z.imag = 0;
21382 return z;
21383 case 1:
21384 return a;
21385 case 2:
21386 return __Pyx_c_prod_float(a, a);
21387 case 3:
21388 z = __Pyx_c_prod_float(a, a);
21389 return __Pyx_c_prod_float(z, a);
21390 case 4:
21391 z = __Pyx_c_prod_float(a, a);
21392 return __Pyx_c_prod_float(z, z);
21393 }
21394 }
21395 if (a.imag == 0) {
21396 if (a.real == 0) {
21397 return a;
21398 } else if ((b.imag == 0) && (a.real >= 0)) {
21399 z.real = powf(a.real, b.real);
21400 z.imag = 0;
21401 return z;
21402 } else if (a.real > 0) {
21403 r = a.real;
21404 theta = 0;
21405 } else {
21406 r = -a.real;
21407 theta = atan2f(0.0, -1.0);
21408 }
21409 } else {
21410 r = __Pyx_c_abs_float(a);
21411 theta = atan2f(a.imag, a.real);
21412 }
21413 lnr = logf(r);
21414 z_r = expf(lnr * b.real - theta * b.imag);
21415 z_theta = theta * b.real + lnr * b.imag;
21416 z.real = z_r * cosf(z_theta);
21417 z.imag = z_r * sinf(z_theta);
21418 return z;
21419 }
21420 #endif
21421#endif
21422
21423/* Declarations */
21424#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21425 #ifdef __cplusplus
21426 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
21427 return ::std::complex< double >(x, y);
21428 }
21429 #else
21430 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
21431 return x + y*(__pyx_t_double_complex)_Complex_I;
21432 }
21433 #endif
21434#else
21435 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
21436 __pyx_t_double_complex z;
21437 z.real = x;
21438 z.imag = y;
21439 return z;
21440 }
21441#endif
21442
21443/* Arithmetic */
21444#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21445#else
21446 static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21447 return (a.real == b.real) && (a.imag == b.imag);
21448 }
21449 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21450 __pyx_t_double_complex z;
21451 z.real = a.real + b.real;
21452 z.imag = a.imag + b.imag;
21453 return z;
21454 }
21455 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21456 __pyx_t_double_complex z;
21457 z.real = a.real - b.real;
21458 z.imag = a.imag - b.imag;
21459 return z;
21460 }
21461 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21462 __pyx_t_double_complex z;
21463 z.real = a.real * b.real - a.imag * b.imag;
21464 z.imag = a.real * b.imag + a.imag * b.real;
21465 return z;
21466 }
21467 #if 1
21468 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21469 if (b.imag == 0) {
21470 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
21471 } else if (fabs(b.real) >= fabs(b.imag)) {
21472 if (b.real == 0 && b.imag == 0) {
21473 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
21474 } else {
21475 double r = b.imag / b.real;
21476 double s = (double)(1.0) / (b.real + b.imag * r);
21477 return __pyx_t_double_complex_from_parts(
21478 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
21479 }
21480 } else {
21481 double r = b.real / b.imag;
21482 double s = (double)(1.0) / (b.imag + b.real * r);
21483 return __pyx_t_double_complex_from_parts(
21484 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
21485 }
21486 }
21487 #else
21488 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21489 if (b.imag == 0) {
21490 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
21491 } else {
21492 double denom = b.real * b.real + b.imag * b.imag;
21493 return __pyx_t_double_complex_from_parts(
21494 (a.real * b.real + a.imag * b.imag) / denom,
21495 (a.imag * b.real - a.real * b.imag) / denom);
21496 }
21497 }
21498 #endif
21499 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
21500 __pyx_t_double_complex z;
21501 z.real = -a.real;
21502 z.imag = -a.imag;
21503 return z;
21504 }
21505 static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
21506 return (a.real == 0) && (a.imag == 0);
21507 }
21508 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
21509 __pyx_t_double_complex z;
21510 z.real = a.real;
21511 z.imag = -a.imag;
21512 return z;
21513 }
21514 #if 1
21515 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
21516 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
21517 return sqrt(z.real*z.real + z.imag*z.imag);
21518 #else
21519 return hypot(z.real, z.imag);
21520 #endif
21521 }
21522 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
21523 __pyx_t_double_complex z;
21524 double r, lnr, theta, z_r, z_theta;
21525 if (b.imag == 0 && b.real == (int)b.real) {
21526 if (b.real < 0) {
21527 double denom = a.real * a.real + a.imag * a.imag;
21528 a.real = a.real / denom;
21529 a.imag = -a.imag / denom;
21530 b.real = -b.real;
21531 }
21532 switch ((int)b.real) {
21533 case 0:
21534 z.real = 1;
21535 z.imag = 0;
21536 return z;
21537 case 1:
21538 return a;
21539 case 2:
21540 return __Pyx_c_prod_double(a, a);
21541 case 3:
21542 z = __Pyx_c_prod_double(a, a);
21543 return __Pyx_c_prod_double(z, a);
21544 case 4:
21545 z = __Pyx_c_prod_double(a, a);
21546 return __Pyx_c_prod_double(z, z);
21547 }
21548 }
21549 if (a.imag == 0) {
21550 if (a.real == 0) {
21551 return a;
21552 } else if ((b.imag == 0) && (a.real >= 0)) {
21553 z.real = pow(a.real, b.real);
21554 z.imag = 0;
21555 return z;
21556 } else if (a.real > 0) {
21557 r = a.real;
21558 theta = 0;
21559 } else {
21560 r = -a.real;
21561 theta = atan2(0.0, -1.0);
21562 }
21563 } else {
21564 r = __Pyx_c_abs_double(a);
21565 theta = atan2(a.imag, a.real);
21566 }
21567 lnr = log(r);
21568 z_r = exp(lnr * b.real - theta * b.imag);
21569 z_theta = theta * b.real + lnr * b.imag;
21570 z.real = z_r * cos(z_theta);
21571 z.imag = z_r * sin(z_theta);
21572 return z;
21573 }
21574 #endif
21575#endif
21576
21577/* Declarations */
21578#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21579 #ifdef __cplusplus
21580 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
21581 return ::std::complex< long double >(x, y);
21582 }
21583 #else
21584 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
21585 return x + y*(__pyx_t_long_double_complex)_Complex_I;
21586 }
21587 #endif
21588#else
21589 static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
21590 __pyx_t_long_double_complex z;
21591 z.real = x;
21592 z.imag = y;
21593 return z;
21594 }
21595#endif
21596
21597/* Arithmetic */
21598#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
21599#else
21600 static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
21601 return (a.real == b.real) && (a.imag == b.imag);
21602 }
21603 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) {
21604 __pyx_t_long_double_complex z;
21605 z.real = a.real + b.real;
21606 z.imag = a.imag + b.imag;
21607 return z;
21608 }
21609 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) {
21610 __pyx_t_long_double_complex z;
21611 z.real = a.real - b.real;
21612 z.imag = a.imag - b.imag;
21613 return z;
21614 }
21615 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) {
21616 __pyx_t_long_double_complex z;
21617 z.real = a.real * b.real - a.imag * b.imag;
21618 z.imag = a.real * b.imag + a.imag * b.real;
21619 return z;
21620 }
21621 #if 1
21622 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) {
21623 if (b.imag == 0) {
21624 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
21625 } else if (fabsl(b.real) >= fabsl(b.imag)) {
21626 if (b.real == 0 && b.imag == 0) {
21627 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
21628 } else {
21629 long double r = b.imag / b.real;
21630 long double s = (long double)(1.0) / (b.real + b.imag * r);
21631 return __pyx_t_long_double_complex_from_parts(
21632 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
21633 }
21634 } else {
21635 long double r = b.real / b.imag;
21636 long double s = (long double)(1.0) / (b.imag + b.real * r);
21637 return __pyx_t_long_double_complex_from_parts(
21638 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
21639 }
21640 }
21641 #else
21642 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) {
21643 if (b.imag == 0) {
21644 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
21645 } else {
21646 long double denom = b.real * b.real + b.imag * b.imag;
21647 return __pyx_t_long_double_complex_from_parts(
21648 (a.real * b.real + a.imag * b.imag) / denom,
21649 (a.imag * b.real - a.real * b.imag) / denom);
21650 }
21651 }
21652 #endif
21653 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
21654 __pyx_t_long_double_complex z;
21655 z.real = -a.real;
21656 z.imag = -a.imag;
21657 return z;
21658 }
21659 static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
21660 return (a.real == 0) && (a.imag == 0);
21661 }
21662 static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
21663 __pyx_t_long_double_complex z;
21664 z.real = a.real;
21665 z.imag = -a.imag;
21666 return z;
21667 }
21668 #if 1
21669 static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
21670 #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
21671 return sqrtl(z.real*z.real + z.imag*z.imag);
21672 #else
21673 return hypotl(z.real, z.imag);
21674 #endif
21675 }
21676 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) {
21677 __pyx_t_long_double_complex z;
21678 long double r, lnr, theta, z_r, z_theta;
21679 if (b.imag == 0 && b.real == (int)b.real) {
21680 if (b.real < 0) {
21681 long double denom = a.real * a.real + a.imag * a.imag;
21682 a.real = a.real / denom;
21683 a.imag = -a.imag / denom;
21684 b.real = -b.real;
21685 }
21686 switch ((int)b.real) {
21687 case 0:
21688 z.real = 1;
21689 z.imag = 0;
21690 return z;
21691 case 1:
21692 return a;
21693 case 2:
21694 return __Pyx_c_prod_long__double(a, a);
21695 case 3:
21696 z = __Pyx_c_prod_long__double(a, a);
21697 return __Pyx_c_prod_long__double(z, a);
21698 case 4:
21699 z = __Pyx_c_prod_long__double(a, a);
21700 return __Pyx_c_prod_long__double(z, z);
21701 }
21702 }
21703 if (a.imag == 0) {
21704 if (a.real == 0) {
21705 return a;
21706 } else if ((b.imag == 0) && (a.real >= 0)) {
21707 z.real = powl(a.real, b.real);
21708 z.imag = 0;
21709 return z;
21710 } else if (a.real > 0) {
21711 r = a.real;
21712 theta = 0;
21713 } else {
21714 r = -a.real;
21715 theta = atan2l(0.0, -1.0);
21716 }
21717 } else {
21718 r = __Pyx_c_abs_long__double(a);
21719 theta = atan2l(a.imag, a.real);
21720 }
21721 lnr = logl(r);
21722 z_r = expl(lnr * b.real - theta * b.imag);
21723 z_theta = theta * b.real + lnr * b.imag;
21724 z.real = z_r * cosl(z_theta);
21725 z.imag = z_r * sinl(z_theta);
21726 return z;
21727 }
21728 #endif
21729#endif
21730
21731/* PyObjectVectorcallKwds (used by PyObjectVectorcallMethodKwds) */
21732#if CYTHON_VECTORCALL
21733CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i) {
21734 PyObject *key = __Pyx_PyTuple_GET_ITEM(kwnames, i);
21735#if !CYTHON_ASSUME_SAFE_MACROS
21736 if (unlikely(!key)) return -1;
21737#endif
21738 if (unlikely(!PyUnicode_Check(key))) {
21739 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
21740 return -1;
21741 }
21742 return 0;
21743}
21744#else
21745CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n) {
21746 PyObject *out = PyDict_New();
21747 if (unlikely(!out)) return NULL;
21748 for (Py_ssize_t i=0; i<n; ++i) {
21749 if (unlikely(PyDict_SetItem(out, keys[i], values[i]) < 0)) {
21750 Py_DECREF(out);
21751 return NULL;
21752 }
21753 }
21754 return out;
21755}
21756CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i) {
21757 PyObject *key = kwnames[i];
21758 if (unlikely(!PyUnicode_Check(key))) {
21759 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
21760 return -1;
21761 }
21762 return 0;
21763}
21764#endif
21765
21766/* PyObjectVectorcallMethodKwds (used by CIntToPy) */
21767#if !CYTHON_VECTORCALL
21768static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
21769 PyObject *result;
21770 PyObject *obj = PyObject_GetAttr(args[0], name);
21771 if (unlikely(!obj))
21772 return NULL;
21773 result = __Pyx_Object_VectorcallKwds(obj, args+1, nargsf-1, kwnames);
21774 Py_DECREF(obj);
21775 return result;
21776}
21777#endif
21778
21779/* CIntToPy */
21780static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
21781#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21782#pragma GCC diagnostic push
21783#pragma GCC diagnostic ignored "-Wconversion"
21784#endif
21785 const int neg_one = (int) -1, const_zero = (int) 0;
21786#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
21787#pragma GCC diagnostic pop
21788#endif
21789 const int is_unsigned = neg_one > const_zero;
21790 if (is_unsigned) {
21791 if (sizeof(int) < sizeof(long)) {
21792 return PyLong_FromLong((long) value);
21793 } else if (sizeof(int) <= sizeof(unsigned long)) {
21794 return PyLong_FromUnsignedLong((unsigned long) value);
21795#if !CYTHON_COMPILING_IN_PYPY
21796 } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
21797 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
21798#endif
21799 }
21800 } else {
21801 if (sizeof(int) <= sizeof(long)) {
21802 return PyLong_FromLong((long) value);
21803 } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
21804 return PyLong_FromLongLong((PY_LONG_LONG) value);
21805 }
21806 }
21807 {
21808 unsigned char *bytes = (unsigned char *)&value;
21809#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
21810 if (is_unsigned) {
21811 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
21812 } else {
21813 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
21814 }
21815#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
21816 int one = 1; int little = (int)*(unsigned char *)&one;
21817 return _PyLong_FromByteArray(bytes, sizeof(int),
21818 little, !is_unsigned);
21819#else
21820 int one = 1; int little = (int)*(unsigned char *)&one;
21821 PyObject *result = NULL, *kwds = NULL;
21822 PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;;
21823 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
21824 if (!py_bytes) goto limited_bad;
21825 from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10);
21826 if (!from_bytes_str) goto limited_bad;
21827 order_str = PyUnicode_FromString(little ? "little" : "big");
21828 if (!order_str) goto limited_bad;
21829 {
21830 PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True };
21831 if (!is_unsigned) {
21832 PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6);
21833 if (!signed_str) goto limited_bad;
21834#if CYTHON_VECTORCALL
21835 kwds = PyTuple_Pack(1, signed_str);
21836#else
21837 {
21838 PyObject *keys[] = {signed_str};
21839 PyObject *values[] = {Py_True};
21840 kwds = __Pyx_MakeKwargDict(keys, values, 1);
21841 }
21842#endif
21843 Py_DECREF(signed_str);
21844 if (unlikely(!kwds)) goto limited_bad;
21845 }
21846 result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
21847 }
21848 limited_bad:
21849 Py_XDECREF(kwds);
21850 Py_XDECREF(order_str);
21851 Py_XDECREF(py_bytes);
21852 Py_XDECREF(from_bytes_str);
21853 return result;
21854#endif
21855 }
21856}
21857
21858/* CIntFromPy */
21859static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x);
21860static int __Pyx_raise_neg_overflow___Pyx_PyLong_As_int(void) {
21861 const char* type_name = "int";
21862 PyErr_Format(PyExc_OverflowError,
21863 "can't convert negative value to %.200s", type_name);
21864 return (int) -1;
21865}
21866static int __Pyx_raise_overflow___Pyx_PyLong_As_int(void) {
21867 const char* type_name = "int";
21868 PyErr_Format(PyExc_OverflowError,
21869 "value too large to convert to %.200s", type_name);
21870 return (int) -1;
21871}
21872static CYTHON_INLINE int __Pyx_PyULong___Pyx_PyLong_As_int(PyObject *x) {
21873 const int is_unsigned = 1;
21874#if CYTHON_USE_PYLONG_INTERNALS
21875 {
21876 const digit* digits = __Pyx_PyLong_Digits(x);
21877 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21878 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21879 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
21880 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21881 } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
21882 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21883 }
21884 } else
21885 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21886 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
21887 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21888 } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
21889 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21890 }
21891 } else
21892 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21893 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
21894 __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])))
21895 } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
21896 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21897 }
21898 } else
21899 {}
21900 }
21901#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
21902 if (unlikely(Py_SIZE(x) < 0)) {
21903 goto raise_neg_overflow;
21904 }
21905#else
21906 {
21907 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
21908 if (unlikely(result < 0))
21909 return (int) -1;
21910 if (unlikely(result == 1))
21911 goto raise_neg_overflow;
21912 }
21913#endif
21914 if ((sizeof(int) <= sizeof(unsigned long))) {
21915 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
21916 } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
21917 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
21918 }
21919 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
21920raise_neg_overflow:
21921 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
21922raise_overflow:
21923 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21924}
21925static CYTHON_INLINE int __Pyx_PySLong___Pyx_PyLong_As_int(PyObject *x) {
21926 const int is_unsigned = 0;
21927#if CYTHON_USE_PYLONG_INTERNALS
21928 if (__Pyx_PyLong_IsNeg(x)) {
21929 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21930 const digit* digits = __Pyx_PyLong_Digits(x);
21931 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21932 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21933 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21934 __PYX_VERIFY_RETURN_INT(int, long, ival)
21935 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
21936 return (int) (((int) -1) * (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21937 }
21938 } else
21939 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21940 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21941 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
21942 __PYX_VERIFY_RETURN_INT(int, long, ival)
21943 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
21944 return (int) (((int) -1) * (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21945 }
21946 } else
21947 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21948 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21949 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]));
21950 __PYX_VERIFY_RETURN_INT(int, long, ival)
21951 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
21952 return (int) (((int) -1) * (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
21953 }
21954 } else
21955 {}
21956 } else {
21957 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
21958 const digit* digits = __Pyx_PyLong_Digits(x);
21959 if (size == 2 && (8 * sizeof(int) > 1 * PyLong_SHIFT)) {
21960 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
21961 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21962 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
21963 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21964 }
21965 } else
21966 if (size == 3 && (8 * sizeof(int) > 2 * PyLong_SHIFT)) {
21967 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
21968 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
21969 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
21970 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21971 }
21972 } else
21973 if (size == 4 && (8 * sizeof(int) > 3 * PyLong_SHIFT)) {
21974 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
21975 __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])))
21976 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
21977 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
21978 }
21979 } else
21980 {}
21981 }
21982#endif
21983 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
21984 if ((sizeof(int) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
21985 __PYX_VERIFY_RETURN_INT_EXC(int, int, PyLong_AsInt(x))
21986 } else
21987 #endif
21988 if ((sizeof(int) <= sizeof(long))) {
21989 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
21990 } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
21991 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
21992 }
21993 return __Pyx_LargePyLong___Pyx_PyLong_As_int(x);
21994raise_neg_overflow:
21995 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
21996raise_overflow:
21997 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
21998}
21999static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x) {
22000#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22001#pragma GCC diagnostic push
22002#pragma GCC diagnostic ignored "-Wconversion"
22003#endif
22004 const int neg_one = (int) -1, const_zero = (int) 0;
22005#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22006#pragma GCC diagnostic pop
22007#endif
22008 const int is_unsigned = neg_one > const_zero;
22009 int val;
22010 int ret = -1;
22011#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
22012 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
22013 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
22014 if (unlikely(bytes_copied == -1)) {
22015 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
22016 goto raise_overflow;
22017 } else {
22018 ret = 0;
22019 }
22020#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
22021 int one = 1; int is_little = (int)*(unsigned char *)&one;
22022 unsigned char *bytes = (unsigned char *)&val;
22023 ret = _PyLong_AsByteArray((PyLongObject *)x,
22024 bytes, sizeof(val),
22025 is_little, !is_unsigned);
22026 if ((0)) goto raise_overflow;
22027#else
22028 PyObject *v;
22029 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
22030 int bits, remaining_bits, is_negative = 0;
22031 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
22032 if (likely(PyLong_CheckExact(x))) {
22033 v = __Pyx_NewRef(x);
22034 } else {
22035 v = PyNumber_Long(x);
22036 if (unlikely(!v)) return (int) -1;
22037 assert(PyLong_CheckExact(v));
22038 }
22039 {
22040 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
22041 if (unlikely(result < 0)) {
22042 Py_DECREF(v);
22043 return (int) -1;
22044 }
22045 is_negative = result == 1;
22046 }
22047 if (is_unsigned && unlikely(is_negative)) {
22048 Py_DECREF(v);
22049 PyErr_SetString(PyExc_OverflowError,
22050 "can't convert negative value to int");
22051 return (int) -1;
22052 } else if (is_negative) {
22053 stepval = PyNumber_Invert(v);
22054 Py_DECREF(v);
22055 if (unlikely(!stepval))
22056 return (int) -1;
22057 } else {
22058 stepval = v;
22059 }
22060 v = NULL;
22061 val = (int) 0;
22062 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
22063 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
22064 for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
22065 PyObject *tmp, *digit;
22066 long idigit;
22067 digit = PyNumber_And(stepval, mask);
22068 if (unlikely(!digit)) goto done;
22069 idigit = PyLong_AsLong(digit);
22070 Py_DECREF(digit);
22071 if (unlikely(idigit < 0)) goto done;
22072 val |= ((int) idigit) << bits;
22073 tmp = PyNumber_Rshift(stepval, shift);
22074 if (unlikely(!tmp)) goto done;
22075 Py_DECREF(stepval); stepval = tmp;
22076 }
22077 Py_DECREF(shift); shift = NULL;
22078 Py_DECREF(mask); mask = NULL;
22079 {
22080 long idigit = PyLong_AsLong(stepval);
22081 if (unlikely(idigit < 0)) goto done;
22082 remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
22083 if (unlikely(idigit >= (1L << remaining_bits)))
22084 goto raise_overflow;
22085 val |= ((int) idigit) << bits;
22086 }
22087 if (!is_unsigned) {
22088 if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
22089 goto raise_overflow;
22090 if (is_negative)
22091 val = ~val;
22092 }
22093 ret = 0;
22094done:
22095 Py_XDECREF(shift);
22096 Py_XDECREF(mask);
22097 Py_XDECREF(stepval);
22098#endif
22099 if (unlikely(ret))
22100 return (int) -1;
22101 return val;
22102raise_overflow:
22103 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
22104}
22105static CYTHON_INLINE int __Pyx_PyLong___Pyx_PyLong_As_int(PyObject *x) {
22106#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22107#pragma GCC diagnostic push
22108#pragma GCC diagnostic ignored "-Wconversion"
22109#endif
22110 const int neg_one = (int) -1, const_zero = (int) 0;
22111#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22112#pragma GCC diagnostic pop
22113#endif
22114 const int is_unsigned = neg_one > const_zero;
22115 if (is_unsigned) {
22116 #if CYTHON_USE_PYLONG_INTERNALS
22117 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
22118 goto raise_neg_overflow;
22119 } else if (__Pyx_PyLong_IsCompact(x)) {
22120 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
22121 } else
22122 #endif
22123 {
22124 return __Pyx_PyULong___Pyx_PyLong_As_int(x);
22125 }
22126 } else {
22127 #if CYTHON_USE_PYLONG_INTERNALS
22128 if (__Pyx_PyLong_IsCompact(x)) {
22129 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
22130 } else
22131 #endif
22132 {
22133 return __Pyx_PySLong___Pyx_PyLong_As_int(x);
22134 }
22135 }
22136#if CYTHON_USE_PYLONG_INTERNALS
22137raise_neg_overflow:
22138 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_int();
22139raise_overflow:
22140 return __Pyx_raise_overflow___Pyx_PyLong_As_int();
22141#endif
22142}
22143static int __Pyx_NonPyLong___Pyx_PyLong_As_int(PyObject *x) {
22144 int val;
22145 PyObject *tmp = __Pyx_PyNumber_Long(x);
22146 if (!tmp) return (int) -1;
22147 val = __Pyx_PyLong_As_int(tmp);
22148 Py_DECREF(tmp);
22149 return val;
22150}
22151static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
22152 if (likely(PyLong_Check(x))) {
22153 return __Pyx_PyLong___Pyx_PyLong_As_int(x);
22154 } else {
22155 return __Pyx_NonPyLong___Pyx_PyLong_As_int(x);
22156 }
22157}
22158
22159/* CIntToPy */
22160static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
22161#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22162#pragma GCC diagnostic push
22163#pragma GCC diagnostic ignored "-Wconversion"
22164#endif
22165 const long neg_one = (long) -1, const_zero = (long) 0;
22166#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22167#pragma GCC diagnostic pop
22168#endif
22169 const int is_unsigned = neg_one > const_zero;
22170 if (is_unsigned) {
22171 if (sizeof(long) < sizeof(long)) {
22172 return PyLong_FromLong((long) value);
22173 } else if (sizeof(long) <= sizeof(unsigned long)) {
22174 return PyLong_FromUnsignedLong((unsigned long) value);
22175#if !CYTHON_COMPILING_IN_PYPY
22176 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
22177 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22178#endif
22179 }
22180 } else {
22181 if (sizeof(long) <= sizeof(long)) {
22182 return PyLong_FromLong((long) value);
22183 } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
22184 return PyLong_FromLongLong((PY_LONG_LONG) value);
22185 }
22186 }
22187 {
22188 unsigned char *bytes = (unsigned char *)&value;
22189#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
22190 if (is_unsigned) {
22191 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
22192 } else {
22193 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
22194 }
22195#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
22196 int one = 1; int little = (int)*(unsigned char *)&one;
22197 return _PyLong_FromByteArray(bytes, sizeof(long),
22198 little, !is_unsigned);
22199#else
22200 int one = 1; int little = (int)*(unsigned char *)&one;
22201 PyObject *result = NULL, *kwds = NULL;
22202 PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;;
22203 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
22204 if (!py_bytes) goto limited_bad;
22205 from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10);
22206 if (!from_bytes_str) goto limited_bad;
22207 order_str = PyUnicode_FromString(little ? "little" : "big");
22208 if (!order_str) goto limited_bad;
22209 {
22210 PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True };
22211 if (!is_unsigned) {
22212 PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6);
22213 if (!signed_str) goto limited_bad;
22214#if CYTHON_VECTORCALL
22215 kwds = PyTuple_Pack(1, signed_str);
22216#else
22217 {
22218 PyObject *keys[] = {signed_str};
22219 PyObject *values[] = {Py_True};
22220 kwds = __Pyx_MakeKwargDict(keys, values, 1);
22221 }
22222#endif
22223 Py_DECREF(signed_str);
22224 if (unlikely(!kwds)) goto limited_bad;
22225 }
22226 result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
22227 }
22228 limited_bad:
22229 Py_XDECREF(kwds);
22230 Py_XDECREF(order_str);
22231 Py_XDECREF(py_bytes);
22232 Py_XDECREF(from_bytes_str);
22233 return result;
22234#endif
22235 }
22236}
22237
22238/* CIntFromPy */
22239static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x);
22240static long __Pyx_raise_neg_overflow___Pyx_PyLong_As_long(void) {
22241 const char* type_name = "long";
22242 PyErr_Format(PyExc_OverflowError,
22243 "can't convert negative value to %.200s", type_name);
22244 return (long) -1;
22245}
22246static long __Pyx_raise_overflow___Pyx_PyLong_As_long(void) {
22247 const char* type_name = "long";
22248 PyErr_Format(PyExc_OverflowError,
22249 "value too large to convert to %.200s", type_name);
22250 return (long) -1;
22251}
22252static CYTHON_INLINE long __Pyx_PyULong___Pyx_PyLong_As_long(PyObject *x) {
22253 const int is_unsigned = 1;
22254#if CYTHON_USE_PYLONG_INTERNALS
22255 {
22256 const digit* digits = __Pyx_PyLong_Digits(x);
22257 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
22258 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
22259 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
22260 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22261 } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
22262 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22263 }
22264 } else
22265 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
22266 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
22267 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22268 } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
22269 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22270 }
22271 } else
22272 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
22273 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
22274 __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])))
22275 } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
22276 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22277 }
22278 } else
22279 {}
22280 }
22281#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
22282 if (unlikely(Py_SIZE(x) < 0)) {
22283 goto raise_neg_overflow;
22284 }
22285#else
22286 {
22287 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
22288 if (unlikely(result < 0))
22289 return (long) -1;
22290 if (unlikely(result == 1))
22291 goto raise_neg_overflow;
22292 }
22293#endif
22294 if ((sizeof(long) <= sizeof(unsigned long))) {
22295 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
22296 } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
22297 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
22298 }
22299 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
22300raise_neg_overflow:
22301 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
22302raise_overflow:
22303 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
22304}
22305static CYTHON_INLINE long __Pyx_PySLong___Pyx_PyLong_As_long(PyObject *x) {
22306 const int is_unsigned = 0;
22307#if CYTHON_USE_PYLONG_INTERNALS
22308 if (__Pyx_PyLong_IsNeg(x)) {
22309 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
22310 const digit* digits = __Pyx_PyLong_Digits(x);
22311 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
22312 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
22313 long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
22314 __PYX_VERIFY_RETURN_INT(long, long, ival)
22315 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
22316 return (long) (((long) -1) * (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
22317 }
22318 } else
22319 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
22320 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
22321 long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
22322 __PYX_VERIFY_RETURN_INT(long, long, ival)
22323 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
22324 return (long) (((long) -1) * (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
22325 }
22326 } else
22327 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
22328 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
22329 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]));
22330 __PYX_VERIFY_RETURN_INT(long, long, ival)
22331 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
22332 return (long) (((long) -1) * (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
22333 }
22334 } else
22335 {}
22336 } else {
22337 const Py_ssize_t size = __Pyx_PyLong_DigitCount(x);
22338 const digit* digits = __Pyx_PyLong_Digits(x);
22339 if (size == 2 && (8 * sizeof(long) > 1 * PyLong_SHIFT)) {
22340 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
22341 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22342 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
22343 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22344 }
22345 } else
22346 if (size == 3 && (8 * sizeof(long) > 2 * PyLong_SHIFT)) {
22347 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
22348 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22349 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
22350 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22351 }
22352 } else
22353 if (size == 4 && (8 * sizeof(long) > 3 * PyLong_SHIFT)) {
22354 if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) {
22355 __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])))
22356 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
22357 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22358 }
22359 } else
22360 {}
22361 }
22362#endif
22363 #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
22364 if ((sizeof(long) <= sizeof(int)) && (sizeof(int) < sizeof(long))) {
22365 __PYX_VERIFY_RETURN_INT_EXC(long, int, PyLong_AsInt(x))
22366 } else
22367 #endif
22368 if ((sizeof(long) <= sizeof(long))) {
22369 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
22370 } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
22371 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
22372 }
22373 return __Pyx_LargePyLong___Pyx_PyLong_As_long(x);
22374raise_neg_overflow:
22375 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
22376raise_overflow:
22377 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
22378}
22379static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x) {
22380#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22381#pragma GCC diagnostic push
22382#pragma GCC diagnostic ignored "-Wconversion"
22383#endif
22384 const long neg_one = (long) -1, const_zero = (long) 0;
22385#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22386#pragma GCC diagnostic pop
22387#endif
22388 const int is_unsigned = neg_one > const_zero;
22389 long val;
22390 int ret = -1;
22391#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
22392 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
22393 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
22394 if (unlikely(bytes_copied == -1)) {
22395 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
22396 goto raise_overflow;
22397 } else {
22398 ret = 0;
22399 }
22400#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
22401 int one = 1; int is_little = (int)*(unsigned char *)&one;
22402 unsigned char *bytes = (unsigned char *)&val;
22403 ret = _PyLong_AsByteArray((PyLongObject *)x,
22404 bytes, sizeof(val),
22405 is_little, !is_unsigned);
22406 if ((0)) goto raise_overflow;
22407#else
22408 PyObject *v;
22409 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
22410 int bits, remaining_bits, is_negative = 0;
22411 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
22412 if (likely(PyLong_CheckExact(x))) {
22413 v = __Pyx_NewRef(x);
22414 } else {
22415 v = PyNumber_Long(x);
22416 if (unlikely(!v)) return (long) -1;
22417 assert(PyLong_CheckExact(v));
22418 }
22419 {
22420 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
22421 if (unlikely(result < 0)) {
22422 Py_DECREF(v);
22423 return (long) -1;
22424 }
22425 is_negative = result == 1;
22426 }
22427 if (is_unsigned && unlikely(is_negative)) {
22428 Py_DECREF(v);
22429 PyErr_SetString(PyExc_OverflowError,
22430 "can't convert negative value to long");
22431 return (long) -1;
22432 } else if (is_negative) {
22433 stepval = PyNumber_Invert(v);
22434 Py_DECREF(v);
22435 if (unlikely(!stepval))
22436 return (long) -1;
22437 } else {
22438 stepval = v;
22439 }
22440 v = NULL;
22441 val = (long) 0;
22442 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
22443 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
22444 for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
22445 PyObject *tmp, *digit;
22446 long idigit;
22447 digit = PyNumber_And(stepval, mask);
22448 if (unlikely(!digit)) goto done;
22449 idigit = PyLong_AsLong(digit);
22450 Py_DECREF(digit);
22451 if (unlikely(idigit < 0)) goto done;
22452 val |= ((long) idigit) << bits;
22453 tmp = PyNumber_Rshift(stepval, shift);
22454 if (unlikely(!tmp)) goto done;
22455 Py_DECREF(stepval); stepval = tmp;
22456 }
22457 Py_DECREF(shift); shift = NULL;
22458 Py_DECREF(mask); mask = NULL;
22459 {
22460 long idigit = PyLong_AsLong(stepval);
22461 if (unlikely(idigit < 0)) goto done;
22462 remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
22463 if (unlikely(idigit >= (1L << remaining_bits)))
22464 goto raise_overflow;
22465 val |= ((long) idigit) << bits;
22466 }
22467 if (!is_unsigned) {
22468 if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
22469 goto raise_overflow;
22470 if (is_negative)
22471 val = ~val;
22472 }
22473 ret = 0;
22474done:
22475 Py_XDECREF(shift);
22476 Py_XDECREF(mask);
22477 Py_XDECREF(stepval);
22478#endif
22479 if (unlikely(ret))
22480 return (long) -1;
22481 return val;
22482raise_overflow:
22483 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
22484}
22485static CYTHON_INLINE long __Pyx_PyLong___Pyx_PyLong_As_long(PyObject *x) {
22486#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22487#pragma GCC diagnostic push
22488#pragma GCC diagnostic ignored "-Wconversion"
22489#endif
22490 const long neg_one = (long) -1, const_zero = (long) 0;
22491#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
22492#pragma GCC diagnostic pop
22493#endif
22494 const int is_unsigned = neg_one > const_zero;
22495 if (is_unsigned) {
22496 #if CYTHON_USE_PYLONG_INTERNALS
22497 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
22498 goto raise_neg_overflow;
22499 } else if (__Pyx_PyLong_IsCompact(x)) {
22500 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
22501 } else
22502 #endif
22503 {
22504 return __Pyx_PyULong___Pyx_PyLong_As_long(x);
22505 }
22506 } else {
22507 #if CYTHON_USE_PYLONG_INTERNALS
22508 if (__Pyx_PyLong_IsCompact(x)) {
22509 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
22510 } else
22511 #endif
22512 {
22513 return __Pyx_PySLong___Pyx_PyLong_As_long(x);
22514 }
22515 }
22516#if CYTHON_USE_PYLONG_INTERNALS
22517raise_neg_overflow:
22518 return __Pyx_raise_neg_overflow___Pyx_PyLong_As_long();
22519raise_overflow:
22520 return __Pyx_raise_overflow___Pyx_PyLong_As_long();
22521#endif
22522}
22523static long __Pyx_NonPyLong___Pyx_PyLong_As_long(PyObject *x) {
22524 long val;
22525 PyObject *tmp = __Pyx_PyNumber_Long(x);
22526 if (!tmp) return (long) -1;
22527 val = __Pyx_PyLong_As_long(tmp);
22528 Py_DECREF(tmp);
22529 return val;
22530}
22531static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
22532 if (likely(PyLong_Check(x))) {
22533 return __Pyx_PyLong___Pyx_PyLong_As_long(x);
22534 } else {
22535 return __Pyx_NonPyLong___Pyx_PyLong_As_long(x);
22536 }
22537}
22538
22539/* GetRuntimeVersion */
22540#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
22541void __Pyx_init_runtime_version(void) {
22542 if (__Pyx_cached_runtime_version == 0) {
22543 const char* rt_version = Py_GetVersion();
22544 unsigned long version = 0;
22545 unsigned long factor = 0x01000000UL;
22546 unsigned int digit = 0;
22547 int i = 0;
22548 while (factor) {
22549 while ('0' <= rt_version[i] && rt_version[i] <= '9') {
22550 digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
22551 ++i;
22552 }
22553 version += factor * digit;
22554 if (rt_version[i] != '.')
22555 break;
22556 digit = 0;
22557 factor >>= 8;
22558 ++i;
22559 }
22560 __Pyx_cached_runtime_version = version;
22561 }
22562}
22563#endif
22564static unsigned long __Pyx_get_runtime_version(void) {
22565#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
22566 return Py_Version & ~0xFFUL;
22567#else
22568 return __Pyx_cached_runtime_version;
22569#endif
22570}
22571
22572/* CheckBinaryVersion */
22573static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
22574 const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
22575 if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
22576 return 0;
22577 if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
22578 return 1;
22579 {
22580 char message[200];
22581 PyOS_snprintf(message, sizeof(message),
22582 "compile time Python version %d.%d "
22583 "of module '%.100s' "
22584 "%s "
22585 "runtime version %d.%d",
22586 (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
22587 __Pyx_MODULE_NAME,
22588 (allow_newer) ? "was newer than" : "does not match",
22589 (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
22590 );
22591 return PyErr_WarnEx(NULL, message, 1);
22592 }
22593}
22594
22595/* NewCodeObj */
22596#if CYTHON_COMPILING_IN_LIMITED_API
22597 static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
22598 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
22599 PyObject *fv, PyObject *cell, PyObject* fn,
22600 PyObject *name, int fline, PyObject *lnos) {
22601 PyObject *exception_table = NULL;
22602 PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
22603 #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
22604 PyObject *version_info;
22605 PyObject *py_minor_version = NULL;
22606 #endif
22607 long minor_version = 0;
22608 #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
22609 minor_version = 11;
22610 #else
22611 if (!(version_info = PySys_GetObject("version_info"))) goto end;
22612 if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
22613 minor_version = PyLong_AsLong(py_minor_version);
22614 Py_DECREF(py_minor_version);
22615 if (minor_version == -1 && PyErr_Occurred()) goto end;
22616 #endif
22617 if (!(types_module = PyImport_ImportModule("types"))) goto end;
22618 if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
22619 if (minor_version <= 10) {
22620 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
22621 c, n, v, fn, name, fline, lnos, fv, cell);
22622 } else {
22623 if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
22624 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
22625 c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
22626 }
22627 end:
22628 Py_XDECREF(code_type);
22629 Py_XDECREF(exception_table);
22630 Py_XDECREF(types_module);
22631 if (!result) {
22632 PyObject *exc_type, *exc_value, *exc_tb;
22633 PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
22634 if (PyErr_WarnFormat(
22635 PyExc_RuntimeWarning, 1,
22636 "Code object creation failed in Cython module: %S\nTry recompiling with a more recent version of Cython.",
22637 exc_value ? exc_value : exc_type) == 0) {
22638 result = Py_None;
22639 Py_INCREF(result);
22640 }
22641 Py_DECREF(exc_type);
22642 Py_XDECREF(exc_value);
22643 Py_XDECREF(exc_tb);
22644 }
22645 return result;
22646 }
22647#elif PY_VERSION_HEX >= 0x030B0000
22648 static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
22649 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
22650 PyObject *fv, PyObject *cell, PyObject* fn,
22651 PyObject *name, int fline, PyObject *lnos) {
22652 PyCodeObject *result;
22653 result =
22654 #if PY_VERSION_HEX >= 0x030C0000
22655 PyUnstable_Code_NewWithPosOnlyArgs
22656 #else
22657 PyCode_NewWithPosOnlyArgs
22658 #endif
22659 (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
22660 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
22661 if (likely(result))
22662 result->_co_firsttraceable = 0;
22663 #endif
22664 return result;
22665 }
22666#elif !CYTHON_COMPILING_IN_PYPY
22667 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
22668 PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
22669#else
22670 #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
22671 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
22672#endif
22673static PyObject* __Pyx_PyCode_New(
22674 const __Pyx_PyCode_New_function_description descr,
22675 PyObject * const *varnames,
22676 PyObject *filename,
22677 PyObject *funcname,
22678 PyObject *line_table,
22679 PyObject *tuple_dedup_map
22680) {
22681 PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
22682 Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
22683 PyObject *varnames_tuple = PyTuple_New(var_count);
22684 if (unlikely(!varnames_tuple)) return NULL;
22685 for (Py_ssize_t i=0; i < var_count; i++) {
22686 Py_INCREF(varnames[i]);
22687 if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
22688 }
22689 #if CYTHON_COMPILING_IN_LIMITED_API
22690 varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
22691 if (!varnames_tuple_dedup) {
22692 if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
22693 varnames_tuple_dedup = varnames_tuple;
22694 }
22695 #else
22696 varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
22697 if (unlikely(!varnames_tuple_dedup)) goto done;
22698 #endif
22699 #if CYTHON_AVOID_BORROWED_REFS
22700 Py_INCREF(varnames_tuple_dedup);
22701 #endif
22702 if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
22703 Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
22704 #if !CYTHON_ASSUME_SAFE_SIZE
22705 if (unlikely(line_table_length == -1)) goto done;
22706 #endif
22707 Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
22708 code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
22709 if (unlikely(!code_bytes)) goto done;
22710 char* c_code_bytes = PyBytes_AsString(code_bytes);
22711 if (unlikely(!c_code_bytes)) goto done;
22712 memset(c_code_bytes, 0, (size_t) code_len);
22713 }
22714 code_obj = (PyObject*) __Pyx__PyCode_New(
22715 (int) descr.argcount,
22716 (int) descr.num_posonly_args,
22717 (int) descr.num_kwonly_args,
22718 (int) descr.nlocals,
22719 0,
22720 (int) descr.flags,
22721 code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
22722 __pyx_mstate_global->__pyx_empty_tuple,
22723 __pyx_mstate_global->__pyx_empty_tuple,
22724 varnames_tuple_dedup,
22725 __pyx_mstate_global->__pyx_empty_tuple,
22726 __pyx_mstate_global->__pyx_empty_tuple,
22727 filename,
22728 funcname,
22729 (int) descr.first_line,
22730 (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
22731 );
22732done:
22733 Py_XDECREF(code_bytes);
22734 #if CYTHON_AVOID_BORROWED_REFS
22735 Py_XDECREF(varnames_tuple_dedup);
22736 #endif
22737 Py_DECREF(varnames_tuple);
22738 return code_obj;
22739}
22740
22741/* DecompressString */
22742CYTHON_UNUSED
22743static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
22744#ifdef __Pyx_DecompressString_UNUSED
22745 CYTHON_UNUSED_VAR(s);
22746 CYTHON_UNUSED_VAR(length);
22747 CYTHON_UNUSED_VAR(algo);
22748 return NULL;
22749#else
22750 PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
22751 const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
22752 PyObject *methodname = PyUnicode_FromString("decompress");
22753 if (unlikely(!methodname)) return NULL;
22754 #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
22755 if (algo == 3) {
22756 PyObject *fromlist = Py_BuildValue("[O]", methodname);
22757 if (unlikely(!fromlist)) goto bad;
22758 module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
22759 Py_DECREF(fromlist);
22760 } else
22761 #endif
22762 module = PyImport_ImportModule(module_name);
22763 if (unlikely(!module)) goto import_failed;
22764 decompress = PyObject_GetAttr(module, methodname);
22765 if (unlikely(!decompress)) goto import_failed;
22766 {
22767 #ifdef __cplusplus
22768 char *memview_bytes = const_cast<char*>(s);
22769 #else
22770 #if defined(__clang__)
22771 #pragma clang diagnostic push
22772 #pragma clang diagnostic ignored "-Wcast-qual"
22773 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
22774 #pragma GCC diagnostic push
22775 #pragma GCC diagnostic ignored "-Wcast-qual"
22776 #endif
22777 char *memview_bytes = (char*) s;
22778 #if defined(__clang__)
22779 #pragma clang diagnostic pop
22780 #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
22781 #pragma GCC diagnostic pop
22782 #endif
22783 #endif
22784 #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
22785 int memview_flags = 0x100;
22786 #else
22787 int memview_flags = PyBUF_READ;
22788 #endif
22789 compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
22790 }
22791 if (unlikely(!compressed_bytes)) {
22792 Py_DECREF(decompress);
22793 goto bad;
22794 }
22795 decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
22796 Py_DECREF(compressed_bytes);
22797 Py_DECREF(decompress);
22798 Py_DECREF(module);
22799 Py_DECREF(methodname);
22800 return decompressed;
22801import_failed:
22802 PyErr_Format(PyExc_ImportError,
22803 "Failed to import '%.20s.decompress' - cannot initialise module strings. "
22804 "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
22805 module_name, algo);
22806bad:
22807 Py_XDECREF(module);
22808 Py_DECREF(methodname);
22809 return NULL;
22810#endif
22811}
22812
22813/* DecompressString_LZSS */
22814#ifndef __Pyx_DecompressString_LZSS_UNUSED
22815CYTHON_UNUSED
22816static CYTHON_SMALL_CODE size_t __pyx_lzss_decompress(const uint8_t* src, uint8_t* dst, size_t dst_len) {
22817 size_t pos = 0, out_pos = 0;
22818 while (1) {
22819 uint32_t flags = src[pos++] | 0xFF00;
22820 while (flags & 0x100) {
22821 if (flags & 1) {
22822 dst[out_pos++] = src[pos++];
22823 } else {
22824 uint32_t lo = src[pos++], hi = src[pos++];
22825 uint32_t end_offset_of_last_occurrence, match_length;
22826 if (!(lo & 0x80)) {
22827 end_offset_of_last_occurrence = lo;
22828 match_length = hi;
22829 } else if (!(hi & 0x80)) {
22830 end_offset_of_last_occurrence = 0x80 + (((hi << 2) & 0x180) | (lo & 0x7F));
22831 match_length = hi & 0x1F;
22832 } else {
22833 end_offset_of_last_occurrence = 0x80 + ((hi & 0x7F) << 7 | (lo & 0x7F));
22834 match_length = src[pos++];
22835 }
22836 match_length += 3;
22837 size_t ref_pos = out_pos - end_offset_of_last_occurrence - match_length;
22838 memcpy(dst + out_pos, dst + ref_pos, match_length);
22839 out_pos += match_length;
22840 }
22841 if (out_pos >= dst_len) return pos;
22842 flags >>= 1;
22843 }
22844 }
22845}
22846#endif
22847static CYTHON_SMALL_CODE PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length) {
22848#ifdef __Pyx_DecompressString_LZSS_UNUSED
22849 CYTHON_UNUSED_VAR(s);
22850 CYTHON_UNUSED_VAR(compressed_length);
22851 CYTHON_UNUSED_VAR(uncompressed_length);
22852 return NULL;
22853#else
22854 PyObject *result;
22855 unsigned char *result_data;
22856 size_t src_length;
22857 result = PyBytes_FromStringAndSize(NULL, (Py_ssize_t) uncompressed_length);
22858 if (unlikely(!result)) return NULL;
22859 result_data = __Pyx_PyBytes_AsWritableUString(result);
22860 if (unlikely(!result_data)) goto bad;
22861 src_length = __pyx_lzss_decompress((const uint8_t*) s, result_data, uncompressed_length);
22862 if (unlikely(src_length != compressed_length)) goto decompression_failed;
22863 return result;
22864decompression_failed:
22865 PyErr_SetString(PyExc_RuntimeError, "LZSS string data decompression failed");
22866bad:
22867 Py_DECREF(result);
22868 return NULL;
22869#endif
22870}
22871
22872#include <string.h>
22873static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
22874 size_t len = strlen(s);
22875 if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
22876 PyErr_SetString(PyExc_OverflowError, "byte string is too long");
22877 return -1;
22878 }
22879 return (Py_ssize_t) len;
22880}
22881static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
22882 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
22883 if (unlikely(len < 0)) return NULL;
22884 return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
22885}
22886static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
22887 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
22888 if (unlikely(len < 0)) return NULL;
22889 return PyByteArray_FromStringAndSize(c_str, len);
22890}
22891static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
22892 Py_ssize_t ignore;
22893 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
22894}
22895#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
22896static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
22897 if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
22898#if CYTHON_COMPILING_IN_LIMITED_API
22899 {
22900 const char* result;
22901 Py_ssize_t unicode_length;
22902 CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22903 #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
22904 if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
22905 #else
22906 result = PyUnicode_AsUTF8AndSize(o, length);
22907 #endif
22908 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22909 unicode_length = PyUnicode_GetLength(o);
22910 if (unlikely(unicode_length < 0)) return NULL;
22911 if (unlikely(unicode_length != *length)) {
22912 PyUnicode_AsASCIIString(o);
22913 return NULL;
22914 }
22915 #endif
22916 return result;
22917 }
22918#else
22919#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
22920 if (likely(PyUnicode_IS_ASCII(o))) {
22921 *length = PyUnicode_GET_LENGTH(o);
22922 return PyUnicode_AsUTF8(o);
22923 } else {
22924 PyUnicode_AsASCIIString(o);
22925 return NULL;
22926 }
22927#else
22928 return PyUnicode_AsUTF8AndSize(o, length);
22929#endif
22930#endif
22931}
22932#endif
22933static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
22934#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
22935 if (PyUnicode_Check(o)) {
22936 return __Pyx_PyUnicode_AsStringAndSize(o, length);
22937 } else
22938#endif
22939 if (PyByteArray_Check(o)) {
22940#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
22941 *length = PyByteArray_GET_SIZE(o);
22942 return PyByteArray_AS_STRING(o);
22943#else
22944 *length = PyByteArray_Size(o);
22945 if (*length == -1) return NULL;
22946 return PyByteArray_AsString(o);
22947#endif
22948 } else
22949 {
22950 char* result;
22951 int r = PyBytes_AsStringAndSize(o, &result, length);
22952 if (unlikely(r < 0)) {
22953 return NULL;
22954 } else {
22955 return result;
22956 }
22957 }
22958}
22959static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
22960 int is_true = x == Py_True;
22961 if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
22962 else return PyObject_IsTrue(x);
22963}
22964static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
22965 int retval;
22966 if (unlikely(!x)) return -1;
22967 retval = __Pyx_PyObject_IsTrue(x);
22968 Py_DECREF(x);
22969 return retval;
22970}
22971static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
22972 __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
22973 #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
22974 if (unlikely(!result_type_name)) goto bad;
22975 #endif
22976 if (PyLong_Check(result)) {
22977 if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
22978 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). "
22979 "The ability to return an instance of a strict subclass of int is deprecated, "
22980 "and may be removed in a future version of Python.",
22981 result_type_name)) {
22982 __Pyx_DECREF_TypeName(result_type_name);
22983 goto bad;
22984 }
22985 __Pyx_DECREF_TypeName(result_type_name);
22986 return result;
22987 }
22988 PyErr_Format(PyExc_TypeError,
22989 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
22990 result_type_name);
22991 __Pyx_DECREF_TypeName(result_type_name);
22992bad:
22993 Py_DECREF(result);
22994 return NULL;
22995}
22996static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
22997#if CYTHON_USE_TYPE_SLOTS
22998 PyNumberMethods *m;
22999#endif
23000 PyObject *res = NULL;
23001 if (likely(PyLong_Check(x)))
23002 return __Pyx_NewRef(x);
23003#if CYTHON_USE_TYPE_SLOTS
23004 m = Py_TYPE(x)->tp_as_number;
23005 if (likely(m && m->nb_int)) {
23006 res = m->nb_int(x);
23007 }
23008#else
23009 if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
23010 res = PyNumber_Long(x);
23011 }
23012#endif
23013 if (likely(res)) {
23014 if (unlikely(!PyLong_CheckExact(res))) {
23015 return __Pyx_PyNumber_LongWrongResultType(res);
23016 }
23017 }
23018 else if (!PyErr_Occurred()) {
23019 PyErr_SetString(PyExc_TypeError,
23020 "an integer is required");
23021 }
23022 return res;
23023}
23024static CYTHON_INLINE Py_ssize_t __Pyx_PyLong_AsSsize_t(PyObject* b) {
23025 #if CYTHON_USE_PYLONG_INTERNALS
23026 Py_ssize_t ival;
23027 const Py_ssize_t size = __Pyx_PyLong_DigitCount(b);
23028 const int is_neg = __Pyx_PyLong_IsNeg(b);
23029 const digit* digits = __Pyx_PyLong_Digits(b);
23030 if (size == 0) return 0;
23031 #if SIZEOF_SIZE_T * 8 > 1 * PyLong_SHIFT
23032 if (size == 1) {
23033 ival = (Py_ssize_t) (((size_t)digits[0]));
23034 } else
23035 #endif
23036 #if SIZEOF_SIZE_T * 8 > 2 * PyLong_SHIFT
23037 if (size == 2) {
23038 ival = (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
23039 } else
23040 #endif
23041 #if SIZEOF_SIZE_T * 8 > 3 * PyLong_SHIFT
23042 if (size == 3) {
23043 ival = (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
23044 } else
23045 #endif
23046 #if SIZEOF_SIZE_T * 8 > 4 * PyLong_SHIFT
23047 if (size == 4) {
23048 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]));
23049 } else
23050 #endif
23051 return PyLong_AsSsize_t(b);
23052 return is_neg ? -ival : ival;
23053 #else
23054 return PyLong_AsSsize_t(b);
23055 #endif
23056}
23057static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
23058 if (likely(PyLong_Check(b))) {
23059 return __Pyx_PyLong_AsSsize_t(b);
23060 } else {
23061 Py_ssize_t ival;
23062 PyObject *x = PyNumber_Index(b);
23063 if (unlikely(!x)) return -1;
23064 ival = __Pyx_PyLong_AsSsize_t(x);
23065 Py_DECREF(x);
23066 return ival;
23067 }
23068}
23069static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
23070 if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
23071 return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
23072 } else {
23073 Py_ssize_t ival;
23074 PyObject *x;
23075 x = PyNumber_Index(o);
23076 if (!x) return -1;
23077 ival = PyLong_AsLong(x);
23078 Py_DECREF(x);
23079 return ival;
23080 }
23081}
23082static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
23083 CYTHON_UNUSED_VAR(b);
23084 return __Pyx_NewRef(Py_None);
23085}
23086static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
23087 return __Pyx_NewRef(b ? Py_True: Py_False);
23088}
23089static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
23090 return PyLong_FromSize_t(ival);
23091}
23092
23093
23094/* MultiPhaseInitModuleState */
23095#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
23096#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23097#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
23098 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
23099#else
23100 #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
23101#endif
23102#endif
23103#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
23104#error "Module state with PEP489 requires atomics. Currently that's one of\
23105 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
23106#endif
23107#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23108#define __Pyx_ModuleStateLookup_Lock()
23109#define __Pyx_ModuleStateLookup_Unlock()
23110#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
23111static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
23112#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
23113#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
23114#elif defined(__cplusplus) && __cplusplus >= 201103L
23115#include <mutex>
23116static std::mutex __Pyx_ModuleStateLookup_mutex;
23117#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
23118#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
23119#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
23120#include <threads.h>
23121static mtx_t __Pyx_ModuleStateLookup_mutex;
23122static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
23123static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
23124 mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
23125}
23126#define __Pyx_ModuleStateLookup_Lock()\
23127 call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
23128 mtx_lock(&__Pyx_ModuleStateLookup_mutex)
23129#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
23130#elif defined(HAVE_PTHREAD_H)
23131#include <pthread.h>
23132static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
23133#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
23134#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
23135#elif defined(_WIN32)
23136#include <Windows.h> // synchapi.h on its own doesn't work
23137static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
23138#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
23139#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
23140#else
23141#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
23142 Requires C standard >= C11, or C++ standard >= C++11,\
23143 or pthreads, or the Windows 32 API, or Python >= 3.13."
23144#endif
23145typedef struct {
23146 int64_t id;
23147 PyObject *module;
23148} __Pyx_InterpreterIdAndModule;
23149typedef struct {
23150 char interpreter_id_as_index;
23151 Py_ssize_t count;
23152 Py_ssize_t allocated;
23153 __Pyx_InterpreterIdAndModule table[1];
23154} __Pyx_ModuleStateLookupData;
23155#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
23156#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23157static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
23158#endif
23159#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23160static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
23161#else
23162static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
23163#endif
23164static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
23165 __Pyx_InterpreterIdAndModule* table,
23166 Py_ssize_t count,
23167 int64_t interpreterId) {
23168 __Pyx_InterpreterIdAndModule* begin = table;
23169 __Pyx_InterpreterIdAndModule* end = begin + count;
23170 if (begin->id == interpreterId) {
23171 return begin;
23172 }
23173 while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
23174 __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
23175 if (halfway->id == interpreterId) {
23176 return halfway;
23177 }
23178 if (halfway->id < interpreterId) {
23179 begin = halfway;
23180 } else {
23181 end = halfway;
23182 }
23183 }
23184 for (; begin < end; ++begin) {
23185 if (begin->id >= interpreterId) return begin;
23186 }
23187 return begin;
23188}
23189static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
23190 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
23191 if (interpreter_id == -1) return NULL;
23192#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23193 __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
23194 {
23195 __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
23196 if (likely(data)) {
23197 __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
23198 if (likely(data == new_data)) {
23199 goto read_finished;
23200 }
23201 }
23202 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
23203 __Pyx_ModuleStateLookup_Lock();
23204 __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
23205 data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
23206 __Pyx_ModuleStateLookup_Unlock();
23207 }
23208 read_finished:;
23209#else
23210 __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
23211#endif
23212 __Pyx_InterpreterIdAndModule* found = NULL;
23213 if (unlikely(!data)) goto end;
23214 if (data->interpreter_id_as_index) {
23215 if (interpreter_id < data->count) {
23216 found = data->table+interpreter_id;
23217 }
23218 } else {
23219 found = __Pyx_State_FindModuleStateLookupTableLowerBound(
23220 data->table, data->count, interpreter_id);
23221 }
23222 end:
23223 {
23224 PyObject *result=NULL;
23225 if (found && found->id == interpreter_id) {
23226 result = found->module;
23227 }
23228#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23229 __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
23230#endif
23231 return result;
23232 }
23233}
23234#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23235static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
23236 while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
23237}
23238#else
23239#define __Pyx_ModuleStateLookup_wait_until_no_readers()
23240#endif
23241static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
23242 Py_ssize_t to_allocate = (*old_data)->allocated;
23243 while (to_allocate <= interpreter_id) {
23244 if (to_allocate == 0) to_allocate = 1;
23245 else to_allocate *= 2;
23246 }
23247 __Pyx_ModuleStateLookupData *new_data = *old_data;
23248 if (to_allocate != (*old_data)->allocated) {
23249 new_data = (__Pyx_ModuleStateLookupData *)realloc(
23250 *old_data,
23251 sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
23252 if (!new_data) {
23253 PyErr_NoMemory();
23254 return -1;
23255 }
23256 for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
23257 new_data->table[i].id = i;
23258 new_data->table[i].module = NULL;
23259 }
23260 new_data->allocated = to_allocate;
23261 }
23262 new_data->table[interpreter_id].module = module;
23263 if (new_data->count < interpreter_id+1) {
23264 new_data->count = interpreter_id+1;
23265 }
23266 *old_data = new_data;
23267 return 0;
23268}
23269static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
23270 __Pyx_InterpreterIdAndModule *read = data->table;
23271 __Pyx_InterpreterIdAndModule *write = data->table;
23272 __Pyx_InterpreterIdAndModule *end = read + data->count;
23273 for (; read<end; ++read) {
23274 if (read->module) {
23275 write->id = read->id;
23276 write->module = read->module;
23277 ++write;
23278 }
23279 }
23280 data->count = write - data->table;
23281 for (; write<end; ++write) {
23282 write->id = 0;
23283 write->module = NULL;
23284 }
23285 data->interpreter_id_as_index = 0;
23286}
23287static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
23288 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
23289 if (interpreter_id == -1) return -1;
23290 int result = 0;
23291 __Pyx_ModuleStateLookup_Lock();
23292#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23293 __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
23294 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
23295#else
23296 __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
23297#endif
23298 __Pyx_ModuleStateLookupData *new_data = old_data;
23299 if (!new_data) {
23300 new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
23301 if (!new_data) {
23302 result = -1;
23303 PyErr_NoMemory();
23304 goto end;
23305 }
23306 new_data->allocated = 1;
23307 new_data->interpreter_id_as_index = 1;
23308 }
23309 __Pyx_ModuleStateLookup_wait_until_no_readers();
23310 if (new_data->interpreter_id_as_index) {
23311 if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
23312 result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
23313 goto end;
23314 }
23315 __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
23316 }
23317 {
23318 Py_ssize_t insert_at = 0;
23319 {
23320 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
23321 new_data->table, new_data->count, interpreter_id);
23322 assert(lower_bound);
23323 insert_at = lower_bound - new_data->table;
23324 if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
23325 lower_bound->module = module;
23326 goto end; // already in table, nothing more to do
23327 }
23328 }
23329 if (new_data->count+1 >= new_data->allocated) {
23330 Py_ssize_t to_allocate = (new_data->count+1)*2;
23331 new_data =
23332 (__Pyx_ModuleStateLookupData*)realloc(
23333 new_data,
23334 sizeof(__Pyx_ModuleStateLookupData) +
23335 (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
23336 if (!new_data) {
23337 result = -1;
23338 new_data = old_data;
23339 PyErr_NoMemory();
23340 goto end;
23341 }
23342 new_data->allocated = to_allocate;
23343 }
23344 ++new_data->count;
23345 int64_t last_id = interpreter_id;
23346 PyObject *last_module = module;
23347 for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
23348 int64_t current_id = new_data->table[i].id;
23349 new_data->table[i].id = last_id;
23350 last_id = current_id;
23351 PyObject *current_module = new_data->table[i].module;
23352 new_data->table[i].module = last_module;
23353 last_module = current_module;
23354 }
23355 }
23356 end:
23357#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23358 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
23359#else
23360 __Pyx_ModuleStateLookup_data = new_data;
23361#endif
23362 __Pyx_ModuleStateLookup_Unlock();
23363 return result;
23364}
23365static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
23366 int64_t interpreter_id = PyInterpreterState_GetID(PyInterpreterState_Get());
23367 if (interpreter_id == -1) return -1;
23368 __Pyx_ModuleStateLookup_Lock();
23369#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23370 __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
23371 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
23372#else
23373 __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
23374#endif
23375 if (data->interpreter_id_as_index) {
23376 if (interpreter_id < data->count) {
23377 data->table[interpreter_id].module = NULL;
23378 }
23379 goto done;
23380 }
23381 {
23382 __Pyx_ModuleStateLookup_wait_until_no_readers();
23383 __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
23384 data->table, data->count, interpreter_id);
23385 if (!lower_bound) goto done;
23386 if (lower_bound->id != interpreter_id) goto done;
23387 __Pyx_InterpreterIdAndModule *end = data->table+data->count;
23388 for (;lower_bound<end-1; ++lower_bound) {
23389 lower_bound->id = (lower_bound+1)->id;
23390 lower_bound->module = (lower_bound+1)->module;
23391 }
23392 }
23393 --data->count;
23394 if (data->count == 0) {
23395 free(data);
23396 data = NULL;
23397 }
23398 done:
23399#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
23400 __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
23401#else
23402 __Pyx_ModuleStateLookup_data = data;
23403#endif
23404 __Pyx_ModuleStateLookup_Unlock();
23405 return 0;
23406}
23407#endif
23408
23409/* #### Code section: utility_code_pragmas_end ### */
23410#ifdef _MSC_VER
23411#pragma warning( pop )
23412#endif
23413
23414
23415
23416/* #### Code section: end ### */
23417#endif /* Py_PYTHON_H */
Int n
Definition Headers.h:28
Double T
Definition Headers.h:87
Double r
Definition Headers.h:83
Double U
Definition Headers.h:88
Int number
Definition Headers.h:33
Double f
Definition Headers.h:64
Double s
Definition Headers.h:84
Int ns
Definition Headers.h:30
Double * z
Definition Headers.h:49
Double v
Definition Headers.h:95
#define c(i)
Definition jf.h:21